KR20210084204A - 악성 코드 수집 방법 및 시스템 - Google Patents

악성 코드 수집 방법 및 시스템 Download PDF

Info

Publication number
KR20210084204A
KR20210084204A KR1020200066483A KR20200066483A KR20210084204A KR 20210084204 A KR20210084204 A KR 20210084204A KR 1020200066483 A KR1020200066483 A KR 1020200066483A KR 20200066483 A KR20200066483 A KR 20200066483A KR 20210084204 A KR20210084204 A KR 20210084204A
Authority
KR
South Korea
Prior art keywords
malicious
content
unit
domain
domains
Prior art date
Application number
KR1020200066483A
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 KR1020200066483A priority Critical patent/KR20210084204A/ko
Publication of KR20210084204A publication Critical patent/KR20210084204A/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
    • G06N20/00Machine learning

Abstract

웹을 통한 공격에 사용되는 악성 코드들을 식별하여 수집하는 기술이 개시된다. 제안된 악성코드 수집 방법에 따르면, 수집된 도메인들의 악성 확률에 기초하여 도메인별 분석 순위가 결정된다. 결정된 분석 순위에 따라 수집된 도메인들의 하위 페이지까지 크롤링하여 발견되는 콘텐츠들이 분석된다. 콘텐츠들은 그 악성 여부가 1차로 판단되어 필터링된다. 남은 콘텐츠들을 대상으로 허니팟을 사용한 2차적인 악성 여부 판단을 진행한다.

Description

악성 코드 수집 방법 및 시스템{Malware Crawling Method and System}
웹을 통한 공격을 방어하는 네트워크 보안 기술, 특히 공격에 사용되는 악성 코드들을 식별하여 수집하는 기술이 개시된다.
악성코드(Malicious software, malware)는 컴퓨터에 악영향을 끼칠 수 있는 소프트웨어를 말한다. 악성코드에는 고전적인 컴퓨터 바이러스외에 웜, 웜 바이러스, 트로이 목마, 스파이웨어, 애드웨어, 하이재커, 랜섬웨어, 키로거(keylogger) 등의 프로그램 형태 뿐 아니라 해킹된 아이디, 신용카드 정보, 해킹툴, 여권 등 서류, 익스플로잇(exploit) 혹은 취약점과 같은 정보 형태도 있다. 이들은 전문 사이트에서 거래되기도 한다.
기존의 보안 업체들은 백신 프로그램들을 배포하고 그 백신 프로그램들의 플랫폼을 이용하여 악성코드 정보를 수집한다. 허니팟 기반의 능동적인 악성코드 수집은 군사적인 목적에서 사이버 공격의 주체를 추적하거나 선제적인 대응 등 예외적인 경우에 필요하여 기술이 발전하지 않고 있다.
위키피디아 정보에 따르면, 악성코드의 분석 방법은 크게 정적 코드 분석 (Static code analysis)과 동적 코드 분석 (Dynamic code analysis) 두 종류로 나눌 수 있다. 코드 정적 분석의 경우는 프로그램을 디스어셈블하는 디버깅프로그램들을 이용하여 디스어셈블된 프로그램의 코드를 실행시키지 않고 분석하는 기법이다. 코드 동적 분석 (Dynamic code analysis)의 경우는 런타임 디버깅기법을 이용하여 통제된 상황 하에서 악성코드를 직접 실행시키며 이후에 발생하는 변화들을 분석하는 형태로 이루어진다. 디스어셈블하는 과정이나 디버깅하는 과정으로 인해 악성코드의 분석에는 많은 시간이 소요된다. 매일 수많은 새로운 악성코드들이 만들어지고 수많은 새로운 도메인들이 생기고 없어지기 때문에 가능성이 있는 도메인의 깊은 페이지에 있는 콘텐츠들을 허니팟 서버를 통해 접근하고 분석하여 악성 코드 정보를 유효하게 수집하는 것은 거의 불가능하다고 알려져 있다.
에프원시큐리티가 2018.06.22.자 출원하여 2019.04.10자 등록한 한국특허제1,969,572호는 정적 분석과 동적 분석을 통해 추출한 특성 정보를 이용하여 예측 모델을 학습하고 그 예측 모델을 통해 악성코드를 탐지하는 기술을 개시하고 있다. 새로운 악성코드를 탐지하는데 초점을 맞출 뿐 방대한 도메인들을 어떻게 효율적으로 탐지할 수 있는지에 대한 해결책을 제시하고 있지 못하다.
웹센스(Websense, LLC)에 의해 2006.12.01.자 출원되어 2017.05.16.자 등록 공보가 발행된 미국특허 9,654,495호는 URL 스트링 자체나 능동 컨텐트(active content) 분석을 통해 카테고리화하고, 속성 점수(property score)와 동태 점수(behavior score)를 종합하여 악성(malicious) 정도의 점수를 결정하여 그 점수에 따른 우선순위(priority)에 따라 분석 전문가(human analyst) 단말기로 제공하는 기술을 개시하고 있다. 이러한 점수화를 통해 분석 전문가의 작업을 효율화시킬 수 있다. 그러나 이러한 방법을 통해서도 도메인의 하위 페이지 깊은 곳에 있는 컨텐트들까지 분석 전문가들이 분석하는 것은 시간적으로 불가능하다.
한국인터넷진흥원이 2010.12.21.자 출원하여 2012.10.05.자 등록된 특허제1,190,261호는 웹크롤러가 수집한 도메인들을 정적 분석 모듈로 분석하여 의심 웹사이트를 선정하고 선정된 의심 웹사이트를 동적 분석 모듈로 분석하여 동적 분석의 시간을 줄이는 기술을 개시하고 있다. 그러나 정적 분석 자체에 많은 시간이 소요되므로 이러한 접근으로 방대한 도메인들을 모두 분석하는데 한계가 있다.
제안된 발명은 불특정 도메인들에서 악성코드를 고속으로 탐지하는 것을 목적으로 한다.
나아가 제안된 발명은 불특정 도메인들을 대상으로 악성코드를 빠짐 없이 찾아내는 것을 목적으로 한다.
더 나아가 제안된 발명은 불특정 도메인들을 대상으로 악성 코드를 탐지함에 있어서 리소스를 줄이는 것을 목적으로 한다.
더 나아가 제안된 발명은 기존에 알려지지 않은 새로운 악성 코드까지 탐지하는 것을 목적으로 한다.
제안된 발명의 일 양상에 따르면, 수집된 도메인들의 악성 확률에 기초하여 도메인별 분석 순위가 결정된다. 결정된 분석 순위에 따라 수집된 도메인들의 하위 페이지까지 크롤링하여 발견되는 콘텐츠들이 분석된다. 콘텐츠들은 그 악성 여부가 1차로 판단되어 필터링된다. 남은 콘텐츠들을 대상으로 허니팟을 사용한 2차적인 악성 여부 판단을 진행한다.
또 다른 양상에 따르면, 제안된 발명은 면 웹뿐 아니라 딥웹(deep web) 더 나아가 다크웹(dark web)에 등장하는 신규 도메인들의 접속 정보를 수집할 수 있으며, 추가적으로 웹페이지에 포함된 문서, 프로그램 코드 등 콘텐츠들의 접속 정보도 수집하여 악성 코드 여부를 분석할 수 있다.
또 다른 양상에 따르면, 수집된 도메인으로의 접속 요구에 대한 응답을 분석하여 도메인별 악성 확률을 산출하여 분석 순위를 결정할 수 있다. 더 나아가 추출된 악성 피처들로부터 생성된 입력 벡터로부터 악성일 확률을 산출하는 인공 지능 엔진을 통해 악성도를 산출할 수 있다.
추가적인 양상에 따르면, 도메인별 분석 순위에 따라 도메인을 접속하여 그 하위 페이지까지 크롤링하면서 발견되는 콘텐츠들을 분류하여 분류별로 악성 여부가 판별될 수 있다.
추가적인 양상에 따르면, 정적 분석을 통해 추출된 정적 피처들과, 동적 분석을 통해 추출된 동적 피처들이 통합된 피처 벡터로부터 악성 여부가 판별될 수 있다.
추가적인 양상에 따르면, 대상 콘텐츠 파일에서 추출한 동적 피처는 대상 콘텐츠 파일을 샌드박스에서 실행시켜 생성한 텍스트 파일을 워드 임베딩한 벡터를 포함한다.
추가적인 양상에 따르면, 대상 콘텐츠 파일에서 추출한 동적 피처는 대상 콘텐츠 파일을 샌드박스에서 실행시켜 생성한 텍스트 파일에 선택된 유니그램들(unigram)의 존재여부를 표시하는 일정한 길이를 가진 비트열을 포함할 수 있다.
추가적인 양상에 따르면, 대상 콘텐츠 파일에서 추출한 동적 피처는 대상 콘텐츠 파일을 샌드박스에서 실행하면서 수집한 API 호출정보들간의 종속 관계를 분석하여 생성한 행태 피처를 포함할 수 있다.
제안된 발명에 따르면, 수집된 도메인들의 악성 확률에 기초하여 분석 순위가 정해지고, 그 분석 순위에 따라 분석한다. 이에 따라 악성 확률이 높은 도메인들의 분석이 먼저 완료되므로 악성 코드의 수집율을 단시간에 높일 수 있다. 나아가 제안된 발명에 따르면, 악성 탐지 모델을 내장한 크롤링 엔진을 사용하여 먼저 악성일 가능성이 낮은 콘텐츠들을 필터링한 후 허니팟 에이전트로 분석한다. 이에 따라 허니팟 에이전트로 분석하는 콘텐츠의 수를 줄일 수 있고, 따라서 도메인의 하위 페이지에 있는 악성 코드까지 탐지하는 것이 가능할 수 있다.
나아가 제안된 발명에 따르면, 허니팟 에이전트들은 콘텐츠의 악성 코드 여부를 판단함에 있어서 정적 피처와 동적 피처를 추출하고 이들을 통합한 피처 벡터를 표상 학습 딥러닝 알고리즘으로 처리함으로써 악성 여부를 신속히 판단할 수 있다.
도 1은 일 실시예에 따른 악성 코드 수집 방법의 구성을 도시한 흐름도이다.
도 2는 일 실시예에 따른 도메인 수집 단계의 구성을 도시한 흐름도이다.
도 3은 일 실시예에 따른 분석 순위 결정 단계의 구성을 도시한 흐름도이다.
도 4는 일 실시예에 따른 필터링 단계의 구성을 도시한 흐름도이다.
도 5는 일 실시예에 따른 허니팟 탐지 단계의 구성을 도시한 흐름도이다.
도 6은 일 실시예에 따른 악성 코드 수집 시스템의 구성을 도시한 블록도이다.
도 7은 일 실시예에 따른 도메인 수집부의 구성을 도시한 블록도이다.
도 8은 일 실시예에 따른 분석 순위 결정부의 구성을 도시한 블록도이다.
도 9는 일 실시예에 따른 필터링부의 구성을 도시한 블록도이다.
도 10은 일 실시예에 따른 허니팟 탐지부의 구성을 도시한 블록도이다.
전술한, 그리고 추가적인 양상들은 첨부된 도면을 참조하여 설명하는 실시예들을 통해 구체화된다. 각 실시예들의 구성 요소들은 다른 언급이나 상호간에 모순이 없는 한 실시예 내에서 다양한 조합이 가능한 것으로 이해된다.
일 양상에 따르면, 수집된 도메인들의 악성 확률에 기초하여 결정된 분석 순위에 따라 악성 여부를 판별하되, 도메인들의 하위 페이지까지 크롤링하여 추출되는 콘텐츠들의 악성 여부를 1차로 판단하여 필터링한 후 판별한다. 도 1은 일 실시예에 따른 악성 코드 수집 방법의 구성을 도시한 흐름도이다. 도시된 바와 같이, 일 실시예에 따른 악성 코드 수집 방법은 도메인 수집 단계(S100)와, 분석 순위 결정 단계(S300)와, 필터링 단계(S500)와, 허니팟 탐지 단계(S700)를 포함한다.
도메인 수집 단계(S100)에서 도메인 수집기는 분석 대상이 되는 도메인들의 접속 정보, 예를 들면 URL 정보를 수집한다. 도메인의 접속 정보는 DNS(domain name server) 서버나 가이드 사이트, 각 분야의 랭킹 사이트에서 수집할 수 있다. 도메인 수집은 새로운 유형의 악성 코드 및 악성 웹사이트가 등록될 수 있는 신규 도메인을 지속적으로 수집하여 탐지 대상이 되는 URL 데이터베이스를 최신화할 수 있어야 한다. 수집된 도메인들은 URL 데이터베이스에 큐(Queue) 형식으로 저장된다.
분석 순위 결정 단계(S300)에서 수집된 도메인들 각각의 악성 확률에 따른 분석 순위가 결정된다. 악성도 분석 엔진은 도메인 분석을 통해 악성 코드가 담겨져 있을 확률이 높은 도메인을 우선적으로 탐색할 수 있도록 큐(queue)를 생성한다. 이를 위해 제안된 발명은 도메인의 악성 확률을 측정하는 메트릭(metric)을 제안한다. 일 실시예에서, 도메인 우선순위 측정기가 URL 데이터베이스를 접근하여 도메인들의 악성 확률에 따른 분석 순위를 결정한다. 일 양상에 따라, 도메인 우선순위 측정기는 수집된 도메인들의 접속요구에 대한 응답을 수집하고, 그 응답을 분석하여 악성 확률을 결정할 수 있다. 예를 들어 응답을 파싱하여 포함된 문자적 표현(literal expression)을 패턴과 비교하여 유사도값의 합으로부터 악성 확률을 계산할 수 있다.
이후에, 필터링 단계(S500)에서는, 결정된 분석 순위에 따라 도메인을 크롤링하되, 그 하위 페이지까지 크롤링한다. 크롤링을 통해 콘텐츠들에 접근하여 콘텐츠들의 악성 여부를 악성 탐지 모델을 사용하여 판단한다. 판단 결과 악성으로 의심되는 콘텐츠를 선별하여 그 접속 정보를 출력한다. 필터링 단계(S500)에서는 정적 코드 분석 혹은 동적 코드 분석과 같은 시간이 많이 소요되는 방법보다는 콘텐츠 그 자체의 내용에 기초한 분류 기법을 이용하여 콘텐츠를 선별한다. 예를 들어 콘텐츠 파일의 파일명, 작성일자 등 파일 정보와, 그 파일 헤더에 있는 내용을 추출하여 위험도 패턴과 매칭하여 분석할 수 있다.
추가적인 양상에 따르면, 허니팟 탐지 단계(S700)에서 허니팟 에이전트는 필터링 단계(S500)에서 출력된 접속 정보를 이용하여 해당 콘텐츠에 접근하여 악성 여부를 판별하고 악성코드 데이터베이스로 전달한다. 일 실시예에서, 허니팟 탐지 단계(S700)는 병렬적으로 처리되는 허니팟 에이전트들에 의해 실행될 수 있다. 허니팟(honeypot)은 비정상적인 접근을 탐지하기 위해 의도적으로 설치해 둔 시스템 내의 보안 메카니즘을 의미한다. 허니팟 에이전트들은 필터링 단계(S500)에서 출력된 접속 정보를 이용하여 해당 콘텐츠를 접근하고 악성 여부를 판별하여 악성코드 데이터베이스로 전달한다. 일 양상에 따라, 허니팟 에이전트들은 정적 코드 분석, 또는 동적 코드 분석과 같은 실행 가능 파일들의 디어셈블이나 디버깅을 통한 분석을 포함할 수 있다.
정적 분석, 정적 코드 분석(static code analysis) 혹은 정적 악성코드 탐지(static malware detection)기법은 대상 파일을 실행하지 않고 악성 여부를 판별하는 기법이다. 마이크로소프트의 윈도우 운영체제에서 DLL 동적 링크 라이버러리(dynamically-linked libraries, DLLs), 그리고 FON 폰트 파일과 같은 휴대형 실행 가능 파일(PE : Portable Executable file)들은 정적 분석에서 분석 대상으로 흔히 초점이 맞추어진다. 정적 분석에서는 이들 파일로부터 도입된 함수들(imported functions), 문자열들(strings), 그리고 바이트 시퀀스(byte sequences)들로부터 피처를 추출하여 이들을 통해 다양한 기계학습모델들(machine learning models)을 학습시켜 분석에 사용하고 있다. Hyrum S. Anderson et al., "EMBER: An Open Dataset for Training Static PE Malware Machine Learning Models", arXiv.com, 16 Apr 2018 은 이러한 정적 분석 기법들을 정리하고 있다.
이에 반해 동적 분석, 동적 코드 분석 (Dynamic code analysis) 혹은 동적 악성코드 탐지(dynamic malware detection)기법은 은 악성 코드들이 실제로 실행되는 동안 시간 의존적인 시스템 호출 시퀀스(time-dependent sequences of system calls)를 포함하는 그 실행시간 동태(runtime behavior)에 기초하여 악성 여부를 검출하는 기술이다. 동적 코드 분석을 위해 악성 코드들을 실행시켜 그 API 호출 정보를 제공하는 공개 쏘오스(open source) 기반의 플랫폼으로 쿡쿠 샌드박스(Cuckoo Sandbox)가 알려져 있다. 대상 실행 가능 파일들을 이러한 샌드박스에서 실행시키면서 그 API 호출 시퀀스들로부터 동적인 피처를 추출하는 기술들이 알려져 있다. Fei Xiao et al., "Malware Detection Based on Deep Learning of Behavior Graphs", Hindawi Mathematical Problems in Engineering Vol.2019,Art. 8195395, 11 Feb. 2019는 이러한 동적 피처 추출을 통한 동적 코드 분석의 최근 기술의 일 예를 자세히 기술하고 있다.
도 2는 일 실시예에 따른 도메인 수집 단계의 구성을 도시한 흐름도이다. 일 실시예에 따른 도메인 수집 단계에서 도메인 수집기는 DNS 서버를 통해 면웹(surface web)에 속한 신규 도메인을 수집할 수 있다(S110). DNS 서버에 주기적으로 업데이트되는 신규 도메인들의 접속 정보는, 예를 들어 DNS에서 제공하는 API(Application Program Interface)를 통해 수집할 수 있다. 예를 들어 ICANN이 제공하는 API를 활용하여 일반 최상위 도메인(generic top-level domain, gTLD)을 수집할 수 있다. 또 유료 API를 활용하여 각국 정부가 관리하는 국가 코드 최상위 도메인(Country Code Top-Level Domain, ccTLD)을 수집할 수 있다. 추가로, 신규 면웹 도메인 수집 단계(S110)에서, 도메인 수집기는 기존 면웹 도메인들의 온라인 존재 여부, 즉 폐쇄나 소멸 여부를 체크하여 URL 데이터베이스에 반영할 수 있다.
추가적인 양상에 따라, 제안된 발명의 도메인 수집기는 면 웹뿐 아니라 딥웹(deep web) 더 나아가 다크웹(dark web)에 등장하는 신규 도메인들의 접속 정보를 수집할 수 있다(S130). 다크웹에 접근하기 위해서는 암호화된 콘텐츠를 접근하는 특별한 소프트웨어를 사용해야 한다. 신규 다크웹 도메인 수집 단계(S130)에서 도메인 수집기는 다크웹의 암호화 엔진을 내장한 크롤러(crawler)를 통해 다크웹여 접근하여 새로운 신규 도메인을 탐색하고 기존 도메인의 폐쇄나 소멸 여부를 체크하여 URL 데이터베이스에 반영할 수 있다.
추가적인 양상에 따라, 제안된 발명의 도메인 수집기는 웹페이지 뿐 아니라 웹페이지에 포함된 문서, 프로그램 코드 등 콘텐츠도 수집할 수 있다. 제안된 발명에 따른 도메인 수집 단계(S100)는 신규 해킹 콘텐츠 수집 단계(S150)를 더 포함할 수 있다. 신규 해킹 콘텐츠 수집 단계(S150)에서 도메인 수집기는 해커 사이트를 분석하여 새롭게 올려지는 신규 콘텐츠의 접속 정보를 수집할 수 있다.
제안된 발명의 도메인 수집기는 추가로 알려진 악성 코드 도메인들을 목표로 하는 의도적인 탐색을 통해 도메인을 수집할 수 있다. 예를 들어 북한에 관련되는 관련 도메인들이 알려져 있으며, 그 패턴이 알려져 있다. 알려진 도메인을 방문하여 추가된 콘텐츠나 관련 링크들을 추적하여 새로운 도메인을 추가할 수 있다. 또 패턴을 통해 면웹 또는 다크웹에서 검색하여 새로운 도메인을 추가할 수 있다.
도시된 실시예에서, 신규 면웹 도메인 수집 단계(S110)와, 신규 다크웹 도메인 수집 단계(S130)와, 신규 해킹 콘텐츠 수집 단계(S150)는 병렬적으로 실행된다. 그러나 제안된 발명은 이에 한정되지 않으며, 용도에 따라 신규 면웹 도메인 수집(110)과 신규 다크웹 도메인 수집 단계(S130), 또는 신규 해킹 콘텐츠 수집 단계(S150) 중 하나만 포함할 수도 있으며, 또 다른 수집 체계를 부가할 수도 있다.
도 3은 일 실시예에 따른 분석 순위 결정 단계의 구성을 도시한 흐름도이다. 일 양상에 따르면, 분석 순위 결정 단계(S300)는 사전 정보수집 단계(S310)와, 표면 악성 피처 추출 단계(S330)와, 사전 악성도 분석 단계(S350)를 포함할 수 있다. 사전 정보수집 단계(S310)에서 악성도 분석 엔진은 수집된 도메인들의 접속요구에 대한 응답을 수집한다. 도 1에서 도메인 수집 단계(S100)에서 수집된 도메인들은 URL 데이터베이스에서 관리된다. 도메인 수집 단계(S100)에서 도메인들을 수집하면서 기본적인 속성, 예를 들면 가장 최근 크롤링한 시각, 국가, 온라인상 존재 여부 등의 정보가 기록된다. 사전 정보수집 단계(S310)에서 악성도 분석 엔진은 크롤러를 통해 URL 데이터베이스에 등록된 도메인들에게 순차적으로 접속 요구를 전송하고 그 응답을 수신하여 도메인별로 저장한다.
이후에 표면 악성 피처 추출 단계(S330)에서 악성도 분석 엔진은 수집된 응답에서 응답에 포함된 콘텐츠별로 표면 악성 피처들을 추출한다. 표면 악성 피처는 도메인을 접속하였을 때 직접적으로 획득되는 정보로부터 직접 추출될 수 있는 피처이다. 표면 악성 피처는 정적 코드 분석이나 동적 코드 분석을 통해 얻을 수 있는 정보에 비해 획득하는데 많은 계산이나 시간이 소요되지 않는 정보이다.
또 다른 양상에 따르면, 표면 악성 피처들은 도메인 접속 정보의 어휘적 피처와, 네트워크 관련 피처와, 응답에 포함된 콘텐츠 피처와, DNS 피처를 포함할 수 있다. 도메인 접속 정보의 어휘적 피처는 예를 들면 URL의 길이, URL 토큰 개수, URL 스트링 엔트로피 등이 될 수 있다. 네트워크 관련 피처는 예를 들면 리디렉션(redirection) 개수, 다운로드 바이트수, 도메인 룩업 시간 등이 될 수 있다. 응답에 포함된 콘텐츠 피처는 예를 들면 악성코드에서 자주 사용되는 특정한 자바스크립트 함수의 개수, 애플릿 태그의 개수, 숨겨진 iframe의 개수 등이 될 수 있다.
DNS 피처는 DNS 서버로부터의 DNS 응답으로부터 추출되는 피처이며, 예를 들면 네임 서버의 개수(name server count), 네임 서버의 IP 개수(name server IP count), 네임서버 변환 IP 개수(name server resolved IP count), DNS 플럭시니스(DNS fluxiness) 등이 될 수 있다. 패스트 플럭싱(fast-fluxing)은 프록시로 동작하는 타협 숙주(compromised hosts)의 끊임 없이 변동하는 네트워크(ever-changing network) 뒤에 악성 웹사이트(malicious websites)를 숨기는 DNS 기법이다. DNS 플럭시니스는 패스트-플럭싱 URL을 탐지하기 위한 피처로 Holz et al., "Detection and mitigation of fast-flux service networks", NDSS 2008 에 알려져 있다.
이후에 사전 악성도 분석 단계(S350)에서 악성도 분석 엔진은 추출된 표면 악성 피처들을 분석하여 도메인별 사전 악성도를 산출하여 분석 순위를 결정한다. 사전 악성도는 허니팟이 분석하는 최종적이고 깊이 있는 악성도 분석 이전에 고속으로 실행하는 필터링을 위한 계산값으로서 악성도를 말한다. 추가적인 양상에 따르면, 사전 악성도 분석 단계(S350)는 추출된 표면 악성 피처들을 종합하여 생성한 입력 벡터로부터 악성일 확률을 산출하는 인공지능 엔진을 통해 악성도를 산출할 수 있다. 추출된 표면 악성 피처들이 벡터로 병합되어 인공 지능 엔진의 입력 벡터가 될 수 있다. 일 실시예에서, 악성도는 이러한 입력벡터를 입력으로 SVM(support vector machine)이 출력하는 악성 도메인일 확률값일 수 있다. SVM(support vector machine)은 지도 학습(supervised learning)을 통해 학습될 수 있다. 사전 악성도 값에 따라 분석 순위가 결정된다. 분석 순위는 반드시 일련번호와 같은 랭킹 형태일 필요 없으며, 예를 들면 등급(grade)값일 수 있다.
추가적인 양상에 따르면, 도메인별 분석 순위에 따라 도메인을 접속하여 그 하위 페이지까지 크롤링하면서 발견되는 콘텐츠들을 분류하여 분류별로 악성 여부가 판별될 수 있다. 도 4는 일 실시예에 따른 필터링 단계의 구성을 도시한 흐름도이다. 도시된 바와 같이, 일 실시예에 따른 필터링 단계(S500)는 인-뎁스(in-depth) 크롤링 단계(S510)와, 타입별 악성 탐지 단계(S530)를 포함할 수 있다. 인-뎁스(in-depth) 크롤링 단계(S510)에서, 크롤러 에이전트는 URL 데이터베이스에 분석 순위에 따라 저장된 모든 도메인을 순차적으로 접속하여 그 하위 페이지까지 크롤링하면서 발견되는 콘텐츠들을 수집한다. 크롤러 에이전트는 면웹 크롤러 에이전트와 다크웹 크롤러 에이전트를 포함할 수 있다. 면웹 인-뎁스(in-depth) 크롤링 단계와 다크웹 인-뎁스(in-depth) 크롤링 단계는 각각 하나 이상의 면웹 크롤러 에이전트와 하나 이상의 다크웹 크롤러 에이전트에 의해 수행될 수 있다. 파일 타입은 자바 스트립트 파일, 워드 프로세서 파일, PDF 파일 등으로 일반적으로 파일 확장자에 따라 분류될 수 있다.
타입별 악성 탐지 단계(S530)에서, 악성 탐지 엔진은 콘텐츠 종류별로 악성 여부를 판별한다. 추가적인 양상에 따르면, 타입별 악성 탐지 단계(S530)는 콘텐츠 타입별 탐지 단계(S531)와, 휴대 실행형(Portable Executable) 파일 탐지 단계(S533)와, 웹소스 탐지 단계(S535) 중 적어도 복수개를 포함할 수 있다. 콘텐츠 타입별 탐지 단계(S531)는 콘텐츠의 파일 타입, 예를 들면 자바 스트립트 파일, 워드 프로세서 파일, PDF 파일 등 파일 타입에 따라 악성 여부를 탐지한다. 이들은 강화 학습을 통해 학습된 하나 혹은 복수의 딥러닝 엔진에서 실행될 수 있다.
휴대 실행형(Portable Executable) 파일은 마이크로소프트 윈도우 운영체제에서 운영체제의 로더(loader)가 감싸인 실행 가능한 코드(wrapped executable code)를 다루기 위해 필요한 정보를 인캡슐레이션한 데이터 구조이다. Rushabh Vyas et al., "Investigation of malicious portable executable file detection on the network using supervised learning techniques", 2017.05.01. IM 과 같이 딥러닝 엔진을 이용한 PE 파일들의 악성 여부의 검출 기술들이 알려져 있다.
웹소스 탐지 단계(S535)는 HTTP 응답(response)과 같은 웹 소스에 기반하여 악성 코드를 탐지한다.
콘텐츠 타입별 탐지 단계(S531)와, 휴대 실행형(Portable Executable) 파일 탐지 단계(S533)와, 웹소스 탐지 단계(S535) 에서 악성 코드를 포함하지 않은 것으로 탐지된 콘텐츠들의 접속 정보는 URL 데이터베이스에서 필터링을 통해 제거되고, 악성 코드를 포함한 콘텐츠들의 접속 정보가 URL 데이터베이스에 남게 된다.
추가적인 양상에 따르면, 정적 분석을 통해 추출된 정적 피처들과, 동적 분석을 통해 추출된 동적 피처들이 통합된 피처 벡터로부터 악성 여부가 판별될 수 있다. 도 5는 일 실시예에 따른 허니팟 탐지 단계의 구성을 도시한 흐름도이다. 먼저 도메인 분배기가 필터링된 도메인들 혹은 URL 들을 분석 순위에 따라 허니팟 에이전트들에게 분배할 수 있다(710). 허니팟 에이전트들은 하나 혹은 복수의 계산요소에서 실행되는 타스크(task)일 수 있다. 또 다른 예로, 허니팟 에이전트들은 어레이로 구비되는 복수의 하드웨어 계산요소들의 구성(configuration)을 동적으로 변경시켜 할당되는 하드웨어 계산요소일 수도 있다. 도메인 분배기는 계산 부하에 따라 새로운 허니팟 에이전트들을 실행하고, 병렬적으로 실행되는 허니팟 에이전트들의 각각의 처리 버퍼의 상태에 기초하여 URL 데이터베이스에 저장되어 있는 도메인 혹은 URL들을 분배한다. 도메인 분배기는 현재 실행되고 있는 허니팟 에이전트의 개수와 도 1에서 필터링 단계(S500)에서 필터링되어 URL 데이터베이스에 남아 있는 URL들의 처리율을 고려하여 병렬적으로 실행되는 허니팟 에이전트들의 개수를 조절할 수 있다.
이후에, 허니팟 에이전트들이 분배된 대상 콘텐츠들을 실행하는 동안 정적 피처 추출(단계 S731)과 동적 피처 추출(단계 S733)이 이루어진다. 일 실시예에서, 정적 피처는 임포트(import)/익스포트(export) 함수의 개수, 바이트 히스토그램(byte histogram), 바이트 엔트로피 히스토그램(byte entropy histogram), 인쇄 가능한 문자열(printable string), 헤더 정보, 파일 크기 등이 될 수 있다. 이러한 정적 피처들에 대해서는 전술한 EMBER 논문에 기재되어 있다.
동적 피처 추출 단계(S733)에서 허니팟 에이전트는 샌드박스에서 대상 콘텐츠 파일을 실행시켜 획득한 텍스트 파일, 즉 샌드박스 파일로부터 동적 피처를 추출한다.
이후에 정적 피처와 동적 피처가 통합되어 피처 벡터가 생성된다(단계 S735). 예를 들어 정적 피처와 동적 피처는 문자열을 이어서(concatenation) 통합될 수 있다. 이후에 이러한 피처 벡터로부터 그 콘텐츠 파일의 악성 여부가 판별된다. 악성 여부의 판별은 딥러닝 기반의 처리 엔진, 예를 들면 SVM(support vector machine)에 의해 수행될 수 있다. 일 실시예에서, SVM 머신은 해당 피처 벡터를 입력하여 콘텐츠 파일의 악성일 확률을 출력할 수 있다.
추가적인 양상에 따르면, 대상 콘텐츠 파일에서 추출한 동적 피처는 대상 콘텐츠 파일을 샌드박스에서 실행시켜 생성한 텍스트 파일을 워드 임베딩(word embedding)한 벡터를 포함할 수 있다. 워드 임베딩은 자연어 처리에서 단어를 벡터로 표현하는 것을 말한다. 실시예에서, 대상 콘텐츠 파일에서 추출한 동적 피처는 대상 콘텐츠 파일을 샌드박스에서 실행시켜 생성한 텍스트 파일에 선택된 유니그램들(unigram)의 존재여부를 표시하는 일정한 길이를 가진 비트열을 포함할 수 있다.
허니팟 에이전트는 샌드박스에서 대상 콘텐츠 파일을 실행시켜 획득한 텍스트 파일, 즉 샌드박스 파일을 자연어 처리(NLP : natural language processing)에 알려진 방법 중 하나를 사용하여 일정한 길이를 가진 문자열(a fixed size string)로 변환한다. 이러한 획일화는 악성 코드의 동적 피처 생성에 있어서 중요한 의미를 가진다. 샌드박스 파일은 인공 지능 등의 도구를 사용하여 자동 분석하기에는 너무나 다양한 표현들을 포함하고 있다. 제안된 발명의 일 양상에 따라, 자연어 처리 기법 중 유니그램 추출(unigram extraction)이라는 상당히 단순화된 기법이 채택된다.
먼저 각각의 샌드박스 파일에서 모든 유니그램들이 추출된다. 이후에 각각의 유니그램들에 대해 그 유니그램이 출현한 파일의 수를 카운트한다. 그 중 출현 빈도수가 높은 상위 일정 개수, 예를 들면 20,000개의 유니그램을 선별하고 샌드박스 파일을 그 선별된 유니그램들의 존재 여부에 따라 '1' 또는 '0'의 값을 가지는 20,000 비트 길이를 가지는 비트열(20,000 sized bit string) 벡터로 표현한다.
또 다른 실시예에서, 동적 피처는 대상 파일을 샌드박스에서 실행하면서 수집한API 호출정보들간의 종속 관계를 분석하여 생성한 행태 피처를 포함할 수 있다. Fei Xiao 의 논문에서 이러한 예를 찾을 수 있다. 이러한 실시예에서, 먼저 샌드박스, 예를 들면 알려진 Cuckoo Sandbox에서 대상 파일을 실행시켜 API 호출 정보를 수집한다. 이후에 운영체제 자원 혹은 API 호출을 나타내는 노드들과 종속관계를 나타내는 에지들로 구성되는 API 호출 그래프가 작성된다. 이후에 이 API 호출 그래프들로부터 행태 그래프(behavior graph)가 작성되고, 이 행태 그래프로부터 행태 피처를 추출하고 이들로부터 딥러닝 기반의 인공 지능 엔진의 입력인 이진 벡터가 생성될 수 있다.
도 6은 일 실시예에 따른 악성 코드 수집 시스템의 구성을 도시한 블록도이다. 도시된 바와 같이, 일 실시예에 따른 악성 코드 수집 시스템은 도메인 수집부(100)와, 분석 순위 결정부(300)와, 필터링부(500)와, 허니팟 탐지부(700)를 포함한다. 이들의 동작은 도 1의 각각 대응하는 단계들에서 설명한 바와 유사하므로 상세한 설명은 생략한다.
도 6에 도시된 실시예에서, 각각의 블록들은 컴퓨팅 시스템에서 컴퓨터 프로그램의 실행 혹은 파라메터들의 설정이 가능한 하나 이상의 하드웨어 기반의 특별 계산 요소 또는 범용 컴퓨터 프로그램의 실행이 가능한 하나 이상의 범용 계산 요소 중 어느 하나 혹은 이들의 조합에 의해 구현되는 정보 계산 장치에서 구현될 수 있다. 계산 요소(computing element)는 적어도 하나의 계산 유닛을 포함하고, 하드웨어 혹은 메모리에 저장된 프로그램에 의해 정해지는 제어 시퀀스에 따라 계산 유닛을 제어하여 자동화된 정보 처리를 하는 장치를 의미한다. 파라메터들의 설정이 가능한 특별 계산 요소는, 예를 들면 신경망 회로와 같이 고정된 계산 구조를 가지되, 계산 파라메터들의 설정을 통해 그 계산을 통제할 수 있는 계산 요소를 말한다.
도메인 수집부(100)는 최초 도메인을 수집한 후 주기적으로 새로운 도메인을 탐색한다. 도메인 수집부(100)가 수집한 도메인들은 URL 데이터베이스에 저장된다. 분석 순위 결정부(300)는 URL 데이터베이스(910)에 저장된 도메인들을 분석하여 악성 코드가 담겨져 있을 확률이 높은 순서대로 URL 큐(930)에 저장한다. 필터링부(500)는, URL 큐(930)에 저장된 분석 순위에 따라 도메인을 크롤링하여 악성 탐지 모델을 통해 의심되는 콘텐츠를 선별하여 허니팟 대기 큐(950)에 저장한다. 허니팟 탐지부(700)는 다수의 허니팟 에이전트를 실행하여 허니팟 대기 큐(950)에 있는 URL로 접속하여 샌드박스에서 실행하면서 추출하는 샌드박스 파일로부터 해당 콘텐츠의 악성 여부를 판별하고 악성코드 데이터베이스(70)로 저장한다.
도 7은 일 실시예에 따른 도메인 수집부의 구성을 도시한 블록도이다. 일 실시예에 따른 도메인 수집부(100)는 신규 면웹 도메인 수집부(110)와, 신규 다크웹 도메인 수집부(130)와, 신규 해킹 콘텐츠 수집부(150)를 포함할 수 있다. 이들의 동작은 도 2의 각각 대응하는 단계들에서 설명한 바와 유사하므로 상세한 설명은 생략한다. 신규 면웹 도메인 수집부(110)와, 신규 다크웹 도메인 수집부(130)와, 신규 해킹 콘텐츠 수집부(150)는 API나 자체 데이터베이스를 참조하여 도메인들을 수집하여 URL 데이터베이스(910)에 추가한다. 도시된 실시예에서, 신규 면웹 도메인 수집부(110)와, 신규 다크웹 도메인 수집부(130)와, 신규 해킹 콘텐츠 수집부(150)는 병렬적으로 실행될 수 있다. 도메인 수집부(100)는 도메인들을 수집하면서 기본적인 속성, 예를 들면 가장 최근 크롤링한 시각, 국가, 온라인상 존재 여부 등의 정보를 확인하여 URL 데이터베이스(910)에 기록할 수 있다.
도 8은 일 실시예에 따른 분석 순위 결정부의 구성을 도시한 블록도이다. 일 양상에 따르면, 분석 순위 결정부(300)는 사전 정보수집부(310)와, 표면 악성 피처 추출부(330)와, 사전 악성도 분석부(350)를 포함할 수 있다. 이들의 동작은 도 3의 각각 대응하는 단계들에서 설명한 바와 유사하므로 상세한 설명은 생략한다.
사전 정보수집부(310)는 하나 혹은 복수의 크롤러를 통해 URL 데이터베이스에 등록된 도메인들에게 순차적으로 접속 요구를 전송하고 그 응답을 수신하여 도메인별로 저장한다. 각각이 URL 데이터베이스에 크롤링 상태를 기록하면서 크롤러들은 병렬적으로 실행될 수도 있다. 표면 악성 피처 추출부(330)는 사전 정보수집부(310)에 대응하여 실행되면서 수집된 응답에 포함된 콘텐츠별로 표면 악성 피처들을 추출한다.
추출된 표면 악성 피처들은 사전 악성도 분석부(350)에서 분석된다. 사전 악성도 분석부(350)는 추출된 표면 악성 피처들을 종합하여 생성한 입력 벡터로부터 악성일 확률을 산출하는 인공지능 엔진을 포함할 수 있다. 일 실시예에서, 추출된 표면 악성 피처들이 벡터로 병합되어 인공 지능 엔진의 입력 벡터가 될 수 있다. 일 실시예에서, 인공지능 엔진은 SVM(support vector machine) 머신을 포함할 수 있다.
도 9는 일 실시예에 따른 필터링부의 구성을 도시한 블록도이다. 도시된 바와 같이, 일 실시예에 따른 필터링부(500)는 인-뎁스(in-depth) 크롤링부(510)와, 타입별 악성 탐지부(530)를 포함할 수 있다. 인-뎁스(in-depth) 크롤링 및 분류부(510)에서, 크롤러 에이전트는 URL 큐(930)에 분석 순위에 따라 저장된 모든 도메인을 순차적으로 접속하여 그 하위 페이지까지 크롤링하면서 발견되는 콘텐츠들을 수집한다. 크롤러 에이전트는 면웹 크롤러 에이전트와 다크웹 크롤러 에이전트를 포함할 수 있다. 면웹 인-뎁스(in-depth) 크롤링부와 다크웹 인-뎁스(in-depth) 크롤링부는 각각 하나 이상의 면웹 크롤러 에이전트와 하나 이상의 다크웹 크롤러 에이전트에 의해 수행될 수 있다.
타입별 악성 탐지부(530)에서, 악성 탐지 엔진은 콘텐츠 종류별로 악성 여부를 판별한다. 추가적인 양상에 따르면, 타입별 악성 탐지부(530)는 콘텐츠 타입별 탐지부(531)와, 휴대 실행형(Portable Executable) 파일 탐지부(533)와, 웹소스 탐지부(535) 중 적어도 복수개를 포함할 수 있다. 이들의 동작은 도 4를 참조하여 전술한 바와 유사하다.
콘텐츠 타입별 탐지부(531)와, 휴대 실행형(Portable Executable) 파일 탐지부(533)와, 웹소스 탐지부(535) 에서 악성 코드를 포함하지 않은 것으로 탐지된 콘텐츠들의 접속 정보는 필터링을 통해 제거되고, 악성 코드를 포함한 콘텐츠들의 접속 정보가 허니팟 대기 큐(950)에 남게 된다.
도 10은 일 실시예에 따른 허니팟 탐지부의 구성을 도시한 블록도이다. 도메인 분배기(710)는 허니팟 대기 큐(950)에 저장된 필터링된 도메인들 혹은 URL 들을 분석 순위에 따라 허니팟 에이전트들에게 분배할 수 있다. 허니팟 에이전트들(720-1,??,720-n)은 하나 혹은 복수의 계산요소에서 실행되는 타스크(task)일 수 있다. 또 다른 예로, 허니팟 에이전트들(720-1,??,720-n)은 어레이로 구비되는 복수의 하드웨어 계산요소들의 구성(configuration)을 동적으로 변경시켜 할당되는 하드웨어 계산요소일 수도 있다. 도메인 분배기(710)는 계산 부하에 따라 새로운 허니팟 에이전트들을 실행하고, 병렬적으로 실행되는 허니팟 에이전트들의 각각의 처리 버퍼의 상태에 기초하여 허니팟 대기 큐(950)에 저장되어 있는 도메인 혹은 URL들을 분배한다. 도메인 분배기(710)는 현재 실행되고 있는 허니팟 에이전트들(720-1,??,720-n)의 개수와 도 6에서 필터링부(500)에서 필터링되어 허니팟 대기 큐(950)에 남아 있는 URL들의 처리율을 고려하여 병렬적으로 실행되는 허니팟 에이전트들(720-1,??,720-n)의 개수를 조절할 수 있다.
이후에, 허니팟 에이전트들(720-1,??,720-n)이 분배된 대상 콘텐츠들을 실행하는 동안 정적 피처 추출기(731)와 동적 피처 추출(733)기는 샌드박스에서 출력되는 텍스트 파일, 즉 샌드박스 파일로부터 각각 정적 피처와 동적 피처를 추출한다.
이진 벡터 생성기(735)는 정적 피처와 동적 피처를 통합하여 피처 벡터를 생성한다. 예를 들어 정적 피처와 동적 피처는 문자열을 이어서(concatenation) 통합될 수 있다. 악성 판별부(750)는 이러한 피처 벡터로부터 그 콘텐츠 파일의 악성 여부를 판별한다. 악성 판별부(750)는 딥러닝 기반의 처리 엔진, 예를 들면 SVM(support vector machine) 머신을 포함할 수 있다. 일 실시예에서, SVM 머신은 해당 피처 벡터를 입력하여 콘텐츠 파일의 악성일 확률을 출력할 수 있다.
이상에서 본 발명을 첨부된 도면을 참조하는 실시예들을 통해 설명하였지만 이에 한정되는 것은 아니며, 이들로부터 당업자라면 자명하게 도출할 수 있는 다양한 변형예들을 포괄하도록 해석되어야 한다. 특허청구범위는 이러한 변형예들을 포괄하도록 의도되었다.
100 : 도메인 수집부
110 : 신규 면웹 도메인 수집부 130 : 신규 다크웹 도메인 수집부
150 : 신규 해킹 콘텐츠 수집부
300 : 분석 순위 결정부
310 : 사전 정보 수집부 330 : 표면 악성 피처 추출부
350 : 사전 악성도 분석부
500 : 필터링부
510 : 인뎁스 크롤링부 530 : 타입별 악성 탐지부
531 : 콘텐츠 타입별 탐지부 533 : 휴대 실행형 파일 탐지부
535 : 웹소스 탐지부
700 : 허니팟 탐지부
710 : 도메인 분배기 720-1,…,720-n : 허니팟 에이전트
731 : 정적 피처 추출기 733 : 동적 피처 추출기
735 : 이진 벡터 생성기 750 : 악성 판별부
910 : URL 데이터베이스 930 : URL 큐
950 : 허니팟 대기 큐 970 : 악성 코드 데이터베이스

Claims (20)

  1. 컴퓨팅 시스템에서 컴퓨터 프로그램의 실행 혹은 파라메터들의 설정이 가능한 하나 이상의 하드웨어 기반의 특별 계산 요소 또는 범용 컴퓨터 프로그램의 실행이 가능한 하나 이상의 범용 계산 요소 중 어느 하나 혹은 이들의 조합에 의해 구현되는 정보 계산 장치에서 구현되는 악성 코드 수집 방법에 있어서,
    분석 대상이 되는 도메인들의 접속 정보를 수집하는 도메인 수집 단계와;
    수집된 도메인들 각각의 악성 확률에 따른 분석 순위를 결정하는 분석 순위 결정 단계와;
    결정된 분석 순위에 따라 도메인을 크롤링하되, 그 하위 페이지까지 크롤링하여 콘텐츠들의 악성 여부를 악성 탐지 모델을 사용하여 판단하고, 판단 결과 악성으로 의심되는 콘텐츠를 선별하여 그 접속 정보를 출력하는 필터링 단계;
    허니팟 에이전트가 필터링 단계에서 출력된 접속 정보를 이용하여 해당 콘텐츠를 접근하고 악성 여부를 판별하여 악성코드 데이터베이스로 전달하는 허니팟 탐지 단계;
    를 포함하는 악성 코드 수집 방법.
  2. 청구항 1에 있어서, 상기 도메인 수집 단계는 :
    DNS 서버를 통해 면웹에 속한 신규 도메인을 수집하는 신규 면웹 도메인 수집 단계와;
    크롤러를 통해 신규 다크웹 도메인을 수집하는 신규 다크웹 수집 단계와;
    해커 사이트를 분석하여 새롭게 올려지는 신규 콘텐츠의 접속 정보를 수집하는 신규 해킹 콘텐츠 수집 단계;
    를 포함하는 악성 코드 수집 방법.
  3. 청구항 1에 있어서, 상기 분석 순위 결정 단계는 :
    수집된 도메인들의 접속요구에 대한 응답을 수집하고 그 응답을 분석하여 악성확률을 결정하는 악성 코드 수집 방법.
  4. 청구항 3에 있어서, 상기 분석 순위 결정 단계는 :
    수집된 도메인들의 접속요구에 대한 응답을 수집하는 사전 정보수집 단계;
    수집된 응답에서 응답에 포함된 콘텐츠별로 표면 악성 피처들을 추출하는 표면 악성 피처 추출 단계와,
    추출된 표면 악성 피처들을 분석하여 도메인별 사전 악성도를 산출하여 분석 순위를 결정하는 사전 악성도 분석 단계;
    를 포함하는 악성 코드 수집 방법.
  5. 청구항 4에 있어서, 표면 악성 피처 추출 단계에서 추출하는 표면 악성 피처는 :
    도메인 접속 정보의 어휘적 피처와, 네트워크 관련 피처와, 응답에 포함된 콘텐츠 피처와, DNS 피처를 포함하는 악성 코드 수집 방법.
  6. 청구항 4에 있어서, 사전 악성도 분석 단계는 :
    추출된 표면 악성 피처들을 종합하여 생성한 입력 벡터로부터 악성일 확률을 산출하는 인공지능 엔진을 통해 악성도를 산출하는 악성 코드 수집 방법.
  7. 청구항 1에 있어서, 필터링 단계는 :
    분석 순위에 따라 도메인을 접속하여 그 하위 페이지까지 크롤링하면서 발견되는 콘텐츠들을 분류하는 인-뎁스(in-depth) 크롤링 및 분류 단계;
    콘텐츠 종류별로 악성 여부를 판별하는 타입별 악성 탐지 단계;
    를 포함하는 악성 코드 수집 방법.
  8. 청구항 7에 있어서, 타입별 악성 탐지 단계는 :
    콘텐츠의 파일 타입별로 콘텐츠들의 악성 여부를 탐지하는 콘텐츠 타입별 탐지 단계와,
    휴대 실행형(Portable Executable) 파일들의 악성 여부를 탐지하는 휴대 실행형 파일 탐지 단계와,
    웹소스에 기반하여 악성 코드를 탐지하는 웹소스 탐지 단계
    중 적어도 복수개를 포함하는 악성 코드 수집 방법.
  9. 청구항 1에 있어서, 허니팟 탐지 단계는 :
    샌드박스에서 대상 콘텐츠를 실행시키면서 정적 피처와 동적 피처를 추출하는 피처 추출 단계;
    대상 콘텐츠별로 추출된 정적 피처와 동적 피처를 통합하여 이진 피처 벡터를 생성하는 단계;
    표상 학습 딥러닝 알고리즘에 기반하여 이진 피처 벡터로부터 악성 여부를 판별하는 악성 여부 판별 단계;
    를 포함하는 악성 코드 수집 방법.
  10. 청구항 9에 있어서, 피처 추출 단계에서 추출하는 동적 피처는 대상 콘텐츠 파일을 샌드박스에서 실행시켜 생성한 텍스트 파일을 워드 임베딩한 벡터를 포함하는 악성 코드 수집 방법.
  11. 청구항 10에 있어서,
    피처 추출 단계에서 추출하는 동적 피처는 대상 콘텐츠 파일을 샌드박스에서 실행시켜 생성한 텍스트 파일에 선택된 유니그램들(unigram)의 존재여부를 표시하는 일정한 길이를 가진 비트열을 포함하는 악성 코드 수집 방법.
  12. 청구항 11에 있어서, 피처 추출 단계에서 추출하는 동적 피처는 대상 콘텐츠파일을 샌드박스에서 실행하면서 수집한 API 호출정보들간의 종속 관계를 분석하여 생성되는 행태 피처를 포함하는 악성 코드 수집 방법.
  13. 악성 코드 수집 시스템에 있어서,
    분석 대상이 되는 도메인들의 접속 정보를 수집하는 도메인 수집부와;
    수집된 도메인들 각각의 악성 확률에 따른 분석 순위를 결정하는 분석 순위 결정부와;
    결정된 분석 순위에 따라 도메인을 크롤링하되, 그 하위 페이지까지 크롤링하여 콘텐츠들의 악성 여부를 악성 탐지 모델을 사용하여 판단하고, 판단 결과 악성으로 의심되는 콘텐츠를 선별하여 그 접속 정보를 출력하는 필터링부; 그리고
    필터링 단계에서 출력된 접속 정보를 이용하여 해당 콘텐츠를 접근하여 악성 여부를 판별하고 악성코드 데이터베이스로 전달하는 허니팟 탐지부;
    를 포함하는 악성 코드 수집 시스템.
  14. 청구항 13에 있어서, 상기 도메인 수집부는 :
    DNS 서버를 통해 면웹에 속한 신규 도메인을 수집하는 신규 면웹 도메인 수집부와;
    크롤러를 통해 신규 다크웹 도메인을 수집하는 신규 다크웹 수집부와;
    해커 사이트를 분석하여 새롭게 올려지는 신규 콘텐츠의 접속 정보를 수집하는 신규 해킹 콘텐츠 수집부;
    를 포함하는 악성 코드 수집 시스템.
  15. 청구항 13에 있어서, 상기 분석 순위 결정 단계는 :
    수집된 도메인들의 접속요구에 대한 응답을 수집하는 사전 정보수집부;
    수집된 응답에서 응답에 포함된 콘텐츠별로 표면 악성 피처들을 추출하는 표면 악성 피처 추출부와,
    추출된 표면 악성 피처들을 분석하여 도메인별 사전 악성도를 산출하여 분석 순위를 결정하는 사전 악성도 분석부;
    를 포함하는 악성 코드 수집 시스템.
  16. 청구항 15에 있어서, 사전 악성도 분석부는 :
    추출된 표면 악성 피처들을 종합하여 생성한 입력 벡터로부터 악성일 확률을 산출하는 인공지능 엔진을 통해 악성도를 산출하는 악성 코드 수집 시스템.
  17. 청구항 13에 있어서, 필터링부는 :
    분석 순위에 따라 도메인을 접속하여 그 하위 페이지까지 크롤링하면서 발견되는 콘텐츠들을 분류하는 인-뎁스(in-depth) 크롤링 및 분류부;
    콘텐츠 종류별로 악성 여부를 판별하는 타입별 악성 탐지부;
    를 포함하는 악성 코드 수집 시스템.
  18. 청구항 17에 있어서, 타입별 악성 탐지부는 :
    콘텐츠의 파일 타입별로 콘텐츠들의 악성 여부를 탐지하는 콘텐츠 타입별 탐지부와,
    휴대 실행형(Portable Executable) 파일들의 악성 여부를 탐지하는 휴대 실행형 파일 탐지부와,
    웹소스에 기반하여 악성 코드를 탐지하는 웹소스 탐지부
    중 적어도 복수개를 포함하는 악성 코드 수집 시스템.
  19. 청구항 13에 있어서, 허니팟 탐지부는 :
    샌드박스에서 대상 콘텐츠를 실행시키면서 정적 피처와 동적 피처를 추출하는 피처 추출부;
    대상 콘텐츠별로 추출된 정적 피처와 동적 피처를 통합하여 이진 피처 벡터를 생성하는 이진 벡터 생성부;
    표상 학습 딥러닝 알고리즘에 기반하여 이진 피처 벡터로부터 악성 여부를 판별하는 악성 판별부;
    를 포함하는 악성 코드 수집 시스템.
  20. 청구항 19에 있어서, 피처 추출부에서 추출하는 동적 피처는 대상 콘텐츠 파일을 샌드박스에서 실행시켜 생성한 텍스트 파일을 워드 임베딩한 벡터를 포함하는 악성 코드 수집 시스템.
KR1020200066483A 2019-12-27 2020-06-02 악성 코드 수집 방법 및 시스템 KR20210084204A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200066483A KR20210084204A (ko) 2019-12-27 2020-06-02 악성 코드 수집 방법 및 시스템

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190176353A KR102120200B1 (ko) 2019-12-27 2019-12-27 악성 코드 수집 방법 및 시스템
KR1020200066483A KR20210084204A (ko) 2019-12-27 2020-06-02 악성 코드 수집 방법 및 시스템

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020190176353A Division KR102120200B1 (ko) 2019-12-27 2019-12-27 악성 코드 수집 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20210084204A true KR20210084204A (ko) 2021-07-07

Family

ID=71405377

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020190176353A KR102120200B1 (ko) 2019-12-27 2019-12-27 악성 코드 수집 방법 및 시스템
KR1020200066483A KR20210084204A (ko) 2019-12-27 2020-06-02 악성 코드 수집 방법 및 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020190176353A KR102120200B1 (ko) 2019-12-27 2019-12-27 악성 코드 수집 방법 및 시스템

Country Status (1)

Country Link
KR (2) KR102120200B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113904819A (zh) * 2021-09-27 2022-01-07 广西师范大学 一种应用于工控网络的安全系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112380537A (zh) * 2020-11-30 2021-02-19 北京天融信网络安全技术有限公司 一种检测恶意软件的方法、装置、存储介质和电子设备
CN113343049A (zh) * 2021-07-05 2021-09-03 新华三技术有限公司 一种域名检测方法、装置、电子设备及存储介质
CN114595454B (zh) * 2022-03-11 2024-04-02 西安电子科技大学 基于混合分析和特征融合的恶意js脚本检测方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101190261B1 (ko) * 2010-12-21 2012-10-12 한국인터넷진흥원 하이브리드 인터액션 클라이언트 허니팟 시스템 및 그 운용방법
KR101070184B1 (ko) * 2011-02-24 2011-10-07 주식회사 윈스테크넷 멀티스레드 사이트 크롤러를 이용한 악성코드 자동수집, 자동분석시스템과 보안장비 연동을 통한 악성코드접근차단시스템 및 방법
KR101473535B1 (ko) * 2012-12-28 2014-12-18 한양대학교 산학협력단 Multi N―gram을 이용한 악성코드 분류 방법
KR101547999B1 (ko) * 2014-09-02 2015-08-27 한국전자통신연구원 악성링크 자동 탐지 장치 및 방법
JP2016053956A (ja) * 2014-09-02 2016-04-14 エスケー インフォセック カンパニー リミテッドSK INFOSEC Co.,Ltd. ウェブ基盤の悪性コード探知システムおよび方法
KR20190138037A (ko) * 2018-06-04 2019-12-12 한국과학기술원 사이버 보안 특화의 지식 베이스를 이용한 정보 검색 시스템 및 그 방법
KR101969572B1 (ko) * 2018-06-22 2019-04-16 주식회사 에프원시큐리티 악성코드 탐지 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113904819A (zh) * 2021-09-27 2022-01-07 广西师范大学 一种应用于工控网络的安全系统

Also Published As

Publication number Publication date
KR102120200B1 (ko) 2020-06-17

Similar Documents

Publication Publication Date Title
Khan et al. Defending malicious script attacks using machine learning classifiers
Chowdhury et al. Malware analysis and detection using data mining and machine learning classification
Jain et al. Two-level authentication approach to protect from phishing attacks in real time
KR102120200B1 (ko) 악성 코드 수집 방법 및 시스템
Naseem et al. MINOS: A Lightweight Real-Time Cryptojacking Detection System.
US9300682B2 (en) Composite analysis of executable content across enterprise network
Liu et al. A novel approach for detecting browser-based silent miner
Mehtab et al. AdDroid: rule-based machine learning framework for android malware analysis
Buber et al. NLP based phishing attack detection from URLs
US20090287641A1 (en) Method and system for crawling the world wide web
Kim et al. Detecting fake anti-virus software distribution webpages
CN109983464B (zh) 检测恶意脚本
CN107463844B (zh) Web木马检测方法及系统
Mimura et al. Filtering malicious javascript code with doc2vec on an imbalanced dataset
JP6505533B2 (ja) 悪質なコードの検出
US20200372085A1 (en) Classification apparatus, classification method, and classification program
US20240054210A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
Magdacy Jerjes et al. Detect malicious web pages using naive bayesian algorithm to detect cyber threats
Bhat et al. CogramDroid–An approach towards malware detection in Android using opcode ngrams
Tatarinova et al. Extended vulnerability feature extraction based on public resources
Hess et al. Malicious HTML file prediction: A detection and classification perspective with noisy data
Han Detection of web application attacks with request length module and regex pattern analysis
Jawhar A Survey on Malware Attacks Analysis and Detected
Almazrouei et al. The Internet of Things Network Penetration Testing Model Using Attack Graph Analysis
Manan et al. A survey on current malicious javascript behavior of infected web content in detection of malicious web pages

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application