KR102437278B1 - 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법 - Google Patents
머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법 Download PDFInfo
- Publication number
- KR102437278B1 KR102437278B1 KR1020200146913A KR20200146913A KR102437278B1 KR 102437278 B1 KR102437278 B1 KR 102437278B1 KR 1020200146913 A KR1020200146913 A KR 1020200146913A KR 20200146913 A KR20200146913 A KR 20200146913A KR 102437278 B1 KR102437278 B1 KR 102437278B1
- Authority
- KR
- South Korea
- Prior art keywords
- document
- given
- malicious code
- binary classification
- signature
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법에 관한 것으로, 상기 장치는 악성코드 문서 및 정상코드 문서 각각에서 피처벡터를 추출하여 문서 학습모델을 생성하는 문서 학습모델 생성부; 주어진 문서에 관한 피처벡터를 상기 문서 학습모델에 입력하여 상기 주어진 문서를 상기 악성코드 문서 또는 상기 정상코드 문서로 이진 분류하는 문서 이진 분류부; 상기 주어진 문서에서 시그니처 데이터베이스에 있는 시그니처를 검출하여 상기 주어진 문서가 상기 악성코드 문서에 해당하는지 여부를 결정하는 시그니처 처리부; 및 상기 문서 이진 분류부의 이진 분류 및 상기 시그니처 처리부의 결정을 진행하여 상기 주어진 문서가 악성코드를 포함하고 있는지 여부를 최종적으로 결정하는 악성파일 결정부를 포함한다.
Description
본 발명은 문서형 악성코드 탐지 기술에 관한 것으로, 보다 상세하게는 인공지능 머신러닝 기술과 전통적인 시그니처 매칭 방식의 탐지 기술을 결합해서 워드 파일 기반의 문서형 악성코드를 탐지할 수 있는 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법에 관한 것이다.
문서형 악성코드는 사이버보안을 위협하는 주요 공격 수단이다. 최근에는 사회공학적 기법을 이용하여 이메일에 문서형 악성코드를 첨부시키는 형태의 공격이 국내 금융기관을 포함한 주요 시설을 대상으로 유행하고 있다. 바이러스토탈의 통계에 의하면 여전히 윈도우즈 실행 파일 형태의 악성코드가 가장 많이 발생하고 있으나, 주요 기관이나 기업을 대상으로 진행되는 APT(Advanced Persistent Threat) 공격 수단으로는 문서형 악성코드의 발생량이 꾸준히 증가하고 있다. 주요 메일 서비스나 기업에서도 보안을 강화하기 위해서 실행 파일을 이메일로 전송시키는 것은 막고 있지만, 업무의 효율성을 고려하여 문서형 파일까지 전송을 막지는 못하고 있다. 공격자들은 이러한 보안 정책을 악용하여 문서형 악성코드를 공격 수단으로 활발히 이용하고 있다.
문서형 악성코드 중 가장 많은 부분을 차지하는 것은 PDF(Portable Document Format) 파일과 마이크로소프트 워드 (Microsoft Word) 파일이다. 전 세계적으로 많이 사용되는 파일이기 때문에, 공격자 입장에서는 두 파일을 이용해서 사이버 공격을 시도하는 것이 공격 성공률을 높일 수 있다. 특히 워드 파일은 국내외 주요 기업들이 업무 용도로 사용하고 있으며, 매크로(Macro) 설정이나 문서 내 파일 삽입이 가능하여 사이버 공격의 수단으로서 꾸준히 악용되고 있다. 2020년 상반기에도 워드 파일을 이용한 김수키 공격그룹으로 추정되는 사이버 공격이 사회적 이슈가 되었다. 이러한 공격들은 주로 이메일 첨부 파일 형태로 진행되는데, 메일 수신자가 관심을 가질만한 제목과 내용으로 사회공학적 기법이 가미된 사이버 공격이 시도되기 때문에 공격 성공률이 높다.
본 발명의 일 실시예는 인공지능 머신러닝 기술과 전통적인 시그니처 매칭 방식의 탐지 기술을 결합해서 워드 파일 기반의 문서형 악성코드를 탐지할 수 있는 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법을 제공하고자 한다.
본 발명의 일 실시예는 워드 파일의 구조적 특징정보를 추출하여 머신러닝 모델을 학습시킴으로써 대다수의 악성코드를 탐지하게 하고, 머신러닝으로 탐지되지 않는 소수의 악성코드를 전통적 시그니처 매칭 방식으로 추가 탐지할 수 있는 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법을 제공하고자 한다.
실시예들 중에서, 문서형 악성코드 탐지 장치는 악성코드 문서 및 정상코드 문서 각각에서 피처벡터를 추출하여 문서 학습모델을 생성하는 문서 학습모델 생성부; 주어진 문서에 관한 피처벡터를 상기 문서 학습모델에 입력하여 상기 주어진 문서를 상기 악성코드 문서 또는 상기 정상코드 문서로 이진 분류하는 문서 이진 분류부; 상기 주어진 문서에서 시그니처 데이터베이스에 있는 시그니처를 검출하여 상기 주어진 문서가 상기 악성코드 문서에 해당하는지 여부를 결정하는 시그니처 처리부; 및 상기 문서 이진 분류부의 이진 분류 및 상기 시그니처 처리부의 결정을 진행하여 상기 주어진 문서가 악성코드를 포함하고 있는지 여부를 최종적으로 결정하는 악성파일 결정부를 포함한다.
상기 문서 학습모델 생성부는 상기 악성코드 문서 및 상기 정상코드 문서를 전처리하여 스크립트를 추출할 수 있다.
상기 문서 학습모델 생성부는 상기 스크립트를 스크립트 분석기에 제공하여 상기 피처벡터를 생성할 수 있다.
상기 문서 학습모델 생성부는 상기 스크립트에 관한 문서 구조 경로 스트링들을 기초로 상기 피처벡터를 생성할 수 있다.
상기 문서 학습모델 생성부는 상기 피처벡터를 기초로 랜덤 포레스트 알고리즘으로 상기 문서 학습모델을 구축할 수 있다.
상기 문서 이진 분류부는 아래의 수학식을 통해 상기 주어진 문서의 이진 분류를 수행할 수 있다.
[수학식]
(여기에서, 대상 문서가 n개 주어졌을 때, 각 문서는 Xi로 표현할 수 있음. (1≤i≤n) 랜덤 포레스트(RF)는 결정 트리 T개로 구성된다. 각 결정 트리를 Aj라고 표현함 (1≤j≤T). 결정 트리 Aj가 구성되면, Aj(x)에 포함된 학습 부분에 대한 정보만을 사용하여 쿼리 지점 x에 대한 결과를 추정함. 주어진 쿼리 지점 x를 N(Aj(x))라고 표현함. 이것은 Aj(x)에 속한 샘플들의 수를 의미함)
상기 시그니처 처리부는 상기 주어진 문서가 실행 파일, DDE(Dynamic Data Exchange) 명령코드 또는 스크립트의 포함여부를 분석하여 상기 시그니처를 검출할 수 있다.
상기 시그니처 처리부는 상기 주어진 문서가 실행 파일, DDE(Dynamic Data Exchange) 명령코드 또는 스크립트의 포함하지 않는 경우에는 상기 주어진 문서를 상기 정상코드 문서에 해당하는 것으로 결정할 수 있다.
상기 악성파일 결정부는 상기 문서 이진 분류부 및 상기 시그니처 처리부 중 어느 하나가 먼저 상기 주어진 문서가 상기 악성코드를 포함하고 있는 것으로 결정하는 경우에는 다른 하나의 수행에 관계없이 상기 주어진 문서를 상기 악성코드 문서로 결정할 수 있다.
상기 악성파일 결정부는 상기 문서 이진 분류부의 이진 분류 및 상기 시그니처 처리부의 결정을 동시에 진행하되, 현재의 작업 부하량이 특정 기준 이상이면 상기 이진 분류의 이전에 상기 문서 학습모델 생성부에 의해 수행되는 전처리 과정에서 스크립트가 존재하지 않는 경우에는 상기 시그니처 처리부의 수행을 생략하는 수 있다.
실시예들 중에서, 문서형 악성코드 탐지 방법은 악성코드 문서 및 정상코드 문서 각각에서 피처벡터를 추출하여 문서 학습모델을 생성하는 단계; 주어진 문서에 관한 피처벡터를 상기 문서 학습모델에 입력하여 상기 주어진 문서를 상기 악성코드 문서 또는 상기 정상코드 문서로 이진 분류하는 단계; 상기 주어진 문서에서 시그니처 데이터베이스에 있는 시그니처를 검출하여 상기 주어진 문서가 상기 악성코드 문서에 해당하는지 여부를 결정하는 단계; 및 상기 문서 이진 분류부의 이진 분류 및 상기 시그니처 처리부의 결정을 진행하여 상기 주어진 문서가 악성코드를 포함하고 있는지 여부를 최종적으로 결정하는 단계를 포함한다.
상기 문서 학습모델을 생성하는 단계는 상기 악성코드 문서 및 상기 정상코드 문서를 전처리하여 스크립트를 추출하는 단계; 및 상기 스크립트를 스크립트 분석기에 제공하여 상기 피처벡터를 생성하는 단계를 포함할 수 있다.
상기 악성코드 문서에 해당하는지 여부를 결정하는 단계는 상기 주어진 문서가 실행 파일, DDE(Dynamic Data Exchange) 명령코드 또는 스크립트의 포함여부를 분석하여 상기 시그니처를 검출하는 단계를 포함할 수 있다.
상기 최종적으로 결정하는 단계는 상기 문서 이진 분류부 및 상기 시그니처 처리부 중 어느 하나가 먼저 상기 주어진 문서가 상기 악성코드를 포함하고 있는 것으로 결정하는 경우에는 다른 하나의 수행에 관계없이 상기 주어진 문서를 상기 악성코드 문서로 결정하는 단계를 포함할 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법은 인공지능 머신러닝 기술과 전통적인 시그니처 매칭 방식의 탐지 기술을 결합해서 워드 파일 기반의 문서형 악성코드를 탐지할 수 있다.
본 발명의 일 실시예에 따른 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법은 워드 파일의 구조적 특징정보를 추출하여 머신러닝 모델을 학습시킴으로써 대다수의 악성코드를 탐지하게 하고, 머신러닝으로 탐지되지 않는 소수의 악성코드를 전통적 시그니처 매칭 방식으로 추가 탐지할 수 있다.
도 1은 본 발명에 따른 문서형 악성코드 탐지 시스템을 설명하는 도면이다.
도 2는 도 1의 문서형 악성코드 탐지 장치의 시스템 구성을 설명하는 도면이다.
도 3은 도 1의 문서형 악성코드 탐지 장치의 기능적 구성을 설명하는 도면이다.
도 4는 본 발명에 따른 문서형 악성코드 탐지 과정을 설명하는 순서도이다.
도 5는 본 발명에 따른 문서형 악성코드 탐지 방법을 설명하는 도면이다.
도 6은 정상 데이터 클러스터링 및 다운샘플링을 설명하는 도면이다.
도 7은 다운샘플링을 적용 여부별 테스트 결과를 설명하는 도면이다.
도 8은 시그니처 매칭 탐지 성능 및 상용 안티바이러스 제품과의 탐지 성능 비교를 설명하는 도면이다.
도 9는 특징 벡터 크기에 따른 테스트 결과를 설명하는 도면이다.
도 10은 머신러닝 모델과 시그니처 매칭을 결합한 방식의 테스트 결과를 설명하는 도면이다.
도 2는 도 1의 문서형 악성코드 탐지 장치의 시스템 구성을 설명하는 도면이다.
도 3은 도 1의 문서형 악성코드 탐지 장치의 기능적 구성을 설명하는 도면이다.
도 4는 본 발명에 따른 문서형 악성코드 탐지 과정을 설명하는 순서도이다.
도 5는 본 발명에 따른 문서형 악성코드 탐지 방법을 설명하는 도면이다.
도 6은 정상 데이터 클러스터링 및 다운샘플링을 설명하는 도면이다.
도 7은 다운샘플링을 적용 여부별 테스트 결과를 설명하는 도면이다.
도 8은 시그니처 매칭 탐지 성능 및 상용 안티바이러스 제품과의 탐지 성능 비교를 설명하는 도면이다.
도 9는 특징 벡터 크기에 따른 테스트 결과를 설명하는 도면이다.
도 10은 머신러닝 모델과 시그니처 매칭을 결합한 방식의 테스트 결과를 설명하는 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
문서형 악성코드를 탐지하는 기술은 크게 두 가지 종류가 있다.
첫째, 문서 내부에 포함된 시그니처(signature)를 스트링 매칭(string matching)이나 정규표현식(regular expression)을 사용해서 찾아내는 방식이다. 시그니처 매칭 방식은 전통적인 악성코드 탐지 방법이며, 알려진 악성코드들을 잘 잡아내는 장점이 있는 반면에 탐지를 우회하는 변종 악성코드들을 탐지하는 데 약점이 있다.
둘째, 인공지능 머신러닝 기술을 이용하여 문서형 악성코드를 탐지하는 기술이다. 문서로부터 특징정보를 추출하고 학습용 피처(feature)로 사용하여 머신러닝(machine learning) 모델을 학습시킨다. 학습된 모델은 비슷한 피처를 가지는 문서들을 악성으로 분류할 수 있다. 머신러닝 방식은 변종 악성코드를 탐지하는 것이 가능한 장점이 있다. 하지만, 피처에 반영되지 않은 특수한 소수의 악성코드는 탐지할 수 없다.
본 발명은 전통적 시그니처 매칭 방식과 최신 머신러닝 모델 방식을 결합하여 문서형 악성코드를 정확하게 탐지할 수 있다. 기존 기술들은 동일 수집 채널에서 입수된 데이터를 학습한 결과 해당 데이터를 테스트하면 좋은 성능을 발휘하는 반면, 다른 수집 채널에서 입수된 데이터에 대해서 테스트를 하면 성능이 크게 떨어질 수 있다. 반면 본 발명에 따른 기술은 머신러닝 모델과 시그니처 매칭 기술이 상호 보완적 역할을 수행한 결과 실제 데이터에 대해서도 높은 악성코드 탐지 성능을 제공할 수 있다.
도 1은 본 발명에 따른 문서형 악성코드 탐지 시스템을 설명하는 도면이다.
도 1을 참조하면, 문서형 악성코드 탐지 시스템(100)은 사용자 단말(110), 문서형 악성코드 탐지 장치(130) 및 데이터베이스(150)를 포함할 수 있다.
사용자 단말(110)은 문서형 악성코드 탐지 장치(130)에게 학습데이터를 제공하거나 또는 악성코드 탐지 결과를 확인할 수 있는 컴퓨팅 장치에 해당할 수 있고, 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 사용자 단말(110)은 문서형 악성코드 탐지 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들은 문서형 악성코드 탐지 장치(130)와 동시에 연결될 수 있다.
문서형 악성코드 탐지 장치(130)는 악성코드 탐지를 위한 머신러닝과 시그니처 매칭을 수행하고 악성코드 탐지 결과를 제공할 수 있는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 문서형 악성코드 탐지 장치(130)는 사용자 단말(110)과 네트워크를 통해 연결될 수 있고 정보를 주고받을 수 있다. 일 실시예에서, 문서형 악성코드 탐지 장치(130)는 데이터베이스(150)와 연동하여 악성코드 탐지를 위해 필요한 데이터를 저장할 수 있다.
데이터베이스(150)는 문서형 악성코드 탐지 장치(130)의 동작 과정에서 필요한 다양한 정보들을 저장하는 저장장치에 해당할 수 있다. 데이터베이스(150)는 머신러닝을 위한 학습 데이터 및 학습 모델을 각각 저장할 수 있고, 시그니처 매칭을 위한 시그니처 정보를 저장할 수 있으며, 반드시 이에 한정되지 않고, 문서형 악성코드 탐지 장치(130)가 머신러닝과 시그니처 매칭을 통해 문서형 악성코드를 탐지하는 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.
도 2는 도 1의 문서형 악성코드 탐지 장치의 시스템 구성을 설명하는 도면이다.
도 2를 참조하면, 문서형 악성코드 탐지 장치(130)는 프로세서(210), 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)를 포함할 수 있다.
프로세서(210)는 문서형 악성코드 탐지 장치(130)가 동작하는 과정에서의 각 단계들을 처리하는 프로시저를 실행할 수 있고, 그 과정 전반에서 읽혀지거나 작성되는 메모리(230)를 관리할 수 있으며, 메모리(230)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄할 수 있다. 프로세서(210)는 문서형 악성코드 탐지 장치(130)의 동작 전반을 제어할 수 있고, 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(210) 문서형 악성코드 탐지 장치(130)의 CPU(Central Processing Unit)로 구현될 수 있다.
메모리(230)는 SSD(Solid State Drive) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 문서형 악성코드 탐지 장치(130)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.
사용자 입출력부(250)는 사용자 입력을 수신하기 위한 환경 및 사용자에게 특정 정보를 출력하기 위한 환경을 포함할 수 있다. 예를 들어, 사용자 입출력부(250)는 터치 패드, 터치 스크린, 화상 키보드 또는 포인팅 장치와 같은 어댑터를 포함하는 입력장치 및 모니터 또는 터치스크린과 같은 어댑터를 포함하는 출력장치를 포함할 수 있다. 일 실시예에서, 사용자 입출력부(250)는 원격 접속을 통해 접속되는 컴퓨팅 장치에 해당할 수 있고, 그러한 경우, 문서형 악성코드 탐지 장치(130)는 독립적인 서버로서 수행될 수 있다.
네트워크 입출력부(270)은 네트워크를 통해 외부 장치 또는 시스템과 연결하기 위한 환경을 포함하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다.
도 3은 도 1의 문서형 악성코드 탐지 장치의 기능적 구성을 설명하는 도면이다.
도 3을 참조하면, 문서형 악성코드 탐지 장치(130)는 문서 학습모델 생성부(310), 문서 이진 분류부(330), 시그니처 처리부(350), 악성파일 결정부(370) 및 제어부(390)를 포함할 수 있다.
문서 학습모델 생성부(310)는 악성코드 문서 및 정상코드 문서 각각에서 피처벡터를 추출하여 문서 학습모델을 생성할 수 있다. 즉, 문서 학습모델은 악성과 정상으로 라벨링된 문서에서 추출된 피처벡터를 학습하여 생성될 수 있다. 문서 학습모델 생성부(310)는 각 문서에 대한 피처벡터를 정의하여 머신러닝을 수행할 수 있으며, 이때, 피처벡터는 문서 학습모델 생성부(310)에 의해 새롭게 정의되거나 또는 기존의 피처벡터가 선택적으로 활용될 수도 있다.
일 실시예에서, 문서 학습모델 생성부(310)는 악성코드 문서 및 정상코드 문서를 전처리하여 스크립트를 추출할 수 있다. 즉, 문서 학습모델 생성부(310)는 학습데이터로서 사용될 피처벡터를 생성하기 위한 전처리 동작으로서 각 문서에 대해 스크립트를 추출할 수 있다. 문서 학습모델 생성부(310)는 파일별 스크립트 추출을 위해 별도로 구현된 스크립트 추출 프로그램을 활용할 수도 있다.
일 실시예에서, 문서 학습모델 생성부(310)는 스크립트를 스크립트 분석기에 제공하여 피처벡터를 생성할 수 있다. 예를 들어, 문서 학습모델 생성부(310)는 Aldocx 스타일의 문서 구조를 추출하는 피처를 피처벡터로서 사용할 수 있으며, 이 경우 스크립트 분석기는 Aldocx가 사용될 수 있다.
즉, 문서 학습모델 생성부(310)는 스크립트에 관한 문서 구조 경로 스트링들을 기초로 피처벡터를 생성할 수 있다. Aldocx 피처는 docx 문서의 모든 내부 구성 파일 경로를 추출한 후 정보 획득(information gain)을 기준으로 상위 m개를 선택하여 생성될 수 있다. 상위 첫 번째 특징이 벡터의 첫 번째 인덱스, 두 번째가 두 번째 인덱스 이런 식으로 크기 m의 특징 벡터가 파일별로 생성될 수 있다. 만약 파일에 대해서 상위 m개의 내부 경로가 존재하면 해당 인덱스를 1로, 아니면 0으로 채울 수 있다. Aldocx에서는 m=5,000을 기본 설정값으로 사용한다.
일 실시예에서, 문서 학습모델 생성부(310)는 피처벡터를 기초로 랜덤 포레스트 알고리즘으로 문서 학습모델을 구축할 수 있다. 문서 학습모델 생성부(310)는 다양한 머신러닝 알고리즘을 사용할 수 있으며, 특히 RF(Random Forest)를 사용하여 문서 학습모델을 구축할 수 있다. 학습 데이터로 사용되는 피처가 유의미한 문서 구조 경로 스트링들의 집합으로 구성되고, 자주 등장하는 상위 m개의 고정 크기를 갖는 피처벡터를 활용한다는 점에서, 문서 학습모델 생성부(310)는 고차원 피처와 대용량 학습 데이터에 유리한 딥러닝 학습보다 RF를 적용하여 문서 학습모델을 구축할 수 있다. 문서 학습모델 생성부(310)는 정상 파일과 악성 파일을 기초로 학습 데이터셋을 구축한 후 머신러닝 모델을 학습시킬 수 있으며, 완성된 문서 학습모델은 의심 파일에 대해 정상 파일 또는 악성 파일을 예측하는데 활용될 수 있다.
문서 이진 분류부(330)는 주어진 문서에 관한 피처벡터를 문서 학습모델에 입력하여 주어진 문서를 악성코드 문서 또는 정상코드 문서로 이진 분류할 수 있다. 즉, 문서 이진 분류부(330)는 머신러닝 모델인 문서 학습모델을 기초로 악성파일을 탐지할 수 있으며, 문서 학습모델의 예측 성능에 따라 악성파일 탐지 성능이 결정될 수 있다.
일 실시예에서, 문서 이진 분류부(330)는 아래의 수학식을 통해 주어진 문서의 이진 분류를 수행할 수 있다.
[수학식]
여기에서, 대상 문서가 n개 주어졌을 때, 각 문서는 Xi로 표현될 수 있고(1≤i≤n), 그에 대한 추정 응답은 에 해당할 수 있다. 랜덤 포레스트(RF)는 결정 트리 T개로 구성될 수 있다. 각 결정 트리를 Aj라고 표현할 수 있고(1≤j≤T), 결정 트리 Aj가 구성되면 Aj(x)에 포함된 학습 부분에 대한 정보만을 사용하여 쿼리 지점 x에 대한 결과를 추정할 수 있다. 주어진 쿼리 지점 x를 N(Aj(x))라고 표현하고, 이것은 Aj(x)에 속한 샘플들의 수를 의미할 수 있다.
시그니처 처리부(350)는 주어진 문서에서 시그니처 데이터베이스에 있는 시그니처를 검출하여 주어진 문서가 악성코드 문서에 해당하는지 여부를 결정할 수 있다. 즉, 시그니처 처리부(350)는 문서 이진 분류부(330)의 동작과 독립적으로 시그니처 매칭을 통해 주어진 문서의 악성여부를 결정할 수 있다. 이를 통해, 시그니처 처리부(350)는 의심 파일에 대해 간단하지만 효율적인 탐지가 가능할 수 있고, 머신러닝 알고리즘이 처리할 수 없는 소수의 예외적 케이스에 대한 악성 탐지를 보완할 수 있다.
일 실시예에서, 시그니처 처리부(350)는 주어진 문서가 실행 파일, DDE(Dynamic Data Exchange) 명령코드 또는 스크립트의 포함여부를 분석하여 시그니처를 검출할 수 있다. 즉, 시그니처 처리부(350)는 탐지 대상이 되는 시그니처들을 정의하여 시그니처 매칭을 수행할 수 있다. 예를 들어, 시그니처 처리부(350)는 oleObject1.bin 파일에 삽입된 실행 파일을 시그니처 매칭을 통해 탐지할 수 있다. 시그니처 처리부(350)는 oleObject1.bin 파일에 대해 실행 파일 판단 규칙을 적용하여 실행 파일 삽입 여부를 검출할 수 있다.
또한, 시그니처 처리부(350)는 document.xml 파일 내에 존재하는 DDE 명령코드를 시그니처 매칭을 통해 탐지할 수 있다. DDE 기능은 'DDE' 또는 'DDEAUTO' 키워드를 통해 활성화 될 수 있으며, 원격지에 있는 제3자에게 정보가 공유되도록 하거나 또는 프로그램 간 편의성 있는 통신을 목적으로 사용될 수 있다. 시그니처 처리부(350)는 XML 구조 안에서 DDE 명령코드가 삽입된 경우를 탐지하는 시그니처 매칭을 수행할 수 있다.
또한, 시그니처 처리부(350)는 oleObject1.bin 파일에 삽입된 스크립트를 시그니처 매칭을 통해 탐지할 수 있다. 해당 스크립트가 삽입된 문서가 실행되면 추가적인 악성 기능을 수행하기 위해 외부 링크로부터 다른 악성 파일 설치를 시도할 수 있다. 예를 들어, 탐지 대상이 되는 스크립트는 쉘 스크립트(Shell Script) 또는 VBS(Visual Basic Script) 등을 포함할 수 있다.
일 실시예에서, 시그니처 처리부(350)는 주어진 문서가 실행 파일, DDE(Dynamic Data Exchange) 명령코드 또는 스크립트의 포함하지 않는 경우에는 주어진 문서를 정상코드 문서에 해당하는 것으로 결정할 수 있다. 즉, 시그니처 처리부(350)는 주어진 문서에서 시그니처 데이터베이스에 있는 시그니처를 검출하지 못한 경우 해당 주어진 문서를 정상인 것으로 결정할 수 있다.
악성파일 결정부(370)는 문서 이진 분류부(330)의 이진 분류 및 시그니처 처리부(350)의 결정을 진행하여 주어진 문서가 악성코드를 포함하고 있는지 여부를 최종적으로 결정할 수 있다. 악성파일 결정부(370)는 머신러닝과 시그니처 매칭을 결합한 구조로 문서형 악성코드를 탐지할 수 있다. 전처리 과정을 통해 생성된 피처벡터를 학습하여 구축된 문서 학습모델은 인퍼런스 단계(inference phase)에서 의심 파일에 대한 정상 또는 악성 여부를 판별할 수 있다. 한편, 악성파일 결정부(370)는 머신러닝 모델의 인퍼런스 절차와 무관하게 동작하는 시그니처 탐지 과정을 통해서도 악성 파일을 탐지할 수 있다. 결과적으로, 악성파일 결정부(370)는 머신러닝 이진 분류기 또는 시그니처 탐지에 의해 악성으로 판별되는 경우에만 의심 파일을 악성 파일로 결정할 수 있다.
일 실시예에서, 악성파일 결정부(370)는 문서 이진 분류부(330) 및 시그니처 처리부(350) 중 어느 하나가 먼저 주어진 문서가 악성코드를 포함하고 있는 것으로 결정하는 경우에는 다른 하나의 수행에 관계없이 주어진 문서를 악성코드 문서로 결정할 수 있다. 악성파일 결정부(370)는 머신러닝 이진 분류기 또는 시그니처 탐지 중 어느 하나가 먼저 수행된 경우 주어진 문서가 악성코드인 것으로 결정되면 나머지 탐지 동작의 결과에 상관없이 해당 문서를 악성으로 결정할 수 있다.
일 실시예에서, 악성파일 결정부(370)는 문서 이진 분류부(330)의 이진 분류 및 시그니처 처리부(350)의 결정을 동시에 진행하되, 현재의 작업 부하량이 특정 기준 이상이면 이진 분류의 이전에 문서 학습모델 생성부(310)에 의해 수행되는 전처리 과정에서 스크립트가 존재하지 않는 경우에는 시그니처 처리부(350)의 수행을 생략할 수 있다. 악성파일 결정부(370)는 머신러닝 이진 분류와 시그니처 탐지를 병렬적으로 수행할 수 있고, 머신러닝 이진 분류의 전처리 단계에서 스크립트가 존재하지 않는 것으로 결정되면 시그니처 처리부(350)의 구체적 동작 단계를 생략하여 문서형 악성코드의 탐지 과정의 신속성을 제공할 수 있다.
제어부(390)는 문서형 악성코드 탐지 장치(130)의 전체적인 동작을 제어하고, 문서 학습모델 생성부(310), 문서 이진 분류부(330), 시그니처 처리부(350) 및 악성파일 결정부(370) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.
도 4는 본 발명에 따른 문서형 악성코드 탐지 과정을 설명하는 순서도이다.
도 4를 참조하면, 문서형 악성코드 탐지 장치(130)는 문서 학습모델 생성부(310)를 통해 악성코드 문서 및 정상코드 문서 각각에서 피처벡터를 추출하여 문서 학습모델을 생성할 수 있다(단계 S410). 문서형 악성코드 탐지 장치(130)는 문서 이진 분류부(330)를 통해 주어진 문서에 관한 피처벡터를 문서 학습모델에 입력하여 주어진 문서를 악성코드 문서 또는 정상코드 문서로 이진 분류할 수 있다(단계 S430).
또한, 문서형 악성코드 탐지 장치(130)는 시그니처 처리부(350)를 통해 주어진 문서에서 시그니처 데이터베이스에 있는 시그니처를 검출하여 주어진 문서가 악성코드 문서에 해당하는지 여부를 결정할 수 있다(단계 S450). 문서형 악성코드 탐지 장치(130)는 악성파일 결정부(370)를 통해 문서 이진 분류부의 이진 분류 및 시그니처 처리부(350)의 결정을 진행하여 주어진 문서가 악성코드를 포함하고 있는지 여부를 최종적으로 결정할 수 있다(단계 S470).
도 5는 본 발명에 따른 문서형 악성코드 탐지 방법을 설명하는 도면이다.
도 5를 참조하면, 문서형 악성코드 탐지 장치(130)는 머신러닝과 시그니처 매칭을 결합한 구조로 워드 악성 파일을 탐지할 수 있다. 문서형 악성코드 탐지 장치(130)는 학습 단계(training phase)에서 정상과 악성 워드 파일들을 모아서 전처리 과정을 거쳐 Aldocx 스타일의 피처 벡터를 생성할 수 있다. 문서형 악성코드 탐지 장치(130)는 RF 알고리즘을 사용하는 머신러닝 모델을 학습시킬 수 있으며, 완성된 머신러닝 모델은 인퍼런스 단계(inference phase)에서 의심 파일에 대해서 정상 또는 악성 여부를 판별할 수 있다.
또한, 문서형 악성코드 탐지 장치(130)는 머신러닝 모델의 인퍼런스 절차와 무관하게 시그니처 탐지 알고리즘을 이용하여 의심 파일에 대해 검사를 수행할 수 있다. 의심 파일이 악성으로 정의된 시그니처를 포함하는 경우라면 시그니처 탐지 알고리즘은 이 파일을 악성으로 간주한다. 즉, 문서형 악성코드 탐지 장치(130)는 머신러닝 이진 분류기 또는 시그니처 탐지에 의해서 악성으로 판별되는 경우에만 의심 파일을 악성 파일로 결정할 수 있다.
일 실시예에서, 문서형 악성코드 탐지 장치(130)는 악성파일 결정부(370)의 탐지 성능에 대한 실험 및 검증을 수행하는 성능 검증부를 더 포함하여 구현될 수 있다. 성능 검증부는 이질적 데이터셋을 구축하여 실험 및 검증을 수행할 수 있다. 이를 통해 문서형 악성코드 탐지 장치(130)에 의해 수행되는 탐지 동작이 동질데이터에 오버피팅되지 않고 우수한 일반화된 성능을 보일 수 있다.
문서형 악성코드 탐지 장치(130)는 성능 검증부를 통해 동질데이터 실험과 이질데이터 실험을 병행할 수 있다. 한편, 머신러닝에서 학습시킬 악성 데이터와 정상 데이터의 비율이 고르지 않으면 데이터 불균형 현상에 의해 다수의 클래스 데이터 쪽으로 머신러닝 모델이 편향될 수 있다. 성능 검증부에서 수행되는 실험을 위해 수집한 모든 데이터의 경우 정상 데이터가 대다수이기 때문에 결과적으로 정상을 더 잘 예측하도록 학습되어 정확도 부분에서는 높은 정확도를 보일 수 있다(정확도 = (tp + tn) / (tp + tn + fp + fn), tp는 악성 정탐, tn는 정상 정탐, fp는 오탐, fn는 미탐). 이에 반해, 악성 데이터 탐지 성능을 나타내는 재현율은 비교적 낮을 수 있다(재현율 = tp / (tp + fn)).
따라서, 올바른 예측 결과를 위해 데이터 불균형 현상을 해결하는 것이 중요할 수 있다. 문제를 해결하는 방법으로는 소수의 샘플을 가지는 클래스의 데이터를 오버샘플링 하거나, 다수 클래스 데이터를 다운샘플링 하는 방법이 적용될 수 있다.
일 실시예에서, 문서형 악성코드 탐지 장치(130)는 성능 검증부를 통해 정상 데이터를 다운샘플링하는 방식을 적용할 수 있다. 예를 들어, 성능 검증부는 DBScan 클러스터링을 사용하여 정상 데이터를 클러스터링한 다음, 생성된 각 클러스터의 특정 비율만큼을 학습에 사용할 정상 데이터로 구성할 수 있다. 도 6과 같은 클러스터링 상황에서 7개의 샘플을 사용하려면, 각 클러스터로부터 절반씩만 샘플링하면 되는데, 랜덤 샘플링과 비교했을 때 클러스터마다 비율대로 샘플이 채집되는 것이 보장될 수 있다. 일 실시예에서, 성능 검증부는 다운샘플링을 적용하여 악성:정상 비율을 1:9로 적용하여 학습 및 테스트 데이터셋을 구축할 수 있다.
일 실시예에서, 성능 검증부는 다운샘플링 효과, 특징 벡터 크기 변화, 시그니처 매칭 방식, 머신러닝과 시그니처 매칭 결합 방식 및 상용 안티바이러스와의 성능 비교에 관한 실험을 각각 수행할 수 있다.
첫째, 다운샘플링 효과 실험에서는 악성보다 정상 파일이 압도적으로 많은 상황에서 정상 파일을 다운샘플링했을 때 성능에 영향을 미치는 정도를 확인할 수 있다. 둘째, 특징 벡터 크기 변화 실험에서는 머신러닝 모델이 사용하는 Aldocx 피처의 최적의 조건을 찾을 수 있다. 셋째, 시그니처 매칭 방식 테스트에서는 머신러닝을 사용하지 않고 시그니처 매칭만 했을 경우의 성능을 확인할 수 있다. 넷째, 머신러닝과 시그니처 매칭 결합 방식 실험에서는 본 발명에 따른 결합 기법의 우수성을 검증할 수 있다. 다섯째, 상용 안티바이러스와의 성능 비교에서는 본 발명에 따른 기법과 유명 안티바이러스 제품들의 악성 파일 탐지 성능을 비교할 수 있다.
본 발명은 악성코드 탐지 기술의 성능을 평가하기 위해서 정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1 스코어 평가 지표를 사용할 수 있다. 정확도는 전체 예측 결과 중 올바르게 예측한 비율을 의미한다. 정밀도는 분류기가 양성으로 예측한 데이터 중 실제 양성 데이터의 비율을 나타내며, 재현율은 분류기가 실제 양성 그룹 데이터를 올바르게 양성으로 예측한 비율을 나타낸다. F1 스코어는 정밀도와 재현율의 산술조화 평균이다. 아래의 수학식 1 내지 4는 각각 4가지 평가 지표의 계산 공식이다. 양성 그룹을 양성으로 올바르게 예측하는 정탐(TP:True Positive), 음성 그룹을 음성으로 올바르게 예측하는 정탐(TN:True Negative), 양성 그룹을 음성으로 오인한 미탐(TN:True Negative), 음성 그룹을 양성으로 오인한 오탐(TP:True Positive)을 측정하여 각 지표 값을 계산할 수 있다.
[수학식 1]
[수학식 2]
[수학식 3]
[수학식 4]
도 7은 정상데이터에 대해서 다운샘플링을 적용했을 때와 적용하지 않았을 때, 동질데이터(그림 a)와 이질데이터(그림 b)에 대한 실험 결과를 나타낼 수 있다. 다운샘플링을 하지 않았을 때는 정확도가 100에 근접하여 다운샘플링을 했을 때의 정확도에 비해 높지만, 재현율은 낮은 것을 확인할 수 있다. 즉, 다운샘플링을 적용하지 않은 모델은 확실히 정상으로 많이 예측하게끔 편향되게 학습된다는 것을 확인할 수 있다.
도 8의 그림 (a)는 동질데이터 실험에서 특징 벡터의 크기를 변화시키며 테스트한 결과를 나타낼 수 있다. 특징 벡터 크기가 줄어듦에 따라 재현율과 F1 스코어가 상승하는 것을 볼 수 있다. 그러나 10차원의 벡터 결과에서는 급격하게 하락하는 것을 보여 학습 모델이 언더피팅(underfitting) 되었음을 확인할 수 있다.
도 8의 그림 (b)는 이질데이터 실험에서 특징 벡터 크기를 변화시키며 테스트한 결과를 나타낼 수 있다. 특징 벡터 크기가 5,000차원 일 때 오버피팅 현상으로 일반화 성능이 낮으나 크기가 벡터 크기가 줄어듦에 따라 재현율과 F1 스코어가 향상되어 오버피팅이 해결된 것으로 해석할 수 있다.
도 9의 그림 (a)는 본 발명에 따른 시그니처 매칭 방식만으로 동질데이터와 이질데이터를 테스트해 본 결과를 나타낼 수 있다. 시그니처 매칭 방식은 학습 과정은 필요 없기 때문에 테스트데이터에 대해서만 성능을 측정한다. 동질데이터에 대한 실험에서는 성능이 머신러닝 모델만큼 높으나, 이질데이터에 대해서는 성능이 떨어지는 현상을 확인할 수 있다.
도 9의 그림 (b)는 본 발명에 따른 머신러닝과 시그니처 매칭 결합 방식과 유명 안티바이러스 제품과 악성 파일을 탐지하는 숫자를 비교한 결과를 나타낼 수 있다. 본 발명에 따른 결합 모델의 탐지 성능이 가장 우수함을 확인할 수 있으며, 테스트 대상 악성 파일 중 몇 개를 탐지했는지를 비교한 결과에 해당할 수 있다.
도 10은 본 발명에 따른 머신러닝과 시그니처 매칭 결합 방식의 성능을 실험으로 검증한 결과를 나타낼 수 있다. 그림 (a) 및 (b)는 각각 동질데이터와 이질데이터를 이용한 실험 결과에 해당할 수 있다. 앞선 실험 결과와 비교하면, 본 발명에 따른 결합 방식의 성능이 가장 좋은 것을 확인할 수 있다. 동질데이터 실험 결과에서는 F1 스코어 99.57이 가장 좋은 성능이며, 이질데이터 실험에서는 F1 스코어 99.66이 가장 좋은 성능을 보임을 확인할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 문서형 악성코드 탐지 시스템
110: 사용자 단말 130: 문서형 악성코드 탐지 장치
150: 데이터베이스
210: 프로세서 230: 메모리
250: 사용자 입출력부 270: 네트워크 입출력부
310: 문서 학습모델 생성부 330: 문서 이진 분류부
350: 시그니처 처리부 370: 악성파일 결정부
390: 제어부
110: 사용자 단말 130: 문서형 악성코드 탐지 장치
150: 데이터베이스
210: 프로세서 230: 메모리
250: 사용자 입출력부 270: 네트워크 입출력부
310: 문서 학습모델 생성부 330: 문서 이진 분류부
350: 시그니처 처리부 370: 악성파일 결정부
390: 제어부
Claims (14)
- 악성코드 문서 및 정상코드 문서 각각에서 피처벡터를 추출하여 문서 학습모델을 생성하는 문서 학습모델 생성부;
주어진 문서에 관한 피처벡터를 상기 문서 학습모델에 입력하여 상기 주어진 문서를 상기 악성코드 문서 또는 상기 정상코드 문서로 이진 분류하는 문서 이진 분류부;
상기 주어진 문서에서 시그니처 데이터베이스에 있는 시그니처를 검출하여 상기 주어진 문서가 상기 악성코드 문서에 해당하는지 여부를 결정하는 시그니처 처리부; 및
상기 문서 이진 분류부의 이진 분류 및 상기 시그니처 처리부의 결정을 진행하여 상기 주어진 문서가 악성코드를 포함하고 있는지 여부를 최종적으로 결정하는 악성파일 결정부를 포함하되,
상기 문서 이진 분류부는 아래의 수학식을 통해 상기 주어진 문서의 이진 분류를 수행하고,
상기 악성파일 결정부는 상기 문서 이진 분류부 및 상기 시그니처 처리부 중 어느 하나가 먼저 상기 주어진 문서가 상기 악성코드를 포함하고 있는 것으로 결정하는 경우에는 다른 하나의 수행에 관계없이 상기 주어진 문서를 상기 악성코드 문서로 결정하고, 상기 문서 이진 분류부의 이진 분류 및 상기 시그니처 처리부의 결정을 동시에 진행하되 현재의 작업 부하량이 특정 기준 이상이면 상기 이진 분류의 이전에 상기 문서 학습모델 생성부에 의해 수행되는 전처리 과정에서 스크립트가 존재하지 않는 경우에는 상기 시그니처 처리부의 수행을 생략하는 것을 특징으로 하는 문서형 악성코드 탐지 장치.
[수학식]
여기에서, 대상 문서가 n개 주어졌을 때, 각 문서는 Xi로 표현할 수 있음(1≤i≤n).
Yi는 문서 Xi에 대한 실제 응답이고, 는 추정 응답에 해당함.
랜덤 포레스트(RF)는 결정 트리 T개로 구성되고, 각 결정 트리를 Aj라고 표현함 (1≤j≤T). 결정 트리 Aj가 구성되면, Aj(x)에 포함된 학습 부분에 대한 정보만을 사용하여 쿼리 지점 x에 대한 결과를 추정함. 주어진 쿼리 지점 x를 N(Aj(x))라고 표현하고, 이것은 Aj(x)에 속한 샘플들의 수를 의미함
- 제1항에 있어서, 상기 문서 학습모델 생성부는
상기 악성코드 문서 및 상기 정상코드 문서를 전처리하여 스크립트를 추출하는 것을 특징으로 하는 문서형 악성코드 탐지 장치.
- 제2항에 있어서, 상기 문서 학습모델 생성부는
상기 스크립트를 스크립트 분석기에 제공하여 상기 피처벡터를 생성하는 것을 특징으로 하는 문서형 악성코드 탐지 장치.
- 제3항에 있어서, 상기 문서 학습모델 생성부는
상기 스크립트에 관한 문서 구조 경로 스트링들을 기초로 상기 피처벡터를 생성하는 것을 특징으로 하는 문서형 악성코드 탐지 장치.
- 제1항에 있어서, 상기 문서 학습모델 생성부는
상기 피처벡터를 기초로 랜덤 포레스트 알고리즘으로 상기 문서 학습모델을 구축하는 것을 특징으로 하는 문서형 악성코드 탐지 장치.
- 삭제
- 제1항에 있어서, 상기 시그니처 처리부는
상기 주어진 문서가 실행 파일, DDE(Dynamic Data Exchange) 명령코드 또는 스크립트의 포함여부를 분석하여 상기 시그니처를 검출하는 것을 특징으로 하는 문서형 악성코드 탐지 장치.
- 제7항에 있어서, 상기 시그니처 처리부는
상기 주어진 문서가 실행 파일, DDE(Dynamic Data Exchange) 명령코드 또는 스크립트의 포함하지 않는 경우에는 상기 주어진 문서를 상기 정상코드 문서에 해당하는 것으로 결정하는 것을 특징으로 하는 문서형 악성코드 탐지 장치.
- 삭제
- 삭제
- 문서 학습모델 생성부, 문서 이진 분류부, 시그니처 처리부 및 악성파일 결정부를 포함하는 문서형 악성코드 탐지 장치에서 수행되는 문서형 악성코드 탐지 방법에 있어서,
상기 문서 학습모델 생성부를 통해, 악성코드 문서 및 정상코드 문서 각각에서 피처벡터를 추출하여 문서 학습모델을 생성하는 단계;
상기 문서 이진 분류부를 통해, 주어진 문서에 관한 피처벡터를 상기 문서 학습모델에 입력하여 상기 주어진 문서를 상기 악성코드 문서 또는 상기 정상코드 문서로 이진 분류하는 단계;
상기 시그니처 처리부를 통해, 상기 주어진 문서에서 시그니처 데이터베이스에 있는 시그니처를 검출하여 상기 주어진 문서가 상기 악성코드 문서에 해당하는지 여부를 결정하는 단계; 및
상기 악성파일 결정부를 통해, 상기 문서 이진 분류부의 이진 분류 및 상기 시그니처 처리부의 결정을 진행하여 상기 주어진 문서가 악성코드를 포함하고 있는지 여부를 최종적으로 결정하는 단계를 포함하되,
상기 이진 분류하는 단계는 아래의 수학식을 통해 상기 주어진 문서의 이진 분류를 수행하는 단계를 포함하고,
상기 최종적으로 결정하는 단계는 상기 문서 이진 분류부 및 상기 시그니처 처리부 중 어느 하나가 먼저 상기 주어진 문서가 상기 악성코드를 포함하고 있는 것으로 결정하는 경우에는 다른 하나의 수행에 관계없이 상기 주어진 문서를 상기 악성코드 문서로 결정하는 단계를 포함하고, 상기 문서 이진 분류부의 이진 분류 및 상기 시그니처 처리부의 결정을 동시에 진행하되 현재의 작업 부하량이 특정 기준 이상이면 상기 이진 분류의 이전에 상기 문서 학습모델 생성부에 의해 수행되는 전처리 과정에서 스크립트가 존재하지 않는 경우에는 상기 시그니처 처리부의 수행을 생략하는 단게를 포함하는 것을 특징으로 하는 문서형 악성코드 탐지 방법.
[수학식]
여기에서, 대상 문서가 n개 주어졌을 때, 각 문서는 Xi로 표현할 수 있음(1≤i≤n).
Yi는 문서 Xi에 대한 실제 응답이고, 는 추정 응답에 해당함.
랜덤 포레스트(RF)는 결정 트리 T개로 구성되고, 각 결정 트리를 Aj라고 표현함 (1≤j≤T). 결정 트리 Aj가 구성되면, Aj(x)에 포함된 학습 부분에 대한 정보만을 사용하여 쿼리 지점 x에 대한 결과를 추정함. 주어진 쿼리 지점 x를 N(Aj(x))라고 표현하고, 이것은 Aj(x)에 속한 샘플들의 수를 의미함
- 제11항에 있어서,
상기 문서 학습모델을 생성하는 단계는
상기 악성코드 문서 및 상기 정상코드 문서를 전처리하여 스크립트를 추출하는 단계; 및
상기 스크립트를 스크립트 분석기에 제공하여 상기 피처벡터를 생성하는 단계를 포함하는 것을 특징으로 하는 문서형 악성코드 탐지 방법.
- 제11항에 있어서,
상기 악성코드 문서에 해당하는지 여부를 결정하는 단계는
상기 주어진 문서가 실행 파일, DDE(Dynamic Data Exchange) 명령코드 또는 스크립트의 포함여부를 분석하여 상기 시그니처를 검출하는 단계를 포함하는 것을 특징으로 하는 문서형 악성코드 탐지 방법.
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200146913A KR102437278B1 (ko) | 2020-11-05 | 2020-11-05 | 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200146913A KR102437278B1 (ko) | 2020-11-05 | 2020-11-05 | 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220060843A KR20220060843A (ko) | 2022-05-12 |
KR102437278B1 true KR102437278B1 (ko) | 2022-08-29 |
Family
ID=81590256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200146913A KR102437278B1 (ko) | 2020-11-05 | 2020-11-05 | 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102437278B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12093676B2 (en) * | 2022-01-14 | 2024-09-17 | Dell Products L.P. | Intelligent management of software deployment based on code change |
CN116975865B (zh) * | 2023-08-11 | 2024-05-28 | 北京天融信网络安全技术有限公司 | 恶意Office文档检测方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101851233B1 (ko) * | 2018-02-13 | 2018-04-23 | (주)지란지교시큐리티 | 파일 내 포함된 악성 위협 탐지 장치 및 방법, 그 기록매체 |
KR101858620B1 (ko) * | 2017-01-10 | 2018-05-17 | 고려대학교 산학협력단 | 기계 학습을 이용한 자바스크립트 분석 장치 및 방법 |
KR102093275B1 (ko) * | 2019-05-23 | 2020-03-25 | (주)지란지교시큐리티 | 악성코드 감염 유도정보 판별 시스템, 프로그램이 기록된 저장매체 및 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101296716B1 (ko) | 2011-12-14 | 2013-08-20 | 한국인터넷진흥원 | 피디에프 문서형 악성코드 탐지 시스템 및 방법 |
-
2020
- 2020-11-05 KR KR1020200146913A patent/KR102437278B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101858620B1 (ko) * | 2017-01-10 | 2018-05-17 | 고려대학교 산학협력단 | 기계 학습을 이용한 자바스크립트 분석 장치 및 방법 |
KR101851233B1 (ko) * | 2018-02-13 | 2018-04-23 | (주)지란지교시큐리티 | 파일 내 포함된 악성 위협 탐지 장치 및 방법, 그 기록매체 |
KR102093275B1 (ko) * | 2019-05-23 | 2020-03-25 | (주)지란지교시큐리티 | 악성코드 감염 유도정보 판별 시스템, 프로그램이 기록된 저장매체 및 방법 |
Non-Patent Citations (1)
Title |
---|
Nedim rndić and Pavel Laskov, "Hidost: a static machine-learning-based detector of malicious files"(2016.09.) |
Also Published As
Publication number | Publication date |
---|---|
KR20220060843A (ko) | 2022-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021077642A1 (zh) | 一种基于异构图嵌入的网络空间安全威胁检测方法及系统 | |
Baldwin et al. | Leveraging support vector machine for opcode density based detection of crypto-ransomware | |
CN109344615B (zh) | 一种检测恶意命令的方法及装置 | |
CN109145600B (zh) | 使用静态分析元素检测恶意文件的系统和方法 | |
JP2020115320A (ja) | 悪意あるファイルを検出するためのシステムおよび方法 | |
Li et al. | Opcode sequence analysis of Android malware by a convolutional neural network | |
Fang et al. | A new malware classification approach based on malware dynamic analysis | |
CN113360912A (zh) | 恶意软件检测方法、装置、设备及存储介质 | |
KR102437278B1 (ko) | 머신러닝과 시그니처 매칭을 결합한 문서형 악성코드 탐지 장치 및 방법 | |
RU2587429C2 (ru) | Система и способ оценки надежности правила категоризации | |
Falor et al. | A deep learning approach for detection of SQL injection attacks using convolutional neural networks | |
Alazab et al. | Detecting malicious behaviour using supervised learning algorithms of the function calls | |
Agarkar et al. | Malware detection & classification using machine learning | |
Zhang et al. | Smartdetect: a smart detection scheme for malicious web shell codes via ensemble learning | |
He et al. | Detection of Malicious PDF Files Using a Two‐Stage Machine Learning Algorithm | |
WO2019223637A1 (zh) | 恶意文件检测方法、装置、设备及计算机可读存储介质 | |
KR20180133726A (ko) | 특징 벡터를 이용하여 데이터를 분류하는 장치 및 방법 | |
Shi et al. | SFCGDroid: android malware detection based on sensitive function call graph | |
Hindarto et al. | Android-manifest extraction and labeling method for malware compilation and dataset creation. | |
Hang et al. | Malware detection method of android application based on simplification instructions | |
Vahedi et al. | Cloud based malware detection through behavioral entropy | |
Vullam et al. | An Enhancing Network Security: A Stacked Ensemble Intrusion Detection System for Effective Threat Mitigation | |
KR20210035987A (ko) | 자카드 모델 기반의 문서 검색 장치 및 방법 | |
Kutlay et al. | Static based classification of malicious software using machine learning methods | |
KR102255600B1 (ko) | Gan을 이용한 문서형 악성코드 탐지 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |