KR20170018791A - Apparatus and method for detecting malicious code using cultivation of malware - Google Patents

Apparatus and method for detecting malicious code using cultivation of malware Download PDF

Info

Publication number
KR20170018791A
KR20170018791A KR1020160101278A KR20160101278A KR20170018791A KR 20170018791 A KR20170018791 A KR 20170018791A KR 1020160101278 A KR1020160101278 A KR 1020160101278A KR 20160101278 A KR20160101278 A KR 20160101278A KR 20170018791 A KR20170018791 A KR 20170018791A
Authority
KR
South Korea
Prior art keywords
code
malicious
cultivation
malicious code
codes
Prior art date
Application number
KR1020160101278A
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 고려대학교 산학협력단
Publication of KR20170018791A publication Critical patent/KR20170018791A/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
    • 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

Abstract

When a malicious code is detected, one or more malicious codes are acquired from a malicious code pool containing a plurality of malicious codes. A new cultivation code is generated by modifying or combining the source code of the acquired malicious code. The operation of the cultivation cord is checked. If operation acceptance and rejection of the cultivation code are inspected, it is checked whether the cultivation code is detected through at least one predetermined vaccination program. If the cultivation code is not detected from at least one of the vaccine programs, the cultivation code is added to the malicious code pool. The cultivation code is discarded if detected.

Description

악성코드 배양을 통한 악성코드 탐지 장치 및 방법{APPARATUS AND METHOD FOR DETECTING MALICIOUS CODE USING CULTIVATION OF MALWARE}[0001] APPARATUS AND METHOD FOR DETECTING MALICIOUS CODE USING CULTIVATION OF MALWARE [0002]

본 발명은 기존의 백신 프로그램으로 탐지되지 않는 악성코드를 탐지하는 악성코드 탐지 장치 및 방법에 관한 것이다.The present invention relates to a malicious code detection apparatus and method for detecting a malicious code that is not detected by an existing vaccine program.

악성 코드(malicious code)는 맬웨어(malware, malicious software), 악성 프로그램(malicious Program)이라고도 하며, 바이러스, 웜바이러스(worm virus), 트로이목마(Trojan horse) 등으로 분류된다.Malicious code is also called malware, malicious program, and it is classified as virus, worm virus, Trojan horse and so on.

이러한 악성 코드를 탐지 및 치료하기 위해서 다양한 백신 프로그램들이 개발 및 보급되고 있으며, 일반적으로 시그니처(Signature) 기반 탐지 및 휴리스틱(Heuristic) 탐지 기법들이 사용되고 있다.Various vaccine programs have been developed and distributed to detect and treat these malicious codes. In general, signature-based detection and heuristic detection techniques are used.

시그니처란 백신 프로그램이 파일들을 스캔할 때 해당 파일을 유일하게 식별할 수 있도록 사용하는 특정 데이터 부분을 말한다. 로컬에 설치된 대부분의 백신 프로그램은 시그니처 데이터베이스를 포함하고 있고, 악성 코드 분석가에 의해 새롭게 발견된 악성 코드의 시그니처 데이터를 정기적으로 업데이트한다. 예를 들어, 백신 프로그램은 코드 별로 포함된 시그니처를 시그니처 데이터베이스와 비교/대조하여 스캔한 파일의 악성 코드 여부를 확인할 수 있다. 이러한, 시그니처 기반의 탐지 방법은 악성 코드 파일이 코드의 기본적인 로직은 유지한 채 코드 중간에 패딩을 삽입하거나 약간의 내용을 수정하여 몇백 바이트 정도만 바뀌어도 진단이 어렵다는 단점이 있다. 또한, 시그니처 기반의 탐지 방법으로는 기존에 분석된 악성 코드 외에 새로운 악성 코드에 대해서는 진단이 불가능하다는 한계가 있다.A signature is a specific piece of data that a vaccine program uses to uniquely identify the file when scanning it. Most locally installed antivirus programs include a signature database and regularly update signature data for newly discovered malicious code by malicious code analysts. For example, a vaccine program can check whether a scanned file is malicious code by comparing / collating the signatures included in each code with the signature database. This signature-based detection method is disadvantageous in that it is hard to diagnose even if the malicious code file changes only a few hundred bytes by inserting padding in the middle of the code while modifying the basic logic of the code or modifying a little content. In addition, signature-based detection methods have limitations in that it is impossible to diagnose new malicious codes in addition to previously analyzed malicious codes.

휴리스틱 탐지 기법은 선행으로 연구된 악성 코드만 탐지하고 변이된 바이러스 탐지가 어렵다는 단점을 극복하기 위해 제안되었다. 휴리스틱 탐지 기법에 따르면, 파일을 단순히 해시화하여 시그니처를 대조/비교하는 시그니처 기반 탐지 기법과는 달리, 어떠한 규칙을 시그니처로 만들어 이용한다. 특히, 동적 휴리스틱 탐지(Dynamic Heuristic Detection)의 경우 에뮬레이터(Emulator)를 이용하여 실행 파일(Executable File)을 실행할 수 있다. 그러나, 휴리스틱 탐지 기법은 탐지 속도가 느려질 수 있으며 긍정 오류(false positive)와 같은 탐색 오류가 발생할 가능성이 크다는 단점이 있다.The heuristic detection technique has been proposed to overcome the disadvantage of detecting only the malicious codes studied in advance and difficulty in detecting mutated viruses. According to the heuristic detection technique, unlike the signature-based detection method which simply hashizes the file and verifies / compares the signature, any rule is used as a signature. In particular, in the case of dynamic heuristic detection, an executable file can be executed using an emulator. However, the heuristic detection technique has a disadvantage in that the detection rate may be slowed down and a search error such as a false positive is likely to occur.

최근 들어, 이피오 바이러스(Entry-Point Obscuring(EPO) virus), 다형성 바이러스(polymorphic virus), 및 변종 악성 코드(metamorphic malware)를 사용한 공격 또는 지능적 지속 위협(Advanced Persistent Threats, APT) 공격 등 기존의 백신 프로그램으로는 방어가 어려운 악성 코드들이 크게 증가하였다.In recent years, there has been a growing interest in the use of existing methods such as Entry-Point Obscuring (EPO) viruses, polymorphic viruses, and attacks using metamorphic malware or Advanced Persistent Threats (APT) Malicious codes, which are difficult to defend with the vaccine program, have greatly increased.

예를 들어, 다형성 바이러스는 파일이 감염될 때마다 그 형태가 변형되어 감염 여부를 확인하기 어려운 바이러스로서, 코드에 패딩을 삽입하여 파일을 변조시켜 백신 프로그램이 파일 진단시 생성하는 시그니처와는 다른 값으로 바뀌도록 하여 백신 프로그램을 우회한다. 또한, APT 공격은 프로그램에 문제가 알려지고 난 후 보안 패치가 나올 때까지의 시간차(즉, 제로-데이(zero-day) 취약점)를 이용한 공격이다. 이러한 APT 공격은, 시스템 침입 후 침입 사실을 숨긴 채 차후의 침입을 위한 기능들을 제공하는(즉, 백도어, 트로이목마 등) 루트킷(rootkit) 공격과 같이, 특정 대상에 대해 지능적이고 진화된(advanced) 공격을 장기간동안 지속적으로(persistent) 감행한다.For example, a polymorphic virus is a virus that is infeasible when a file is infected, and it is difficult to confirm the infection. It inserts padding in the code and modifies the file so that the vaccine program is different from the signature To bypass the vaccine program. In addition, APT attacks are attacks using time differences (ie, zero-day vulnerabilities) until a security patch is issued after a problem is known to a program. These APT attacks are intelligent and advanced to specific targets, such as rootkit attacks that provide functionality for future intrusions (ie, backdoors, Trojans, etc.) while hiding intrusions after system intrusions. Attack is persistent for a long period of time.

이처럼, 새로운 유형의 악성 코드에 의한 공격은 기존의 수동적인 시그니처 기반 보호 기술로는 방어가 불가능하며, 이에 따라 다양한 유형의 공격에 상호 보완적인 역할을 하는 진화된 악성 코드 탐지 솔루션이 필요하다.As such, attacks by new types of malware can not be defended by traditional passive signature-based protection technologies, and thus require an advanced malware detection solution that plays a complementary role to various types of attacks.

이와 관련하여, 대한민국 등록특허 제 10-0910761 호(발명의 명칭: 프로세스 행위 예측 기법을 이용한 비정형 악성코드 탐지 방법 및 그 시스템)에서는, 시스템 내에서 실행되는 실행코드들에 대해 1차적인 악성코드 필터링을 수행하기 위한 DB 필터링 모듈; 상기 시스템 내에서 실행되는 실행코드들이 발생시키는 개별 이벤트 정보를 수집하기 위하여 시스템 자원 감시를 수행하기 위한 시스템 자원 모니터 모듈; 상기 시스템 자원 모니터 모듈에서 수집된 개별 이벤트 정보를 재가공하여 상기 실행코드들의 연관성 있는 행위 특성값을 나타내는 하나의 통합 로그로 재구성하기 위한 재가공 모듈; 상기 재가공 모듈로부터 재구성된 통합 로그를 학습 알고리즘에 입력하여 비정형 악성 행위 특징값(예측 패턴)을 추출하기 위한 행위 예측 정보 가공 모듈; 및 상기 행위 예측 정보 가공 모듈에서 추출된 비정형 악성 행위 특징값(예측 패턴)을 상기 재가공 모듈에서 구성되는 행위 특성값 데이터와 비교함으로써 악성 행위를 탐지하는 비정형 악성 행위 탐지 모듈을 포함하는 것을 특징으로 하는 프로세스 행위 예측 기법을 이용한 비정형 악성코드 탐지 시스템을 개시하고 있다.In this regard, Korean Unexamined Patent Publication No. 10-0910761 (entitled "Atypical malicious code detection method and system using the process action prediction method and system thereof)", primary malicious code filtering A DB filtering module for performing the filtering process; A system resource monitor module for monitoring system resources to collect individual event information generated by execution codes executed in the system; A reprocessing module for reprocessing the individual event information collected by the system resource monitor module and reconstructing the integrated event information into a single integrated log indicating associative behavior property values of the execution codes; A behavior prediction information processing module for inputting an integrated log reconstructed from the remodeling module into a learning algorithm and extracting atypical malicious behavior feature values (prediction patterns); And an atypical malicious behavior detection module for detecting a malicious behavior by comparing the atypical malicious behavior feature value (predicted pattern) extracted from the behavior prediction information processing module with the behavior characteristic value data comprised in the rework module A malicious code detection system using a process behavior prediction technique is disclosed.

본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 기존의 백신 프로그램으로 탐지되지 않는 진화형 바이러스(advanced viruses), 슈퍼 바이러스(super viruses) 및 알려지지않은 바이러스(unknown viruses) 등의 악성코드를 배양 및 탐지할 수 있는 악성코드 탐지 장치 및 방법을 제공하고자 한다.Disclosure of Invention Technical Problem [8] Accordingly, the present invention has been made keeping in mind the above problems occurring in the prior art, and it is an object of the present invention to provide a method and apparatus for cultivating malicious codes such as advanced viruses, super viruses and unknown viruses, And a malicious code detection apparatus and method capable of detecting malicious codes.

다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.It should be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may exist.

상기와 같은 기술적 과제를 달성하기 위한 본 발명의 일 측면에 따른 악성코드 탐지 장치는, 복수의 악성코드들이 포함된 악성코드 풀이 저장되며, 악성코드 배양 및 탐지 프로그램이 저장된 메모리; 및 상기 악성코드 배양 및 탐지 프로그램을 실행하는 프로세서를 포함하며, 상기 프로세서는 상기 프로그램의 실행에 대응하여, 상기 악성코드 풀로부터 하나 이상의 악성코드를 획득하여 상기 획득된 악성코드의 소스 코드를 변형 또는 조합하여 새로운 배양 코드를 생성하고, 상기 배양 코드의 작동 여부를 검사하고, 상기 작동 여부를 검사한 결과 상기 배양 코드가 작동할 경우 기설정된 적어도 하나의 백신 프로그램을 통해 상기 배양 코드가 악성코드로서 검출되는지 검사하고, 상기 백신 프로그램 중 적어도 하나에서 상기 배양 코드가 검출될 경우 상기 배양 코드를 폐기하고, 검출되지 않을 경우 상기 배양 코드를 상기 악성코드 풀에 추가하며, 상기 배양 코드가 추가된 악성코드 풀은 악성코드 검출용 데이터베이스로 사용된다.According to an aspect of the present invention, there is provided a malicious code detection apparatus comprising: a memory for storing a malicious code pool including a plurality of malicious codes and storing a malicious code culture and detection program; And a processor for executing the malicious code cultivation and detection program, wherein the processor, in response to the execution of the program, obtains one or more malicious codes from the malicious code pool and transforms the source code of the obtained malicious code The cultivation code is detected as malicious code through at least one predetermined vaccination program when the cultivation code is operated as a result of checking whether the cultivation code is operated or not, The culture code is discarded when the culture code is detected in at least one of the vaccine programs, and the culture code is added to the malicious code pool when the culture code is not detected, and the malicious code pool Is used as a database for detecting malicious codes.

또한, 본 발명의 다른 측면에 따른 악성코드 탐지 장치를 통한 악성코드 탐지 방법은, 복수의 악성코드들이 포함된 악성코드 풀로부터 하나 이상의 악성코드를 획득하는 단계; 상기 획득된 악성코드의 소스 코드를 변형 또는 조합하여 새로운 배양 코드를 생성하는 단계; 상기 배양 코드의 작동 여부를 검사하는 단계; 상기 배양 코드가 작동할 경우, 기설정된 적어도 하나의 백신 프로그램을 통해 상기 배양 코드가 검출되는지 검사하는 단계; 및 상기 백신 프로그램 중 적어도 하나에서 상기 배양 코드가 검출되지 않을 경우 상기 배양 코드를 상기 악성코드 풀에 추가하고, 검출될 경우 상기 배양 코드를 폐기하는 단계를 포함한다.According to another aspect of the present invention, there is provided a malicious code detection method using a malicious code detection apparatus, comprising: obtaining at least one malicious code from a malicious code pool including a plurality of malicious codes; Generating a new cultivation code by modifying or combining the obtained source code of the malicious code; Checking whether the cultivation cords are operating; Checking if the cultivation code is detected through at least one vaccine program set in advance, when the cultivation code is activated; And adding the culture code to the malicious code pool if the culture code is not detected in at least one of the vaccine programs and discarding the culture code if detected.

전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 기존에 이미 알려진 악성코드를 이용하여 새로 배양된 악성코드를 악성코드 탐지 기준으로 사용할 수 있다. 이에 따라, 미존재하거나 기존의 백신 프로그램을 통해 탐지되지 않은 새로운 또는 변종 악성코드들을 효율적으로 탐지할 수 있다.According to any one of the above-described tasks of the present invention, malicious codes newly cultured using previously known malicious codes can be used as malicious code detection criteria. Accordingly, it is possible to efficiently detect new or variant malicious codes that are not present or have not been detected through an existing vaccine program.

도 1은 본 발명의 일 실시예에 따른 악성코드 탐지 장치의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 악성코드 배양 방식을 설명하기 위한 도면이다.
도 3은 본 발명의 다른 실시예에 따른 악성코드 탐지 장치의 구성도이다.
도 4는 본 발명의 일 실시예에 따른 악성코드 탐지 방법을 설명하기 위한 순서도이다.
1 is a block diagram of a malicious code detection apparatus according to an embodiment of the present invention.
FIG. 2 is a diagram for explaining a malicious code culture method according to an embodiment of the present invention.
3 is a block diagram of a malicious code detection apparatus according to another embodiment of the present invention.
4 is a flowchart for explaining a malicious code detection method 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, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when an element is referred to as "comprising ", it means that it can include other elements as well, without departing from the other elements unless specifically stated otherwise.

본 명세서에 있어서 '부(部)' 또는 ‘모듈’이란, 하드웨어 또는 소프트웨어에 의해 실현되는 유닛(unit), 양방을 이용하여 실현되는 유닛을 포함하며, 하나의 유닛이 둘 이상의 하드웨어를 이용하여 실현되어도 되고, 둘 이상의 유닛이 하나의 하드웨어에 의해 실현되어도 된다.Herein, the term " part " or " module " means a unit realized by hardware or software, a unit realized by using both, and a unit realized by using two or more hardware Or two or more units may be realized by one hardware.

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

도 1에 도시한 바와 같이, 본 발명의 일 실시예에 따른 악성코드 탐지 장치(100)는, 저장부(110), 코드 배양부(120), 코드 작동부(130), 코드 검사부(140), 코드 관리부(150) 및 악성코드 탐지부(160)를 포함한다.1, a malicious code detection apparatus 100 according to an exemplary embodiment of the present invention includes a storage unit 110, a code culture unit 120, a code operation unit 130, a code checking unit 140, A code management unit 150, and a malicious code detection unit 160. [

저장부(110)는 복수의 악성코드들이 포함된 악성코드 풀(malware pool)이 저장되어 있다.The storage unit 110 stores a malware pool including a plurality of malicious codes.

악성코드 풀의 초기 상태(즉, 새로 배양된 악성코드가 추가되기 이전의 상태)에는 적어도 하나의 백신 프로그램 상에 기등록된 "알려진 악성코드"들이 포함되어 있다. The initial state of the malicious code pool (ie, the state before the addition of the newly cultivated malicious code) contains "known malicious code" previously registered on at least one vaccine program.

저장부(110)는 초기 상태 이후에 기설정된 주기마다 적어도 하나의 백신 프로그램들로부터 추가 등록된 악성코드들을 획득하고, 백신 프로그램들로부터 획득한 악성코드를 악성코드 풀에 업데이트한다. 이러한 과정은 악성코드 탐지 장치(100)가 자체적으로 배양한 새로운 악성코드를 추가하는 과정과 별도로(병렬적으로) 처리될 수 있다.The storage unit 110 acquires additional registered malicious codes from at least one vaccine programs every predetermined period after the initial state, and updates the malicious code acquired from the vaccine programs to the malicious code pool. This process can be processed separately (in parallel) from the process of adding new malicious code that the malicious code detection apparatus 100 has cultivated itself.

코드 배양부(120)는 악성코드 풀로부터 하나 이상의 악성코드를 획득하고, 획득된 악성코드의 소스 코드를 변형 또는 조합하는 배양(cultivation) 처리를 수행하여 새로운 악성코드(이하, "배양 코드"라고 지칭함)를 생성한다.The code culturing unit 120 acquires one or more malicious codes from the malicious code pool and performs a cultivation process of transforming or combining the source codes of the obtained malicious codes to generate new malicious codes Quot;).

구체적으로, 코드 배양부(120)는 악성코드 풀로부터 획득한 적어도 하나의 악성코드 별로 소스 코드를 코드 라인 단위, 함수 단위 및 의미 단위 중 적어도 하나에 기준하여 분리한다. 코드 배양부(120)는 악성코드 풀로부터 적어도 하나의 악성코드들을 랜덤하게 획득할 수 있다.Specifically, the code culturing unit 120 separates the source code by at least one of a code line unit, a function unit, and a semantic unit for each of at least one malicious code acquired from the malicious code pool. The code culturing unit 120 can randomly acquire at least one malicious code from the malicious code pool.

그리고, 코드 배양부(120)는 악성코드 풀로부터 획득된 악성코드를 각각 분리된 단위 별로 변형 또는 조합하여 배양 코드를 생성한다.The code culturing unit 120 generates a cultivation code by modifying or combining the malicious code obtained from the malicious code pool on a separate unit basis.

예를 들어, 코드 배양부(120)는 획득된 어느 하나의 악성코드의 소스 코드의 적어도 일부를 변경하거나 또는 삭제하여 배양 코드를 생성할 수 있다. 즉, 코드 배양부(120)는 획득된 악성코드들을 개별적으로 변형하여 배양 코드를 생성할 수 있으며, 하나의 악성코드에 다른 악성코드의 적어도 일부를 적용하여 변형할 수도 있다.For example, the code culturing unit 120 may generate the cultivation code by changing or deleting at least a part of the source code of any one of the obtained malicious codes. That is, the code culturing unit 120 may generate the cultivation code by individually modifying the acquired malicious codes, and may modify the malicious code by applying at least a part of other malicious codes to the malicious code.

한편, 코드 배양부(120)는, 유전 알고리즘(Genetic Algorithm)을 악성코드 배양 방식에 적용하여, 둘 이상의 악성코드를 교배하여 새로운 배양 코드를 생성할 수 있다.On the other hand, the code culturing unit 120 may apply a genetic algorithm to a malicious code cultivation method to generate a new cultivation code by crossing two or more malicious codes.

이때, 코드 배양부(120)는 악성코드 풀로부터 둘 이상의 악성 코드를 획득하고, 획득된 둘 이상의 악성 코드 별 소스 코드를 상기 분리된 단위 별로 셔플링하여 배양 코드를 생성한다.At this time, the code culturing unit 120 acquires two or more malicious codes from the malicious code pool, generates a cultivation code by shuffling the obtained two or more pieces of malicious code-specific source codes by the separated units.

이와 관련하여, 아래 도 2를 참조하여 좀 더 구체적으로 설명하도록 한다.In this regard, a more detailed description will be given with reference to FIG. 2 below.

도 2는 본 발명의 일 실시예에 따른 악성코드 배양 방식을 설명하기 위한 도면이다.FIG. 2 is a diagram for explaining a malicious code culture method according to an embodiment of the present invention.

도 2에서는 코드 배양부(120)가 악성코드 풀로부터 2개의 악성코드(즉, "악성코드 A" 및 "악성코드 B")를 획득한 것을 나타냈다. 즉, 코드 배양부(120)는 획득된 2개의 악성코드를 부모로 설정하여 유전 알고리즘을 적용한 배양 코드 생성을 처리한다.In FIG. 2, the code culturing unit 120 has acquired two malicious codes (that is, "malicious code A" and "malicious code B") from the malicious code pool. That is, the code culturing unit 120 processes the generated culture code by setting the acquired two malicious codes as parents and applying the genetic algorithm.

코드 배양부(120)는 획득된 둘 이상의 악성코드 별 소스 코드들을 메인 함수, 메인 함수 상단 및 메인 함수 하단으로 구분하고, 파트 단위로 둘 이상의 악성코드 별 소스코드들의 적어도 일부를 셔플링한다.The code culturing unit 120 divides the acquired source codes of two or more malicious codes into a main function, a main function upper part, and a lower part of a main function, and shuffles at least a part of the source codes of two or more malicious codes in units of parts.

예를 들어, 도 2에서와 같이, 악성코드 A 및 B는 각각 3개의 파트로 구분된다. 이때, 'Part A-1' 및 'Part B-1'은 메인 함수('main ()') 상단부이며, 'Part A-2' 및 'Part B-2'는 메인함수 부분이고, 'Part A-2' 및 'Part B-2'는 메인함수 하단부이다. 일반적으로, 메인함수 상단은 메인함수 이전의 함수, 라이브러리를 임포트하는 과정에서의 선언문, 및 전역변수 등을 포함한다. 그리고 메인함수 하단은 메인함수 이후의 함수를 의미한다.For example, as shown in FIG. 2, malicious codes A and B are divided into three parts, respectively. Here, 'Part A-1' and 'Part B-1' are the upper part of the main function ('main () -2 'and' Part B-2 'are the lower part of the main function. In general, the top of the main function includes functions before the main function, declarations in the process of importing the library, and global variables. And the bottom of the main function is the function after the main function.

코드 배양부(120)는 컴퓨터가 읽기 처리 및 실행이 가능한 단위로서 코드 라인, 함수 및 의미 단위를 구분할 수 있다. 이에 따라, 코드 배양부(120)는 메인함수 상단을 코드 라인 별 또는 정의된 함수 별로 분리할 수 있다. 그리고 코드 배양부(120)는 메인함수를 전역변수와 같이 각 코드 라인 별로 인식 가능한 경우 코드 라인별로 분리하고, 조건문 및 반복문 등의 복수개의 코드 라인이 하나의 블록을 이루는 경우 해당 블록을 하나의 의미 단위로서 분리한다.The code culturing unit 120 can classify a code line, a function, and a semantic unit as a unit through which the computer can read and execute. Accordingly, the code culturing unit 120 can separate the top of the main function by code lines or by defined functions. The code culturing unit 120 separates the main function for each code line when the main function is recognizable for each code line as a global variable, and when a plurality of code lines such as a conditional statement and a loop statement form one block, .

이상에 따르면, 도 2에서 악성코드 A의 메인함수 상단 파트는 3개로 분리되고, 메인함수 파트는 5개로 분리될수 있으며, 메인함수 하단 파트는 2개로 분리된다. 또한, 도 2에서 악성코드 B의 메인함수 상단 파트는 7개로 분리되고, 메인함수 파트는 7개로 분리될수 있으며, 메인함수 하단 파트는 분리할 코드가 존재하지 않는다. 이러한, 도 2의 악성코드 A 및 B를 셔플링하여 각 파트 별로 상기 분리된 단위들의 순서를 변경한 경우, 메인함수 상단 파트에 10개의 단위들이 포함되고, 메인함수 파트에 12개의 단위들이 포함되며, 메인함수 하단 파트에 2개의 단위가 포함된 새로운 배양 코드가 생성될 수 있다.According to the above, in FIG. 2, the upper part of the main function of the malicious code A is divided into three parts, the main function part can be separated into five parts, and the lower part of the main function is divided into two parts. In FIG. 2, the upper part of the main function of the malicious code B is divided into seven parts, and the main function part can be divided into seven parts. There is no code to separate the main function lower part. When shuffling the malicious codes A and B in FIG. 2 and changing the order of the separated units for each part, 10 units are included in the upper part of the main function and 12 units are included in the main function part , A new cultivation code can be generated that includes two units in the lower part of the main function.

코드 배양부(120)는 메인 함수가 포함되지 않은 메인함수 외부는 코드 순서를 고려하지 않고 셔플링하고, 메인 함수 내부는 상기 분리된 단위별로 고유(원래)의 순서를 유지하여 셔플링한다. 이는, 일반적으로 컴퓨터 프로그램에서 메인 함수 내의 코드는 절차지향식 방법을 사용하여 위에서 아래의 방향으로 순서대로 읽고 처리되기 때문이다.The code culturing unit 120 shuffles outside the main function that does not include the main function without considering the code order, and shuffles the main function while maintaining the original order of the separated units. This is because, in a computer program, the code in the main function is typically read and processed in a top-down direction using a procedure-oriented method.

코드 배양부(120)는 둘 이상의 악성코드의 소스코드를 다양한 프로그램 언어(예: C, 자바, 파이썬, 포트란, 중간언어, 어셈블리, 비트열 등)를 이용하여 조합할 수 있다.The code culturing unit 120 may combine the source codes of two or more malicious codes using various programming languages (e.g., C, Java, Python, Fortran, intermediate language, assembly, bit string, etc.).

코드 작동부(130)는 코드 배양기(120)로부터 배양된 배양 코드 별로 작동이 가능한지 여부를 검사한다. 이때, 코드 작동부(130)는 해당 배양 코드가 제대로 동작하는 경우 코드 검사부(140)로 전달하고, 작동하지 않는 경우 폐기한다.The code operation unit 130 checks whether or not the cultured code cultured from the code incubator 120 is operable. At this time, the code operating unit 130 transmits the cultured code to the code checking unit 140 when the cultured code operates properly, and discards it if it does not operate.

코드 검사부(140)는 해당 배양 코드가 작동할 경우, 기설정된 적어도 하나의 백신 프로그램을 통해 해당 배양 코드가 악성코드로서 검출되는지 검사한다.When the cultivation code is operated, the code checking unit 140 checks whether the cultivation code is detected as a malicious code through at least one predetermined vaccination program.

코드 검사부(140)는 각각 상이한 백신 프로그램이 설치된 적어도 하나의 가상 머신 상에서 백신 프로그램을 실행하여 해당 배양 코드가 악성코드로서 검출되는지 검사한다. 이때, 코드 검사부(140)는 작동하는 것으로 판단된 배양 코드의 시그니처를 생성하고, 배양 코드의 시그니처를 사용하여 백신 프로그램을 통해 악성코드 여부를 검사할 수 있다. 참고로, 백신 프로그램은 시중에 출시된 안티바이러스 제품일 수 있다. 또한, 코드 검사부(140)는 악성코드의 시그니처로서 파일의 MD5나 SHA1 등의 해시 값 또는 코드 내 특정 문자열(string)을 생성할 수 있다.The code checking unit 140 executes a vaccine program on at least one virtual machine in which different vaccine programs are installed, and checks whether the corresponding cultivation codes are detected as malicious codes. At this time, the code inspecting unit 140 may generate a signature of the cultured code determined to be operative, and may check whether the malicious code is detected through the vaccine program using the signature of the cultured code. For reference, the vaccine program may be a commercially available antivirus product. Also, the code checking unit 140 can generate a hash value such as MD5 or SHA1 of the file or a specific string in the code as a signature of the malicious code.

코드 관리부(150)는 코드 검사부(140)의 검사 결과 백신 프로그램 중 적어도 하나에서 해당 배양 코드가 검출될 경우 해당 배양 코드를 폐기하고, 검출되지 않을 경우 해당 배양 코드를 저장부(110)로 전달하여 악성코드 풀에 추가한다.The code management unit 150 discards the cultivation code when the cultivation code is detected in at least one of the vaccination programs as a result of the inspection by the code inspection unit 140. If the culture code is not detected, the code management unit 150 transmits the cultivation code to the storage unit 110 Add it to the malware pool.

이때, 코드 관리부(150)는 배양 코드 및 시그니처를 매칭하여 악성코드 풀에 추가할 수 있다.At this time, the code management unit 150 may add the culture code and the signature to the malicious code pool.

악성코드 탐지부(160)는 새로운 배양 코드가 지속적으로 업데이트되고 있는 악성코드 풀을 악성코드 검출용 데이터베이스로 사용하여 악성코드를 검출한다.The malicious code detection unit 160 detects a malicious code by using a malicious code pool in which new culture codes are continuously updated as a malicious code detection database.

이때, 악성코드 탐지부(160)는 기존의 백신 프로그램을 실행하되, 백신 프로그램의 데이터베이스로서 악성코드 풀을 제공할 수 있다.At this time, the malicious code detection unit 160 may execute an existing vaccine program, and may provide a malicious code pool as a database of the vaccine program.

한편, 이상에서 설명한 본 발명의 다른 실시예에 따른 악성코드 탐지 장치(100)는 메모리 및 프로세서로 구성될 수도 있다. 즉, 앞서 도 1에서 나타낸 악성코드 탐지 장치(100)의 각 구성들은 도 3에서와 같은 메모리(110') 및 프로세서(120')로 구현될 수 있다.Meanwhile, the malicious code detection apparatus 100 according to another embodiment of the present invention described above may be constituted by a memory and a processor. That is, each of the configurations of the malicious code detection apparatus 100 shown in FIG. 1 may be implemented by the memory 110 'and the processor 120' as shown in FIG.

도 3은 본 발명의 다른 실시예에 따른 악성코드 탐지 장치의 구성도이다.3 is a block diagram of a malicious code detection apparatus according to another embodiment of the present invention.

도 3에 도시한 바와 같이, 악성코드 탐지 장치(100')는 메모리(110') 및 프로세서(120')를 포함한다.As shown in FIG. 3, the malicious code detection device 100 'includes a memory 110' and a processor 120 '.

구체적으로, 메모리(110')는 도 1에서 설명한 저장부(110)의 모든 동작 또는 절차를 처리한다.Specifically, the memory 110 'processes all the operations or procedures of the storage unit 110 described in FIG.

메모리(110')에는 앞서 도 1 및 도 2를 통해 설명한 악성코드 풀이 저장되어 있으며, 악성코드 배양 및 탐지를 처리하기 위한 각종 프로그램이 저장되어 있다. 이때, 메모리(110')는 는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장장치 및 저장된 정보를 유지하기 위하여 전력이 필요한 휘발성 저장장치를 통칭하는 것이다.The memory 110 'stores the malicious code pool described above with reference to FIGS. 1 and 2, and stores various programs for processing malicious code cultivation and detection. At this time, the memory 110 'collectively refers to a non-volatile storage device that keeps stored information even when power is not supplied, and a volatile storage device that requires power to maintain stored information.

메모리(110')에는 악성코드 풀에 저장된 '알려진 악성코드'를 이용하여 새로운 배양 코드를 생성하기 위한 악성코드 배양 프로그램, 새로 배양한 악성코드(즉, '배양 코드')가 추가된 악성코드 풀을 악성코드 탐지용 데이터베이스로 제공하기 위한 악성코드 탐지 프로그램이 저장되어 있다. 이러한 악성코드 배양 프로그램 및 악성코드 탐지 프로그램은 연계된 하나의 프로그램으로 구성되거나, 또는 서로 연동되어 처리되는 별도의 프로그램으로 구성될 수도 있다.The memory 110 'stores a malicious code culture program for generating a new culture code by using a known malicious code stored in a malicious code pool, a malicious code pool having a newly cultivated malicious code (i.e., a cultivation code) A malicious code detection program for providing a malicious code detection database is stored. The malicious code cultivation program and the malicious code detection program may be composed of one program linked to each other, or may be composed of separate programs which are interlocked and processed.

프로세서(120')는 메모리(110')에 저장된 악성코드 배양 프로그램 및 탐지 프로그램을 실행하여 그에 따른 각종 처리를 수행한다.The processor 120 'executes a malicious code cultivation program and a detection program stored in the memory 110' to perform various processes according to the programs.

이때, 프로세서(120')는 도 1에서 설명한 코드 배양부(120), 코드 작동부(130), 코드 검사부(140), 코드 관리부(150) 및 악성코드 탐지부(160)의 모든 동작 또는 절차를 처리한다.At this time, the processor 120 'performs all the operations or procedures of the code culturing unit 120, the code operating unit 130, the code checking unit 140, the code managing unit 150 and the malicious code detecting unit 160 described in FIG. .

구체적으로, 프로세서(120')는 악성코드 배양 프로그램을 실행하여 다음과 같은 처리를 수행한다.Specifically, the processor 120 'executes a malicious code cultivation program to perform the following processing.

프로세서(120')는 악성코드 풀로부터 하나 이상의 악성코드를 획득하고, 획득된 악성코드의 소스 코드를 변형 또는 조합하는 배양 처리를 수행하여 새로운 악성코드(즉, '배양 코드')를 생성한다.The processor 120 'acquires one or more malicious codes from the malicious code pool and performs a cultivation process to transform or combine the source code of the obtained malicious code to generate a new malicious code (i.e., a' cultivation code ').

이때, 획득된 악성코드의 소스 코드를 코드 라인 단위, 함수 단위 및 의미 단위 중 적어도 하나에 기준하여 분리하고, 획득된 악성코드를 상기 분리된 단위 별로 변형 또는 조합하여 배양 코드를 생성할 수 있다.At this time, the source code of the obtained malicious code may be separated based on at least one of a code line unit, a function unit, and a semantic unit, and the obtained malicious code may be modified or combined for each of the separated units to generate a culture code.

그리고 프로세서(120')는 생성된 배양 코드가 실제로 작동하는지 작동 여부를 검사한다. 그런다음, 프로세서(120')는 배양 코드가 제대로 동작한 경우 적어도 하나의 백신 프로그램을 통해 해당 배양 코드가 악성코드로서 검출되는지 검사한다. 이때, 프로세서(120')는 생성된 배양 코드가 작동하지 않는 경우 폐기 처리한다. 또한, 프로세서(120')는 시스템 보호 및 백신 프로그램 간의 충돌을 방지하기 위하여 가상 머신 상에서 배양코드 작동 검사 및 백신 검사를 처리할 수 있다. The processor 120 'then checks whether the generated cultivation code is actually working or not. The processor 120 'then checks if the incubation code is detected as malicious code through at least one vaccination program if the incubation code is operating properly. At this time, the processor 120 'discards the generated culture code if it does not operate. In addition, the processor 120 'may process the incubation code operational and vaccine tests on the virtual machine to protect the system and prevent conflicts between the vaccine programs.

다음으로, 프로세서(120')는 백신 프로그램을 통해 해당 배양 코드가 검출되면 배양 코드가 이미 기존에 알려진 악성코드이므로 이를 폐기 처리한다. 반면에, 프로세서(120')는 백신 프로그램을 통해 해당 배양 코드가 검출되지 않는 경우, 배양 코드를 악성코드 풀에 추가한다.Next, when the cultivation code is detected through the vaccine program, the processor 120 'discards the cultivation code since it is already known malicious code. On the other hand, the processor 120 'adds the incubation code to the malicious code pool when the incubation program does not detect the incubation code.

즉, 새로 생성된 배양 코드는 기존의 백신 프로그램에 악성코드로서 등록되지 않은 악성코드(예: 슈퍼 바이러스)이거나 아직 미존재하는 악성코드로서 추후 발생될 수 있는 가능성이 있는 코드로서, 악성코드 탐지용 기준으로 사용될 수 있다. 이를 위해, 프로세서(120')는 배양 코드가 지속적으로 업데이트되는 악성코드 풀을 악성코드 탐지용 데이터베이스로 사용하여 악성코드를 검출하거나, 또는 악성코드 풀을 적어도 하나의 백신 프로그램의 데이터베이스로서 사용될 수 있도록 제어할 수 있다.That is, the newly generated culture code is a malicious code (for example, super virus) that is not registered as a malicious code in a conventional vaccine program or a malicious code that does not yet exist, which is likely to occur later. Can be used as a reference. To this end, the processor 120 'may be configured to detect malicious code using the malicious code pool in which the cultivation code is constantly updated as a malicious code detection database, or to allow the malicious code pool to be used as a database of at least one vaccine program Can be controlled.

더불어, 프로세서(120')는 악성코드 풀의 초기 상태 이후에 기설정된 주기마다 적어도 하나의 백신 프로그램들로부터 추가 등록된 악성코드들을 획득하고, 백신 프로그램들로부터 획득한 악성코드를 악성코드 풀에 업데이트할 수 있다.In addition, the processor 120 'obtains additional registered malicious codes from at least one vaccine programs every predetermined period after the initial state of the malicious code pool, updates the malicious code acquired from the antivirus programs to the malicious code pool can do.

이하, 도 4를 참조하여 본 발명의 일 실시예에 따른 악성코드 탐지 장치를 통한 악성코드 탐지 방법에 대해서 상세히 설명하도록 한다.Hereinafter, a malicious code detection method using the malicious code detection apparatus according to an embodiment of the present invention will be described in detail with reference to FIG.

도 4는 본 발명의 일 실시예에 따른 악성코드 탐지 방법을 설명하기 위한 순서도이다.4 is a flowchart for explaining a malicious code detection method according to an embodiment of the present invention.

먼저, 복수의 악성코드들이 포함된 악성코드 풀로부터 하나 이상의 악성코드를 획득한다(S410).First, one or more malicious codes are obtained from a malicious code pool including a plurality of malicious codes (S410).

이때, 악성코드 풀에는 사전에 연동된 백신 프로그램 별로 등록된 "알려진 악성코드"들이 포함되어 있으며, 악성코드 풀에 포함된 악성코드들을 이용하여 배양한 새로운 악성코드가 지속적으로 추가된다.At this time, the malicious code pool contains "known malicious codes" registered for each vaccine program linked in advance, and new malicious codes cultivated using the malicious codes included in the malicious code pool are continuously added.

다음으로, 획득된 악성코드의 소스 코드를 변형 또는 조합하여 새로운 악성코드(즉, 배양 코드)를 배양한다(S420).Next, a new malicious code (i.e., a cultured code) is cultured by modifying or combining the obtained source code of the malicious code (S420).

이때, 획득된 악성코드의 소스 코드를 코드 라인 단위, 함수 단위 및 의미 단위 중 적어도 하나에 기준하여 분리하고, 획득된 악성코드를 상기 분리된 단위 별로 변형 또는 조합하여 배양 코드를 생성할 수 있다.At this time, the source code of the obtained malicious code may be separated based on at least one of a code line unit, a function unit, and a semantic unit, and the obtained malicious code may be modified or combined for each of the separated units to generate a culture code.

예를 들어, 획득된 어느 하나의 악성코드의 소스 코드의 적어도 일부를 변경하거나 또는 삭제하여 배양 코드를 생성할 수 있다. 또한, 악성코드 풀로부터 획득된 둘 이상의 악성 코드 별 소스 코드를 상기 분리된 단위 별로 셔플링하여 배양 코드를 생성할 수 있다. 이때, 획득된 둘 이상의 악성코드 별 소스 코드들을 메인 함수, 메인 함수 상단 및 메인 함수 하단으로 구분된 복수의 파트로 구분하고, 파트 단위로 둘 이상의 악성코드 별 소스코드들의 적어도 일부를 셔플링하여 배양 코드를 생성할 수 있다. 또한, 소스 코드 중 메인 함수의 내부는 고유의 순서를 유지하여 셔플링하고, 메인 함수의 외부는 순서에 상관없이 셔플링할 수 있다.For example, at least a part of the source code of any one of the obtained malicious codes may be changed or deleted to generate the cultivation code. In addition, two or more malicious code-specific source codes obtained from the malicious code pool may be shuffled by the separated units to generate a culture code. At this time, the obtained two or more pieces of malicious code-specific source codes are divided into a main function, a main function upper part and a plurality of parts divided into a lower part of the main function, and at least a part of two or more pieces of malicious code- You can generate code. Also, the inside of the main function of the source code can be shuffled while maintaining its own order, and the outside of the main function can be shuffled regardless of the order.

그런 다음, 배양 코드의 작동 여부를 검사한다(S430).Then, it is checked whether or not the incubation code is operating (S430).

배양 코드가 작동 가능한지 검사한 결과, 배양 코드가 제대로 작동하지 않는 경우 해당 코드를 폐기한다(S440).If it is determined that the cultivation code is operable, if the cultivation code does not work properly, the corresponding code is discarded (S440).

반면에, 배양 코드가 동작한 경우, 기설정된 적어도 하나의 백신 프로그램에 해당 배양 코드를 입력하여(S450), 적어도 하나의 백신 프로그램을 통해 해당 배양 코드가 검출되는 검사한다(S460).On the other hand, if the incubation code is operated, the incubation code is input to at least one vaccination program set in S450, and the incubation code is detected through at least one vaccination program (S460).

이때, 복수의 백신 프로그램들 간에 충돌을 방지하고, 시스템 운용상의 안전을 위하여 복수의 가상 머신 상에서 해당 검사를 처리할 수 있다. 이때, 각 가상 머신에는 하나의 백신 프로그램이 설치된다.At this time, it is possible to prevent a collision between a plurality of vaccine programs and to process the inspection on a plurality of virtual machines for safety in system operation. At this time, one antivirus program is installed in each virtual machine.

상기 단계 (S460)의 검사 결과, 해당 배양 코드가 적어도 하나의 백신 프로그램에서 악성 코드로서 검출된 경우 폐기한다(S470).If the cultivation code is detected as malicious code in at least one vaccination program as a result of the inspection in step S460, it is discarded (S470).

반면에, 상기 단계 (S460)의 검사 결과, 해당 배양 코드가 악성 코드로서 검출되지 않는 경우 악성코드 풀에 추가한다(S480).On the other hand, if the cultivation code is not detected as a malicious code as a result of the inspection in step S460, the malicious code pool is added to the malicious code pool (S480).

이때, 상기 단계 (S450) 이전에, 제대로 작동하는 배양 코드의 경우 시그니처를 생성하는 단계를 처리할 수 있으며, 상기 단계 (S460)에서 해당 배양 코드의 시그니처를 사용하여 백신 프로그램을 통해 악성코드 여부를 검사할 수 있다.At this time, it is possible to process a step of generating a signature in the case of a cultured code that operates properly before the step S450. In the step S460, whether a malicious code is detected through a vaccine program using the signature of the cultured code Can be inspected.

그리고, 이처럼 시그니처를 사용하여 악성코드 여부를 검사한 경우, 상기 단계 (S480)에서 해당 배양 코드 및 시그니처를 매칭하여 악성코드 풀에 추가할 수 있다.If the malicious code is checked using the signature, the malicious code pool may be matched with the corresponding cultivation code and signature in step S480.

그런 다음, 배양 코드가 추가된 악성코드 풀을 악성코드 검출용 데이터베이스로 사용하여 악성코드를 검출한다(S490).Then, the malicious code pool in which the cultivation code is added is used as the malicious code detection database to detect malicious code (S490).

위와 같은 본 발명의 일 실시예에 따른 악성코드 탐지 장치 및 방법은, 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.The malicious code detection apparatus and method according to an embodiment of the present invention may be implemented in the form of a recording medium including instructions executable by a computer such as a program module executed by a computer. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer-readable medium can include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically includes any information delivery media, including computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transport mechanism.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

100, 110': 악성코드 탐지 장치 110: 저장부
120: 코드 배양부 130: 코드 작동부
140: 코드 검사부 150: 코드 관리부
160: 악성코드 탐지부 110': 메모리
120': 프로세서
100, 110 ': malicious code detection device 110:
120: code culturing unit 130: code operating unit
140: code checking unit 150: code managing unit
160: Malicious code detection unit 110 ': Memory
120 ': Processor

Claims (14)

악성코드 탐지 장치에 있어서,
복수의 악성코드들이 포함된 악성코드 풀이 저장되며, 악성코드 배양 및 탐지 프로그램이 저장된 메모리; 및
상기 악성코드 배양 및 탐지 프로그램을 실행하는 프로세서를 포함하며,
상기 프로세서는 상기 프로그램의 실행에 대응하여, 상기 악성코드 풀로부터 하나 이상의 악성코드를 획득하여 상기 획득된 악성코드의 소스 코드를 변형 또는 조합하여 새로운 배양 코드를 생성하고, 상기 배양 코드의 작동 여부를 검사하고, 상기 작동 여부를 검사한 결과 상기 배양 코드가 작동할 경우 기설정된 적어도 하나의 백신 프로그램을 통해 상기 배양 코드가 악성코드로서 검출되는지 검사하고, 상기 백신 프로그램 중 적어도 하나에서 상기 배양 코드가 검출될 경우 상기 배양 코드를 폐기하고, 검출되지 않을 경우 상기 배양 코드를 상기 악성코드 풀에 추가하며,
상기 배양 코드가 추가된 악성코드 풀은 악성코드 검출용 데이터베이스로 사용되는 악성코드 탐지 장치.
In a malicious code detection device,
A memory storing a malicious code pool including a plurality of malicious codes and storing a malicious code cultivation and detection program; And
And a processor for executing the malicious code cultivation and detection program,
Wherein the processor obtains one or more malicious codes from the malicious code pool in response to the execution of the program and generates a new culture code by modifying or combining the obtained source code of the malicious code to determine whether the culture code is operating And checking whether the cultivation code is detected as malicious code through at least one preset vaccination program when the cultivation code is operated as a result of checking whether or not the cultivation code is detected, Discarding the culture code if it is detected, adding the culture code to the malicious code pool if not detected,
The malicious code pool to which the culture code is added is used as a malicious code detection database.
제 1 항에 있어서,
상기 프로세서는,
상기 획득된 악성코드의 소스 코드를 코드 라인 단위, 함수 단위 및 의미 단위 중 적어도 하나에 기준하여 분리하고, 상기 획득된 악성코드를 상기 분리된 단위 별로 변형 또는 조합하여 배양 코드를 생성하는 악성코드 탐지 장치.
The method according to claim 1,
The processor comprising:
Malicious code detection that separates the obtained source code of the obtained malicious code based on at least one of a code line unit, a function unit and a semantic unit and generates a cultured code by transforming or combining the obtained malicious code by the separated unit Device.
제 2 항에 있어서,
상기 프로세서는,
상기 획득된 어느 하나의 악성코드의 소스 코드의 적어도 일부를 변경하거나 또는 삭제하여 배양 코드를 생성하는 악성 코드 탐지 장치.
3. The method of claim 2,
The processor comprising:
And changing or deleting at least a part of the source code of any one of the acquired malicious codes to generate a cultivation code.
제 2 항에 있어서,
상기 프로세서는,
상기 악성코드 풀로부터 둘 이상의 악성 코드를 획득하고, 상기 획득된 둘 이상의 악성코드 별 소스 코드들을 각각 메인 함수, 메인 함수 상단 및 메인 함수 하단으로 구분하고, 상기 파트 단위로 상기 둘 이상의 악성코드 별 소스코드들의 적어도 일부를 셔플링하며,
상기 소스 코드 중 상기 메인 함수의 내부는 고유의 순서를 유지하여 셔플링하고, 상기 메인 함수의 외부는 순서에 상관없이 셔플링하는 악성코드 탐지 장치.
3. The method of claim 2,
The processor comprising:
Wherein the malicious code generation unit obtains two or more malicious codes from the malicious code pool and divides the acquired two or more malicious code source codes into a main function, a main function upper part, and a main function lower part, Shuffling at least a portion of the codes,
Wherein the main function is shuffled while maintaining its own internal order and shuffling the outside of the main function in any order.
제 1 항에 있어서,
상기 프로세서는,
각각 상이한 백신 프로그램이 설치된 적어도 하나의 가상 머신 상에서 상기 배양 코드를 검출하는 악성코드 탐지 장치.
The method according to claim 1,
The processor comprising:
A malicious code detection device for detecting said cultivation codes on at least one virtual machine in which different vaccine programs are installed.
제 1 항에 있어서,
상기 프로세서는,
상기 작동 여부를 검사한 결과, 작동하는 것으로 판단된 상기 배양 코드의 시그니처를 생성하고, 상기 배양 코드의 시그니처를 사용하여 상기 백신 프로그램을 통해 악성코드 여부를 검사하고,
상기 배양 코드가 악성코드로서 검출되지 않은 경우, 상기 배양 코드 및 상기 시그니처를 매칭하여 상기 악성코드 풀에 추가하는 악성코드 탐지 장치.
The method according to claim 1,
The processor comprising:
Generating a signature of the cultured code that is determined to be operative as a result of the operation; checking whether the malicious code is detected through the vaccine program using the signature of the cultured code;
And adding the cultivation code and the signature to the malicious code pool when the cultivation code is not detected as malicious code.
제 1 항에 있어서,
초기 상태의 상기 악성코드 풀에는 적어도 하나의 백신 프로그램 상에 기등록된 알려진 악성코드들이 포함되어 있으며,
상기 프로세서는,
상기 초기 상태 이후에 기설정된 주기마다 적어도 하나의 백신 프로그램들로부터 추가 등록된 악성코드들을 획득하여 상기 악성코드 풀에 업데이트하는 악성코드 탐지 장치.
The method according to claim 1,
The malicious code pool in the initial state includes known malicious codes previously registered on at least one vaccine program,
The processor comprising:
And acquires additional registered malicious codes from at least one vaccine programs every predetermined period after the initial state and updates the obtained malicious codes to the malicious code pool.
악성코드 탐지 장치를 통한 악성코드 탐지 방법에 있어서,
복수의 악성코드들이 포함된 악성코드 풀로부터 하나 이상의 악성코드를 획득하는 단계;
상기 획득된 악성코드의 소스 코드를 변형 또는 조합하여 새로운 배양 코드를 생성하는 단계;
상기 배양 코드의 작동 여부를 검사하는 단계;
상기 배양 코드가 작동할 경우, 기설정된 적어도 하나의 백신 프로그램을 통해 상기 배양 코드가 검출되는지 검사하는 단계; 및
상기 백신 프로그램 중 적어도 하나에서 상기 배양 코드가 검출되지 않을 경우 상기 배양 코드를 상기 악성코드 풀에 추가하고, 검출될 경우 상기 배양 코드를 폐기하는 단계를 포함하는 악성코드 탐지 방법.
A malicious code detection method using a malicious code detection device,
Obtaining one or more malicious codes from a malicious code pool including a plurality of malicious codes;
Generating a new cultivation code by modifying or combining the obtained source code of the malicious code;
Checking whether the cultivation cords are operating;
Checking if the cultivation code is detected through at least one vaccine program set in advance, when the cultivation code is activated; And
Adding the culture code to the malicious code pool if the culture code is not detected in at least one of the vaccine programs and discarding the culture code if detected.
제 8 항에 있어서,
상기 배양 코드가 추가된 상기 악성코드 풀을 악성코드 검출용 데이터베이스로 사용하여 악성코드를 검출하는 단계를 더 포함하는 악성코드 탐지 방법.
9. The method of claim 8,
Detecting malicious code using the malicious code pool to which the cultivation code is added as a malicious code detection database.
제 8 항에 있어서,
상기 새로운 배양 코드를 생성하는 단계는,
상기 획득된 악성코드의 소스 코드를 코드 라인 단위, 함수 단위 및 의미 단위 중 적어도 하나에 기준하여 분리하는 단계; 및
상기 획득된 악성코드를 상기 분리된 단위 별로 변형 또는 조합하여 상기 배양 코드를 생성하는 단계를 포함하는 악성코드 탐지 방법.
9. The method of claim 8,
Wherein the step of generating the new cultivation code comprises:
Separating the source code of the obtained malicious code based on at least one of a code line unit, a function unit and a semantic unit; And
And generating the cultivation code by transforming or combining the obtained malicious code for each of the separated units.
제 10 항에 있어서,
상기 분리된 단위 별로 변형 또는 조합하여 상기 배양 코드를 생성하는 단계는,
상기 획득된 어느 하나의 악성코드의 소스 코드의 적어도 일부를 변경하거나 또는 삭제하여 상기 배양 코드를 생성하는 악성 코드 탐지 방법.
11. The method of claim 10,
Wherein the step of generating the culture code by modifying or combining the separated units comprises:
And changing or deleting at least a part of the source code of any one of the obtained malicious codes to generate the cultivation code.
제 10 항에 있어서,
상기 새로운 배양 코드를 생성하는 단계는,
상기 악성코드 풀로부터 획득된 둘 이상의 악성 코드 별 소스 코드를 각각 메인 함수, 메인 함수 상단 및 메인 함수 하단으로 구분된 복수의 파트로 구분하는 단계; 및
상기 파트 단위로 상기 둘 이상의 악성코드 별 소스코드들의 적어도 일부를 셔플링하는 단계를 포함하며,
상기 소스 코드 중 상기 메인 함수의 내부는 고유의 순서를 유지하여 셔플링하고, 상기 메인 함수의 외부는 순서에 상관없이 셔플링하는 악성코드 탐지 방법.
11. The method of claim 10,
Wherein the step of generating the new cultivation code comprises:
Dividing the two or more malicious code source codes obtained from the malicious code pool into a plurality of parts respectively divided into a main function, a main function upper part and a lower main function part; And
And shuffling at least a part of the two or more pieces of malicious code-specific source codes on a part-by-part basis,
Wherein the main function is shuffled while maintaining its own internal order and shuffling the outside of the main function in any order.
제 8 항에 있어서,
상기 적어도 하나의 백신 프로그램을 통해 상기 배양 코드가 검출되는지 검사하는 단계는,
각각 상이한 백신 프로그램이 설치된 적어도 하나의 가상 머신 상에서 상기 배양 코드를 검출하는 악성코드 탐지 방법.
9. The method of claim 8,
Wherein the step of verifying that the culturing code is detected through the at least one vaccine program comprises:
And detecting said cultivation code on at least one virtual machine in which different vaccine programs are installed.
제 8 항에 있어서,
상기 적어도 하나의 백신 프로그램을 통해 상기 배양 코드가 검출되는지 검사하는 단계 이전에,
작동하는 것으로 판단된 상기 배양 코드의 시그니처를 생성하는 단계를 더 포함하며,
상기 배양 코드의 시그니처를 사용하여 상기 백신 프로그램을 통해 악성코드 여부를 검사하고,
상기 배양 코드가 악성코드로 검출되지 않은 경우, 상기 배양 코드 및 상기 시그니처를 매칭하여 상기 악성코드 풀에 추가하는 악성코드 탐지 방법.
9. The method of claim 8,
Prior to the step of checking whether the incubation code is detected via the at least one vaccine program,
Further comprising generating a signature of the cultured code determined to be operative,
A malicious code is checked through the vaccine program using the signature of the cultivation code,
And adding the cultivation code and the signature to the malicious code pool when the cultivation code is not detected as a malicious code.
KR1020160101278A 2015-08-10 2016-08-09 Apparatus and method for detecting malicious code using cultivation of malware KR20170018791A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20150112641 2015-08-10
KR1020150112641 2015-08-10

Publications (1)

Publication Number Publication Date
KR20170018791A true KR20170018791A (en) 2017-02-20

Family

ID=58265265

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160101278A KR20170018791A (en) 2015-08-10 2016-08-09 Apparatus and method for detecting malicious code using cultivation of malware

Country Status (1)

Country Link
KR (1) KR20170018791A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102447280B1 (en) * 2022-02-09 2022-09-27 주식회사 샌즈랩 Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102447280B1 (en) * 2022-02-09 2022-09-27 주식회사 샌즈랩 Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information

Similar Documents

Publication Publication Date Title
KR102160659B1 (en) Detection of anomalous program execution using hardware-based micro-architectural data
US9715588B2 (en) Method of detecting a malware based on a white list
US10055585B2 (en) Hardware and software execution profiling
Bai et al. A malware detection scheme based on mining format information
Zolkipli et al. A framework for malware detection using combination technique and signature generation
Rieck et al. Automatic analysis of malware behavior using machine learning
Hasan et al. RansHunt: A support vector machines based ransomware analysis framework with integrated feature set
Comparetti et al. Identifying dormant functionality in malware programs
US8151352B1 (en) Anti-malware emulation systems and methods
Shan et al. Growing grapes in your computer to defend against malware
Zakeri et al. A static heuristic approach to detecting malware targets
US20110219002A1 (en) Method and system for discovering large clusters of files that share similar code to develop generic detections of malware
Aslan et al. Using a subtractive center behavioral model to detect malware
Adkins et al. Heuristic malware detection via basic block comparison
Pandey et al. Performance of malware detection tools: A comparison
KR101816045B1 (en) Malware detecting system with malware rule set
Jain et al. Integrated Malware analysis using machine learning
CN105791250B (en) Application program detection method and device
Xu et al. Autovac: Automatically extracting system resource constraints and generating vaccines for malware immunization
Tian An integrated malware detection and classification system
US11283836B2 (en) Automatic decoy derivation through patch transformation
Rosli et al. Ransomware behavior attack construction via graph theory approach
KR20170018791A (en) Apparatus and method for detecting malicious code using cultivation of malware
CN103501294B (en) The determining program whether method of malice
CN114925369A (en) Static analysis method and system for business system container safety

Legal Events

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