KR20180133726A - Appratus and method for classifying data using feature vector - Google Patents

Appratus and method for classifying data using feature vector Download PDF

Info

Publication number
KR20180133726A
KR20180133726A KR1020170070948A KR20170070948A KR20180133726A KR 20180133726 A KR20180133726 A KR 20180133726A KR 1020170070948 A KR1020170070948 A KR 1020170070948A KR 20170070948 A KR20170070948 A KR 20170070948A KR 20180133726 A KR20180133726 A KR 20180133726A
Authority
KR
South Korea
Prior art keywords
data
feature vector
signatures
frequency
learning
Prior art date
Application number
KR1020170070948A
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 KR1020170070948A priority Critical patent/KR20180133726A/en
Publication of KR20180133726A publication Critical patent/KR20180133726A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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; COUNTING
    • G06NCOMPUTER SYSTEMS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

An apparatus for classifying data using a feature vector of learning data for performing machine learning comprises: a section setting unit setting a plurality of sections for each of the plurality of signatures; a frequency extraction unit extracting frequency of each of the signatures from a plurality of pieces of learning data; a section mapping unit mapping each of the extracted frequency to a corresponding one of the sections; a feature vector generation unit generating a feature vector by extracting an element corresponding to a section in which each of the signatures is mapped; and a classification unit performing learning machine to classify input data into one of a plurality of classes by using the generated feature vector as the input data.

Description

특징 벡터를 이용하여 데이터를 분류하는 장치 및 방법{APPRATUS AND METHOD FOR CLASSIFYING DATA USING FEATURE VECTOR}[0001] APPARATUS AND METHOD FOR CLASSIFYING DATA USING FEATURE VECTOR [0002]
본 발명은 특징 벡터를 이용하여 데이터를 분류하는 장치 및 방법에 관한 것이다. The present invention relates to an apparatus and method for classifying data using feature vectors.
악성코드란 악의적인 목적을 위해 작성된 실행 가능한 코드를 말하는 것으로, 주로 웹페이지 검색, P2P 서비스 이용, 셰어웨어 이용, 불법복제 프로그램 이용, 이메일 또는 메신저 첨부파일의 이용 시 침투된다. 악성 코드는 자기 복제 능력과 감염 대상 유무에 따라 바이러스, 웜, 트로이 목마 등으로 분류된다. Malicious code refers to executable code written for malicious purposes, and is mainly infected by web page search, P2P service usage, shareware usage, piracy program usage, e-mail or instant messenger attachments. Malicious codes are classified as viruses, worms, and Trojan horses depending on their ability to replicate and whether they are infected.
악성 코드의 증상 및 유포 방법은 더욱더 복잡해지고 지능화되고 있어, 악성 코드를 빨리 정확히 탐지하는 방법이 매우 중요하다. 악성 코드를 탐지하는 기법으로는 대표적으로 시그니처(signature) 기반 탐지 기법과 휴리스틱(Heuristic) 기반 탐지 기법이 있다. 이러한 악성 코드를 탐지하는 기법과 관련하여, 선행기술인 한국등록특허 제 10-1480244호는 클래스 단위의 시그니처를 이용한 악성 어플리케이션 탐지 방법 및 장치를 개시하고 있다. Symptoms and spread of malicious code become more complex and intelligent, and it is very important to detect malicious code quickly and accurately. Signature-based detection methods and heuristic-based detection methods are typical examples of techniques for detecting malicious codes. Regarding the technique for detecting such malicious codes, Korean Patent Registration No. 10-1480244 discloses a method and apparatus for detecting malicious applications using class-based signatures.
그러나 종래의 기계학습 기반의 악성 코드 탐지 기법은 악성 코드의 시그니처의 종류만큼 벡터의 차원이 높아짐에 따라 많은 매개변수를 구해야 하며, 메모리 부하 및 계산량이 증가되어 데이터 분류 장치의 성능이 낮아진다는 단점을 갖는다. However, in the conventional machine learning based malware detection technique, many parameters have to be obtained as the level of the vector is increased as much as the type of the signature of the malicious code, and the memory load and calculation amount are increased and the performance of the data classification device is lowered .
특징 벡터의 차원을 축소시킴으로써, 메모리 부하 및 계산량을 감소시킬 수 있는 데이터 분류 장치를 제공하고자 한다. 각 시그니처에 대한 빈도수에 기초하여 분별력이 높은 특징을 추출함으로써, 특징 벡터의 차원을 축소시켜 데이터 분류 성능을 향상시키는 데이터 분류 장치를 제공하고자 한다. 악성 파일을 탐지하여 데이터를 악성 파일 및 정상 파일로 분류하고, 악성 파일을 특징 별로 복수개의 클래스 중 어느 하나로 분류하도록 기계 학습을 시키는 데이터 분류 장치를 제공하고자 한다. 다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다. And a data classification apparatus capable of reducing a memory load and a calculation amount by reducing a dimension of a feature vector. An object of the present invention is to provide a data classification apparatus that extracts features with high discrimination power based on the frequency of each signature and thereby reduces the dimension of the feature vector to improve the data classification performance. The present invention is to provide a data classifying apparatus for detecting a malicious file, classifying the data into a malicious file and a normal file, and performing a machine learning so as to classify the malicious file into one of a plurality of classes by characteristic. It is to 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 an information processing apparatus comprising: a section setting section for setting a plurality of sections for a plurality of signatures; a frequency setting section for setting a frequency for extracting respective frequency numbers for a plurality of signatures from a plurality of pieces of learning data An extraction unit, an interval mapping unit for mapping the extracted frequency numbers to corresponding ones of the plurality of intervals, a feature vector generation unit for extracting elements corresponding to the intervals in which the plurality of signatures are mapped, And a classifying unit that classifies the input data into one of a plurality of classes using the generated feature vector as input data.
본 발명의 다른 실시예는, 복수의 시그니처 별로 복수의 구간을 설정하는 구간 설정부, 미확인 데이터로부터 복수의 시그니처에 대한 각각의 빈도수를 추출하는 추출부, 상기 추출된 각각의 빈도수를 상기 복수의 구간 중 해당하는 구간과 매핑하는 구간 매핑부, 상기 복수의 시그니처 각각이 매핑된 구간에 해당하는 엘리먼트를 추출하여 특징 벡터를 생성하는 특징 벡터 생성부 및 상기 생성된 특징 벡터를 입력 데이터로 하여 상기 입력 데이터를 복수의 클래스 중 어느 하나로 분류하는 분류부를 포함할 수 있다. According to another embodiment of the present invention, there is provided an information processing apparatus including: a section setting section for setting a plurality of sections for a plurality of signatures; an extracting section for extracting respective frequency numbers for a plurality of signatures from unidentified data; A feature vector generator for generating a feature vector by extracting an element corresponding to an interval in which each of the plurality of signatures is mapped, and a feature vector generator for generating the feature vector by using the generated feature vector as input data, May be classified into any one of a plurality of classes.
본 발명의 또 다른 실시예는, 복수의 시그니처 별로 복수의 구간을 설정하는 단계, 복수의 학습 데이터로부터 복수의 시그니처에 대한 각각의 빈도수를 추출하는 단계, 상기 추출된 각각의 빈도수를 상기 복수의 구간 중 해당하는 구간과 매핑하는 단계, 상기 복수의 시그니처 각각이 매핑된 구간에 해당하는 엘리먼트를 추출하여 특징 벡터를 생성하는 단계 및 상기 생성된 특징 벡터를 입력 데이터로 하여 상기 입력 데이터를 복수의 클래스 중 어느 하나로 분류하도록 기계 학습을 수행하는 단계를 포함할 수 있다. According to still another embodiment of the present invention, there is provided a method of analyzing a signature, comprising: setting a plurality of intervals for each of a plurality of signatures; extracting each frequency of a plurality of signatures from a plurality of pieces of learning data; A step of generating a feature vector by extracting an element corresponding to an interval in which each of the plurality of signatures is mapped, and a step of extracting the input data from a plurality of classes And performing machine learning so as to classify them into any one of them.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본 발명을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 기재된 추가적인 실시예가 존재할 수 있다.The above-described task solution is merely exemplary and should not be construed as limiting the present invention. In addition to the exemplary embodiments described above, there may be additional embodiments described in the drawings and the detailed description of the invention.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 전체 특징 벡터의 차원을 축소시킴으로써, 메모리 부하 및 계산량을 감소시킬 수 있는 데이터 분류 장치를 제공할 수 있다. 각 시그니처에 대한 빈도수에 기초하여 분별력이 높은 특징을 추출함으로써, 전체 특징 벡터의 차원을 축소시켜 데이터 분류 성능을 향상시키는 데이터 분류 장치를 제공할 수 있다. 악성 파일을 탐지하여 데이터를 악성 파일 및 정상 파일로 분류하고, 악성 파일을 특징 별로 복수개의 클래스 중 어느 하나로 분류하도록 기계 학습을 시키는 데이터 분류 장치를 제공할 수 있다.According to any one of the above objects of the present invention, it is possible to provide a data classification apparatus capable of reducing the memory load and the calculation amount by reducing the dimension of the entire feature vector. It is possible to provide a data classification device that extracts features with high discrimination power based on the frequency of each signature, thereby reducing the dimension of the entire feature vector and improving the data classification performance. It is possible to provide a data classifying apparatus that detects a malicious file, classifies the data into a malicious file and a normal file, and performs a machine learning to classify the malicious file into any one of a plurality of classes according to the characteristics.
도 1은 본 발명의 일 실시예에 따른 데이터 분류 장치의 구성도이다.
도 2a 및 도 2b는 본 발명의 일 실시예에 따른 학습 데이터로부터 복수의 시그니처를 추출하는 과정을 설명하기 위한 예시적인 도면이다.
도 3은 본 발명의 일 실시예에 따른 복수의 시그니처 별로 복수의 구간을 설정하는 과정을 설명하기 위한 예시적인 도면이다.
도 4는 본 발명의 일 실시예에 따른 복수의 학습 데이터로부터 복수의 시그니처에 대한 각각의 빈도수를 추출하는 과정을 설명하기 위한 예시적인 도면이다.
도 5는 본 발명의 일 실시예에 따른 추출된 각각의 빈도수와 복수의 구간 중 해당하는 구간과 매핑하는 과정을 설명하기 위한 예시적인 도면이다.
도 6a 내지 도 6c는 본 발명의 일 실시예에 따른 복수의 학습 데이터로부터 생성된 특징 벡터에 기초하여 복수의 학습 데이터 간의 거리를 도출하여 복수의 클래스 중 어느 하나의 클래스로 분류하는 과정을 설명하기 위한 예시적인 도면이다.
도 7a 및 도 7b는 본 발명의 일 실시예에 따른 복수의 학습 데이터로부터 생성된 특징 벡터를 비교한 예시적인 도면이다.
도 8은 본 발명의 일 실시예에 따른 데이터 분류 장치에서 학습 데이터의 특징 벡터를 이용하여 기계 학습을 수행하는 방법의 순서도이다.
1 is a configuration diagram of a data classification apparatus according to an embodiment of the present invention.
2A and 2B are exemplary diagrams illustrating a process of extracting a plurality of signatures from learning data according to an embodiment of the present invention.
3 is an exemplary diagram illustrating a process of setting a plurality of intervals for a plurality of signatures according to an embodiment of the present invention.
4 is an exemplary diagram for explaining a process of extracting each frequency for a plurality of signatures from a plurality of pieces of learning data according to an embodiment of the present invention.
FIG. 5 is an exemplary diagram illustrating a process of mapping extracted frequencies and corresponding intervals of a plurality of intervals according to an embodiment of the present invention. Referring to FIG.
6A to 6C illustrate a process of deriving a distance between a plurality of learning data based on a feature vector generated from a plurality of learning data according to an embodiment of the present invention and classifying the distance into any one of a plurality of classes Fig.
7A and 7B are exemplary diagrams for comparing feature vectors generated from a plurality of training data according to an embodiment of the present invention.
8 is a flowchart of a method of performing a machine learning using a feature vector of training data in a data classification apparatus 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 "including" an element, it is to be understood that the element may include other elements as well as other elements, And does not preclude the presence or addition of one or more other features, integers, steps, operations, components, parts, or combinations thereof.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다.In this specification, the term " part " includes a unit realized by hardware, a unit realized by software, and a unit realized by using both. Further, one unit may be implemented using two or more hardware, or two or more units may be implemented by one hardware.
본 명세서에 있어서 단말 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말 또는 디바이스에서 수행될 수도 있다.In this specification, some of the operations or functions described as being performed by the terminal or the device may be performed in the server connected to the terminal or the device instead. Similarly, some of the operations or functions described as being performed by the server may also be performed on a terminal or device connected to the server.
이하 첨부된 도면을 참고하여 본 발명의 일 실시예를 상세히 설명하기로 한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시예에 따른 데이터 분류 장치의 구성도이다. 도 1을 참조하면, 데이터 분류 장치(100)는 구간 설정부(110), 빈도 추출부(120), 구간 매핑부(130), 특징 벡터 생성부(140), 거리 도출부(150) 및 분류부(160)를 포함할 수 있다. 1 is a configuration diagram of a data classification apparatus according to an embodiment of the present invention. Referring to FIG. 1, the data classification apparatus 100 includes an interval setting unit 110, a frequency extraction unit 120, an interval mapping unit 130, a feature vector generation unit 140, a distance derivation unit 150, Unit 160 may be included.
일 실시예에 따르면, 데이터 분류 장치(100)는 기계 학습을 수행하기 위한 학습 데이터의 특징 벡터를 이용하여 데이터를 분류할 수 있다. 예를 들어, 데이터 분류 장치(100)는 기계 학습을 수행하기 위해 k-means 알고리즘을 이용하여 데이터를 분류할 수 있다. According to one embodiment, the data classification apparatus 100 can classify data using feature vectors of training data for performing machine learning. For example, the data classifier 100 may classify data using a k-means algorithm to perform machine learning.
구간 설정부(110)는 복수의 시그니처 별로 복수의 구간을 설정할 수 있다. 예를 들어, 복수의 시그니처는 복수의 학습 데이터의 클래스를 분류하기 위한 특징으로 선택되어 학습 데이터로부터 추출되는 것일 수 있다. 학습 데이터로부터 추출된 복수의 시그니처 별로 복수의 구간을 설정하는 과정과 관련하여 도 2a 내지 도 3을 참조하여 상세히 설명하도록 한다. The interval setting unit 110 may set a plurality of intervals for each of a plurality of signatures. For example, the plurality of signatures may be extracted from the learning data by being selected as a feature for classifying a plurality of classes of learning data. A process of setting a plurality of intervals for a plurality of signatures extracted from the learning data will be described in detail with reference to FIG. 2A to FIG.
도 2a 및 도 2b는 본 발명의 일 실시예에 따른 학습 데이터로부터 복수의 시그니처를 추출하는 과정을 설명하기 위한 예시적인 도면이다. 2A and 2B are exemplary diagrams illustrating a process of extracting a plurality of signatures from learning data according to an embodiment of the present invention.
도 2a는 본 발명의 일 실시예에 따른 학습 데이터를 도시한 예시적인 도면이다. 도 2a를 참조하면, 학습 데이터는 파일의 실행 후, 행위 관찰을 통해 악성 파일 및 정상 파일을 분류하기 위한 특징이 획득되는 것일 수 있다. 여기서, 학습 데이터는 가상에서 특정 프로그램의 실행에 대한 관찰 보고서를 제공하는 샌드박스 툴로부터 획득되는 것이며, 행위 관찰은 예를 들어, 다른 위치로의 파일 복제, 특정 값으로의 레지스트리 키 지정 등을 포함할 수 있다. 2A is an exemplary diagram showing learning data according to an embodiment of the present invention. Referring to FIG. 2A, the learning data may be a feature for classifying malicious files and normal files through behavior observation after execution of the files. Here, the learning data is obtained from a sandbox tool that provides an observation report on the execution of a particular program in a virtual environment, and the behavior observation includes, for example, duplicating a file to another location, can do.
도 2b는 본 발명의 일 실시예에 따른 학습 데이터로부터 복수의 시그니처를 추출하는 과정을 설명하기 위한 예시적인 도면이다. 도 2b를 참조하면, 데이터 분류 장치(100)는 학습 데이터로부터 복수의 시그니처를 추출할 수 있다. FIG. 2B is an exemplary diagram for explaining a process of extracting a plurality of signatures from learning data according to an embodiment of the present invention. FIG. Referring to FIG. 2B, the data classification apparatus 100 can extract a plurality of signatures from the learning data.
예를 들어, 데이터 분류 장치(100)는 'create_mutex_1 (name="GhostBOT0.58c")를 '시그니처 A'로, 'create_mutex_1 (name="GhostBOT0.58b")를 '시그니처 B'로, 'create_mutex_1 (name="GhostBOT0.58a")를 '시그니처 C'로, 'enum_processes_1 (apifunction="Process32First")를 '시그니처 D'로, 'query_value_2 (key="HKEY_LOCAL.. \run", subkey_or_value="GUARD")를 '시그니처 E'로, 'create_file_2 (srcpath="C: \windows\...")를 '시그니처 F'로, 'create_file_1 (srcpath="C\windows\...", srcfile="vcmgcd32.dl_")을 '시그니처 G'로, 'delete_file_2 (srcpath="C: \windows\...")를 '시그니처 H'로, 'create_mutex_1 (name="kuku_joker_v3.09")를 '시그니처 I'로, 'enum_processes_1 (apifunction="Process32First")를 '시그니처 J'로 추출할 수 있다. For example, the data classifying apparatus 100 may set 'create_mutex_1 (name = "GhostBOT0.58c") as "signature A", "create_mutex_1 (name =" GhostBOT0.58b " (key = "HKEY_LOCAL .. \ run", subkey_or_value = "GUARD") to 'signature_D' , Create_file_1 (srcpath = "C \ windows \ ...", srcfile = "vcmgcd32") with the signature 'Signature E' and 'create_file_2 (srcpath = "C: \ windows \ (name = "kuku_joker_v3.09") to 'signature I', and 'delete_file_2' (srcpath = "C: \ windows \ , 'enum_processes_1 (apifunction = "Process32First") can be extracted as' signature J'.
도 3은 본 발명의 일 실시예에 따른 복수의 시그니처 별로 복수의 구간을 설정하는 과정을 설명하기 위한 예시적인 도면이다. 도 3을 참조하면, 구간 설정부(110)는 복수의 시그니처 별(320)로 각 시그니처의 빈도수(310)에 따라 균등하게 나눠진 복수의 구간을 설정할 수 있다. 예를 들어, 구간 설정부(110)는 '시그니처 A'(321)에 대해 'A1'(331), 'A2'(332), 'A3'(333)와 같이 복수의 구간이 균등하게 나누어지도록 설정할 수 있다. 3 is an exemplary diagram illustrating a process of setting a plurality of intervals for a plurality of signatures according to an embodiment of the present invention. Referring to FIG. 3, the interval setting unit 110 may set a plurality of intervals that are divided evenly according to the frequency 310 of each signature with a plurality of signature candidates 320. For example, the interval setting unit 110 sets a plurality of intervals such as 'A 1 ' 331, 'A 2 ' 332, and 'A 3 ' 333 for 'Signature A' .
구간 설정부(110)는 복수의 구간을 각 시그니처 별로 다르게 설정할 수 있다. 이 때, 구간 설정부(110)는 복수의 구간을 각 시그니처 간의 중요도에 따라 다르게 설정할 수도 있다. 예를 들어, 각 시그니처에 설정된 제 1 구간에 해당하는 '시그니처 A'(321), '시그니처 B'(322), '시그니처 C'(323)는 각 시그니처 간의 중요도에 따라 각 구간의 길이가 다르게 설정될 수도 있다. 중요도가 높은 시그니처일 경우 다른 시그니처에 비해 각 구간의 길이가 짧아져서 해당 시그니처의 특징이 타 시그니처에 비해 분별력 있게 추출될 수 있다. The interval setting unit 110 may set a plurality of intervals differently for each signature. At this time, the interval setting unit 110 may set a plurality of intervals differently according to the degree of importance between the signatures. For example, 'Signature A' 321, 'Signature B' 322, and 'Signature C' 323 corresponding to the first section set for each signature have different lengths according to the importance of each signature May be set. In case of a signature having a high importance, the length of each section is shorter than other signatures, so that the characteristics of the signature can be extracted more discernibly than other signatures.
다시 도 1로 돌아와서, 빈도 추출부(120)는 복수의 학습 데이터로부터 복수의 시그니처에 대한 각각의 빈도수를 추출할 수 있다. Referring again to FIG. 1, the frequency extracting unit 120 may extract each frequency of a plurality of signatures from a plurality of pieces of learning data.
구간 매핑부(130)는 추출된 각각의 빈도수를 복수의 구간 중 해당하는 구간과 매핑할 수 있다. The interval mapping unit 130 may map each extracted frequency to a corresponding one of a plurality of intervals.
빈도 추출부(120)에서 학습 데이터로부터 복수의 시그니처에 대한 각각의 빈도수를 추출하고, 구간 매핑부(130)에서 각각의 빈도수와 복수의 구간 중 해당하는 구간과 매핑하는 과정에 대해서는 도 4 및 도 5를 참조하여 상세히 설명하도록 한다. The frequency extracting unit 120 extracts the frequency of each of a plurality of signatures from the learning data, and the process of mapping each frequency and the corresponding one of the plurality of intervals in the interval mapping unit 130 will be described with reference to FIG. 4 and FIG. 5 will be described in detail.
도 4는 본 발명의 일 실시예에 따른 복수의 학습 데이터로부터 복수의 시그니처에 대한 각각의 빈도수를 추출하는 과정을 설명하기 위한 예시적인 도면이다. 도 4를 참조하면, 빈도 추출부(120)는 복수의 시그니처 별(420)로 각 시그니처의 빈도수(410)를 추출할 수 있다. 4 is an exemplary diagram for explaining a process of extracting each frequency for a plurality of signatures from a plurality of pieces of learning data according to an embodiment of the present invention. Referring to FIG. 4, the frequency extraction unit 120 may extract a frequency 410 of each signature by a plurality of signature-based scans 420.
예를 들어, 빈도 추출부(120)는 '시그니처 A'(421)에 대해 빈도수를 'nA'(431)로 추출하고, '시그니처 B'(422)에 대해 빈도수를 'nB'(432)로 추출하고, '시그니처 C'(423)에 대해 빈도수를 'nC'(433)로 추출할 수 있다. For example, the frequency extractor 120 extracts the frequency of the signature A '421 as' n A ' 431 and the frequency of the 'signature B' 422 as' n B '432 ), And the frequency of the signature C '423 can be extracted as' n C ' (433).
도 5는 본 발명의 일 실시예에 따른 추출된 각각의 빈도수와 복수의 구간 중 해당하는 구간과 매핑하는 과정을 설명하기 위한 예시적인 도면이다. FIG. 5 is an exemplary diagram illustrating a process of mapping extracted frequencies and corresponding intervals of a plurality of intervals according to an embodiment of the present invention. Referring to FIG.
도 4 및 도 5를 참조하면, 구간 매핑부(130)는 시그니처 별(520)로 각각의 시그니처에 대해 추출된 빈도수(510)에 기초하여 복수의 구간 중 해당하는 구간과 매핑할 수 있다. 이 때, 구간 매핑부(130)는 추출된 복수의 시그니처의 빈도수에 따라 각 시그니처를 복수의 구간 중 어느 하나에 매핑할 수 있다. 예를 들어, 구간 매핑부(130)는 '시그니처 A'(521)에 대해 추출된 빈도수인 'nA'(431)를 기설정된 균등 분할 구간 A3(531)과 매핑하고, '시그니처 B'(522)에 대해 추출된 빈도수인 'nB'(432)를 구간 B2(532)와 매핑하고, '시그니처 C'(523)에 대해 추출된 빈도수인 'nC'(433)를 구간 C3(533)와 매핑할 수 있다. Referring to FIGS. 4 and 5, the interval mapping unit 130 may map a corresponding one of a plurality of intervals based on the frequency 510 extracted for each signature by the signature 520. In this case, the section mapping unit 130 may map each signature to any one of a plurality of intervals according to the frequency of the extracted plurality of signatures. For example, the interval mapping unit 130 maps 'n A ' 431 extracted with respect to 'signature A' 521 to a predetermined equal division interval A 3 531, and 'signature B' N B '432 extracted for the signature C 522 with the interval B 2 532 and the extracted frequency n C 433 with respect to the signature C 523 is divided into the interval C 3 (533).
다시 도 1로 돌아와서, 특징 벡터 생성부(140)는 복수의 시그니처 각각이 매핑된 구간에 해당하는 엘리먼트를 추출하여 특징 벡터를 생성할 수 있다. 이 때, 특징 벡터 생성부(140)는 복수의 시그니처의 종류보다 적은 차원의 특징 벡터를 생성할 수 있다. 또한, 특징 벡터 생성부(140)는 복수의 시그니처의 종류에 해당하는 사이즈를 가지는 집합으로 이루어진 특징 벡터를 생성할 수 있다. 예를 들어, 특징 벡터 생성부(140)는 도 5의 복수의 시그니처 각각이 매핑된 구간에 해당하는 엘리먼트를 추출하여 {A3, B2, C3, ...}와 같은 집합을 생성할 수 있다. 이 때, 생성된 특징 벡터는 집합으로 구성된 1차원의 벡터일 수 있다. Referring back to FIG. 1, the feature vector generation unit 140 may extract a feature vector corresponding to a section in which each of the plurality of signatures is mapped. At this time, the feature vector generation unit 140 can generate a feature vector of a smaller dimension than the types of the plurality of signatures. In addition, the feature vector generator 140 may generate a feature vector having a size corresponding to a plurality of types of signatures. For example, the feature vector generation unit 140 extracts elements corresponding to the mapped regions of the plurality of signatures of FIG. 5 to generate a set such as {A 3 , B 2 , C 3 , ...} . At this time, the generated feature vector may be a one-dimensional vector composed of a set.
거리 도출부(150)는 학습 데이터의 경우, 복수의 학습 데이터로부터 생성된 각각의 특징 벡터에 기초하여 복수의 학습 데이터 간의 거리를 도출할 수 있다. In the case of the learning data, the distance derivation unit 150 can derive the distance between the plurality of learning data based on the respective feature vectors generated from the plurality of learning data.
분류부(160)는 학습 데이터의 경우, 생성된 특징 벡터를 입력 데이터로 하여 입력 데이터를 복수의 클래스 중 어느 하나로 분류하도록 기계 학습을 수행할 수 있다. 분류부(160)는 도출된 복수의 학습 데이터 간의 거리에 기초하여 입력 데이터를 복수의 클래스 중 어느 하나로 분류할 수 있다. 예를 들어, 복수의 학습 데이터 간의 거리는 두 개의 학습 데이터의 특정 벡터에 대한 합집합의 원소 수로부터 적어도 두 개의 학습 데이터의 특징 벡터에 대한 교집합의 원소 수를 뺀 값일 수 있다. 예를 들어, 분류부(160)는 복수의 학습 데이터 간의 거리에 기초하여 복수의 클래스에 해당하는 복수의 군집을 생성하도록 기계 학습을 수행할 수 있고, 이후에 입력된 입력 데이터와 복수의 군집 간의 거리를 도출하여 입력 데이터를 복수의 클래스 중 입력 데이터와 가장 근접한 군집(예를 들어, 해당 군집의 평균값이 입력 데이터와 가장 근접한 경우)에 해당하는 클래스로 분류할 수 있다. 한편, 복수의 학습 데이터에 대한 평균값은 복수의 학습 데이터에 대한 교집합으로 정의될 수 있다. 다시 말해, k-means 알고리즘을 이용하는 본원 발명의 경우, 1차적으로 학습 데이터에 의한 군집화 과정을 기계 학습을 통해 수행하고, 이 후에 입력된 데이터의 특징 벡터와 각 군집 간의 거리에 기초하여 군집화를 통해 생성된 복수의 클래스 중 하나로 분류할 수 있다.In the case of learning data, the classifying unit 160 may perform the machine learning so that input data is classified into one of a plurality of classes using the generated characteristic vector as input data. The classifying unit 160 may classify the input data into any one of a plurality of classes based on the distance between the plurality of derived learning data. For example, the distance between the plurality of learning data may be a value obtained by subtracting the number of elements of the intersection with the feature vectors of at least two learning data from the number of elements of the union of the two learning data with respect to the specific vector. For example, the classifying unit 160 may perform the machine learning to generate a plurality of clusters corresponding to a plurality of classes based on the distance between the plurality of pieces of the learning data, The input data may be classified into classes corresponding to the clusters closest to the input data among the plurality of classes (for example, when the average value of the clusters is closest to the input data). On the other hand, an average value of a plurality of learning data can be defined as an intersection of a plurality of learning data. In other words, in the case of the present invention using the k-means algorithm, the clustering process based on the learning data is primarily performed through machine learning, and after that, clustering is performed based on the feature vector of the input data and the distance between the clusters It can be classified into one of a plurality of generated classes.
이하에서, 데이터 간의 거리를 도출하여 복수의 클래스 중 어느 하나의 클래스로 분류하는 과정에 대해 도 6a 내지 도 6c를 통해 상세히 설명하도록 한다.Hereinafter, a process of deriving the distance between data and classifying the data into any one of a plurality of classes will be described in detail with reference to FIGS. 6A to 6C.
도 6a 내지 도 6c는 본 발명의 일 실시예에 따른 복수의 학습 데이터로부터 생성된 특징 벡터에 기초하여 복수의 학습 데이터 간의 거리를 도출하여 복수의 클래스 중 어느 하나의 클래스로 분류하는 과정을 설명하기 위한 예시적인 도면이다. 6A to 6C illustrate a process of deriving a distance between a plurality of learning data based on a feature vector generated from a plurality of learning data according to an embodiment of the present invention and classifying the distance into any one of a plurality of classes Fig.
도 6a는 본 발명의 일 실시예에 따른 복수의 학습 데이터 간의 거리를 도출하는 방식을 도시한 예시적인 도면이다. 도 6a를 참조하면, 특징 벡터는 집합으로 생성되어 여러 분류 장치를 대상으로 학습시키기에 한계를 가졌다. 따라서, 본 발명에서는 k-NN, 군집화 등의 분류기는 특징 벡터 사이의 유클리디안 거리를 이용하여 생성하고, string 간의 해밍 거리(Hamming distance) 또는 편집 거리(Edit distance) 등은 데이터를 학습시키기 위해 주로 이용되는 점에 착안하여, 집합인 특징 벡터 간에 새로운 거리를 정의하고자 한다. 6A is an exemplary diagram showing a method of deriving a distance between a plurality of learning data according to an embodiment of the present invention. Referring to FIG. 6A, a feature vector is generated as a set, and has a limit to allow learning to a plurality of classification devices. Therefore, in the present invention, a classifier such as k-NN and clustering is generated using the Euclidean distance between feature vectors, and a Hamming distance or an edit distance between strings is used to learn data It is intended to define a new distance between the set of feature vectors in consideration of the points mainly used.
복수의 학습 데이터 간의 거리는 다음과 같이 도출될 수 있다. The distance between the plurality of learning data can be derived as follows.
Dist(A, B) = (A ∪ B)의 원소 수 - (A n B)의 원소 수Number of elements of Dist (A, B) = (A ∪ B) - Number of elements of (A n B)
거리 도출부(150)는 학습 데이터 간의 교집합의 유무 또는 크고 작음에 따라 거리를 도출할 수 있다. 이 때, 도출된 거리는 해당 학습 데이터가 얼마나 다른지, 얼마나 가깝고 먼지에 대한 합리적 지표로 이용될 수 있다. The distance derivation unit 150 can derive the distance according to the presence or absence of intersection of the learning data or the size of the intersection. At this time, the derived distance can be used as a rational indicator of how different the learning data is, how close it is, and how close it is.
예를 들어, 거리 도출부(150)는 교집합이 없는 경우(600)의 집합 A(601)와 집합 B(602) 간의 거리를 도출할 수 있다. 이 때, 집합 A(601)와 집합 B(602) 간의 교집합이 없으므로, 집합 A(601)와 집합 B(602) 간의 거리는 매우 커질 수 있다. For example, the distance derivation unit 150 may derive the distance between the set A 601 and the set B 602 in the case (600) where there is no intersection. At this time, since there is no intersection between the set A 601 and the set B 602, the distance between the set A 601 and the set B 602 can be very large.
다른 예를 들어, 거리 도출부(150)는 작은 교집합을 포함하는 경우(610)의 집합 A(601)와 집합 B(602) 간의 거리를 도출할 수 있다. 이 때, 집합 A(601)와 집합 B(602) 간에 작은 교집합(611)을 포함하고 있으므로, 집합 A(601)와 집합 B(602) 간의 거리는 교집합이 없는 경우(600) 보다 짧아질 수 있다. For another example, the distance derivation unit 150 may derive the distance between the set A 601 and the set B 602 in case 610 including a small intersection. At this time, since a small intersection 611 is included between the set A 601 and the set B 602, the distance between the set A 601 and the set B 602 may be shorter than 600 without the intersection .
또 다른 예를 들어, 거리 도출부(150)는 큰 교집합을 포함하는 경우(620)의 집합 A(601)와 집합 B(602) 간의 거리를 도출할 수 있다. 이 때, 집합 A(601)와 집합 B(602) 간에 큰 교집합(621)을 포함하고 있으므로, 집합 A(601)와 집합 B(602) 간의 거리는 작은 교집합을 포함하는 경우(610) 보다 짧아질 수 있다. For another example, the distance derivation unit 150 may derive the distance between the set A 601 and the set B 602 in case 620 including a large intersection. At this time, since the large intersection 621 is included between the set A 601 and the set B 602, the distance between the set A 601 and the set B 602 is shorter than the case including the small intersection 610 .
도 6b 및 도 6c는 본 발명의 일 실시예에 따른 특징 벡터를 입력 데이터로 하여 복수의 클래스 중 어느 하나로 분류하는 과정을 설명하기 위한 예시적인 도면이다. 6B and 6C are exemplary diagrams for explaining a process of classifying a feature vector according to an embodiment of the present invention into one of a plurality of classes as input data.
예를 들어, 파일 1(630)에 해당하는 특징 벡터가 [{A4, B5, C3, D2, E3, F4, G1, H3, I3, J5}]로 구성되고, 파일 2(631)에 해당하는 특징 벡터가 [{A4, B3, C1, D2, E2, F5, G1, H1, I2, J4}]로 구성되고, 파일 3(632)에 해당하는 특징 벡터가 [{A4, B3, C3, D5, E3, F2, G1, H3, I1, J4}]로 구성되었다고 가정하자. For example, if the feature vector corresponding to file 1 630 is composed of [{A4, B5, C3, D2, E3, F4, G1, H3, I3, J5} The feature vector corresponding to the file 3 632 is composed of [{A4, B3, C3, D5 (i), , E3, F2, G1, H3, I1, J4}.
파일 1(630) 및 파일 2(631) 간의 거리 = (파일 1 ∪ 파일 2)의 원소 수 - (파일 1 n 파일 2)의 원소 수={A4, B3, B5, C3, C1, D2, E3, E2, F4, F5, G1, H3, H1, I3, I2, J5, J4}의 원소 수 - {A4, D2, G1}의 원소 수 = 14로 도출될 수 있다. Distance between file 1 630 and file 2 631 = number of elements of (file 1 ∪ file 2) - number of elements of (file 1 n file 2) = {A4, B3, B5, C3, C1, D2, E3 , The number of elements of {A4, D2, G1} = 14, the number of elements of E2, F4, F5, G1, H3, H1, I3, I2, J5, J4}
파일 2(631) 및 파일 3(632) 간의 거리 = (파일 2 ∪ 파일 3)의 원소 수 - (파일 2 n 파일 3)의 원소 수={A4, B3, C1, C3, D2, D5, E2, E3, F5, F2, G1, H1, H3, I2, I1, J4}의 원소 수 - {A4, B3, G1, J4}의 원소 수 = 12로 도출될 수 있다. Distance between file 2 631 and file 3 632 = number of elements of (file 2 ∪ file 3) - number of elements of (file 2 n file 3) = {A4, B3, C1, C3, D2, D5, E2 , The number of elements of {A4, B3, G1, J4} = 12, the number of elements of E3, F5, F2, G1, H1, H3, I2, I1, J4}
파일 1(630) 및 파일 3(632) 간의 거리 = (파일 1 ∪ 파일 3)의 원소 수 - (파일 1 n 파일 3)의 원소 수= {A4, B5, B3, C3, D2, D5, E3, F4, F2, G1, H3, I3, I1, J5, J4}의 원소 수 - {A4, C3, E3, G1, H3}의 원소 수 = 10으로 도출될 수 있다. Distance between file 1 (630) and file 3 (632) = number of elements of (file 1 ∪ file 3) - number of elements of (file 1 n file 3) = {A4, B5, B3, C3, D2, D5, E3 , The number of elements of {A4, C3, E3, G1, H3} = 10, and the number of elements of {F4, F2, G1, H3, I3, I1, J5, J4}
파일 1(630) 내지 파일 3(632)은 도출된 파일 간의 거리에 기초하여 도 6b에같이 도시된 바와 같이 나타내어 질 수 있다. 예를 들어, 파일 1(630) 내지 파일 3(632)은 파일 2(631), 파일 3(632), 파일 1(630)의 위치 관계로 나타내어 질 수 있다. 이 때, 각 파일은 도출된 거리에 따라 클래스 1(640) 또는 클래스 2(650)로 분류될 수 있으며, 파일 1(630) 내지 파일 3(632)의 경우 클래스 1(640)에 해당할 수 있다. File 1 (630) to file 3 (632) may be represented as shown in FIG. 6B based on the distance between the derived files. For example, file 1 630 through file 3 632 may be represented by the positional relationship of file 2 631, file 3 632, and file 1 630. In this case, each file can be classified into a class 1 640 or a class 2 650 according to the derived distance, and the file 1 630 to the file 3 632 can be classified into a class 1 640 have.
다시 도 1로 돌아와서, 다른 실시예에 따르면, 데이터 분류 장치(100)는 미확인 데이터의 특징 벡터를 이용하여 데이터를 분류할 수 있다. 다른 실시예에서, 데이터 분류 장치(100)에 포함된 구간 설정부(110), 구간 매핑부(130), 특징 벡터 생성부(140)는 일 실시예에서 상술한 바와 같이 동일한 기능을 수행하므로 생략하도록 한다. 예를 들어, 데이터 분류 장치(100)는 미확인 데이터를 k-NN(k-nearest neighbor) 알고리즘을 이용하여 데이터를 분류할 수 있다.Referring again to FIG. 1, according to another embodiment, the data classification apparatus 100 can classify data using feature vectors of unidentified data. In another embodiment, the interval setting unit 110, the interval mapping unit 130, and the feature vector generating unit 140 included in the data classification apparatus 100 perform the same functions as described above in the embodiment, . For example, the data classification apparatus 100 may classify data by using a k-nearest neighbor (k-NN) algorithm.
빈도 추출부(120)는 미확인 데이터로부터 복수의 시그니처에 대한 각각의 빈도수를 추출할 수 있다. The frequency extracting unit 120 may extract each frequency of a plurality of signatures from the unidentified data.
거리 도출부(150)는 생성된 특징 벡터 및 기입력된 복수의 데이터로부터 생성된 특징 벡터에 기초하여 미확인 데이터와 기입력된 복수의 데이터 간의 거리를 도출할 수 있다. The distance derivation unit 150 may derive a distance between the unknown feature data and a plurality of previously input data based on the feature vector generated from the generated feature vector and a plurality of previously input data.
분류부(160)는 미확인 데이터로부터 생성된 특징 벡터를 입력 데이터로 하여 입력 데이터를 복수의 클래스 중 어느 하나로 분류할 수 있다. 이 때, 분류부(160)는 미확인 데이터와 기입력된 복수의 데이터 간의 거리에 기초하여 입력 데이터를 복수의 클래스 중 어느 하나로 분류할 수 있다. 예를 들어, 분류부(160)는 입력 데이터를 기입력된 복수의 데이터 중 미확인 데이터로부터 기설정된 거리 안에서 가장 빈도수가 높은 데이터의 클래스로 분류할 수 있다. 다시 말해, k-NN 알고리즘을 이용하는 본원 발명의 경우, 학습 데이터에 의한 군집화 과정을 기계 학습을 통해 수행하지 않고도, 미확인 데이터와 기입력된 복수의 데이터 간의 거리에 기초하여 기설정된 복수의 클래스 중 하나로 분류할 수 있다.The classifying unit 160 may classify the input data into any one of a plurality of classes by using the feature vector generated from the unidentified data as input data. At this time, the classifying unit 160 may classify the input data into any one of a plurality of classes based on the distance between the unidentified data and the previously input plural data. For example, the classifying unit 160 may classify input data into unclassified data among a plurality of input data, into a class of data having the highest frequency within a predetermined distance. In other words, in the case of the present invention using the k-NN algorithm, the clustering process based on the learning data is not performed through the machine learning but is performed by using one of a plurality of predetermined classes based on the distance between the unidentified data and the previously input plural data Can be classified.
도 7a 및 도 7b는 본 발명의 일 실시예에 따른 복수의 학습 데이터로부터 생성된 특징 벡터를 비교한 예시적인 도면이다. 7A and 7B are exemplary diagrams for comparing feature vectors generated from a plurality of training data according to an embodiment of the present invention.
도 7a는 종래의 복수의 학습 데이터로부터 생성된 특징 벡터를 도시한 예시적인 도면이다. 도 7a를 참조하면, 종래의 데이터 분류 장치는 학습 데이터로부터 복수의 시그니처를 추출하고, 복수의 시그니처에 대한 빈도수를 추출하여, 시그니처에 대한 특징 벡터를 생성할 수 있다. 이 때, 종래의 데이터 분류 장치는 파일을 가상 환경에서 실행시키거나, 파일 자체를 디스어셈블 한 후, [기능단위, 기능을 실행시키는 명령어 구조]들에 대한 파악이 전제되어야 한다. FIG. 7A is an exemplary diagram showing a feature vector generated from a plurality of conventional learning data. FIG. Referring to FIG. 7A, a conventional data classification apparatus can extract a plurality of signatures from learning data, extract a frequency for a plurality of signatures, and generate a feature vector for a signature. At this time, the conventional data classification apparatus should be assumed to grasp the [command structure for executing the function unit and the function] after executing the file in the virtual environment or disassembling the file itself.
예를 들어, 종래의 데이터 분류 장치는 시그니처 A 부터 J에 대해, 각 시그니처에 대한 빈도수를 추출하여 [11, 15, 10, 6, 11, 15, 3, 11, 10, 14]와 같이 10차원의 특징 벡터(700)를 생성할 수 있다. For example, the conventional data classification apparatus extracts the frequency of each signature for signatures A to J, and extracts the frequency of each signature from the signatures A to J, as shown in [11,15,10,6,11,15,31,10,14] It is possible to generate the feature vector 700 of FIG.
그러나 종래의 기계학습 기반의 데이터 분류 장치는 벡터의 차원이 악성코드의 시그니처 종류만큼 높아, 많은 매개변수를 구해야 하며, 이로 인해 데이터 분류 장치의 성능이 낮아지고, 메모리 부하 및 계산량이 증가된다는 단점을 가졌다. However, in the conventional data classification apparatus based on the machine learning, the dimension of the vector is as high as the signature type of the malicious code, and many parameters must be obtained. As a result, the performance of the data classification apparatus is lowered and the memory load and calculation amount are increased I have.
도 7b는 본 발명의 일 실시예에 따른 복수의 학습 데이터로부터 생성된 특징 벡터를 도시한 예시적인 도면이다. 도 7b를 참조하면, 본 발명에서 제안하는 데이터 분류 장치는 학습 데이터로부터 복수의 시그니처를 추출하고, 복수의 시그니처에 대한 각각의 빈도수를 추출하여, 각각의 빈도수를 복수의 구간 중 해당하는 구간과 매핑하여, 매핑된 구간에 해당하는 엘리먼트를 추출하여 특징 벡터를 생성할 수 있다. 이 때, 각 구간은 시그니처에 따라 다르게 설정 가능한 것일 수 있다. 7B is an exemplary diagram showing feature vectors generated from a plurality of training data according to an embodiment of the present invention. Referring to FIG. 7B, the data classification apparatus proposed in the present invention extracts a plurality of signatures from learning data, extracts each frequency of a plurality of signatures, maps each frequency to a corresponding one of a plurality of intervals And the feature vector can be generated by extracting the element corresponding to the mapped section. In this case, each section may be set differently depending on the signature.
예를 들어, 본 발명에서 제안하는 데이터 분류 장치(100)는 시그니처 A 부터 J에 대해, 각 시그니처에 대한 빈도수를 각각 {11, 15, 10, 6, 11, 15, 3, 11, 10, 14}로 추출하고, 추출된 빈도수가 해당하는 구간과 매핑하고, 매핑된 구간에 엘리먼트를 추출하여 [{A4, B5, C3, D2, E3, F4, G1, H3, I3, J5}]와 같이 1차원의 특징 벡터(710)를 생성할 수 있다. 즉, 1차원의 특징 벡터(710)는 추출된 빈도수가 해당하는 구간에 대한 집합으로 구성되는 것일 수 있다. 다른 예를 들어, 데이터 분류 장치(100)는 복수의 시그니처의 종류보다 적은 차원의 특징 벡터를 생성할 수 있으므로, [{A4, B5, C3, D2, E3}, {F4, G1, H3, I3, J5}]와 같이 2차원의 특징 벡터를 생성할 수도 있다. For example, the data classification apparatus 100 proposed in the present invention calculates the frequency of each signature with respect to the signatures A to J by {11, 15, 10, 6, 11, 15, 3, 11, }, The extracted frequency is mapped to the corresponding interval, the element is extracted in the mapped interval, and the element is extracted as [{A4, B5, C3, D2, E3, F4, G1, H3, I3, J5} Dimensional feature vector 710 can be generated. That is, the one-dimensional feature vector 710 may consist of a set of the extracted frequencies with corresponding intervals. For example, the data classification apparatus 100 may generate a feature vector of a smaller dimension than a plurality of types of signatures, so that [{A4, B5, C3, D2, E3}, {F4, G1, H3, I3 , J5}, and so on.
본 발명에서 제안하는 데이터 분류 장치(100)는 종래의 데이터 분류 장치와 비교하여 전체 특징 벡터의 차원을 축소시킴으로써, 메모리 부하 및 계산량을 감소시켜 데이터 분류 장치(100)의 성능을 향상시키고, 특징 벡터가 집합임에도 특징 벡터 간의 거리를 정의하여 여러 데이터 분류 장치를 대상으로 학습시킬 수 있다는 장점을 갖는다. The data classification apparatus 100 proposed in the present invention reduces the dimension of the entire feature vector as compared with the conventional data classification apparatus, thereby improving the performance of the data classification apparatus 100 by reducing the memory load and calculation amount, It is possible to define a distance between feature vectors and to learn various data classification devices.
도 8은 본 발명의 일 실시예에 따른 데이터 분류 장치에서 학습 데이터의 특징 벡터를 이용하여 기계 학습을 수행하는 방법의 순서도이다. 도 8에 도시된 데이터 분류 장치(100)에 의해 수행되는 학습 데이터의 특징 벡터를 이용하여 기계 학습을 수행하는 방법은 도 1 내지 도 7b에 도시된 실시예에 따라 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하 생략된 내용이라고 하더라도 도 1 내지 도 7b에 도시된 실시예에 따른 데이터 분류 장치(100)에 의해 수행되는 학습 데이터의 특징 벡터를 이용하여 기계 학습을 수행하는 방법에도 적용된다. 8 is a flowchart of a method of performing a machine learning using a feature vector of training data in a data classification apparatus according to an embodiment of the present invention. The method of performing the machine learning using the feature vector of the learning data performed by the data classification apparatus 100 shown in Fig. 8 includes steps that are processed in a time-series manner according to the embodiment shown in Figs. 1 to 7B do. Therefore, even if omitted in the following description, the present invention is also applied to a method of performing machine learning using a feature vector of training data performed by the data classification apparatus 100 according to the embodiment shown in FIGS. 1 to 7B.
단계 S810에서 데이터 분류 장치(100)는 복수의 시그니처 별로 복수의 구간을 설정할 수 있다. In step S810, the data classification apparatus 100 may set a plurality of intervals for a plurality of signatures.
단계 S820에서 데이터 분류 장치(100)는 복수의 학습 데이터로부터 복수의 시그니처에 대한 각각의 빈도수를 추출할 수 있다. In step S820, the data classification apparatus 100 may extract each frequency for a plurality of signatures from a plurality of pieces of learning data.
단계 S830에서 데이터 분류 장치(100)는 추출된 각각의 빈도수를 복수의 구간 중 해당하는 구간과 매핑할 수 있다. In step S830, the data classification apparatus 100 may map each extracted frequency to a corresponding one of a plurality of intervals.
단계 S840에서 데이터 분류 장치(100)는 복수의 시그니처 각각이 매핑된 구간에 해당하는 엘리먼트를 추출하여 특징 벡터를 생성할 수 있다. In step S840, the data classification apparatus 100 may extract the element corresponding to the interval in which each of the plurality of signatures is mapped to generate the feature vector.
단계 S850에서 데이터 분류 장치(100)는 생성된 특징 벡터를 입력 데이터로 하여 입력 데이터를 복수의 클래스 중 어느 하나로 분류하도록 기계 학습을 수행할 수 있다. In step S850, the data classification apparatus 100 may perform the machine learning so as to classify the input data into one of a plurality of classes using the generated feature vector as input data.
상술한 설명에서, 단계 S810 내지 S850은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 전환될 수도 있다.In the above description, steps S810 to S850 may be further divided into further steps, or combined in fewer steps, according to an embodiment of the present invention. In addition, some of the steps may be omitted as necessary, and the order between the steps may be switched.
도 1 내지 도 8을 통해 설명된 데이터 분류 장치에서 학습 데이터의 특징 벡터를 이용하여 기계 학습을 수행하는 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램 또는 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 또한, 도 1 내지 도 8을 통해 설명된 데이터 분류 장치에서 학습 데이터의 특징 벡터를 이용하여 기계 학습을 수행하는 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램의 형태로도 구현될 수 있다. The method for performing the machine learning using the feature vector of the learning data in the data classifying apparatus described with reference to Figs. 1 to 8 includes a computer program stored in a medium executed by the computer or a recording medium As shown in FIG. In addition, the method for performing the machine learning using the feature vector of the learning data in the data classifying apparatus described with reference to Figs. 1 to 8 can also be implemented in the form of a computer program stored in a medium executed by the 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. The computer-readable medium may also include computer storage 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.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다. 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: 구간 설정부
120: 빈도 추출부
130: 구간 매핑부
140: 특징 벡터 생성부
150: 거리 도출부
160: 분류부
100: Data classification device
110:
120: Frequency Extraction Unit
130:
140: Feature vector generating unit
150:
160:

Claims (16)

  1. 기계 학습을 수행하기 위한 학습 데이터의 특징 벡터를 이용하여 데이터를 분류하는 장치에 있어서,
    복수의 시그니처 별로 복수의 구간을 설정하는 구간 설정부;
    복수의 학습 데이터로부터 복수의 시그니처에 대한 각각의 빈도수를 추출하는 빈도 추출부;
    상기 추출된 각각의 빈도수를 상기 복수의 구간 중 해당하는 구간과 매핑하는 구간 매핑부;
    상기 복수의 시그니처 각각이 매핑된 구간에 해당하는 엘리먼트를 추출하여 특징 벡터를 생성하는 특징 벡터 생성부; 및
    상기 생성된 특징 벡터를 입력 데이터로 하여 상기 입력 데이터를 복수의 클래스 중 어느 하나로 분류하도록 기계 학습을 수행하는 분류부
    를 포함하는 것인, 데이터 분류 장치.
    1. An apparatus for classifying data using feature vectors of training data for performing machine learning,
    An interval setting unit setting a plurality of intervals for each of a plurality of signatures;
    A frequency extraction unit for extracting a frequency of each of a plurality of signatures from a plurality of pieces of learning data;
    An interval mapping unit for mapping each of the extracted frequency numbers to a corresponding one of the plurality of intervals;
    A feature vector generation unit for extracting an element corresponding to an interval in which each of the plurality of signatures is mapped to generate a feature vector; And
    Classifying the input data into one of a plurality of classes by using the generated feature vector as input data,
    The data classification apparatus comprising:
  2. 제 1 항에 있어서,
    상기 복수의 시그니처는 상기 복수의 학습 데이터의 클래스를 분류하기 위한 특징으로 선택되어 상기 학습 데이터로부터 추출되는 것인, 데이터 분류 장치.
    The method according to claim 1,
    Wherein the plurality of signatures are selected as features for classifying the classes of the plurality of learning data and extracted from the learning data.
  3. 제 1 항에 있어서,
    상기 구간 설정부는 상기 복수의 시그니처 별로 각 시그니처의 빈도수에 따라 균등하게 나눠진 복수의 구간을 설정하는 것인, 데이터 분류 장치.
    The method according to claim 1,
    Wherein the interval setting unit sets a plurality of intervals that are evenly divided according to the frequency of each signature for each of the plurality of signatures.
  4. 제 3 항에 있어서,
    상기 구간 설정부는 상기 복수의 구간을 각 시그니처 별로 다르게 설정하는 것인, 데이터 분류 장치.
    The method of claim 3,
    Wherein the interval setting unit sets the plurality of intervals differently for each signature.
  5. 제 4 항에 있어서,
    상기 구간 설정부는 상기 복수의 구간을 상기 각 시그니처 간의 중요도에 따라 다르게 설정하는 것인, 데이터 분류 장치.
    5. The method of claim 4,
    Wherein the interval setting unit sets the plurality of intervals differently according to the degree of importance between the respective signatures.
  6. 제 3 항에 있어서,
    상기 구간 맵핑부는 상기 추출된 복수의 시그니처의 빈도수에 따라 상기 각 시그니처를 상기 복수의 구간 중 어느 하나에 매핑하는 것인, 데이터 분류 장치.
    The method of claim 3,
    Wherein the interval mapping unit maps each of the signatures to one of the plurality of intervals according to the frequency of the extracted plurality of signatures.
  7. 제 6 항에 있어서,
    상기 특징 벡터 생성부는 상기 복수의 시그니처의 종류보다 적은 차원의 특징 벡터를 생성하는 것인, 데이터 분류 장치.
    The method according to claim 6,
    Wherein the feature vector generation unit generates a feature vector having a dimension smaller than the type of the plurality of signatures.
  8. 제 6 항에 있어서,
    상기 특징 벡터 생성부는 상기 복수의 시그니처의 종류에 해당하는 사이즈를 가지는 집합으로 이루어진 특징 벡터를 생성하는 것인, 데이터 분류 장치.
    The method according to claim 6,
    Wherein the feature vector generation unit generates a feature vector including a set having a size corresponding to the type of the plurality of signatures.
  9. 제 1 항에 있어서,
    상기 복수의 학습 데이터로부터 생성된 각각의 특징 벡터에 기초하여 상기 복수의 학습 데이터 간의 거리를 도출하는 거리 도출부
    를 더 포함하는 것인, 데이터 분류 장치.
    The method according to claim 1,
    A distance derivation unit for deriving a distance between the plurality of learning data based on each feature vector generated from the plurality of learning data,
    Wherein the data classification apparatus further comprises:
  10. 제 9 항에 있어서,
    상기 분류부는 상기 도출된 복수의 학습 데이터 간의 거리에 기초하여 상기 입력 데이터를 상기 복수의 클래스 중 어느 하나로 분류하는 것인, 데이터 분류 장치.
    10. The method of claim 9,
    Wherein the classifying section classifies the input data into any one of the plurality of classes based on a distance between the derived plurality of learning data.
  11. 제 10 항에 있어서,
    상기 복수의 학습 데이터 간의 거리는 적어도 두 개의 학습 데이터의 특징 벡터에 대한 합집합의 원소 수로부터 상기 적어도 두 개의 학습 데이터의 특징 벡터에 대한 교집합의 원소 수를 뺀 값인 것인, 데이터 분류 장치.
    11. The method of claim 10,
    Wherein the distance between the plurality of learning data is a value obtained by subtracting the number of elements of the intersection with the feature vectors of the at least two learning data from the number of elements of the union of the feature vectors of the at least two training data.
  12. 미확인 데이터의 특징 벡터를 이용하여 데이터를 분류하는 장치에 있어서,
    복수의 시그니처 별로 복수의 구간을 설정하는 구간 설정부;
    미확인 데이터로부터 복수의 시그니처에 대한 각각의 빈도수를 추출하는 추출부;
    상기 추출된 각각의 빈도수를 상기 복수의 구간 중 해당하는 구간과 매핑하는 구간 매핑부;
    상기 복수의 시그니처 각각이 매핑된 구간에 해당하는 엘리먼트를 추출하여 특징 벡터를 생성하는 특징 벡터 생성부; 및
    상기 생성된 특징 벡터를 입력 데이터로 하여 상기 입력 데이터를 복수의 클래스 중 어느 하나로 분류하는 분류부
    를 포함하는 것인, 데이터 분류 장치.
    An apparatus for classifying data using characteristic vectors of unidentified data,
    An interval setting unit setting a plurality of intervals for each of a plurality of signatures;
    An extraction unit for extracting each frequency of a plurality of signatures from unidentified data;
    An interval mapping unit for mapping each of the extracted frequency numbers to a corresponding one of the plurality of intervals;
    A feature vector generation unit for extracting an element corresponding to an interval in which each of the plurality of signatures is mapped to generate a feature vector; And
    And classifying the input data into any one of a plurality of classes using the generated feature vector as input data,
    The data classification apparatus comprising:
  13. 제 12 항에 있어서,
    상기 생성된 특징 벡터 및 기입력된 복수의 데이터로부터 생성된 특징 벡터에 기초하여 상기 미확인 데이터와 상기 기입력된 복수의 데이터 간의 거리를 도출하는 거리 도출부를 더 포함하는 것인, 데이터 분류 장치.
    13. The method of claim 12,
    And a distance derivation unit for deriving a distance between the unidentified data and the pre-inputted plurality of data based on the generated feature vector and a feature vector generated from a plurality of pre-input data.
  14. 제 13 항에 있어서,
    상기 분류부는 상기 미확인 데이터와 상기 기입력된 복수의 데이터 간의 거리에 기초하여 상기 입력 데이터를 상기 복수의 클래스 중 어느 하나로 분류하는 것인, 데이터 분류 장치.
    14. The method of claim 13,
    Wherein the classifying section classifies the input data into one of the plurality of classes based on the distance between the unidentified data and the previously inputted plurality of data.
  15. 제 14 항에 있어서,
    상기 분류부는 상기 입력 데이터를 상기 기입력된 복수의 데이터 중 상기 미확인 데이터로부터 기설정된 거리 안에서 가장 빈도수가 높은 데이터의 클래스로 분류하는 것인, 악성 파일 분류 장치.
    15. The method of claim 14,
    Wherein the classification unit classifies the input data into a class of data having the highest frequency within a predetermined distance from the unidentified data among the previously inputted plurality of data.
  16. 학습 데이터의 특징 벡터를 이용하여 기계 학습을 수행하는 방법에 있어서,
    복수의 시그니처 별로 복수의 구간을 설정하는 단계;
    복수의 학습 데이터로부터 복수의 시그니처에 대한 각각의 빈도수를 추출하는 단계;
    상기 추출된 각각의 빈도수를 상기 복수의 구간 중 해당하는 구간과 매핑하는 단계;
    상기 복수의 시그니처 각각이 매핑된 구간에 해당하는 엘리먼트를 추출하여 특징 벡터를 생성하는 단계; 및
    상기 생성된 특징 벡터를 입력 데이터로 하여 상기 입력 데이터를 복수의 클래스 중 어느 하나로 분류하도록 기계 학습을 수행하는 단계
    를 포함하는 것인, 데이터 분류 방법.
    A method of performing machine learning using a feature vector of training data,
    Setting a plurality of intervals for each of a plurality of signatures;
    Extracting a frequency of each of a plurality of signatures from a plurality of pieces of learning data;
    Mapping each of the extracted frequency numbers to a corresponding one of the plurality of intervals;
    Extracting an element corresponding to an interval in which each of the plurality of signatures is mapped to generate a feature vector; And
    Performing machine learning to classify the input data into one of a plurality of classes using the generated feature vector as input data
    The data classification method comprising the steps of:
KR1020170070948A 2017-06-07 2017-06-07 Appratus and method for classifying data using feature vector KR20180133726A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170070948A KR20180133726A (en) 2017-06-07 2017-06-07 Appratus and method for classifying data using feature vector

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170070948A KR20180133726A (en) 2017-06-07 2017-06-07 Appratus and method for classifying data using feature vector

Publications (1)

Publication Number Publication Date
KR20180133726A true KR20180133726A (en) 2018-12-17

Family

ID=65007726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170070948A KR20180133726A (en) 2017-06-07 2017-06-07 Appratus and method for classifying data using feature vector

Country Status (1)

Country Link
KR (1) KR20180133726A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210043932A (en) * 2019-10-14 2021-04-22 국민대학교산학협력단 Apparatus and method for generating feature vector with label information

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210043932A (en) * 2019-10-14 2021-04-22 국민대학교산학협력단 Apparatus and method for generating feature vector with label information

Similar Documents

Publication Publication Date Title
US20210256127A1 (en) System and method for automated machine-learning, zero-day malware detection
US9665713B2 (en) System and method for automated machine-learning, zero-day malware detection
Kong et al. Discriminant malware distance learning on structural information for automated malware classification
Crussell et al. Andarwin: Scalable detection of semantically similar android applications
Tian et al. An automated classification system based on the strings of trojan and virus families
Ding et al. Control flow-based opcode behavior analysis for Malware detection
JP6736532B2 (en) System and method for detecting malicious files using elements of static analysis
JP2017004123A (en) Determination apparatus, determination method, and determination program
El Boujnouni et al. New malware detection framework based on N-grams and support vector domain description
Darshan et al. Performance evaluation of filter-based feature selection techniques in classifying portable executable files
More et al. Trust-based voting method for efficient malware detection
Liu et al. A new learning approach to malware classification using discriminative feature extraction
Yan et al. Automatic malware classification via PRICoLBP
US11080398B2 (en) Identifying signatures for data sets
Sun et al. An Opcode sequences analysis method for unknown malware detection
KR20180133726A (en) Appratus and method for classifying data using feature vector
Kang et al. Fast malware family detection method using control flow graphs
CN104504334A (en) System and method used for evaluating selectivity of classification rules
Naderi et al. Malware signature generation using locality sensitive hashing
EP2819054A1 (en) Flexible fingerprint for detection of malware
Liu et al. FENOC: an ensemble one-class learning framework for malware detection
Zhang et al. SmartDetect: a smart detection scheme for malicious web shell codes via ensemble learning
Yuxin et al. Malicious code detection using opcode running tree representation
Nar et al. Analysis and comparison of opcode-based malware detection approaches
Cybersecurity Machine learning for malware detection

Legal Events

Date Code Title Description
A201 Request for examination