KR20180075881A - 클라이언트 측 웹 취약점 분석 방법 및 장치 - Google Patents

클라이언트 측 웹 취약점 분석 방법 및 장치 Download PDF

Info

Publication number
KR20180075881A
KR20180075881A KR1020160179785A KR20160179785A KR20180075881A KR 20180075881 A KR20180075881 A KR 20180075881A KR 1020160179785 A KR1020160179785 A KR 1020160179785A KR 20160179785 A KR20160179785 A KR 20160179785A KR 20180075881 A KR20180075881 A KR 20180075881A
Authority
KR
South Korea
Prior art keywords
script
url
analysis target
check
tag
Prior art date
Application number
KR1020160179785A
Other languages
English (en)
Other versions
KR101902747B1 (ko
Inventor
김환국
배한철
박성민
권민희
오상환
윤수진
Original Assignee
한국인터넷진흥원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국인터넷진흥원 filed Critical 한국인터넷진흥원
Priority to KR1020160179785A priority Critical patent/KR101902747B1/ko
Publication of KR20180075881A publication Critical patent/KR20180075881A/ko
Application granted granted Critical
Publication of KR101902747B1 publication Critical patent/KR101902747B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

웹 페이지에 접속하는 클라이언트 측 컴퓨팅 장치가 상기 웹 페이지의 취약점을 분석할 수 있는 클라이언트 측 웹 취약점 분석 방법 및 장치가 제공된다. 상기 클라이언트 측 웹 취약점 분석 장치는, 분석 대상 웹 페이지의 URL을 획득하고, 상기 획득된 URL를 이용하여 상기 분석 대상 웹 페이지에 포함된 웹 콘텐츠를 크롤링하며, 상기 웹 콘텐츠에 대한 문서 객체 모델을 생성하는 수집부, 상기 문서 객체 모델에서 분석 대상 URL, 분석 대상 태그 및 분석 대상 스크립트를 추출하는 추출부 및 상기 분석 대상 URL, 상기 분석 대상 태그 및 상기 분석 대상 스크립트에 대한 URL 검사, 태그 검사 및 스크립트 검사를 수행하고, 상기 분석 대상 웹 페이지에 대한 액티브 스캔을 수행하는 분석부를 포함할 수 있다.

Description

클라이언트 측 웹 취약점 분석 방법 및 장치{Method and Apparatus for Analyzing Web Vulnerability for Client-side}
본 발명은 클라이언트 측 웹 취약점 분석 방법 및 장치에 관한 것이다. 보다 자세하게는, 클라이언트 측 컴퓨팅 장치가 서버 측에서 제공하는 웹 페이지의 취약점을 분석할 수 있는 방법 및 장치에 관한 것이다.
웹 페이지를 매개로 상기 웹 페이지 내에 삽입된 악성 스크립트가 클라이언트 단말의 웹 브라우저를 통해 실행됨으로써, 상기 클라이언트 단말에 존재하는 개인정보를 유출하는 등의 스크립트 기반 사이버 공격이 꾸준하게 증가하고 있다. 특히, 최근에는 악성 스크립트를 이용한 신종 공격의 출현에 따라 이에 따른 피해 또한 급증하고 있다. 예를 들어, 클라이언트 단말을 이용한 DDoS 공격이 계속적으로 발생하고 있고, 랜섬웨어(ransomware) 등 다양한 스크립트 기반의 공격이 출현하고 있다.
이러한 스크립트 기반 사이버 공격은 정상적인 웹 요청에 대한 응답 메시지에 악의적인 스크립트가 삽입되고, 웹 브라우저 종료 시 공격 관련 데이터가 삭제되기 때문에 공격 경로에 대한 추적이 어렵다. 또한, 웹 페이지 방문만으로도 악성 스크립트 실행을 통해 상술한 공격이 가능하기 때문에 상기 공격에 따른 피해와 파급 효과가 클 것으로 예상된다.
그러나, 종래의 웹 취약점 점검 방식은 주로 서버 측(server-side)에서 동작하기 때문에 클라이언트 측 장치의 사용자들에게 취약점이 존재하는 웹 페이지에 대한 자가 진단 방법을 제공하지 못한다. 또한, 종래의 웹 취약점 점검 방식은 시그니처(signature) 기반 악성 스크립트 탐지와 같이 패시브 스캔(passive scan) 방식만으로 웹 페이지를 점검하기 때문에 효과적으로 취약점 점검을 수행할 수 없으며, 정상적인 웹 페이지를 악성으로 판단하는 거짓 긍정(False Positive) 오류가 빈번하게 발생한다는 문제점이 있다.
따라서, 클라이언트 측에서 접속하는 웹 페이지에 대한 취약점을 자가 진단할 수 있는 클라이언트 측 웹 취약점 분석 방법 및 장치의 필요성이 요구된다.
한국공개특허 제2014-0119527호
본 발명이 해결하고자 하는 기술적 과제는, 클라이언트 측 컴퓨팅 장치에서 접속하는 웹 페이지에 대한 취약점을 분석할 수 있는 클라이언트 측 웹 취약점 분석 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 본 발명이 해결하고자 하는 기술적 과제는, 클라이언트 측 컴퓨팅 장치에서 접속하는 웹 페이지 취약점 분석 결과에 대한 거짓 긍정 오류를 최소화할 수 있는 클라이언트 측 웹 취약점 분석 방법 및 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 클라이언트 측 웹 취약점 분석 방법은, 분석 대상 웹 페이지의 URL을 획득하는 단계, 상기 획득된 URL를 이용하여 상기 분석 대상 웹 페이지에 포함된 웹 콘텐츠를 크롤링하고, 상기 웹 콘텐츠에 대한 문서 객체 모델을 생성하는 단계, 상기 문서 객체 모델에서 분석 대상 URL, 분석 대상 태그 및 분석 대상 스크립트를 추출하는 단계, 상기 분석 대상 URL, 상기 분석 대상 태그 및 상기 분석 대상 스크립트에 대한 URL 검사, 태그 검사 및 스크립트 검사를 수행하는 단계 및 상기 분석 대상 웹 페이지에 대한 액티브 스캔을 수행하는 단계를 포함할 수 있다.
일 실시예에서, 상기 URL 검사, 태그 검사 및 스크립트 검사를 수행하는 단계는,상기 분석 대상 URL이 기 설정된 블랙 리스트에 포함되는지에 대한 URL 검사를 수행하는 단계, 상기 분석 대상 태그에서 기 설정된 악성 태그의 시그니처가 탐지되는지에 대한 태그 검사를 수행하는 단계 및 상기 분석 대상 스크립트에서 기 설정된 시그니처가 탐지되는지에 대한 스크립트 검사를 수행하는 단계를 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 클라이언트 측 웹 취약점 분석 장치는, 분석 대상 웹 페이지의 URL을 획득하고, 상기 획득된 URL를 이용하여 상기 분석 대상 웹 페이지에 포함된 웹 콘텐츠를 크롤링하며, 상기 웹 콘텐츠에 대한 문서 객체 모델을 생성하는 수집부, 상기 문서 객체 모델에서 분석 대상 URL, 분석 대상 태그 및 분석 대상 스크립트를 추출하는 추출부 및 상기 분석 대상 URL, 상기 분석 대상 태그 및 상기 분석 대상 스크립트에 대한 URL 검사, 태그 검사 및 스크립트 검사를 수행하고, 상기 분석 대상 웹 페이지에 대한 액티브 스캔을 수행하는 분석부를 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 클라이언트 측 웹 취약점 분석 장치는, 하나 이상의 프로세서, 네트워크 인터페이스, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(Load)하는 메모리 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 분석 대상 웹 페이지의 URL을 획득하는 오퍼레이션, 상기 획득된 URL를 이용하여 상기 분석 대상 웹 페이지에 포함된 웹 콘텐츠를 크롤링하고, 상기 웹 콘텐츠에 대한 문서 객체 모델을 생성하는 오퍼레이션, 상기 문서 객체 모델에서 분석 대상 URL, 분석 대상 태그 및 분석 대상 스크립트를 추출하는 오퍼레이션, 상기 분석 대상 URL, 상기 분석 대상 태그 및 상기 분석 대상 스크립트에 대한 URL 검사, 태그 검사 및 스크립트 검사를 수행하는 오퍼레이션 및 상기 분석 대상 웹 페이지에 대한 액티브 스캔을 수행하는 오퍼레이션을 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합하여, 분석 대상 웹 페이지의 URL을 획득하는 단계, 상기 획득된 URL를 이용하여 상기 분석 대상 웹 페이지에 포함된 웹 콘텐츠를 크롤링하고, 상기 웹 콘텐츠에 대한 문서 객체 모델을 생성하는 단계, 상기 문서 객체 모델에서 분석 대상 URL, 분석 대상 태그 및 분석 대상 스크립트를 추출하는 단계, 상기 분석 대상 URL, 상기 분석 대상 태그 및 상기 분석 대상 스크립트에 대한 URL 검사, 태그 검사 및 스크립트 검사를 수행하는 단계 및 상기 분석 대상 웹 페이지에 대한 액티브 스캔을 수행하는 단계를 실행시키기 위하여 기록매체에 저장될 수 있다.
상술한 본 발명에 따르면, 클라이언트 측 컴퓨팅 장치에서 수행될 수 있는 웹 취약점 분석 방법을 제공함으로써, 스크립트 기반 사이버 공격에 따른 피해를 예방할 수 있다.
또한, 패시브 스캔 방법뿐만 아니라 액티브 스캔 방법을 동시에 활용함으로써, 보다 정확하게 웹 페이지의 취약점을 분석할 수 있다.
또한, 정상 시그니처가 포함된 시그니처 화이트 리스트를 이용하여 스크립트 검사를 수행함으로써, 정상 스크립트를 악성으로 판단하는 거짓 긍정 오류를 최소화할 수 있다.
또한, 블랙 리스트와 화이트 리스트 기반의 URL 검사를 통해 그레이 리스트 영역에 대한 태그 검사 및 스크립트 검사를 수행함으로써 웹 취약점 분석에 이용되는 컴퓨팅 비용을 최소화할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 웹 취약점 분석 시스템의 구성도이다.
도 2는 본 발명의 다른 실시예에 따른 클라이언트 측 웹 취약점 분석 장치의 기능 블록도이다.
도 3a 및 도 3b는 각각 도2에 도시된 추출부 및 분석부의 기능 블록도이다.
도 4는 본 발명의 또 다른 실시예에 따른 클라이언트 측 웹 취약점 분석 장치의 하드웨어 구성도이다.
도 5는 본 발명의 또 다른 실시예에 따른 클라이언트 측 웹 취약점 분석 방법의 순서도이다.
도 6 내지 도 8은 본 발명의 몇몇 실시예에서 참조될 수 있는 웹 페이지 검사 단계(S500)를 설명하기 위한 도면이다.
도 9는 본 발명의 몇몇 실시예에서 참조될 수 있는 스크립트 검사 단계(S500)의 상세 순서도이다.
도 10은 본 발명의 몇몇 실시예에서 참조될 수 있는 태그 검사 단계(S550)의 상세 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계 및/또는 동작은 하나 이상의 다른 구성 요소, 단계 및/또는 동작의 존재 또는 추가를 배제하지 않는다.
이하, 본 발명에 대하여 첨부된 도면에 따라 보다 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 웹 취약점 분석 시스템 구성도이다.
도 1을 참조하면, 웹 취약점 분석 시스템은 클라이언트 측 웹 취약점 분석 장치(100, 이하 '웹 취약점 분석 장치') 및 시그니처 관리 장치(500)을 포함할 수 있다.
먼저, 웹 취약점 분석 장치(100)는 인터넷(300) 상의 하나 이상의 분석 대상 웹 페이지에 대한 취약점 분석을 수행하는 컴퓨팅 장치를 의미한다. 예를 들어, 상기 웹 취약점 분석 장치는 네트워크를 통해 인터넷(300) 상의 웹 페이지에 접속할 수 있는 클라이언트 측 컴퓨팅 장치일 수 있다.
여기서, 상기 컴퓨팅 장치는 예를 들어, 웹 브라우저(Web Browser)가 탑재된 노트북, 데스크톱(desktop), 랩탑(laptop) 등을 포함하고, 스마트폰(Smart Phone) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있으나, 이에 국한되는 것은 아니며 컴퓨팅 기능과 통신 기능을 갖춘 모든 종류의 장치를 포함할 수 있다.
또한 상기 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 개인 근거리 무선통신(Personal Area Network; PAN), 이동 통신망(mobile radio communication network) 또는 위성 통신망 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다
웹 취약점 분석 장치(100)는 사용자가 입력한 분석 대상 웹 페이지의 URL을 이용하여 상기 분석 대상 웹 페이지에 포함되는 웹 콘텐츠를 크롤링하고, 크롤링된 정보를 기초로 상기 분석 대상 웹 페이지에 대한 취약점 분석을 수행한다. 단, 구현 방식에 따라 웹 취약점 분석 장치(100)는 외부의 크롤러에게 상기 분석 대상 웹 페이지에 대한 크롤링을 요청하고, 결과를 수신할 수도 있다.
웹 취약점 분석 장치(100)는 분석 대상 웹 페이지의 취약점을 분석하기 위해 시그니처 관리 장치(500)와 연동될 수 있으며, 상기 시그니처 관리 장치로부터 블랙 리스트 URL, 화이트 리스트 URL, 악성 태그 및 악성 스크립트에 대한 시그니처, 정상 스크립트에 대한 시그니처, 스크립트의 해시 값 등을 수신하여 저장하거나 갱신할 수 있다.
다음으로, 시그니처 관리 장치(500)는 웹 취약점 분석에 이용되는 다양한 종류의 시그니처를 관리하는 컴퓨팅 장치이다. 상기 시그니처 관리 장치는 상기 다양한 종류의 시그니처를 관리하기 위해 DB화된 저장 장치를 포함할 수 있고, 상기 다양한 종류의 시그니처는 예를 들어 스크립트에 대한 시그니처, 태그에 대한 시그니처 및 URL에 대한 시그니처 등을 포함할 수 있다.
상기 시그니처(signature)는 웹 콘텐츠에서 악성 태그, 악성 스크립트 등의 악성 요소 또는 정상 스크립트 등의 정상 요소를 탐지하기 위해 사용되는 정보로서, 기존에 탐지된 악성 요소 또는 정상 요소에 관한 패턴 정보를 의미한다. 예를 들어, 상기 시그니처는 악성 스크립트의 특정 문자열 패턴 또는 이진 패턴이 될 수 있다. 단, 이에 국한되는 것은 아니며 악성 요소 또는 정상 요소를 식별하는데 이용될 수 있는 모든 종류의 정보를 포함할 수 있다.
스크립트에 대한 시그니처는 예를 들어 스크립트의 변조 여부 판단에 이용되는 스크립트의 해시 값, 악성 스크립트에 대한 시그니처, 정상 스크립트에 대한 시그니처 등을 포함할 수 있다. 또한, 태그에 대한 시그니처는 예를 들어 악성 태그에 대한 시그니처를 포함할 수 있고, URL에 대한 시그니처는 예를 들어 블랙 리스트 URL 및 화이트 리스트 URL에 대한 정보를 포함할 수 있다.
시그니처 관리 장치(500)는 복수의 웹 취약점 분석 장치에게 시그니처 정보를 제공할 수 있다. 또한, 복수의 웹 취약점 분석 장치로부터 사용자가 입력한 새로운 시그니처 정보를 수신할 수도 있고, 상기 사용자가 설정한 새로운 시그니처는 상기 시그니처 관리 장치를 통해 복수의 웹 취약점 분석 장치에 다시 제공될 수 있다.
지금까지 도 1을 참조하여 본 발명의 일 실시예에 따른 웹 취약점 분석 시스템에 대하여 설명하였다. 다음으로, 도 2 내지 도 4를 참조하여 본 발명에 따른 웹 취약점 분석 장치(100)에 대하여 설명한다.
먼저, 도 2 및 도 3을 참조하여 본 발명의 다른 실시예에 따른 웹 취약점 분석 장치의 기능 블록도에 대하여 설명한다.
도 2 및 도 3을 참조하면, 웹 취약점 분석 장치(100)는 수집부(110), 추출부(130), 분석부(150) 및 인터페이스부(170)를 포함할 수 있다. 다만, 도 2에는 본 발명의 실시예와 관련있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 2에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
각 구성요소를 살펴보면, 수집부(110)는 인터넷(300) 상에서 분석 대상이 되는 웹 페이지의 정보를 크롤링하고, 상기 크롤링 된 정보로부터 문서 객체 모델(Document Object Model, 이하 'DOM') 정보를 생성할 수 있다. 예를 들어, 상기 수집부는 분석 대상 웹 페이지의 URL 정보가 주어지는 경우, 상기 분석 대상 웹 페이지에 포함된 HTML 파일 등의 웹 콘텐츠를 크롤링하고, 상기 HTML 파일을 파싱하여 DOM 정보를 생성할 수 있다.
여기서 DOM이란, 프로그램이나 스크립트로 문서의 내용, 구조, 스타일 등에 접근과 변경을 가능하게 하는 플랫폼 중립의 인터페이스를 의미한다. 따라서, 웹 취약점 분석 장치(100)는 DOM 정보로부터 HTML 문서에 포함된 URL, 태그 및 스크립트 등의 부분을 개별적으로 접근할 수 있다. 상기 DOM은 당해 기술 분야에서 널리 알려진 기술이므로 이에 대한 자세한 설명은 생략한다.
또한, 수집부(110)는 분석 대상 웹 페이지의 URL 정보가 주어지는 경우, 상기 분석 대상 웹 페이지와 연결된 하위 웹 페이지까지 크롤링할 수 있다. 이때, 상기 하위 웹 페이지에 포함된 웹 콘텐츠 또한 후술할 분석부(150)에 의해 취약점 분석이 수행될 수 있다.
또한, 수집부(100)는 크롤링 깊이(depth), 스레드(thread)의 개수 등 기 설정된 사용자 파라미터(parameter)에 따라 크롤링을 수행할 수 있다. . 여기서, 상기 크롤링 깊이는 웹 페이지 구성에 의해 결정되는 웹 페이지 깊이 중에서 크롤링이 수행되는 웹 페이지의 깊이를 의미한다. 또한, 상기 웹 페이지의 깊이는 예를 들어 분석 대상 웹 페이지를 루트 노드, 상기 분석 대상 웹 페이지의 하위 웹 페이지를 자식 노드로 하여 웹 페이지의 구성을 트리 형태로 도식화하였을 때 결정되는 트리의 깊이를 의미할 수 있다. 또한, 상기 스레드의 개수 파라미터는 크롤링을 수행하는 스레드의 개수를 의미할 수 있다. 상기 사용자 파라미터를 통해 분석 대상이 되는 웹 페이지의 범위 및 크롤링에 소요되는 컴퓨팅 자원이 적절하게 제어될 수 있다.
실시예에 따라, 수집부(110)는 분석 대상 웹페이지의 URL이 사용자에게 입력되지 않은 경우에도 자동으로 기 설정된 정책에 따라 크롤링을 수행할 수 있다. 예를 들어, 수집부(110)는 웹 브라우저(web browser)와 연동되어 웹 페이지 방문 히스토리, 북마크 등에 기록된 웹 페이지를 분석 대상 웹 페이지로 설정하고 크롤링을 수행할 수 있다.
추출부(130)는 수집부(110)에 의해 생성된 DOM 정보로부터 URL 정보, 스크립트 정보 및 스크립트 부분을 제외한 태그 정보 등을 추출한다. 도 3a에 도시된 바와 같이 추출부(130)는 URL 추출부(131), 태그 추출부(133), 스크립트 추출부(135) 및 파일 추출부(137)를 포함할 수 있다.
URL 추출부(131), 태그 추출부(133) 및 스크립트 추출부(135)는 각각 DOM 정보로부터 URL 정보, 태그 정보 및 스크립트 정보를 추출한다.
파일 추출부(137)는 상기 URL 정보가 가리키는 웹 페이지에 실행 가능한 파일이 존재하는 경우 상기 실행 파일을 다운로드 한다. 구현 방식에 따라, 상기 파일 추출부는 IE(Internet Explorer), 크롬(chrome) 등의 웹 브라우저(web browser)와 연동하여 상기 URL 정보가 가리키는 웹 페이지에 접속한 뒤 실행 파일을 다운로드 할 수 있으나, 이에 국한되는 것은 아니다.
분석부(150)는 추출부(130)가 추출한 URL 정보, 태그 정보, 스크립트 정보 및 파일 정보 등을 토대로 웹 페이지의 취약점을 분석한다. 도 3b에 도시된 바와 같이 분석부(150)는 URL 검사부(151), 태그 검사부(153), 스크립트 검사부(155), 파일 검사부(157) 및 액티브 스캔부(159)를 포함할 수 있다.
URL 검사부(151)는 URL 정보를 기초로 블랙 리스트 및/또는 화이트 리스트 기반의 URL 검사를 수행한다. 상기 URL 검사에 대한 자세한 설명은 도 6 내지 도 8을 참조하여 후술한다.
태그 검사부(153)는 태그 정보를 기초로 악성 태그 시그니처 기반의 태그 검사를 수행한다. 상기 태그 검사에 대한 자세한 설명은 도 10을 참조하여 후술한다.
스크립트 검사부(155)는 스크립트 정보를 기초로 스크립트 변조 검사, 시그니처 기반의 정적 검사, 난독화 검사 등을 수행한다. 상기 스크립트 검사에 대한 자세한 설명은 도 9를 참조하여 후술한다.
파일 검사부(157)는 다운로드 된 실행 파일에 대한 유포 여부를 검사한다. 또한, 상기 실행 파일에 대한 백신 검사를 더 수행할 수 있다.
액티브 스캔부(159)는 액티브 스캔(active scan) 방식의 웹 취약점 검사를 수행한다. 예를 들어, 상기 액티브 스캔부는 OWASP(Open Web Application Security Project)에서 발표된 주요 취약점에 대한 검사를 수행할 수 있다.
보다 자세하게는, 액티브 스캔부(159)는 인젝션(injection) 취약성 검사, 크로스사이트 스크립팅 검사, 쿠키 취약성 검사, XSS 보안 검사 등 OSWASP에서 발표된 주요 취약점에 대한 검사를 수행할 수 있다. 상술한 검사 방식은 당해 기술 분야에서 널리 알려진 것이므로 이에 대한 자세한 설명은 생략한다.
인터페이스부(170)는 시그니처 관리 시스템(500)과 연동하여 웹 취약성 검사에 이용되는 다양한 종류의 시그니처를 수신하여 저장하거나 갱신한다. 상기 다양한 종류의 시그니처는 상술한 바와 같으므로 이에 대한 설명은 생략한다.
인터페이스부(170)는 사용자에 의해 새로운 시그니처가 입력된 경우, 상기 새로운 시그니처를 상기 시그니처 관리 시스템으로 송신할 수도 있다.
지금까지 설명한 도 2 내지 도 3의 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
다음으로, 도 4는 본 발명의 또 다른 실시예에 따른 웹 취약점 분석 장치의 하드웨어 구성도이다.
도 4를 참조하면, 웹 취약점 분석 장치(100)는 하나 이상의 프로세서(101), 버스(105), 네트워크 인터페이스(107), 프로세서(101)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(103)와, 웹 취약점 분석 소프트웨어(109a)를 저장하는 스토리지(109)를 포함할 수 있다. 다만, 도 4에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 4에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(101)는 웹 취약점 분석 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(101)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(101)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 웹 취약점 분석 장치(100)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(103)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(103)는 본 발명의 실시예들에 따른 웹 취약점 분석 방법을 실행하기 위하여 스토리지(109)로부터 하나 이상의 프로그램(109a)을 로드할 수 있다. 도 4에서 메모리(103)의 예시로 RAM이 도시되었다.
버스(105)는 웹 취약점 분석 장치(100)의 구성 요소 간 통신 기능을 제공한다. 버스(105)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
네트워크 인터페이스(107)는 웹 취약점 분석 장치(100)의 유무선 인터넷 통신을 지원한다. 또한, 네트워크 인터페이스(107)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(107)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
네트워크 인터페이스(107)는 네트워크를 통해 도 1에 도시된 인터넷(300) 상에서 분석 대상 웹 페이지에 대한 웹 콘텐츠를 수집할 수 있다.
스토리지(109)는 상기 하나 이상의 프로그램(109a)을 비임시적으로 저장할 수 있다. 도 4에서 상기 하나 이상의 프로그램(109a)의 예시로 웹 취약점 분석 소프트웨어(109a)가 도시되었다. 상기 웹 취약점 분석 소프트웨어는 예를 들어 클라이언트 측 컴퓨팅 장치에 배포되는 소프트웨어 형태로 구현될 수 있다.
스토리지(109)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
웹 취약점 분석 소프트웨어(109a)는 본 발명의 실시예에 따라 사용자의 요청에 의해 분석 대상 웹 페이지에 대한 취약점 분석을 수행할 수 있다.
자세하게는, 웹 취약점 분석 소프트웨어(109a)는 메모리(103)에 로드되어, 하나 이상의 프로세서(101)에 의해, 분석 대상 웹 페이지의 URL을 획득하는 오퍼레이션, 상기 획득된 URL를 이용하여 상기 분석 대상 웹 페이지에 포함된 웹 콘텐츠를 크롤링하고, 상기 웹 콘텐츠에 대한 문서 객체 모델을 생성하는 오퍼레이션, 상기 문서 객체 모델에서 분석 대상 URL, 분석 대상 태그 및 분석 대상 스크립트를 추출하는 오퍼레이션, 상기 분석 대상 URL, 상기 분석 대상 태그 및 상기 분석 대상 스크립트에 대한 URL 검사, 태그 검사 및 스크립트 검사를 수행하는 오퍼레이션 및 상기 분석 대상 웹 페이지에 대한 액티브 스캔을 수행하는 오퍼레이션을 수행할 수 있다.
지금까지, 도 2 내지 도 4를 참조하여 본 발명의 실시예에 따른 웹 취약점 분석 장치(100)의 구성 및 동작에 대하여 설명하였다.
다음으로, 도 5 내지 도 10을 참조하여 본 발명의 또 다른 실시예에 따른 클라이언트 측 웹 취약점 분석 방법(이하, '웹 취약점 분석 방법')에 대하여 상세하게 설명한다. 이하, 상기 웹 취약점 분석 방법의 각 단계는, 클라이언트 측 컴퓨팅 장치인 웹 취약점 분석 장치(100)에 의해 수행되는 것으로 가정한다. 단, 설명의 편의를 위해 상기 웹 취약점 분석 방법에 포함되는 각 동작의 주체는 그 기재가 생략될 수 있음에 유의한다. 참고로, 웹 취약점 분석 방법의 각 단계는 웹 취약점 분석 소프트웨어(109a)가 프로세서(101)에 의해 실행됨으로써, 웹 취약점 분석 방법 장치(100)에서 수행되는 오퍼레이션일 수 있다.
먼저, 도 5는 본 발명의 또 다른 실시예에 따른 웹 취약점 분석 방법의 순서도이다.
도 5를 참조하면, 웹 취약점 분석 장치(100)는 분석 대상 웹 페이지의 URL을 획득한다(S100). 예를 들어, 상기 분석 대상 웹 페이지의 URL은 클라이언트 측 컴퓨팅 장치의 사용자가 특정 웹 페이지의 취약점을 점검하기 위해 입력한 URL을 의미할 수 있다. 단, 실시예에 따라 상기 분석 대상 웹 페이지의 URL은 사용자에게 입력되지 않은 경우에도 자동으로 기 설정된 정책에 따라 획득될 수 있다. 예를 들어, 상기 분석 대상 웹 페이지의 URL은 웹 브라우저(web browser)에서 관리되는 웹 페이지 방문 히스토리, 북마크 등을 이용하여 설정될 수 있다. 이와 같은 설정되는 경우, 사용자가 주로 방문하거나 다시 방문할 가능성이 높은 웹 페이지에 대하여 취약점 검사가 수행됨으로써 보다 효율적으로 취약점 검사가 수행될 수 있다.
다음으로, 웹 취약점 분석 장치(100)를 획득한 분석 대상 웹 페이지의 URL을 이용하여 상기 분석 대상 웹 페이지를 크롤링(crawling)한다(S200). 즉, 웹 취약점 분석 장치(100) 크롤링을 통해 상기 분석 대상 웹 페이지에 포함된 HTML(Hyper Text Mark-up Language) 문서 등의 웹 콘텐츠를 수집한다.
구현 방식에 따라, 웹 취약점 분석 장치(100)는 외부의 크롤러에게 상기 크롤링을 요청하고 결과를 수신할 수 있으며, 내장된 크롤러를 이용하여 직접 크롤링을 수행할 수도 있다. 또한, 상기 웹 취약점 분석 장치는 크롤링 깊이(depth), 스레드(thread)의 개수 등의 기 설정된 사용자 파라미터(parameter)에 따라 크롤링을 수행할 수 있다. 여기서, 상기 크롤링 깊이는 웹 페이지 구성에 의해 결정되는 웹 페이지 깊이 중에서 크롤링이 수행되는 웹 페이지의 깊이를 의미한다. 또한, 상기 웹 페이지의 깊이는 예를 들어 분석 대상 웹 페이지를 루트 노드, 상기 분석 대상 웹 페이지의 하위 웹 페이지를 자식 노드로 하여 웹 페이지의 구성을 트리 형태로 도식화하였을 때 결정되는 트리의 깊이를 의미할 수 있다. 또한, 상기 스레드의 개수는 크롤링을 수행하는데 이용되는 스레드의 개수를 의미할 수 있다. 상기 사용자 파라미터를 통해 분석 대상이 되는 웹 페이지의 범위 및 크롤링에 소요되는 컴퓨팅 자원이 적절하게 제어될 수 있다.
다음으로, 웹 취약점 분석 장치(100)는 수집된 분석 대상 웹 페이지에 대한 DOM 정보를 생성한다(S300). 예를 들어, 상기 웹 취약점 분석 장치는 수집된 HTML 문서를 파싱(parsing)하여 상기 DOM 정보를 생성할 수 있다.
다음으로, 웹 취약점 분석 장치(100)는 생성된 DOM 정보로부터 URL, 태그 및 상기 태그를 제외한 스크립트 정보를 별도로 추출한다(S400). 단, 구현 방식에 따라 상기 웹 취약점 분석 장치는 URL, 태그 및 상기 태그를 제외한 스크립트 정보 중 적어도 하나의 정보를 선택적으로 추출할 수도 있다. 즉, 상기 웹 취약점 분석 장치는 검사가 필요한 부분의 정보만을 선택적으로 추출할 수 있으며, 이는 구현 방식의 차이에 불과할 수 있다.
다음으로, 웹 취약점 분석 장치(100)는 분석 대상 웹 페이지에 대한 검사를 수행한다(S500). 웹 취약점 분석 장치(100)는 분석 대상 웹 페이지를 보다 철저하게 점검하기 위해 액티브 스캔 및 패시브 스캔 방식의 검사를 수행할 수 있다.
예를 들어, 상기 액티브 스캔은 OWASP에서 발표된 주요 취약점에 대한 검사를 포함할 수 있다. 또한, 상기 패시브 스캔은 예를 들어 시그니처 기반의 스크립트 및 태그 검사, 블랙리스트 기반의 URL 검사 등을 포함할 수 있다. 단, 구현 방식에 따라 액티브 스캔 및 패시브 스캔 중 어느 하나의 검사 방법을 선택적으로 수행할 수도 있다. 상술한 웹 페이지 검사 단계(S500)에 대한 자세한 설명은 도 6 내지 도 10을 참조하여 후술한다.
마지막으로, 웹 취약점 분석 장치(100)는 분석 대상 웹 페이지에 대한 취약성 검사 결과를 저장한다(S600). 상기 검사 결과에는 분석 대상 웹 페이지의 URL, 사용자 파라미터 중 크롤링 깊이로 결정되는 분석 대상 웹 페이지의 검사 범위, 취약점 분석 수행 날짜 및 취약점 검사 결과 등을 포함할 수 있다. 구현 방식에 따라, 웹 취약점 분석 장치(100)는 상기 취약성 검사 결과를 도식화된 보고서 형태로 생성할 수도 있다.
지금까지, 도 5를 참조하여 본 발명에 따른 웹 취약점 분석 방법에 대하여 설명하였다. 단, 상술한 웹 취약점 분석 방법은 본 발명의 목적을 달성하기 위한 바람직한 실시예일 뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다. 상술한 방법에 따르면, 클라이언트 측 컴퓨팅 장치에서 웹 취약점 분석을 수행함으로써, 스크립트 기반 사이버 공격에 따라 클라이언트 측에서 발생할 수 있는 다양한 피해를 예방할 수 있다. 예를 들어, 본 발명에 따른 웹 페이지 취약점 분석 방법을 수행함으로써 악성 스크립트 실행에 따라 클라이언트 측 컴퓨팅 장치가 DDoS 공격의 공격 자원으로 활용되거나, 상기 클라이언트 측 컴퓨티 장치에 있는 개인 정보 등이 유출되는 피해를 예방할 수 있다.
또한, 본 발명에 따르면 패시브 스캔 방법뿐만 아니라 액티브 스캔 방법을 동시에 활용함으로써, 분석 대상 웹 페이지의 취약점을 보다 철저하게 분석할 수 있다.
다음으로, 도 6 내지 도 10을 참조하여 본 발명의 몇몇 실시예에서 참조될 수 있는 분석 대상 웹 페이지의 검사 단계(S500)에 대하여 설명한다.
먼저, 도 6 내지 도 8은 분석 대상 웹 페이지의 검사 단계(S500)의 다양한 실시예를 설명하기 위한 도면이다.
도 6을 참조하면, 웹 취약점 분석 장치(100)는 단계(S400)에서 추출된 URL 정보, 태그 정보 및 스크립트 정보 각각에 대하여 검사를 수행할 수 있다. 보다 자세히 말하면, 상기 웹 취약점 분석 장치는 URL 정보에 대하여 블랙리스트 및/또는 화이트 리스트 기반의 URL 검사를 수행하고(S510), 태그 정보에 대하여 태그 시그니처 기반의 태그 검사를 수행하며(S500), 태그를 제외한 스크립트 정보에 대하여 시그니처 기반의 스크립트 검사를 각각 수행할 수 있다(S550). 또한, 도 6에 도시되지 않았으나, 상기 웹 취약점 분석 장치는 분석 대상 웹 페이지에 실행 가능한 파일이 존재하는 경우, 상기 실행 파일에 대한 유포 검사 및 백신 검사 또한 수행할 수 있다.
도 6에 도시된 방식은 분석 대상 웹 페이지를 철저하게 검사할 수 있는 반면 여과 없이 모든 웹 페이지에 대한 검사가 수행되는 점에서 다소 비효율적일 수 있다. 따라서, 본 발명의 다른 실시예에 따르면, 웹 취약점 분석 장치(100)는 먼저 블랙 및/또는 화이트 리스트 기반의 URL 검사를 수행하고, 상기 URL 검사 결과에 기초하여 스크립트 검사, 태그 검사 및 파일 검사 등을 선택적으로 수행할 수 있다. 도 7 내지 도 8을 참조하여 상기 실시예에 대하여 부연 설명한다.
도 7a 및 도 7b는 블랙 리스트 기반의 URL 검사 결과에 종속적으로 웹 취약점 검사를 수행하는 예를 도시한다.
도 7a를 참조하면, 웹 취약점 분석 장치(100)는 먼저, DOM 정보에서 추출된 URL 정보를 블랙 리스트의 URL과 비교한다(S511). 비교 결과, 추출된 URL 정보와 블랙 리스트의 URL과 동일한 경우, 웹 취약점 분석 장치(100)는 추가적인 검사를 수행하지 않을 수 있다(S513). 그러나 비교 결과, 추출된 URL 정보와 블랙 리스트의 URL과 상이한 경우, 웹 취약점 분석 장치(100)는 해당 URL이 가리키는 분석 대상 웹 페이지에 대하여 스크립트 검사 및 태그 검사를 수행할 수 있다(S530, S550). 또는, 기 설정된 정책에 따라 스크립트 검사 및 태그 검사 중 적어도 하나의 검사가 수행될 수도 있다.
도 7a에 도시된 실시예에 따라 검사가 수행되는 경우, 도 7b에 도시된 바와 같이 웹 취약점 분석 장치(100)가 검사하는 검사 영역(620)은 사용자가 입력한 URL을 기초로 수집된 검사 영역(610)에 비해 줄어들게 된다. 따라서, 웹 취약점 분석 장치(100)는 보다 효율적으로 웹 취약점 분석 방법을 수행할 수 있다.
다음으로, 도 8a 및 도 8b는 블랙 리스트 및 화이트 리스트 기반의 URL 검사 결과에 종속적으로 웹 취약점 검사를 수행하는 실시예에 대하여 설명한다.
도 8a를 참조하면, 웹 취약점 분석 장치(100)는 블랙 리스트 기반의 URL 검사를 수행하고(S511, S513), 화이트 리스트 기반의 URL 검사를 추가로 수행할 수 있다(S515, S517). 단, 상기 화이트 리스트 기반의 URL 검사와 블랙 리스트 기반의 URL 검사는 구현 방식에 따라 동시에 수행되거나 순서가 변경될 수도 있다.
여기서, 상기 화이트 리스트는 블랙 리스트의 반대 개념으로 안정성이 검증된 웹 페이지의 URL 목록을 의미하고, 상기 화이트 리스트는 사용자에 의해 설정된 웹 페이지의 URL 목록과 시그니처 관리 장치(500)이 제공한 웹 페이지의 URL 목록을 포함할 수 있다. 실시예에 따라, 상기 사용자에 의해 설정된 웹 페이지의 URL 목록은 웹 브라우저에 설정된 신뢰할 수 있는 사이트 목록으로 설정될 수 있다.
웹 취약점 분석 장치(100)는 블랙 리스트에 포함된 URL의 경우 악성이 포함된 것으로 결정된 웹 페이지이므로 추가적인 검사를 수행하지 않고, 화이트 리스트에 포함된 URL의 경우 안정성이 검증된 웹 페이지에 해당하므로 추가적인 검사를 수행하지 않을 수 있다.
이에 따라, 도 8b에 도시된 바와 같이, 웹 취약점 분석 장치(100)가 검사하는 검사 영역(630)은 사용자가 입력한 URL을 기초로 수집된 검사 영역(610)에 비해 더욱 줄어들기 때문에 상기 웹 취약점 분석 장치는 보다 효율적으로 웹 취약점 분석 방법을 수행할 수 있다. 또한, 화이트 리스트 기반의 URL 검사를 통해 안정성이 검증된 웹 페이지를 검사 대상에서 제외하는 경우, 안정성이 검증된 웹 페이지임에도 악성으로 판단되는 거짓 긍정 오류를 줄일 수 있다.
한편, 본 발명의 실시예 따르면 웹 취약점 분석 장치(100)는 URL이 가리키는 도메인의 종류, 상기 URL이 가리키는 웹 페이지에서 제공되는 서비스의 종류, 상기 URL이 가리키는 웹 페이지의 방문 횟수 등에 따라 스크립트 검사, URL 검사, 태그 검사 및 액티브 스캔 등을 선택적으로 설정하여 웹 취약점 검사를 수행할 수 있다.
예를 들어, URL의 도메인이 대학(ac), 정부기관(go) 등인 경우 신뢰도가 높은 점을 고려하여 일부의 검사만을 수행할 수 있다. 즉, 도 8a에 도시된 방식으로 검사를 수행하거나, 스크립트 검사, URL 검사 및 태그 검사 중 일부만 수행하거나, 액티브 스캔을 제외하고 취약점 검사를 수행할 수 있고, 이는 사용자의 설정에 따라 달라질 수 있다.
다른 예로, 웹 취약점 분석 장치(100)는 웹 페이지에서 제공되는 서비스가 금융 관련 서비스인 경우, 스크립트 검사, URL 검사 및 태그 검사를 모두 수행하고, 액티브 스캔까지 수행할 수 있다. 단, 이 또한 사용자의 설정에 따라 달라질 수 있다.
또 다른 예로, 웹 취약점 분석 장치(100)는 웹 페이지의 방문 횟수가 많은 경우, 스크립트 검사, URL 검사 및 태그 검사를 모두 수행하고, 액티브 스캔까지 수행할 수 있다. 단, 이 또한 사용자의 설정에 따라 달라질 수 있다. 상기 방문 횟수는 실시예에 따라 웹 브라우저의 방문 히스토리에 나타난 URL의 빈도수를 카운트함으로써 획득될 수 있다.
지금까지, 도 6 내지 도 8을 참조하여 분석 대상 웹 페이지의 검사 단계(S500)의 다양한 실시예에 대하여 설명하였다. 상술한 실시예에 따르면, 화이트 리스트를 이용한 URL 검사를 수행함으로써, 정상 페이지를 악성으로 판단하는 거짓 긍정 오류를 최소화할 수 있고, 블랙 리스트 및 화이트 리스트에 해당되는 영역을 제외한 그레이 리스트 영역에 대한 분석만을 수행함으로써 보다 효율적으로 웹 취약점 분석을 수행할 수 있다.
다음으로, 도 9 및 도 10를 참조하여 스크립트 검사 단계(S500) 및 태그 검사 단계(S550)에 대하여 설명한다.
먼저, 도 9는 본 발명의 몇몇 실시예에서 참조될 수 있는 스크립트 검사 단계(S500)의 상세 순서도이다.
도 9를 참조하면, 웹 취약점 분석 장치(100)는 DOM 정보에서 추출된 스크립트의 해시 값을 산출한다(S531). 예를 들어, 웹 취약점 분석 장치(100)는 당해 기술 분야에서 널리 알려진 하나 이상의 해시 함수를 이용하여 상기 스크립트의 해시 값을 산출할 수 있고, 상기 해시 함수는 예를 들어 MD5, SHA-1, SHA-2 등을 포함할 수 있다.
다음으로, 웹 취약점 분석 장치(100)는 기 설정된 해시 값과 산출된 해시 값을 비교하여(S533), 스크립트의 변조 여부를 검사한다. 여기서, 상기 기 설정된 해시 값은 변조되지 않은 스크립트에 대한 해시 값이고, 상기 변조되지 않은 스크립트에 대한 해시 값은 사용자 또는 외부의 시그니처 관리 장치(500)에 의해 결정될 수 있다.
웹 취약점 분석 장치(100)는 비교 결과 동일한 해시 값이 존재하는 경우, 변조되지 않은 안전한 스크립트로 판단하고 정적 검사를 수행하지 않을 수 있다(S535). 이와 반대로, 비교 결과 동일한 해시 값이 존재하지 않는 경우, 웹 취약점 분석 장치(100)는 스크립트가 변조되었다고 판단하고 정적 검사 및 난독화 검사를 추가로 수행할 수 있다(S535, S537, S539). 여기서, 상기 정적 검사는 다음과 같이 수행될 수 있다.
웹 취약점 분석 장치(100)는 기 설정된 악성 시그니처 기반으로 DOM 정보에서 추출된 스크립트에서 상기 악성 시그니처가 탐지되는지를 검사하고, 상기 악성 시그니처가 탐지된 경우 기 설정된 시그니처 화이트 리스트 기반으로 상기 추출된 스크립트에서 정상 시그니처가 탐지되는지 검사를 수행한다. 여기서 상기 악성 시그니처는 예를 들어 YARA 시그니처가 될 수 있고, 상기 시그니처 화이트 리스트는 정상 스크립트에 대한 시그니처인 정상 시그니처를 포함할 수 있다. 상술한 방법에 따라 정적 검사를 수행함으로써 YARA 시그니처에 의해 정상 스크립트가 악성으로 판단되는 거짓 긍정 오류를 최소화할 수 있다.
실시예에 따라 먼저 정상 시그니처 기반으로 DOM 정보에서 추출된 스크립트에 대한 검사를 수행하고, 정상 시그니처가 탐지되는 경우 악성 시그니처 기반 정적 검사를 수행하지 않을 수도 있다.
참고로, 상기 악성 시그니처 또는 상기 정상 시그니처는 사용자 또는 외부의 시그니처 관리 장치(500)에 의해 제공되고, 상기 악성 시그니처 또는 상기 정상 시그니처는 외부의 시그니처 관리 장치(500)에 의해 주기 또는 비주기적으로 갱신될 수 있다.
정적 검사 결과 악성 시그니처가 탐지되고 정상 시그니처는 탐지되지 않은 경우 또는 스크립트가 난독화된 경우 웹 취약점 분석 장치(100)는 해당 스크립트를 악성 스크립트로 결정할 수 있다.
다음으로, 도 10을 참조하여 태그 검사 단계(S550)에 대하여 설명한다.
도 10을 참조하면, 웹 취약점 분석 장치(100)는 DOM 정보에서 추출된 태그 정보를 악성 시그니처와 비교하여 태그의 취약성 검사를 수행할 수 있다. 구체적으로, 웹 취약점 분석 장치(100)는 DOM 정보에서 추출된 태그 및 태그의 속성 정보에 기 설정된 악성 태그 시그니처가 존재하는지 비교하고(S551), 상기 악성 태그 시그니처가 존재하는 경우 악성 태그가 존재하는 것으로 판단할 수 있다(S553, S557). 이와 반대로, 상기 악성 태그 시그니처가 존재하지 않는 경우, 웹 취약점 분석 장치(100)는 추출된 태그에 악성 태그가 존재하지 않는다고 판단할 수 있다(S553, S555).
지금까지, 도 9 내지 도 10을 참조하여 스크립트 검사 단계(S500) 및 태그 검사 단계(S550)에 대하여 설명하였다. 상술한 바와 같이, 본 발명의 몇몇 실시예에 따르면, 상기 스크립트 검사 단계 및 상기 태그 검사 단계는 URL 검사 결과에 종속적으로 수행될 수 있음에 유의한다.
지금까지 도 5 내지 도 10을 참조하여 설명된 본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (15)

  1. 분석 대상 웹 페이지의 URL을 획득하고, 상기 획득된 URL를 이용하여 상기 분석 대상 웹 페이지에 포함된 웹 콘텐츠를 크롤링하며, 상기 웹 콘텐츠에 대한 문서 객체 모델을 생성하는 수집부;
    상기 문서 객체 모델에서 분석 대상 URL, 분석 대상 태그 및 분석 대상 스크립트를 추출하는 추출부; 및
    상기 분석 대상 URL, 상기 분석 대상 태그 및 상기 분석 대상 스크립트에 대한 URL 검사, 태그 검사 및 스크립트 검사를 수행하고, 상기 분석 대상 웹 페이지에 대한 액티브 스캔을 수행하는 분석부를 포함하는,
    클라이언트 측 웹 취약점 분석 장치.
  2. 제1 항에 있어서,
    상기 분석부는 URL 검사부, 태그 검사부 및 스크립트 검사부를 포함하고,
    상기 URL 검사부는 상기 분석 대상 URL이 기 설정된 블랙 리스트에 포함되는지에 대한 검사를 수행하고,
    상기 태그 검사부는 상기 분석 대상 태그에서 기 설정된 악성 태그의 시그니처가 탐지되는지에 대한 검사를 수행하고,
    상기 스크립트 검사부는 상기 분석 대상 스크립트에서 기 설정된 시그니처가 탐지되는지에 대한 정적 검사를 수행하는,
    클라이언트 측 웹 취약점 분석 장치.
  3. 제2 항에 있어서,
    상기 태그 검사부 및 상기 스크립트 검사부는 상기 분석 대상 URL이 상기 기 설정된 블랙 리스트에 포함되지 않는 경우에 한하여 검사를 수행하는,
    클라이언트 측 웹 취약점 분석 장치.
  4. 제2 항에 있어서,
    상기 URL 검사부는 상기 분석 대상 URL이 기 설정된 화이트 리스트에 포함되는지에 대한 검사를 수행하고,
    상기 태그 검사부 및 상기 스크립트 검사부는 상기 분석 대상 URL이 상기 기 설정된 블랙 리스트 및 상기 기 설정된 화이트 리스트에 포함되지 않는 경우에 한하여 검사를 수행하는,
    클라이언트 측 웹 취약점 분석 장치.
  5. 제2 항에 있어서,
    상기 정적 검사는,
    상기 분석 대상 스크립트에서 기 설정된 악성 시그니처가 탐지되는지에 대한 제1 정적 검사 및 상기 분석 대상 스크립트에서 기 설정된 정상 시그니처가 탐지되는지에 대한 제2 정적 검사를 포함하되,
    상기 제2 정적 검사는 상기 제1 정적 검사 결과 상기 분석 대상 스크립트에서 상기 기 설정된 악성 시그니처가 탐지된 경우에 한하여 수행되는 것인,
    클라이언트 측 웹 취약점 분석 장치.
  6. 제2 항에 있어서,
    상기 스크립트 검사부는,
    상기 분석 대상 스크립트의 해시 값과 기 설정된 해시 값을 비교하여 상기 분석 대상 스크립트의 변조 여부에 대한 검사를 수행하고, 상기 분석 대상 스크립트가 변조된 경우에 한하여 상기 정적 검사를 수행하는,
    클라이언트 측 웹 취약점 분석 장치.
  7. 제1 항에 있어서,
    상기 URL 검사, 상기 태그 검사 및 상기 스크립트 검사에 이용되는 시그니처 정보를 시그니처 관리 장치로부터 수신하여 저장하는 인터페이스부를 더 포함하는,
    클라이언트 측 웹 취약점 분석 장치.
  8. 분석 대상 웹 페이지의 URL을 획득하는 단계;
    상기 획득된 URL를 이용하여 상기 분석 대상 웹 페이지에 포함된 웹 콘텐츠를 크롤링하고, 상기 웹 콘텐츠에 대한 문서 객체 모델을 생성하는 단계;
    상기 문서 객체 모델에서 분석 대상 URL, 분석 대상 태그 및 분석 대상 스크립트를 추출하는 단계;
    상기 분석 대상 URL, 상기 분석 대상 태그 및 상기 분석 대상 스크립트에 대한 URL 검사, 태그 검사 및 스크립트 검사를 수행하는 단계; 및
    상기 분석 대상 웹 페이지에 대한 액티브 스캔을 수행하는 단계를 포함하는,
    클라이언트 측 웹 취약점 분석 방법.
  9. 제8 항에 있어서,
    상기 URL 검사, 태그 검사 및 스크립트 검사를 수행하는 단계는,
    상기 분석 대상 URL이 기 설정된 블랙 리스트에 포함되는지에 대한 URL 검사를 수행하는 단계;
    상기 분석 대상 태그에서 기 설정된 악성 태그의 시그니처가 탐지되는지에 대한 태그 검사를 수행하는 단계; 및
    상기 분석 대상 스크립트에서 기 설정된 시그니처가 탐지되는지에 대한 스크립트 검사를 수행하는 단계를 포함하는,
    클라이언트 측 웹 취약점 분석 방법.
  10. 제9 항에 있어서,
    상기 태그 검사를 수행하는 단계 및 상기 기 설정된 시그니처가 탐지되는지에 대한 스크립트 검사를 수행하는 단계는,
    상기 분석 대상 URL이 상기 기 설정된 블랙 리스트에 포함되지 않는 경우에 한하여 수행되는,
    클라이언트 측 웹 취약점 분석 방법.
  11. 제9 항에 있어서,
    상기 URL 검사, 태그 검사 및 스크립트 검사를 수행하는 단계는,
    상기 분석 대상 URL이 기 설정된 화이트 리스트에 포함되는지에 대한 검사를 수행하는 단계를 포함하고,
    상기 태그 검사를 수행하는 단계 및 상기 기 설정된 시그니처가 탐지되는지에 대한 스크립트 검사를 수행하는 단계는,
    상기 분석 대상 URL이 상기 기 설정된 블랙 리스트 및 상기 기 설정된 화이트 리스트에 포함되지 않는 경우에 한하여 수행되는,
    클라이언트 측 웹 취약점 분석 방법.
  12. 제9 항에 있어서,
    상기 기 설정된 시그니처가 탐지되는지에 대한 스크립트 검사를 수행하는 단계는,
    상기 분석 대상 스크립트에서 기 설정된 악성 시그니처가 탐지되는지에 대한 제1 정적 검사를 수행하는 단계; 및
    상기 제1 정적 검사의 수행 결과, 상기 분석 대상 스크립트에서 상기 기 설정된 악성 시그니처가 탐지된 경우 상기 분석 대상 스크립트에서 기 설정된 정상 시그니처가 탐지되는지에 대한 제2 정적 검사를 수행하는 단계를 포함하는,
    클라이언트 측 웹 취약점 분석 방법.
  13. 제9 항에 있어서,
    상기 기 설정된 시그니처가 탐지되는지에 대한 스크립트 검사를 수행하는 단계는,
    상기 분석 대상 스크립트의 해시 값과 기 설정된 해시 값을 비교하여 상기 분석 대상 스크립트의 변조 여부에 대한 검사를 수행하는 단계; 및
    상기 분석 대상 스크립트가 변조된 경우에 한하여, 상기 기 설정된 시그니처가 탐지되는지에 대한 스크립트 검사를 수행하는 단계를 포함하는,
    클라이언트 측 웹 취약점 분석 방법.
  14. 제8 항에 있어서,
    상기 URL 검사, 상기 태그 검사 및 상기 스크립트 검사에 이용되는 시그니처 정보를 시그니처 관리 장치로부터 수신하여 저장하는 단계를 더 포함하는,
    클라이언트 측 웹 취약점 분석 방법.
  15. 컴퓨팅 장치와 결합하여,
    분석 대상 웹 페이지의 URL을 획득하는 단계;
    상기 획득된 URL를 이용하여 상기 분석 대상 웹 페이지에 포함된 웹 콘텐츠를 크롤링하고, 상기 웹 콘텐츠에 대한 문서 객체 모델을 생성하는 단계;
    상기 문서 객체 모델에서 분석 대상 URL, 분석 대상 태그 및 분석 대상 스크립트를 추출하는 단계;
    상기 분석 대상 URL, 상기 분석 대상 태그 및 상기 분석 대상 스크립트에 대한 URL 검사, 태그 검사 및 스크립트 검사를 수행하는 단계; 및
    상기 분석 대상 웹 페이지에 대한 액티브 스캔을 수행하는 단계를 실행시키기 위하여 기록매체에 저장된,
    컴퓨터 프로그램.
KR1020160179785A 2016-12-27 2016-12-27 클라이언트 측 웹 취약점 분석 방법 및 장치 KR101902747B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160179785A KR101902747B1 (ko) 2016-12-27 2016-12-27 클라이언트 측 웹 취약점 분석 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160179785A KR101902747B1 (ko) 2016-12-27 2016-12-27 클라이언트 측 웹 취약점 분석 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20180075881A true KR20180075881A (ko) 2018-07-05
KR101902747B1 KR101902747B1 (ko) 2018-10-01

Family

ID=62920258

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160179785A KR101902747B1 (ko) 2016-12-27 2016-12-27 클라이언트 측 웹 취약점 분석 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101902747B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109711166A (zh) * 2018-12-17 2019-05-03 北京知道创宇信息技术有限公司 漏洞检测方法及装置
CN109936560A (zh) * 2018-12-27 2019-06-25 上海银行股份有限公司 恶意软件防护方法及装置
KR102089946B1 (ko) * 2019-07-17 2020-03-17 주식회사 에프원시큐리티 슬라이딩 윈도우 기반 웹쉘 탐지 장치 및 방법
CN110909361A (zh) * 2019-11-08 2020-03-24 北京长亭未来科技有限公司 一种漏洞检测方法,装置和计算机设备
CN111949916A (zh) * 2020-08-20 2020-11-17 深信服科技股份有限公司 一种网页分析方法、装置、设备及存储介质
KR102495371B1 (ko) * 2022-05-13 2023-02-06 프라이빗테크놀로지 주식회사 애플리케이션 검사에 기반하여 데이터 플로우를 제어하기 위한 시스템 및 그에 관한 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4935399B2 (ja) * 2007-02-13 2012-05-23 日本電気株式会社 セキュリティ運用管理システム、方法およびプログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109711166A (zh) * 2018-12-17 2019-05-03 北京知道创宇信息技术有限公司 漏洞检测方法及装置
CN109711166B (zh) * 2018-12-17 2020-12-11 北京知道创宇信息技术股份有限公司 漏洞检测方法及装置
CN109936560A (zh) * 2018-12-27 2019-06-25 上海银行股份有限公司 恶意软件防护方法及装置
KR102089946B1 (ko) * 2019-07-17 2020-03-17 주식회사 에프원시큐리티 슬라이딩 윈도우 기반 웹쉘 탐지 장치 및 방법
CN110909361A (zh) * 2019-11-08 2020-03-24 北京长亭未来科技有限公司 一种漏洞检测方法,装置和计算机设备
CN111949916A (zh) * 2020-08-20 2020-11-17 深信服科技股份有限公司 一种网页分析方法、装置、设备及存储介质
CN111949916B (zh) * 2020-08-20 2024-04-09 深信服科技股份有限公司 一种网页分析方法、装置、设备及存储介质
KR102495371B1 (ko) * 2022-05-13 2023-02-06 프라이빗테크놀로지 주식회사 애플리케이션 검사에 기반하여 데이터 플로우를 제어하기 위한 시스템 및 그에 관한 방법

Also Published As

Publication number Publication date
KR101902747B1 (ko) 2018-10-01

Similar Documents

Publication Publication Date Title
KR101902747B1 (ko) 클라이언트 측 웹 취약점 분석 방법 및 장치
US8752183B1 (en) Systems and methods for client-side vulnerability scanning and detection
US8800042B2 (en) Secure web application development and execution environment
KR101001132B1 (ko) 웹 어플리케이션의 취약성 판단 방법 및 시스템
US20170316202A1 (en) Rasp for scripting languages
Rathnayaka et al. An efficient approach for advanced malware analysis using memory forensic technique
US11044268B2 (en) Systems and methods for identifying internet attacks
CN103001817B (zh) 一种实时检测网页跨域请求的方法和装置
CN104468477A (zh) 一种WebShell的检测方法及系统
US20140137190A1 (en) Methods and systems for passively detecting security levels in client devices
CN107896219B (zh) 一种网站脆弱性的检测方法、系统及相关装置
US20130263266A1 (en) Systems and methods for automated malware artifact retrieval and analysis
US20180075233A1 (en) Systems and methods for agent-based detection of hacking attempts
CN111783096B (zh) 检测安全漏洞的方法和装置
CN110417718B (zh) 处理网站中的风险数据的方法、装置、设备及存储介质
CN105512559A (zh) 一种用于提供访问页面的方法与设备
US11792221B2 (en) Rest API scanning for security testing
CN113315767B (zh) 一种电力物联网设备安全检测系统及方法
EP3021550A1 (en) System and method for identifying internet attacks
US20160134658A1 (en) Unauthorized access detecting system and unauthorized access detecting method
CN114666104A (zh) 一种渗透测试方法、系统、计算机设备以及存储介质
Lin et al. Phish in sheep's clothing: Exploring the authentication pitfalls of browser fingerprinting
KR101372906B1 (ko) 악성코드를 차단하기 위한 방법 및 시스템
Pazos et al. XSnare: application-specific client-side cross-site scripting protection
KR101725404B1 (ko) 웹사이트 점검 장치 및 그 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant