KR101481910B1 - 웹 페이지의 비정상 정보 탐지 장치 및 방법 - Google Patents

웹 페이지의 비정상 정보 탐지 장치 및 방법 Download PDF

Info

Publication number
KR101481910B1
KR101481910B1 KR1020130096848A KR20130096848A KR101481910B1 KR 101481910 B1 KR101481910 B1 KR 101481910B1 KR 1020130096848 A KR1020130096848 A KR 1020130096848A KR 20130096848 A KR20130096848 A KR 20130096848A KR 101481910 B1 KR101481910 B1 KR 101481910B1
Authority
KR
South Korea
Prior art keywords
web page
script
unit
tag
abnormal information
Prior art date
Application number
KR1020130096848A
Other languages
English (en)
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 KR1020130096848A priority Critical patent/KR101481910B1/ko
Application granted granted Critical
Publication of KR101481910B1 publication Critical patent/KR101481910B1/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/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems

Abstract

웹 페이지의 비정상 정보를 탐지하는 장치 및 방법이 개시된다.
비정상 정보 탐지 장치는 네트워크 상에 존재하는 웹 페이지를 수집하는 웹 페이지 수집부; 상기 웹 페이지의 태그를 분석하는 태그 분석부; 상기 웹 페이지의 스크립트를 분석하는 스크립트 분석부; 및 상기 태그의 분석 결과와 상기 스크립트의 분석 결과를 이용하여 상기 웹 페이지에서 비정상 정보를 탐지하는 비정상 정보 탐지부를 포함할 수 있다.

Description

웹 페이지의 비정상 정보 탐지 장치 및 방법{APPARATUS AND METHOD FOR MONITORING SUSPICIOUS INFORMATION IN WEB PAGE}
본 발명은 웹 페이지의 비정상 정보 탐지 장치 및 방법에 관한 것으로, 보다 상세하게는 웹 페이지의 태그와 스크립트를 분석하고, 분석 결과들을 모두 고려하여 비정상 정보를 탐지하는 장치 및 방법에 관한 것이다.
악성 코드와 같이 단말기에 피해를 주는 비정상 정보가 웹 페이지에 포함되는 경우가 발생하고 있으므로, 웹 페이지에서 비정상 정보를 탐지하는 장치가 개발되었다.
한국공개특허 제10-2012-0071826호(공개일 2012년 07월 03일)에는 악성 코드 경유-유포지를 탐지하는 기술이 개시되어 있다.
그러나, 종래 기술은 사회적 이슈 키워드를 수집하고, 수집된 상기 사회적 이슈 키워드로부터 잠재적 악성코드 경유-유포지 주소를 수집하여 의심정보를 탐지하고 있으므로, 사회적 이슈 키워드와 상이한 웹 페이지에 포함된 비정상 정보를 탐지하기 어려운 점이 있었다. 또한, 종래 기술은 쓰기 기능을 수행하는 함수 호출의 횟수를 악의적인 자바스크립트 코드의 특징 점으로 정의하고 있으므로, DOM 객체에 쓰여진 코드가 실제 수행하는 기능이 비정상 행위인 경우는 탐지할 수 없다는 한계도 있었다.
따라서, 광범위한 웹 페이지에서 비정상 정보를 탐지하며, 코드가 수행하는 기능을 기초로 비정상 정보를 탐지하는 방법이 요청되고 있다.
본 발명은 네트워크 상에 존재하는 웹 사이트, 및 상기 웹 사이트와 링크된 다른 웹 사이트를 수집하고, 수집한 웹 사이트의 비정상 정보를 탐지함으로써, 사용자가 잠재적으로 방문할 수 있는 웹 페이지까지 광범위하게 비정상 정보를 탐지하는 비정상 정보 탐지 장치 및 방법을 제공할 수 있다.
또한, 본 발명은 웹 페이지나 스크립트에 포함된 태그를 정적으로 분석하고, 스크립트를 에뮬레이팅한 결과를 동적으로 분석하며, 동적 분석 결과와 정적 분석 결과를 모두 고려하여 비정상 정보를 탐지함으로써, 비정상 정보의 탐지 성능을 높이는 장치 및 방법을 제공할 수 있다.
본 발명의 일실시예에 따른 비정상 정보 탐지 장치는 네트워크 상에 존재하는 웹 페이지를 수집하는 웹 페이지 수집부; 상기 웹 페이지의 태그를 분석하는 태그 분석부; 상기 웹 페이지의 스크립트를 분석하는 스크립트 분석부; 및 상기 태그의 분석 결과와 상기 스크립트의 분석 결과를 이용하여 상기 웹 페이지에서 비정상 정보를 탐지하는 비정상 정보 탐지부를 포함할 수 있다.
본 발명의 일실시예에 따른 비정상 정보 탐지 장치의 웹 페이지 수집부는 네트워크 상에 존재하는 웹 페이지 중 비정상 정보를 분석할 적어도 하나의 웹 페이지를 선택하는 웹 페이지 선택부; 선택한 웹 페이지를 검사 대상 리스트에 추가하는 검사 대상 관리부; 및 검사 대상 리스트에 포함된 웹 페이지들의 분석 순서를 스케줄링 하는 스케줄링부를 포함할 수 있다.
본 발명의 일실시예에 따른 비정상 정보 탐지 장치의 검사 대상 관리부는 상기 검사 대상 리스트에 상기 태그 분석부 및 상기 스크립트 분석부가 분석한 적 있는 웹 페이지가 추가되고, 추가된 웹 페이지가 분석 후 변화하지 않은 경우, 상기 검사 대상 리스트에서 상기 추가된 웹 페이지를 삭제할 수 있다.
본 발명의 일실시예에 따른 비정상 정보 탐지 장치의 태그 분석부는 상기 웹 페이지에 포함된 문자열의 개수를 분석하는 문자열 개수 분석부; 상기 웹 페이지에 포함된 태그 중 아이프레임(iframe)의 스타일 또는 속성을 분석하는 아이프레임 분석부; 상기 웹 페이지의 엔트로피를 분석하는 엔트로피 분석부; 및 상기 웹 페이지에 포함된 특정 시그니처를 탐지하는 시그니처 탐지부 중 적어도 하나를 포함할 수 있다.
본 발명의 일실시예에 따른 비정상 정보 탐지 장치의 문자열 개수 분석부는 상기 웹 페이지에 포함된 문자열 중 특정 문자의 개수가 임계 값 이상인 경우, 상기 웹 페이지에 비정상 정보가 포함된 것으로 분석할 수 있다.
본 발명의 일실시예에 따른 비정상 정보 탐지 장치의 아이프레임 분석부는 상기 아이프레임(iframe)의 스타일 또는 속성이 화면에 표시되지 않는 형태인 경우, 상기 웹 페이지에 비정상 정보가 포함된 것으로 분석할 수 있다.
본 발명의 일실시예에 따른 비정상 정보 탐지 장치의 엔트로피 분석부는 웹 페이지에 포함된 구문의 라인당 글자 개수가 임계 값 이상이고, 상기 구문에 포함된 숫자의 비율이 임계값 이상인 경우, 상기 웹 페이지에 비정상 정보가 포함된 것으로 분석할 수 있다.
본 발명의 일실시예에 따른 비정상 정보 탐지 장치의 스크립트 분석부는 상기 웹 페이지에 포함된 스크립트의 타입을 판단하는 스크립트 타입 판단부; 상기 스크립트의 타입에 따라 상기 스크립트를 에뮬레이팅(emulating)하는 에뮬레이팅부; 및 상기 스크립트를 에뮬레이팅한 결과를 분석하는 결과 분석부를 포함할 수 있다.
본 발명의 일실시예에 따른 비정상 정보 탐지 장치의 스크립트 분석부는 상기 스크립트를 에뮬레이팅하기 전에 상기 스크립트에 포함된 특정 시그니처를 탐지하는 제1 시그니처 탐지부; 및 상기 스크립트의 에뮬레이팅 결과에 따라 웹 페이지에 쓰여진 특정 시그니처를 탐지하는 제2 시그니처 탐지부를 더 포함할 수 있다.
본 발명의 일실시예에 따른 비정상 정보 탐지 장치의 에뮬레이팅부는 상기 스크립트의 타입이 스크립트 태그인 경우, 상기 웹 페이지의 스크립트 노드에 포함된 스크립트 및 src 속성 정보를 추출하여 상기 스크립트를 에뮬레이팅할 수 있다.
본 발명의 일실시예에 따른 비정상 정보 탐지 장치는 스크립트의 타입이 자바 스크립트인 경우, 상기 스크립트를 검사 대상 리스트에 추가하는 검사 대상 리스트 추가부를 더 포함할 수 있다.
본 발명의 일실시예에 따른 비정상 정보 탐지 방법은 네트워크 상에 존재하는 웹 페이지를 수집하는 단계; 상기 웹 페이지의 태그를 분석하는 단계; 상기 웹 페이지의 스크립트를 분석하는 단계; 및 상기 태그의 분석 결과와 상기 스크립트의 분석 결과를 이용하여 상기 웹 페이지에서 비정상 정보를 탐지하는 단계를 포함할 수 있다.
본 발명의 일실시예에 의하면, 네트워크 상에 존재하는 웹 사이트, 및 상기 웹 사이트와 링크된 다른 웹 사이트를 수집하고, 수집한 웹 사이트의 비정상 정보를 탐지함으로써, 사용자가 잠재적으로 방문할 수 있는 웹 페이지까지 광범위하게 비정상 정보를 탐지할 수 있다.
또한, 본 발명의 일실시예에 의하면, 웹 페이지나 스크립트에 포함된 태그를 정적으로 분석하고, 스크립트를 에뮬레이팅한 결과를 동적으로 분석하며, 동적 분석 결과와 정적 분석 결과를 모두 고려하여 비정상 정보를 탐지함으로써, 비정상 정보의 탐지 성능을 높일 수 있다.
도 1은 본 발명의 일실시예에 따른 비정상 정보 탐지 장치를 나타내는 도면이다.
도 2는 본 발명의 일실시예에 따른 웹 페이지 수집부를 나타내는 도면이다.
도 3은 본 발명의 일실시예에 따른 웹 페이지 수집 과정의 일례이다.
도 4는 본 발명의 일실시예에 따른 태그 분석부를 나타내는 도면이다.
도 5는 본 발명의 일실시예에 따른 아이프레임 분석 결과의 일례이다.
도 6은 본 발명의 일실시예에 따른 엔트로피 분석 결과의 일례이다.
도 7은 본 발명의 일실시예에 따른 시그니처 탐지 결과의 일례이다.
도 8는 본 발명의 일실시예에 따른 스크립트 분석부를 나타내는 도면이다.
도 9는 본 발명의 일실시예에 따른 비정상 정보 탐지 방법을 도시한 플로우차트이다.
도 10은 본 발명의 일실시예에 따른 웹 페이지 수집 방법을 도시한 플로우차트이다.
도 11은 본 발명의 일실시예에 따른 태그 분석 방법을 도시한 플로우차트이다.
도 12는 본 발명의 일실시예에 따른 스크립트 분석 방법을 도시한 플로우차트이다.
도 13은 본 발명의 일실시예에 따른 자바 스크립트 분석 방법을 도시한 플로우차트이다.
도 14는 본 발명의 일실시예에 따른 에뮬레이팅 방법을 도시한 플로우차트이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 본 발명의 일실시예에 따른 비정상 정보 탐지 방법은 비정상 정보 탐지 장치에 의해 수행될 수 있다.
도 1은 본 발명의 일실시예에 따른 비정상 정보 탐지 장치를 나타내는 도면이다.
도 1을 참고하면, 본 발명의 일실시예에 따른 비정상 정보 탐지 장치(100)는 웹 페이지 수집부(110), 컨텐츠 다운로드부(120), 컨텐츠 추출부(130), 태그 분석부(140), 스크립트 분석부(150), 및 비정상 정보 탐지부(160)를 포함할 수 있다.
웹 페이지 수집부(110)는 네트워크 상에 존재하는 웹 페이지를 수집할 수 있다.
구체적으로, 웹 페이지 수집부(110)는 사용자, 또는 데이터베이스에서 비정상 정보를 모니터링 할 웹 페이지들의 리스트를 수신할 수 있다. 또한, 웹 페이지 수집부(110)는 검색 서비스 또는 디렉토리 서비스에서 모니터링 할 웹 페이지들의 도메인을 수집할 수 있다.
그리고, 웹 페이지 수집부(110)는 수집한 웹 페이지들의 비정상 정보 탐지 순서를 스케줄링 할 수도 있다.
웹 페이지 수집부(110)의 구체적인 구성 및 동작은 이하 도 2를 참조하여 상세히 설명한다.
컨텐츠 다운로드부(120)는 웹 페이지 수집부(110)가 수집한 웹 페이지에 포함된 모든 컨텐츠를 다운로드 할 수 있다. 이때, 다운로드 한 컨텐츠는 태그 분석부(140), 및 스크립트 분석부(150)에서 Hash 값(MD5, SSDEEP)까지 함께 분석될 수 있다.
컨텐츠 추출부(130)는 컨텐츠 다운로드부(120)가 다운로드 한 컨텐츠 중 비정상 정보 유포에 이용 가능한 컨텐츠를 추출할 수 있다. 예를 들어, 비정상 정보 유포에 이용 가능한 컨텐츠는 외부 링크, 프레임 정보, 스크립트 중 적어도 하나를 포함할 수 있다.
또한, 컨텐츠 추출부(130)는 추출한 컨텐츠가 프레임 정보, 또는 스크립트인 경우, 추출한 컨텐츠를 태그 분석부(140)로 전송할 수 있다.
그리고, 컨텐츠 추출부(130)는 추출한 컨텐츠가 외부링크인 경우, 추출한 컨텐츠를 컨텐츠 다운로드부(120)로 전송할 수 있다. 이때, 컨텐츠 다운로드부(120)는 컨텐츠 추출부(120)로부터 수신한 외부 링크에 대응하는 웹 페이지의 컨텐츠를 다운로드 할 수 있다.
태그 분석부(140)는 웹 페이지 수집부(110)가 수집한 웹 페이지의 태그에 포함된 문자열을 기초로 웹 페이지의 태그를 분석할 수 있다. 이때, 태그 분석부(140)는 웹 페이지 수집부(110)가 수집한 웹 페이지 중에서 컨텐츠 다운로드부(120)가 다운로드 한 웹 페이지의 컨텐츠들에 포함된 태그를 분석할 수 있다.
또한, 컨텐츠 다운로드부(120)가 다운로드 한 웹 페이지의 컨텐츠들 중에서 비정상 정보가 포함될 수 있는 컨텐츠는 컨텐츠 추출부(130)가 추출한 컨텐츠로 한정될 수 있다. 따라서, 태그 분석부(140)는 컨텐츠 다운로드부(120)가 다운로드 한 웹 페이지의 컨텐츠들 중에서 컨텐츠 추출부(130)가 추출한 컨텐츠의 태그만을 분석함으로써, 웹 페이지의 태그 분석 속도를 높일 수 있다.
태그 분석부(140)의 상세 구성 및 동작은 이하 도 4를 참조하여 상세히 설명한다.
스크립트 분석부(150)는 웹 페이지 수집부(110)가 수집한 웹 페이지를 에뮬레이팅(emulating)하여 웹 페이지의 스크립트를 분석할 수 있다. 이때, 스크립트 분석부(150)는 웹 페이지 수집부(110)가 수집한 웹 페이지 중에서 컨텐츠 다운로드부(120)가 다운로드 한 웹 페이지의 컨텐츠들에 포함된 스크립트를 분석할 수 있다.
예를 들어, 스크립트 분석부(150)는 태그 분석부(140)가 태그를 분석한 컨텐츠의 스크립트를 분석할 수 있다.
또한, 스크립트 분석부(150)는 컨텐츠 다운로드부(120)가 다운로드 한 웹 페이지의 컨텐츠들 중에서 컨텐츠 추출부(130)가 추출한 컨텐츠의 태그만을 분석함으로써, 웹 페이지의 스크립트 분석 속도를 높일 수도 있다.
스크립트 분석부(150)의 상세 구성 및 동작은 이하 도 8을 참조하여 상세히 설명한다.
비정상 정보 탐지부(160)는 태그 분석부(140)의 분석 결과와 스크립트 분석부(150)의 분석 결과를 이용하여 웹 페이지 수집부(110)가 수집한 웹 페이지에서 비정상 정보를 탐지할 수 있다. 이때, 비정상 정보는 악성 코드, 악성 링크, 악성 스크립트 중 적어도 하나를 포함할 수 있다.
구체적으로 태그 분석부(140)의 분석 결과와 스크립트 분석부(150)의 분석 결과에서 모두 비정상 정보로 판단한 컨텐츠가 있는 경우, 비정상 정보 탐지부(160)는 해당 컨텐츠에서 비정상 정보가 탐지되었다는 확정 탐지 결과를 출력할 수 있다.
예를 들어, 태그 분석부(140)가 웹 페이지의 컨텐츠 중 제1 컨텐츠의 태그에 비정상 정보가 포함된 것으로 판단하고, 스크립트 분석부(150)가 웹 페이지의 컨텐츠 중 제1 컨텐츠의 스크립트에 비정상 정보가 포함된 것으로 판단하는 경우, 비정상 정보 탐지부(160)는 제1 컨텐츠에서 비정상 정보가 탐지되었다는 확정 탐지 결과를 출력할 수 있다.
또한, 스크립트 분석부(150)가 비정상 객체를 탐지한 경우, 태그 분석부(140)가 비정상 객체의 링크에 따라 비정상 객체와 링크된 컨텐츠, 또는 웹 페이지의 태그를 분석할 수 있다. 이때, 태그 분석부(140)가 비정상 정보를 탐지하면, 비정상 정보 탐지부(160)가 비정상 객체가 탐지되었다는 확정 탐지 결과를 출력할 수 있다.
그리고, 태그 분석부(140)의 분석 결과와 스크립트 분석부(150)의 분석 결과 중 하나에서만 비정상 정보를 탐지한 컨텐츠가 있는 경우, 비정상 정보 탐지부(160)는 해당 컨텐츠와 해당 컨텐츠에서 탐지한 비정상 정보를 사용자에게 제공할 수 있다.
이때, 사용자는 제공받은 비정상 정보의 종류에 따라 해당 컨텐츠에 비정상 정보가 포함되었는지 여부를 판단할 수도 있다. 예를 들어, 사용자에게 제공한 비정상 정보가 악성 코드에만 포함되는 특정 문자열, 컨텐츠의 태그, 또는 스크립트 중 하나에만 포함되는 비정상 정보와 관련된 정보인 경우, 사용자는 제공받은 비정상 정보에 기초하여 해당 컨텐츠에 비정상 정보가 포함되었는지 여부를 판단할 수도 있다. 또한, 사용자는 별도의 비정상 정보 탐지 장치를 이용하여 제공받은 컨텐츠 중 비정상 정보가 포함된 컨텐츠를 탐지할 수도 있다.
도 2는 본 발명의 일실시예에 따른 웹 페이지 수집부를 나타내는 도면이다.
도 2를 참고하면, 본 발명의 일실시예에 따른 웹 페이지 수집부(110)는 웹 페이지 선택부(210), 검사 대상 관리부(220), 및 스케줄링부(230)를 포함할 수 있다.
웹 페이지 선택부(210)는 네트워크 상에 존재하는 웹 페이지 중 비정상 정보를 분석할 적어도 하나의 웹 페이지를 선택할 수 있다.
예를 들어, 웹 페이지 선택부(210)는 디렉토리 서비스에서 모니터링 할 웹 페이지들의 도메인을 선택할 수 있다. 구체적으로, 웹 페이지 선택부(210)는 디렉토리 서비스에서 복수의 웹 페이지들의 도메인을 추출하고, 추출한 웹 페이지들 중 중복된 도메인들을 제거하여 모니터링 할 웹 페이지들의 도메인을 선택할 수 있다. 이때, 웹 페이지 선택부(210)는 디렉토리 서비스를 스캐닝 하여 복수의 웹 페이지들의 도메인을 추출할 수 있다.
또한, 웹 페이지 선택부(210)는 무작위로 적어도 하나의 웹 페이지의 도메인을 생성하거나, 사용자로부터 사용자가 선택한 웹 페이지들의 도메인을 입력 받을 수 있다. 이때, 웹 페이지 선택부(210)는 생성하거나 입력 받은 도메인을 비정상 정보를 분석할 웹 페이지의 도메인으로 선택할 수 있다.
검사 대상 관리부(220)는 웹 페이지 선택부(210)가 선택한 웹 페이지를 검사 대상 리스트에 추가하고, 검사 대상 리스트를 관리할 수 있다. 이때, 검사 대상 리스트는 복수의 웹 페이지들이 태그 분석부(140) 및 스크립트 분석부(150)에서 분석할 분석 순서에 따라 정렬된 리스트일 수 있다. 그리고, 컨텐츠 다운로드부(120)는 검사 대상 리스트에서 분석 순서가 가장 먼저인 웹 페이지의 컨텐츠를 다운로드 할 수 있다.
또한, 검사 대상 리스트에 태그 분석부(140) 및 스크립트 분석부(150)가 분석한 적 있는 웹 페이지가 추가되는 경우, 검사 대상 관리부(220)는 추가된 웹 페이지가 태그 분석부(140) 및 스크립트 분석부(150)가 분석한 시점 이후로 변화하였는지 여부를 확인할 수 있다. 그리고, 추가된 웹 페이지가 분석한 시점 이후로 변화하지 않은 경우, 검사 대상 관리부(220)는 검사 대상 리스트에서 추가된 웹 페이지를 삭제할 수 있다.
즉, 기존에 태그 및 스크립트를 분석하여 비정상 정보를 탐지하였던 웹 페이지가 다시 검사 대상 리스트에 포함되고, 해당 웹 페이지가 비정상 정보를 탐지하던 시점 이후로 변경되지 않은 경우, 해당 웹 페이지에서 비정상 정보를 탐지하면, 기존의 탐지 결과와 동일할 수 있다. 따라서, 검사 대상 관리부(220)는 기존에 비정상 정보를 탐지한 웹 페이지가 탐지 시점 이후로 변화하지 않은 경우, 검사 대상 리스트에서 제거하여 다시 분석하지 않음으로써, 동일한 탐지 결과를 위하여 불필요한 검사가 수행되는 것을 방지할 수 있다.
그리고, 검사 대상 관리부(220)는 추가된 웹 페이지를 삭제한 경우, 삭제한 웹 페이지가 태그 분석부(140) 및 스크립트 분석부(150)의 분석 후 변화가 없어서 재분석하지 않았다는 정보를 추가할 수 있다. 예를 들어, 검사 대상 관리부(220)는 현재 UD_TYPE = 0인 값을 저장하여, 추가된 웹 페이지가 기존에 탐지된 웹 페이지이지만 검사를 하지 않고 통과했다는 기록을 남길 수 있다.
스케줄링부(230)는 검사 대상 관리부(220)가 관리하는 검사 대상 리스트에 포함된 웹 페이지들의 분석 순서를 스케줄링 할 수 있다.
이때, 웹 페이지에 포함된 링크 중 아이프레임(iframe)과 같은 태그나 스크립트에 포함된 링크는 일반 속성의 링크보다 비정상 정보 탐지의 우선 순위가 중요할 수 있다.
따라서, 태그 분석부(140) 및 스크립트 분석부(150)가 분석 중인 웹 페이지의 태그 또는 스크립트에 링크가 포함된 경우, 스케줄링부(230)는 링크에 대응하는 웹 페이지를 분석 중인 웹 페이지의 다음 순서로 스케줄링 할 수 있다.
그리고, 태그 분석부(140) 및 스크립트 분석부(150)가 분석하는 웹 페이지에서 일반 속성의 링크가 발견되었을 경우, 스케줄링부(230)는 링크에 대응하는 웹 페이지를 검사 대상 리스트의 제일 마지막에 순차적으로 추가할 수 있다. 이때, 검사 대상 리스트는 스케줄링 버퍼일 수 있다.
또한, 검사 대상 리스트에 포함될 수 있는 웹 페이지의 개수가 제한 되고, 하나의 웹 페이지에 포함된 일반 속성의 링크들의 개수가 임계 값 이상인 경우, 스케줄링부(230)는 검사 대상 리스트에서 해당 웹 페이지를 삭제하고, 해당 웹 페이지를 포함하며, 태그 분석부(140) 및 스크립트 분석부(150)에서 분석 중인 사이트의 분석을 종료시킬 수 있다.
도 3은 본 발명의 일실시예에 따른 웹 페이지 수집 과정의 일례이다.
본 발명의 일실시예에 따른 웹 페이지 선택부(210)는 디렉토리 서비스로부터 도 3에 도시된 바와 같은 정보를 수신할 수 있다.
이때, 웹 페이지 선택부(210)는 수신한 정보에서 웹 사이트의 명칭이나 내용과 관련된 정보(310)와 웹 사이트의 도메인(320)를 추출할 수 있다.
그리고, 웹 페이지 선택부(210)는 정보(310)와 도메인(320)을 매칭하여 웹 사이트를 식별할 수 있다.
또한, 웹 페이지 선택부(210)는 추출한 도메인들 중에서 중복된 도메인이나, 검사 대상 리스트에 포함된 웹 페이지의 도메인을 제거할 수 있다.
마지막으로 웹 페이지 선택부(210)는 추출한 도메인 중에서 제거되지 않은 도메인들의 웹 페이지를 모니터링 할 웹 페이지로 선택할 수 있다.
도 4는 본 발명의 일실시예에 따른 태그 분석부를 나타내는 도면이다.
도 4를 참고하면, 본 발명의 일실시예에 따른 태그 분석부(140)는 문자열 개수 분석부(410), 아이프레임 분석부(420), 엔트로피 분석부(430), 및 시그니처 탐지부(440)를 포함할 수 있다.
문자열 개수 분석부(410)는 웹 페이지 수집부(110)가 수집한 웹 페이지에 포함된 문자열의 개수를 분석할 수 있다.
구체적으로, 문자열 개수 분석부(410)는 웹 페이지에 포함된 문자열 중 특정 문자의 개수가 임계값 이상인 경우, 웹 페이지에 비정상 정보가 포함된 것으로 분석할 수 있다. 이때, 특정 문자는 쉘 코드 등을 스크립트 변수에 저장하기 위하여 이용되는 문자일 수 있다. 또한, 임계값은 쉘 코드와 같은 비정상 정보를 스크립트 변수에 저장하기 위하여 필요한 특정 문자의 최소한의 개수일 수 있다.
예를 들어, 웹 페이지에 포함된 문자열 중 %u의 개수가 500개를 초과하거나, \x의 개수가 100를 초과하는 경우, 웹 페이지에 비정상 정보가 포함된 것으로 분석할 수 있다.
아이프레임 분석부(420)는 웹 페이지 수집부(110)가 수집한 웹 페이지, 컨텐츠 다운로드부(120)가 다운로드 한 웹 페이지의 컨텐츠 및 컨텐츠 추출부(130)가 추출한 컨텐츠 중 하나에 포함된 태그 중 아이프레임(iframe)의 스타일 또는 속성을 분석할 수 있다.
구체적으로 아이프레임 분석부(420)는 아이프레임(iframe)의 스타일 또는 속성이 화면에 표시되지 않는 형태인 경우, 웹 페이지에 비정상 정보가 포함된 것으로 분석할 수 있다.
예를 들어, 아이프레임의 스타일(style) 형태가 “display:none;”와 같이 화면에 보여지지 않은 형태인 경우, 해당 아이프레임과 관련된 컨텐츠 또는 웹 페이지의 오브젝트는 사용자에게 숨기고자 하는 비정상 정보일 가능성이 높다. 따라서, 아이프레임 분석부(420)는 아이프레임(iframe)의 스타일이 화면에 표시되지 않는 형태인 경우, 웹 페이지에 비정상 정보가 포함된 것으로 분석할 수 있다.
또한, 아이프레임의 폭(width)과 높이(height) 속성이 모두 0인 경우, 해당 아이프레임과 관련된 컨텐츠 또는 웹 페이지의 오브젝트는 화면에 표시되지 않을 수 있다. 즉, 해당 아이프레임과 관련된 컨텐츠, 또는 오브젝트는 사용자에게 숨기고자 하는 비정상 정보일 가능성이 높다. 따라서, 아이프레임 분석부(420)는 아이프레임의 속성에 따라 해당 아이프레임과 관련된 컨텐츠, 또는 오브젝트가 화면에 표시되지 않는 경우, 웹 페이지에 비정상 정보가 포함된 것으로 분석할 수 있다.
그리고, 아이프레임 분석부(420)는 표 1에 포함된 속성들과 각 속성들의 임계값에 기초하여 아이프레임(iframe)을 분석할 수도 있다. 표 1에 포함된 각 속성들의 임계값은 아이프레임과 관련된 컨텐츠 또는 웹 페이지의 오브젝트가 화면에 표시되지 않거나, 내용을 식별하기 어려울 정도로 작게 표시되도록 하는 값일 수 있다.
Figure 112013074010112-pat00001
엔트로피 분석부(430)는 웹 페이지 수집부(110)가 수집한 웹 페이지의 엔트로피를 분석할 수 있다. 이때, 엔트로피 분석부(430)는 웹 페이지의 엔트로피를 분석함으로써, 스크립트 안에 존재하는 난독화된 코드 또는 쉘 코드를 탐지할 수 있다.
구체적으로 엔트로피 분석부(430)는 웹 페이지에 포함된 구문의 라인당 글자 개수를 확인할 수 있다. 그리고, 확인한 라인당 글자 개수가 임계값 이상인 경우, 엔트로피 분석부(430)는 구문의 엔트로피를 분석하여 구문에 포함된 숫자의 비율을 식별할 수 있다. 그리고, 구문에 포함된 숫자의 비율이 임계값 이상인 경우, 엔트로피 분석부(430)는 웹 페이지에 비정상 정보가 포함된 것으로 분석할 수 있다.
예를 들어, 엔트로피 분석부(430)는 구문의 라인당 글자 개수가 1000자를 초과하고, 구문의 각 라인에 포함된 숫자의 비율이 60%를 초과하는 경우, 웹 페이지에 비정상 정보가 포함된 것으로 분석할 수 있다.
시그니처 탐지부(440)는 웹 페이지 수집부(110)가 수집한 웹 페이지, 컨텐츠 다운로드부(120)가 다운로드 한 웹 페이지의 컨텐츠 및 컨텐츠 추출부(130)가 추출한 컨텐츠 중 하나에 포함된 특정 시그니처를 탐지할 수 있다.
이때, 시그니처 탐지부(440)는 웹 페이지의 HTML 또는 컨텐츠 중 자바 스크립트나 일반 스크립트 파일 안에 포함된 문자열에 특정 시그니처가 포함되었는지 여부를 검색할 수 있다. 예를 들어, 시그니처 탐지부(440)는 Exploit kit에 존재하는 문자열을 검색할 수 있다.
이때, 시그니처 탐지부(440)가 검색하는 특정 시그니처는 표 2에 표시된 바와 같이 스크립트의 에뮬레이팅 결과에 따라 생성되는 아이프레임을 탐지하기 위한 시그니처들일 수 있다.
Figure 112013074010112-pat00002
도 5는 본 발명의 일실시예에 따른 아이프레임 분석 결과의 일례이다.
본 발명의 일실시예에 따른 아이프레임 분석부(420)은 웹 페이지 수집부(110)가 수집한 웹 페이지에서 아이프레임을 분석할 수 있다.
이때, 아이프레임의 스타일(style)이 도 5에 도시된 바와 같이 화면에 보여지지 않은 display:none;(510)인 경우, 아이프레임 분석부(420)는 아이프레임이 포함된 웹 페이지(520)에 비정상 정보가 포함된 것으로 분석할 수 있다.
또한, 아이프레임의 폭(width)과 높이(height) 속성(530)이 도 5에 도시된 바와 같이 모두 0인 경우, 해당 아이프레임과 관련된 컨텐츠 또는 웹 페이지의 오브젝트는 화면에 표시되지 않을 수 있다. 따라서, 아이프레임 분석부(420)는 웹 페이지(520)에 비정상 정보가 포함된 것으로 분석할 수 있다.
도 6은 본 발명의 일실시예에 따른 엔트로피 분석 결과의 일례이다.
본 발명의 일실시예에 따른 엔트로피 분석부(430)는 웹 페이지에 포함된 구문(600)의 라인당 글자 개수를 확인할 수 있다.
그리고, 웹 페이지에 포함된 구문(600)의 라인당 글자 개수가 도 6에 도시된 바와 같이 1000자를 초과하고, 구문의 각 라인에 포함된 숫자의 비율이 60%를 초과하는 경우, 엔트로피 분석부(430)는 웹 페이지에 비정상 정보가 포함된 것으로 분석할 수 있다.
도 7은 본 발명의 일실시예에 따른 스크립트 분석부를 나타내는 도면이다.
도 7을 참고하면, 본 발명의 일실시예에 따른 스크립트 분석부(140)는 스크립트 타입 판단부(710), 검사 대상 리스트 추가부(720), 제1 시그니처 탐지부(730), 에뮬레이팅부(740), 제2 시그니처 탐지부(750), 및 결과 분석부(760)를 포함할 수 있다.
스크립트 타입 판단부(710)는 웹 페이지 수집부(110)가 수집한 웹 페이지에 포함된 스크립트의 타입을 판단할 수 있다. 구체적으로, 스크립트 타입 판단부(710)는 웹 페이지에 포함된 스크립트의 타입을 자바 스크립트, 일반 스크립트, 및 스크립트와 HTML이 결합된 스크립트 태그 중 하나로 판단할 수 있다.
그리고, 웹 페이지의 내용이 변경되지 않고 웹 페이지에서 로드 되는 자바스크립트 파일만 변경된 경우, 웹 페이지의 내용이 변경되지 않았으므로, 검사 대상 관리부(220)가 해당 웹 페이지를 검사 대상 리스트에서 제거할 수 있다.
따라서, 웹 페이지에 포함된 스크립트의 타입이 자바 스크립트인 경우, 스크립트 타입 판단부(710)는 해당 스크립트를 검사 대상 리스트 추가부(720)로 전송함으로써, 웹 페이지와 별도의 탐지 대상이 되도록 할 수 있다. 이 경우, 웹 페이지의 내용이 변경되지 않고, 웹 페이지에서 로드 되는 자바스크립트 파일만 변경되더라도 탐지 대상의 내용이 변경된 것이므로, 자바 스크립트를 재 탐지할 수 있다.
그리고, 검사 대상 리스트에서 현재 분석할 대상이 자바 스크립트인 경우, 스크립트 타입 판단부(710)는 자바 스크립트의 스트립트 타입을 일반 스크립트로 판단함으로써, 이미 추가한 자바 스크립트를 다시 검사 대상에 추가하지 않고, 제1 시그니처 탐지부(730), 에뮬레이팅부(740), 및 제2 시그니처 탐지부(750)가 분석하도록 할 수 있다.
또한, 웹 페이지에 포함된 스크립트의 타입이 일반 스크립트인 경우, 스크립트 타입 판단부(710)는 일반 스크립트 및 웹 페이지를 제1 시그니처 탐지부(730)로 전송할 수 있다. 그리고, 웹 페이지에 포함된 스크립트의 타입이 스크립트 태그인 경우, 스크립트 타입 판단부(710)는 스크립트 태그 및 웹 페이지를 에뮬레이팅부(740)로 전송할 수 있다.
검사 대상 리스트 추가부(720)는 자바 스크립트를 검사 대상 리스트에 추가하고, 스크립트 분석을 종료할 수 있다.
제1 시그니처 탐지부(730)는 스크립트 타입 판단부(710)로부터 수신한 일반 스크립트를 에뮬레이팅하기 전에 해당 스크립트 및 웹 페이지에 포함된 특정 시그니처를 탐지할 수 있다. 구체적으로 제1 시그니처 탐지부(730)는 일반 스크립트 및 웹 페이지에 포함된 문자열을 스크립트가 난독화된 시그니처 및 악성 스크립트에서 사용되는 문자열과 비교하여 비정상 정보를 탐지할 수 있다.
예를 들어, 제1 시그니처 탐지부(730)는 스크립트 타입 판단부(710)로부터 수신한 웹 페이지에 표 3에 표시된 시그니처가 포함되거나, 일반 스크립트에 표 3에 표시된 문자열들이 있는지 여부를 탐지할 수 있다.
Figure 112013074010112-pat00003
에뮬레이팅부(740)는 스크립트 타입 판단부(710)로부터 수신한 스크립트 태그, 또는 제1 시그니처 탐지부(730)가 시그니처를 탐지한 일반 스크립트를 DOM(Document Object Model) 객체와 연동하여 에뮬레이팅(emulating)할 수 있다.
에뮬레이팅부(740)가 스크립트 타입 판단부(710)로부터 스크립트 태그를 수신하는 경우, 에뮬레이팅부(740)는 스크립트와 HTML이 결합된 스트립트 태그에서 스크립트를 추출하는 1차 DOM(Document Object Model) 파싱(Parsing), 또는 스크립트 파싱을 수행할 수 있다. 이때, 에뮬레이팅부(740)는 웹 페이지의 스크립트 노드에 포함된 스크립트 및 src 속성 정보를 추출할 수 있다.
다음으로, 에뮬레이팅부(740)는 추출한 스크립트 및 src 속성 정보를 이용하여 수신한 스크립트 태그를 에뮬레이팅할 수 있다. 또한, 검사 대상 리스트 추가부(720)는 추출한 스크립트를 검사 대상 리스트에 추가할 수도 있다.
에뮬레이팅부(740)가 제1 시그니처 탐지부(730)로부터 시그니처를 탐지한 일반 스크립트를 수신하는 경우, 에뮬레이팅부(740)는 일반 스크립트를 분석하여 에뮬레이팅할 수 있다. 그리고, 에뮬레이팅부(740)는 일반 스크립트가 에뮬레이팅될 때 웹 페이지에 쓰기 작업을 수행하는지 여부를 확인할 수 있다.
일반 스크립트가 에뮬레이팅 과정에서 웹 페이지에 쓰기 작업을 수행하는 경우, 에뮬레이팅부(740)는 일반 스크립트와 웹 페이지를 제2 시그니처 탐지부(750)로 전송할 수 있다.
또한, 에뮬레이팅부(740)는 스크립트 태그, 또는 일반 스크립트를 에뮬레이팅할 때 스크립트 태그 또는 일반 스크립트가 비정상적인 행위를 하는지 여부를 확인할 수 있다. 그리고, 스크립트 태그 또는 일반 스크립트가 비정상적인 행위를 하는 경우, 에뮬레이팅부(740)는 스크립트 태그, 또는 일반 스크립트에 비정상 정보가 포함된 것으로 탐지할 수 있다. 이때, 비정상적인 행위는 사용자의 허락 없이 시스템 파일에 접근하는 행위, 및 사용자 몰래 특정 파일을 단말기에 저장하는 행위 중 적어도 하나를 포함할 수 있다.
제2 시그니처 탐지부(750)는 에뮬레이팅부(740)가 일반 스크립트를 에뮬레이팅한 결과에 따라 웹 페이지에 쓰여진 특정 시그니처를 탐지할 수 있다.
이때, 제2 시그니처 탐지부(750)는 일반 스크립트의 에뮬레이팅 결과에 따라 페이지에 저장되는 정보를 악성 스크립트에서 사용되는 문자열 및 상기 스크립트의 에뮬레이팅 결과에 따라 생성되는 아이프레임을 탐지하기 위한 시그니처와 비교하여 비정상 정보를 탐지할 수 있다.
예를 들어, 제2 시그니처 탐지부(750)는 에뮬레이팅부(740)로부터 수신한 일반 스크립트와 웹 페이지에서 일반 스크립트를 에뮬레이팅한 결과에 따라 웹 페이지에 쓰여진 정보를 식별하고, 웹 페이지에 쓰여진 정보 중에 표 4에 표시된 문자열들이 있는지 여부를 탐지할 수 있다.
Figure 112013074010112-pat00004
결과 분석부(760)는 에뮬레이팅부(740)가 일반 스크립트, 또는 스크립트 태그를 에뮬레이팅한 결과를 분석할 수 있다.
구체적으로, 결과 분석부(760)는 스크립트를 파싱하여 에뮬레이팅함에 따라 변경되는 DOM 객체들과, 변경되지 않은 DOM 객체들을 분석할 수 있다.
예를 들어, 결과 분석부(760)는 표 5에 표시된 DOM 객체들을 표 5에 표시된 방법으로 분석할 수 있다.
Figure 112013074010112-pat00005
도 8은 본 발명의 일실시예에 따른 시그니처 탐지 결과의 일례이다.
본 발명의 일실시예에 따른 제1 시그니처 탐지부(730)는 스크립트 타입 판단부(710)로부터 수신한 일반 스크립트를 에뮬레이팅하기 전에 해당 스크립트에 포함된 특정 시그니처를 탐지할 수 있다.
예를 들어, 제1 시그니처 탐지부(730)는 스크립트 타입 판단부(710)로부터 도 8에 도시된 바와 같은 구문을 포함하는 웹 페이지를 수신할 수 있다. 이때, 제1 시그니처 탐지부(730)는 웹 페이지의 구문에서 표 3에 포함된 function(p,a,c,k,e,r)(810)를 탐지하고, 웹 페이지에 비정상 정보가 포함되었다고 탐지할 수 있다.
도 9는 본 발명의 일실시예에 따른 비정상 정보 탐지 방법을 도시한 플로우차트이다.
단계(910)에서 웹 페이지 수집부(110)는 네트워크 상에 존재하는 웹 페이지를 수집할 수 있다. 구체적으로, 웹 페이지 수집부(110)는 사용자, 또는 데이터베이스에서 비정상 정보를 모니터링 할 웹 페이지들의 리스트를 수신할 수 있다. 또한, 웹 페이지 수집부(110)는 검색 서비스 또는 디렉토리 서비스에서 모니터링 할 웹 페이지들의 도메인을 수집할 수 있다.
웹 페이지 수집 단계의 구체적인 동작은 이하 도 10을 참조하여 상세히 설명한다.
단계(920)에서 컨텐츠 다운로드부(120)는 단계(910)에서 수집한 웹 페이지에 포함된 모든 컨텐츠를 다운로드 할 수 있다.
단계(930)에서 컨텐츠 추출부(130)는 단계(920)에서 다운로드 한 컨텐츠 중 비정상 정보 유포에 이용 가능한 컨텐츠를 추출할 수 있다. 예를 들어, 비정상 정보 유포에 이용 가능한 컨텐츠는 외부 링크, 프레임 정보, 스크립트 중 적어도 하나를 포함할 수 있다.
단계(940)에서 태그 분석부(140)는 단계(910)에서 수집한 웹 페이지의 태그를 분석할 수 있다. 이때, 태그 분석부(140)는 단계(910)에서 수집한 웹 페이지 중에서 단계(920)에서 다운로드 한 웹 페이지의 컨텐츠들에 포함된 태그를 분석할 수 있다.
또한, 태그 분석부(140)는 단계(920)에서 다운로드 한 웹 페이지의 컨텐츠들 중에서 단계(930)에서 추출한 컨텐츠의 태그만을 분석함으로써, 웹 페이지의 태그 분석 속도를 높일 수도 있다. 즉, 태그 분석부(140)는 단계(910)에서 수집한 웹 페이지 전체의 태그를 분석할 경우, 단계(920)과 단계(930)는 생략될 수도 있다.
태그 분석 단계의 구체적인 동작은 이하 도 11을 참조하여 상세히 설명한다.
단계(950)에서 스크립트 분석부(150)는 단계(910)에서 수집한 웹 페이지의 스크립트를 분석할 수 있다. 이때, 스크립트 분석부(150)는 단계(940)에서 태그를 분석한 컨텐츠의 스크립트를 분석할 수 있다. 또한, 스크립트 분석부(150)는 단계(920)에서 다운로드 한 웹 페이지의 컨텐츠들 중에서 단계(930)에서 추출한 컨텐츠의 태그만을 분석함으로써, 웹 페이지의 스크립트 분석 속도를 높일 수도 있다.
스크립트 분석 단계의 구체적인 동작은 이하 도 12를 참조하여 상세히 설명한다.
단계(960)에서 비정상 정보 탐지부(160)는 단계(940)의 태그 분석 결과와 단계(950)의 스크립트 결과를 이용하여 단계(910)에서 수집한 웹 페이지에서 비정상 정보를 탐지할 수 있다. 이때, 비정상 정보는 악성 코드, 악성 링크, 악성 스크립트 중 적어도 하나를 포함할 수 있다.
구체적으로 태그 분석부(140)의 분석 결과와 스크립트 분석부(150)의 분석 결과에서 모두 비정상 정보로 판단한 컨텐츠가 있는 경우, 비정상 정보 탐지부(160)는 해당 컨텐츠에서 비정상 정보가 탐지되었다는 확정 탐지 결과를 출력할 수 있다.
도 10은 본 발명의 일실시예에 따른 웹 페이지 수집 방법을 도시한 플로우차트이다. 도 10의 단계(1010) 내지 단계(1060)는 도 9의 단계(910)에 포함될 수 있다.
단계(1010)에서 웹 페이지 선택부(210)는 네트워크 상에 존재하는 웹 페이지 중 비정상 정보를 분석할 적어도 하나의 웹 페이지를 비정상 정보를 탐지할 검사 대상으로 선택할 수 있다.
예를 들어, 웹 페이지 선택부(210)는 디렉토리 서비스에서 복수의 웹 페이지들의 도메인을 추출하고, 추출한 웹 페이지들 중 중복된 도메인들을 제거하여 모니터링 할 웹 페이지들의 도메인을 선택할 수 있다. 또한, 웹 페이지 선택부(210)는 무작위로 적어도 하나의 웹 페이지의 도메인을 생성하거나, 사용자로부터 사용자가 선택한 웹 페이지들의 도메인을 입력 받을 수 있다.
단계(1020)에서 검사 대상 관리부(220)는 단계(1010)에서 선택한 웹 페이지를 검사 대상 리스트에 추가하고, 검사 대상 리스트를 관리할 수 있다.
단계(1030)에서 검사 대상 관리부(220)는 단계(1020)에서 추가한 웹 페이지가 태그 분석부(140) 및 스크립트 분석부(150)가 분석한 적 있는 웹 페이지인지 여부를 확인할 수 있다. 그리고, 단계(1020)에서 추가한 웹 페이지가 태그 분석부(140) 및 스크립트 분석부(150)가 분석한 적 있는 웹 페이지인 경우, 검사 대상 관리부(220)는 단계(1040)를 수행할 수 있다.
단계(1040)에서 검사 대상 관리부(220)는 단계(1020)에서 추가한 웹 페이지가 태그 분석부(140) 및 스크립트 분석부(150)가 분석한 시점 이후로 변화하였는지 여부를 확인할 수 있다. 그리고, 단계(1020)에서 추가된 웹 페이지가 분석한 시점 이후로 변화하지 않은 경우, 검사 대상 관리부(220)는 단계(1050)을 수행할 수 있다.
단계(1050)에서 검사 대상 관리부(220)는 단계(1020)에서 추가한 웹 페이지를 검사 대상 리스트에서 삭제할 수 있다. 이때, 검사 대상 관리부(220)는 삭제한 웹 페이지가 태그 분석부(140) 및 스크립트 분석부(150)의 분석 후 변화가 없어서 재분석하지 않았다는 정보를 추가할 수 있다.
단계(1060)에서 스케줄링부(230)는 검사 대상 관리부(220)가 관리하는 검사 대상 리스트에 포함된 웹 페이지들의 분석 순서를 스케줄링 할 수 있다. 이때, 태그 분석부(140) 및 스크립트 분석부(150)가 분석 중인 웹 페이지의 태그 또는 스크립트에 링크가 포함된 경우, 스케줄링부(230)는 링크에 대응하는 웹 페이지를 분석 중인 웹 페이지의 다음 순서로 스케줄링 할 수 있다.
도 11은 본 발명의 일실시예에 따른 태그 분석 방법을 도시한 플로우차트이다. 도 11의 단계(1110) 내지 단계(1140)는 도 9의 단계(940)에 포함될 수 있다.
단계(1110)에서 문자열 개수 분석부(410)는 단계(910)에서 수집한 웹 페이지에 포함된 문자열의 개수를 분석할 수 있다. 구체적으로, 문자열 개수 분석부(410)는 웹 페이지에 포함된 문자열 중 특정 문자의 개수가 임계값 이상인 경우, 웹 페이지에 비정상 정보가 포함된 것으로 분석할 수 있다.
단계(1120)에서 아이프레임 분석부(420)는 단계(910)에서 수집한 웹 페이지, 단계(920)에서 다운로드 한 웹 페이지의 컨텐츠 및 단계(930)에서 추출한 컨텐츠 중 하나에 포함된 태그 중 아이프레임(iframe)의 스타일 또는 속성을 분석할 수 있다. 구체적으로 아이프레임 분석부(420)는 아이프레임(iframe)의 스타일 또는 속성이 화면에 표시되지 않는 형태인 경우, 웹 페이지에 비정상 정보가 포함된 것으로 분석할 수 있다.
단계(1130)에서 엔트로피 분석부(430)는 단계(910)에서 수집한 웹 페이지의 엔트로피를 분석할 수 있다. 엔트로피 분석 결과, 웹 페이지에 포함된 구문의 라인당 글자 개수가 임계값 이상이고, 구문에 포함된 숫자의 비율이 임계값 이상인 경우, 엔트로피 분석부(430)는 웹 페이지에 비정상 정보가 포함된 것으로 분석할 수 있다.
단계(1140)에서 시그니처 탐지부(440)는 단계(910)에서 수집한 웹 페이지, 단계(920)에서 다운로드 한 웹 페이지의 컨텐츠 및 단계(930)에서 추출한 컨텐츠 중 하나에 포함된 문자열에 특정 시그니처가 포함되었는지 여부를 검색할 수 있다.
도 12는 본 발명의 일실시예에 따른 스크립트 분석 방법을 도시한 플로우차트이다. 도 12의 단계(1210) 내지 단계(1270)는 도 9의 단계(950)에 포함될 수 있다.
단계(1210)에서 스크립트 타입 판단부(710)는 단계(910)에서 수집한 웹 페이지에 포함된 스크립트의 타입을 판단할 수 있다.
단계(1220)에서 스크립트 타입 판단부(710)는 단계(1210)에서 판단한 스크립트의 타입이 자바 스크립트인지 여부를 확인할 수 있다. 단계(1210)에서 판단한 스크립트의 타입이 자바 스크립트인 경우, 스크립트 타입 판단부(710)는 해당 스크립트를 검사 대상 리스트 추가부(720)로 전송할 수 있다.
단계(1230)에서 검사 대상 리스트 추가부(720)는 단계(1220)에서 수신한 자바 스크립트를 검사 대상 리스트에 추가하고, 스크립트 분석을 종료할 수 있다.
단계(1240)에서 스크립트 타입 판단부(710)는 단계(1210)에서 판단한 스크립트의 타입이 스크립트 태그인지 여부를 확인할 수 있다. 단계(1210)에서 판단한 스크립트의 타입이 스크립트 태그가 아닌 일반 스크립트인 경우, 스크립트 타입 판단부(710)는 일반 스크립트 및 웹 페이지를 제1 시그니처 탐지부(730)로 전송하고 단계(1250)를 수행할 수 있다.
그리고, 단계(1210)에서 판단한 스크립트의 타입이 스크립트 태그인 경우, 스크립트 타입 판단부(710)는 스크립트 태그 및 웹 페이지를 에뮬레이팅부(740)로 전송하고 단계(1260)을 수행할 수 있다.
단계(1250)에서 제1 시그니처 탐지부(730), 에뮬레이팅부(740) 및 제2 시그니처 탐지부(750)는 일반 스크립트를 시그니처 탐지하고, 에뮬레이팅 하여 분석할 수 있다.
일반 스크립트를 분석하는 단계의 구체적인 과정은 이하 도 13을 참조하여 상세히 설명한다.
단계(1260)에서 에뮬레이팅부(740)는 스크립트 태그에서 스크립트를 추출하여 에뮬레이팅할 수 있다.
스크립트 태그를 에뮬레이팅하는 단계의 구체적인 과정은 이하 도 14를 참조하여 상세히 설명한다.
단계(1270)에서 결과 분석부(760)는 단계(1250)에서 일반 스크립트를 분석한 결과, 또는 단계(1260)에서 스크립트 태그를 에뮬레이팅한 결과를 분석할 수 있다.
구체적으로, 결과 분석부(760)는 스크립트를 파싱하여 에뮬레이팅함에 따라 변경되는 DOM 객체들과, 변경되지 않은 DOM 객체들을 분석할 수 있다.
도 13은 본 발명의 일실시예에 따른 자바 스크립트 분석 방법을 도시한 플로우차트이다. 도 13의 단계(1310) 내지 단계(1340)는 도 12의 단계(1250)에 포함될 수 있다.
단계(1310)에서 제1 시그니처 탐지부(730)는 스크립트 타입 판단부(710)로부터 수신한 일반 스크립트를 에뮬레이팅하기 전에 해당 스크립트 및 웹 페이지에 포함된 특정 시그니처를 탐지할 수 있다.
단계(1320)에서 에뮬레이팅부(740)는 단계(1310)에서 시그니처를 탐지한 일반 스크립트를 분석하여 에뮬레이팅할 수 있다.
단계(1330)에서 에뮬레이팅부(740)는 단계(1320)에서 일반 스크립트가 에뮬레이팅될 때 웹 페이지에 쓰기 작업을 수행하는지 여부를 확인할 수 있다.
일반 스크립트가 에뮬레이팅 과정에서 웹 페이지에 쓰기 작업을 수행하는 경우, 에뮬레이팅부(740)는 일반 스크립트와 웹 페이지를 제2 시그니처 탐지부(750)로 전송하고 단계(1340)를 수행시킬 수 있다.
단계(1340)에서 제2 시그니처 탐지부(750)는 단계(1320)에서 일반 스크립트를 에뮬레이팅한 결과에 따라 웹 페이지에 쓰여진 특정 시그니처를 탐지할 수 있다.
도 14는 본 발명의 일실시예에 따른 에뮬레이팅 방법을 도시한 플로우차트이다. 도 14의 단계(1410) 내지 단계(1420)는 도 12의 단계(1260)에 포함될 수 있다.
단계(1410)에서 에뮬레이팅부(740)는 스크립트와 HTML이 결합된 스트립트 태그에서 스크립트를 추출하는 스크립트 파싱을 수행할 수 있다. 이때, 에뮬레이팅부(740)는 웹 페이지의 스크립트 노드에 포함된 스크립트 및 src 속성 정보를 추출할 수 있다.
단계(1420)에서 에뮬레이팅부(740)는 단계(1410)에서 추출한 스크립트 및 src 속성 정보를 이용하여 수신한 스크립트 태그를 에뮬레이팅할 수 있다. 또한, 검사 대상 리스트 추가부(720)는 단계(1410)에서 추출한 스크립트를 검사 대상 리스트에 추가할 수도 있다.
본 발명은 네트워크 상에 존재하는 웹 사이트, 및 상기 웹 사이트와 링크된 다른 웹 사이트를 수집하고, 수집한 웹 사이트의 비정상 정보를 탐지함으로써, 사용자가 잠재적으로 방문할 수 있는 웹 페이지까지 광범위하게 비정상 정보를 탐지할 수 있다.
또한, 본 발명은 웹 페이지나 스크립트에 포함된 태그를 정적으로 분석하고, 스크립트를 에뮬레이팅한 결과를 동적으로 분석하며, 동적 분석 결과와 정적 분석 결과를 모두 고려하여 비정상 정보를 탐지함으로써, 비정상 정보의 탐지 성능을 높일 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
110: 웹 페이지 수집부
140: 태그 분석부
150: 스크립트 분석부
160: 비정상 정보 탐지부

Claims (11)

  1. 네트워크 상에 존재하는 웹 페이지를 수집하는 웹 페이지 수집부;
    상기 웹 페이지의 태그에 포함된 문자열을 기초로 상기 태그를 분석하는 태그 분석부;
    상기 웹 페이지의 스크립트를 에뮬레이팅(emulating)하여 상기 스크립트를 분석하는 스크립트 분석부; 및
    상기 태그의 분석 결과와 상기 스크립트의 분석 결과를 이용하여 상기 웹 페이지에서 비정상 정보를 탐지하는 비정상 정보 탐지부
    를 포함하고,
    상기 웹 페이지 수집부는,
    네트워크 상에 존재하는 웹 페이지 중 비정상 정보를 분석할 적어도 하나의 웹 페이지를 선택하는 웹 페이지 선택부;
    선택한 웹 페이지를 검사 대상 리스트에 추가하는 검사 대상 관리부; 및
    검사 대상 리스트에 포함된 웹 페이지들의 분석 순서를 스케줄링 하는 스케줄링부
    를 포함하는 비정상 정보 탐지 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 검사 대상 관리부는,
    상기 검사 대상 리스트에 상기 태그 분석부 및 상기 스크립트 분석부가 분석한 적 있는 웹 페이지가 추가되고, 추가된 웹 페이지가 분석 후 변화하지 않은 경우, 상기 검사 대상 리스트에서 상기 추가된 웹 페이지를 삭제하는 비정상 정보 탐지 장치.
  4. 제1항에 있어서,
    상기 태그 분석부는,
    상기 웹 페이지에 포함된 문자열의 개수를 분석하는 문자열 개수 분석부;
    상기 웹 페이지에 포함된 태그 중 아이프레임(iframe)의 스타일 또는 속성을 분석하는 아이프레임 분석부;
    상기 웹 페이지의 엔트로피를 분석하는 엔트로피 분석부; 및
    상기 웹 페이지에 포함된 특정 시그니처를 탐지하는 시그니처 탐지부
    중 적어도 하나를 포함하는 비정상 정보 탐지 장치.
  5. 제4항에 있어서,
    상기 문자열 개수 분석부는,
    상기 웹 페이지에 포함된 문자열 중 특정 문자의 개수가 임계값 이상인 경우, 상기 웹 페이지에 비정상 정보가 포함된 것으로 분석하는 비정상 정보 탐지 장치.
  6. 네트워크 상에 존재하는 웹 페이지를 수집하는 웹 페이지 수집부;
    상기 웹 페이지의 태그에 포함된 문자열을 기초로 상기 태그를 분석하는 태그 분석부;
    상기 웹 페이지의 스크립트를 에뮬레이팅(emulating)하여 상기 스크립트를 분석하는 스크립트 분석부; 및
    상기 태그의 분석 결과와 상기 스크립트의 분석 결과를 이용하여 상기 웹 페이지에서 비정상 정보를 탐지하는 비정상 정보 탐지부
    를 포함하고,
    상기 태그 분석부는,
    상기 웹 페이지에 포함된 태그 중 아이프레임(iframe)의 스타일 또는 속성이 화면에 표시되지 않는 형태인 경우, 상기 웹 페이지에 비정상 정보가 포함된 것으로 분석하는 아이프레임 분석부
    를 포함하는 비정상 정보 탐지 장치.
  7. 네트워크 상에 존재하는 웹 페이지를 수집하는 웹 페이지 수집부;
    상기 웹 페이지의 태그에 포함된 문자열을 기초로 상기 태그를 분석하는 태그 분석부;
    상기 웹 페이지의 스크립트를 에뮬레이팅(emulating)하여 상기 스크립트를 분석하는 스크립트 분석부; 및
    상기 태그의 분석 결과와 상기 스크립트의 분석 결과를 이용하여 상기 웹 페이지에서 비정상 정보를 탐지하는 비정상 정보 탐지부
    를 포함하고,
    상기 태그 분석부는,
    웹 페이지에 포함된 구문의 라인당 글자 개수가 임계값 이상이고, 상기 구문에 포함된 숫자의 비율이 임계값 이상인 경우, 상기 웹 페이지에 비정상 정보가 포함된 것으로 분석하는 엔트로피 분석부
    를 포함하는 비정상 정보 탐지 장치.
  8. 네트워크 상에 존재하는 웹 페이지를 수집하는 웹 페이지 수집부;
    상기 웹 페이지의 태그에 포함된 문자열을 기초로 상기 태그를 분석하는 태그 분석부;
    상기 웹 페이지의 스크립트를 에뮬레이팅(emulating)하여 상기 스크립트를 분석하는 스크립트 분석부; 및
    상기 태그의 분석 결과와 상기 스크립트의 분석 결과를 이용하여 상기 웹 페이지에서 비정상 정보를 탐지하는 비정상 정보 탐지부
    를 포함하고,
    상기 스크립트 분석부는,
    상기 웹 페이지에 포함된 스크립트의 타입을 판단하는 스크립트 타입 판단부;
    상기 스크립트의 타입에 따라 상기 스크립트를 에뮬레이팅(emulating)하는 에뮬레이팅부; 및
    상기 스크립트를 에뮬레이팅한 결과를 분석하는 결과 분석부
    를 포함하는 비정상 정보 탐지 장치.
  9. 제8항에 있어서,
    상기 스크립트 분석부는,
    상기 스크립트를 에뮬레이팅하기 전에 상기 스크립트에 포함된 특정 시그니처를 탐지하는 제1 시그니처 탐지부; 및
    상기 스크립트의 에뮬레이팅 결과에 따라 웹 페이지에 쓰여진 특정 시그니처를 탐지하는 제2 시그니처 탐지부
    를 더 포함하는 비정상 정보 탐지 장치.
  10. 제8항에 있어서,
    상기 에뮬레이팅부는,
    상기 스크립트의 타입이 스크립트 태그인 경우, 상기 웹 페이지의 스크립트 노드에 포함된 스크립트 및 src 속성 정보를 추출하여 상기 스크립트를 에뮬레이팅하는 비정상 정보 탐지 장치.
  11. 제8항에 있어서,
    상기 스크립트의 타입이 자바 스크립트인 경우, 상기 스크립트를 검사 대상 리스트에 추가하는 검사 대상 리스트 추가부
    를 더 포함하는 비정상 정보 탐지 장치.
KR1020130096848A 2013-08-14 2013-08-14 웹 페이지의 비정상 정보 탐지 장치 및 방법 KR101481910B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130096848A KR101481910B1 (ko) 2013-08-14 2013-08-14 웹 페이지의 비정상 정보 탐지 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130096848A KR101481910B1 (ko) 2013-08-14 2013-08-14 웹 페이지의 비정상 정보 탐지 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101481910B1 true KR101481910B1 (ko) 2015-01-15

Family

ID=52588847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130096848A KR101481910B1 (ko) 2013-08-14 2013-08-14 웹 페이지의 비정상 정보 탐지 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101481910B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101543238B1 (ko) 2015-01-21 2015-08-11 한국인터넷진흥원 실시간 악성 스크립트 탐지를 위한 웹 트래픽 수집 처리 장치, 시스템 및 방법
KR101648349B1 (ko) * 2015-11-12 2016-09-01 한국인터넷진흥원 웹사이트 위험도 산출 장치 및 그 방법
KR20160142268A (ko) * 2016-11-30 2016-12-12 주식회사 에프원시큐리티 웹 사이트의 악성코드 탐지 및 차단 시스템
KR20210105452A (ko) * 2020-02-18 2021-08-27 한국전자통신연구원 웹 악성코드 탐지를 위한 악성코드 분석 시스템 및 방법
KR102495371B1 (ko) * 2022-05-13 2023-02-06 프라이빗테크놀로지 주식회사 애플리케이션 검사에 기반하여 데이터 플로우를 제어하기 위한 시스템 및 그에 관한 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110108491A (ko) * 2010-03-29 2011-10-06 한국전자통신연구원 악성 스크립트 분석 시스템 및 그를 이용한 악성 스크립트 분석 방법
KR20120070019A (ko) * 2010-12-21 2012-06-29 한국인터넷진흥원 하이브리드 인터액션 클라이언트 허니팟 시스템 및 그 운용방법
KR20120105759A (ko) * 2011-03-16 2012-09-26 한국전자통신연구원 악성 코드 시각화 장치와 악성 코드 탐지 장치 및 방법
KR20130067365A (ko) * 2011-12-14 2013-06-24 한국인터넷진흥원 피디에프 문서형 악성코드 탐지 시스템 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110108491A (ko) * 2010-03-29 2011-10-06 한국전자통신연구원 악성 스크립트 분석 시스템 및 그를 이용한 악성 스크립트 분석 방법
KR20120070019A (ko) * 2010-12-21 2012-06-29 한국인터넷진흥원 하이브리드 인터액션 클라이언트 허니팟 시스템 및 그 운용방법
KR20120105759A (ko) * 2011-03-16 2012-09-26 한국전자통신연구원 악성 코드 시각화 장치와 악성 코드 탐지 장치 및 방법
KR20130067365A (ko) * 2011-12-14 2013-06-24 한국인터넷진흥원 피디에프 문서형 악성코드 탐지 시스템 및 방법

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101543238B1 (ko) 2015-01-21 2015-08-11 한국인터넷진흥원 실시간 악성 스크립트 탐지를 위한 웹 트래픽 수집 처리 장치, 시스템 및 방법
KR101648349B1 (ko) * 2015-11-12 2016-09-01 한국인터넷진흥원 웹사이트 위험도 산출 장치 및 그 방법
WO2017082470A1 (en) * 2015-11-12 2017-05-18 Korea Internet & Security Agency Apparatus and method for calculating risk of web site
KR20160142268A (ko) * 2016-11-30 2016-12-12 주식회사 에프원시큐리티 웹 사이트의 악성코드 탐지 및 차단 시스템
KR101688390B1 (ko) 2016-11-30 2016-12-22 주식회사 에프원시큐리티 웹 사이트의 악성코드 탐지 및 차단 시스템
KR20210105452A (ko) * 2020-02-18 2021-08-27 한국전자통신연구원 웹 악성코드 탐지를 위한 악성코드 분석 시스템 및 방법
KR102338252B1 (ko) * 2020-02-18 2021-12-15 한국전자통신연구원 웹 악성코드 탐지를 위한 악성코드 분석 시스템 및 방법
KR102495371B1 (ko) * 2022-05-13 2023-02-06 프라이빗테크놀로지 주식회사 애플리케이션 검사에 기반하여 데이터 플로우를 제어하기 위한 시스템 및 그에 관한 방법

Similar Documents

Publication Publication Date Title
CN109922052B (zh) 一种结合多重特征的恶意url检测方法
US9509714B2 (en) Web page and web browser protection against malicious injections
US9954886B2 (en) Method and apparatus for detecting website security
US9614862B2 (en) System and method for webpage analysis
US9081961B2 (en) System and method for analyzing malicious code using a static analyzer
CN103279710B (zh) Internet信息系统恶意代码的检测方法和系统
US8499283B2 (en) Detection of scripting-language-based exploits using parse tree transformation
US20170257390A1 (en) System and methods for scalably identifying and characterizing structural differences between document object models
EP3726410B1 (en) Interpretation device, interpretation method and interpretation program
CN103559235B (zh) 一种在线社交网络恶意网页检测识别方法
US10789366B2 (en) Security information management system and security information management method
KR101481910B1 (ko) 웹 페이지의 비정상 정보 탐지 장치 및 방법
US20140237593A1 (en) Method, device and system for detecting security of download link
KR100968126B1 (ko) 웹쉘 탐지 시스템 및 웹쉘 탐지 방법
CN104683328A (zh) 一种跨站漏洞扫描方法及系统
CN109104421B (zh) 一种网站内容篡改检测方法、装置、设备及可读存储介质
CN101964026A (zh) 网页挂马检测方法和系统
CN102663052B (zh) 一种提供搜索引擎搜索结果的方法及装置
CN105653949B (zh) 一种恶意程序检测方法及装置
CN104462985A (zh) bat漏洞的检测方法以及装置
CN104252447A (zh) 文件行为分析方法及装置
KR20150124020A (ko) 악성코드 식별 태그 설정 시스템 및 방법, 및 악성코드 식별 태그를 이용한 악성코드 검색 시스템
JP5656266B2 (ja) ブラックリスト抽出装置、抽出方法および抽出プログラム
Kim et al. AIBFT: artificial intelligence browser forensic toolkit
CN105897751B (zh) 威胁情报的生成方法及装置

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180102

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee