KR20160100887A - Method for detecting malware by code block comparison - Google Patents

Method for detecting malware by code block comparison Download PDF

Info

Publication number
KR20160100887A
KR20160100887A KR1020160102941A KR20160102941A KR20160100887A KR 20160100887 A KR20160100887 A KR 20160100887A KR 1020160102941 A KR1020160102941 A KR 1020160102941A KR 20160102941 A KR20160102941 A KR 20160102941A KR 20160100887 A KR20160100887 A KR 20160100887A
Authority
KR
South Korea
Prior art keywords
code
malicious
malicious code
execution
similarity
Prior art date
Application number
KR1020160102941A
Other languages
Korean (ko)
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 KR1020160102941A priority Critical patent/KR20160100887A/en
Publication of KR20160100887A publication Critical patent/KR20160100887A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis

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)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The present invention relates to a method and apparatus for detecting a malicious code, and more particularly to a method and apparatus for detecting a malicious code through code block comparison. According to an embodiment of the present invention, a method for detecting a malicious code detects a malicious code using information on a base malicious code stored in a database by an information processing apparatus. The method comprises the steps of: dividing an execution code into at least one code block; extracting a feature value from the code block; analyzing similarity of the execution code for the base malicious code based on the feature value; and classifying the execution code into a malicious code belonging to the base malicious code according to the similarity.

Description

코드 블록 비교를 통한 악성 코드 탐지 방법{METHOD FOR DETECTING MALWARE BY CODE BLOCK COMPARISON}[0001] METHOD FOR DETECTING MALWARE BY CODE BLOCK COMPARISON [0002]

본 발명은 악성 코드 탐지 방법에 관한 것으로, 보다 구체적으로 코드 블록 비교를 통하여 악성 코드를 탐지하는 방법에 관한 것이다.The present invention relates to a malicious code detection method, and more particularly, to a method for detecting a malicious code through code block comparison.

최근 사용자 시스템에 침투해 정보를 유출하거나 정상적인 동작을 지연 또는 방해하는 등 악의적인 목적을 위해 작성된 악성 코드가 해커나 악성 코드 제작자들에 의해 대량으로 빠르게 생성 및 유포되고 있다. 이들은 기존의 악성 코드를 수정하거나 모듈을 재사용하는 등 다양한 방법을 통해 악성 코드의 변종들을 제작하여 유포하고 있으며, 이에 따라 인터넷에서 발견되는 악성 코드의 개체 수는 지속적으로 증가하고 있는 추세이다.Recently, malicious code written for malicious purpose such as infiltration of information into a user system, delaying or interrupting normal operation, etc., is being rapidly generated and distributed by hackers or malicious code makers in a large amount. They are producing and distributing variants of malicious code through various methods such as modifying existing malicious codes or reusing modules. As a result, the number of malicious codes found on the Internet is continuously increasing.

기존의 안티-바이러스 소프트웨어는 악성 코드 샘플 분석을 통해 획득한 시그니처를 탐지 엔진에 제공함으로써 변종 악성 코드도 탐지한다. 그러나, 악성 코드를 분석하여 안티-바이러스 엔진에 필요한 시그니처를 적시에 제공하기 위해서는 복잡한 단계를 거쳐야 한다.Traditional anti-virus software also detects variant malicious code by providing the detection engine with the signature obtained through malicious code sample analysis. However, in order to analyze the malicious code and deliver the signatures required for the anti-virus engine in a timely manner, it is necessary to go through complicated steps.

대부분의 악성 코드 분석 전문가가 다양한 분석 도구를 이용하여 악성 코드 샘플에 대한 리버스 엔지니어링을 통해 정적 분석을 수행하고, 악성 코드 내에 포함되어 있는 특정 문자열이나 패턴을 찾아서 해당 악성 코드를 탐지하기 위한 시그니처를 생성한다. 그러나, 이러한 정적 분석 과정은 악성 코드에 포함된 코드 블록을 명령어 수준에서 상세하게 분석해야 하기 때문에 분석에 많은 시간이 소요된다.Most malicious code analysts use a variety of analysis tools to perform a static analysis through reverse engineering of malicious code samples, find a specific string or pattern contained within malicious code, and generate a signature to detect the malicious code do. However, this static analysis process takes a long time to analyze because the code block included in malicious code must be analyzed at the command level in detail.

본 발명의 실시 예는 기존 코드를 재사용하여 생성된 변종 악성 코드를 정확하게 탐지하고 분류할 수 있는 악성 코드 탐지 방법 및 장치를 제공하는 것을 목적으로 한다.It is an object of the present invention to provide a malicious code detection method and apparatus capable of correctly detecting and classifying variant malicious codes generated by reusing existing codes.

상기 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 악성 코드 탐지 방법은, 정보 처리 장치가 데이터베이스에 저장된 기초 악성 코드에 관한 정보를 이용하여 어셈블리 언어로 작성된 악성 코드를 탐지하도록 제공될 수 있다.According to another aspect of the present invention, there is provided a malicious code detection method for detecting an malicious code written in an assembly language using information on a basic malicious code stored in a database.

상기 악성 코드 탐지 방법은, 실행 코드를 복수 개의 코드 블록으로 구분하는 단계; 상기 코드 블록들 각각으로부터 코드를 추출하여, 추출된 코드의 변수 중에서 레지스터에 관한 변수만을 남겨두고 나머지 변수들을 삭제한 뒤 해당 코드의 해쉬값을 코드 블록의 해쉬값으로 획득하며, 각 코드 블록으로부터 얻은 해쉬값을 논리 연산하여 상기 실행 코드의 특징값을 획득하는 단계; 상기 코드 블록들 각각으로부터 추출된 특징값들의 집합을 기반으로 상기 기초 악성 코드에 대한 상기 실행 코드의 유사도를 분석하는 단계; 및 상기 유사도에 따라 상기 실행 코드를 상기 기초 악성 코드에 속하는 악성 코드로 분류하는 단계를 포함할 수 있다.The malicious code detection method includes: dividing an execution code into a plurality of code blocks; Extracting a code from each of the code blocks, deleting the remaining variables of the extracted code by leaving only variables related to the register, and obtaining a hash value of the code as a hash value of the code block, Obtaining a feature value of the execution code by logically computing a hash value; Analyzing the similarity of the execution code to the basic malicious code based on the set of feature values extracted from each of the code blocks; And classifying the execution code into malicious code belonging to the basic malicious code according to the degree of similarity.

상기 코드 블록들 각각으로부터 추출된 특징값들의 집합을 기반으로 상기 기초 악성 코드에 대한 상기 실행 코드의 유사도를 분석하는 단계는: 상기 특징값들의 집합이 상기 기초 악성 코드에 대한 특징값에 대해 일치하는 정도를 기반으로 유사도를 계산하는 단계를 포함하고, 상기 유사도에 따라 상기 실행 코드를 상기 기초 악성 코드에 속하는 악성 코드로 분류하는 단계는: 상기 유사도가 기 설정된 기준치 이상인 경우, 해당 실행 코드를 상기 기초 악성 코드에 속하는 악성 코드로 결정하는 단계를 포함할 수 있다.Wherein the step of analyzing the similarity of the executable code to the basic malicious code based on the set of feature values extracted from each of the code blocks comprises the steps of: Wherein the step of classifying the executable code as malicious code belonging to the basic malicious code according to the degree of similarity comprises the steps of: when the degree of similarity is equal to or greater than a preset reference value, And determining a malicious code belonging to the malicious code.

상기 실행 코드를 코드 블록으로 구분하는 단계는: 상기 실행 코드에서 시작점 및 끝점을 지정하는 단계; 및 상기 시작점 및 상기 끝점을 경계로 상기 코드 블록을 정의하는 단계를 포함할 수 있다.Wherein dividing the executable code into code blocks comprises: specifying a start point and an end point in the executable code; And defining the code block as a boundary between the start point and the end point.

상기 실행 코드에서 시작점 및 끝점을 지정하는 단계는: 상기 실행 코드 내 분기 명령어를 검출하는 단계; 및 상기 분기 명령어가 가리키는 지점을 상기 시작점으로 선언하는 단계를 더 포함할 수 있다.Wherein the step of specifying a start point and an end point in the execution code includes: detecting a branch instruction in the execution code; And declaring a point indicated by the branch instruction word as the start point.

상기 시작점 및 상기 끝점을 경계로 상기 코드 블록을 정의하는 단계는: 상기 시작점부터 상기 끝점까지의 코드로 구성된 코드 블록을, 상기 시작점부터 상기 분기 명령어가 나타난 지점까지의 코드로 구성된 코드 블록과, 상기 분기 명령어가 나타난 지점부터 상기 끝점까지의 코드로 구성된 코드 블록으로 분할하는 단계를 포함할 수 있다.Wherein the step of defining the code block with the start point and the end point as a boundary comprises: a code block including a code block from the start point to the end point, the code block including a code from the start point to the branch point; And dividing the code block into a code block composed of a code from a point where the branch instruction appears to the end point.

본 발명의 실시 예에 따르면, 기존 코드를 재사용하여 생성된 변종 악성 코드를 정확하게 탐지하고 분류할 수 있다.According to the embodiment of the present invention, it is possible to accurately detect and classify the generated malicious code by reusing the existing code.

도 1은 본 발명의 일 실시 예에 따른 악성 코드 탐지 장치의 예시적인 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 악성 코드 탐지 방법의 예시적인 흐름도이다.
도 3은 본 발명의 일 실시 예에 따라 실행 코드를 코드 블록으로 구분하는 과정을 설명하기 위한 예시적인 도면이다.
도 4는 본 발명의 일 실시 예에 따라 유사도를 분석하여 악성 코드를 탐지하는 과정을 설명하기 위한 예시적인 도면이다.
1 is an exemplary block diagram of a malicious code detection apparatus according to an embodiment of the present invention.
2 is an exemplary flowchart of a malicious code detection method according to an embodiment of the present invention.
3 is an exemplary diagram for explaining a process of dividing executable code into code blocks according to an embodiment of the present invention.
4 is an exemplary diagram for explaining a process of detecting a malicious code by analyzing the degree of similarity according to an embodiment of the present invention.

본 발명의 실시예는 데이터베이스에 저장된 기초 악성 코드에 관한 정보를 이용하여 기초 악성 코드와 검사 대상인 실행 코드 간의 유사도를 분석함으로써 실행 코드가 기초 악성 코드에 속하는 변종 악성 코드인지 여부를 검사한다. 이 때, 본 발명의 실시예는 단순히 실행 코드로부터 함수를 추출하여 함수를 기반으로 기초 악성 코드와의 유사도를 분석하는 대신, 실행 코드를 적어도 하나의 코드 블록으로 구분한 뒤, 이 코드 블록 단위로 기초 악성 코드와 유사도를 분석하여 악성 코드를 탐지할 수 있다.The embodiment of the present invention analyzes the similarity degree between the basic malicious code and the inspection target code by using the information about the basic malicious code stored in the database to check whether or not the execution code is variant malicious code belonging to the basic malicious code. In this case, instead of simply extracting a function from the executable code and analyzing the similarity with the basic malicious code based on the function, the embodiment of the present invention divides the executable code into at least one code block, Malicious code can be detected by analyzing basic malicious code and similarity.

그 결과, 본 발명의 실시예에 따르면, 기존의 함수 기반 악성 코드 탐지 프로그램이 제대로 탐지하지 못하던 코드, 예컨대 함수 형태가 아닌 어셈블리어로 직접 작성된 코드 또는 함수 형태지만 호출되지 않는 부분을 갖는 코드에 대해서도 악성 코드 여부를 정확하게 판별할 수 있다.As a result, according to the embodiment of the present invention, it is possible to prevent malfunctions in malicious codes from being detected by a conventional malfunction detection program based on functions, for example, It is possible to determine whether or not the code is correct.

이하, 본 명세서에 첨부된 도면을 참조하여 본 발명의 실시 예를 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings attached hereto.

도 1은 본 발명의 일 실시 예에 따른 악성 코드 탐지 장치(10)의 예시적인 블록도이다.1 is an exemplary block diagram of a malicious code detection apparatus 10 according to an embodiment of the present invention.

본 발명의 일 실시 예에 따른 악성 코드 탐지 장치(10)는 악성 코드를 탐지하기 위한 프로그램을 실행하여 검사 대상인 실행 코드가 악성 코드에 해당하는지 여부를 판별할 수 있다. 상기 악성 코드 탐지 장치(10)는 컴퓨터와 같은 정보 처리 장치로서, HDD, SSD 등과 같은 저장 장치로부터 악성 코드 탐지를 위한 프로그램을 불러와 실행할 수 있는 프로세서, 예컨대 CPU 등을 포함할 수 있다.The malicious code detection apparatus 10 according to an embodiment of the present invention can execute a program for detecting a malicious code to determine whether the execution code to be inspected corresponds to a malicious code. The malicious code detection apparatus 10 may be an information processing apparatus such as a computer, and may include a processor, such as a CPU, which can execute a malicious code detection program from a storage device such as an HDD, an SSD, or the like.

도 1에 도시된 바와 같이, 상기 악성 코드 탐지 장치(10)는 코드 블록 구분부(110), 특징값 추출부(120), 유사도 분석부(130) 및 악성 코드 분류부(140)를 포함할 수 있다.1, the malicious code detection apparatus 10 includes a code block division unit 110, a feature value extraction unit 120, a similarity analysis unit 130, and a malicious code classification unit 140 .

상기 코드 블록 구분부(110)는 실행 코드를 적어도 하나의 코드 블록으로 구분할 수 있다. 상기 특징값 추출부(120)는 상기 코드 블록으로부터 특징값을 추출할 수 있다. 상기 유사도 분석부(130)는 상기 특징값을 기반으로 기초 악성 코드에 대한 상기 실행 코드의 유사도를 분석할 수 있다. 상기 악성 코드 분류부(140)는 분석 결과인 상기 유사도에 따라 상기 실행 코드를 상기 기초 악성 코드에 속하는 악성 코드로 분류할 수 있다.The code block classifying unit 110 may classify the execution code into at least one code block. The feature value extracting unit 120 may extract a feature value from the code block. The similarity analyzer 130 may analyze the similarity of the execution code with respect to the basic malicious code based on the feature value. The malicious code classification unit 140 may classify the execution code into malicious code belonging to the basic malicious code according to the degree of similarity as an analysis result.

상기 유사도 분석부(130)는 유사도 분석 과정에서 데이터베이스(150)에 저장되어 있는 기초 악성 코드에 관한 정보를 불러와 해당 정보를 이용하여 상기 실행 코드와의 유사도를 분석할 수 있다.The similarity analyzer 130 may retrieve information about the basic malicious code stored in the database 150 in the similarity analysis process and analyze the similarity with the execution code using the information.

도 2는 본 발명의 일 실시예에 따른 악성 코드 탐지 방법(20)의 예시적인 흐름도이다.2 is an exemplary flowchart of a malicious code detection method 20 in accordance with one embodiment of the present invention.

상기 악성 코드 탐지 방법(20)은 본 발명의 실시예에 따른 악성 코드 탐지 장치(10)에 의해 수행될 수 있다.The malicious code detection method 20 may be performed by the malicious code detection apparatus 10 according to an embodiment of the present invention.

도 2에 도시된 바와 같이, 상기 악성 코드 탐지 방법(20)은 정보 처리 장치가 데이터베이스(150)에 저장된 기초 악성 코드에 관한 정보를 이용하여 악성 코드를 탐지하는 방법으로서, 실행 코드를 적어도 하나의 코드 블록으로 구분하는 단계(S210), 상기 코드 블록으로부터 특징값을 추출하는 단계(S220), 상기 특징값을 기반으로 상기 기초 악성 코드에 대한 상기 실행 코드의 유사도를 분석하는 단계(S230), 및 상기 유사도에 따라 상기 실행 코드를 상기 기초 악성 코드에 속하는 악성 코드로 분류하는 단계(S240)를 포함할 수 있다.As shown in FIG. 2, the malicious code detection method 20 is a method for an information processing apparatus to detect a malicious code by using information about a basic malicious code stored in the database 150, (S230) of extracting a feature value from the code block (S220), analyzing the similarity of the execution code to the basic malicious code based on the feature value (S230), and And sorting the executable code into malicious code belonging to the basic malicious code according to the degree of similarity (S240).

일 실시예에 따르면, 상기 실행 코드는 어셈블리 언어로 작성된 코드일 수 있다. 예를 들어, 상기 실행 코드는 Windows의 x86 플랫폼으로 작성된 어셈블리 코드일 수 있으나, 상기 실행 코드의 포맷은 이에 제한되지 않는다.According to one embodiment, the executable code may be code written in assembly language. For example, the executable code may be assembly code written in Windows x86 platform, but the format of the executable code is not limited thereto.

본 발명의 실시예는 실행 코드가 악성 코드에 해당하는지 여부를 검사하기 위한 사전 단계로 상기 실행 코드를 적어도 하나의 코드 블록으로 구분할 수 있다.The embodiment of the present invention can divide the execution code into at least one code block in a preliminary step for checking whether the execution code corresponds to a malicious code.

도 3은 본 발명의 일 실시 예에 따라 실행 코드를 코드 블록으로 구분하는 과정을 설명하기 위한 예시적인 도면이다.3 is an exemplary diagram for explaining a process of dividing executable code into code blocks according to an embodiment of the present invention.

본 발명의 일 실시예에 따르면, 상기 실행 코드를 적어도 하나의 코드 블록으로 구분하는 단계(S210)는, 상기 실행 코드에서 시작점 및 끝점을 지정하는 단계, 및 상기 시작점 및 상기 끝점을 경계로 상기 코드 블록을 정의하는 단계를 포함할 수 있다.According to an embodiment of the present invention, the step of dividing the execution code into at least one code block (S210) includes the steps of: designating a start point and an end point in the execution code; And defining a block.

예를 들어, 도 3을 참조하면, 상기 실행 코드에서 시작점 및 끝점을 지정하는 단계는, 상기 실행 코드 내에서 "push" 명령어 및 "move" 명령어 중 적어도 하나를 검출하여 시작점(①, ③, ⑥)으로 선언하는 단계, 및 상기 실행 코드 내에서 "ret" 명령어 및 "align" 명령어 중 적어도 하나를 검출하여 끝점(②, ⑤, ⑧)으로 선언하는 단계를 포함할 수 있다.For example, referring to FIG. 3, the step of designating a start point and an end point in the execution code may include detecting at least one of a "push" instruction and a "move" instruction in the execution code, ), And declaring at least one of a "ret" command and an "align" command in the execution code as an end point (②, ⑤, ⑧).

구체적으로, 상기 실행 코드에서 시작점으로 선언되는 지점은 상기 실행 코드 내 "push ebp" 또는 "move ebp, esp"가 표시되는 라인일 수 있으며, "push ebp"와 "move ebp, esp"가 연속으로 표시되는 경우에는 두 라인들 중 먼저 나타나는 라인이 시작점으로 선언될 수 있다.Specifically, the point declared as the start point in the execution code may be a line displaying "push ebp" or "move ebp, esp" in the execution code, and "push ebp" and "move ebp, esp" If displayed, the first line of the two lines can be declared as the starting point.

마찬가지로, 상기 실행 코드에서 끝점으로 선언되는 지점은 상기 실행 코드 내 "ret" 또는 "align"이 표시되는 라인일 수 있으며, "ret"와 "align"이 연속으로 표시되는 경우에는 두 라인들 중 먼저 나타나는 라인이 끝점으로 선언될 수 있다.Likewise, a point declared as an end point in the execution code may be a line displaying "ret" or "align" in the execution code. If "ret" and "align" The lines that appear can be declared as endpoints.

추가적으로, 상기 실행 코드에서 시작점 및 끝점을 지정하는 단계는, 상기 실행 코드 내에서 분기 명령어를 검출하는 단계, 및 상기 분기 명령어가 가리키는 지점을 상기 시작점으로 선언하는 단계를 더 포함할 수 있다.In addition, the step of designating the start point and the end point in the execution code may further include detecting a branch instruction in the execution code, and declaring a point indicated by the branch instruction as the start point.

이 실시예에 따르면, 상기 분기 명령어는 실행 코드 내 다른 영역의 코드를 호출하기 위한 명령어로서, 예를 들어 "call", "jmp", "jnz", "jz" 및 "jne" 중 적어도 하나를 포함할 수 있다.According to this embodiment, the branch instruction word is an instruction for calling a code of another area in the execution code, for example, at least one of "call", "jmp", "jnz", "jz" .

이 경우, 상기 분기 명령어가 가리키는 지점, 즉 분기 명령어 다음에 표시되는 어드레스 값에 해당하는 지점이 또 다른 시작점으로 선언될 수 있다.In this case, a point indicated by the branch instruction word, that is, a point corresponding to an address value displayed next to the branch instruction word may be declared as another start point.

예를 들어, 도 3과 같이 실행 코드의 B 부분에 "call C"라는 명령어가 포함되어 있는 경우, "call"에 의해 호출되는 C 부분이 또 다른 시작점으로 선언될 수 있다. 마찬가지로, 도 3과 같이 실행 코드의 D 부분에 "jmp E"라는 명령어가 포함되어 있는 경우, "jmp"에 의해 지정되는 E 부분이 또 다른 시작점으로 선언될 수 있다.For example, if the "call C" instruction is included in part B of the execution code as in FIG. 3, the C part called by "call" may be declared as another starting point. Likewise, if the D portion of the executable code includes an instruction "jmp E ", as shown in Fig. 3, the E portion specified by" jmp "

본 발명의 실시예에 따르면, 상기 실행 코드를 코드 블록으로 구분하는 단계(S210)는, 상기 실행 코드에서 시작점과 끝점 사이에 분기 명령어가 포함된 경우, 상기 시작점부터 상기 끝점까지의 코드로 구성된 코드 블록을 상기 분기 명령어가 나타난 지점을 경계로 분할하는 단계를 더 포함할 수 있다.According to an embodiment of the present invention, the step of dividing the executable code into code blocks (S210) includes the steps of: when a branch instruction word is included between a start point and an end point in the execution code, And dividing the block by the boundary of the point where the branch instruction appears.

예를 들어, 도 3에 도시된 바와 같이, 상기 실행 코드의 B 부분에 포함된 시작점인 "push ebp"(③)와 끝점인 "ret"(⑤) 사이에 분기 명령어인 "call C"(④)가 포함된 경우, 상기 시작점(③)부터 상기 끝점(⑤)까지의 코드로 구성된 코드 블록(즉, 실행 코드의 B 부분)을 상기 분기 명령어가 나타난 지점(④)을 경계로 소분할할 수 있다.For example, as shown in FIG. 3, a branch instruction word "call C" (4) is inserted between "push ebp" (3), which is a start point included in the B part of the execution code, ), The code block (i.e., the B portion of the execution code) composed of the code from the start point (3) to the end point (5) can be divided into a boundary (4) at which the branch instruction appears have.

구체적으로, 상기 코드 블록을 분할하는 단계는, 상기 시작점(③)부터 상기 끝점(⑤)까지의 코드로 구성된 코드 블록(실행 코드의 B 부분)을, 상기 시작점(③)부터 상기 분기 명령어가 나타난 지점(④)까지의 코드로 구성된 코드 블록 2-1과, 상기 분기 명령어가 나타난 지점(④)부터 상기 끝점(⑤)까지의 코드로 구성된 코드 블록 2-2으로 분할하는 단계를 포함할 수 있다.More specifically, the step of dividing the code block may be a step of dividing a code block (part B of the execution code) composed of codes from the starting point (3) to the end point (5) Into a code block 2-1 composed of a code up to a point (4) and a code block 2-2 composed of a code from a point (4) to the end point (5) at which the branch instruction is displayed .

마찬가지로, 도 3과 같이 상기 실행 코드의 D 부분에 포함된 시작점인 "push ebp"(⑥)와 끝점인 "align"(⑧) 사이에 분기 명령어인 "jmp E"(⑦)가 포함된 경우, 상기 시작점(⑥)부터 상기 끝점(⑧)까지의 코드로 구성된 코드 블록(실행 코드의 D 부분)을, 상기 시작점(⑥)부터 상기 분기 명령어가 나타난 지점(⑦)까지의 코드로 구성된 코드 블록 4-1과, 상기 분기 명령어가 나타난 지점(⑦)부터 상기 끝점(⑧)까지의 코드로 구성된 코드 블록 4-2로 분할하는 단계를 포함할 수 있다.Similarly, if the branch instruction word "jmp E" (⑦) is included between "push ebp" (⑥), which is the start point included in the D part of the execution code, and "align" A code block 4 consisting of a code from the start point (6) to the end point (8) is made up of a code block from the start point (6) to a point (7) where the branch instruction word appears -1 and a code block 4-2 composed of the code from the point (7) to the end point (8) where the branch instruction word is displayed.

위와 같이 코드 블록 구분부(110)가 실행 코드를 코드 블록으로 구분하면, 특징값 추출부(120)는 해당 코드 블록의 특징값을 추출할 수 있다.If the code block dividing unit 110 divides the execution code into code blocks as described above, the feature value extracting unit 120 can extract the feature value of the code block.

상기 특징값 추출부(120)는 우선 상기 추출된 코드의 변수중에서 레지스터에 관한 변수만을 남겨두고 나머지 변수들을 삭제한 뒤, 해당 코드의 해쉬값을 획득한다. 여기서, 상기 레지스터에 관한 변수는 "eax", "ecx", "ebp", "ebx, "edi"와 같은 레지스터를 나타낼 수 있다.The feature value extracting unit 120 first deletes the variables related to the register from among the variables of the extracted code, and then obtains a hash value of the corresponding code. Here, the variable related to the register may represent a register such as "eax ", " ecx "," ebp ", "ebx,

상기 특징값 추출부(120)는 각각의 코드 블록으로부터 얻은 해쉬값을 논리 연산하여 상기 실행 코드의 특징값을 획득할 수 있다. 즉, 상기 특징값 추출부(120)는 상기 실행 코드에 포함된 각 코드 블록의 해쉬값을 논리 연산함으로써 최종적으로 상기 실행 코드로부터 하나의 특징값을 추출할 수 있다.The feature value extracting unit 120 may logically calculate a hash value obtained from each code block to obtain a feature value of the execution code. That is, the feature value extracting unit 120 can finally extract one feature value from the execution code by logically computing the hash value of each code block included in the execution code.

각 코드 블록으로부터 특징값을 추출하면, 상기 유사도 분석부(130)는 상기 특징값들의 집합을 상기 데이터베이스(150)에 저장된 기초 악성 코드에 대한 특징값과 비교하여 그 일치 여부를 판별함으로써 기초 악성 코드에 대한 실행 코드의 유사도를 분석할 수 있다.When the feature value is extracted from each code block, the similarity analyzer 130 compares the set of feature values with the feature value of the basic malicious code stored in the database 150, It is possible to analyze the similarity of the executable code.

이때 상기 유사도 분석부(130)는 특징값들의 집합에 속하는 특징값들의 일부만 상기 데이터베이스(150)에 저장된 기초 악성 코드에 대한 특징값과 일치하더라도 상기 기초 악성 코드와 상기 실행 코드가 유사하다고 판단할 수 있다.At this time, the similarity analyzer 130 may determine that the basic malicious code and the executable code are similar even if only a part of the feature values belonging to the set of feature values coincides with the feature value of the basic malicious code stored in the database 150 have.

상기 유사도 분석부(130)는 주어진 특징값들의 집합에 대하여 비교 대상 기초 악성 코드에 대한 특징값과 일치하는 특징값들의 비율을 계산하고, 계산된 비율을 미리 정해진 임계값과 비교할 수 있다.The similarity analyzer 130 may calculate the ratio of the feature values matching the feature value of the comparison target basic malicious code with respect to the set of the given feature values, and compare the calculated ratio with a predetermined threshold value.

상기 데이터베이스(150)는 기초 악성 코드에 관한 정보, 예컨대 특징값을 저장하고 있으며, 상기 유사도 분석부(130)는 상기 데이터베이스(150)로부터 상기 기초 악성 코드의 특징값을 불러와 상기 실행 코드의 유사도 분석에 사용할 수 있다.The database 150 stores information on the basic malicious code, for example, a feature value. The similarity analysis unit 130 reads the characteristic value of the basic malicious code from the database 150, It can be used for analysis.

그러고 나서, 상기 악성 코드 분류부(140)는 상기 유사도에 따라 실행 코드를 기초 악성 코드에 속하는 악성 코드로 분류할 수 있다. 예를 들어, 상기 악성 코드 분류부(140)는 실행 코드의 상기 기초 악성 코드에 대한 유사도가 기 설정된 기준치 이상인 경우, 상기 실행 코드를 해당 기초 악성 코드에 속하는 변종 악성 코드로 결정할 수 있다.Then, the malicious code classification unit 140 may classify the execution code into malicious code belonging to the basic malicious code according to the degree of similarity. For example, when the degree of similarity of the execution code to the basic malicious code is equal to or greater than a preset reference value, the malicious code classification unit 140 may determine the execution code as a variant malicious code belonging to the basic malicious code.

도 4는 본 발명의 일 실시예에 따라 유사도를 분석하여 악성 코드를 탐지하는 과정을 설명하기 위한 예시적인 도면이다.4 is an exemplary diagram for explaining a process of detecting a malicious code by analyzing the degree of similarity according to an embodiment of the present invention.

도 4를 참조하면, 실행 코드 C와 비교되는 기초 악성 코드는 악성 코드 A와 악성 코드 B이며, 악성 코드 A로부터 얻은 코드 블록 테이블(tbl1)에는 복수의 코드 블록들(A-1, A-2, A-3, A-4)이 포함되어 있고, 악성 코드 B로부터 얻은 코드 블록 테이블(tbl2)에는 복수의 코드 블록들(B-1, B-2, B-3, B-4)이 포함되어 있다.4, the basic malicious codes to be compared with the execution code C are malicious code A and malicious code B, and the code block table tbl1 obtained from malicious code A includes a plurality of code blocks A-1 and A-2 B-2, B-3, and B-4 are included in the code block table tbl2 obtained from the malicious code B, .

그리고, 데이터베이스에는 악성 코드 A와 악성 코드 B로부터 얻은 각 코드 블록의 특징값이 저장되어 있다.In the database, characteristic values of the code blocks obtained from the malicious code A and the malicious code B are stored.

본 발명의 실시예에 따르면, 상기 실행 코드 C가 악성 코드인지 여부를 검사하기 위해, 먼저 상기 코드 블록 구분부(110)가 상기 실행 코드 C를 적어도 하나의 코드 블록으로 구분한다. 그러고 나서, 상기 특징값 추출부(120)는 상기 실행 코드 C의 각 코드 블록으로부터 특징값(특징값 C-1, 특징값 C-2, 특징값 C-3, 특징값 C-4)을 획득할 수 있다.According to the embodiment of the present invention, in order to check whether the execution code C is a malicious code, the code block division unit 110 divides the execution code C into at least one code block. (Feature value C-1, feature value C-2, feature value C-3, feature value C-4) from each code block of the execution code C can do.

그러고 나서, 상기 유사도 분석부(130)는 추출된 특징값과 데이터베이스(150)에 저장된 기초 악성 코드들의 특징값을 비교하여 상기 실행 코드 C의 코드 블록과 유사한 기초 코드 블록을 결정할 수 있다.Then, the similarity analyzer 130 may determine a basic code block similar to the code block of the execution code C by comparing the extracted feature value with the feature values of the basic malicious codes stored in the database 150. [

도 4에 도시된 분석 테이블(tbl4)을 참조하면, 기초 악성 코드 A의 특징값 A-3와 실행 코드 C의 특징값 C-1이 유사하고, 기초 악성 코드 A의 특징값 A-4와 실행 코드 C의 특징값 C-2가 유사하다. 또한, 기초 악성 코드 B의 특징값 B-2와 실행 코드 C의 특징값 C-4가 유사하다. 실행 코드 C의 특징값 C-3와 유사한 기초 악성 코드의 특징값은 발견되지 않았다. 그 결과, 상기 유사도 분석부(130)는 상기 실행 코드 C에 포함된 코드 블록과 유사한 기초 악성 코드의 코드 블록으로 코드 블록 A-3, A-4 그리고 B-2를 선택할 수 있다.Referring to the analysis table (tbl4) shown in Fig. 4, the feature value A-3 of the basic malicious code A and the feature value C-1 of the execution code C are similar, The feature value C-2 of code C is similar. The feature value B-2 of the basic malicious code B and the feature value C-4 of the execution code C are similar. The feature value of the basic malicious code similar to the feature value C-3 of the execution code C was not found. As a result, the similarity analyzer 130 can select the code blocks A-3, A-4, and B-2 as code blocks of basic malicious code similar to the code blocks included in the execution code C.

그러고 나서, 상기 악성 코드 분류부(140)는 상기 유사도 분석부(130)가 분석하여 얻은 상기 실행 코드의 상기 기초 악성 코드들에 대한 유사도를 기반으로, 상기 기초 악성 코드들 중에서 상기 실행 코드에 대응하는 기초 악성 코드를 선택하여 상기 실행 코드를 해당 기초 악성 코드에 속하는 변종 악성 코드로 분류할 수 있다.Then, the malicious code classification unit 140 classifies the malicious codes corresponding to the malicious codes among the malicious codes based on the degree of similarity of the malicious codes of the executable code obtained by analyzing the similarity analysis unit 130 And sort the malicious code belonging to the basic malicious code into variant malicious code.

일 실시예에 따르면, 상기 악성 코드 분류부(140)는 상기 실행 코드의 코드 블록과 유사한 상기 기초 악성 코드의 코드 블록 개수에 따라 상기 실행 코드에 대응하는 기초 악성 코드를 선택할 수 있다.According to an embodiment, the malicious code classification unit 140 may select a basic malicious code corresponding to the execution code according to the number of code blocks of the basic malicious code similar to the code block of the execution code.

예를 들어, 도 4를 참조하면, 기초 악성 코드 A 및 B 중에서 실행 코드 C의 코드 블록들(C-1, C-2, C-3, C-4)과 유사한 코드 블록을 가장 많이 포함하고 있는 코드는 기초 악성 코드 A이며, 상기 악성 코드 분류부(140)는 상기 기초 악성 코드 A 및 B 중에서 상기 실행 코드 C의 코드 블록과 유사한 코드 블록을 가장 많이 포함하고 있는 기초 악성 코드 A를 상기 실행 코드에 대응하는 기초 악성 코드로 선택할 수 있다.For example, referring to FIG. 4, a code block most similar to the code blocks C-1, C-2, C-3, and C-4 of the execution code C among the basic malicious codes A and B is included The malicious code classification unit 140 classifies the malicious code A having the largest number of code blocks similar to the code block of the malicious code A among the malicious codes A and B as the most malicious code A, It can be selected as the malicious code corresponding to the code.

그 결과, 도 4의 코드 그룹 A와 같이, 상기 악성 코드 분류부(140)는 상기 실행 코드 C를 상기 기초 악성 코드 A에 속하는 악성 코드로 분류할 수 있다.As a result, the malicious code classification unit 140 can classify the execution code C into malicious codes belonging to the basic malicious code A, as in the code group A of FIG.

실시예에 따라, 상기 악성 코드 분류부(140)는 상기 실행 코드의 코드 블록 내 코드에 의한 동작이 기 결정된 주의 동작에 해당하는지 여부를 판별하고, 판별 결과에 따라 상기 실행 코드의 악성 코드 여부를 결정할 수 있다.According to the embodiment, the malicious code classification unit 140 determines whether or not the operation based on the code in the code block of the execution code corresponds to the predetermined caution operation, and determines whether or not the execution code is malicious code You can decide.

구체적으로, 상기 악성 코드 분류부(140)는 상기 실행 코드의 코드 블록 내 코드에 의한 동작이 상기 주의 동작에 해당하는 경우 상기 실행 코드를 악성 코드로 분류하고, 상기 주의 동작에 해당하지 않는 경우에는 상기 실행 코드를 악성 코드로 분류하지 않을 수 있다.Specifically, the malicious code classification unit 140 classifies the malicious code into the malicious code when the operation based on the code in the code block of the malicious code corresponds to the noted operation, and if not, The execution code may not be classified as a malicious code.

이 실시예에서, 상기 주의 동작은 시스템의 성능에 영향을 미칠 수 있는 동작으로서, 파일에 접근하는 동작, 레지스트리에 접근하는 동작, 및 네트워크에 접근하는 동작 중 적어도 하나를 포함할 수 있다.In this embodiment, the cautionary operation may include at least one of an operation to access the file, an operation to access the registry, and an operation to access the network, which operations may affect the performance of the system.

상기 파일에 접근하는 동작은 시스템에 저장된 파일을 열거나, 수정하거나, 삭제하는 행위로서, 상기 실행 코드의 코드 블록에 "open", "delete" 등의 명령어가 포함된 경우, 해당 코드 블록 내 코드는 파일에 접근하는 동작을 수행하는 것으로 판별될 수 있다.The operation of accessing the file is an operation of opening, modifying or deleting a file stored in the system. When the code block of the executable code includes commands such as "open "," delete ", etc., Can be determined to perform an operation of accessing a file.

상기 레지스트리에 접근하는 동작은 시스템의 레지스트리에 저장된 정보를 열람하거나, 수정하거나, 삭제하는 행위로서, 상기 실행 코드의 코드 블록에 "registry key open" 등의 명령어가 포함된 경우, 해당 코드 블록 내 코드는 레지스트리에 접근하는 동작을 수행하는 것으로 판별될 수 있다.The access to the registry is an operation of browsing, modifying or deleting information stored in the registry of the system. When a command such as "registry key open" is included in the code block of the executable code, May be determined to perform an operation of accessing the registry.

상기 네트워크에 접근하는 동작은 시스템에 연결된 네트워크를 통해 트래픽을 유발하는 행위로서, 상기 실행 코드의 코드 블록에 "recv", "send", "send to" 등의 명령어가 포함된 경우, 해당 코드 블록 내 코드는 네트워크에 접근하는 동작을 수행하는 것으로 판별될 수 있다.The access to the network is an operation for causing traffic through a network connected to the system. When the code block of the executable code includes commands such as "recv "," send ", "send to & My code can be determined to perform an operation to access the network.

이와 같이, 본 발명의 실시 예는 실행 코드의 코드 블록으로부터 추출된 특징값을 기초 악성 코드의 코드 블록으로부터 추출된 특징값과 비교하여 기초 악성 코드에 대한 실행 코드의 유사도를 분석하는 과정 외에, 실행 코드의 코드 블록 내 코드에 의한 동작을 더 분석함으로써 악성 코드 탐지 정확도를 보다 향상시킬 수 있다.As described above, in the embodiment of the present invention, the feature value extracted from the code block of the execution code is compared with the feature value extracted from the code block of the basic malicious code to analyze the similarity of the execution code to the basic malicious code, By further analyzing the behavior of the code within the code block of code, malicious code detection accuracy can be further improved.

이상에서 실시 예를 통해 본 발명을 설명하였으나, 위 실시 예는 단지 본 발명의 사상을 설명하기 위한 것으로 이에 한정되지 않는다. 통상의 기술자는 전술한 실시예에 다양한 변형이 가해질 수 있음을 이해할 것이다. 본 발명의 범위는 첨부된 특허청구범위의 해석을 통해서만 정해진다.While the present invention has been described with reference to the exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. Those skilled in the art will appreciate that various modifications may be made to the embodiments described above. The scope of the present invention is defined only by the interpretation of the appended claims.

10: 악성 코드 탐지 장치
110: 코드 블록 구분부
120: 특징값 추출부
130: 유사도 분석부
140: 악성 코드 분류부
150: 데이터베이스
10: Malicious code detection device
110: code block division unit
120: Feature value extraction unit
130:
140: malicious code classification section
150: Database

Claims (4)

정보 처리 장치가 데이터베이스에 저장된 기초 악성 코드에 관한 정보를 이용하여 어셈블리 언어로 작성된 악성 코드를 탐지하는 방법에 있어서,
실행 코드를 복수 개의 코드 블록으로 구분하는 단계;
상기 코드 블록들 각각으로부터 코드를 추출하여, 추출된 코드의 변수 중에서 레지스터에 관한 변수만을 남겨두고 나머지 변수들을 삭제한 뒤 해당 코드의 해쉬값을 코드 블록의 해쉬값으로 획득하며, 각 코드 블록으로부터 얻은 해쉬값을 논리 연산하여 상기 실행 코드의 특징값을 획득하는 단계;
상기 코드 블록들 각각으로부터 추출된 특징값들의 집합을 기반으로 상기 기초 악성 코드에 대한 상기 실행 코드의 유사도를 분석하는 단계; 및
상기 유사도에 따라 상기 실행 코드를 상기 기초 악성 코드에 속하는 악성 코드로 분류하는 단계;
를 포함하고,
상기 코드 블록들 각각으로부터 추출된 특징값들의 집합을 기반으로 상기 기초 악성 코드에 대한 상기 실행 코드의 유사도를 분석하는 단계는:
상기 특징값들의 집합이 상기 기초 악성 코드에 대한 특징값에 대해 일치하는 정도를 기반으로 유사도를 계산하는 단계를 포함하고,
상기 유사도에 따라 상기 실행 코드를 상기 기초 악성 코드에 속하는 악성 코드로 분류하는 단계는:
상기 유사도가 기 설정된 기준치 이상인 경우, 해당 실행 코드를 상기 기초 악성 코드에 속하는 악성 코드로 결정하는 단계를 포함하는 악성 코드 탐지 방법.
1. A method for detecting malicious code written in an assembly language using information about a basic malicious code stored in a database,
Dividing the executable code into a plurality of code blocks;
Extracting a code from each of the code blocks, deleting the remaining variables of the extracted code by leaving only the variables related to the register, obtaining a hash value of the code as a hash value of the code block, Obtaining a feature value of the execution code by logically computing a hash value;
Analyzing the similarity of the execution code to the basic malicious code based on the set of feature values extracted from each of the code blocks; And
Classifying the execution code into a malicious code belonging to the basic malicious code according to the degree of similarity;
Lt; / RTI >
Wherein analyzing the similarity of the executable code to the basic malicious code based on the set of feature values extracted from each of the code blocks comprises:
Calculating a degree of similarity based on the degree to which the set of feature values coincides with the feature value for the basic malicious code,
Wherein classifying the executable code as a malicious code belonging to the basic malicious code according to the degree of similarity comprises:
And determining the execution code as a malicious code belonging to the basic malicious code when the degree of similarity is equal to or greater than a preset reference value.
제 1 항에 있어서,
상기 실행 코드를 코드 블록으로 구분하는 단계는:
상기 실행 코드에서 시작점 및 끝점을 지정하는 단계; 및
상기 시작점 및 상기 끝점을 경계로 상기 코드 블록을 정의하는 단계;
를 포함하는 악성 코드 탐지 방법.
The method according to claim 1,
Dividing the executable code into code blocks comprises:
Designating a start point and an end point in the execution code; And
Defining the code block with the start point and the end point as a boundary;
A malicious code detection method.
제 2 항에 있어서,
상기 실행 코드에서 시작점 및 끝점을 지정하는 단계는:
상기 실행 코드 내 분기 명령어를 검출하는 단계; 및
상기 분기 명령어가 가리키는 지점을 상기 시작점으로 선언하는 단계;
를 더 포함하는 악성 코드 탐지 방법.
3. The method of claim 2,
Wherein specifying the start and end points in the executable code comprises:
Detecting a branch instruction in the execution code; And
Declaring a point indicated by the branch instruction word as the start point;
The malicious code detection method further comprising:
제 2 항에 있어서,
상기 시작점 및 상기 끝점을 경계로 상기 코드 블록을 정의하는 단계는:
상기 시작점부터 상기 끝점까지의 코드로 구성된 코드 블록을, 상기 시작점부터 상기 분기 명령어가 나타난 지점까지의 코드로 구성된 코드 블록과, 상기 분기 명령어가 나타난 지점부터 상기 끝점까지의 코드로 구성된 코드 블록으로 분할하는 단계를 포함하는 악성 코드 탐지 방법.
3. The method of claim 2,
The step of defining the code block with the start point and the end point as a boundary includes the steps of:
A code block composed of codes from the start point to the end point is divided into a code block composed of codes from the start point to the point at which the branch instruction appears and a code block composed of the code from the point where the branch instruction is indicated to the end point Detecting a malicious code.
KR1020160102941A 2016-08-12 2016-08-12 Method for detecting malware by code block comparison KR20160100887A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160102941A KR20160100887A (en) 2016-08-12 2016-08-12 Method for detecting malware by code block comparison

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160102941A KR20160100887A (en) 2016-08-12 2016-08-12 Method for detecting malware by code block comparison

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020140192799A Division KR20160082644A (en) 2014-12-30 2014-12-30 Method and apparatus for detecting malware by code block classification

Publications (1)

Publication Number Publication Date
KR20160100887A true KR20160100887A (en) 2016-08-24

Family

ID=56884299

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160102941A KR20160100887A (en) 2016-08-12 2016-08-12 Method for detecting malware by code block comparison

Country Status (1)

Country Link
KR (1) KR20160100887A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108334776A (en) * 2017-01-19 2018-07-27 ***通信有限公司研究院 A kind of detection method and device of Metamorphic malware
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
CN112148305A (en) * 2020-10-28 2020-12-29 腾讯科技(深圳)有限公司 Application detection method and device, computer equipment and readable storage medium
CN114911467A (en) * 2021-10-22 2022-08-16 北京思明启创科技有限公司 Code detection method and device, electronic equipment and storage medium

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108334776A (en) * 2017-01-19 2018-07-27 ***通信有限公司研究院 A kind of detection method and device of Metamorphic malware
CN108334776B (en) * 2017-01-19 2020-09-04 ***通信有限公司研究院 Detection method and device for deformed malicious code
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
CN112148305A (en) * 2020-10-28 2020-12-29 腾讯科技(深圳)有限公司 Application detection method and device, computer equipment and readable storage medium
CN114911467A (en) * 2021-10-22 2022-08-16 北京思明启创科技有限公司 Code detection method and device, electronic equipment and storage medium

Similar Documents

Publication Publication Date Title
KR20160082644A (en) Method and apparatus for detecting malware by code block classification
TWI553503B (en) Method of generating in-kernel hook point candidates to detect rootkits and system thereof
US20150256552A1 (en) Imalicious code detection apparatus and method
US8171551B2 (en) Malware detection using external call characteristics
US9621571B2 (en) Apparatus and method for searching for similar malicious code based on malicious code feature information
Tian et al. Function length as a tool for malware classification
KR101162051B1 (en) Using string comparison malicious code detection and classification system and method
CN109101815B (en) Malicious software detection method and related equipment
CN109583200B (en) Program abnormity analysis method based on dynamic taint propagation
CN109933984B (en) Optimal clustering result screening method and device and electronic equipment
RU2427890C2 (en) System and method to compare files based on functionality templates
US11048798B2 (en) Method for detecting libraries in program binaries
KR102317833B1 (en) method for machine LEARNING of MALWARE DETECTING MODEL AND METHOD FOR detecting Malware USING THE SAME
KR20160100887A (en) Method for detecting malware by code block comparison
KR101110308B1 (en) Apparatus and method for detecting malicious code using packed file properties
CN111988341B (en) Data processing method, device, computer system and storage medium
KR101520671B1 (en) System and method for analysis executable code based on similarity
CN111651768B (en) Method and device for identifying link library function name of computer binary program
CN111338692A (en) Vulnerability classification method and device based on vulnerability codes and electronic equipment
KR102031592B1 (en) Method and apparatus for detecting the malware
KR101473535B1 (en) Malware classification method using multi n―gram
CN111027072B (en) Kernel Rootkit detection method and device based on elf binary standard analysis under Linux
CN114816518A (en) Simhash-based open source component screening and identifying method and system in source code
Zwanger et al. Codescanner: Detecting (Hidden) x86/x64 code in arbitrary files
KR101792631B1 (en) Api-based software similarity measuring method and system using fuzzy hashing

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application