KR20130076266A - Method for automatic detecting malware code - Google Patents

Method for automatic detecting malware code Download PDF

Info

Publication number
KR20130076266A
KR20130076266A KR1020110144786A KR20110144786A KR20130076266A KR 20130076266 A KR20130076266 A KR 20130076266A KR 1020110144786 A KR1020110144786 A KR 1020110144786A KR 20110144786 A KR20110144786 A KR 20110144786A KR 20130076266 A KR20130076266 A KR 20130076266A
Authority
KR
South Korea
Prior art keywords
event
events
program
similarity
malicious code
Prior art date
Application number
KR1020110144786A
Other languages
Korean (ko)
Other versions
KR101308228B1 (en
Inventor
김인경
임을규
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020110144786A priority Critical patent/KR101308228B1/en
Publication of KR20130076266A publication Critical patent/KR20130076266A/en
Application granted granted Critical
Publication of KR101308228B1 publication Critical patent/KR101308228B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/561Virus type analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

PURPOSE: An automatic malicious code detecting method is provided to improve the performance of a malicious code classification device by classifying similar programs as the same kind. CONSTITUTION: An event set is generated by extracting an event in a range set by a program (910). An unnecessary event to determine the similarity of the program is removed from the event set (920). An event included in the event set is generalized (930). An event indicated as the same order is extracted by analyzing the event set (940). The similarity of the program is calculated based on event order (950). A malicious code of the program is classified based on the similarity (960). [Reference numerals] (910) Event set is generated by extracting an event in a range set by a program; (920) Unnecessary event to determine the similarity of the program is removed from the event set; (930) Event included in the event set is generalized; (940) Event indicated as the same order is extracted by analyzing the event set; (950) Similarity of the program is calculated based on event order; (960) Malicious code of the program is classified based on the similarity; (AA) Start; (BB) End

Description

악성 코드 자동 탐지 방법{METHOD FOR AUTOMATIC DETECTING MALWARE CODE}How to detect malware automatically {METHOD FOR AUTOMATIC DETECTING MALWARE CODE}

본 발명의 실시예들은 악성 코드 자동 탐지 방법에 관한 것으로서, 더욱 상세하게는 동일 이벤트 풀에서 선택된 이벤트로 이루어진 두 악성 코드의 순차적 특성을 활용하여 유사도를 계산하고, 계산된 유사도에 따라 동종 악성 코드를 탐지하거나 분류하는 방법에 관한 것이다.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 unit 110 extracting one or more events within a preset range from one or more programs to generate one or more event sets; A removal unit 120 for removing unnecessary events for determining similarity of the one or more programs among the one or more event sets, and a calibrating unit 130 for normalizing one or more events included in the one or more event sets, respectively. The second extraction unit 140 extracts the events appearing in the same order by analyzing the event set of the second, the similarity calculator 150 for calculating the similarity of the one or more programs based on the extracted event sequence and the similarity As a malicious code classification unit 160 for classifying malicious codes for the one or more programs. It is.

여기서, 상기 하나 이상의 이벤트는 상기 하나 이상의 프로그램이 악성 코드로 판단되어 수행되는 기능적 요소를 의미하며, 예를 들어, 프로그램이 호출하는 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 first extraction unit 110 may generate one or more event sets by extracting one or more events based on the data of the malicious code storage unit 170.

본 발명의 일측에 따르면, 제거부(120)는 양성 코드 저장부(180)의 데이터를 기반으로 상기 하나 이상의 프로그램의 유사도 판단에 불필요한 이벤트를 제거할 수 있다.According to one side of the present invention, the removal unit 120 may remove an event unnecessary for determining the similarity of the one or more programs based on the data of the positive code storage unit 180.

아래에서는 본 발명의 일실시예에 따른 악성 코드 자동 탐지 방법을 설명하도록 한다.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 first extraction unit 110 generates the at least one event set by extracting the at least one event in the order in which events occur from the at least one program, for example, programs A and B. It may be 210.

본 발명의 일측에 따르면, 제거부(120)는 상기 하나 이상의 이벤트 집합 중 상기 하나 이상의 프로그램의 유사도 판단에 불필요한 이벤트를 제거함으로써, 이벤트 집합을 필터링 한다(220).According to an aspect of the present invention, the removal unit 120 filters the event set by removing an event unnecessary to determine the similarity of the one or more programs among the one or more event sets (220).

본 발명의 일측에 따르면, 교정부(130)는 일반화부(미도시)를 이용하여 상기 하나 이상의 이벤트 중 동일 기능을 수행하는 이벤트를 일반화(normalizing) 하여 하나의 이벤트로 교정할 수 있다.According to one side of the present invention, the calibration unit 130 may normalize an event performing the same function among the one or more events using a generalization unit (not shown) to correct it into one event.

본 발명의 일측에 따르면, 교정부(130)는 결합부(미도시)를 이용하여 상기 하나 이상의 이벤트 중 둘 이상의 단계로 분류된 이벤트를 서로 결합하여 하나의 이벤트로 교정할 수 있다(230).According to one side of the present invention, the calibration unit 130 may combine the events classified into two or more stages of the one or more events using a coupling unit (not shown) and correct them into one event (230).

본 발명의 일측에 따르면, 제2 추출부(140)는 상기 각각의 이벤트 집합을 분석하여 동일 순서로 나타나는 이벤트를 추출할 수 있다(240).According to one side of the present invention, the second extraction unit 140 may analyze the respective event set to extract the events appearing in the same order (240).

본 발명의 일측에 따르면, 제2 추출부(140)는 상기 각각의 이벤트 집합으로부터 상기 추출된 이벤트를 제거할 수 있다.According to one side of the present invention, the second extraction unit 140 may remove the extracted event from the respective event set.

본 발명의 일측에 따르면, 제2 추출부(140)는 동일 이벤트가 남아있는지 여부를 판단하여 상기 각각의 이벤트 집합에 상기 동일 순서로 나타나는 이벤트가 없을 때까지 상기 동일 순서로 나타나는 이벤트를 추출하고, 상기 각각의 이벤트 집합으로부터 상기 추출된 이벤트를 제거하는 것을 반복하여 수행할 수 있다(250).According to one side of the present invention, the second extraction unit 140 determines whether the same event remains, and extracts the events appearing in the same order until there are no events appearing in the same order in each event set, Removing the extracted event from each event set may be repeatedly performed (250).

본 발명의 일측에 따르면, 유사도 계산부(150)는 하기 수학식 1을 이용하여 상기 유사도를 계산할 수 있다(260).According to one side of the present invention, the similarity calculator 150 may calculate the similarity using Equation 1 below (260).

[수학식 1][Equation 1]

Figure pat00001
Figure pat00001

여기서, 상기 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 first extraction unit 110 and generates an event 8 generated in the same order in the same manner in the remaining event set. You can extract event 9.

도 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)

하나 이상의 프로그램으로부터 기설정된 범위 내에 속하는 하나 이상의 이벤트를 추출하여 하나 이상의 이벤트 집합을 생성하는 단계;
상기 하나 이상의 이벤트 집합 중 상기 하나 이상의 프로그램의 유사도 판단에 불필요한 이벤트를 제거하는 단계;
상기 하나 이상의 이벤트 집합에 포함된 하나 이상의 이벤트를 일반화(normalizing) 하는 단계;
상기 각각의 이벤트 집합을 분석하여 동일 순서로 나타나는 이벤트를 추출하는 단계;
상기 추출된 이벤트 순서를 기반으로 상기 하나 이상의 프로그램의 유사도를 계산하는 단계; 및
상기 유사도를 기반으로 상기 하나 이상의 프로그램에 대한 악성 코드를 분류하는 단계
를 포함하는 악성 코드 자동 탐지 방법.
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;
Normalizing one or more events included in the one or more event sets;
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.
제1항에 있어서,
상기 하나 이상의 이벤트는,
상기 하나 이상의 프로그램이 악성 코드로 판단되어 수행되는 기능적 요소인 것을 특징으로 하는 악성 코드 자동 탐지 방법.
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.
제1항에 있어서,
하나 이상의 이벤트 집합을 생성하는 단계는,
상기 하나 이상의 프로그램으로부터 이벤트가 발생되는 순서에 따라 상기 하나 이상의 이벤트를 추출하여 상기 하나 이상의 이벤트 집합을 생성하는 단계
를 포함하는 악성 코드 자동 탐지 방법.
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.
제1항에 있어서,
상기 하나 이상의 이벤트를 일반화(normalizing) 하는 단계는,
상기 하나 이상의 이벤트 중 동일 기능을 수행하는 이벤트를 일반화(normalizing) 하여 하나의 이벤트로 교정하는 단계
를 포함하는 악성 코드 자동 탐지 방법.
The method of claim 1,
Normalizing the one or more events includes:
Normalizing an event performing the same function among the one or more events and correcting the event into one event
Malware automatic detection method comprising a.
제1항에 있어서,
상기 하나 이상의 이벤트를 일반화(normalizing) 하는 단계는,
상기 하나 이상의 이벤트 중 둘 이상의 단계로 분류된 이벤트를 서로 결합하여 하나의 이벤트로 교정하는 단계
를 포함하는 악성 코드 자동 탐지 방법.
The method of claim 1,
Normalizing the one or more events includes:
Combining events classified into two or more stages of the one or more events and combining them into one event
Malware automatic detection method comprising a.
제1항에 있어서,
상기 각각의 이벤트 집합으로부터 상기 동일 순서로 나타나는 이벤트를 제거하는 단계
를 더 포함하는 악성 코드 자동 탐지 방법.
The method of claim 1,
Removing the events appearing in the same order from the respective event set.
Malware automatic detection method comprising more.
제6항에 있어서,
상기 동일 순서로 나타나는 이벤트를 추출하는 단계; 및
상기 각각의 이벤트 집합으로부터 상기 추출된 이벤트를 제거하는 단계
상기 각각의 이벤트 집합에 상기 동일 순서로 나타나는 이벤트가 없을 때까지 반복하여 수행하는 악성 코드 자동 탐지 방법.
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을 이용하여 상기 유사도를 계산하는 것을 특징으로 하는 악성 코드 자동 탐지 방법.
[수학식 1]
Figure pat00002

여기서, 상기 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]
Figure pat00002

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.
제1항 내지 제8항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer readable recording medium having recorded thereon a program for performing the method of any one of claims 1 to 8.
KR1020110144786A 2011-12-28 2011-12-28 Method for automatic detecting malware code KR101308228B1 (en)

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 true KR20130076266A (en) 2013-07-08
KR101308228B1 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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101508577B1 (en) * 2013-10-08 2015-04-07 고려대학교 산학협력단 Device and method for detecting malware
US9621571B2 (en) 2014-09-04 2017-04-11 Electronics And Telecommunications Research Institute Apparatus and method for searching for similar malicious code based on malicious code feature information
KR20190123369A (en) * 2018-04-11 2019-11-01 고려대학교 산학협력단 Method for Feature Selection of Machine Learning Based Malware Detection, RECORDING MEDIUM and Apparatus FOR PERFORMING THE METHOD
US20200342101A1 (en) * 2013-12-30 2020-10-29 University Of Louisiana At Lafayette System and method for identifying and comparing code by semantic abstractions

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102017756B1 (en) 2014-01-13 2019-09-03 한국전자통신연구원 Apparatus and method for detecting abnormal behavior

Family Cites Families (1)

* Cited by examiner, † Cited by third party
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101508577B1 (en) * 2013-10-08 2015-04-07 고려대학교 산학협력단 Device and method for detecting malware
US20200342101A1 (en) * 2013-12-30 2020-10-29 University Of Louisiana At Lafayette System and method for identifying and comparing code by semantic abstractions
US11481494B2 (en) * 2013-12-30 2022-10-25 University Of Louisiana At Lafayette System and method for identifying and comparing code by semantic abstractions
US9621571B2 (en) 2014-09-04 2017-04-11 Electronics And Telecommunications Research Institute Apparatus and method for searching for similar malicious code based on malicious code feature information
KR20190123369A (en) * 2018-04-11 2019-11-01 고려대학교 산학협력단 Method for Feature Selection of Machine Learning Based Malware Detection, RECORDING MEDIUM and Apparatus FOR PERFORMING THE METHOD

Also Published As

Publication number Publication date
KR101308228B1 (en) 2013-09-13

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
US20170169224A1 (en) Apparatus and method for detecting malicious mobile app
JP6778761B2 (en) Extraction and comparison of hybrid program binary features
TWI419003B (en) A method and a system for automatically analyzing and classifying a malicious program
US20120240231A1 (en) Apparatus and method for detecting malicious code, malicious code visualization device and malicious code determination device
JP2013511097A5 (en)
KR101602881B1 (en) System ang method for detecting malignant code of analysis avoid type
KR20160082644A (en) Method and apparatus for detecting malware by code block classification
WO2019169760A1 (en) Test case range determining method, device, and storage medium
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
KR20120093564A (en) Method and apparatus for categorizing and analyzing malicious code using vector calculation
WO2015135286A1 (en) Method and device for extracting pe file feature
CN106874758B (en) Method and device for identifying document code
CN111049858A (en) Cross validation based baseline scanning vulnerability duplication removing method, device and equipment
US20170126715A1 (en) Detection device, detection method, and detection program
CN104636661A (en) Method and system for analyzing Android application program
JP7235126B2 (en) BACKDOOR INSPECTION DEVICE, BACKDOOR INSPECTION METHOD, AND PROGRAM
TW201508536A (en) Method and device for acquiring virus signature and machine-readable storage medium
WO2021038705A1 (en) Backdoor inspection device, backdoor inspection method, and non-transitory computer-readable medium
KR101550820B1 (en) The device for analyzing a malware based on similarity
US20190156037A1 (en) Using a machine learning model in quantized steps for malware detection
KR101251001B1 (en) System for analysing automatic of malicious code using cfg analysis algorithm and method therefor

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