KR101428781B1 - Apparatus for classifying executable file using compiler information similarity and method thereof - Google Patents

Apparatus for classifying executable file using compiler information similarity and method thereof Download PDF

Info

Publication number
KR101428781B1
KR101428781B1 KR1020120129309A KR20120129309A KR101428781B1 KR 101428781 B1 KR101428781 B1 KR 101428781B1 KR 1020120129309 A KR1020120129309 A KR 1020120129309A KR 20120129309 A KR20120129309 A KR 20120129309A KR 101428781 B1 KR101428781 B1 KR 101428781B1
Authority
KR
South Korea
Prior art keywords
classification target
execution file
compiler information
classification
file
Prior art date
Application number
KR1020120129309A
Other languages
Korean (ko)
Other versions
KR20140062959A (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 KR1020120129309A priority Critical patent/KR101428781B1/en
Publication of KR20140062959A publication Critical patent/KR20140062959A/en
Application granted granted Critical
Publication of KR101428781B1 publication Critical patent/KR101428781B1/en

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
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis

Abstract

컴파일러 정보 유사도를 이용한 실행파일 분류 장치 및 방법이 개시된다. 본 발명에 따른 컴파일러 정보 유사도를 이용한 실행파일 분류 장치는 분류 대상 실행파일의 헤더에서 분류 대상 컴파일러 정보를 획득하는 컴파일러 정보 획득부; 실행파일 그룹들 각각의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값들을 산출하는 유사도 산출부; 및 상기 유사도 값들을 이용하여 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 판단하여 상기 분류 대상 실행파일을 분류한다.An apparatus and method for classifying an executable file using compiler information similarity are disclosed. An apparatus for classifying an executable file using a compiler information similarity degree according to the present invention includes: a compiler information acquisition unit for acquiring classification target compiler information in a header of an execution object file to be classified; A similarity calculation unit for calculating similarity values between the sample compiler information of each of the execution file groups and the classification target compiler information; And classifying the classification target executable file by determining whether the classification target execution file corresponds to one of the execution file groups using the similarity values.

Description

컴파일러 정보 유사도를 이용한 실행파일 분류 장치 및 방법 {APPARATUS FOR CLASSIFYING EXECUTABLE FILE USING COMPILER INFORMATION SIMILARITY AND METHOD THEREOF}[0001] APPARATUS FOR CLASSIFYING EXECUTABLE FILE USING COMPILER INFORMATION SIMILARITY AND METHOD THEREOF [0002]

본 발명은 컴파일러 정보 유사도를 이용한 실행파일 분류 장치 및 방법에 관한 것으로, 특히 피이 포맷(Portable Executable Format, PE Format)의 헤더에 포함된 컴파일러 정보를 획득하고 유사도를 산출함으로써, 범용적인 실행파일을 분류하는 기술에 관한 것이다.The present invention relates to an apparatus and method for classifying an executable file using a compiler information similarity degree. More particularly, the present invention relates to an apparatus and a method for classifying an executable file by obtaining compiler information included in a header of a portable executable format (PE format) Lt; / RTI >

최근 디지털 포렌식(digital forensics) 분야에서 실행파일을 분류하는 기술은 디지털 증거를 수집하는 속도를 개선할 수 있어 아주 중요한 요소이나, 일반적으로 사용되는 실행파일 분류 기술은 악성코드가 포함된 실행파일에 한정되어 적용이 가능하므로, 악성코드가 포함되지 않은 일반적인 실행파일을 제작 환경 및 제작자 별로 분류하는 것은 불가능하다는 문제가 있다.Recently, the technique of classifying executables in the field of digital forensics is very important because it can improve the speed of collecting digital evidence, but the commonly used executable file classification technology is restricted to executable files containing malicious code Therefore, there is a problem that it is impossible to classify a general executable file that does not include malicious code by the production environment and the maker.

한국공개특허 제2012-0070016호는 문자열의 유사도를 이용한 악성코드를 포함하는 실행파일을 분류하는 기술을 소개하였고, 한국공개특허 제2011-0008854호는 서버에서 클라이언트 단말에서 실행될 실행파일에 대하여 악성코드를 포함하는 실행파일을 분류하는 기술을 소개하였다.Korean Unexamined Patent Publication No. 2012-0070016 discloses a technique for classifying executable files including malicious codes using the similarity of strings. Korean Patent Laid-Open Publication No. 2011-0008854 discloses a method for classifying executable files And the like.

또한, ‘보안공학연구논문지’ Vol 8, NO. 5, 611 내지 626 페이지에 게재된 ‘문자열과 API를 이용한 악성코드 자동 분류 시스템’에서는 API 호출 빈도의 유사도를 이용한 악성코드를 포함하는 실행파일을 분류하는 기술을 소개하였다.Also, 'Security Engineering Research Vol.8', NO. 5, 611 to 626, a technique for classifying executable files including malicious codes using the similarity of API call frequencies has been introduced in the 'Automatic classification system for malicious codes using strings and API'

그러나, 종래의 기술들은 단순히 악성코드를 포함하는 실행파일을 분류하는 기술만을 개시하고 있을 뿐, 악성코드에 한하지 아니하는 범용적인 실행파일을 분류하기 위한 구체적인 기술을 제시하고 있지 못하다.However, conventional technologies only disclose a technology for classifying executable files including malicious code, but do not provide a specific technique for classifying general purpose executable files that are not limited to malicious codes.

나아가, 종래 기술들은 실행파일의 일부 정보만 가지고도 실행파일을 분류하고, 실행파일의 헤더에 포함된 컴파일러 정보에 대하여만 슁글(shingle) 집합을 이용하여 유사도를 산출함으로써, 보다 신속하게 실행파일을 분류하고, 압축, 코드 변형 및 난독화된 경우라도 실행파일을 분류할 수 있는 기술에 관해서는 언급하고 있지 않다.Further, according to the prior arts, even if only a part of the executable file is included, the executable file is classified and the degree of similarity is calculated using the shingle set only for the compiler information included in the header of the executable file, And does not mention a technique that can classify executable files even if they are classified, compressed, code-transformed, and obfuscated.

따라서, 실행파일의 헤더에 포함된 컴파일러 정보를 획득하고 유사도를 산출함으로써, 실행파일의 일부 정보만 가지고도 실행파일을 분류하고, 피이 포맷(Portable Executable Format, PE Format)의 헤더에 포함된 컴파일러 정보를 이용함으로써, 악성코드에 한하지 아니하는 범용적인 실행파일을 분류하고, 실행파일의 헤더에 포함된 컴파일러 정보에 대하여만 슁글(shingle) 집합을 이용하여 유사도를 산출함으로써, 보다 신속하게 실행파일을 분류하고, 압축, 코드 변형 및 난독화된 경우라도 실행파일을 분류할 수 있는 새로운 실행파일 분류 기술의 필요성이 절실하게 대두된다.Therefore, by obtaining the compiler information included in the header of the executable file and calculating the degree of similarity, the executable file is classified even with only a part of the executable file, and the compiler information included in the header of the PORT format (Portable Executable Format, PE Format) By classifying general purpose executable files that are not limited to malicious code and calculating the degree of similarity by using a shingle set only for the compiler information included in the header of the executable file, There is an urgent need for new executable file classification techniques that can classify executable files even if they are classified, compressed, code transformed, and obfuscated.

본 발명의 목적은 실행파일의 헤더에 포함된 컴파일러 정보를 획득하고 유사도를 산출함으로써, 실행파일의 일부 정보만 가지고도 실행파일을 분류하는 것이다.An object of the present invention is to obtain compiler information included in a header of an executable file and to calculate the degree of similarity, thereby classifying the executable file even if only part of the executable file is included.

또한 본 발명의 목적은, 피이 포맷(Portable Executable Format, PE Format)의 헤더에 포함된 컴파일러 정보를 이용함으로써, 악성코드에 한하지 아니하는 범용적인 실행파일을 분류하는 것이다.It is also an object of the present invention to classify general purpose executable files that are not limited to malicious code by using compiler information contained in the header of the Portable Executable Format (PE Format).

또한 본 발명의 목적은, 실행파일의 헤더에 포함된 컴파일러 정보에 대하여만 슁글(shingle) 집합을 이용하여 유사도를 산출함으로써, 보다 신속하게 실행파일을 분류하는 것이다.It is also an object of the present invention to more quickly classify an executable file by calculating a degree of similarity using a shingle set only for the compiler information contained in the header of the executable file.

또한 본 발명의 목적은, 실행파일의 헤더에 포함된 컴파일러 정보를 획득하고 유사도를 산출함으로써, 압축, 코드 변형 및 난독화된 경우라도 실행파일을 분류하는 것이다.It is also an object of the present invention to classify an executable file even if the compiler information included in the header of the executable file is obtained and the degree of similarity is calculated, thereby compressing, code modification, and obfuscation.

상기한 목적을 달성하기 위한 본 발명에 따른 컴파일러 정보 유사도를 이용한 실행파일 분류 장치는 분류 대상 실행파일의 헤더에서 분류 대상 컴파일러 정보를 획득하는 컴파일러 정보 획득부; 실행파일 그룹들 각각의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값들을 산출하는 유사도 산출부; 및 상기 유사도 값들을 이용하여 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 판단하여 상기 분류 대상 실행파일을 분류한다.According to another aspect of the present invention, there is provided an apparatus for classifying executable files using compiler information similarity, the apparatus comprising: a compiler information acquisition unit for acquiring classification target compiler information in a header of an execution target file; A similarity calculation unit for calculating similarity values between the sample compiler information of each of the execution file groups and the classification target compiler information; And classifying the classification target executable file by determining whether the classification target execution file corresponds to one of the execution file groups using the similarity values.

이 때, 상기 분류 대상 실행파일의 헤더는 피이 포맷(Portable Executable Format, PE Format)의 헤더일 수 있다.In this case, the header of the classification target execution file may be a header of a Portable Executable Format (PE Format).

이 때, 상기 컴파일러 정보 획득부는 상기 헤더의 도스 스텁(Dos Stub) 및 엔티 헤더(NT Header) 사이에 포함된 데이터로부터 상기 분류 대상 컴파일러 정보를 획득할 수 있다.At this time, the compiler information obtaining unit may obtain the classification target compiler information from the data included between the DOS stub and the NT header of the header.

이 때, 상기 유사도 산출부는 상기 실행파일 그룹들 중 어느 하나의 샘플 컴파일러 정보를 이용하여 샘플 슁글(shingle) 집합을 생성하고, 상기 분류 대상 컴파일러 정보를 이용하여 분류 대상 슁글 집합을 생성하고, 상기 샘플 슁글 집합 및 상기 분류 대상 슁글 집합의 교집합의 원소 개수를 상기 샘플 슁글 집합 및 상기 분류 대상 슁글 집합의 합집합의 원소 개수로 나누어 유사도를 산출할 수 있다.In this case, the similarity calculating unit may generate a sample shingle set using one of the execution file groups, generate a shingle set to be classified using the classification target compiler information, The degree of similarity can be calculated by dividing the number of elements of the intersection of the set of shingles and the shingles of the classification object by the number of elements of the combination of the sample shingles and the shingles of the classification object.

이 때, 상기 유사도 산출부는 상기 분류 대상 컴파일러 정보를 4바이트 단위로 하나의 원소로 하여 상기 분류 대상 슁글 집합을 생성할 수 있다.In this case, the similarity calculation unit may generate the classification shingle set by using the classification target compiler information as one element in units of 4 bytes.

이 때, 상기 실행파일 분류부는 상기 유사도 값들이 기설정된 값을 초과하는지 여부에 따라 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 달리 판단할 수 있다.At this time, the executable file classifier may determine whether one of the executable file groups corresponds to whether the similarity values exceed a predetermined value.

이 때, 상기 실행파일 분류부는 상기 실행파일 그룹들 중 어느 하나인 실행파일 그룹의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값이 상기 기설정된 값을 초과하는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하는 것으로 판단하고, 상기 실행파일 그룹의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값이 상기 기설정된 값을 초과하지 않는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하지 않는 것으로 판단할 수 있다.If the similarity value between the compiler information of the executable file group and the compiler information of the compiler is greater than the preset value, the execution file classifier may execute the classification object executable file File group, and if the similarity value between the compiler information of the executable file group and the compiler information of the executable file does not exceed the predetermined value, the classification target executable file is determined as being not corresponding to the executable file group .

이 때, 상기 실행파일 분류부는 상기 분류 대상 실행파일이 상기 실행파일 그룹들 전부에 대하여 해당하지 않는 것으로 판단된 경우, 새로이 실행파일 그룹을 생성하고, 상기 분류 대상 실행파일을 새로이 생성된 상기 실행파일 그룹에 해당하는 것으로 판단할 수 있다.In this case, if it is determined that the classification target execution file does not correspond to all of the execution file groups, the execution file classification unit generates a new execution file group and stores the classification target execution file in the newly created executable file It can be judged that it corresponds to the group.

이 때, 상기 분류 대상 실행파일은 압축, 코드 변형 및 난독화된 실행파일을 포함할 수 있다.At this time, the classification target executable file may include compression, code modification, and obfuscation executable files.

또한, 본 발명에 따른 컴파일러 정보 유사도를 이용한 실행파일 분류 방법은 분류 대상 실행파일의 헤더에서 분류 대상 컴파일러 정보를 획득하는 단계; 실행파일 그룹들 각각의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값들을 산출하는 단계; 및 상기 유사도 값들을 이용하여 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 판단하여 상기 분류 대상 실행파일을 분류한다.According to another aspect of the present invention, there is provided an execution file classification method using compiler information similarity, comprising: obtaining classification target compiler information in a header of an execution object file to be classified; Calculating similarity values between the sample compiler information of each of the execution file groups and the classification target compiler information; And classifying the classification target executable file by determining whether the classification target execution file corresponds to one of the execution file groups using the similarity values.

이 때, 상기 분류 대상 실행파일의 헤더는 피이 포맷(Portable Executable Format, PE Format)의 헤더일 수 있다.In this case, the header of the classification target execution file may be a header of a Portable Executable Format (PE Format).

이 때, 상기 컴파일러 정보를 획득하는 단계는 상기 헤더의 도스 스텁(Dos Stub) 및 엔티 헤더(NT Header) 사이에 포함된 데이터로부터 상기 분류 대상 컴파일러 정보를 획득할 수 있다.In this case, the acquiring of the compiler information may acquire the compiler information from the data included between the DOS stub and the NT header of the header.

이 때, 상기 유사도 값들을 산출하는 단계는 상기 실행파일 그룹들 중 어느 하나의 샘플 컴파일러 정보를 이용하여 샘플 슁글(shingle) 집합을 생성하고, 상기 분류 대상 컴파일러 정보를 이용하여 분류 대상 슁글 집합을 생성하고, 상기 샘플 슁글 집합 및 상기 분류 대상 슁글 집합의 교집합의 원소 개수를 상기 샘플 슁글 집합 및 상기 분류 대상 슁글 집합의 합집합의 원소 개수로 나누어 유사도를 산출할 수 있다.In this case, the step of calculating the similarity values may include generating a sample shingle set using one of the executable file groups and generating a shade set to be classified using the classified compiler information And the number of elements of the intersection of the sample shingle set and the shingle set for classification is divided by the number of elements of the union of the sample shingle set and the shaking set for classification to calculate the similarity.

이 때, 상기 유사도 값들을 산출하는 단계는 상기 분류 대상 컴파일러 정보를 4바이트 단위로 하나의 원소로 하여 상기 분류 대상 슁글 집합을 생성할 수 있다.In this case, in the step of calculating the similarity values, the classification target shingle set may be generated using the classification target compiler information as one element in units of 4 bytes.

이 때, 상기 분류 대상 실행파일을 분류하는 단계는 상기 유사도 값들이 기설정된 값을 초과하는지 여부에 따라 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 달리 판단할 수 있다.In this case, the step of classifying the classification target execution file may determine whether the classification target execution file corresponds to one of the execution file groups according to whether the similarity values exceed a preset value .

이 때, 상기 분류 대상 실행파일을 분류하는 단계는 상기 실행파일 그룹들 중 어느 하나인 실행파일 그룹의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값이 상기 기설정된 값을 초과하는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하는 것으로 판단하고, 상기 실행파일 그룹의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값이 상기 기설정된 값을 초과하지 않는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하지 않는 것으로 판단할 수 있다.In this case, if the similarity value between the compiler information of the executable file group and the compiler information of the compiler is greater than the predetermined value, Judges that the executable file corresponds to the execution file group, and when the similarity value between the sample compiler information of the executable file group and the classification target compiler information does not exceed the predetermined value, It can be judged that it does not belong to the group.

이 때, 상기 분류 대상 실행파일을 분류하는 단계는 상기 분류 대상 실행파일이 상기 실행파일 그룹들 전부에 대하여 해당하지 않는 것으로 판단된 경우, 새로이 실행파일 그룹을 생성하고, 상기 분류 대상 실행파일을 새로이 생성된 상기 실행파일 그룹에 해당하는 것으로 판단할 수 있다.If it is determined that the classification target execution file does not correspond to all of the execution file groups, a step of classifying the execution target file creates a new execution file group, It can be determined that it corresponds to the created executable file group.

이 때, 상기 분류 대상 실행파일은 압축, 코드 변형 및 난독화된 실행파일을 포함할 수 있다.At this time, the classification target executable file may include compression, code modification, and obfuscation executable files.

본 발명에 따르면, 실행파일의 헤더에 포함된 컴파일러 정보를 획득하고 유사도를 산출함으로써, 실행파일의 일부 정보만 가지고도 실행파일을 분류할 수 있다.According to the present invention, by obtaining the compiler information included in the header of an executable file and calculating the degree of similarity, it is possible to classify the executable file even with only partial information of the executable file.

또한 본 발명은, 피이 포맷(Portable Executable Format, PE Format)의 헤더에 포함된 컴파일러 정보를 이용함으로써, 악성코드에 한하지 아니하는 범용적인 실행파일을 분류할 수 있다.Further, according to the present invention, by using compiler information included in the header of the Portable Executable Format (PE Format), it is possible to classify a general executable file that is not limited to malicious code.

또한 본 발명은, 실행파일의 헤더에 포함된 컴파일러 정보에 대하여만 슁글(shingle) 집합을 이용하여 유사도를 산출함으로써, 보다 신속하게 실행파일을 분류할 수 있다.Further, the present invention can classify executable files more quickly by calculating similarities using a shingle set only for the compiler information included in the header of an executable file.

또한 본 발명은, 실행파일의 헤더에 포함된 컴파일러 정보를 획득하고 유사도를 산출함으로써, 압축, 코드 변형 및 난독화된 경우라도 실행파일을 분류할 수 있다.Further, the present invention can classify an executable file even if the compiler information included in the header of the executable file is obtained and the degree of similarity is calculated, thereby compressing, modifying the code, and obfuscating.

도 1은 본 발명의 일실시예에 따른 컴파일러 정보 유사도를 이용한 실행파일 분류 장치를 나타낸 블록도이다.
도 2는 본 발명의 일실시예에 따른 컴파일러 정보 유사도를 이용한 실행파일 분류 방법을 나타낸 동작 흐름도이다.
도 3은 본 발명에 따른 분류 대상 실행파일의 헤더(300)의 일 예를 나타낸 도면이다.
도 4는 도 3에 도시된 도스 스텁 및 엔티 헤더 사이에 포함된 데이터(330)의 일 예를 나타낸 도면이다.
도 5는 도 1에 도시된 유사도 산출부(120)의 분류 대상 슁글 집합(520) 생성의 일 예를 나타낸 도면이다.
도 6은 도 1에 도시된 실행파일 분류부(130)의 실행파일 분류의 일 예를 나타낸 도면이다.
도 7은 도 1에 도시된 실행파일 분류부(130)의 악성코드를 포함한 실행파일 분류의 일 예를 나타낸 도면이다.
도 8은 도 1에 도시된 실행파일 분류부(130)의 난독화된 실행파일 분류의 일 예를 나타낸 도면이다.
도 9는 도 1에 도시된 실행파일 분류부(130)의 삭제 복구된 실행파일 분류의 일 예를 나타낸 도면이다.
1 is a block diagram showing an execution file classifying apparatus using a compiler information similarity according to an embodiment of the present invention.
2 is a flowchart illustrating an execution file classification method using a compiler information similarity according to an exemplary embodiment of the present invention.
3 is a diagram showing an example of a header 300 of an execution object file to be classified according to the present invention.
4 is a diagram showing an example of data 330 included between the DOS stub and the entity header shown in FIG.
FIG. 5 is a diagram illustrating an example of generation of a shading set 520 of a classification target of the similarity calculation unit 120 shown in FIG.
FIG. 6 is a diagram showing an example of an execution file classification of the execution file classification unit 130 shown in FIG.
7 is a diagram showing an example of an executable file classification including malicious code of the executable file classifier 130 shown in FIG.
FIG. 8 is a diagram showing an example of an obfuscated executable file classification of the executable file classifier 130 shown in FIG.
FIG. 9 is a diagram showing an example of a deleted restored executable file classification of the executable file classifier 130 shown in FIG.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.The present invention will now be described in detail with reference to the accompanying drawings. Hereinafter, a repeated description, a known function that may obscure the gist of the present invention, and a detailed description of the configuration will be omitted. Embodiments of the present invention are provided to more fully describe the present invention to those skilled in the art. Accordingly, the shapes and sizes of the elements in the drawings and the like can be exaggerated for clarity.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 컴파일러 정보 유사도를 이용한 실행파일 분류 장치를 나타낸 블록도이다.1 is a block diagram showing an execution file classifying apparatus using a compiler information similarity according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 컴파일러 정보 유사도를 이용한 실행파일 분류 장치는 컴파일러 정보 획득부(110), 유사도 산출부(120) 및 실행파일 분류부(130)를 포함한다.Referring to FIG. 1, an apparatus for classifying an executable file using a compiler information similarity according to an embodiment of the present invention includes a compiler information obtaining unit 110, a similarity calculating unit 120, and an execution file classifying unit 130.

컴파일러 정보 획득부(110)는 분류 대상 실행파일의 헤더(300)에서 분류 대상 컴파일러 정보(420)를 획득한다.The compiler information obtaining unit 110 obtains the classification target compiler information 420 from the header 300 of the classification target execution file.

이 때, 분류 대상 실행파일의 헤더(300)는 피이 포맷(Portable Executable Format, PE Format)의 헤더일 수 있다.At this time, the header 300 of the classification target execution file may be a header of a Portable Executable Format (PE Format).

이 때, 컴파일러 정보 획득부(110)는 헤더의 도스 스텁 및 엔티 헤더 사이에 포함된 데이터(330)로부터 분류 대상 컴파일러 정보(420)를 획득할 수 있다.At this time, the compiler information obtaining unit 110 may obtain the classification target compiler information 420 from the data 330 included between the DOS stub of the header and the entity header.

이 때, 분류 대상 실행파일은 압축, 코드 변형 및 난독화된 실행파일을 포함할 수 있다.At this time, the classified target executable file may include compression, code variant, and obfuscated executable file.

유사도 산출부(120)는 실행파일 그룹들 각각의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값들을 산출한다.The similarity calculation unit 120 calculates the similarity values between the sample compiler information of each of the execution file groups and the classification target compiler information 420.

이 때, 유사도 산출부(120)는 상기 실행파일 그룹들 중 어느 하나의 샘플 컴파일러 정보를 이용하여 샘플 슁글(Shingle) 집합을 생성하고, 분류 대상 컴파일러 정보(420)를 이용하여 분류 대상 슁글 집합(520)을 생성하고, 상기 샘플 슁글 집합 및 분류 대상 슁글 집합(520)의 교집합의 원소 개수를 상기 샘플 슁글 집합 및 분류 대상 슁글 집합(520)의 합집합의 원소 개수로 나누어 유사도를 산출할 수 있다.At this time, the similarity calculating unit 120 generates a sample shingle set using one of the execution file groups, and generates a sample shingle set using the classification target compiler information 420 The similarity degree may be calculated by dividing the number of elements of the sample shingle set and the number of elements of the intersection of the classification shingle set 520 by the number of elements of the union of the sample shingle set and the classification target shingle set 520.

예를 들어, 유사도 산출부(120)는 분류 대상 컴파일러 정보(420)를 이용하여 S(A)={0x006DC627, 0x00010000, 0x00132359, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}인 분류 대상 슁글 집합(520)을 생성할 수 있다.For example, the similarity calculation unit 120 calculates the similarity degree of the classification target shingle set 520 having S (A) = {0x006DC627, 0x00010000, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627} using the classification target compiler information 420 Can be generated.

예를 들어, 유사도 산출부(120)는 상기 실행파일 그룹들 중 어느 하나의 샘플 컴파일러 정보를 이용하여 S(B)={0x006DC627, 0x00010000, 0x00010809, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}인 상기 샘플 슁글 집합을 생성할 수 있다.For example, the similarity calculation unit 120 may calculate the similarity degree S (B) using the sample compiler information S (B) = {0x006DC627, 0x00010000, 0x00010809, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627} You can create a set.

이 경우, 유사도 산출부(120)는 상기 샘플 슁글 집합 및 분류 대상 슁글 집합(520)의 교집합인 S(A)∩S(B)= {0x006DC627, 0x00010000, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}의 원소 개수인 6을, 상기 샘플 슁글 집합 및 분류 대상 슁글 집합(520)의 합집합인 S(A)∪S(B)= {0x006DC627, 0x00010000, 0x00132359, 0x00010809, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}의 원소 개수인 8로 나눈 값인 0.75를 유사도로 산출할 수 있다.In this case, the similarity calculating unit 120 calculates the degree of similarity S (A) ∩S (B) = {0x006DC627, 0x00010000, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}, which is the intersection of the sample shingle set and the classification target shingle set 520 S (A) ∪S (B) = {0x006DC627, 0x00010000, 0x00132359, 0x00010809, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}, which is the union of the sample shingle set and the classification target shingle set 520 The value of 0.75, divided by 8, can be calculated as the degree of similarity.

이 때, 유사도 산출부(120)는 분류 대상 컴파일러 정보(420)를 4바이트 단위로 하나의 원소로 하여 분류 대상 슁글 집합(520)을 생성할 수 있다.At this time, the similarity calculation unit 120 can generate the classification shingle set 520 using the classification target compiler information 420 as one element in 4-byte units.

예를 들어, 유사도 산출부(120)는 분류 대상 컴파일러 정보(420)가 0x006DC627 0x00010000 0x00132359 0x00837809 0x0001C627 0x007CC627 0x0078C627 와 같이 총 28바이트인 경우, 분류 대상 컴파일러 정보(420)를 4바이트 단위로, 0x006DC627를 첫 번째 원소, 0x00010000를 두 번째 원소, 0x00132359를 세 번째 원소, 0x00837809를 네 번째 원소, 0x0001C627를 다섯 번째 원소, 0x007CC627를 여섯 번째 원소, 0x0078C627를 일곱 번째 원소로 하여 분류 대상 슁글 집합(520)을 생성할 수 있다.For example, when the classification target compiler information 420 is 28 bytes in total, such as 0x006DC627 0x00010000 0x00132359 0x00837809 0x0001C627 0x007CC627 0x0078C627, the classification target compiler information 420 is divided into units of 4 bytes, 0x006DC627 is set as the first A shading set 520 to be classified is generated with 0x00010000 as the second element, 0x00132359 as the third element, 0x00837809 as the fourth element, 0x0001C627 as the fifth element, 0x007CC627 as the sixth element, and 0x0078C627 as the seventh element .

이 경우, 유사도 산출부(120)는 S(A)={0x006DC627, 0x00010000, 0x00132359, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}와 같이, 원소 개수가 7인 분류 대상 슁글 집합(520)을 생성할 수 있다.In this case, the similarity calculating unit 120 may generate a classification target shingle set 520 having an element number of 7, such as S (A) = {0x006DC627, 0x00010000, 0x00132359, 0x00837809, 0x001CC627, 0x007CC627, 0x0078C627} .

실행파일 분류부(130)는 상기 유사도 값들을 이용하여 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 판단하여 상기 분류 대상 실행파일을 분류한다.The execution file classifier 130 classifies the classification target execution file by determining whether the classification target execution file corresponds to one of the execution file groups using the similarity values.

이 때, 실행파일 분류부(130)는 상기 유사도 값들이 기설정된 값을 초과하는지 여부에 따라 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 달리 판단할 수 있다.At this time, the execution file classifier 130 may determine whether the classification target execution file corresponds to one of the execution file groups according to whether the similarity values exceed predetermined values.

이 때, 실행파일 분류부(130)는 상기 실행파일 그룹들 중 어느 하나인 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하는 것으로 판단하고, 상기 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하지 않는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하지 않는 것으로 판단할 수 있다.In this case, when the similarity value between the compiler information of the executable file group and the compiler information 420 of the execution object group which is one of the executable file groups exceeds the preset value, Judges that the executable file corresponds to the executable file group, and when the similarity value between the compiler information of the executable file group and the compiler information 420 of the executable file group does not exceed the preset value, It can be judged that it does not correspond to the executable file group.

이 때, 실행파일 분류부(130)는 상기 분류 대상 실행파일이 상기 실행파일 그룹들 전부에 대하여 해당하지 않는 것으로 판단된 경우, 새로이 실행파일 그룹을 생성하고, 상기 분류 대상 실행파일을 새로이 생성된 상기 실행파일 그룹에 해당하는 것으로 판단할 수 있다.
At this time, if it is determined that the classification target execution file does not correspond to all of the execution file groups, the execution file classification unit 130 generates a new execution file group, and creates the classification target execution file as a newly generated It can be determined that the file corresponds to the executable file group.

도 2는 본 발명의 일실시예에 따른 컴파일러 정보 유사도를 이용한 실행파일 분류 방법을 나타낸 동작 흐름도이다.2 is a flowchart illustrating an execution file classification method using a compiler information similarity according to an exemplary embodiment of the present invention.

도 2를 참조하면, 본 발명의 일실시예에 따른 컴파일러 정보 유사도를 이용한 실행파일 분류 방법은 분류 대상 실행파일의 헤더(300)에서 분류 대상 컴파일러 정보(420)를 획득한다(S210).Referring to FIG. 2, an execution file classification method using a compiler information similarity according to an embodiment of the present invention acquires classification target compiler information 420 from a header 300 of a classification target execution file (S210).

이 때, 분류 대상 실행파일의 헤더(300)는 피이 포맷(Portable Executable Format, PE Format)의 헤더일 수 있다.At this time, the header 300 of the classification target execution file may be a header of a Portable Executable Format (PE Format).

이 때, 단계(S210)는 헤더의 도스 스텁 및 엔티 헤더 사이에 포함된 데이터(330)로부터 분류 대상 컴파일러 정보(420)를 획득할 수 있다.At this time, the step S210 may obtain the classification target compiler information 420 from the data 330 included between the DOS stub of the header and the entity header.

이 때, 분류 대상 실행파일은 압축, 코드 변형 및 난독화된 실행파일을 포함할 수 있다.At this time, the classified target executable file may include compression, code variant, and obfuscated executable file.

또한, 본 발명의 일실시예에 따른 컴파일러 정보 유사도를 이용한 실행파일 분류 방법은 는 상기 유사도 값들을 이용하여 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 판단하여 상기 분류 대상 실행파일을 분류한다(S220).According to another aspect of the present invention, there is provided an execution file classification method using compiler information similarity, comprising: determining whether the classification target execution file corresponds to one of the execution file groups using the similarity values; The target executable file is classified (S220).

이 때, 단계(S220)는 상기 실행파일 그룹들 중 어느 하나의 샘플 컴파일러 정보를 이용하여 샘플 슁글(Shingle) 집합을 생성하고, 분류 대상 컴파일러 정보(420)를 이용하여 분류 대상 슁글 집합(520)을 생성하고, 상기 샘플 슁글 집합 및 분류 대상 슁글 집합(520)의 교집합의 원소 개수를 상기 샘플 슁글 집합 및 분류 대상 슁글 집합(520)의 합집합의 원소 개수로 나누어 유사도를 산출할 수 있다.At this time, in step S220, a sample shingle set is generated using any one of the sample compiler information of the execution file groups, and the shingle set 520 is classified into the classification target shingle set 520 using the classification target compiler information 420, And the similarity can be calculated by dividing the number of elements of the intersection of the sample shingle set and the classification shingle set 520 by the number of elements of the union of the sample shingle set and the classification target shingle set 520. [

예를 들어, 단계(S220)는 분류 대상 컴파일러 정보(420)를 이용하여 S(A)={0x006DC627, 0x00010000, 0x00132359, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}인 분류 대상 슁글 집합(520)을 생성할 수 있다.For example, in step S220, a classification target shingle set 520 having S (A) = {0x006DC627, 0x00010000, 0x00132359, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627} is generated using the classification target compiler information 420 .

예를 들어, 단계(S220)는 상기 실행파일 그룹들 중 어느 하나의 샘플 컴파일러 정보를 이용하여 S(B)={0x006DC627, 0x00010000, 0x00010809, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}인 상기 샘플 슁글 집합을 생성할 수 있다.For example, in step S220, the sample shingle set S (B) = {0x006DC627, 0x00010000, 0x00010809, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627} is calculated using any one of the sample file compiler information Can be generated.

이 경우, 단계(S220)는 상기 샘플 슁글 집합 및 분류 대상 슁글 집합(520)의 교집합인 S(A)∩S(B)= {0x006DC627, 0x00010000, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}의 원소 개수인 6을, 상기 샘플 슁글 집합 및 분류 대상 슁글 집합(520)의 합집합인 S(A)∪S(B)= {0x006DC627, 0x00010000, 0x00132359, 0x00010809, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}의 원소 개수인 8로 나눈 값인 0.75를 유사도로 산출할 수 있다.In this case, in step S220, the number of elements of S (A) ∩S (B) = {0x006DC627, 0x00010000, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627} which is an intersection of the sample shingle set and the classification target shingle set 520 6, which is the number of elements of S (A) ∪S (B) = {0x006DC627, 0x00010000, 0x00132359, 0x00010809, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627} which is the union of the sample shingle set and the classification target shingle set 520 Can be calculated as the degree of similarity.

이 때, 단계(S220)는 분류 대상 컴파일러 정보(420)를 4바이트 단위로 하나의 원소로 하여 분류 대상 슁글 집합(520)을 생성할 수 있다.At this time, the step S220 may generate the classification shingle set 520 using the classification target compiler information 420 as one element in 4-byte units.

예를 들어, 단계(S220)는 분류 대상 컴파일러 정보(420)가 0x006DC627 0x00010000 0x00132359 0x00837809 0x0001C627 0x007CC627 0x0078C627 와 같이 총 28바이트인 경우, 분류 대상 컴파일러 정보(420)를 4바이트 단위로, 0x006DC627를 첫 번째 원소, 0x00010000를 두 번째 원소, 0x00132359를 세 번째 원소, 0x00837809를 네 번째 원소, 0x0001C627를 다섯 번째 원소, 0x007CC627를 여섯 번째 원소, 0x0078C627를 일곱 번째 원소로 하여 분류 대상 슁글 집합(520)을 생성할 수 있다.For example, in step S220, if the classification target compiler information 420 is a total of 28 bytes, such as 0x006DC627 0x00010000 0x00132359 0x00837809 0x0001C627 0x007CC627 0x0078C627, the compiler information 420 is divided into four bytes, 0x006DC627 is allocated to the first element , The shading set 520 to be sorted can be generated by setting 0x00010000 as the second element, 0x00132359 as the third element, 0x00837809 as the fourth element, 0x0001C627 as the fifth element, 0x007CC627 as the sixth element, and 0x0078C627 as the seventh element .

이 경우, 단계(S220)는 S(A)={0x006DC627, 0x00010000, 0x00132359, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}와 같이, 원소 개수가 7인 분류 대상 슁글 집합(520)을 생성할 수 있다.In this case, the step S220 can generate the classification target shingle set 520 having the number of elements of 7, such as S (A) = {0x006DC627, 0x00010000, 0x00132359, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}.

또한, 본 발명의 일실시예에 따른 컴파일러 정보 유사도를 이용한 실행파일 분류 방법은 실행파일 그룹들 각각의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값들을 산출한다(S230).
In addition, the execution file classification method using the compiler information similarity according to an embodiment of the present invention calculates the similarity values between the sample compiler information of each of the execution file groups and the classification target compiler information 420 (S230).

도 3은 본 발명에 따른 분류 대상 실행파일의 헤더(300)의 일 예를 나타낸 도면이다.3 is a diagram showing an example of a header 300 of an execution object file to be classified according to the present invention.

도 3을 참조하면, 본 발명에 따른 분류 대상 실행파일의 헤더(300)의 일 예는 도스 헤더(310), 도스 스텁(320), 엔티 헤더(340) 및 도스 스텁 및 엔티 헤더 사이에 포함된 데이터(330)를 포함한다.3, an example of a header 300 of a classification object executable file according to the present invention includes a DOS header 310, a DOS stub 320, an entity header 340, Data 330. < / RTI >

이 때, 분류 대상 실행파일의 헤더(300)는 피이 포맷(Portable Executable Format, PE Format)의 헤더일 수 있다.At this time, the header 300 of the classification target execution file may be a header of a Portable Executable Format (PE Format).

이 때, 유사도 산출부(120)는 헤더의 도스 스텁 및 엔티 헤더 사이에 포함된 데이터(330)로부터 분류 대상 컴파일러 정보(420)를 획득할 수 있다.
At this time, the similarity calculating unit 120 can obtain the classification target compiler information 420 from the data 330 included between the DOS stub of the header and the entity header.

도 4는 도 3에 도시된 도스 스텁 및 엔티 헤더 사이에 포함된 데이터(330)의 일 예를 나타낸 도면이다.4 is a diagram showing an example of data 330 included between the DOS stub and the entity header shown in FIG.

도 4를 참조하면, 도 3에 도시된 도스 스텁 및 엔티 헤더 사이에 포함된 데이터(330)는 영역의 시작(410), 라이브러리 정보(420 및 430) 및 영역의 끝(440)을 포함한다.Referring to FIG. 4, data 330 included between the DOS stub and entity header shown in FIG. 3 includes the beginning 410 of the area, library information 420 and 430, and the end 440 of the area.

라이브러리 정보(420 및 430)는 분류 대상 컴파일러 정보(420) 및 참조 횟수(430)를 포함한다.The library information 420 and 430 includes classification target compiler information 420 and a reference count 430. [

분류 대상 컴파일러 정보(420)는 제1 컴파일러 정보(421), 제2 컴파일러 정보(422), 제n 컴파일러 정보(429) 등 n개의 컴파일러 정보들을 포함할 수 있다.The classification target compiler information 420 may include n compiler information such as the first compiler information 421, the second compiler information 422, and the nth compiler information 429.

참조 횟수(430)는 제1 참조 횟수(431), 제2 참조 횟수(432), 제n 참조횟수(439) 등 n개의 참조 횟수들을 포함할 수 있다.The reference count 430 may include n reference counts such as a first reference count 431, a second reference count 432, and an n-th reference count 439.

이 때, 영역의 시작(410), 라이브러리 정보(420 및 430) 및 영역의 끝(440)은 8바이트 단위로, 분류 대상 컴파일러 정보(420) 및 참조 횟수(430)는 4바이트 단위로 구성될 수 있다.At this time, the start 410 of the area, the library information 420 and 430, and the end 440 of the area are arranged in units of 8 bytes, and the classification target compiler information 420 and the reference number 430 are configured in units of 4 bytes .

이 때, 영역의 시작(410), 분류 대상 컴파일러 정보(420) 및 참조 횟수(430)는 인코딩되어 있고, 유사도 산출부(120)는 영역의 끝(440)의 8바이트 중 하위 4바이트를 이용하여 영역의 시작(410), 분류 대상 컴파일러 정보(420) 및 참조 횟수(430)에 대하여 XOR(Exclusive or)하는 방법으로 디코딩할 수 있다.
At this time, the start 410 of the area, the classification target compiler information 420 and the reference count 430 are encoded, and the similarity calculation unit 120 uses the lower 4 bytes of the 8 bytes of the end 440 of the area (Exclusive OR) with respect to the beginning 410 of the area, the compiler information 420 of the classification object, and the reference number 430 of the area.

도 5는 도 1에 도시된 유사도 산출부(120)의 분류 대상 슁글 집합(520) 생성의 일 예를 나타낸 도면이다.FIG. 5 is a diagram illustrating an example of generation of a shading set 520 of a classification target of the similarity calculation unit 120 shown in FIG.

도 5를 참조하면, 도 1에 도시된 유사도 산출부(120)의 분류 대상 슁글 집합(520) 생성은 분류 대상 컴파일러 정보(420)를 이용한다.Referring to FIG. 5, the classification target shingle set 520 of the similarity degree calculation unit 120 shown in FIG. 1 uses classification target compiler information 420.

이 때, 유사도 산출부(120)는 제1 컴파일러 정보(421)를 첫번째 원소로, 제2 컴파일러 정보(422)를 두번째 원소로, 제3 컴파일러 정보(423)를 세번째 원소로, 제n 컴파일러 정보(429)를 n번째 원소로 하여 분류 대상 슁글 집합(520)을 생성할 수 있다.At this time, the degree of similarity calculating unit 120 calculates the degree of similarity using the first compiler information 421 as the first element, the second compiler information 422 as the second element, the third compiler information 423 as the third element, The set shading set 520 may be generated with the nth element 429 as the n-th element.

예를 들어, 유사도 산출부(120)는 분류 대상 컴파일러 정보(420)가 0x006DC627 0x00010000 0x00132359 0x00837809 0x0001C627 0x007CC627 0x0078C627 와 같이 총 28바이트인 경우, 분류 대상 컴파일러 정보(420)를 4바이트 단위로, 0x006DC627를 첫번째 원소, 0x00010000를 두번째 원소, 0x00132359를 세번째 원소, 0x00837809를 네번째 원소, 0x0001C627를 다섯번째 원소, 0x007CC627를 여섯번째 원소, 0x0078C627를 일곱번째 원소로 하여 분류 대상 슁글 집합(520)을 생성할 수 있다.For example, if the compiler information 420 is a total of 28 bytes, such as 0x006DC627 0x00010000 0x00132359 0x00837809 0x0001C627 0x00837809 0x0001C627 0x007CC627 0x0078C627, the classification target compiler information 420 is divided into 4 bytes, 0x006DC627 The shading set 520 to be sorted can be generated by using 0x00010000 as the second element, 0x00132359 as the third element, 0x00837809 as the fourth element, 0x0001C627 as the fifth element, 0x007CC627 as the sixth element, and 0x0078C627 as the seventh element.

이 경우, 유사도 산출부(120)는 S(A)={0x006DC627, 0x00010000, 0x00132359, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}와 같이, 원소 개수가 7인 분류 대상 슁글 집합(520)을 생성할 수 있다.
In this case, the similarity calculating unit 120 may generate a classification target shingle set 520 having an element number of 7, such as S (A) = {0x006DC627, 0x00010000, 0x00132359, 0x00837809, 0x001CC627, 0x007CC627, 0x0078C627} .

도 6은 도 1에 도시된 실행파일 분류부(130)의 실행파일 분류의 일 예를 나타낸 도면이다.FIG. 6 is a diagram showing an example of an execution file classification of the execution file classification unit 130 shown in FIG.

도 6을 참조하면, 도 1에 도시된 실행파일 분류부(130)의 실행파일 분류는 상기 분류 대상 실행파일인 Sample1, Sample2 및 Sample3 각각에 대하여 상기 실행파일 그룹인 Duqu, Hwp 및 PowerPoint 중 어느 하나에 해당하는지 여부를 판단한다.Referring to FIG. 6, the executable file classification of the executable file classifier 130 shown in FIG. 1 is configured such that any one of the executable file groups Duqu, Hwp, and PowerPoint for each of the classification target execution files Sample1, Sample2, Or not.

여기서, 항목 필드에 도시된 상기 Sample1, 상기 Sample2 및 상기 Sample3는 상기 분류 대상 실행파일이고, 필드 제목 줄에 도시된 상기 Duqu, 상기 Hwp 및 상기 PowerPoint는 상기 실행파일 그룹이다.Here, Sample1, Sample2, and Sample3 shown in the item field are the classification target execution file, and Duqu, Hwp, and PowerPoint shown in the field subject line are the execution file group.

예를 들어, Duqu는 악성코드를 포함한 실행파일 그룹이고, Hwp 및 PowerPoint는 상용문서작성프로그램의 실행파일 그룹일 수 있다.For example, Duqu is a group of executable files containing malicious code, and Hwp and PowerPoint can be executable file groups of commercial document creation programs.

이 때, 실행파일 분류부(130)는 유사도 산출부(120)에서 산출된 유사도 값들이 기설정된 값을 초과하는지 여부에 따라 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 달리 판단할 수 있다.At this time, the execution file classifying unit 130 determines whether the classification target execution file corresponds to one of the execution file groups according to whether or not the similarity values calculated by the similarity calculating unit 120 exceed a preset value Can be judged differently.

예를 들어, 실행파일 분류부(130)는 상기 유사도 값들이 0.9를 초과하는지 여부에 따라 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 달리 판단할 수 있다.For example, the execution file classifier 130 may determine whether the classification target execution file corresponds to one of the execution file groups according to whether the similarity values exceed 0.9.

이 때, 실행파일 분류부(130)는 상기 실행파일 그룹들 중 어느 하나인 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하는 것으로 판단하고, 상기 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하지 않는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하지 않는 것으로 판단할 수 있다.In this case, when the similarity value between the compiler information of the executable file group and the compiler information 420 of the execution object group which is one of the executable file groups exceeds the preset value, Judges that the executable file corresponds to the executable file group, and when the similarity value between the compiler information of the executable file group and the compiler information 420 of the executable file group does not exceed the preset value, It can be judged that it does not correspond to the executable file group.

예를 들어, 실행파일 분류부(130)는 상기 Duqu 및 상기 Sample1의 유사도 값이 0.9를 초과하는 경우 상기 Sample1을 상기 Duqu에 해당하는 것으로 판단할 수 있다.For example, the executable file classifier 130 may determine that Sample1 corresponds to the Duqu when the similarity value between Duqu and Sample1 exceeds 0.9.

예를 들어, 실행파일 분류부(130)는 상기 Hwp 및 상기 Sample2의 유사도 값이 0.9를 초과하는 경우 상기 Sample2을 상기 Hwp에 해당하는 것으로 판단할 수 있다.For example, the execution file classifier 130 may determine that Sample2 corresponds to the Hwp when the similarity value between Hwp and Sample2 exceeds 0.9.

예를 들어, 실행파일 분류부(130)는 상기 PowerPoint 및 상기 Sample3의 유사도 값이 0.9을 초과하지 않는 경우 상기 Sample3을 상기 PowerPoint에 해당하지 않는 것으로 판단할 수 있다.For example, if the similarity value between the PowerPoint and the Sample 3 does not exceed 0.9, the execution file classifier 130 may determine that the Sample 3 does not correspond to the PowerPoint.

도 6에는 도시되지 아니하였으나, 실행파일 분류부(130)는 상기 분류 대상 실행파일이 상기 실행파일 그룹들 전부에 대하여 해당하지 않는 것으로 판단된 경우, 새로이 실행파일 그룹을 생성하고, 상기 분류 대상 실행파일을 새로이 생성된 상기 실행파일 그룹에 해당하는 것으로 판단할 수 있다.Although not shown in FIG. 6, when it is determined that the classification target execution file does not correspond to all of the execution file groups, an execution file classification unit 130 newly generates an execution file group, It can be determined that the file corresponds to the newly created executable file group.

예를 들어, 실행파일 분류부(130)는 상기 Sample3가 상기 Duqu, 상기 Hwp 및 상기 PowerPoint 전부에 대하여 해당하지 않는 것으로 판단된 경우, 새로이 실행파일 그룹을 생성하고, 상기 Sample3을 새로이 생성된 상기 실행파일 그룹에 해당하는 것으로 판단할 수 있다.
For example, when it is determined that the Sample 3 does not correspond to all of the Duqu, Hwp, and PowerPoint, the executable file classifier 130 generates a new executable file group, and updates the Sample 3 to the newly created executable file It can be determined to correspond to the file group.

도 7은 도 1에 도시된 실행파일 분류부(130)의 악성코드를 포함한 실행파일 분류의 일 예를 나타낸 도면이다.7 is a diagram showing an example of an executable file classification including malicious code of the executable file classifier 130 shown in FIG.

도 7을 참조하면, 도 1에 도시된 실행파일 분류부(130)의 악성코드를 포함한 실행파일 분류는 상기 분류 대상 실행파일인 항목들에 대하여 악성코드를 포함한 실행파일 그룹인 Duqu에 해당하는지 여부를 판단한다.Referring to FIG. 7, the executable file classification including the malicious code of the executable file classifier 130 shown in FIG. 1 indicates whether or not the items as the classified executable file correspond to the executable file group Duqu including the malicious code .

여기서, 항목 필드에 도시된 제1 항목의 1e17d81979271cfa44d471430fe123a5는 제1 항목의 실행파일 해쉬(hash)결과이다.Here, 1e17d81979271cfa44d471430fe123a5 of the first item shown in the item field is the executable file hash result of the first item.

이 때, 실행파일 분류부(130)는 유사도 산출부(120)에서 산출된 유사도 값들이 기설정된 값을 초과하는지 여부에 따라 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 달리 판단할 수 있다.At this time, the execution file classifying unit 130 determines whether the classification target execution file corresponds to one of the execution file groups according to whether or not the similarity values calculated by the similarity calculating unit 120 exceed a preset value Can be judged differently.

이 때, 상기 기설정된 값은 악성 코드의 변형 사용을 대비하여 단순히 실행파일을 분류하는 경우보다 낮게 설정된 것일 수 있다.In this case, the predetermined value may be set lower than the case of simply classifying the executable file in preparation for the use of the malicious code.

예를 들어, 실행파일 분류부(130)는 상기 유사도 값들이 0.8를 초과하는지 여부에 따라 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 달리 판단할 수 있다.For example, the execution file classifier 130 may determine whether the classification target execution file corresponds to one of the execution file groups according to whether the similarity values exceed 0.8.

이 때, 실행파일 분류부(130)는 상기 실행파일 그룹들 중 어느 하나인 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하는 것으로 판단하고, 상기 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하지 않는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하지 않는 것으로 판단할 수 있다.In this case, when the similarity value between the compiler information of the executable file group and the compiler information 420 of the execution object group which is one of the executable file groups exceeds the preset value, Judges that the executable file corresponds to the executable file group, and when the similarity value between the compiler information of the executable file group and the compiler information 420 of the executable file group does not exceed the preset value, It can be judged that it does not correspond to the executable file group.

예를 들어, 실행파일 분류부(130)는 상기 Duqu 및 상기 제1 항목의 유사도 값이 0.8을 초과하는 경우 상기 제1 항목을 상기 Duqu에 해당하는 것으로 판단할 수 있다.For example, the execution file classifier 130 may determine that the first item corresponds to the Duqu when the similarity value of Duqu and the first item exceeds 0.8.

예를 들어, 실행파일 분류부(130)는 상기 Duqu 및 제2 항목의 유사도 값이 0.9을 초과하지 않는 경우 상기 제2 항목을 상기 Duqu에 해당하지 않는 것으로 판단할 수 있다.For example, the executable file classifier 130 may determine that the second item does not correspond to the Duqu when the similarity value of the Duqu and the second item does not exceed 0.9.

이 때, 실행파일 분류부(130)는 분류 대상 실행파일의 헤더(300)에 분류 대상 컴파일러 정보(420)가 없는 경우, 유사도 산출 및 실행파일 분류를 수행하지 않을 수 있다.At this time, the execution file classification unit 130 may not perform the similarity degree calculation and the execution file classification when the classification target compiler information 420 does not exist in the header 300 of the classification target execution file.

예를 들어, 실행파일 분류부(130)는 제5 항목에 해당하는 실행파일의 헤더에 분류 대상 컴파일러 정보(420)가 없는 경우, 유사도 산출 및 실행파일 분류를 수행하지 않을 수 있다.
For example, if there is no classification target compiler information 420 in the header of the executable file corresponding to the fifth item, the execution file classifier 130 may not perform the similarity calculation and the execution file classification.

도 8은 도 1에 도시된 실행파일 분류부(130)의 난독화된 실행파일 분류의 일 예를 나타낸 도면이다.FIG. 8 is a diagram showing an example of an obfuscated executable file classification of the executable file classifier 130 shown in FIG.

도 8을 참조하면, 도 1에 도시된 실행파일 분류부(130)의 난독화된 실행파일 분류는 상기 분류 대상 실행파일인 calc.exe 및 상기 calc.exe에 대하여 난독화를 수행한 항목들에 대하여 상기 calc.exe을 이용하여 생성된 실행파일 그룹인 Calc에 해당하는지 여부를 판단한다.Referring to FIG. 8, the obfuscated executable file classification of the executable file classifier 130 shown in FIG. 1 includes the executable file calc.exe and the items obfuscated with respect to the calc.exe It is judged whether or not it corresponds to the executable file group Calc created using the calc.exe.

여기서, 항목 필드에 도시된 제1 항목의 calc.exe 등은 실행파일 이름이고, 필드 제목 줄에 도시된 상기 Calc는 상기 실행파일 그룹이다.Here, calc.exe of the first item shown in the item field is an executable file name, and Calc shown in the field title line is the executable file group.

예를 들어, 제1 항목의 calc.exe는 윈도우즈 OS에 포함되어있는 계산기 프로그램의 실행파일이다.For example, the first item, calc.exe, is an executable file of a calculator program included in the Windows OS.

예를 들어, 제2 항목의 calc_the1.exe 및 제3 항목의 calc_the2.exe는 상기 calc.exe에 난독화 상용프로그램인 더미다(Themida)를 이용하여 각각 다른 조건으로 생성된 난독화된 실행파일이다.For example, calc_the1.exe of the second item and calc_the2.exe of the third item are obfuscated executable files created under different conditions using the above-mentioned obfuscated commercial program Themida .

예를 들어, 제4 항목의 calc_wm1.exe 및 제5 항목의 calc_wm2.exe는 상기 calc.exe에 난독화 상용프로그램인 VMprotect를 이용하여 각각 다른 조건으로 생성된 난독화된 실행파일이다.For example, calc_wm1.exe in the fourth item and calc_wm2.exe in the fifth item are obfuscated executable files created under different conditions using the above-mentioned obfuscation commercial program, VMprotect, in calc.exe.

이 때, 실행파일 분류부(130)는 유사도 산출부(120)에서 산출된 유사도 값들이 기설정된 값을 초과하는 경우 상기 실행파일 그룹에 해당하는 것으로 판단할 수 있다.At this time, the execution file classifying unit 130 can determine that the similarity value calculated by the similarity calculating unit 120 corresponds to the executable file group if the similarity values are greater than a predetermined value.

예를 들어, 실행파일 분류부(130)는 상기 유사도 값들이 0.9를 초과하는 경우 상기 실행파일 그룹에 해당하는 것으로 판단할 수 있다.For example, the executable file classifier 130 may determine that the executable file group corresponds to the executable file group if the similarity values exceed 0.9.

예를 들어, 실행파일 분류부(130)는 상기 Calc에 대한 상기 제1 항목 내지 상기 제5 항목의 유사도 값이 1로써 0.9을 초과하는 경우 상기 제1 항목 내지 상기 제5 항목 전부를 상기 Calc에 해당하는 것으로 판단할 수 있다.For example, when the similarity value of the first item to the fifth item with respect to the Calc is equal to 1 and exceeds 0.9, the execution file classifier 130 classifies all of the first item to the fifth item into the Calc It can be judged to be applicable.

이와 같이, 실행파일 분류부(130)는 난독화된 경우라도 실행파일을 분류할 수 있다.In this manner, the executable file classifier 130 can classify the executable file even when obfuscated.

도 8에는 도시되지 아니하였으나, 실행파일 분류부(130)는 압축 및 코드 변형된 경우라도 실행파일을 분류할 수 있다.
Although not shown in FIG. 8, the executable file classifier 130 can classify executable files even when they are compressed and code-deformed.

도 9는 도 1에 도시된 실행파일 분류부(130)의 삭제 복구된 실행파일 분류의 일 예를 나타낸 도면이다.FIG. 9 is a diagram showing an example of a deleted restored executable file classification of the executable file classifier 130 shown in FIG.

도 9를 참조하면, 도 1에 도시된 실행파일 분류부(130)의 삭제 복구된 실행파일 분류는 상기 분류 대상 실행파일인 삭제 복구된 항목들에 대하여 상기 실행파일 그룹인 Duqu, Hwp 및 PowerPoint 중 어느 하나에 해당하는지 여부를 판단한다.Referring to FIG. 9, the deletion restored executable file classification of the executable file classifier 130 shown in FIG. 1 includes the executable file groups Duqu, Hwp, and PowerPoint It is judged whether it corresponds to either one.

여기서, 항목 필드에 도시된 제1 항목의 _9133300044307480166_$RQWNO0K.dll은 제1 항목의 삭제 복구된 실행파일 이름이고, 필드 제목 줄에 도시된 Duqu, 상기 Hwp 및 상기 PowerPoint는 상기 실행파일 그룹이다.Here, the first item '9133300044307480166_ $ RQWNO0K.dll' shown in the item field is the deletion restored executable file name of the first item, Duqu, Hwp and PowerPoint shown in the field subject line are the executable file group.

예를 들어, Duqu는 악성코드를 포함한 실행파일 그룹이고, Hwp 및 PowerPoint는 상용문서작성프로그램의 실행파일 그룹일 수 있다.For example, Duqu is a group of executable files containing malicious code, and Hwp and PowerPoint can be executable file groups of commercial document creation programs.

이 때, 실행파일 분류부(130)는 유사도 산출부(120)에서 산출된 유사도 값들이 기설정된 값을 초과하는지 여부에 따라 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 달리 판단할 수 있다.At this time, the execution file classifying unit 130 determines whether the classification target execution file corresponds to one of the execution file groups according to whether or not the similarity values calculated by the similarity calculating unit 120 exceed a preset value Can be judged differently.

예를 들어, 실행파일 분류부(130)는 상기 유사도 값들이 0.9를 초과하는지 여부에 따라 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 달리 판단할 수 있다.For example, the execution file classifier 130 may determine whether the classification target execution file corresponds to one of the execution file groups according to whether the similarity values exceed 0.9.

이 때, 실행파일 분류부(130)는 상기 실행파일 그룹들 중 어느 하나인 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하는 것으로 판단하고, 상기 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하지 않는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하지 않는 것으로 판단할 수 있다.In this case, when the similarity value between the compiler information of the executable file group and the compiler information 420 of the execution object group which is one of the executable file groups exceeds the preset value, Judges that the executable file corresponds to the executable file group, and when the similarity value between the compiler information of the executable file group and the compiler information 420 of the executable file group does not exceed the preset value, It can be judged that it does not correspond to the executable file group.

예를 들어, 실행파일 분류부(130)는 상기 Hwp 및 상기 제1 항목의 유사도 값이 0.9를 초과하지 않는 경우 상기 제1 항목을 상기 Hwp에 해당하지 않는 것으로 판단할 수 있다.For example, the execution file classifier 130 may determine that the first item does not correspond to the Hwp if the similarity value of Hwp and the first item does not exceed 0.9.

예를 들어, 실행파일 분류부(130)는 상기 Hwp 및 제4 항목의 유사도 값이 0.9를 초과하는 경우 상기 제4 항목을 상기 Hwp에 해당하는 것으로 판단할 수 있다.For example, the execution file classifier 130 may determine that the fourth item corresponds to the Hwp when the similarity value of the Hwp and the fourth item exceeds 0.9.

이 때, 실행파일 분류부(130)는 분류 대상 실행파일의 헤더(300)가 피이 포맷(Portable Executable Format, PE Format)이 아닌 경우, 유사도 산출 및 실행파일 분류를 수행하지 않을 수 있다.At this time, if the header 300 of the classification target execution file is not a Portable Executable Format (PE Format), the execution file classification unit 130 may not perform the similarity degree calculation and the execution file classification.

예를 들어, 실행파일 분류부(130)는 제2 항목에 해당하는 실행파일의 헤더가 피이 포맷(Portable Executable Format, PE Format)이 아닌 경우, 유사도 산출 및 실행파일 분류를 수행하지 않을 수 있다.
For example, when the header of the executable file corresponding to the second item is not the Portable Executable Format (PE Format), the execution file classifier 130 may not perform the similarity calculation and the execution file classification.

이상에서와 같이 본 발명에 따른 컴파일러 정보 유사도를 이용한 실행파일 분류 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the apparatus and method for classifying executable files using the compiler information similarity according to the present invention are not limited to the configurations and methods of the embodiments described above, but the embodiments can be variously modified All or some of the embodiments may be selectively combined.

110: 컴파일러 정보 획득부
120: 유사도 산출부
130: 실행파일 분류부
110: compiler information acquisition unit
120:
130: Executable file classification unit

Claims (18)

분류 대상 실행파일의 헤더에서 분류 대상 컴파일러 정보를 획득하는 컴파일러 정보 획득부;
실행파일 그룹들 각각의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값들을 산출하는 유사도 산출부; 및
상기 유사도 값들이 기설정된 값을 초과하는지 여부에 따라 상기 분류 대상 실행파일이 상기 실행파일 그룹들 각각에 해당하는지 여부를 달리 판단하여 상기 분류 대상 실행파일을 분류하는 실행파일 분류부
를 포함하고,
상기 컴파일러 정보 획득부는
상기 헤더의 도스 스텁(Dos Stub) 및 엔티 헤더(NT Header) 사이에 포함된 데이터로부터 상기 분류 대상 컴파일러 정보를 획득하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 장치.
A compiler information acquisition unit for acquiring classification target compiler information from the header of the classification target execution file;
A similarity calculation unit for calculating similarity values between the sample compiler information of each of the execution file groups and the classification target compiler information; And
An execution file classifying unit that classifies the classification target execution file by judging whether the classification target execution file corresponds to each of the execution file groups according to whether the similarity values exceed predetermined values,
Lt; / RTI >
The compiler information obtaining unit
Wherein the classification target compiler information is obtained from data included between a DOS stub and an NT header of the header.
청구항 1에 있어서,
상기 분류 대상 실행파일의 헤더는
피이 포맷(Portable Executable Format, PE Format)의 헤더인 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 장치.
The method according to claim 1,
The header of the classification target execution file is
Wherein the header is a header of a portable executable format (PE format).
삭제delete 청구항 2에 있어서,
상기 유사도 산출부는
상기 실행파일 그룹들 중 어느 하나의 샘플 컴파일러 정보를 이용하여 샘플 슁글(shingle) 집합을 생성하고,
상기 분류 대상 컴파일러 정보를 이용하여 분류 대상 슁글 집합을 생성하고,
상기 샘플 슁글 집합 및 상기 분류 대상 슁글 집합의 교집합의 원소 개수를 상기 샘플 슁글 집합 및 상기 분류 대상 슁글 집합의 합집합의 원소 개수로 나누어 유사도를 산출하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 장치.
The method of claim 2,
The similarity-
Generating a sample shingle set using the sample compiler information of any one of the execution file groups,
Generates a classification target shingle set using the classification target compiler information,
Wherein the degree of similarity is calculated by dividing the number of elements of the intersection of the sample shingle set and the classification shingle set by the number of elements of the union of the sample shingle set and the classification shingle set. .
청구항 4에 있어서,
상기 유사도 산출부는
상기 분류 대상 컴파일러 정보를 4바이트 단위로 하나의 원소로 하여 상기 분류 대상 슁글 집합을 생성하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 장치.
The method of claim 4,
The similarity-
Wherein the classification target shingle set is generated using the classification target compiler information as one element in units of 4 bytes.
삭제delete 청구항 5에 있어서,
상기 실행파일 분류부는
상기 실행파일 그룹들 중 어느 하나인 실행파일 그룹의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값이 상기 기설정된 값을 초과하는 경우
상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하는 것으로 판단하고,
상기 실행파일 그룹의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값이 상기 기설정된 값을 초과하지 않는 경우
상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하지 않는 것으로 판단하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 장치.
The method of claim 5,
The execution file classifier
When the similarity value between the compiler information of the executable file group and the compiler information of the classification object exceeds the predetermined value
Judges that the classification target execution file corresponds to the execution file group,
If the similarity value between the compiler information of the execution file group and the compiler information of the classification object does not exceed the predetermined value
And judges that the classification target execution file does not correspond to the execution file group.
청구항 7에 있어서,
상기 실행파일 분류부는
상기 분류 대상 실행파일이 상기 실행파일 그룹들 전부에 대하여 해당하지 않는 것으로 판단된 경우,
새로이 실행파일 그룹을 생성하고,
상기 분류 대상 실행파일을 새로이 생성된 상기 실행파일 그룹에 해당하는 것으로 판단하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 장치.
The method of claim 7,
The execution file classifier
If it is determined that the classification target execution file does not correspond to all of the execution file groups,
Create a new executable file group,
And judges that the classification target executable file corresponds to the newly created executable file group.
청구항 8에 있어서,
상기 분류 대상 실행파일은
압축, 코드 변형 및 난독화된 실행파일을 포함하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 장치.
The method of claim 8,
The classification target execution file
Compression, code modification, and obfuscation of the executable file.
분류 대상 실행파일의 헤더에서 분류 대상 컴파일러 정보를 획득하는 단계;
실행파일 그룹들 각각의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값들을 산출하는 단계; 및
상기 유사도 값들이 기설정된 값을 초과하는지 여부에 따라 상기 분류 대상 실행파일이 상기 실행파일 그룹들 각각에 해당하는지 여부를 달리 판단하여 상기 분류 대상 실행파일을 분류하는 단계
를 포함하고,
상기 컴파일러 정보를 획득하는 단계는
상기 헤더의 도스 스텁(Dos Stub) 및 엔티 헤더(NT Header) 사이에 포함된 데이터로부터 상기 분류 대상 컴파일러 정보를 획득하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 방법.
Obtaining classification target compiler information from the header of the classification target execution file;
Calculating similarity values between the sample compiler information of each of the execution file groups and the classification target compiler information; And
Classifying the classification target execution file by judging whether the classification target execution file corresponds to each of the execution file groups according to whether the similarity values exceed predetermined values
Lt; / RTI >
The step of obtaining the compiler information
Wherein the classification target compiler information is obtained from data included between a DOS stub and an NT header of the header.
청구항 10에 있어서,
상기 분류 대상 실행파일의 헤더는
피이 포맷(Portable Executable Format, PE Format)의 헤더인 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 방법.
The method of claim 10,
The header of the classification target execution file is
Wherein the header of the executable file is a header of a portable executable format (PE format).
삭제delete 청구항 11에 있어서,
상기 유사도 값들을 산출하는 단계는
상기 실행파일 그룹들 중 어느 하나의 샘플 컴파일러 정보를 이용하여 샘플 슁글(shingle) 집합을 생성하고,
상기 분류 대상 컴파일러 정보를 이용하여 분류 대상 슁글 집합을 생성하고,
상기 샘플 슁글 집합 및 상기 분류 대상 슁글 집합의 교집합의 원소 개수를 상기 샘플 슁글 집합 및 상기 분류 대상 슁글 집합의 합집합의 원소 개수로 나누어 유사도를 산출하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 방법.
The method of claim 11,
The step of calculating the similarity values
Generating a sample shingle set using the sample compiler information of any one of the execution file groups,
Generates a classification target shingle set using the classification target compiler information,
Wherein the similarity degree is calculated by dividing the number of elements of the intersection of the sample shingle set and the classification shingle set by the number of elements of the union of the sample shingle set and the classification target shingle set. .
청구항 13에 있어서,
상기 유사도 값들을 산출하는 단계는
상기 분류 대상 컴파일러 정보를 4바이트 단위로 하나의 원소로 하여 상기 분류 대상 슁글 집합을 생성하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 방법.
14. The method of claim 13,
The step of calculating the similarity values
Wherein the classification target shingle set is generated using the classification target compiler information as one element in units of 4 bytes.
청구항 14에 있어서,
상기 분류 대상 실행파일을 분류하는 단계는
상기 유사도 값들이 기설정된 값을 초과하는지 여부에 따라 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 달리 판단하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 방법.
15. The method of claim 14,
The step of classifying the classification target executable file
And determining whether the classification target execution file corresponds to one of the execution file groups according to whether or not the similarity values exceed a preset value.
청구항 15에 있어서,
상기 분류 대상 실행파일을 분류하는 단계는
상기 실행파일 그룹들 중 어느 하나인 실행파일 그룹의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값이 상기 기설정된 값을 초과하는 경우
상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하는 것으로 판단하고,
상기 실행파일 그룹의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값이 상기 기설정된 값을 초과하지 않는 경우
상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하지 않는 것으로 판단하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 방법.
16. The method of claim 15,
The step of classifying the classification target executable file
When the similarity value between the compiler information of the executable file group and the compiler information of the classification object exceeds the predetermined value
Judges that the classification target execution file corresponds to the execution file group,
If the similarity value between the compiler information of the execution file group and the compiler information of the classification object does not exceed the predetermined value
And judges that the classification target execution file does not correspond to the execution file group.
청구항 16에 있어서,
상기 분류 대상 실행파일을 분류하는 단계는
상기 분류 대상 실행파일이 상기 실행파일 그룹들 전부에 대하여 해당하지 않는 것으로 판단된 경우,
새로이 실행파일 그룹을 생성하고,
상기 분류 대상 실행파일을 새로이 생성된 상기 실행파일 그룹에 해당하는 것으로 판단하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 방법.
18. The method of claim 16,
The step of classifying the classification target executable file
If it is determined that the classification target execution file does not correspond to all of the execution file groups,
Create a new executable file group,
And judges that the classification target executable file corresponds to the newly created executable file group.
청구항 17에 있어서,
상기 분류 대상 실행파일은
압축, 코드 변형 및 난독화된 실행파일을 포함하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 방법.
18. The method of claim 17,
The classification target execution file
Compression, code variant, and obfuscated executable file.
KR1020120129309A 2012-11-15 2012-11-15 Apparatus for classifying executable file using compiler information similarity and method thereof KR101428781B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120129309A KR101428781B1 (en) 2012-11-15 2012-11-15 Apparatus for classifying executable file using compiler information similarity and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120129309A KR101428781B1 (en) 2012-11-15 2012-11-15 Apparatus for classifying executable file using compiler information similarity and method thereof

Publications (2)

Publication Number Publication Date
KR20140062959A KR20140062959A (en) 2014-05-27
KR101428781B1 true KR101428781B1 (en) 2014-08-08

Family

ID=50891056

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120129309A KR101428781B1 (en) 2012-11-15 2012-11-15 Apparatus for classifying executable file using compiler information similarity and method thereof

Country Status (1)

Country Link
KR (1) KR101428781B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090055669A (en) * 2007-11-29 2009-06-03 한국전자통신연구원 Apparatus and method for detecting a virus code
KR100968267B1 (en) 2008-06-13 2010-07-06 주식회사 안철수연구소 Apparatus and method for checking virus program by distinguishing compiler

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090055669A (en) * 2007-11-29 2009-06-03 한국전자통신연구원 Apparatus and method for detecting a virus code
KR100968267B1 (en) 2008-06-13 2010-07-06 주식회사 안철수연구소 Apparatus and method for checking virus program by distinguishing compiler

Also Published As

Publication number Publication date
KR20140062959A (en) 2014-05-27

Similar Documents

Publication Publication Date Title
CN107577942B (en) Mixed feature screening method for Android malicious software detection
EP2472425B1 (en) System and method for detecting unknown malware
CN101924761B (en) Method for detecting malicious program according to white list
KR101720686B1 (en) Apparaus and method for detecting malcious application based on visualization similarity
US10678921B2 (en) Detecting malware with hash-based fingerprints
KR101246623B1 (en) Apparatus and method for detecting malicious applications
TWI611349B (en) Detection system and method thereof
US20180089430A1 (en) Computer security profiling
Glanz et al. CodeMatch: obfuscation won't conceal your repackaged app
KR101383010B1 (en) Method of obtaining signature of apk files for android operating system, and computer-readable recording medium for the same
WO2015190446A1 (en) Malware determination device, malware determination system, malware determination method, and program
KR101228899B1 (en) Method and Apparatus for categorizing and analyzing Malicious Code Using Vector Calculation
CN107679403B (en) Lesso software variety detection method based on sequence comparison algorithm
KR20150044490A (en) A detecting device for android malignant application and a detecting method therefor
KR20160082644A (en) Method and apparatus for detecting malware by code block classification
CN101685483B (en) Method and device for extracting virus feature code
CN103473346A (en) Android re-packed application detection method based on application programming interface
US20070006300A1 (en) Method and system for detecting a malicious packed executable
Nguyen et al. Detecting repackaged android applications using perceptual hashing
JP6000465B2 (en) Process inspection apparatus, process inspection program, and process inspection method
KR101520671B1 (en) System and method for analysis executable code based on similarity
Al-Anezi Generic packing detection using several complexity analysis for accurate malware detection
WO2018121464A1 (en) Method and device for detecting virus, and storage medium
RU2015141542A (en) System and method for configuring anti-virus scanning
KR101428781B1 (en) Apparatus for classifying executable file using compiler information similarity and method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170703

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180625

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 6