KR101930293B1 - Apparatus and Method for Identifying Variety Malicious Code Using Static Analysis and Dynamic Analysis - Google Patents
Apparatus and Method for Identifying Variety Malicious Code Using Static Analysis and Dynamic Analysis Download PDFInfo
- Publication number
- KR101930293B1 KR101930293B1 KR1020170116412A KR20170116412A KR101930293B1 KR 101930293 B1 KR101930293 B1 KR 101930293B1 KR 1020170116412 A KR1020170116412 A KR 1020170116412A KR 20170116412 A KR20170116412 A KR 20170116412A KR 101930293 B1 KR101930293 B1 KR 101930293B1
- Authority
- KR
- South Korea
- Prior art keywords
- malicious code
- malicious
- variant
- group
- classified
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/561—Virus type analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명의 실시예에 따른 변종 악성코드 식별 방법은 유입되는 복수의 악성코드들을 정적 분석을 통해 기존 악성코드 또는 변종 악성코드로 1차 분류하는 단계, 2차 분류를 위하여, 미리 학습된 학습데이터를 기반으로 상기 1차 분류된 기존 악성코드를 분류하거나, 상기 1차 분류된 변종 악성코드에 대한 데이터들을 동적 분석을 통해 적어도 하나의 대표 악성코드들을 선정하는 단계 및 상기 2차 분류된 기존 악성코드 및 상기 대표 악성코드를 기 설정된 기준 값에 따라 상호간의 관계를 식별하는 단계를 포함할 수 있다.The malicious code identification method according to an embodiment of the present invention includes the steps of first classifying a plurality of incoming malicious codes into existing malicious codes or variant malicious codes through static analysis, Selecting at least one representative malicious code by dynamically analyzing the data of the first classified malicious code based on the first classified malicious code based on the first classified malicious code, And identifying the mutual relationship of the representative malicious code according to a predetermined reference value.
Description
본 발명의 실시예가 속하는 기술 분야는 악성코드를 식별하는 장치 및 방법에 관한 것이고, 보다 상세하게는 정적 분석과 정적 분석을 이용하여 변종 악성코드를 식별하는 장치 및 방법에 관한 것이다.Technical field to which the embodiments of the present invention belong is an apparatus and method for identifying a malicious code, and more particularly, to an apparatus and method for identifying a malicious code using static analysis and static analysis.
최근 사용자의 편의를 제공하기 위하여 컴퓨팅을 이용한 다양한 서비스가 제공됨에 따라 공인 인증서나 카드 정보, 로그인 정보 등과 같은 중요한 정보들은 컴퓨팅 기기에 저장하는 횟수가 증가하였으며, 이를 이용하는 사례가 빈번히 발생하고 있어 정보의 보호에 대한 관심과 필요성이 높아지고 있다.Recently, as various services using computing have been provided to provide convenience of users, important information such as authorized certificates, card information, and login information have been frequently stored in computing devices, There is a growing interest and need for protection.
컴퓨팅 기기의 대표적인 비정상 행위로는 악성 코드에 의한 행위가 있을 수 있으며, 악성 코드(Malicious code)는 컴퓨팅 기기에 피해를 주기 위해 제작된 모든 소프트웨어의 총칭을 말한다.Malicious code (malicious code) is a generic term for all software that is designed to inflict damage on a computing device.
종래의 기존 악성코드 분석 기술은 악성코드를 실제로 실행하지 않고 코드를 활용하는 정적 분석 또는 통제가 가능한 가상 환경에서 직접 실행시켜 악성코드의 행위를 식별하는 동적 분석을 이용하여 분석을 했다. Conventional existing malicious code analysis techniques have been analyzed using dynamic analysis that identifies the malicious code's behavior by directly executing it in a static analysis or controllable virtual environment that uses code without actual execution of the malicious code.
그러나, 정적 분석 또는 동적 개별 분석은 각 방식에 따라 한계를 가지고 있다. 정적 분석방식은 시간 비용이 낮지만, 변종 악성코드에 유연하지 못한 한계가 있고, 동적 분석방식은 변종 악성코드에 유연하지만, 시간 비용이 높은 한계점이 있다. However, static analysis or dynamic individual analysis has limitations depending on each method. Although the static analysis method has a low time cost, there are limitations to the variant malicious code and the dynamic analysis method is flexible to the variant malicious code, but the time cost is high.
나아가, 악성코드 식별 기술이 진화함에 따라서 악성코드 제작자의 제작 기술 또한 더 교묘해지고 있어 기존 악성코드 분석 기술로는 정확한 악성코드 식별이 어렵다는 문제가 있었다.Furthermore, as the malicious code identification technology evolves, the manufacturing technology of the malicious code maker becomes more sophisticated, so that there is a problem that it is difficult to identify the malicious code with the existing malicious code analysis technology.
상기와 같은 문제점을 해결하기 위하여, 본 발명의 변종 악성코드 식별 장치 및 방법을 제공함으로써, 유입된 변종 악성코드의 기원을 식별하고, 종래의 정적 또는 동적 분석을 이용한 식별 장치 및 방법보다 빠르고 정확하게 식별할 수 있도록 하는 것을 목적으로 한다.In order to solve the above problems, it is an object of the present invention to provide an apparatus and method for identifying malignant variant malicious codes of the present invention to identify origin of malignant variant malicious codes and to identify and identify malignant malignant codes faster and more accurately than conventional identification methods and methods using static or dynamic analysis. To be able to do so.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 변종 악성코드 식별 방법은 유입되는 복수의 악성코드들을 정적 분석을 통해 기존 악성코드 또는 변종 악성코드로 1차 분류하는 단계, 2차 분류를 위하여, 미리 학습된 학습데이터를 기반으로 상기 1차 분류된 기존 악성코드를 분류하거나, 상기 1차 분류된 변종 악성코드에 대한 데이터들을 동적 분석을 통해 적어도 하나의 대표 악성코드들을 선정하는 단계 및 상기 2차 분류된 기존 악성코드 및 상기 대표 악성코드를 기 설정된 기준 값에 따라 상호간의 관계를 식별하는 단계를 포함할 수 있다.According to an aspect of the present invention, there is provided a method for identifying a malicious code, the method comprising: classifying a plurality of incoming malicious codes into an existing malicious code or a variant malicious code through static analysis; Classifying the existing malicious code classified in the primary classification on the basis of learning data learned in advance or selecting at least one representative malicious code through dynamic analysis of data on the primary classified malicious code, And distinguishing the existing classified malicious code and the representative malicious code from each other according to a predetermined reference value.
또한, 상기 관계 식별 결과에 따라서 상기 2차 분류된 기존 악성코드 및 상기 변종 악성코드를 하나의 제1 그룹으로 통합하거나 새로운 제2 그룹을 생성하는 단계를 더 포함할 수 있다.The method may further include merging the existing malicious code and the variant malicious code classified into the second group into a first group or creating a new second group according to the relationship identification result.
또한, 상기 통합된 제1 그룹 또는 상기 생성된 제2 그룹을 이용하여, 유입되는 변종 악성코드를 식별하기 위한 상기 학습데이터로 학습시킴으로써, 상기 학습데이터를 업데이트하는 단계를 더 포함할 수 있다.The method may further include updating the learning data by learning with the learning data for identifying the variant malicious code that is input using the integrated first group or the generated second group.
또한, 상기 2차 분류된 기존 악성코드 및 대표 악성코드의 관계를 식별하는 단계는, 기 설정된 알고리즘에 따라 상기 2차 분류된 기존 악성코드 및 상기 대표 악성코드 간 유사도를 산출함으로써 상기 관계를 식별할 수 있다.The step of identifying the relationship between the existing classified malicious code and the representative malicious code may further include identifying the relationship by calculating the similarity between the existing malicious code and the representative malicious code that are secondary classified according to a predetermined algorithm .
또한, 상기 제1 그룹으로 통합하거나 제2 그룹을 생성하는 단계는, 상기 산출된 유사도와 상기 기준값을 비교함에 따라 상기 제1 그룹으로 통합하거나 상기 제2 그룹으로 생성할 수 있다. In addition, the step of integrating into the first group or generating the second group may be integrated into the first group or may be generated into the second group by comparing the calculated similarity and the reference value.
또한, 상기 제1 그룹으로 통합하거나 제2 그룹을 생성하는 단계는, 상기 산출된 유사도가 상기 기준값보다 크거나 동일하면 상기 1차 분류된 기존 악성코드와 상기 변종 악성코드를 하나의 그룹으로 통합하고, 상기 산출된 유사도가 상기 기준값보다 작으면 상기 대표 악성코드에 대한 새로운 그룹을 생성할 수 있다.If the calculated similarity is greater than or equal to the reference value, the merging of the first group or the second group may include merging the existing classified malicious code and the variant malicious code into one group , And if the calculated similarity is smaller than the reference value, a new group for the representative malicious code can be generated.
또한, 상기 적어도 하나의 대표 악성코드들을 선정하는 단계는, 상기 1차 분류된 변종 악성코드들을 기 설정된 기준에 따라 군집화(clustering)하기 위해 적어도 하나의 변종 군집들을 생성하고, 생성된 각 변종 군집들의 대표 악성코드를 선정할 수 있다.The selecting of the at least one representative malicious code may include generating at least one variant clusters for clustering the first classified malicious codes according to a predetermined criterion, A representative malicious code can be selected.
또한, 상기 적어도 하나의 대표 악성코드들을 선정하는 단계는, 상기 변종 군집들을 생성하기 위해 적어도 하나의 중심점(Centroid)들을 선정하는 단계, 상기 선정된 변종 군집들 각각에 대한 중심점들과 상기 1차 분류된 변종 악성 코드들 간 거리를 계산하는 단계 및 상기 계산 결과에 따라 상기 중심점과 가장 가까운 거리에 위치하는 변종 코드를 상기 대표 악성코드로 선정하는 단계를 더 포함할 수 있다.In addition, the step of selecting the at least one representative malicious code may include selecting at least one centroid to generate the variant clusters, selecting center points for each of the selected variant clusters, Calculating a distance between the variant malicious codes, and selecting a variant code located at a distance closest to the center point according to the calculation result, as the representative malicious code.
또한, 상기 1차 분류하는 단계는, 유입되는 복수의 악성코드들 간의 유사도를 분석하고, 분석 결과에 따라 상기 악성코드들을 기존 악성코드 또는 변종 악성코드로 분류할 수 있다.The first sorting step may analyze the similarity between the plurality of incoming malicious codes and classify the malicious codes into existing malicious codes or malicious malicious codes according to the analysis result.
본 발명의 또 다른 실시예에 따른 변종 악성코드 식별 장치는, 유입되는 복수의 악성코드들을 정적 분석을 통해 기존 악성코드 또는 변종 악성코드로 1차 분류하는 1차 분류모듈, 2차 분류를 위하여, 미리 학습된 학습데이터를 기반으로 상기 1차 분류된 기존 악성코드를 분류하거나, 상기 1차 분류된 변종 악성코드에 대한 데이터들을 동적 분석을 통해 적어도 하나의 대표 악성코드들을 선정하는 2차 분류 모듈 및 기 설정된 알고리즘에 따라 상기 2차 분류된 기존 악성코드 및 상기 대표 악성코드 간 유사도를 산출하고, 산출된 유사도를 기반으로 상호간의 관계를 식별하는 관계 식별부를 포함할 수 있다.According to another embodiment of the present invention, there is provided an apparatus for discriminating malicious codes, comprising: a first classifying module for classifying a plurality of incoming malicious codes into existing malicious codes or variant malicious codes through static analysis; A secondary classification module for classifying the existing malicious code classified on the basis of previously learned learning data or selecting at least one representative malicious code through dynamic analysis of the data for the primary classified malicious code, And a relation distinguishing unit for calculating the similarity between the existing malicious code and the representative malicious code classified in the secondary classification according to a predetermined algorithm and identifying the mutual relationship based on the calculated similarity.
또한, 상기 관계 식별 결과에 따라서 상기 2차 분류된 기존 악성코드 및 상기 변종 악성코드를 하나의 제1 그룹으로 통합하는 그룹통합부 및 새로운 제2 그룹을 생성하는 그룹생성부를 더 포함할 수 있다.The apparatus may further include a group integration unit for merging the existing malicious code and the variant malicious code into a first group according to the relationship identification result, and a group generation unit for generating a new second group.
또한, 상기 통합된 제1 그룹 또는 상기 생성된 제2 그룹을 이용하여, 유입되는 변종 악성코드를 식별하기 위한 상기 학습데이터로서 학습시키는 지도학습부를 더 포함할 수 있다.Further, the information processing apparatus may further include a map learning unit which learns, using the integrated first group or the generated second group, as the learning data for identifying the infected malicious code.
또한, 상기 그룹통합부는 상기 산출된 유사도가 상기 기준값보다 크거나 동일하면 상기 2차 분류된 기존 악성코드와 상기 변종 악성코드를 하나의 그룹으로 통합하고, 상기 그룹생성부는 상기 산출된 유사도가 상기 기준값보다 작으면 상기 대표 악성코드에 대한 새로운 그룹을 생성할 수 있다.If the calculated degree of similarity is greater than or equal to the reference value, the group merging unit merges the existing malicious code and the variant malicious code, which are secondary classified, into one group, A new group for the representative malicious code can be generated.
또한, 상기 2차 분류 모듈은, 상기 1차 분류된 변종 악성코드에 대한 데이터들을 기 설정된 기준에 따라 군집화(clustering)하기 위해 적어도 하나의 변종 군집들을 생성하고, 생성된 각 변종 군집들의 대표 악성코드를 선정할 수 있다. In addition, the secondary classification module may generate at least one variant clusters for clustering data on the first-order variant malicious code according to a predetermined criterion, and generate representative malicious codes Can be selected.
본 발명의 변종 악성코드 식별 장치 및 방법은 정적 및 동적 방식에 따른 문제점을 상호보완 할 수 있고, 나아가 기계학습을 통해 추후에 유입되는 알려지지 않은 변종 악성코드를 식별하는데 있어서 보다 정확하고 유연하게 분석할 수 있는 효과가 있다.The apparatus and method for identifying malicious codes according to the present invention can solve the problems according to the static and dynamic methods, and can further analyze malicious codes that are unknown to be introduced later by machine learning more accurately and flexibly There is an effect that can be.
도1은 본 발명의 일 실시예에 따른 악성코드 식별 장치의 구성을 개략적으로 도시한 블록도이다.
도2는 본 발명의 일 실시예에 따른 변종 악성코드 식별 방법을 시간의 흐름에 따라 도시한 흐름도이다.1 is a block diagram schematically illustrating a configuration of a malicious code identification apparatus according to an embodiment of the present invention.
FIG. 2 is a flowchart illustrating a malicious code identification method according to an embodiment of the present invention, according to the flow of time.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. In order to fully understand the present invention, operational advantages of the present invention, and objects achieved by the practice of the present invention, reference should be made to the accompanying drawings and the accompanying drawings which illustrate preferred embodiments of the present invention.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, the present invention will be described in detail with reference to the preferred embodiments of the present invention with reference to the accompanying drawings. However, the present invention may be embodied in many different forms,
수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고, 본 발명을 명확하게 설명하기 위하여 설명과 관계 없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다. And the present invention is not limited to the illustrated embodiment. In order to clearly describe the present invention, parts that are not related to the description are omitted, and the same reference numerals in the drawings denote the same members.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록"등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로구현될 수 있다.Throughout the specification, when an element is referred to as "including" an element, it does not exclude other elements unless specifically stated to the contrary. The terms "part", "unit", "module", "block", and the like described in the specification mean units for processing at least one function or operation, And a combination of software.
이하, 본 발명의 일 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.
이하에서는 본 발명의 실시예에 따른 악성코드 식별 장치의 구성을 관련된 도면을 참조하여 상세히 설명한다. 예컨대, 본 발명의 실시예에 따른 악성코드 식별 장치는 컴퓨터와 같이 독립된 사용자 디바이스에 탑재되는 것이 바람직하다. 이러한, 본 발명의 악성코드 식별 장치는 사용자 단말에 설치되는 어플리케이션 형태로 구현될 수도 있다. Hereinafter, the configuration of a malicious code identification apparatus according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings. For example, the malicious code identification apparatus according to an embodiment of the present invention is preferably installed in an independent user device such as a computer. The malicious code identification apparatus of the present invention may be implemented in an application form installed in a user terminal.
도1은 본 발명의 일 실시예에 따른 악성코드 식별 장치의 구성을 개략적으로 도시한 블록도이다. 도1에 도시된 바와 같이, 본 발명의 악성코드 식별 장치는 1차 분류 모듈(110), 2차 분류 모듈(120), 관계식별부(130), 그룹생성부(141), 그룹통합부(142) 및 지도학습부(150)를 포함할 수 있다. 본 발명의 악성코드 식별 장치는 도면에 도시하지는 않았지만, 외부로부터 파일을 다운로드 하거나 웹서버로부터 웹페이지 소스를 다운로드하는 다운로드부 및 실행파일을 저장하는 데이터베이스를 더 포함하여, 데이터베이스에 저장된 실행파일을 정적 및 동적으로 분석하여, 분석된 데이터에 기초하여 악성코드를 식별할 수 있다.1 is a block diagram schematically illustrating a configuration of a malicious code identification apparatus according to an embodiment of the present invention. 1, the malicious code identification apparatus of the present invention includes a
본 발명은 응용 프로그램의 내부 또는 외부에서 악의적인 의도를 가진 소프트웨어(즉, 악성 코드)에 의해 비정상 행위가 발생하는 경우를 탐지 및 식별하는 기술로서, 응용 프로그램의 내부에서 발생하는 비정상 행위는 응용 프로그램 내에서 감염된 악성 코드가 동작하는 것을 의미하며, 응용 프로그램 외부에서 발생하는 비정상 행위는 이 응용 프로그램과는 무관한 다른 코드에서 이 응용 프로그램의 허용되지 않는 자원에 접근하는 행위를 의미한다.The present invention is a technology for detecting and identifying a case where an abnormal behavior occurs due to malicious intentional software (that is, malicious code) inside or outside an application program, This means that malicious code running outside of the application will access the unauthorized resources of the application in other code that is not related to the application.
본 발명의 실시예에 따른 1차 분류모듈(110)은 상기 다운로드부 및 데이터베이스로 입력됨에 따라 유입되는 복수의 악성코드들을 정적 분석을 통해 기존 악성코드 또는 변종 악성코드로 1차 분류할 수 있다. 여기서, 상기 정적 분석이란 별도의 실행 없이 컴퓨터 소프트웨어를 분석하는 것을 의미하고, 일반적으로 정적 분석으로 이용되는 방법은, 바이너리를 블록 단위로 해싱(hashing)하여 유사도를 식별하는 ssdeep, 악성코드에 적용된 패킹(packing) 여부를 식별할 수 있는 PeID, 상업용 정적 분석 도구 IDA Pro 등이 사용될 수 있는데, 본 발명의 일 실시예에 따른 변종 악성코드 식별 장치는 ssdeep을 중심적으로 활용하여 악성코드를 식별하는 장치 및 방법에 대하여 설명하도록 한다.The
1차 분류 모듈(110)은 유입되는 복수의 악성코드들 간의 유사도를 분석하고, 분석 결과에 따라 상기 악성코드들을 기존 악성코드 또는 변종 악성코드로 분류할 수 있다. 보다 상세하게는, 유입된 적어도 하나의 악성코드들 간의 유사도를 식별하고, 미리 설정한 임계치(threshold)를 기반으로 분류를 수행한다. 예를 들어, 임계치가 80%이고, 입력된 악성코드 A와 악성코드 B의 ssdeep 유사도가 81%라면, 악성코드 A와 악성코드 B는 같은 그룹으로 분류될 수 있다. The
그러나, 변종 악성코드의 경우, 기존 악성코드에 난독화 및 패킹 등을 적용했기 때문에 기존 악성코드와 같은 그룹으로 분류되기 어렵다. 즉, 변종 악성코드인 경우, 악성코드가 오직 1개만 포함된 단독 그룹을 형성할 것이다. 이와 같이, 본 발명의 1차 분류 모듈(110)을 통해 1차 분류를 수행함으로써 단독 그룹을 형성한 악성코드를 변종(신종) 악성코드로 판단하고, 단독 그룹을 형성하지 않은 악성코드는 기존 악성코드로 판단한다.However, in case of variant malicious code, obfuscation and packing are applied to existing malicious code, so it is difficult to classify malicious code into the same group as existing malicious code. That is, in case of variant malicious code, malicious code will form a single group containing only one. As described above, malicious codes forming a single group are determined as variant (new) malicious codes by performing primary classification through the
1차 분류 모듈(110)로부터 유입된 복수의 악성코드들을 기존 악성코드 및 변종 악성코드로 분류한 뒤, 2차 분류 모듈(120)은 미리 학습된 학습데이터를 기반으로 하여 1차 분류된 기존 악성코드를 2차 분류하거나, 동적 분석을 통해 1차 분류된 변종 악성코드들 중 적어도 하나의 대표 악성코드들을 선정한다.After classifying a plurality of malicious codes inputted from the
상술한 바와 같이, 본 발명의 변종 악성코드 식별 장치는 1차 분류 모듈(110)을 통해 유입된 악성코드들의 정적 특징을 활용하여 1차 분류를 수행함으로써, 식별할 수 있는 기존 악성코드와 그렇지 않은 변종 악성코드를 분류함으로써 2차 분류 모듈(120)을 통해 동적 분석을 수행하는 단계에서 발생할 수 있는 시간 비용을 최소화하도록 한다.As described above, the variant malicious code identification device of the present invention performs the primary classification using the static characteristics of the malicious codes inputted through the
일 실시예에 따른 2차 분류 모듈(120)은 도면에 도시되지 않았으나, 정적 분석부와 동적 분석부를 더 포함할 수 있다. 정적 분석부는 지도 학습(supervised learning)을 기반으로 하여 분석하는 방법으로서, 사전에 식별해둔 학습 데이터를 기준으로 분류를 수행하는데, 본 발명에서는 정적 분석부는 1차 분류 모듈(110)을 통해 분류하기 위해 분석을 수행하여 1차 분류된 기존 악성코드를 레이블링 한다. 이때, 상기 학습데이터는 학습데이터로 활용된 악성코드를 말하며, 정적 분석으로 이용되는 분류 알고리즘으로는 Random Forest 및 Decision Tree 등이 이용될 수 있다. The
동적 분석부는 비지도 학습(unsupervised learning)을 기반으로 하는 분석 방법으로서, 1차 분류 모듈(110)을 통해 1차 분류된 변종 악성코드를 뷴류하기 위해 분석을 수행한다. 변종 악성코드는 기존 악성코드와 다르게 난독화 등이 적용되어 있어 정적 특징만으로는 식별되는데 한계가 있다. 따라서, 1차 분류 모듈(110)을 통해 변종 악성코드로 식별된 악성코드를 동적 분석부의 동적 분석을 통해 정확한 행위를 파악하도록 한다. The dynamic analysis unit is an analysis method based on unsupervised learning. The dynamic analysis unit performs analysis to classify the first-order classified malicious code through the
보다 상세하게는, 본 발명의 실시예에 따른 동적 분석부는, 1차 분류 모듈(110)로부터 1차 분류된 변종 악성코드들은 학습데이터 기반 식별이 어렵기 때문에, 클러스터링(clustering) 알고리즘을 활용하여 상기 1차 분류된 악성 코드들을 군집화한다. 일 실시예로서, 동적 분석부는 랜덤 또는 사전지식을 기반으로 하여 k개의 군집들을 생성하고, 거리 기반의 함수를 통해 데이터들을 각 군집들과의 거리 차이의 분산을 최소화하도록 군집에 할당하여, 이후의 생성된 군집들 각각의 내부에서의 유사도는 최대로 하고, 서로 다른 군집들 간의 유사도는 최소화할 수 있도록 군집화를 반복하여 수행한다.More specifically, since the dynamic analysis unit according to the embodiment of the present invention is difficult to identify the learning data base based on the first-order classified malicious codes from the
보다 구체적으로 설명하면, 동적 분석부는 기 설정된 k개의 중심점들에 따라, 상기 1차 분류된 변종 악성코드들을 상기 k개의 중심점들 중 가장 가까운 중심점에 할당한다. 그리고, 동적 분석부는 상기 변종 악성코드들을 각 중심점들에 할당하고 난 후, 각 중심점들을 각 군집들의 무게중심으로 이동시키고, 상기 무게중심이 이동된 중심점들과 상기 중심점들 각각과 인접한 위치에 있는 변종 악성코드들과의 거리를 다시 계산하여 변종 악성코드들 각각을 자신과 가장 가까운 군집에 할당하도록 한다. 이때, 동적 분석부는 이와 같은 동작을 한번만 수행하는 것이 아니고, 군집의 형태가 변하지 않을 때까지 반복하여 수행될 수 있다. More specifically, the dynamic analysis unit allocates the first-order variant malicious codes to the nearest center point among the k center points according to predetermined k center points. The dynamic analysis unit may assign the variant malicious codes to the respective center points, move each center point to the center of gravity of each of the clusters, and calculate a variant of the center point, Recalculate the distances to the malicious codes and assign each of the variant malicious codes to the closest cluster. At this time, the dynamic analysis unit does not perform this operation only once, but can be performed repeatedly until the form of the cluster does not change.
다음으로, 동적 분석부는 대표 악성코드를 선정하기 위하여, 상술한 바와 같이 형성된 각 변종 군집들 각각의 중심점에 가장 가까운 변종 악성코드를 추출한다. 이때, 상기 대표 악성코드는 상기 중심점에 가장 가까운 변종 악성코드들로 선정될 수 있으며, 이렇게 선정된 상기 대표 악성코드는 정적 분석부를 통해 2차 분류된 기존 악성코드와의 관계식별에 활용된다. 일 예로, 동적 분석부로 이용되는 알고리즘으로는 클러스터링 알고리즘이 적합하며, 예컨대, K-Means, Agglomerative Clustering 등이 활용될 수 있다.Next, in order to select a representative malicious code, the dynamic analysis unit extracts variant malicious codes that are closest to the center of each of the variant communities formed as described above. At this time, the representative malicious code may be selected as the variant malicious codes that are closest to the center point, and the representative malicious code selected in this way is used for identifying the relation with the existing malicious code classified by the static analysis unit. For example, a clustering algorithm is suitable for an algorithm used as a dynamic analysis unit, and for example, K-Means, Agglomerative Clustering, and the like can be utilized.
이렇게, 2차 분류 모듈(120)의 정적 분석부와 동적 분석부를 통해 기존 악성코드와 변종 악성코드를 분류한 후, 본 발명의 실시예에 따른 관계식별부(130)는 기 설정된 알고리즘에 따라 상기 2차 분류 모듈(120)로부터 2차 분류된 기존 악성코드 및 상기 대표 악성코드 간 유사도를 산출함으로써, 상호간의 관계를 식별할 수 있다.After classifying the existing malicious code and the variant malicious code through the static analysis unit and the dynamic analysis unit of the
본 발명의 관계식별부(130)는 유입된 기존 악성코드 식별을 위해 학습 데이터로 활용된 악성코드들의 정적 및 동적 특징을 모두 활용하여, 상기 정적 분석부를 통해 2차 분류를 통해 레이블링된 기존 악성코드와 상기 동적 분석부를 통해 선정된 대표 악성코드의 관계를 식별할 수 있다. 보다 구체적으로 설명하면, 본 발명의 실시예에 따른 관계식별부(130)는 학습 데이터를 이용하여 정적 분석부를 통해 2차 분류를 통해 레이블링된 기존 악성코드들의 동적 특징을 식별한다. 그에 따라, 동적 특징이 식별된 상기 2차 분류된 기존 악성코드와 상기 동적 분석부를 통해 선정된 대표 악성코드 간의 유사도를 산출한다. 여기서, 관계식별부(130)는 클러스터링 알고리즘 또는 유사도 비교 알고리즘(예를 들어, Cosine, Correlation) 등을 이용하여, 상기 두 악성코드 간 유사도를 산출함에 따라 관계를 식별할 수 있도록 한다. The
상술한 바와 같이, 본 발명의 실시예에 따른 변종 악성코드 식별 장치는, 1차 분류 모듈(110)의 미리 학습된 학습데이터를 이용하는 정적 분석과 분류된 기존 악성코드와 변종 악성코드를 또 한번 2차 분류 모듈(120)의 정적 분석부 및 동적 분석부를 통해 재분류하고, 후에 관계식별부(130)를 통해 최종 분류된 악성코드간의 관계를 식별함으로써, 변종 악성코드의 기원이 되는 기존 악성코드의 그룹을 식별할 수 있을 뿐만 아니라, 종래의 악성 코드 식별 방법에 따른 정적 분석만을 이용하거나 동적 분석만을 이용하는 방법보다 보다 빠르고 정확하게 식별할 수 있는 장점이 있다.As described above, the variant malicious code identification apparatus according to the embodiment of the present invention can perform the static analysis using the pre-learned learning data of the
그리고, 상기 관계식별부(130)를 통해 식별된 상기 관계 식별 결과에 따라서 본 발명의 실시예에 따른 그룹 통합부(141)는 상기 2차 분류된 기존 악성코드 및 상기 변종 악성코드를 하나의 제1 그룹으로 통합할 수 있고, 그룹 생성부(142)는 상기 관계 식별 결과에 따라 새로운 그룹인 제2 그룹을 생성할 수도 있다.In accordance with the relationship identification result identified through the
일 실시예로, 관계식별부(130)를 통해 관계 식별 대상으로서 이용된 기존 악성 코드와 대표 악성코드 간 산출된 유사도가 미리 설정된 기준 값보다 크거나 동일하면, 그룹 통합부(141)가 상기 대표 악성코드를 기존 악성코드로부터 파생된 것으로서 판단함으로써, 상기 관계 식별로 이용된 상기 두 악성코드를 하나의 그룹으로 통합하고, 반대로 상기 산출된 유사도가 상기 기준 값보다 작으면, 그룹 생성부(142)는 상기 대표 악성코드가 기존에 존재했던 악성코드들과는 구별되는 새로운 악성코드로 판단함에 따라 신종 악성코드로 간주하여 상기 대표 악성코드에 대한 새로운 그룹을 생성한다. In one embodiment, if the similarity calculated between the existing malicious code and the representative malicious code used as the relationship identification object through the
관계 식별부(130) 및 그룹 통합부(141)와 그룹 생성부(142)를 통해 식별된 관계에 따라 유입된 악성코드들의 기원을 파악하고 나면, 본 발명의 실시예에 따른 지도학습부(150)는 상기 통합된 제1 그룹 및 상기 생성된 제2 그룹에 대한 정보를 이용하여, 이후에 유입되는 변종 악성코드를 식별하기 위한 학습데이터로서 학습시킬 수 있도록 한다. After the origins of the malicious codes flowing in accordance with the relationship identified through the
본 발명의 지도학습부(150)는 그룹 통합부(141) 및 그룹 생성부(142)를 통해 정적 특징 및 동적 특징을 포함하는 레이블링된 악성코드 정보를 재학습시킴으로써, 악성코드를 식별하기 위한 학습데이터를 업데이트 할 수 있다.The
도2는 본 발명의 일 실시예에 따른 변종 악성코드 식별 방법을 시간의 흐름에 따라 도시한 흐름도이다.FIG. 2 is a flowchart illustrating a malicious code identification method according to an embodiment of the present invention, according to the flow of time.
도2를 참조하면, 먼저 S200 단계에서, 본 발명의 1차 분류 모듈(110)이 유입되는 복수의 악성코드들을 정적 분석을 수행한다. 보다 상세하게는, 1차 분류 모듈(110)은 상기 유입되는 악성코드들을 서로 비교하여, 비교 분석한 적어도 두 개의 악성코드의 유사도를 산출하고, 산출된 유사도를 기반으로, S210 단계에서 상기 유입된 악성코드들을 기존 악성코드와 변종 악성코드로 분류한다. 이때, 1차 분류 모듈(110)은 유입된 악성코드들 중 정적 분석으로 식별할 수 없는 악성코드를 기존 악성코드에 식별하기 어렵게 변종 엔진(Mutation Engine)을 적용한 악성코드로 판단하여 변종 악성코드로 분류할 수 있다.Referring to FIG. 2, first, in step S200, the
다음으로, 상기 S200과 S201 단계에서, 1차 분류 모듈(110)을 통해 유입된 악성코드들이 기존 악성코드와 변종 악성코드로 1차 분류가 모두 수행되면, S220 단계에서 본 발명의 2차 분류 모듈(120)은 1차 분류된 기존 악성코드를 지도 학습(supervised learning)을 기반으로 하는 정적 분석을 수행하여 레이블링 한다. 보다 구체적으로 설명하면, 본 발명의 2차 분류 모듈(120)은 학습데이터의 정적 특징 및 지도 학습 알고리즘을 이용함으로써 상기 1차 분류된 기존 악성코드를 식별한다.If the malicious codes inputted through the
또 다른 예로서, S230 단계에서 1차 분류 모듈(110)을 통해 변종 악성코드로 1차 분류된 악성코드들은, 2차 분류 모듈(120)을 통해 동적 분석을 수행한다. S231 단계에서, 변종 악성코드로 분류된 악성코드들은 적어도 하나의 가상 머신들을 이용하여 동적 분석을 수행하고, 비지도 학습을 활용해 식별된다. 즉, 1차 분류된 변종 악성코드들은 상기 가산 머신을 통해 클러스터링 알고리즘에 따라 기 설정된 k개의 군집을 형성함으로써, 군집화한다(S232).As another example, in step S230, malicious codes classified as malicious malicious codes through the
S233 단계에서, 본 발명의 2차 분류 모듈(120)은 상기와 같이 군집화된 상기 변종 악성코드들 중 각 군집들 중 대표가 되는 변종 악성코드를 선정한다.In step S233, the
대표 변종 악성코드가 선정되면, 본 발명의 실시예에 따른 관계식별부(130)는 관계 식별을 위하여, 2차 분류 모듈로부터 2차 분류된 기존 악성코드의 동적 특징을 학습데이터를 이용하여 로딩한다(S221).When the representative variant malicious code is selected, the
그에 따라, S240 단계에서, 본 발명의 관계식별부(130)는 상기 로딩된 1차 분류된 기존 악성코드와 상기 선정된 대표 변종 악성코드의 관계를 식별한다. 즉 관계식별부(130)는 1차 분류된 기존 악성코드의 동적 특징을 이용하여, 기존 악성코드와 대표 악성코드(변종)의 관계를 식별하는데, 이때 관계 식별 방법으로는 기 설정된 알고리즘에 따라 상기 2차 분류 모듈(120)로부터 2차 분류된 기존 악성코드 및 상기 대표 악성코드 간 유사도를 산출함으로써, 상호간의 관계를 식별할 수 있다.Accordingly, in step S240, the
본 발명의 그룹 통합부(142)는 상기 S240의 관계 식별 단계에서, 상호간 유사도를 산출하기 위해 미리 설정된 기준값과 산출된 유사도를 비교한 결과 유사도가 기준 값보다 크거나 같으면 관계 식별에 이용된 대표 악성코드(변종)와 기존 악성코드를 하나의 그룹으로서 제1 그룹으로 통합하고(S250), 본 발명의 그룹 생성부(141)는 상기 기준값과 산출된 유사도를 비교한 결과 유사도가 기준 값보다 작으면, 상기 대표 악성코드(변종)는 기존 악성코드로터 파생된 악성코드가 아닌 것으로 판단함으로써, 상기 대표 악성코드에 대한 신종 그룹인 제2 그룹을 생성하도록 한다(S251).The
상술한 바와 같이, S250과 S251 단계를 통해, 유입된 악성코드들을 그룹으로 최종 분류하고 나면, S260 단계에서 지도 학습부(150)는 상기 제1 그룹과 제2 그룹의 정보를 학습시킴으로써, 이후에 유입되는 악성코드를 식별하는데 이용될 수 있도록 학습 데이터를 업데이트 한다.After the malicious codes are finally classified into groups through steps S250 and S251, the
또한, 상기 S250 및 S251 단계가 완료되고 나면, 악성코드 식별 분석을 계속 진행할 것인지 판단하고, 판단 결과에 따라 진행하고자 하면, 이후에 유입된 악성코드에 대한 정정 분석을 수행하는 S200단계로 돌아가고, 유입되는 악성코드가 없다면 종료한다.When the steps S250 and S251 are completed, it is determined whether or not the malicious code identification analysis is to be continued. If the malicious code identification analysis is to proceed according to the determination result, the flow returns to step S200 in which a correction analysis is performed for the malicious code, If there is no malicious code, terminate it.
이상에서 설명한 본 발명의 실시예를 구성하는 모든 구성요소들이 하나로 결합하거나 결합하여 동작하는 것으로 기재되어 있다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 또한, 이와 같은 컴퓨터 프로그램은 USB 메모리, CD 디스크, 플래쉬 메모리 등과 같은 컴퓨터가 읽을 수 있는 기록매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 기록매체로서는 자기 기록매체, 광 기록매체 등이 포함될 수 있다.It is to be understood that the present invention is not limited to these embodiments, and all elements constituting the embodiment of the present invention described above are described as being combined or operated in one operation. That is, within the scope of the present invention, all of the components may be selectively coupled to one or more of them. In addition, although all of the components may be implemented as one independent hardware, some or all of the components may be selectively combined to perform a part or all of the functions in one or a plurality of hardware. As shown in FIG. In addition, such a computer program may be stored in a computer readable medium such as a USB memory, a CD disk, a flash memory, etc., and read and executed by a computer to implement an embodiment of the present invention. As the recording medium of the computer program, a magnetic recording medium, an optical recording medium, or the like can be included.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.It will be apparent to those skilled in the art that various modifications, substitutions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims. will be. Therefore, the embodiments disclosed in the present invention and the accompanying drawings are intended to illustrate and not to limit the technical spirit of the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments and the accompanying drawings . The scope of protection of the present invention should be construed according to the following claims, and all technical ideas within the scope of equivalents should be construed as falling within the scope of the present invention.
Claims (15)
상기 악성코드 식별 장치가 식별하고자 하는 복수의 악성코드들 각각에 대하여 정적 분석을 수행함으로써, 상기 각각의 악성코드를 기존 악성코드 또는 변종 악성코드로 1차 분류하는 단계;
상기 1차 분류에 따라 상기 각각의 악성코드가 기존 악성코드로 분류된 경우, 상기 기존 악성코드의 정적 특징에 따라 분류하기 위해 미리 학습된 학습데이터를 기반으로 상기 기존 악성코드를 2차 분류하고, 상기 1차 분류에 따라 상기 각각의 악성코드가 변종 악성코드로 분류된 경우, 상기 변종 악성코드로 분류된 악성코드들의 동적 특징을 고려하여 군집화(clustering)를 수행함으로써 상기 변종 악성코드를 2차 분류하는 단계;
상기 2차 분류된 기존 악성코드 및 변종 악성코드가 각각 적어도 하나 존재하면, 상기 2차 분류된 기존 악성코드 및 변종 악성코드 각각의 정적 특징 및 동적 특징을 고려하여 상기 2차 분류된 기존 악성코드 및 변종 악성코드의 유사도를 산출하고, 산출된 유사도와 기 설정된 기준 값을 비교함에 따라 상기 2차 분류된 기존 악성코드 및 변종 악성코드의 관계를 식별하는 단계;
를 포함하는 변종 악성코드 식별 방법.In a method for identifying a malicious code by a malicious code identification device,
Performing a static analysis on each of a plurality of malicious codes to be identified by the malicious code identification device, thereby classifying each malicious code into an existing malicious code or a variant malicious code;
Classifying the existing malicious code based on learning data previously learned for classification according to the static characteristics of the existing malicious code when each of the malicious codes is classified into the existing malicious code according to the primary classification, When each of the malicious codes is classified into the malicious codes according to the primary classification, the malicious codes classified into the malicious codes are clustering in consideration of the dynamic characteristics of the malicious codes classified as the malicious codes, ;
If at least one of the existing malicious code and malicious malicious code is secondary classified, the malicious code and the variant malicious code are classified into the secondary classified malicious code and the malicious code by considering the static characteristic and the dynamic characteristic of the secondary malicious code and the variant malicious code, Identifying a relationship between the secondary malicious code and the variant malicious code by comparing the calculated similarity with a preset reference value;
The malicious code identification method comprising:
상기 관계 식별 결과에 따라서 상기 2차 분류된 변종 악성코드를 상기 2차 분류된 기존 악성코드가 속하는 제1 그룹으로 통합하거나, 상기 2차 분류된 변종 악성코드를 새로운 제2 그룹으로 생성하는 단계를 더 포함하는 변종 악성코드 식별 방법.The method according to claim 1,
Integrating the secondarily sorted variant malicious code into the first group to which the existing malicious code belongs secondary belongs according to the relationship identification result or generating the second classified malicious code as a new second group Including more variant malware identification methods.
상기 통합된 제1 그룹 또는 상기 생성된 제2 그룹을 이용하여, 상기 제1 그룹으로 통합하거나 상기 제2 그룹을 생성한 이후 시점에 유입되는 변종 악성코드를 식별하기 위한 상기 학습데이터로 학습시킴으로써, 상기 학습데이터를 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 변종 악성코드 식별 방법.3. The method of claim 2,
By using the integrated first group or the generated second group to learn with the learning data for identifying the variant malicious code flowing into the first group or after the generation of the second group, Further comprising the step of updating the learning data.
상기 제1 그룹으로 통합하거나 상기 제2 그룹을 생성하는 단계는,
상기 산출된 유사도가 상기 기준 값보다 크거나 동일하면 상기 1차 분류된 기존 악성코드와 상기 변종 악성코드를 상기 제1 그룹으로 통합하고,
상기 산출된 유사도가 상기 기준 값보다 작으면 상기 변종 악성코드에 대한 상기 제2 그룹을 생성하는 것을 특징으로 하는 더 포함하는 변종 악성코드 식별 방법.3. The method of claim 2,
The step of integrating into the first group or creating the second group comprises:
If the calculated degree of similarity is greater than or equal to the reference value, integrating the existing malicious code and the variant malicious code into the first group,
And if the calculated degree of similarity is smaller than the reference value, generating the second group for the variant malicious code.
상기 변종 악성코드를 2차 분류하는 단계는,
상기 변종 악성코드로 분류된 악성코드들에 대하여 군집화를 수행함으로써 적어도 하나의 변종 군집을 생성하는 단계; 및
상기 적어도 하나의 변종 군집을 대표하는 대표 악성코드를 선정하는 단계;
를 더 포함하는 것을 특징으로 하는 변종 악성코드 식별 방법.The method according to claim 1,
The second classifying the variant malicious code includes:
Generating at least one variant cluster by performing clustering on malicious codes classified as the variant malicious code; And
Selecting a representative malicious code representative of the at least one variant community;
Further comprising the steps of:
상기 대표 악성코드를 선정하는 단계는,
상기 적어도 하나의 변종 군집의 중심점(Centroid)을 선정하는 단계;
상기 생성된 변종 군집에 대한 중심점과 상기 변종 군집에 소속된 적어도 하나의 변종 악성 코드와의 거리를 계산하는 단계; 및
상기 계산 결과에 따라 상기 중심점과 가장 가까운 거리에 위치하는 변종 코드를 상기 대표 악성코드로 선정하는 단계;
를 더 포함하는 것을 특징으로 하는 변종 악성코드 식별 방법.8. The method of claim 7,
The step of selecting the representative malicious code includes:
Selecting a centroid of the at least one variant population;
Calculating a distance between a center point of the generated variant cluster and at least one variant malicious code belonging to the variant cluster; And
Selecting a variant code located at a distance closest to the center point as the representative malicious code according to the calculation result;
Further comprising the steps of:
상기 1차 분류하는 단계는,
상기 식별하고자 하는 복수의 악성코드들 간의 유사도를 분석하고, 분석 결과에 따라 상기 악성코드들을 기존 악성코드 또는 변종 악성코드로 분류하는 것을 특징으로 하는 변종 악성코드 식별 방법.The method according to claim 1,
Wherein the primary classification comprises:
And analyzing the similarities among the plurality of malicious codes to be identified and classifying the malicious codes into existing malicious codes or malicious malicious codes according to the analysis result.
상기 1차 분류에 따라 상기 각각의 악성코드가 기존 악성코드로 분류된 경우, 상기 기존 악성코드의 특징에 따라 분류하기 위해 미리 학습된 학습데이터를 기반으로 상기 기존 악성코드를 2차 분류하고, 상기 1차 분류에 따라 상기 각각의 악성코드가 변종 악성코드로 분류된 경우, 상기 변종 악성코드로 분류된 악성코드들의 특징을 고려하여 군집화(clustering)를 수행함으로써 상기 변종 악성코드를 2차 분류하는 2차 분류 모듈; 및
상기 2차 분류된 기존 악성코드 및 변종 악성코드가 각각 적어도 하나 존재하면, 상기 2차 분류된 기존 악성코드 및 변종 악성코드 각각의 정적 특징 및 동적 특징을 고려하여 상기 2차 분류된 기존 악성코드 및 변종 악성코드의 유사도를 산출하고, 산출된 유사도와 기 설정된 기준 값을 비교함에 따라 상기 2차 분류된 기존 악성코드 및 변종 악성코드의 관계를 식별하는 관계 식별부;
를 포함하는 변종 악성코드 식별 장치.A first classifying module for performing a static analysis on each of a plurality of malicious codes to be identified, thereby first classifying each of the malicious codes into an existing malicious code or a variant malicious code;
Classifying the existing malicious code based on learning data previously learned for classification according to the characteristics of the existing malicious code when each of the malicious codes is classified into the existing malicious code according to the primary classification, When each of the malicious codes is classified into the malicious code according to the first classification, the malicious code classified as the malicious code is clustering in consideration of the characteristics of the malicious code classified as the malicious code, Car classification module; And
If at least one of the existing malicious code and malicious malicious code is secondary classified, the malicious code and the variant malicious code are classified into the secondary classified malicious code and the malicious code by considering the static characteristic and the dynamic characteristic of the secondary malicious code and the variant malicious code, A relation distinguishing unit for calculating the similarity of the variant malicious code and comparing the calculated similarity with the preset reference value to identify the relationship between the existing classified malicious code and the variant malicious code;
The malicious code identification device comprising:
상기 관계 식별 결과에 따라서 상기 2차 분류된 변종 악성코드를 상기 2차 분류된 기존 악성코드가 속하는 제1 그룹으로 통합하는 그룹통합부 및 상기 2차 분류된 변종 악성코드를 새로운 제2 그룹을 생성하는 그룹생성부를 더 포함하는 변종 악성코드 식별 장치.11. The method of claim 10,
A group merging unit for merging the secondarily sorted variant malicious code into the first group to which the existing malignant code belongs, according to the relationship identification result; and a second group And a group generating unit for generating the malicious code.
상기 통합된 제1 그룹 또는 상기 생성된 제2 그룹을 이용하여, 상기 제1 그룹으로 통합하거나 상기 제2 그룹을 생성한 이후 시점에 유입되는 변종 악성코드를 식별하기 위한 상기 학습데이터로서 학습시키는 지도학습부를 더 포함하는 것을 특징으로 하는 변종 악성코드 식별 장치.12. The method of claim 11,
A map for learning as the learning data for identifying the variant malicious code flowing into the first group or after the generation of the second group by using the integrated first group or the generated second group And further comprising a learning unit.
상기 그룹통합부는 상기 산출된 유사도가 상기 기준 값보다 크거나 동일하면 상기 2차 분류된 기존 악성코드와 상기 변종 악성코드를 상기 제1 그룹으로 통합하고, 상기 그룹생성부는 상기 산출된 유사도가 상기 기준 값보다 작으면 상기 변종 악성코드에 대한 상기 제2 그룹을 생성하는 것을 특징으로 하는 변종 악성코드 식별 장치.12. The method of claim 11,
If the calculated similarity degree is greater than or equal to the reference value, the group merging unit merges the existing malicious code and the variant malicious code classified in the secondary classification into the first group, Value, the second group for the variant malicious code is generated.
상기 변종 악성코드로 분류된 악성코드들에 대하여 군집화를 수행함으로써 적어도 하나의 변종 군집을 생성하고, 상기 적어도 하나의 변종 군집을 대표하는 대표 악성코드를 선정하는 것을 특징으로 하는 변종 악성코드 식별 장치.11. The apparatus of claim 10, wherein the secondary classification module comprises:
Generating at least one variant cluster by performing clustering on malicious codes classified as the variant malicious code, and selecting a representative malicious code representative of the at least one variant cluster.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170116412A KR101930293B1 (en) | 2017-09-12 | 2017-09-12 | Apparatus and Method for Identifying Variety Malicious Code Using Static Analysis and Dynamic Analysis |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170116412A KR101930293B1 (en) | 2017-09-12 | 2017-09-12 | Apparatus and Method for Identifying Variety Malicious Code Using Static Analysis and Dynamic Analysis |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101930293B1 true KR101930293B1 (en) | 2018-12-18 |
Family
ID=64952459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170116412A Expired - Fee Related KR101930293B1 (en) | 2017-09-12 | 2017-09-12 | Apparatus and Method for Identifying Variety Malicious Code Using Static Analysis and Dynamic Analysis |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101930293B1 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110458187A (en) * | 2019-06-27 | 2019-11-15 | 广州大学 | A malicious code family clustering method and system |
KR20210056790A (en) * | 2019-11-11 | 2021-05-20 | (주)하몬소프트 | Apparatus and methods for endpoint detection and reponse using dynamic analysis plans |
KR20210110074A (en) * | 2020-02-28 | 2021-09-07 | 국방과학연구소 | Method and apparatus for analysing function of malicious code |
KR102318991B1 (en) * | 2021-02-05 | 2021-10-29 | (주)에스투더블유 | Method and device for detecting malware based on similarity |
US11853421B2 (en) | 2020-02-25 | 2023-12-26 | Agency For Defense Development | Method and apparatus for analyzing malicious code |
EP3918500B1 (en) * | 2019-03-05 | 2024-04-24 | Siemens Industry Software Inc. | Machine learning-based anomaly detections for embedded software applications |
CN119357956A (en) * | 2024-09-12 | 2025-01-24 | 三峡大学 | Malicious code detection method based on software gene and improved Siamese network |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101260028B1 (en) | 2010-12-23 | 2013-05-06 | 한국인터넷진흥원 | Automatic management system for group and mutant information of malicious code |
KR101589656B1 (en) | 2015-01-19 | 2016-01-28 | 한국인터넷진흥원 | System and method for detecting and inquiring metamorphic malignant code based on action |
-
2017
- 2017-09-12 KR KR1020170116412A patent/KR101930293B1/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101260028B1 (en) | 2010-12-23 | 2013-05-06 | 한국인터넷진흥원 | Automatic management system for group and mutant information of malicious code |
KR101589656B1 (en) | 2015-01-19 | 2016-01-28 | 한국인터넷진흥원 | System and method for detecting and inquiring metamorphic malignant code based on action |
Non-Patent Citations (1)
Title |
---|
유정빈외 2인, 기계학습을 활용한 변종 악성코드 식별연구 동향분석, 정보보호학회지27(3), pp.12-19. 2017.06 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3918500B1 (en) * | 2019-03-05 | 2024-04-24 | Siemens Industry Software Inc. | Machine learning-based anomaly detections for embedded software applications |
CN110458187A (en) * | 2019-06-27 | 2019-11-15 | 广州大学 | A malicious code family clustering method and system |
CN110458187B (en) * | 2019-06-27 | 2020-07-31 | 广州大学 | A malicious code family clustering method and system |
KR20210056790A (en) * | 2019-11-11 | 2021-05-20 | (주)하몬소프트 | Apparatus and methods for endpoint detection and reponse using dynamic analysis plans |
KR102348357B1 (en) * | 2019-11-11 | 2022-01-11 | (주)하몬소프트 | Apparatus and methods for endpoint detection and reponse using dynamic analysis plans |
US11853421B2 (en) | 2020-02-25 | 2023-12-26 | Agency For Defense Development | Method and apparatus for analyzing malicious code |
KR20210110074A (en) * | 2020-02-28 | 2021-09-07 | 국방과학연구소 | Method and apparatus for analysing function of malicious code |
KR102344496B1 (en) * | 2020-02-28 | 2021-12-28 | 국방과학연구소 | Method and apparatus for analysing function of malicious code |
KR102318991B1 (en) * | 2021-02-05 | 2021-10-29 | (주)에스투더블유 | Method and device for detecting malware based on similarity |
CN119357956A (en) * | 2024-09-12 | 2025-01-24 | 三峡大学 | Malicious code detection method based on software gene and improved Siamese network |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101930293B1 (en) | Apparatus and Method for Identifying Variety Malicious Code Using Static Analysis and Dynamic Analysis | |
Aljawarneh et al. | An enhanced J48 classification algorithm for the anomaly intrusion detection systems | |
Annachhatre et al. | Hidden Markov models for malware classification | |
Zhang et al. | Familial clustering for weakly-labeled android malware using hybrid representation learning | |
US10586044B2 (en) | Abnormal behavior detection model building apparatus and abnormal behavior detection model building method thereof | |
CN106713324B (en) | Flow detection method and device | |
US11580222B2 (en) | Automated malware analysis that automatically clusters sandbox reports of similar malware samples | |
US20150213365A1 (en) | Methods and systems for classification of software applications | |
US11809557B2 (en) | Mobile malicious code classification method based on feature selection and recording medium and device for performing the same | |
US10733385B2 (en) | Behavior inference model building apparatus and behavior inference model building method thereof | |
US20240004993A1 (en) | Malware detection in containerized environments | |
Zhang et al. | An ensemble method for detecting shilling attacks based on ordered item sequences | |
CN104504334A (en) | System and method used for evaluating selectivity of classification rules | |
KR20190048605A (en) | Method for classifying based on machine-learning and Apparatus thereof | |
Atacak et al. | Android malware detection using hybrid ANFIS architecture with low computational cost convolutional layers | |
Pavithra et al. | A comparative study on detection of malware and benign on the internet using machine learning classifiers | |
CN114024761A (en) | Network threat data detection method and device, storage medium and electronic equipment | |
Wolfe et al. | High precision screening for Android malware with dimensionality reduction | |
Liu et al. | Using g features to improve the efficiency of function call graph based android malware detection | |
US11210605B1 (en) | Dataset suitability check for machine learning | |
Goel et al. | Two‐level pruning based ensemble with abstained learners for concept drift in data streams | |
Grimme et al. | Lost in transformation: rediscovering llm-generated campaigns in social media | |
Devos et al. | Detecting evasion attacks in deployed tree ensembles | |
Vo et al. | Enhancing AI-powered malware detection by parallel ensemble learning | |
KR20180133726A (en) | Appratus and method for classifying data using feature vector |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20211213 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20211213 |
|
R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |