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 PDFInfo
- 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
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
- G06F21/563—Static 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
본 발명은 컴파일러 정보 유사도를 이용한 실행파일 분류 장치 및 방법에 관한 것으로, 특히 피이 포맷(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
4 is a diagram showing an example of
FIG. 5 is a diagram illustrating an example of generation of a
FIG. 6 is a diagram showing an example of an execution file classification of the execution
7 is a diagram showing an example of an executable file classification including malicious code of the
FIG. 8 is a diagram showing an example of an obfuscated executable file classification of the
FIG. 9 is a diagram showing an example of a deleted restored executable file classification of the
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.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
컴파일러 정보 획득부(110)는 분류 대상 실행파일의 헤더(300)에서 분류 대상 컴파일러 정보(420)를 획득한다.The compiler
이 때, 분류 대상 실행파일의 헤더(300)는 피이 포맷(Portable Executable Format, PE Format)의 헤더일 수 있다.At this time, the
이 때, 컴파일러 정보 획득부(110)는 헤더의 도스 스텁 및 엔티 헤더 사이에 포함된 데이터(330)로부터 분류 대상 컴파일러 정보(420)를 획득할 수 있다.At this time, the compiler
이 때, 분류 대상 실행파일은 압축, 코드 변형 및 난독화된 실행파일을 포함할 수 있다.At this time, the classified target executable file may include compression, code variant, and obfuscated executable file.
유사도 산출부(120)는 실행파일 그룹들 각각의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값들을 산출한다.The
이 때, 유사도 산출부(120)는 상기 실행파일 그룹들 중 어느 하나의 샘플 컴파일러 정보를 이용하여 샘플 슁글(Shingle) 집합을 생성하고, 분류 대상 컴파일러 정보(420)를 이용하여 분류 대상 슁글 집합(520)을 생성하고, 상기 샘플 슁글 집합 및 분류 대상 슁글 집합(520)의 교집합의 원소 개수를 상기 샘플 슁글 집합 및 분류 대상 슁글 집합(520)의 합집합의 원소 개수로 나누어 유사도를 산출할 수 있다.At this time, the
예를 들어, 유사도 산출부(120)는 분류 대상 컴파일러 정보(420)를 이용하여 S(A)={0x006DC627, 0x00010000, 0x00132359, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}인 분류 대상 슁글 집합(520)을 생성할 수 있다.For example, the
예를 들어, 유사도 산출부(120)는 상기 실행파일 그룹들 중 어느 하나의 샘플 컴파일러 정보를 이용하여 S(B)={0x006DC627, 0x00010000, 0x00010809, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}인 상기 샘플 슁글 집합을 생성할 수 있다.For example, the
이 경우, 유사도 산출부(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
이 때, 유사도 산출부(120)는 분류 대상 컴파일러 정보(420)를 4바이트 단위로 하나의 원소로 하여 분류 대상 슁글 집합(520)을 생성할 수 있다.At this time, the
예를 들어, 유사도 산출부(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
이 경우, 유사도 산출부(120)는 S(A)={0x006DC627, 0x00010000, 0x00132359, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}와 같이, 원소 개수가 7인 분류 대상 슁글 집합(520)을 생성할 수 있다.In this case, the
실행파일 분류부(130)는 상기 유사도 값들을 이용하여 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 판단하여 상기 분류 대상 실행파일을 분류한다.The
이 때, 실행파일 분류부(130)는 상기 유사도 값들이 기설정된 값을 초과하는지 여부에 따라 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 달리 판단할 수 있다.At this time, the
이 때, 실행파일 분류부(130)는 상기 실행파일 그룹들 중 어느 하나인 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하는 것으로 판단하고, 상기 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하지 않는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하지 않는 것으로 판단할 수 있다.In this case, when the similarity value between the compiler information of the executable file group and the
이 때, 실행파일 분류부(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
도 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
이 때, 분류 대상 실행파일의 헤더(300)는 피이 포맷(Portable Executable Format, PE Format)의 헤더일 수 있다.At this time, the
이 때, 단계(S210)는 헤더의 도스 스텁 및 엔티 헤더 사이에 포함된 데이터(330)로부터 분류 대상 컴파일러 정보(420)를 획득할 수 있다.At this time, the step S210 may obtain the classification
이 때, 분류 대상 실행파일은 압축, 코드 변형 및 난독화된 실행파일을 포함할 수 있다.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
예를 들어, 단계(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
예를 들어, 단계(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
예를 들어, 단계(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
이 경우, 단계(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
도 3을 참조하면, 본 발명에 따른 분류 대상 실행파일의 헤더(300)의 일 예는 도스 헤더(310), 도스 스텁(320), 엔티 헤더(340) 및 도스 스텁 및 엔티 헤더 사이에 포함된 데이터(330)를 포함한다.3, an example of a
이 때, 분류 대상 실행파일의 헤더(300)는 피이 포맷(Portable Executable Format, PE Format)의 헤더일 수 있다.At this time, the
이 때, 유사도 산출부(120)는 헤더의 도스 스텁 및 엔티 헤더 사이에 포함된 데이터(330)로부터 분류 대상 컴파일러 정보(420)를 획득할 수 있다.
At this time, the
도 4는 도 3에 도시된 도스 스텁 및 엔티 헤더 사이에 포함된 데이터(330)의 일 예를 나타낸 도면이다.4 is a diagram showing an example of
도 4를 참조하면, 도 3에 도시된 도스 스텁 및 엔티 헤더 사이에 포함된 데이터(330)는 영역의 시작(410), 라이브러리 정보(420 및 430) 및 영역의 끝(440)을 포함한다.Referring to FIG. 4,
라이브러리 정보(420 및 430)는 분류 대상 컴파일러 정보(420) 및 참조 횟수(430)를 포함한다.The
분류 대상 컴파일러 정보(420)는 제1 컴파일러 정보(421), 제2 컴파일러 정보(422), 제n 컴파일러 정보(429) 등 n개의 컴파일러 정보들을 포함할 수 있다.The classification
참조 횟수(430)는 제1 참조 횟수(431), 제2 참조 횟수(432), 제n 참조횟수(439) 등 n개의 참조 횟수들을 포함할 수 있다.The
이 때, 영역의 시작(410), 라이브러리 정보(420 및 430) 및 영역의 끝(440)은 8바이트 단위로, 분류 대상 컴파일러 정보(420) 및 참조 횟수(430)는 4바이트 단위로 구성될 수 있다.At this time, the
이 때, 영역의 시작(410), 분류 대상 컴파일러 정보(420) 및 참조 횟수(430)는 인코딩되어 있고, 유사도 산출부(120)는 영역의 끝(440)의 8바이트 중 하위 4바이트를 이용하여 영역의 시작(410), 분류 대상 컴파일러 정보(420) 및 참조 횟수(430)에 대하여 XOR(Exclusive or)하는 방법으로 디코딩할 수 있다.
At this time, the
도 5는 도 1에 도시된 유사도 산출부(120)의 분류 대상 슁글 집합(520) 생성의 일 예를 나타낸 도면이다.FIG. 5 is a diagram illustrating an example of generation of a
도 5를 참조하면, 도 1에 도시된 유사도 산출부(120)의 분류 대상 슁글 집합(520) 생성은 분류 대상 컴파일러 정보(420)를 이용한다.Referring to FIG. 5, the classification target shingle set 520 of the similarity
이 때, 유사도 산출부(120)는 제1 컴파일러 정보(421)를 첫번째 원소로, 제2 컴파일러 정보(422)를 두번째 원소로, 제3 컴파일러 정보(423)를 세번째 원소로, 제n 컴파일러 정보(429)를 n번째 원소로 하여 분류 대상 슁글 집합(520)을 생성할 수 있다.At this time, the degree of
예를 들어, 유사도 산출부(120)는 분류 대상 컴파일러 정보(420)가 0x006DC627 0x00010000 0x00132359 0x00837809 0x0001C627 0x007CC627 0x0078C627 와 같이 총 28바이트인 경우, 분류 대상 컴파일러 정보(420)를 4바이트 단위로, 0x006DC627를 첫번째 원소, 0x00010000를 두번째 원소, 0x00132359를 세번째 원소, 0x00837809를 네번째 원소, 0x0001C627를 다섯번째 원소, 0x007CC627를 여섯번째 원소, 0x0078C627를 일곱번째 원소로 하여 분류 대상 슁글 집합(520)을 생성할 수 있다.For example, if the
이 경우, 유사도 산출부(120)는 S(A)={0x006DC627, 0x00010000, 0x00132359, 0x00837809, 0x0001C627, 0x007CC627, 0x0078C627}와 같이, 원소 개수가 7인 분류 대상 슁글 집합(520)을 생성할 수 있다.
In this case, the
도 6은 도 1에 도시된 실행파일 분류부(130)의 실행파일 분류의 일 예를 나타낸 도면이다.FIG. 6 is a diagram showing an example of an execution file classification of the execution
도 6을 참조하면, 도 1에 도시된 실행파일 분류부(130)의 실행파일 분류는 상기 분류 대상 실행파일인 Sample1, Sample2 및 Sample3 각각에 대하여 상기 실행파일 그룹인 Duqu, Hwp 및 PowerPoint 중 어느 하나에 해당하는지 여부를 판단한다.Referring to FIG. 6, the executable file classification of the
여기서, 항목 필드에 도시된 상기 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
예를 들어, 실행파일 분류부(130)는 상기 유사도 값들이 0.9를 초과하는지 여부에 따라 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 달리 판단할 수 있다.For example, the
이 때, 실행파일 분류부(130)는 상기 실행파일 그룹들 중 어느 하나인 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하는 것으로 판단하고, 상기 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하지 않는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하지 않는 것으로 판단할 수 있다.In this case, when the similarity value between the compiler information of the executable file group and the
예를 들어, 실행파일 분류부(130)는 상기 Duqu 및 상기 Sample1의 유사도 값이 0.9를 초과하는 경우 상기 Sample1을 상기 Duqu에 해당하는 것으로 판단할 수 있다.For example, the
예를 들어, 실행파일 분류부(130)는 상기 Hwp 및 상기 Sample2의 유사도 값이 0.9를 초과하는 경우 상기 Sample2을 상기 Hwp에 해당하는 것으로 판단할 수 있다.For example, the
예를 들어, 실행파일 분류부(130)는 상기 PowerPoint 및 상기 Sample3의 유사도 값이 0.9을 초과하지 않는 경우 상기 Sample3을 상기 PowerPoint에 해당하지 않는 것으로 판단할 수 있다.For example, if the similarity value between the PowerPoint and the
도 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
예를 들어, 실행파일 분류부(130)는 상기 Sample3가 상기 Duqu, 상기 Hwp 및 상기 PowerPoint 전부에 대하여 해당하지 않는 것으로 판단된 경우, 새로이 실행파일 그룹을 생성하고, 상기 Sample3을 새로이 생성된 상기 실행파일 그룹에 해당하는 것으로 판단할 수 있다.
For example, when it is determined that the
도 7은 도 1에 도시된 실행파일 분류부(130)의 악성코드를 포함한 실행파일 분류의 일 예를 나타낸 도면이다.7 is a diagram showing an example of an executable file classification including malicious code of the
도 7을 참조하면, 도 1에 도시된 실행파일 분류부(130)의 악성코드를 포함한 실행파일 분류는 상기 분류 대상 실행파일인 항목들에 대하여 악성코드를 포함한 실행파일 그룹인 Duqu에 해당하는지 여부를 판단한다.Referring to FIG. 7, the executable file classification including the malicious code of the
여기서, 항목 필드에 도시된 제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
이 때, 상기 기설정된 값은 악성 코드의 변형 사용을 대비하여 단순히 실행파일을 분류하는 경우보다 낮게 설정된 것일 수 있다.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
이 때, 실행파일 분류부(130)는 상기 실행파일 그룹들 중 어느 하나인 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하는 것으로 판단하고, 상기 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하지 않는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하지 않는 것으로 판단할 수 있다.In this case, when the similarity value between the compiler information of the executable file group and the
예를 들어, 실행파일 분류부(130)는 상기 Duqu 및 상기 제1 항목의 유사도 값이 0.8을 초과하는 경우 상기 제1 항목을 상기 Duqu에 해당하는 것으로 판단할 수 있다.For example, the
예를 들어, 실행파일 분류부(130)는 상기 Duqu 및 제2 항목의 유사도 값이 0.9을 초과하지 않는 경우 상기 제2 항목을 상기 Duqu에 해당하지 않는 것으로 판단할 수 있다.For example, the
이 때, 실행파일 분류부(130)는 분류 대상 실행파일의 헤더(300)에 분류 대상 컴파일러 정보(420)가 없는 경우, 유사도 산출 및 실행파일 분류를 수행하지 않을 수 있다.At this time, the execution
예를 들어, 실행파일 분류부(130)는 제5 항목에 해당하는 실행파일의 헤더에 분류 대상 컴파일러 정보(420)가 없는 경우, 유사도 산출 및 실행파일 분류를 수행하지 않을 수 있다.
For example, if there is no classification
도 8은 도 1에 도시된 실행파일 분류부(130)의 난독화된 실행파일 분류의 일 예를 나타낸 도면이다.FIG. 8 is a diagram showing an example of an obfuscated executable file classification of the
도 8을 참조하면, 도 1에 도시된 실행파일 분류부(130)의 난독화된 실행파일 분류는 상기 분류 대상 실행파일인 calc.exe 및 상기 calc.exe에 대하여 난독화를 수행한 항목들에 대하여 상기 calc.exe을 이용하여 생성된 실행파일 그룹인 Calc에 해당하는지 여부를 판단한다.Referring to FIG. 8, the obfuscated executable file classification of the
여기서, 항목 필드에 도시된 제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
예를 들어, 실행파일 분류부(130)는 상기 유사도 값들이 0.9를 초과하는 경우 상기 실행파일 그룹에 해당하는 것으로 판단할 수 있다.For example, the
예를 들어, 실행파일 분류부(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
이와 같이, 실행파일 분류부(130)는 난독화된 경우라도 실행파일을 분류할 수 있다.In this manner, the
도 8에는 도시되지 아니하였으나, 실행파일 분류부(130)는 압축 및 코드 변형된 경우라도 실행파일을 분류할 수 있다.
Although not shown in FIG. 8, the
도 9는 도 1에 도시된 실행파일 분류부(130)의 삭제 복구된 실행파일 분류의 일 예를 나타낸 도면이다.FIG. 9 is a diagram showing an example of a deleted restored executable file classification of the
도 9를 참조하면, 도 1에 도시된 실행파일 분류부(130)의 삭제 복구된 실행파일 분류는 상기 분류 대상 실행파일인 삭제 복구된 항목들에 대하여 상기 실행파일 그룹인 Duqu, Hwp 및 PowerPoint 중 어느 하나에 해당하는지 여부를 판단한다.Referring to FIG. 9, the deletion restored executable file classification of the
여기서, 항목 필드에 도시된 제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
예를 들어, 실행파일 분류부(130)는 상기 유사도 값들이 0.9를 초과하는지 여부에 따라 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 달리 판단할 수 있다.For example, the
이 때, 실행파일 분류부(130)는 상기 실행파일 그룹들 중 어느 하나인 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하는 것으로 판단하고, 상기 실행파일 그룹의 샘플 컴파일러 정보 및 분류 대상 컴파일러 정보(420) 간의 유사도 값이 상기 기설정된 값을 초과하지 않는 경우 상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하지 않는 것으로 판단할 수 있다.In this case, when the similarity value between the compiler information of the executable file group and the
예를 들어, 실행파일 분류부(130)는 상기 Hwp 및 상기 제1 항목의 유사도 값이 0.9를 초과하지 않는 경우 상기 제1 항목을 상기 Hwp에 해당하지 않는 것으로 판단할 수 있다.For example, the
예를 들어, 실행파일 분류부(130)는 상기 Hwp 및 제4 항목의 유사도 값이 0.9를 초과하는 경우 상기 제4 항목을 상기 Hwp에 해당하는 것으로 판단할 수 있다.For example, the
이 때, 실행파일 분류부(130)는 분류 대상 실행파일의 헤더(300)가 피이 포맷(Portable Executable Format, PE Format)이 아닌 경우, 유사도 산출 및 실행파일 분류를 수행하지 않을 수 있다.At this time, if the
예를 들어, 실행파일 분류부(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
이상에서와 같이 본 발명에 따른 컴파일러 정보 유사도를 이용한 실행파일 분류 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.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.
상기 분류 대상 실행파일의 헤더는
피이 포맷(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).
상기 유사도 산출부는
상기 실행파일 그룹들 중 어느 하나의 샘플 컴파일러 정보를 이용하여 샘플 슁글(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바이트 단위로 하나의 원소로 하여 상기 분류 대상 슁글 집합을 생성하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 장치.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.
상기 실행파일 분류부는
상기 실행파일 그룹들 중 어느 하나인 실행파일 그룹의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값이 상기 기설정된 값을 초과하는 경우
상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하는 것으로 판단하고,
상기 실행파일 그룹의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값이 상기 기설정된 값을 초과하지 않는 경우
상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하지 않는 것으로 판단하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 장치.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.
상기 실행파일 분류부는
상기 분류 대상 실행파일이 상기 실행파일 그룹들 전부에 대하여 해당하지 않는 것으로 판단된 경우,
새로이 실행파일 그룹을 생성하고,
상기 분류 대상 실행파일을 새로이 생성된 상기 실행파일 그룹에 해당하는 것으로 판단하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 장치.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.
상기 분류 대상 실행파일은
압축, 코드 변형 및 난독화된 실행파일을 포함하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 장치.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.
상기 분류 대상 실행파일의 헤더는
피이 포맷(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).
상기 유사도 값들을 산출하는 단계는
상기 실행파일 그룹들 중 어느 하나의 샘플 컴파일러 정보를 이용하여 샘플 슁글(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. .
상기 유사도 값들을 산출하는 단계는
상기 분류 대상 컴파일러 정보를 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.
상기 분류 대상 실행파일을 분류하는 단계는
상기 유사도 값들이 기설정된 값을 초과하는지 여부에 따라 상기 분류 대상 실행파일이 상기 실행파일 그룹들 중 어느 하나에 해당하는지 여부를 달리 판단하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 방법.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.
상기 분류 대상 실행파일을 분류하는 단계는
상기 실행파일 그룹들 중 어느 하나인 실행파일 그룹의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값이 상기 기설정된 값을 초과하는 경우
상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하는 것으로 판단하고,
상기 실행파일 그룹의 샘플 컴파일러 정보 및 상기 분류 대상 컴파일러 정보 간의 유사도 값이 상기 기설정된 값을 초과하지 않는 경우
상기 분류 대상 실행파일을 상기 실행파일 그룹에 해당하지 않는 것으로 판단하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 방법.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.
상기 분류 대상 실행파일을 분류하는 단계는
상기 분류 대상 실행파일이 상기 실행파일 그룹들 전부에 대하여 해당하지 않는 것으로 판단된 경우,
새로이 실행파일 그룹을 생성하고,
상기 분류 대상 실행파일을 새로이 생성된 상기 실행파일 그룹에 해당하는 것으로 판단하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 방법.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.
상기 분류 대상 실행파일은
압축, 코드 변형 및 난독화된 실행파일을 포함하는 것을 특징으로 하는 컴파일러 정보 유사도를 이용한 실행파일 분류 방법.18. The method of claim 17,
The classification target execution file
Compression, code variant, and obfuscated executable file.
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)
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 |
-
2012
- 2012-11-15 KR KR1020120129309A patent/KR101428781B1/en active IP Right Grant
Patent Citations (2)
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 |