KR101308228B1 - Method for automatic detecting malware code - Google Patents
Method for automatic detecting malware code Download PDFInfo
- Publication number
- KR101308228B1 KR101308228B1 KR1020110144786A KR20110144786A KR101308228B1 KR 101308228 B1 KR101308228 B1 KR 101308228B1 KR 1020110144786 A KR1020110144786 A KR 1020110144786A KR 20110144786 A KR20110144786 A KR 20110144786A KR 101308228 B1 KR101308228 B1 KR 101308228B1
- Authority
- KR
- South Korea
- Prior art keywords
- event
- events
- similarity
- malicious code
- programs
- 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/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- 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/561—Virus type analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Virology (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
하나 이상의 프로그램으로부터 기설정된 범위 내에 속하는 하나 이상의 이벤트를 추출하여 하나 이상의 이벤트 집합을 생성하는 단계, 상기 하나 이상의 이벤트 집합 중 상기 하나 이상의 프로그램의 유사도 판단에 불필요한 이벤트를 제거하는 단계, 상기 하나 이상의 이벤트 집합에 포함된 하나 이상의 이벤트를 일반화(normalizing) 하는 단계, 상기 각각의 이벤트 집합을 분석하여 동일 순서로 나타나는 이벤트를 추출하는 단계, 상기 추출된 이벤트 순서를 기반으로 상기 하나 이상의 프로그램의 유사도를 계산하는 단계 및 상기 유사도를 기반으로 상기 하나 이상의 프로그램에 대한 악성 코드를 분류하는 단계를 포함하는 악성 코드 자동 탐지 방법을 제공한다.Generating one or more event sets by extracting one or more events within a predetermined range from one or more programs, removing events unnecessary for determining similarity of the one or more programs among the one or more event sets, and the one or more event sets. Normalizing one or more events included in the data, analyzing the respective event sets, extracting the events that appear in the same order, and calculating similarity of the one or more programs based on the extracted event sequence. And classifying malicious codes for the one or more programs based on the similarity.
Description
본 발명의 실시예들은 악성 코드 자동 탐지 방법에 관한 것으로서, 더욱 상세하게는 동일 이벤트 풀에서 선택된 이벤트로 이루어진 두 악성 코드의 순차적 특성을 활용하여 유사도를 계산하고, 계산된 유사도에 따라 동종 악성 코드를 탐지하거나 분류하는 방법에 관한 것이다.Embodiments of the present invention relate to a method for automatically detecting malicious codes, and more particularly, calculating similarity by using sequential characteristics of two malicious codes consisting of selected events in the same event pool, and calculating homogeneous malicious codes according to the calculated similarity. To detect or classify.
일반적으로 악성코드를 탐지 및 분류하는 시스템 중에서 상용 시스템의 경우 기존에 발견된 악성 코드의 일부 혹은 악성 코드 전체의 해쉬 값을 시그니처로 지정하고 데이터베이스화하여 새로운 프로그램이 과거에 발견된 시그니처를 보유하고 있는지에 따라 악성여부를 판단하는 탐지 기법을 사용하고 있다.In general, among the systems that detect and classify malicious codes, commercial systems designate a hash value of some or all malicious codes as signatures and make a database to check whether new programs have signatures found in the past. Is using a detection technique to determine whether it is malicious.
또한, 기존에 발표된 제한된 범위 내의 이벤트를 사용하는 악성 코드의 유사도 측정 방법은 프로그램 내에서 발생하는 전체 이벤트에 대하여 동일한 이벤트의 발생 비율이나 특정 이벤트가 발생하는 빈도를 기반으로 악성 코드를 탐지하거나 분류한다.In addition, the method of measuring similarity of malicious code using an event within a limited range of the previously announced detects or classifies malicious code based on the occurrence rate of the same event or the frequency of occurrence of a specific event for all events occurring in the program. do.
이러한, 종래의 악성코드 탐지 및 분류 시스템은 기존에 미리 발견되지 않아 시그니처가 저장되지 않은 악성코드에 대해서는 탐지가 거의 불가능하다.Such a conventional malware detection and classification system is almost impossible to detect for a malicious code that has not been previously stored in a signature since it is not previously detected.
또한, 동일한 이벤트가 발생하는 프로그램이라고 하더라도 그 용도가 매우 다를 수 있다. In addition, even if the program occurs the same event, its use may be very different.
예를 들어 파일을 열고 메시지를 송수신하는 프로그램과 메시지를 송수신하고 파일을 여는 프로그램의 경우 파일을 여는 이벤트와 메시지를 송수신하는 이벤트가 동일하게 발생하지만 앞의 프로그램을 내부의 정보를 외부로 유출하는 스파이웨어가 될 수 있고 후자의 경우 외부로부터 명령을 받아 피해 컴퓨터의 정보를 조작하는 트로이 목마류의 악성코드가 될 수 있다. For example, a program that opens a file and sends or receives a message, and a program that sends or receives a message and opens a file has the same event of opening a file and sending or receiving a message, but the spy that leaks internal information to the outside program. It can be a piece of hardware, and in the latter case, it can be a Trojan-like malware that manipulates information on a victim computer by receiving commands from the outside.
그러므로 프로그램에서 발생하는 이벤트의 종류와 빈도는 물론 이벤트가 발생하는 순서를 포함하지 않을 경우 잘못된 탐지 및 분류가 이루어질 수 있었다.Therefore, if the program does not include the type and frequency of events occurring as well as the order in which the events occur, false detection and classification could occur.
본 발명의 일실시예는 프로그램을 구성하는 이벤트의 종류와 순서를 함께 활용하여 악성 코드를 정밀하게 분석할 수 있는 악성 코드 감지 장치를 제공한다.One embodiment of the present invention provides a malicious code detection device that can accurately analyze malicious code by utilizing the type and sequence of events constituting the program.
본 발명의 일실시예는 기능적으로 유사한 행위를 하는 프로그램을 같은 종류로 분류함으로서, 악성코드의 분류 장치의 성능을 향상시키는 것을 목적으로 한다.An embodiment of the present invention is to improve the performance of the classification apparatus of malicious code by classifying programs having functionally similar behavior into the same kind.
본 발명의 일실시예에 따른 악성 코드 자동 감지 장치는 하나 이상의 프로그램으로부터 기설정된 범위 내에 속하는 하나 이상의 이벤트를 추출하여 하나 이상의 이벤트 집합을 생성하는 제1 추출부, 상기 하나 이상의 이벤트 집합 중 상기 하나 이상의 프로그램의 유사도 판단에 불필요한 이벤트를 제거하는 제거부, 상기 하나 이상의 이벤트 집합에 포함된 하나 이상의 이벤트를 일반화(normalizing) 하는 교정부, 상기 각각의 이벤트 집합을 분석하여 동일 순서로 나타나는 이벤트를 추출하는 제2 추출부, 상기 추출된 이벤트 순서를 기반으로 상기 하나 이상의 프로그램의 유사도를 계산하는 유사도 계산부 및 상기 유사도를 기반으로 상기 하나 이상의 프로그램에 대한 악성 코드를 분류하는 악성 코드 분류부를 포함한다. An apparatus for automatically detecting malicious code according to an embodiment of the present invention may include: a first extractor configured to extract one or more events within a predetermined range from one or more programs to generate one or more event sets; and the one or more of the one or more event sets. A removing unit for removing events unnecessary for determining similarity of a program, a correcting unit for normalizing one or more events included in the one or more event sets, and extracting events appearing in the same order by analyzing the respective event sets. And a second extracting unit, a similarity calculating unit calculating a similarity of the one or more programs based on the extracted event sequence, and a malicious code classification unit classifying malicious codes for the one or more programs based on the similarity.
본 발명의 일측에 따르면, 상기 하나 이상의 이벤트는 상기 하나 이상의 프로그램이 악성 코드로 판단되어 수행되는 기능적 요소일 수 있다.According to one aspect of the invention, the one or more events may be a functional element that is performed by determining that the one or more programs are malicious code.
본 발명의 일측에 따르면, 상기 제1 추출부는 상기 하나 이상의 프로그램으로부터 이벤트가 발생되는 순서에 따라 상기 하나 이상의 이벤트를 추출하여 상기 하나 이상의 이벤트 집합을 생성할 수 있다.According to one aspect of the present invention, the first extractor may generate the one or more event sets by extracting the one or more events in the order in which the events occur from the one or more programs.
본 발명의 일측에 따르면, 상기 교정부는 상기 하나 이상의 이벤트 중 동일 기능을 수행하는 이벤트를 일반화(normalizing) 하여 하나의 이벤트로 교정하는 일반화부를 포함할 수 있다. According to one aspect of the invention, the calibration unit may include a generalization unit for normalizing the event performing the same function among the one or more events (correction) to a single event.
본 발명의 일측에 따르면, 상기 교정부는 상기 하나 이상의 이벤트 중 둘 이상의 단계로 분류된 이벤트를 서로 결합하여 하나의 이벤트로 교정하는 결합부를 포함할 수 있다. According to one aspect of the invention, the calibration unit may include a coupling unit for combining the events classified into two or more stages of the one or more events to each other to correct as one event.
본 발명의 일측에 따르면, 상기 제2 추출부는 상기 각각의 이벤트 집합으로부터 상기 추출된 이벤트를 제거할 수 있다.According to one side of the present invention, the second extraction unit may remove the extracted event from the respective event set.
본 발명의 일측에 따르면, 상기 제2 추출부는 상기 각각의 이벤트 집합에 상기 동일 순서로 나타나는 이벤트가 없을 때까지 상기 동일 순서로 나타나는 이벤트를 추출하고, 상기 각각의 이벤트 집합으로부터 상기 추출된 이벤트를 제거하는 것을 반복하여 수행할 수 있다. According to one aspect of the present invention, the second extracting unit extracts the events appearing in the same order until there are no events appearing in the same order in each event set, and removes the extracted events from the respective event sets. Can be done repeatedly.
본 발명의 일실시예에 따른 악성 코드 자동 탐지 방법은 하나 이상의 프로그램으로부터 기설정된 범위 내에 속하는 하나 이상의 이벤트를 추출하여 하나 이상의 이벤트 집합을 생성하는 단계, 상기 하나 이상의 이벤트 집합 중 상기 하나 이상의 프로그램의 유사도 판단에 불필요한 이벤트를 제거하는 단계, 상기 하나 이상의 이벤트 집합에 포함된 하나 이상의 이벤트를 일반화(normalizing) 하는 단계, 상기 각각의 이벤트 집합을 분석하여 동일 순서로 나타나는 이벤트를 추출하는 단계, 상기 추출된 이벤트 순서를 기반으로 상기 하나 이상의 프로그램의 유사도를 계산하는 단계 및 상기 유사도를 기반으로 상기 하나 이상의 프로그램에 대한 악성 코드를 분류하는 단계를 포함한다.In the method for automatically detecting malicious code according to an embodiment of the present invention, generating one or more event sets by extracting one or more events within a predetermined range from one or more programs, and similarity of the one or more programs among the one or more event sets. Removing events unnecessary for the determination, normalizing one or more events included in the one or more event sets, analyzing each event set, and extracting events that appear in the same order, and extracting the extracted events. Calculating similarity of the one or more programs based on the order and classifying malicious code for the one or more programs based on the similarity.
본 발명의 일실시예에 따르면 프로그램을 구성하는 이벤트의 종류와 순서를 함께 활용하여 악성 코드를 정밀하게 분석할 수 있다.According to an embodiment of the present invention, the malicious code may be precisely analyzed by utilizing the type and sequence of events constituting the program.
본 발명의 일실시예에 따르면 기능적으로 유사한 행위를 하는 프로그램을 같은 종류로 분류함으로서, 악성코드의 분류 장치의 성능을 향상시킬 수 있다.According to an embodiment of the present invention, by classifying programs having functionally similar behavior into the same kind, it is possible to improve the performance of the classification apparatus of malicious codes.
본 발명의 일실시예에 따르면 각 이벤트가 발생하는 순서를 고려하여 동일한 이벤트가 동일한 순서로 나타나는 경우 프로그램의 특징을 규정함으로써, 정확한 기능 분석이 가능하여 탐지 및 분류의 성능을 향상시킬 것으로 기대할 수 있다.According to an embodiment of the present invention, if the same events appear in the same order in consideration of the order in which each event occurs, by defining the characteristics of the program, it can be expected to improve the performance of detection and classification by enabling accurate function analysis. .
도 1은 본 발명의 일실시예에 따른 악성 코드 자동 탐지 장치의 구성을 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 악성 코드 자동 탐지 방법을 도시한 흐름도이다.
도 3 내지 도 8은 본 발명의 일측에 따른 동일한 순서를 가지는 이벤트의 추출 과정을 도시한 도면이다.
도 9는 본 발명의 일실시예에 따른 악성 코드 자동 탐지 방법의 상세 흐름을 도시한 도면이다.1 is a block diagram showing the configuration of an automatic malicious code detection apparatus according to an embodiment of the present invention.
2 is a flowchart illustrating a malicious code automatic detection method according to an embodiment of the present invention.
3 to 8 are diagrams illustrating an extraction process of events having the same order according to one side of the present invention.
9 is a diagram illustrating a detailed flow of a method for automatically detecting malicious codes according to an embodiment of the present invention.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 실시예를 상세하게 설명하지만, 본 발명이 실시예에 의해 제한되거나 한정되는 것은 아니다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings and accompanying drawings, but the present invention is not limited to or limited by the embodiments.
한편, 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.On the other hand, in describing the present invention, when it is determined that the detailed description of the related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. The terminology used herein is a term used for appropriately expressing an embodiment of the present invention, which may vary depending on the user, the intent of the operator, or the practice of the field to which the present invention belongs. Therefore, the definitions of the terms should be made based on the contents throughout the specification.
본 발명의 일실시예에 따른 악성 코드 자동 탐지 장치는 디스어셈블링(Disassembling)을 통해 추출한 명령어의 집합 또는 호출되는 API(Application Programming Interface)의 집합 등 과 같이 프로그램을 구성하고 있는 이벤트가 유한 범위 집합의 이벤트일 경우, 각 프로그램에 동일하게 포함된 이벤트의 비율로 유사도를 계산하여 악성 코드를 탐지할 수 있다.Automatic malware detection device according to an embodiment of the present invention is a finite range set of events constituting a program, such as a set of instructions extracted through disassembling or a set of called API (Application Programming Interface) In the event of, the malicious code can be detected by calculating the similarity as a percentage of the events included in each program.
도 1은 본 발명의 일실시예에 따른 악성 코드 자동 탐지 장치의 구성을 도시한 블록도이다.1 is a block diagram showing the configuration of an automatic malicious code detection apparatus according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일실시예에 따른 악성 코드 자동 탐지 장치는 하나 이상의 프로그램으로부터 기설정된 범위 내에 속하는 하나 이상의 이벤트를 추출하여 하나 이상의 이벤트 집합을 생성하는 제1 추출부(110), 상기 하나 이상의 이벤트 집합 중 상기 하나 이상의 프로그램의 유사도 판단에 불필요한 이벤트를 제거하는 제거부(120), 상기 하나 이상의 이벤트 집합에 포함된 하나 이상의 이벤트를 일반화(normalizing) 하는 교정부(130), 상기 각각의 이벤트 집합을 분석하여 동일 순서로 나타나는 이벤트를 추출하는 제2 추출부(140), 상기 추출된 이벤트 순서를 기반으로 상기 하나 이상의 프로그램의 유사도를 계산하는 유사도 계산부(150) 및 상기 유사도를 기반으로 상기 하나 이상의 프로그램에 대한 악성 코드를 분류하는 악성 코드 분류부(160)로 구성된다.Referring to FIG. 1, the apparatus for automatically detecting malicious code according to an embodiment of the present invention may include: a first extracting
여기서, 상기 하나 이상의 이벤트는 상기 하나 이상의 프로그램이 악성 코드로 판단되어 수행되는 기능적 요소를 의미하며, 예를 들어, 프로그램이 호출하는 API나 동작에 필요한 인스트럭션 등을 의미한다.Here, the one or more events refers to a functional element that is performed when the one or more programs are determined to be malicious code. For example, the one or more events may mean an API or an instruction required for an operation.
본 발명의 일측에 따르면, 제1 추출부(110)는 악성 코드 저장부(170)의 데이터를 기반으로 하나 이상의 이벤트를 추출하여 하나 이상의 이벤트 집합을 생성할 수 있다.According to one side of the present invention, the
본 발명의 일측에 따르면, 제거부(120)는 양성 코드 저장부(180)의 데이터를 기반으로 상기 하나 이상의 프로그램의 유사도 판단에 불필요한 이벤트를 제거할 수 있다.According to one side of the present invention, the
아래에서는 본 발명의 일실시예에 따른 악성 코드 자동 탐지 방법을 설명하도록 한다.Hereinafter will be described a malicious code automatic detection method according to an embodiment of the present invention.
도 2는 본 발명의 일실시예에 따른 악성 코드 자동 탐지 방법을 도시한 흐름도이다.2 is a flowchart illustrating a malicious code automatic detection method according to an embodiment of the present invention.
도 2를 참조하면, 본 발명의 일측에 따른 악성 코드 자동 탐지 장치는 동일 범위에서 추출이 가능한 이벤트를 발생하는 순서에 따라 상기 하나 이상의 이벤트를 추출하여 이벤트 집합을 생성한다(210).Referring to FIG. 2, the apparatus for automatically detecting malicious code according to an embodiment of the present invention generates an event set by extracting the one or more events in the order of generating the extractable events in the same range (210).
본 발명의 일측에 따르면, 제1 추출부(110)는 상기 하나 이상의 프로그램, 예를 들어, 프로그램 A와 B로부터 이벤트가 발생되는 순서에 따라 상기 하나 이상의 이벤트를 추출하여 상기 하나 이상의 이벤트 집합을 생성할 수 있다(210).According to one aspect of the invention, the
본 발명의 일측에 따르면, 제거부(120)는 상기 하나 이상의 이벤트 집합 중 상기 하나 이상의 프로그램의 유사도 판단에 불필요한 이벤트를 제거함으로써, 이벤트 집합을 필터링 한다(220).According to an aspect of the present invention, the
본 발명의 일측에 따르면, 교정부(130)는 일반화부(미도시)를 이용하여 상기 하나 이상의 이벤트 중 동일 기능을 수행하는 이벤트를 일반화(normalizing) 하여 하나의 이벤트로 교정할 수 있다.According to one side of the present invention, the
본 발명의 일측에 따르면, 교정부(130)는 결합부(미도시)를 이용하여 상기 하나 이상의 이벤트 중 둘 이상의 단계로 분류된 이벤트를 서로 결합하여 하나의 이벤트로 교정할 수 있다(230).According to one side of the present invention, the
본 발명의 일측에 따르면, 제2 추출부(140)는 상기 각각의 이벤트 집합을 분석하여 동일 순서로 나타나는 이벤트를 추출할 수 있다(240).According to one side of the present invention, the
본 발명의 일측에 따르면, 제2 추출부(140)는 상기 각각의 이벤트 집합으로부터 상기 추출된 이벤트를 제거할 수 있다.According to one side of the present invention, the
본 발명의 일측에 따르면, 제2 추출부(140)는 동일 이벤트가 남아있는지 여부를 판단하여 상기 각각의 이벤트 집합에 상기 동일 순서로 나타나는 이벤트가 없을 때까지 상기 동일 순서로 나타나는 이벤트를 추출하고, 상기 각각의 이벤트 집합으로부터 상기 추출된 이벤트를 제거하는 것을 반복하여 수행할 수 있다(250).According to one side of the present invention, the
본 발명의 일측에 따르면, 유사도 계산부(150)는 하기 수학식 1을 이용하여 상기 유사도를 계산할 수 있다(260).According to one side of the present invention, the
[수학식 1][Equation 1]
여기서, 상기 P(A, B)는 프로그램 A의 이벤트 집합과 프로그램 B의 이벤트 집합에 대한 유사도이고, 상기 n(X)는 소정의 이벤트 집합 X의 순서이고, 상기 S(A, B)는 이벤트 집합 A와 이벤트 집합 B에 대한 동일 시퀀스에 대응 될 수 있다.Here, P (A, B) is a similarity degree between the event set of program A and the event set of program B, wherein n (X) is a sequence of a predetermined event set X, and S (A, B) is an event set. It can correspond to the same sequence for A and event set B.
아래에서는 본 발명의 일측에 따라 동일한 순서를 가지는 이벤트의 추출 과정을 설명하도록 한다.Hereinafter, the extraction process of events having the same order according to one side of the present invention.
도 3 내지 도 8은 본 발명의 일측에 따른 동일한 순서를 가지는 이벤트의 추출 과정을 도시한 도면이다.3 to 8 are diagrams illustrating an extraction process of events having the same order according to one side of the present invention.
도 3에 도시된 바와 같이, 본 발명의 일측에 따른 악성 코드 자동 탐지 장치는 각 프로그램으로부터 이벤트가 발생하는 순서에 따라 상기 하나 이상의 이벤트를 추출하여 이벤트 집합을 생성한다.As illustrated in FIG. 3, the apparatus for automatically detecting malicious code according to an embodiment of the present invention extracts the one or more events in order of generating an event from each program to generate an event set.
도 4에 도시된 바와 같이, 본 발명의 일측에 따른 악성 코드 자동 탐지 장치는 프로그램 A의 이벤트 3과 동일한 기능을 하지만, 이름이 다른 프로그램 B의 이벤트 3’1을 이벤트 3으로 교정할 수 있다.As shown in FIG. 4, the automatic malicious code detection apparatus according to one embodiment of the present invention has the same function as Event 3 of Program A, but may correct Event 3 ′ 1 of Program B having a different name to Event 3.
본 발명의 일측에 따른 악성 코드 자동 탐지 장치는 프로그램 B의 이벤트 6과 동일한 기능을 하지만 하위 단계의 두 이벤트로 나누어져 있는 이벤트 6’1과 이벤트 6’2를 하나의 이벤트 6으로 교정 하는 등의 일반화 과정을 수행 할 수 있다.Malware automatic detection device according to one aspect of the present invention has the same function as the event 6 of the program B, but the event 6'1 and event 6'2 divided into two events of the lower stage, such as correcting the event 6 The generalization process can be performed.
도 5에 도시된 바와 같이, 본 발명의 일측에 따른 악성 코드 자동 탐지 장치는 프로그램 A를 기준 프로그램으로 가정하는 경우, 프로그램 B의 이벤트 가운데 프로그램 A와 동일한 순서로 발생하는 이벤트를 추출할 수 있다.As shown in FIG. 5, when the automatic malicious code detection apparatus according to the present invention assumes program A as a reference program, the malicious code automatic detection device may extract events occurring in the same order as program A among the events of program B.
예를 들어, 본 발명의 일측에 따른 악성 코드 자동 탐지 장치는 프로그램 A와 프로그램 B에서 동일한 순서로 발생하는 이벤트 1 내지 이벤트 3을 추출할 수 있다.For example, the apparatus for automatically detecting malicious code according to one side of the present invention may extract events 1 to 3 that occur in the same order in program A and program B. FIG.
도 6에 도시된 바와 같이, 본 발명의 일측에 따른 악성 코드 자동 탐지 장치는 제1 추출부(110)를 통하여 추출된 이벤트를 제거하고 남은 이벤트 집합에서 같은 방식으로 동일한 순서로 발생되는 이벤트 8 및 이벤트 9를 추출할 수 있다.As shown in FIG. 6, the apparatus for automatically detecting malicious code according to an embodiment of the present invention removes an event extracted through the
도 7에 도시된 바와 같이, 본 발명의 일측에 따른 악성 코드 자동 탐지 장치는 두 이벤트 집합 간에 동일한 순서로 발생하는 이벤트가 존재하지 않을 때까지 도 6의 과정을 반복 수행할 수 있다.As illustrated in FIG. 7, the apparatus for automatically detecting malicious codes according to an embodiment of the present invention may repeat the process of FIG. 6 until there are no events occurring in the same order between two event sets.
도 8에 도시된 바와 같이, 본 발명의 일측에 따른 악성 코드 자동 탐지 장치는 동일한 순서로 발생하는 이벤트를 모두 추출하면 추출된 결과를 기반으로 유사도를 계산할 수 있다.As illustrated in FIG. 8, when the malicious code automatic detection apparatus according to the present invention extracts all the events occurring in the same order, the similarity may be calculated based on the extracted result.
아래에서는, 본 발명의 일실시예에 따른 악성 코드 자동 탐지 방법을 정리하여 설명하도록 한다.In the following, the malicious code automatic detection method according to an embodiment of the present invention will be described collectively.
도 9는 본 발명의 일실시예에 따른 악성 코드 자동 탐지 방법의 상세 흐름을 도시한 도면이다.9 is a diagram illustrating a detailed flow of a method for automatically detecting malicious codes according to an embodiment of the present invention.
도 9를 참조하면, 본 발명의 일실시예에 따른 악성 코드 자동 탐지 장치는 하나 이상의 프로그램으로부터 기설정된 범위 내에 속하는 하나 이상의 이벤트를 추출하여 하나 이상의 이벤트 집합을 생성한다(910).Referring to FIG. 9, the apparatus for automatically detecting malicious code according to an embodiment of the present invention extracts one or more events within a predetermined range from one or more programs to generate one or more event sets (910).
본 발명의 일실시예에 따른 악성 코드 자동 탐지 장치는 상기 하나 이상의 이벤트 집합 중 상기 하나 이상의 프로그램의 유사도 판단에 불필요한 이벤트를 제거한다(920).The automatic malicious code detection apparatus according to an embodiment of the present invention removes an event unnecessary for determining similarity of the one or more programs among the one or more event sets (920).
본 발명의 일실시예에 따른 악성 코드 자동 탐지 장치는 상기 하나 이상의 이벤트 집합에 포함된 하나 이상의 이벤트를 일반화(normalizing) 한다(930).The automatic malicious code detection apparatus according to an embodiment of the present invention normalizes one or more events included in the one or more event sets (930).
본 발명의 일실시예에 따른 악성 코드 자동 탐지 장치는 상기 각각의 이벤트 집합을 분석하여 동일 순서로 나타나는 이벤트를 추출한다(940).The automatic malicious code detection apparatus according to an embodiment of the present invention analyzes each event set and extracts the events appearing in the same order (940).
본 발명의 일실시예에 따른 악성 코드 자동 탐지 장치는 상기 추출된 이벤트 순서를 기반으로 상기 하나 이상의 프로그램의 유사도를 계산한다(950).The automatic malicious code detection apparatus according to an embodiment of the present invention calculates the similarity of the one or more programs based on the extracted event sequence (950).
본 발명의 일실시예에 따른 악성 코드 자동 탐지 장치는 상기 유사도를 기반으로 상기 하나 이상의 프로그램에 대한 악성 코드를 분류한다(960).The automatic malicious code detection apparatus according to an embodiment of the present invention classifies malicious code for the one or more programs based on the similarity (960).
본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Embodiments according to the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as a hard disk, a floppy disk, and a magnetic tape; optical media such as CD-ROM and DVD; magnetic recording media such as a floppy disk; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.As described above, the present invention has been described by specific embodiments such as specific components and the like. For those skilled in the art, various modifications and variations are possible from these descriptions. Accordingly, the spirit of the present invention should not be construed as being limited to the embodiments described, and all of the equivalents or equivalents of the claims, as well as the following claims, belong to the scope of the present invention .
110: 제1 추출부
120: 제거부
130: 교정부
140: 제2 추출부
150: 유사도 계산부
160: 악성 코드 분류부
170: 악성 코드 저장부
180: 양성 코드 저장부110: first extraction unit
120: remover
130: correction
140: second extraction unit
150: similarity calculation unit
160: malware classification unit
170: malware storage unit
180: positive code storage unit
Claims (9)
상기 하나 이상의 이벤트 집합 중 상기 하나 이상의 프로그램의 유사도 판단에 불필요한 이벤트를 제거하는 단계;
상기 하나 이상의 이벤트 중 동일한 기능을 수행하는 이벤트를 하나의 이벤트로 교정하거나 상기 하나 이상의 이벤트 중 동일한 기능을 수행하지만 둘 이상의 단계로 분류된 이벤트를 결합하여 하나의 이벤트로 교정하는 단계;
상기 각각의 이벤트 집합을 분석하여 동일 순서로 나타나는 이벤트를 추출하는 단계;
상기 추출된 이벤트 순서를 기반으로 상기 하나 이상의 프로그램의 유사도를 계산하는 단계; 및
상기 유사도를 기반으로 상기 하나 이상의 프로그램에 대한 악성 코드를 분류하는 단계
를 포함하는 악성 코드 자동 탐지 방법.Generating one or more event sets by extracting one or more events within a preset range from one or more programs;
Removing events unnecessary to determine similarity of the one or more programs among the one or more event sets;
Correcting an event performing the same function among the one or more events into one event or combining an event performing the same function among the one or more events but classified into two or more steps into one event;
Analyzing the respective event sets to extract the events appearing in the same order;
Calculating a similarity degree of the one or more programs based on the extracted event sequence; And
Classifying malicious code for the one or more programs based on the similarity;
Malware automatic detection method comprising a.
상기 하나 이상의 이벤트는,
상기 하나 이상의 프로그램이 악성 코드로 판단되어 수행되는 기능적 요소인 것을 특징으로 하는 악성 코드 자동 탐지 방법.The method of claim 1,
The one or more events,
Automatic detection method for malicious code, characterized in that the at least one program is a functional element that is determined to be performed as malicious code.
하나 이상의 이벤트 집합을 생성하는 단계는,
상기 하나 이상의 프로그램으로부터 이벤트가 발생되는 순서에 따라 상기 하나 이상의 이벤트를 추출하여 상기 하나 이상의 이벤트 집합을 생성하는 단계
를 포함하는 악성 코드 자동 탐지 방법.The method of claim 1,
Generating one or more event sets
Generating the one or more event sets by extracting the one or more events according to the order in which the events occur from the one or more programs
Malware automatic detection method comprising a.
상기 각각의 이벤트 집합으로부터 상기 동일 순서로 나타나는 이벤트를 제거하는 단계
를 더 포함하는 악성 코드 자동 탐지 방법.The method of claim 1,
Removing the events appearing in the same order from the respective event set.
Malware automatic detection method comprising more.
상기 동일 순서로 나타나는 이벤트를 추출하는 단계; 및
상기 각각의 이벤트 집합으로부터 상기 추출된 이벤트를 제거하는 단계
상기 각각의 이벤트 집합에 상기 동일 순서로 나타나는 이벤트가 없을 때까지 반복하여 수행하는 악성 코드 자동 탐지 방법.The method according to claim 6,
Extracting the events appearing in the same order; And
Removing the extracted event from the respective event set
Automatically detecting malicious code repeatedly until there are no events appearing in the same order in each event set.
상기 유사도를 계산하는 단계는,
하기 수학식 1을 이용하여 상기 유사도를 계산하는 것을 특징으로 하는 악성 코드 자동 탐지 방법.
[수학식 1]
여기서, 상기 P(A, B)는 프로그램 A의 이벤트 집합과 프로그램 B의 이벤트 집합에 대한 유사도이고, 상기 n(X)는 소정의 이벤트 집합 X의 순서이고, 상기 S(A, B)는 이벤트 집합 A와 이벤트 집합 B에 대한 동일 시퀀스에 대응됨.The method of claim 1,
Calculating the similarity,
Malicious code automatic detection method characterized in that for calculating the similarity using Equation 1.
[Equation 1]
Here, P (A, B) is a similarity degree between the event set of program A and the event set of program B, wherein n (X) is a sequence of a predetermined event set X, and S (A, B) is an event set. Corresponds to the same sequence for A and event set B.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110144786A KR101308228B1 (en) | 2011-12-28 | 2011-12-28 | Method for automatic detecting malware code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110144786A KR101308228B1 (en) | 2011-12-28 | 2011-12-28 | Method for automatic detecting malware code |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130076266A KR20130076266A (en) | 2013-07-08 |
KR101308228B1 true KR101308228B1 (en) | 2013-09-13 |
Family
ID=48989902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110144786A KR101308228B1 (en) | 2011-12-28 | 2011-12-28 | Method for automatic detecting malware code |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101308228B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150084123A (en) | 2014-01-13 | 2015-07-22 | 한국전자통신연구원 | Apparatus and method for detecting abnormal behavior |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101508577B1 (en) * | 2013-10-08 | 2015-04-07 | 고려대학교 산학협력단 | Device and method for detecting malware |
US10747880B2 (en) * | 2013-12-30 | 2020-08-18 | University Of Louisiana At Lafayette | System and method for identifying and comparing code by semantic abstractions |
KR101620931B1 (en) | 2014-09-04 | 2016-05-13 | 한국전자통신연구원 | Similar malicious code retrieval apparatus and method based on malicious code feature information |
KR102046249B1 (en) * | 2018-04-11 | 2019-11-18 | 고려대학교 산학협력단 | Method for Feature Selection of Machine Learning Based Malware Detection, RECORDING MEDIUM and Apparatus FOR PERFORMING THE METHOD |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100799302B1 (en) * | 2006-06-21 | 2008-01-29 | 한국전자통신연구원 | A system and method for detection of a hidden process using system event |
-
2011
- 2011-12-28 KR KR1020110144786A patent/KR101308228B1/en not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100799302B1 (en) * | 2006-06-21 | 2008-01-29 | 한국전자통신연구원 | A system and method for detection of a hidden process using system event |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150084123A (en) | 2014-01-13 | 2015-07-22 | 한국전자통신연구원 | Apparatus and method for detecting abnormal behavior |
Also Published As
Publication number | Publication date |
---|---|
KR20130076266A (en) | 2013-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10523697B2 (en) | Method and apparatus for detecting cyberthreats through correlation analysis | |
US9621571B2 (en) | Apparatus and method for searching for similar malicious code based on malicious code feature information | |
KR101308228B1 (en) | Method for automatic detecting malware code | |
US20150256552A1 (en) | Imalicious code detection apparatus and method | |
KR101162051B1 (en) | Using string comparison malicious code detection and classification system and method | |
TWI419003B (en) | A method and a system for automatically analyzing and classifying a malicious program | |
KR101228899B1 (en) | Method and Apparatus for categorizing and analyzing Malicious Code Using Vector Calculation | |
US20120240231A1 (en) | Apparatus and method for detecting malicious code, malicious code visualization device and malicious code determination device | |
JP2013511097A5 (en) | ||
WO2019169760A1 (en) | Test case range determining method, device, and storage medium | |
JP6778761B2 (en) | Extraction and comparison of hybrid program binary features | |
KR20160082644A (en) | Method and apparatus for detecting malware by code block classification | |
KR101602881B1 (en) | System ang method for detecting malignant code of analysis avoid type | |
KR102151318B1 (en) | Method and apparatus for malicious detection based on heterogeneous information network | |
KR20140030989A (en) | Method of obtaining signature of apk files for android operating system, and computer-readable recording medium with apk file signature computing program for the same | |
WO2017036154A1 (en) | Information processing method, server and computer storage medium | |
JP2017142744A (en) | Information processing apparatus, virus detection method, and program | |
CN104504334A (en) | System and method used for evaluating selectivity of classification rules | |
CN104077527A (en) | Method and device for generating virus detection machine and method and device for virus detection | |
KR101056283B1 (en) | Malware detection device and method | |
US10984105B2 (en) | Using a machine learning model in quantized steps for malware detection | |
CN104636661A (en) | Method and system for analyzing Android application program | |
CN104424435B (en) | A kind of method and device obtaining virus signature | |
KR101550820B1 (en) | The device for analyzing a malware based on similarity | |
CN104035866B (en) | The software action appraisal procedure and device of analysis are called based on system |
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: 20160705 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |