KR102068605B1 - 함수 실행 순서를 이용한 악성코드 분류 방법 및 이를 사용한 장치 - Google Patents
함수 실행 순서를 이용한 악성코드 분류 방법 및 이를 사용한 장치 Download PDFInfo
- Publication number
- KR102068605B1 KR102068605B1 KR1020190033966A KR20190033966A KR102068605B1 KR 102068605 B1 KR102068605 B1 KR 102068605B1 KR 1020190033966 A KR1020190033966 A KR 1020190033966A KR 20190033966 A KR20190033966 A KR 20190033966A KR 102068605 B1 KR102068605 B1 KR 102068605B1
- Authority
- KR
- South Korea
- Prior art keywords
- sequence
- code
- similarity
- specific
- malicious
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
도 2는 본 발명의 일 실시예에 따라, 악성코드 분류 장치가, 미확인 코드와 과거 악성코드의 유사도를 판단하고 분류하는 방법을 개략적으로 나타내는 흐름도이다.
도 3a 및 도 3b는, 본 발명의 일 실시예에 따라, 악성코드 분류 장치가 안티바이러스 프로그램과 연동되는 구성을 개략적으로 도시한 도면이다.
숫자 | 키워드 | 함수 |
0 | NULL | etc. |
1 | FindFirst | FindFirstFile, FindFirstFileEx, FindFirstFileName FindFirstFileNameW, FindFirstFileTransacted FindFirstStream, FindFirstStreamW... |
2 | FindNext | FindNextFile, FindNextFileW, FindNextFileNameW, FindNextStreamW... |
3 | CreateFile | CreateFile, CreateFileW, CreateFileTransacted... |
4 | OpenFile | OpenFile, OpenFileByld, ReOpenFile... |
5 | WriteFile | WriteFile |
6 | CloseHandle | CloseHandle |
7 | Process | OpenProcess, CreateProcessAsUser, GetCurrentProcessId ProcessPrng, TerminateProcess... |
8 | Crypt | CryptDestroy, BCryptDestroyKey, CryptGenRandom, CryptAcquireContextW, CryptAcquireContextA, CryptCreateHash... |
9 | SetFile | SetFilePointer, SetFilePointerEx, SetFileApisToANSI SetFileApisToOEM, SetFileAttributes, SetFileAttributesW... |
120 : 프로세서 200 : 데이터베이스
1000 : 안티바이러스 프로그램과 연동된 악성코드 분류 시스템
Claims (16)
- 악성코드를 분류하는 방법으로서,
(a) 미확인 코드가 실행되면, 장치가, 상기 미확인 코드의 실행 과정에서 호출되는 적어도 하나의 특정 호출 함수 정보 - 상기 특정 호출 함수 정보는, 전체 호출 함수 정보에 대응되는 전체 행위 기반 키워드 중 특정 행위 기반 키워드에 대응되는 함수 정보임 - 및 상기 특정 호출 함수 정보에 대응되는 호출 순서 정보를 참조로 하여, 제1 시퀀스를 획득하는 단계;
(b) 상기 장치가, 복수의 과거 악성코드에 대응되는 복수의 참조 시퀀스 - 상기 복수의 참조 시퀀스는 소정의 데이터베이스에 저장되어 있음 - 중 적어도 하나의 제2 시퀀스와 상기 제1 시퀀스를 참조로 하여, 상기 제1 시퀀스와 상기 제2 시퀀스의 유사도를 판단하는 단계; 및
(c) 상기 유사도가 제1 임계치 이상인 것으로 판단되는 경우, 상기 장치가, 상기 유사도를 판단할 때 참조된 상기 제2 시퀀스에 대응되는 특정 과거 악성코드와 상기 제1 시퀀스에 대응되는 상기 미확인 코드를 동일한 특정 악성코드 클러스터 - 상기 특정 악성코드 클러스터는 상기 특정 과거 악성코드에 대응되는 악성코드 클러스터임 - 에 포함되는 것으로 판단하고, 상기 유사도가 상기 제1 임계치 미만인 것으로 판단되는 경우, 상기 장치가, 상기 미확인 코드를 별도 검사 대상으로 분류하는 단계;
를 포함하되,
상기 행위 기반 키워드는, 상기 전체 호출 함수 각각을 행위 별로 분류할 수 있도록 사전에 정해진 키워드로서 'FindFirst', 'FindNext', 'CreateFile', 'OpenFile', 'WriteFile', 'CloseHandle', 'Process', 'Crypt' 및 'SetFile' 키워드를 포함하는 것을 특징으로 하며,
상기 (a) 단계 이전에,
(a0) 상기 장치가, 상기 데이터베이스에 저장된 상기 복수의 참조 시퀀스를, 복수의 악성코드 클러스터 중 어느 악성코드 클러스터에 속하는지 분류하는 단계; 를 더 포함하고,
상기 (b) 단계는,
상기 장치가, 상기 복수의 악성코드 클러스터 중 상기 특정 악성코드 클러스터에서 상기 제2 시퀀스를 선택하는 것을 특징으로 하며,
상기 (b) 단계에서,
상기 유사도의 판단은,
상기 장치가, (i) 상기 제1 시퀀스의 길이값 및 상기 제2 시퀀스의 길이값들의 평균인 제1 평균값을 계산하여, 상기 제1 시퀀스 및 상기 제2 시퀀스 중에서 상기 제1 평균값을 초과하는 길이의 시퀀스를 제외한 나머지 시퀀스의 길이값들의 평균인 제2 평균값을 구하는 프로세스, (ii) 상기 제2 시퀀스 중 적어도 일부와 상기 제1 시퀀스의 조합을 참조로 하여 적어도 하나의 최장공통부분시퀀스(Longest Common Subsequence, LCS)를 구하는 프로세스, 및 (iii) 상기 LCS의 길이값들 중 가장 큰 값을 상기 제2 평균값으로 나누어 획득된 결과값을 참조로 하여 유사도를 판단하는 프로세스를 수행함에 의하여 이루어지는 것을 특징으로 하고,
상기 (a) 단계에서,
상기 제1 시퀀스에, 상기 특정 행위 기반 키워드 중 악의적인 영향을 주지 않는 함수의 행위 기반 키워드에 대응되는 구성요소가 둘 이상 연속하여 포함된 경우, 상기 장치가, 상기 구성요소를 병합하여 상기 제1 시퀀스를 업데이트하는 것을 특징으로 하는 악성코드 분류 방법. - 삭제
- 삭제
- 삭제
- 제1항에 있어서,
상기 (c) 단계에서,
상기 미확인 코드가 상기 별도 검사 대상으로 분류되는 경우,
(d1) 상기 장치가, 상기 미확인 코드에 관련된 정보를 제공함으로써 상기 미확인 코드에 대한 수동분석이 가능하도록 지원하는 프로세스, 및 (d2) 상기 장치가, 상기 장치에 연결된 별도의 사용자 단말이 상기 미확인 코드에 관련된 정보를 제공하도록 함으로써 상기 미확인 코드에 대한 수동분석이 가능하도록 지원하는 프로세스 중 적어도 하나의 프로세스를 수행하는 단계를 더 포함하는 악성코드 분류 방법. - 제1 항에 있어서,
상기 (c) 단계에서,
상기 유사도가 상기 제1 임계치 미만인 경우에,
(c1) 상기 유사도가 제2 임계치 미만 - 상기 제2 임계치는 상기 제1 임계치보다 작음 - 인 경우, 상기 장치가, 상기 미확인 코드를 정상 코드로 판단하고, (c2) 상기 유사도가 상기 제2 임계치 이상인 경우, 상기 장치가, 상기 미확인 코드를 별도의 검사 대상으로 분류하는 것을 특징으로 하는 악성코드 분류 방법. - 제1 항에 있어서,
상기 데이터베이스에는 상기 복수의 참조 시퀀스에 대응되는 상기 복수의 과거 악성코드가 함께 저장되어 있는 것을 특징으로 하는 악성코드 분류 방법. - 제1항에 있어서,
상기 미확인 코드는 가상환경에서 실행되는 것을 특징으로 하는 악성코드 분류 방법. - 악성코드를 분류하는 장치로서,
인스트럭션들을 저장하는 적어도 하나의 메모리; 및
상기 인스트럭션들을 실행하기 위해 구성된 적어도 하나의 프로세서; 를 포함하고,
상기 프로세서가,
(I) 미확인 코드가 실행되면, 상기 미확인 코드의 실행 과정에서 호출되는 적어도 하나의 특정 호출 함수 정보 - 상기 특정 호출 함수 정보는, 전체 호출 함수 정보에 대응되는 전체 행위 기반 키워드 중 특정 행위 기반 키워드에 대응되는 함수 정보임 - 및 상기 특정 호출 함수 정보에 대응되는 호출 순서 정보를 참조로 하여, 제1 시퀀스를 획득하는 프로세스; (II) 복수의 과거 악성코드에 대응되는 복수의 참조 시퀀스 - 상기 복수의 참조 시퀀스는 소정의 데이터베이스에 저장되어 있음 - 중 적어도 하나의 제2 시퀀스와 상기 제1 시퀀스를 참조로 하여, 상기 제1 시퀀스와 상기 제2 시퀀스의 유사도를 판단하는 프로세스; 및 (III) 상기 유사도가 제1 임계치 이상인 것으로 판단되는 경우, 상기 유사도를 판단할 때 참조된 상기 제2 시퀀스에 대응되는 특정 과거 악성코드와 상기 제1 시퀀스에 대응되는 상기 미확인 코드를 동일한 특정 악성코드 클러스터 - 상기 특정 악성코드 클러스터는 상기 특정 과거 악성코드에 대응되는 악성코드 클러스터임 - 에 포함되는 것으로 판단하고, 상기 유사도가 상기 제1 임계치 미만인 것으로 판단되는 경우, 상기 장치가, 상기 미확인 코드를 별도 검사 대상으로 분류하는 프로세스;
를 수행하되,
상기 행위 기반 키워드는, 상기 전체 호출 함수 각각을 행위 별로 분류할 수 있도록 사전에 정해진 키워드로서 'FindFirst', 'FindNext', 'CreateFile', 'OpenFile', 'WriteFile', 'CloseHandle', 'Process', 'Crypt' 및 'SetFile' 키워드를 포함하는 것을 특징으로 하며,
상기 (I) 프로세스 이전에,
(I-0) 상기 프로세서가, 상기 데이터베이스에 저장된 상기 복수의 참조 시퀀스를, 복수의 악성코드 클러스터 중 어느 악성코드 클러스터에 속하는지 분류하는 프로세스; 를 더 수행하고,
상기 (II) 프로세스는,
상기 프로세서가, 상기 복수의 악성코드 클러스터 중 상기 특정 악성코드 클러스터에서 상기 제2 시퀀스를 선택하는 것을 특징으로 하며,
상기 (II) 프로세스에서,
상기 유사도의 판단은,
상기 프로세서가, (i) 상기 제1 시퀀스의 길이값 및 상기 제2 시퀀스의 길이값들의 평균인 제1 평균값을 계산하여, 상기 제1 시퀀스 및 상기 제2 시퀀스 중에서 상기 제1 평균값을 초과하는 길이의 시퀀스를 제외한 나머지 시퀀스의 길이값들의 평균인 제2 평균값을 구하는 프로세스, (ii) 상기 제2 시퀀스 중 적어도 일부와 상기 제1 시퀀스의 조합을 참조로 하여 적어도 하나의 최장공통부분시퀀스(Longest Common Subsequence, LCS)를 구하는 프로세스, 및 (iii) 상기 LCS의 길이값들 중 가장 큰 값을 상기 제2 평균값으로 나누어 획득된 결과값을 참조로 하여 유사도를 판단하는 프로세스를 수행함에 의하여 이루어지는 것을 특징으로 하고,
상기 (I) 프로세스에서,
상기 제1 시퀀스에, 상기 특정 행위 기반 키워드 중 악의적인 영향을 주지 않는 함수의 행위 기반 키워드에 대응되는 구성요소가 둘 이상 연속하여 포함된 경우, 상기 프로세서가, 상기 구성요소를 병합하여 상기 제1 시퀀스를 업데이트하는 것을 특징으로 하는 악성코드 분류 장치. - 삭제
- 삭제
- 삭제
- 제9항에 있어서,
상기 (III) 프로세스에서,
상기 미확인 코드가 상기 별도 검사 대상으로 분류되는 경우,
(IV-1) 상기 프로세서가, 상기 미확인 코드에 관련된 정보를 제공함으로써 상기 미확인 코드에 대한 수동분석이 가능하도록 지원하는 프로세스, 및 (IV-2) 상기 프로세서가, 상기 장치에 연결된 별도의 사용자 단말이 상기 미확인 코드에 관련된 정보를 제공하도록 함으로써 상기 미확인 코드에 대한 수동분석이 가능하도록 지원하는 프로세스 중 적어도 하나의 프로세스를 더 수행하는 악성코드 분류 장치. - 제9 항에 있어서,
상기 (III) 프로세스에서,
상기 유사도가 상기 제1 임계치 미만인 경우에,
(III-1) 상기 유사도가 제2 임계치 미만 - 상기 제2 임계치는 상기 제1 임계치보다 작음 - 인 경우, 상기 프로세서가, 상기 미확인 코드를 정상 코드로 판단하고, (III-2) 상기 유사도가 상기 제2 임계치 이상인 경우, 상기 프로세서가, 상기 미확인 코드를 별도의 검사 대상으로 분류하는 것을 특징으로 하는 악성코드 분류 장치. - 제9 항에 있어서,
상기 데이터베이스에는 상기 복수의 참조 시퀀스에 대응되는 상기 복수의 과거 악성코드가 함께 저장되어 있는 것을 특징으로 하는 악성코드 분류 장치. - 제9항에 있어서,
상기 미확인 코드는 가상환경에서 실행되는 것을 특징으로 하는 악성코드 분류 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190033966A KR102068605B1 (ko) | 2019-03-25 | 2019-03-25 | 함수 실행 순서를 이용한 악성코드 분류 방법 및 이를 사용한 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190033966A KR102068605B1 (ko) | 2019-03-25 | 2019-03-25 | 함수 실행 순서를 이용한 악성코드 분류 방법 및 이를 사용한 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102068605B1 true KR102068605B1 (ko) | 2020-01-21 |
Family
ID=69369688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190033966A Active KR102068605B1 (ko) | 2019-03-25 | 2019-03-25 | 함수 실행 순서를 이용한 악성코드 분류 방법 및 이를 사용한 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102068605B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112435688A (zh) * | 2020-11-20 | 2021-03-02 | 腾讯音乐娱乐科技(深圳)有限公司 | 音频识别方法、服务器及存储介质 |
KR20220013085A (ko) * | 2020-07-24 | 2022-02-04 | 주식회사 한글과컴퓨터 | 검색 키워드에 대응되는 쿼리 실행을 통해 문서에 삽입된 개체에 대한 검색을 수행하는 전자 장치 및 그 동작 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120124667A1 (en) * | 2010-11-12 | 2012-05-17 | National Chiao Tung University | Machine-implemented method and system for determining whether a to-be-analyzed software is a known malware or a variant of the known malware |
KR101589656B1 (ko) * | 2015-01-19 | 2016-01-28 | 한국인터넷진흥원 | Api 기반 악성 코드 변종 탐지 조회 시스템 및 방법 |
KR20170108330A (ko) * | 2016-03-17 | 2017-09-27 | 한국전자통신연구원 | 악성 코드 탐지 장치 및 방법 |
KR20180097824A (ko) * | 2017-02-24 | 2018-09-03 | 성균관대학교산학협력단 | 악성코드 검출을 위한 자동 규칙 생성방법, 장치, 시스템 및 이를 기록한 컴퓨터로 판독가능한 기록매체 |
-
2019
- 2019-03-25 KR KR1020190033966A patent/KR102068605B1/ko active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120124667A1 (en) * | 2010-11-12 | 2012-05-17 | National Chiao Tung University | Machine-implemented method and system for determining whether a to-be-analyzed software is a known malware or a variant of the known malware |
KR101589656B1 (ko) * | 2015-01-19 | 2016-01-28 | 한국인터넷진흥원 | Api 기반 악성 코드 변종 탐지 조회 시스템 및 방법 |
KR20170108330A (ko) * | 2016-03-17 | 2017-09-27 | 한국전자통신연구원 | 악성 코드 탐지 장치 및 방법 |
KR20180097824A (ko) * | 2017-02-24 | 2018-09-03 | 성균관대학교산학협력단 | 악성코드 검출을 위한 자동 규칙 생성방법, 장치, 시스템 및 이를 기록한 컴퓨터로 판독가능한 기록매체 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220013085A (ko) * | 2020-07-24 | 2022-02-04 | 주식회사 한글과컴퓨터 | 검색 키워드에 대응되는 쿼리 실행을 통해 문서에 삽입된 개체에 대한 검색을 수행하는 전자 장치 및 그 동작 방법 |
KR102375557B1 (ko) * | 2020-07-24 | 2022-03-17 | 주식회사 한글과컴퓨터 | 검색 키워드에 대응되는 쿼리 실행을 통해 문서에 삽입된 개체에 대한 검색을 수행하는 전자 장치 및 그 동작 방법 |
CN112435688A (zh) * | 2020-11-20 | 2021-03-02 | 腾讯音乐娱乐科技(深圳)有限公司 | 音频识别方法、服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ye et al. | CIMDS: adapting postprocessing techniques of associative classification for malware detection | |
US10162967B1 (en) | Methods and systems for identifying legitimate computer files | |
Tian et al. | An automated classification system based on the strings of trojan and virus families | |
US9454658B2 (en) | Malware detection using feature analysis | |
US7809670B2 (en) | Classification of malware using clustering that orders events in accordance with the time of occurance | |
KR101620931B1 (ko) | 악성코드 특징 정보 기반의 유사 악성코드 검색 장치 및 방법 | |
US20150172303A1 (en) | Malware Detection and Identification | |
Mosli et al. | A behavior-based approach for malware detection | |
EP2975873A1 (en) | A computer implemented method for classifying mobile applications and computer programs thereof | |
US20080263669A1 (en) | Systems, apparatus, and methods for detecting malware | |
KR20160082644A (ko) | 코드 블록 구분을 통한 악성 코드 탐지 방법 및 장치 | |
CN103679030B (zh) | 一种基于动态语义特征的恶意代码分析检测方法 | |
KR101851233B1 (ko) | 파일 내 포함된 악성 위협 탐지 장치 및 방법, 그 기록매체 | |
Palahan et al. | Extraction of statistically significant malware behaviors | |
KR102068605B1 (ko) | 함수 실행 순서를 이용한 악성코드 분류 방법 및 이를 사용한 장치 | |
US11270000B1 (en) | Generation of file digests for detecting malicious executable files | |
US20180089365A1 (en) | Method for identification of nucleic acid signatures | |
KR101907681B1 (ko) | 악성코드 검출을 위한 자동 규칙 생성방법, 장치, 시스템 및 이를 기록한 컴퓨터로 판독가능한 기록매체 | |
US8151117B2 (en) | Detection of items stored in a computer system | |
EP4202741B1 (en) | System and method of synthesizing potential malware for predicting a cyberattack | |
KR20160100887A (ko) | 코드 블록 비교를 통한 악성 코드 탐지 방법 | |
KR102318991B1 (ko) | 유사도 기반의 악성코드 진단 방법 및 장치 | |
CN108268775B (zh) | 一种Web漏洞检测方法、装置、电子设备及存储介质 | |
RU2747464C2 (ru) | Способ обнаружения вредоносных файлов на основании фрагментов файлов | |
Park et al. | Antibot: Clustering common semantic patterns for bot detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20190325 |
|
PA0201 | Request for examination | ||
PA0302 | Request for accelerated examination |
Patent event date: 20190327 Patent event code: PA03022R01D Comment text: Request for Accelerated Examination Patent event date: 20190325 Patent event code: PA03021R01I Comment text: Patent Application |
|
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20190417 Patent event code: PE09021S01D |
|
AMND | Amendment | ||
PE0601 | Decision on rejection of patent |
Patent event date: 20190910 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20190417 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |
|
X091 | Application refused [patent] | ||
AMND | Amendment | ||
PX0901 | Re-examination |
Patent event code: PX09011S01I Patent event date: 20190910 Comment text: Decision to Refuse Application Patent event code: PX09012R01I Patent event date: 20190717 Comment text: Amendment to Specification, etc. |
|
PX0701 | Decision of registration after re-examination |
Patent event date: 20191212 Comment text: Decision to Grant Registration Patent event code: PX07013S01D Patent event date: 20191115 Comment text: Amendment to Specification, etc. Patent event code: PX07012R01I Patent event date: 20190910 Comment text: Decision to Refuse Application Patent event code: PX07011S01I Patent event date: 20190717 Comment text: Amendment to Specification, etc. Patent event code: PX07012R01I |
|
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20200115 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20200116 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20221125 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20231115 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20241023 Start annual number: 6 End annual number: 6 |