KR20220158533A - 악성 사이트 탐지 방법 - Google Patents

악성 사이트 탐지 방법 Download PDF

Info

Publication number
KR20220158533A
KR20220158533A KR1020210066481A KR20210066481A KR20220158533A KR 20220158533 A KR20220158533 A KR 20220158533A KR 1020210066481 A KR1020210066481 A KR 1020210066481A KR 20210066481 A KR20210066481 A KR 20210066481A KR 20220158533 A KR20220158533 A KR 20220158533A
Authority
KR
South Korea
Prior art keywords
web
data
uri
html
types
Prior art date
Application number
KR1020210066481A
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 KR1020210066481A priority Critical patent/KR20220158533A/ko
Publication of KR20220158533A publication Critical patent/KR20220158533A/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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Virology (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

악성 사이트 탐지 방법이 개시된다. 본 발명에 따른 악성 사이트 탐지 방법은, 복수의 유형의 트레이닝 데이터를 포함하는 트레이닝 데이터 셋을 수집하고, 상기 트레이닝 데이터 셋으로부터 특징(feature)을 추출하는 단계, 상기 특징(feature)을 입력 데이터로 이용하여, 정상 및 악성을 분류하도록 인공 신경망을 트레이닝함으로써 인공지능 모델을 생성하는 단계, 웹 트래픽을 실시간으로 수집하는 단계, 상기 웹 트래픽을 이용하여 상기 복수의 유형의 웹 수집 데이터를 획득하고, 상기 복수의 유형의 웹 수집 데이터로부터 특징(feature)을 추출하는 단계, 및, 상기 웹 수집 데이터로부터 추출된 특징(feature)을 상기 인공지능 모델에 제공하고, 상기 인공지능 모델이 출력한 결과 값에 기반하여 상기 웹 트래픽에 대한 유해 여부를 결정하는 단계를 포함한다.

Description

악성 사이트 탐지 방법 {MALICIOUS SITE DETECTION METHOD}
본 발명은, 웹 수집 데이터로부터 특징을 추출한 후, 추출된 특징을 인공지능 모델에 입력하여 웹 트래픽에 대한 유해 여부를 획득할 수 있는, 악성 사이트 탐지 방법에 관한 것이다.
일반적으로 유해사이트 탐지 방식은 보안장치 또는 보안시스템의 이벤트 분석 방식으로, 이벤트 발생 시 미리 정의된 보안정책에 매칭된 패턴 또는 임계치에 의한 분석이었다고 할 수 있다.
그리고 이와 같은 기술들에서는, 보안사고 발생 전에 선제적으로 악성사이트를 탐지하기에 어려움이 있고, 파일분석 없이 웹 패킷 및 웹 사이트 정보 기반으로 유해사이트를 탐지하는데 어려움이 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로, 본 발명의 목적은, 웹 수집 데이터로부터 특징을 추출한 후, 추출된 특징을 인공지능 모델에 입력하여 웹 트래픽의 유해 여부를 획득할 수 있는, 악성 사이트 탐지 방법을 제공하기 위함이다.
본 발명에 따른 악성 사이트 탐지 방법은, 복수의 유형의 트레이닝 데이터를 포함하는 트레이닝 데이터 셋을 수집하고, 상기 트레이닝 데이터 셋으로부터 특징(feature)을 추출하는 단계, 상기 특징(feature)을 입력 데이터로 이용하여, 정상 및 악성을 분류하도록 인공 신경망을 트레이닝함으로써 인공지능 모델을 생성하는 단계, 웹 트래픽을 실시간으로 수집하는 단계, 상기 웹 트래픽을 이용하여 상기 복수의 유형의 웹 수집 데이터를 획득하고, 상기 복수의 유형의 웹 수집 데이터로부터 특징(feature)을 추출하는 단계, 및, 상기 웹 수집 데이터로부터 추출된 특징(feature)을 상기 인공지능 모델에 제공하고, 상기 인공지능 모델이 출력한 결과 값에 기반하여 상기 웹 트래픽에 대한 유해 여부를 결정하는 단계를 포함한다.
이 경우 상기 복수의 유형의 웹 수집 데이터는, URL, URI, HTML, JavaScript 및 호스트를 포함할 수 있다.
이 경우 상기 복수의 유형의 웹 수집 데이터로부터 추출되는 특징은, 상기 웹 수집 데이터를 구성하는 구성 요소의 길이 정보, 상기 구성 요소의 개수 정보, 상기 구성요소가 특정 언어인지 여부, 상기 구성요소가 특정 형태를 나타내는 개수, 상기 구성 요소의 엔트로피, 태그의 수, 특정 값의 존재 여부, 특정 단어의 존재 여부 및 함수의 개수를 포함할 수 있다.
한편, 상기 웹 트래픽이 수집되는 경우, 상기 수집된 웹 트래픽이 특징의 추출 대상인지 판단하는 단계를 더 포함할 수 있다.
이 경우 상기 수집된 웹 트래픽이 특징의 추출 대상인지 판단하는 단계는, 파일의 존재 여부, 화이트리스트 도메인에 해당하는지 여부, 응답 코드의 형태, HTML 문서인지 여부에 기초하여, 상기 수집된 웹 트래픽이 특징의 추출 대상인지 판단할 수 있다.
본 발명에 따르면, 실시간으로 웹트래픽을 수집하여 AI분석이 가능하도록 특성(Feature)을 추출하고, AI모델을 통해 악성의심 도메인을 자동으로 분류할 수 있는 장점이 있다.
또한 본 발명에 따르면, 파일 다운로드가 불가능한 경우에도, 네트워크 단에서 수집된 웹 패킷 또는 웹 사이트 데이터 만으로 선제적으로 악성 사이트를 빠르게 탐지할 수 있는 장점이 있다.
이렇게 검출된 유해사이트 정보는, 사이버보안위협으로부터 예방을 위해 보안서비스 및 보안장치에 적용하여 위협정보를 선제적으로 대응할 수 있도록 할 수 있으며, 보안 플랫폼과의 연동을 통해 위협을 사전에 제거함으로써 고객들이 안심하고 인터넷서비스를 제공받을 수 있도록 할 수 있다. 또한 본 발명을 통해 정보보안사업에 새로운 가치를 창출할 수 있다.
도 1은 본 발명에 따른 악성 사이트 탐지 장치를 설명하기 위한 블록도이다.
도 2는 본 발명에 따른 특징 추출 방법을 설명하기 위한 도면이다.
도 3은 본 발명에 따른, 특징 추출 방법을 세부적으로 설명하기 위한 도면이다.
도 4는 본 발명에 따른, 웹 트래픽을 이용하여 웹 트래픽의 정상 여부를 실시간으로 확인하는 방법을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명을 구현함에 있어서 설명의 편의를 위하여 구성요소를 세분화하여 설명할 수 있으나, 이들 구성요소가 하나의 장치 또는 모듈 내에 구현될 수도 있고, 혹은 하나의 구성요소가 다수의 장치 또는 모듈들에 나뉘어져서 구현될 수도 있다.
도 1은 본 발명에 따른 악성 사이트 탐지 장치를 설명하기 위한 블록도이다.
본 발명에 따른 악성 사이트 탐지 장치(100)는, 수집부(110), 제어부(120) 및 메모리(130)를 포함할 수 있다.
수집부(110)는 유/무선 통신 기술을 이용하여 외부 장치와 통신하기 위한 통신 회로 또는 통신 모듈을 포함하고, 외부 장치와 데이터를 송/수신할 수 있다.
구체적으로 수집부(110)는 네트워크 단에 연결되어, 네트워크 단을 경유하는 웹 트래픽을 실시간으로 수집할 수 있다.
또한 수집부(110)는 피싱 사이트, 한국 인터넷 진흥원(KISA), 통신사 등과 연결되어 데이터를 수집할 수 있다.
메모리(130)는 악성 사이트 탐지 장치의 동작을 위한 프로그램이나 기타 데이터를 저장할 수 있다.
제어부(120)는 악성 사이트 탐지 장치(100)의 전반적인 동작을 제어할 수 있다.
또한 악성 사이트 탐지 장치(100)에는 인공 신경망 또는 인공지능 모델이 탑재되며, 이 경우 인공 신경망 또는 인공지능 모델을 구성하는 하나 이상의 명령어는 메모리(130)에 저장될 수 있다.
도 2는 본 발명에 따른 특징 추출 방법을 설명하기 위한 도면이다.
먼저 본 명세서에서는 인공 신경망을 트레이닝 하기 위하여 수집되는 데이터를 트레이닝 데이터라고 명칭 한다.
제어부(120)는 수집부(110)를 통하여 트레이닝 데이터 셋을 수집할 수 있다.
구체적으로, 트레이닝 데이터 셋은 URI(Uniform Resource Identifier) 데이터를 포함할 수 있다. 또한 URI 데이터는, 공개 URI 데이터 및 비 공개 URI 데이터를 포함할 수 있다.
공개 URI 데이터는, 피싱 사이트(OpenPhish, Phistank등)로부터 수집되는 데이터일 수 있다.
또한 비 공개 URI는, 악성 사이트 탐지 장치(100)를 운영하는 주체(예를 들어 통신사)에서 보유하거나 한국 인터넷 진흥원(KISA)에서 보유하는 데이터일 수 있다.
한편 트레이닝 셋은 복수의 유형의 트레이닝 데이터를 포함할 수 있다. 여기서 하나의 트레이닝 셋은, URI 데이터 및 URI 데이터와 관련된 다양한 유형의 데이터를 포함할 수 있다. 예를 들어 복수의 유형의 트레이닝 데이터는, URL, URI, HTML, JavaScript 및 호스트를 포함할 수 있다. 이 경우 제어부(120)는 수집된 URI 데이터에 대한 웹 크롤링을 통하여 복수의 유형의 트레이닝 데이터를 획득할 수 있다.
한편 제어부(120)는 트레이닝 데이터 셋에 대응하는 정답 값(레이블)을 획득할 수 있다.
구체적으로, 특정 트레이닝 데이터 셋이 공개 URI 데이터에 기반하여 획득된 경우, 제어부(120)는 특정 트레이닝 데이터 셋에 대응하는 레이블이 악성인 것으로 결정할 수 있다.
또한 특정 트레이닝 데이터 셋이 한국 인터넷 진흥원(KISA)에서 보유하는 비 공개 URI 데이터에 기반하여 획득된 경우, 제어부(120)는 특정 트레이닝 데이터 셋에 대응하는 레이블이 악성인 것으로 결정할 수 있다.
한편, 특정 트레이닝 데이터 셋이 악성 사이트 탐지 장치(100)를 운영하는 주체(예를 들어 통신사)에서 보유하는 비 공개 URI 데이터에 기반하여 획득된 경우, 제어부(120)는 SafeBrowsing API를 통해 정상 또는 악성 여부에 대한 정보를 획득할 수 있다. 그리고 제어부(120)는 트레이닝 데이터 셋에 정상 또는 악성 여부에 대한 정보를 레이블로써 연관시킬 수 있다.
한편 제어부(120)는 트레이닝 데이터 셋으로부터 특징(Feature)을 추출할 수 있다. 본 발명에서는 183개의 특징(Feature)을 추출하였다. 그리고 183개 특징은 URI 기반의 특징 96개, HTML 기반의 특징 43개, JavaScript 기반의 특징 28개, Host 기반의 특징 16개로 구성되어 있다.
도 3은 본 발명에 따른, 특징 추출 방법을 세부적으로 설명하기 위한 도면이다.
제어부(120)는 공개 URI 데이터 및 비 공개 URI 데이터를 수집할 수 있다(S305).
한편 앞서 설명한 바와 같이, 먼저 트레이닝 데이터 셋을 구성한 후 정답 값을 레이블링 하는 방식도 가능하며, 먼저 URI 데이터에 정답 값을 레이블링 한 후 트레이닝 데이터 셋을 구성하는 경우도 가능하다.
제어부(120)는 공개 URI 데이터 및 비 공개 URI 데이터에 대하여 정답 값을 레이블링 할 수 있다(S310).
구체적으로, 제어부(120)는 수집된 URI 데이터가, 악성 사이트 탐지 장치(100)를 운영하는 주체(예를 들어 통신사)에서 보유한 데이터인지 판단할 수 있다(S315). 그리고 수집된 URI 데이터가 악성 사이트 탐지 장치(100)를 운영하는 주체(예를 들어 통신사)에서 보유한 데이터인 경우, 제어부(120)는 *** safeBrowsing API를 호출하여(S320), 해당하는 URI 데이터가 정상인지 또는 악성인지에 대한 정보를 획득할 수 있다.
그리고 해당하는 URI 데이터가 악성인 경우(S325), 제어부(120)는 “악성”이라는 정답 값을 해당하는 URI 데이터에 레이블링 할 수 있다(S330).
반면에, 해당하는 URI 데이터가 정상인 경우(S325), 제어부(120)는 “정상이라는 정답 값을 해당하는 URI 데이터에 레이블링 할 수 있다(S335).
한편 수집된 URI 데이터가 악성 사이트 탐지 장치(100)를 운영하는 주체(예를 들어 통신사)에서 보유한 데이터가 아닌 경우, 제어부(120)는 수집된 URI 데이터가 공개 데이터인지 판단할 수 있다(S340).
그리고 수집된 URI 데이터가 공개 데이터이면, 제어부(120)는 “악성”이라는 정답 값을 해당하는 URI 데이터에 레이블링 할 수 있다(S330).
한편 수집된 URI 데이터가 공개 데이터가 아니면, 제어부(120)는 수집된 URI 데이터가 한국 인터넷 진흥원에서 보유한 데이터인지 판단할 수 있다(S345).
그리고 수집된 URI 데이터가 한국 인터넷 진흥원에서 보유한 데이터이면, 제어부(120)는 “악성”이라는 정답 값을 해당하는 URI 데이터에 레이블링 할 수 있다(S330).
한편 제어부(120)는 URI를 포함하는 트레이닝 데이터 셋이, 특징 추출 대상인지 판단할 수 있다(S350).
구체적으로 제어부(120)는, 파일의 존재 여부, 화이트리스트 도메인에 해당하는지 여부, 응답 코드의 형태, HTML 문서인지 여부에 기초하여, 트레이닝 데이터 셋이 특징의 추출 대상인지 판단할 수 있다.
더욱 구체적으로, 제어부(120)는 URI 데이터를 이용하여 파일을 획득할 수 없고(파일의 다운 로드가 불가능한 경우)(S351), URI 데이터가 화이트 리스트 도메인이 아니고(S352), 응답 코드의 형태가 2XX이고(S353), URI 데이터가 HTML 문서인 경우(S354), 트레이닝 데이터 셋으로부터 특징을 추출할 수 있다(S360).
특징의 구체적인 유형에 대해서는, 이후에 자세히 설명한다.
한편 제어부(120)는 특징을 입력 데이터로 이용하여, 정상 및 악성을 분류하도록 인공 신경망을 트레이닝 할 수 있다.
구체적으로, 인공신경망(뉴럴 네트워크)은 생물학적 뉴런의 동작원리와 뉴런간의 연결 관계를 모델링한 것으로 노드(node) 또는 처리 요소(processing element)라고 하는 다수의 뉴런들이 레이어(layer) 구조의 형태로 연결된 정보처리 시스템일 수 있다.
또한 인공 신경망은 입력 데이터를 이용하여 트레이닝(training)될 수 있다. 여기서 트레이닝이란, 입력 데이터를 분류(classification)하거나 회귀분석(regression)하거나 군집화(clustering)하는 등의 목적을 달성하기 위하여, 입력 데이터를 이용하여 인공 신경망의 파라미터(parameter)를 결정하는 과정을 의미할 수 있다. 인공 신경망의 파라미터의 대표적인 예시로써, 시냅스에 부여되는 가중치(weight)나 뉴런에 적용되는 편향(bias)을 들 수 있다.
또한 손실 함수는 인공 신경망의 트레이닝 과정에서 최적의 모델 파라미터를 결정하기 위한 지표(기준)로 이용될 수 있다. 인공 신경망에서 학습은 손실 함수를 줄이기 위하여 인공신경망의 파라미터들(가중치, 편향 등)을 조작하는 과정을 의미하며, 학습의 목적은 손실 함수를 최소화하는 파라미터를 결정하는 것으로 볼 수 있다.
그리고 제어부(120)는 지도 학습 알고리즘을 기반으로, 인공 신경망을 트레이닝 할 수 있다.
지도 학습에서는, 입력 데이터에 대한 레이블(label)이 주어진 상태에서 인공 신경망을 학습시킨다. 여기서 레이블이란, 입력 데이터가 인공 신경망에 입력되는 경우 인공 신경망이 추론해 내야 하는 정답(또는 결과 값)을 의미할 수 있다.
그리고 제어부(120)는 특정 트레이닝 데이터 셋으로부터 추출된 특징을 인공 신경망에 입력 데이터로 제공하고, 특정 트레이닝 데이터 셋에 레이블링된 정상 또는 악성에 대한 정보를 인공 신경망에 정답으로 제공함으로써, 인공 신경망을 트레이닝 할 수 있다.
또한 제어부(120)는 입력 데이터(특징) 및 정답의 차이에 기반하여 인공 신경망을 트레이닝 할 수 있다. 즉 제어부(120)는 입력 데이터(특징) 및 정답의 차이에 기반하여 손실 함수를 산출하고, 산출된 손실 함수를 이용하여 인공 신경망의 파라미터를 조절할 수 있다.
또한 제어부(120)는 다양한 트레이닝 데이터 셋으로부터 추출된 특징 및 다양한 트레이닝 데이터 셋에 대응하는 정답을 이용하여 인공 신경망에 대한 트레이닝을 반복함으로써, 인공 신경망의 파라미터가 최적화 된 인공지능 모델을 생성할 수 있다.
도 4는 본 발명에 따른, 웹 트래픽을 이용하여 웹 트래픽의 정상 여부를 실시간으로 확인하는 방법을 설명하기 위한 도면이다.
제어부(120)는 네트워크 단에 연결되어, 네트워크 단을 경유하는 웹 트래픽을 실시간으로 수집할 수 있다(S410). 여기서 웹 트래픽은, 웹 패킷 및 웹사이트 데이터 중 적어도 하나를 포함할 수 있다.
그리고 나서 제어부(120)는 수집된 웹 트래픽이 특징의 추출 대상인지 판단할 수 있다(S420).
구체적으로 제어부(120)는, 파일의 존재 여부, 화이트리스트 도메인에 해당하는지 여부, 응답 코드의 형태, HTML 문서인지 여부에 기초하여, 수집된 웹 트래픽이 특징의 추출 대상인지(즉, 정상 또는 악성을, 인공지능 모델을 이용하여 판단할 대상인지) 판단할 수 있다(420).
더욱 구체적으로, 제어부(120)는 웹 트래픽을 이용하여 파일을 획득할 수 없고(파일의 다운 로드가 불가능한 경우)(S421), 웹 트래픽이 화이트 리스트 도메인이 아니고(S422), 응답 코드의 형태가 2XX이고(S423), 웹 트래픽이 HTML 문서인 경우(S424), 수집된 웹 트래픽이 특징의 추출 대상인 것으로(즉, 정상 또는 악성을, 인공지능 모델을 이용하여 판단할 대상인 것으로) 판단할 수 있다(420).
한편 수집된 웹 트래픽이 특징의 추출 대상이면, 제어부(120)는 웹 트레픽을 이용하여 복수의 유형의 웹 수집 데이터를 획득하고, 복수의 유형의 웹 수집 데이터로부터 특징(feature)을 추출할 수 있다(S430).
여기서 복수의 유형의 웹 수집 데이터는, URL, URI, HTML, JavaScript 및 호스트 정보를 포함할 수 있으며, 웹 패킷을 이용하여 획득될 수 있다. 또한 제어부(120)는 도메인 정보를 획득할 수 있다. 예를 들어 제어부(120)는 웹 패킷으로부터 URI를 추출하고, 추출된 URI에 접속하여 해당하는 웹 페이지의 HTML, JavaScript 정보 등을 획득할 수 있다. 다른 예를 들어 제어부(120)는 웹 패킷으로부터 URI를 추출하고, 추출된 URI를 후이즈(Whois) 등에 문의하여, 도메인 정보(도메인의 생성 시점, 도메인 생성 후 경과 시간 등)을 획득할 수 있다.
본 발명에서는 183개의 특징(Feature)을 예시하였으며, 183개 특징은 URI 기반의 특징 96개, HTML 기반의 특징 43개, JavaScript 기반의 특징 28개, Host 기반의 특징 16개로 구성되어 있다. 특징(Feature)의 예시는 표 1과 같다.
특징 구분 설명
URL protocol 제외한 url 길이
URL domain 에서 '-' 개수
URL domain token 수
URL url path 의 길이
URL url filename 의 길이
URL domain token 중 가장 긴 token 의 길이
URL domain token 의 평균 token 길이
URL url의 tld가 valid인 tld인지 검사
URL (포트번호 포함한) domain 의 길이 (netloc: 포트번호 포함)
URL (포트번호 미포함) url hostname 의 길이 (hostname: 포트번호 미포함)
URL url 에서 dots(.) 의 수
URL url 에서 underscores(_) 의 수
URL url 에서 equals(=) 의 수
URL url 에서 slashes(/) 의 수 ('http://' 2개 포함)
URL url 에서 dash(-) 의 수
URL url 에서 semicolon(;) 의 수
URL url 에서 at(@) 의 수
URL url 에서 percent(%) 의 수
URL url 에서 plus(+) 의 수
URL url 에서 query 길이
URL url 에서 query parameter 개수
URL url 에 ip(IPv4/IPv6) 가 있는지 확인
URL url 복잡도 검사(shannon-entropy)
URL url 자음 갯수 검사
URL url 숫자 갯수 검사 (0~9)
URL url 중국어 검사
URL url port가 valid port인지 검사(None, 80, 443, 8080, 8443)
URL_Path path token의 수
URL_Path path token 중 가장 긴 token의 길이
URL_Path path token 중 가장 짧은 token의 길이
URL_Path path 중 자음 갯수 검사
URL_Path path token 의 평균 token 길이
URI url tld의 길이
URI [a i e o u] /총 문자[a-z]
URI 자음 /총 문자[a-z]
URI url에서 ldl형태의 개수
URI domain에서 ldl형태의 개수
URI path에서 ldl형태의 개수
URI 파일명에서 ldl형태의 개수
URI Arg에서 ldl형태의 개수
URI url에서 dld형태의 개수
URI domain에서 dld형태의 개수
URI path에서 dld형태의 개수
URI 파일명에서 dld형태의 개수
URI Arg에서 dld형태의 개수
URI subdirectory의 길이
URI fileName의 길이
URI file확자자의 길이
URI Arg의 길이
URI path / url
URI arg / url
URI arg / domain
URI domain / url
URI path / domain
URI arg / path
URI 실행파일여부
URI 80포트를 쓰는지
URI 연속성의 비율(알파벳,숫자,특수문자 타입들 중 가장 긴값의 합을 촐 길이로 나누어줌)
URI 가장 긴 변수의 값
URI hostname 에서 숫자 수
URI directory에서 숫자 수
URI filename에서 숫자 수
URI extension에서 숫자 수
URI query에서 숫자 수
URI url에서 글자 수
URI host에서 글자 수
URI directory에서 문자 수
URI filename에서 문자 수
URI extension에서 문자 수
URI query에서 문자수
URI subdirectory 중 가장 긴 단어 길이
URI argument 중 가장 긴 단어 길이
URI URL에서 민감한 Word의 수
URI query에서 변수의 수
URI url에서 특수문자의 수
URI domain에서 구분문자의 수
URI path에서 구분문자의 수
URI 전체 URL에서 구분문자의 수
URI url 에서 숫자/전체 문자
URI domain 에서 숫자/전체 문자
URI DirectoryName 에서 숫자/전체 문자
URI filename 에서 숫자/전체 문자
URI extension 에서 숫자/전체 문자
URI AfterPath 에서 숫자/전체 문자
URI 전체 URL에서 Symbol의 수
URI 전체 Domain에서 Symbol의 수
URI 디렉토리 이름에서 Symbol의 수
URI 파일이름에서 Symbol의 수
URI 파일 확장자에서 Symbol의 수
URI afterpath에서 Symbol의 수
URI url의 entropy
URI domain의 entropy
URI directoryname의 entropy
URI filename의 entropy
URI extension의 entropy
URI afterpath의 entropy
HTML html 에서 <iFrame> 태그의 수
HTML html 에서 <script> 태그의 수
HTML html 에서 <embed> 태그의 수
HTML html 에서 <object> 태그의 수
HTML html 에서 <div> 태그의 수
HTML html 에서 <head> 태그의 수
HTML html 에서 <body> 태그의 수
HTML html 에서 <form> 태그의 수
HTML html 에서 <a> 태그의 수
HTML html 에서 <small> 태그의 수
HTML html 에서 <span> 태그의 수
HTML html 에서 <input> 태그의 수
HTML html 에서 <applet> 태그의 수
HTML html 에서 <img> 태그의 수
HTML html 에서 <video> 태그의 수
HTML html 에서 <audio> 태그의 수
HTML html 에서 'refresh' 속성을 가진 <meta> 태그의 수 ex) <meta http-equiv="refresh" …
HTML html 에서 <script>...</script> 길이 (외부링크 제외)
HTML html 에서 공백 수(only space)
HTML html 에서 외부주소를 참조하는 태그의 수 (link에 자신의 hostname이 없으며, href 속성이 'http'나 'ftp'를 참고할 경우)
HTML html body 문서 길이
HTML script 에서 href,src 속성을 가진 태그 수
HTML html 에서 href 속성을 가진 태그 수
HTML html value에서 공백 기준 토큰화한 단어들의 수
HTML html value에서 공백 기준 토큰화한 단어들의 수 (중복제거)
HTML html 에서 라인 수(중복제거)
HTML html 에서 단어 길이의 평균 (총 단어 길이 /총 단어 수)
HTML html 에서 "log"라는 단어 검사
HTML html 에서 "pay"라는 단어 검사
HTML html 에서 "free"라는 단어 검사
HTML html 에서 "access"라는 단어 검사
HTML html 에서 "bonus"라는 단어 검사
HTML html 에서 "click"라는 단어 검사
HTML html 에서 dots(.)의 수
HTML html 에서 hyphens(-)의 수
HTML html 에서 underscores(_)의 수
HTML html 에서 equals(=)의 수
HTML html 에서 slashes(/)의 수
HTML html 에서 hashes(#)의 수
HTML html 에서 at(@)의 수
HTML html 에서 dollar($)의 수
HTML html 에 <title> 태그가 있는지 검사
HTML html 이 default webpage인지 검사 (apache, nginx 등)
Javascript script 에 eval() 함수의 개수
Javascript script 에 setTimeout() 함수의 개수
Javascript script 에 unescape() 함수의 개수
Javascript script 에 escape() 함수의 개수
Javascript script 에 parseInt() 함수의 개수
Javascript script 에 fromCharCode() 함수의 개수
Javascript script 에 ActiveXObject() 함수의 개수
Javascript script 에 concat() 함수의 개수
Javascript script 에 indexOf() 함수의 개수
Javascript script 에 substring() 함수의 개수
Javascript script 에 replace() 함수의 개수
Javascript script 에 documentaddEventListener() 함수의 개수
Javascript script 에 createElement() 함수의 개수
Javascript script 에 getElementById() 함수의 개수
Javascript script 에 attachEvent() 함수의 개수
Javascript script 에 documentwrite() 함수의 개수
Javascript script 문서 길이
Javascript script 에서 중복 제거한 단어 수
Javascript script 에서 라인 수(중복 제거)
Javascript script 에서 평균 단어 길이 (총 단어 길이/총 단어 수)
Javascript script 에서 dots(.)의 수
Javascript script 에서 hyphens(-)의 수
Javascript script 에서 underscores(_)의 수
Javascript script 에서 equals(=)의 수
Javascript script 에서 slashes(/)의 수
Javascript script 에서 hashes(#)의 수
Javascript script 에서 at(@)의 수
Javascript script 에서 dollar($)의 수
Host 도메인 생성 이 후 period (Month 기준)
Host 도메인 남은 만료일 (Month 기준)
Host 도메인 정보 최신 업데이트 이 후 period(Day 기준)
Host update date 값 존재 여부
Host create date 값 존재 여부
Host expiration date 값 존재 여부
Host zipcode 값 존재 여부
Host orgraniztion 값 존재 여부
Host dnssec 서명 여부
Host city 값 존재 여부
Host state 값 존재 여부
Host country 값 존재 여부
Host whois 서버 등록 여부
Host referral url 값 존재 여부
Host email 값 존재 여부
Host Alexa 순위 (100,000등 기준)
특징의 예시로, 복수의 유형의 웹 수집 데이터로부터 추출되는 특징은, 웹 수집 데이터를 구성하는 구성 요소의 길이 정보를 포함할 수 있다. 예를 들어 특징은, 제1 유형(URL)의 웹 수집 데이터를 구성하는 구성 요소(protocol 제외한 url)의 길이를 포함할 수 있다. 다른 예를 들어 특징은, 제2 유형(URI)의 웹 수집 데이터를 구성하는 구성 요소(fileName)의 길이를 포함할 수 있다.
특징의 또 다른 예시로, 복수의 유형의 웹 수집 데이터로부터 추출되는 특징은, 웹 수집 데이터를 구성하는 구성 요소의 개수 정보를 포함할 수 있다. 예를 들어 특징은, 제1 유형(URL)의 웹 수집 데이터를 구성하는 구성 요소(equals(=))의 수를 포함할 수 있다. 다른 예를 들어 특징은, 제4 유형(JavaScript)의 웹 수집 데이터를 구성하는 구성 요소(script 에서 중복 제거한 단어)의 수를 포함할 수 있다.
특징의 또 다른 예시로, 복수의 유형의 웹 수집 데이터로부터 추출되는 특징은, 구성 요소가 특정 언어인지 여부를 포함할 수 있다. 예를 들어 특징은, 제1 유형(URL)의 웹 수집 데이터를 구성하는 구성 요소가 중국어인지 여부를 포함할 수 있다.
특징의 또 다른 예시로, 복수의 유형의 웹 수집 데이터로부터 추출되는 특징은, 구성 요소가 특정 형태를 나타내는 개수를 포함할 수 있다. 예를 들어 특징은, 제2 유형(URI)의 웹 수집 데이터를 구성하는 구성 요소가 did 형태를 나타내는 개수를 포함할 수 있다.
특징의 또 다른 예시로, 복수의 유형의 웹 수집 데이터로부터 추출되는 특징은, 구성 요소의 엔트로피를 포함할 수 있다. 예를 들어 특징은, 제2 유형(URI)의 웹 수집 데이터에서 도메인의 엔트로피(entropy)를 포함할 수 있다.
특징의 또 다른 예시로, 복수의 유형의 웹 수집 데이터로부터 추출되는 특징은, 태그의 수를 포함할 수 있다. 예를 들어 특징은, 제3 유형(HTML)의 웹 수집 데이터를 구성하는 구성 요소(<body> 태그)의 수를 포함할 수 있다. 다른 예를 들어 특징은, 제3 유형(HTML)의 웹 수집 데이터를 구성하는 구성 요소(href 속성을 가진 태그 수)의 수를 포함할 수 있다.
특징의 또 다른 예시로, 복수의 유형의 웹 수집 데이터로부터 추출되는 특징은, 특정 값의 존재 여부를 포함할 수 있다. 예를 들어 특징은, 제5 유형(HOST)의 웹 수집 데이터에 특정 값(state 값)의 존재 여부를 포함할 수 있다.
특징의 또 다른 예시로, 복수의 유형의 웹 수집 데이터로부터 추출되는 특징은, 함수의 개수를 포함할 수 있다. 예를 들어 특징은, 제4 유형(Javascrip)의 웹 수집 데이터 내 eval() 함수의 개수를 포함할 수 있다.
특징의 또 다른 예시로, 복수의 유형의 웹 수집 데이터로부터 추출되는 특징은, 특정 단어의 존재 여부를 포함할 수 있다. 예를 들어 특징은, 제3 유형(HTNL)의 웹 수집 데이터에 특정 단어("free")의 존재 여부를 포함할 수 있다.
한편 특징이 추출되면, 추출된 특징 기반의 AI 분석을 수행할 수 있다(S440).
구체적으로, 제어부(120)는 웹 수집 데이터로부터 추출된 특징을 인공지능 모델에 제공하고, 인공지능 모델이 출력한 결과 값에 기반하여 웹 트래픽에 대한 유해 여부를 결정할 수 있다.
더욱 구체적으로, 웹 수집 데이터로부터 추출된 특징이 입력되면, 인공지능 모델은 입력된 특징에 기반하여 입력된 특징에 대응하는 결과 값을 출력할 수 있다. 이 경우 인공지능 모델은, 입력된 특징에 대응하는 클래스(정상 또는 악성)과 함께 클래스에 대응하는 확률을 출력할 수 있다.
그리고 악성의 확률이 기 설정된 값(예를 들어 0.5) 이상으로 출력되는 경우, 제어부(120)는 입력된 특징이 악성인 것으로 결정할 수 있다(S450). 또한 입력된 특징이 복수의 유형의 웹 수집 데이터로부터 추출된 경우, 상기 복수의 유형의 웹 수집 데이터를 수집하기 위해 사용된 최초의 웹 트래픽이 유해 사이트에 대한 트래픽인 것으로 결정할 수 있다. 따라서 제어부(120)는 실시간으로 수집된 웹 트래픽이 유해 사이트에 대한 트래픽인 것으로 결정하고(S460), 해당하는 사용자에게 유해 사이트 안내를 전송할 수 있다.
한편 정상의 확률이 기 설정된 값(예를 들어 0.5)을 초과하는 값으로 출력되는 경우, 제어부(120)는 입력된 특징이 정상인 것으로 결정할 수 있다(S450). 또한 입력된 특징이 복수의 유형의 웹 수집 데이터로부터 추출된 경우, 제어부(120)는 복수의 유형의 웹 수집 데이터를 수집하기 위해 사용된 최초의 웹 트래픽이 정상 사이트에 대한 트래픽인 것으로 결정할 수 있다. 따라서 제어부(120)는 실시간으로 수집된 웹 트래픽이 정상 사이트에 대한 트래픽인 것으로 결정할 수 있다(S470).
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 상기 컴퓨터는 제어부를 포함할 수도 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
100: 악성 사이트 탐지 장치 110: 수집부
120: 제어부 130: 메모리

Claims (5)

  1. 복수의 유형의 트레이닝 데이터를 포함하는 트레이닝 데이터 셋을 수집하고, 상기 트레이닝 데이터 셋으로부터 특징(feature)을 추출하는 단계;
    상기 특징(feature)을 입력 데이터로 이용하여, 정상 및 악성을 분류하도록 인공 신경망을 트레이닝함으로써 인공지능 모델을 생성하는 단계;
    웹 트래픽을 실시간으로 수집하는 단계;
    상기 웹 트래픽을 이용하여 상기 복수의 유형의 웹 수집 데이터를 획득하고, 상기 복수의 유형의 웹 수집 데이터로부터 특징(feature)을 추출하는 단계; 및
    상기 웹 수집 데이터로부터 추출된 특징(feature)을 상기 인공지능 모델에 제공하고, 상기 인공지능 모델이 출력한 결과 값에 기반하여 상기 웹 트래픽에 대한 유해 여부를 결정하는 단계;를 포함하는
    악성 사이트 탐지 방법.
  2. 제 1항에 있어서,
    상기 복수의 유형의 웹 수집 데이터는,
    URL, URI, HTML, JavaScript 및 호스트를 포함하는
    악성 사이트 탐지 방법.
  3. 제 2항에 있어서,
    상기 복수의 유형의 웹 수집 데이터로부터 추출되는 특징은,
    상기 웹 수집 데이터를 구성하는 구성 요소의 길이 정보, 상기 구성 요소의 개수 정보, 상기 구성요소가 특정 언어인지 여부, 상기 구성요소가 특정 형태를 나타내는 개수, 상기 구성 요소의 엔트로피, 태그의 수, 특정 값의 존재 여부, 특정 단어의 존재 여부 및 함수의 개수를 포함하는
    악성 사이트 탐지 방법.
  4. 제 1항에 있어서,
    상기 웹 트래픽이 수집되는 경우, 상기 수집된 웹 트래픽이 특징의 추출 대상인지 판단하는 단계;를 더 포함하는
    악성 사이트 탐지 방법.
  5. 제 4항에 있어서,
    상기 수집된 웹 트래픽이 특징의 추출 대상인지 판단하는 단계는,
    파일의 존재 여부, 화이트리스트 도메인에 해당하는지 여부, 응답 코드의 형태, HTML 문서인지 여부에 기초하여, 상기 수집된 웹 트래픽이 특징의 추출 대상인지 판단하는
    악성 사이트 탐지 방법.
KR1020210066481A 2021-05-24 2021-05-24 악성 사이트 탐지 방법 KR20220158533A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210066481A KR20220158533A (ko) 2021-05-24 2021-05-24 악성 사이트 탐지 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210066481A KR20220158533A (ko) 2021-05-24 2021-05-24 악성 사이트 탐지 방법

Publications (1)

Publication Number Publication Date
KR20220158533A true KR20220158533A (ko) 2022-12-01

Family

ID=84440781

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210066481A KR20220158533A (ko) 2021-05-24 2021-05-24 악성 사이트 탐지 방법

Country Status (1)

Country Link
KR (1) KR20220158533A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102596046B1 (ko) * 2022-12-05 2023-10-31 주식회사 에스투더블유 악성 서버 탐지 방법 및 이를 수행하기 위한 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102596046B1 (ko) * 2022-12-05 2023-10-31 주식회사 에스투더블유 악성 서버 탐지 방법 및 이를 수행하기 위한 장치

Similar Documents

Publication Publication Date Title
US20210377303A1 (en) Machine learning to determine domain reputation, content classification, phishing sites, and command and control sites
US10491614B2 (en) Illegitimate typosquatting detection with internet protocol information
US9531736B1 (en) Detecting malicious HTTP redirections using user browsing activity trees
CN103888490B (zh) 一种全自动的web客户端人机识别的方法
Cui et al. Malicious URL detection with feature extraction based on machine learning
CN104717185B (zh) 短统一资源定位符的展示响应方法、装置、服务器和***
JP6397932B2 (ja) エンドポイントからのネットワークリクエストに言語分析を適用するマルウェアに感染しているマシンを識別するためのシステム
Marchal et al. Proactive discovery of phishing related domain names
CN109905288B (zh) 一种应用服务分类方法及装置
CN105760379B (zh) 一种基于域内页面关联关系检测webshell页面的方法及装置
US20210344693A1 (en) URL risk analysis using heuristics and scanning
CN102065147A (zh) 一种基于企业应用***获取用户登录信息的方法及装置
US20210377304A1 (en) Machine learning to determine command and control sites
US20220075872A1 (en) Method and system for detecting malicious infrastructure
Lamprakis et al. Unsupervised detection of APT C&C channels using web request graphs
Burda et al. Characterizing the redundancy of DarkWeb. onion services
Chen et al. Efficient suspicious URL filtering based on reputation
Yoshihama et al. Web-Based Data Leakage Prevention.
KR20220158533A (ko) 악성 사이트 탐지 방법
CN117792741A (zh) 基于行为特征分析的网络攻击检测及溯源方法
WO2017134024A1 (en) A computer-implemented web tracking identification method, a web tracker detecting entity and computer program products
Najafi et al. Guilt-by-association: detecting malicious entities via graph mining
Jo et al. You're not who you claim to be: Website identity check for phishing detection
CN115001724B (zh) 网络威胁情报管理方法、装置、计算设备及计算机可读存储介质
CN111371917B (zh) 一种域名检测方法及***

Legal Events

Date Code Title Description
A201 Request for examination