KR102472850B1 - Malware detection device and method based on hybrid artificial intelligence - Google Patents
Malware detection device and method based on hybrid artificial intelligence Download PDFInfo
- Publication number
- KR102472850B1 KR102472850B1 KR1020210002023A KR20210002023A KR102472850B1 KR 102472850 B1 KR102472850 B1 KR 102472850B1 KR 1020210002023 A KR1020210002023 A KR 1020210002023A KR 20210002023 A KR20210002023 A KR 20210002023A KR 102472850 B1 KR102472850 B1 KR 102472850B1
- Authority
- KR
- South Korea
- Prior art keywords
- unit
- malicious code
- metadata
- sequence
- vector
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Virology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 하이브리드 인공지능 기반의 악성코드 탐지 장치 및 방법에 관한 것으로, 상기 장치는 탐지대상객체를 입력받고 상기 탐지대상객체의 전처리를 통해 메타데이터 및 페이로드 데이터로 분류하는 탐지대상객체 전처리부; 상기 메타데이터의 이상유무를 검출하고 상기 메타데이터의 이상이 존재하지 않는 경우에는 상기 페이로드 데이터에 관한 행위 시뮬레이션을 수행하여 상기 탐지대상객체의 이상을 탐지하는 이상탐지 처리부; 상기 페이로드 데이터를 단위요소로 분해하여 일련의 시퀀스 스트림을 생성하고 상기 분해의 과정에서 시퀀스 벡터를 생성하며 상기 시퀀스 벡터를 기초로 단위 벡터열을 생성하고 상기 단위 벡터열을 학습하여 구축된 악성코드 탐지 모델을 통해 상기 페이로드 데이터에서 악성코드의 유무를 결정하는 악성유무 결정부; 및 상기 탐지대상객체의 이상 유무 및 상기 악성코드의 유무를 이용하여 악성코드를 탐지하는 악성코드 탐지부를 포함한다.The present invention relates to an apparatus and method for detecting malicious code based on hybrid artificial intelligence, the apparatus comprising: a detection target object pre-processing unit that receives a detection target object and classifies the detection target object into metadata and payload data through preprocessing; an anomaly detection processing unit which detects whether or not there is an anomaly in the metadata and, when there is no anomaly in the metadata, performs a behavior simulation on the payload data to detect anomaly in the object to be detected; Malicious code constructed by decomposing the payload data into unit elements to generate a series of sequence streams, generating a sequence vector in the process of decomposition, generating a unit vector sequence based on the sequence vector, and learning the unit vector sequence. a malicious presence/absence determination unit determining whether or not there is malicious code in the payload data through a detection model; and a malicious code detecting unit that detects malicious code by using whether or not the object to be detected is abnormal and whether or not the malicious code exists.
Description
본 발명은 악성코드 탐지 기술에 관한 것으로, 보다 상세하게는 기존의 분류 모델의 탐지 과정에 이상 탐지 모델을 결합하여 새로운 유형의 의심 파일을 탐지할 수 있는 하이브리드 인공지능 기반의 악성코드 탐지 장치 및 방법에 관한 것이다.The present invention relates to a malicious code detection technology, and more particularly, to a hybrid artificial intelligence-based malware detection device and method capable of detecting a new type of suspicious file by combining an anomaly detection model with an existing classification model detection process. It is about.
인터넷 및 컴퓨터 기술이 지속적으로 개발되고, 이와 함께 이러한 기술을 악용하여 부당한 이익을 취하려는 시도도 증가하고 있다. 예를 들어, 악성코드를 사용자들의 컴퓨터에 설치 및 배포하여 사용자들로부터 부당한 이익을 취하는 방법이 증가하고 있다.Internet and computer technologies are continuously developed, and along with this, attempts to obtain unfair profits by exploiting these technologies are also increasing. For example, methods of obtaining unfair profits from users by installing and distributing malicious codes on users' computers are increasing.
여기에서, 악성코드는 컴퓨터 사용자의 승인없이 컴퓨터에 침투하거나 설치되어 악의적인 행동을 하는 프로그램을 의미한다. 이에 따라, 보안 전문가들은 다양한 해결 방안을 모색하고 있다.Here, the malicious code refers to a program that infiltrates or is installed into a computer without the approval of a computer user to perform malicious actions. Accordingly, security experts are seeking various solutions.
한편, 문서형 악성코드는 사이버보안을 위협하는 주요 공격 수단이다. 최근에는 사회공학적 기법을 이용하여 이메일에 문서형 악성코드를 첨부시키는 형태의 공격이 국내 금융기관을 포함한 주요 시설을 대상으로 유행하고 있다. 바이러스토탈의 통계에 의하면 여전히 윈도우즈 실행 파일 형태의 악성코드가 가장 많이 발생하고 있으나, 주요 기관이나 기업을 대상으로 진행되는 APT(Advanced Persistent Threat) 공격 수단으로는 문서형 악성코드의 발생량이 꾸준히 증가하고 있다.Meanwhile, document-type malware is a major attack method that threatens cyber security. Recently, an attack in the form of attaching a document-type malicious code to an e-mail using social engineering techniques has become popular targeting major facilities including domestic financial institutions. According to VirusTotal's statistics, malware in the form of Windows executable files still occurs the most, but as an APT (Advanced Persistent Threat) attack method targeting major institutions or companies, the amount of document-type malware is steadily increasing. have.
본 발명의 일 실시예는 기존의 분류 모델의 탐지 과정에 이상 탐지 모델을 결합하여 새로운 유형의 의심 파일을 탐지할 수 있는 하이브리드 인공지능 기반의 악성코드 탐지 장치 및 방법을 제공하고자 한다.An embodiment of the present invention is to provide a hybrid artificial intelligence-based malware detection device and method capable of detecting a new type of suspicious file by combining an anomaly detection model with a detection process of an existing classification model.
본 발명의 일 실시예는 탐지대상객체가 패킷인 경우 페이로드 데이터의 각 바이트를 표현하는 최적의 벡터를 학습함으로써 악성유무 결정을 효과적으로 수행할 수 있는 하이브리드 인공지능 기반의 악성코드 탐지 장치 및 방법을 제공하고자 한다.An embodiment of the present invention provides a hybrid artificial intelligence-based malware detection device and method that can effectively determine malicious code by learning an optimal vector representing each byte of payload data when the object to be detected is a packet. want to provide
실시예들 중에서, 하이브리드 인공지능 기반의 악성코드 탐지 장치는 탐지대상객체를 입력받고 상기 탐지대상객체의 전처리를 통해 메타데이터 및 페이로드 데이터로 분류하는 탐지대상객체 전처리부; 상기 메타데이터의 이상유무를 검출하고 상기 메타데이터의 이상이 존재하지 않는 경우에는 상기 페이로드 데이터에 관한 행위 시뮬레이션을 수행하여 상기 탐지대상객체의 이상을 탐지하는 이상탐지 처리부; 상기 페이로드 데이터를 단위요소로 분해하여 일련의 시퀀스 스트림을 생성하고 상기 분해의 과정에서 시퀀스 벡터를 생성하며 상기 시퀀스 벡터를 기초로 단위 벡터열을 생성하고 상기 단위 벡터열을 학습하여 구축된 악성코드 탐지 모델을 통해 상기 페이로드 데이터에서 악성코드의 유무를 결정하는 악성유무 결정부; 및 상기 탐지대상객체의 이상 유무 및 상기 악성코드의 유무를 이용하여 악성코드를 탐지하는 악성코드 탐지부를 포함한다.Among the embodiments, an apparatus for detecting malicious code based on hybrid artificial intelligence includes a detection target object pre-processing unit that receives a detection target object and classifies the detection target object into metadata and payload data through pre-processing of the detection target object; an anomaly detection processing unit which detects whether or not there is an anomaly in the metadata and, when there is no anomaly in the metadata, performs a behavior simulation on the payload data to detect anomaly in the object to be detected; Malicious code constructed by decomposing the payload data into unit elements to generate a series of sequence streams, generating a sequence vector in the process of decomposition, generating a unit vector sequence based on the sequence vector, and learning the unit vector sequence. a malicious presence/absence determination unit determining whether or not there is malicious code in the payload data through a detection model; and a malicious code detecting unit that detects malicious code by using whether or not the object to be detected is abnormal and whether or not the malicious code exists.
상기 탐지대상객체 전처리부는 파일시스템에 있는 파일관리 데이터를 상기 메타데이터로 결정하고 상기 파일시스템에 있는 파일내용을 상기 페이로드 데이터로 결정할 수 있다.The detection target object preprocessing unit may determine file management data in the file system as the metadata and file contents in the file system as the payload data.
상기 이상탐지 처리부는 악성코드 메타데이터 데이터베이스에서 상기 메타데이터와 가장 유사한 악성코드 메타데이터를 결정하고, 상기 메타데이터 및 상기 악성코드 메타데이터 간의 유클리디언 거리(Euclidean Distance)를 기초로 상기 메타데이터의 이상을 결정할 수 있다.The anomaly detection processing unit determines the malicious code metadata most similar to the metadata in the malicious code metadata database, and determines the metadata based on the Euclidean distance between the metadata and the malicious code metadata. more can be determined.
상기 이상탐지 처리부는 상기 페이로드 데이터를 독립적인 실행 공간을 가지는 행위 시뮬레이션 엔진을 통해 상기 행위 시뮬레이션을 수행하고, 상기 실행 공간 내에서 발생되는 행위를 분석하여 상기 탐지대상객체의 이상을 탐지할 수 있다.The anomaly detection processing unit performs the behavior simulation on the payload data through a behavior simulation engine having an independent execution space, and analyzes behaviors occurring within the execution space to detect abnormalities in the detection target object. .
상기 악성유무 결정부는 상기 패킷의 길이가 특정 기준을 초과하지 않는 경우에는 상기 단위요소를 바이트(byte)로 설정할 수 있다.When the length of the packet does not exceed a specific criterion, the maliciousness determination unit may set the unit element to a byte.
상기 악성유무 결정부는 상기 시퀀스 벡터의 크기를 상기 패킷의 최대 길이로 결정할 수 있다.The maliciousness determination unit may determine the size of the sequence vector as the maximum length of the packet.
상기 악성유무 결정부는 상기 단위요소를 0 부터 255 사이의 바이트 값에 대응되는 단위요소 값으로 변환할 수 있다.The maliciousness determination unit may convert the unit element into a unit element value corresponding to a byte value between 0 and 255.
상기 악성유무 결정부는 상기 패킷의 길이에 비례하도록 상기 단위 벡터의 크기를 결정할 수 있다.The maliciousness determination unit may determine the size of the unit vector in proportion to the length of the packet.
상기 악성유무 결정부는 상기 시퀀스 벡터의 단위요소 값들의 편차에 따라 상기 단위 벡터의 크기를 결정할 수 있다.The maliciousness determination unit may determine the size of the unit vector according to deviations of unit element values of the sequence vector.
상기 악성유무 결정부는 상기 시퀀스 벡터의 각 단위요소 값에 대응되는 임베딩 벡터(embedding vector)를 생성하여 상기 복수의 단위 벡터들을 생성할 수 있다.The maliciousness determination unit may generate the plurality of unit vectors by generating an embedding vector corresponding to each unit element value of the sequence vector.
상기 악성유무 결정부는 게이트 CNN(Gated Convolutional Neural Network)을 통해 상기 악성코드 탐지 모델을 구축할 수 있다.The maliciousness determination unit may build the malicious code detection model through a gated convolutional neural network (CNN).
실시예들 중에서, 하이브리드 인공지능 기반의 악성코드 탐지 방법은 탐지대상객체를 입력받고 상기 탐지대상객체의 전처리를 통해 메타데이터 및 페이로드 데이터로 분류하는 단계; 상기 메타데이터의 이상유무를 검출하고 상기 메타데이터의 이상이 존재하지 않는 경우에는 상기 페이로드 데이터에 관한 행위 시뮬레이션을 수행하여 상기 탐지대상객체의 이상을 탐지하는 단계; 상기 페이로드 데이터를 단위요소로 분해하여 일련의 시퀀스 스트림을 생성하고 상기 분해의 과정에서 시퀀스 벡터를 생성하며 상기 시퀀스 벡터를 기초로 단위 벡터열을 생성하고 상기 단위 벡터열을 학습하여 구축된 악성코드 탐지 모델을 통해 상기 페이로드 데이터에서 악성코드의 유무를 결정하는 단계; 및 상기 탐지대상객체의 이상 유무 및 상기 악성코드의 유무를 이용하여 악성코드를 탐지하는 단계를 포함한다.Among the embodiments, a hybrid artificial intelligence-based malicious code detection method includes receiving a detection target object and classifying the detection target object into metadata and payload data through preprocessing; detecting whether or not there is an abnormality in the metadata, and if there is no abnormality in the metadata, detecting an abnormality in the object to be detected by performing behavior simulation on the payload data; Malicious code constructed by decomposing the payload data into unit elements to generate a series of sequence streams, generating a sequence vector in the process of decomposition, generating a unit vector sequence based on the sequence vector, and learning the unit vector sequence. determining the presence or absence of malicious code in the payload data through a detection model; and detecting a malicious code by using whether or not the object to be detected is abnormal and whether the malicious code exists.
상기 메타데이터 및 페이로드 데이터로 분류하는 단계는 파일시스템에 있는 파일관리 데이터를 상기 메타데이터로 결정하고 상기 파일시스템에 있는 파일내용을 상기 페이로드 데이터로 결정하는 단계를 포함할 수 있다.The classifying into metadata and payload data may include determining file management data in a file system as the metadata and determining file contents in the file system as the payload data.
상기 탐지대상객체의 이상을 탐지하는 단계는 악성코드 메타데이터 데이터베이스에서 상기 메타데이터와 가장 유사한 악성코드 메타데이터를 결정하고, 상기 메타데이터 및 상기 악성코드 메타데이터 간의 유클리디언 거리(Euclidean Distance)를 기초로 상기 메타데이터의 이상을 결정하는 단계를 포함할 수 있다.In the step of detecting an anomaly of the object to be detected, the malicious code metadata most similar to the metadata is determined in the malicious code metadata database, and the Euclidean distance between the metadata and the malicious code metadata is determined. Based on this, it may include determining an abnormality of the metadata.
상기 탐지대상객체의 이상을 탐지하는 단계는 상기 페이로드 데이터를 독립적인 실행 공간을 가지는 행위 시뮬레이션 엔진을 통해 상기 행위 시뮬레이션을 수행하고, 상기 실행 공간 내에서 발생되는 행위를 분석하여 상기 탐지대상객체의 이상을 탐지하는 단계를 포함할 수 있다.The step of detecting an anomaly of the object to be detected is performing the behavior simulation on the payload data through a behavior simulation engine having an independent execution space, and analyzing the behavior occurring in the execution space to determine the behavior of the object to be detected. It may include detecting an anomaly.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technology may have the following effects. However, it does not mean that a specific embodiment must include all of the following effects or only the following effects, so it should not be understood that the scope of rights of the disclosed technology is limited thereby.
본 발명의 일 실시예에 따른 하이브리드 인공지능 기반의 악성코드 탐지 장치 및 방법은 기존의 분류 모델의 탐지 과정에 이상 탐지 모델을 결합하여 새로운 유형의 의심 파일을 탐지할 수 있다.An apparatus and method for detecting malicious code based on hybrid artificial intelligence according to an embodiment of the present invention may detect a new type of suspicious file by combining an anomaly detection model with a detection process of an existing classification model.
본 발명의 일 실시예에 따른 하이브리드 인공지능 기반의 악성코드 탐지 장치 및 방법은 탐지대상객체가 패킷인 경우 페이로드 데이터의 각 바이트를 표현하는 최적의 벡터를 학습함으로써 악성유무 결정을 효과적으로 수행할 수 있다.An apparatus and method for detecting malicious code based on hybrid artificial intelligence according to an embodiment of the present invention can effectively determine the presence or absence of malicious code by learning an optimal vector representing each byte of payload data when the object to be detected is a packet. have.
도 1은 본 발명에 따른 악성코드 탐지 시스템을 설명하는 도면이다.
도 2는 도 1의 악성코드 탐지 장치의 시스템 구성을 설명하는 도면이다.
도 3은 도 1의 악성코드 탐지 장치의 기능적 구성을 설명하는 도면이다.
도 4는 도 3의 악성유무 결정부의 기능적 구성을 설명하는 도면이다.
도 5는 본 발명에 따른 하이브리드 인공지능 기반의 악성코드 탐지 과정을 설명하는 순서도이다.
도 6은 본 발명에 따른 페이로드 데이터에서 악성코드의 유무를 결정하는 과정을 설명하는 순서도이다.
도 7은 본 발명에 따른 악성코드 탐지 모델을 위한 학습 데이터를 생성하는 과정을 설명하는 도면이다.1 is a diagram illustrating a malicious code detection system according to the present invention.
FIG. 2 is a diagram explaining the system configuration of the malicious code detection device of FIG. 1 .
FIG. 3 is a diagram explaining the functional configuration of the malicious code detection device of FIG. 1 .
FIG. 4 is a diagram explaining the functional configuration of the malignancy determination unit of FIG. 3 .
5 is a flowchart illustrating a process of detecting malicious code based on hybrid artificial intelligence according to the present invention.
6 is a flowchart illustrating a process of determining the presence or absence of malicious code in payload data according to the present invention.
7 is a diagram explaining a process of generating learning data for a malicious code detection model according to the present invention.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.Since the description of the present invention is only an embodiment for structural or functional description, the scope of the present invention should not be construed as being limited by the embodiments described in the text. That is, since the embodiment can be changed in various ways and can have various forms, it should be understood that the scope of the present invention includes equivalents capable of realizing the technical idea. In addition, since the object or effect presented in the present invention does not mean that a specific embodiment should include all of them or only such effects, the scope of the present invention should not be construed as being limited thereto.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of terms described in this application should be understood as follows.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as "first" and "second" are used to distinguish one component from another, and the scope of rights should not be limited by these terms. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It should be understood that when an element is referred to as being “connected” to another element, it may be directly connected to the other element, but other elements may exist in the middle. On the other hand, when an element is referred to as being "directly connected" to another element, it should be understood that no intervening elements exist. Meanwhile, other expressions describing the relationship between components, such as “between” and “immediately between” or “adjacent to” and “directly adjacent to” should be interpreted similarly.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Expressions in the singular number should be understood to include plural expressions unless the context clearly dictates otherwise, and terms such as “comprise” or “having” refer to an embodied feature, number, step, operation, component, part, or these. It should be understood that it is intended to indicate that a combination exists, and does not preclude the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (eg, a, b, c, etc.) is used for convenience of explanation, and the identification code does not describe the order of each step, and each step clearly follows a specific order in context. Unless otherwise specified, it may occur in a different order than specified. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can be implemented as computer readable code on a computer readable recording medium, and the computer readable recording medium includes all types of recording devices storing data that can be read by a computer system. . Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices. In addition, the computer-readable recording medium may be distributed to computer systems connected through a network, so that computer-readable codes may be stored and executed in a distributed manner.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs, unless defined otherwise. Terms defined in commonly used dictionaries should be interpreted as consistent with meanings in the context of the related art, and cannot be interpreted as having ideal or excessively formal meanings unless explicitly defined in the present application.
도 1은 본 발명에 따른 악성코드 탐지 시스템을 설명하는 도면이다.1 is a diagram illustrating a malicious code detection system according to the present invention.
도 1을 참조하면, 악성코드 탐지 시스템(100)은 사용자 단말(110), 악성코드 탐지 장치(130) 및 데이터베이스(150)를 포함할 수 있다.Referring to FIG. 1 , a malicious
사용자 단말(110)은 네트워크를 이용하여 데이터 전송 및 다양한 서비스를 이용할 수 있는 컴퓨팅 장치에 해당할 수 있고, 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 사용자 단말(110)은 악성코드 탐지 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들은 악성코드 탐지 장치(130)와 동시에 연결될 수 있다.The
악성코드 탐지 장치(130)는 사용자 단말(110) 간의 데이터 통신이나 외부 시스템과의 네트워크 이용 과정에서 모니터링을 수행하고 악성코드를 탐지하여 보안 조치를 시행할 수 있는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 악성코드 탐지 장치(130)는 사용자 단말(110)과 네트워크를 통해 연결될 수 있고 정보를 주고받을 수 있다. 일 실시예에서, 악성코드 탐지 장치(130)는 데이터베이스(150)와 연동하여 네트워크 모니터링 및 보안관제를 위해 필요한 데이터를 저장할 수 있다.Malicious
데이터베이스(150)는 악성코드 탐지 장치(130)의 동작 과정에서 필요한 다양한 정보들을 저장하는 저장장치에 해당할 수 있다. 데이터베이스(150)는 네트워크 모니터링 과정에서 수집된 패킷 정보를 저장할 수 있고, 악성코드 탐지를 위한 다양한 학습 데이터 및 학습 정보를 저장할 수 있으며, 반드시 이에 한정되지 않고, 악성코드 탐지 장치(130)가 하이브리드 인공지능 기반의 악성코드를 탐지하는 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.The
도 2는 도 1의 악성코드 탐지 장치의 시스템 구성을 설명하는 도면이다.FIG. 2 is a diagram explaining the system configuration of the malicious code detection device of FIG. 1 .
도 2를 참조하면, 악성코드 탐지 장치(130)는 프로세서(210), 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)를 포함할 수 있다.Referring to FIG. 2 , the malicious
프로세서(210)는 악성코드 탐지 장치(130)가 동작하는 과정에서의 각 단계들을 처리하는 프로시저를 실행할 수 있고, 그 과정 전반에서 읽혀지거나 작성되는 메모리(230)를 관리할 수 있으며, 메모리(230)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄할 수 있다. 프로세서(210)는 악성코드 탐지 장치(130)의 동작 전반을 제어할 수 있고, 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(210)는 악성코드 탐지 장치(130)의 CPU(Central Processing Unit)로 구현될 수 있다.The
메모리(230)는 SSD(Solid State Drive) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 악성코드 탐지 장치(130)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.The
사용자 입출력부(250)는 사용자 입력을 수신하기 위한 환경 및 사용자에게 특정 정보를 출력하기 위한 환경을 포함할 수 있다. 예를 들어, 사용자 입출력부(250)는 터치 패드, 터치 스크린, 화상 키보드 또는 포인팅 장치와 같은 어댑터를 포함하는 입력장치 및 모니터 또는 터치스크린과 같은 어댑터를 포함하는 출력장치를 포함할 수 있다. 일 실시예에서, 사용자 입출력부(250)는 원격 접속을 통해 접속되는 컴퓨팅 장치에 해당할 수 있고, 그러한 경우, 악성코드 탐지 장치(130)는 독립적인 서버로서 수행될 수 있다.The user input/output unit 250 may include an environment for receiving user input and an environment for outputting specific information to the user. For example, the user input/output unit 250 may include an input device including an adapter such as a touch pad, a touch screen, an on-screen keyboard, or a pointing device, and an output device including an adapter such as a monitor or touch screen. In one embodiment, the user input/output unit 250 may correspond to a computing device connected through remote access, and in such a case, the malicious
네트워크 입출력부(270)은 네트워크를 통해 외부 장치 또는 시스템과 연결하기 위한 환경을 포함하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다.The network input/
도 3은 도 1의 악성코드 탐지 장치의 기능적 구성을 설명하는 도면이다.FIG. 3 is a diagram explaining the functional configuration of the malicious code detection device of FIG. 1 .
도 3을 참조하면, 악성코드 탐지 장치(130)는 탐지대상객체 전처리부(310), 이상탐지 처리부(330), 악성유무 결정부(350), 악성코드 탐지부(370) 및 제어부(390)를 포함할 수 있다.Referring to FIG. 3, the malicious
탐지대상객체 전처리부(310)는 탐지대상객체를 입력받고 탐지대상객체의 전처리를 통해 메타데이터 및 페이로드 데이터로 분류할 수 있다. 여기에서, 탐지대상객체는 파일, 네트워크 패킷, 프로그램 등을 포함할 수 있다. 탐지대상객체 전처리부(310)는 입력된 탐지대상객체를 분석하여 악성코드 탐지에 필요한 정보들을 수집할 수 있다. 탐지대상객체 전처리부(310)는 탐지대상객체의 메타데이터와 페이로드 데이터를 각각 분리하여 수집할 수 있다. 여기에서, 메타데이터는 해당 탐지대상객체에 관한 프로파일 정보에 해당할 수 있으며, 파일 유형, 이름, 용량, 생성 및 수정 날짜 등의 정적 정보를 포함할 수 있다. 페이로드 데이터는 해당 탐지대상객체의 컨텐츠 정보에 해당할 수 있다. 예를 들어, 탐지대상객체가 네트워크 패킷에 해당하는 경우 페이로드 데이터는 패킷의 페이로드(payload)에 해당할 수 있다.The detection target
일 실시예에서, 탐지대상객체 전처리부(310)는 파일시스템에 있는 파일관리 데이터를 메타데이터로 결정하고 파일시스템에 있는 파일내용을 페이로드 데이터로 결정할 수 있다. 탐지대상객체 전처리부(310)는 탐지대상객체를 파일로 결정할 수 있고, 파일은 파일시스템을 통해 관리될 수 있다. 파일관리 데이터는 파일시스템이 특정 파일을 관리하는 과정에서 생성하는 파일 히스토리 정보를 포함할 수 있고, 파일내용은 각 파일의 주요 컨텐츠 내용을 포함할 수 있다.In one embodiment, the detection target
이상탐지 처리부(330)는 메타데이터의 이상유무를 검출하고 메타데이터의 이상이 존재하지 않는 경우에는 페이로드 데이터에 관한 행위 시뮬레이션을 수행하여 탐지대상객체의 이상을 탐지할 수 있다. 이상탐지 처리부(330)는 메타데이터를 기초로 이상유무를 1차적으로 검출하고, 메타데이터 상의 이상이 검출되지 않는 경우 페이로드 데이터에 관한 이상유무를 2차적으로 검출할 수 있다. 이때, 페이로드 데이터에 대한 이상 검출은 행위 시뮬레이션을 통해 수행될 수 있다. 행위 시뮬레이션은 대응되는 파일을 실행시킨 후 페이로드 데이터에 대한 처리 과정을 모니터링하여 비정상 행위를 검출하는 과정으로 실행될 수 있다.The anomaly
일 실시예에서, 이상탐지 처리부(330)는 악성코드 메타데이터 데이터베이스에서 메타데이터와 가장 유사한 악성코드 메타데이터를 결정하고, 메타데이터 및 악성코드 메타데이터 간의 유클리디언 거리(Euclidean Distance)를 기초로 메타데이터의 이상을 결정할 수 있다. 즉, 이상탐지 처리부(330)는 메타데이터의 이상 검출을 위해 기 구축된 악성코드 메타데이터와의 유사도를 기초로 비교 분석을 수행할 수 있다. 이때, 메타데이터 간의 유사도는 유클리디언 거리를 기초로 산출될 수 있으며, 기 구축된 악성코드 메타데이터들과의 거리가 설정된 임계값 이하인 경우 이상탐지 처리부(330)는 해당 메타데이터의 이상을 결정할 수 있다.In one embodiment, the anomaly
일 실시예에서, 이상탐지 처리부(330)는 페이로드 데이터를 독립적인 실행 공간을 가지는 행위 시뮬레이션 엔진을 통해 행위 시뮬레이션을 수행하고, 실행 공간 내에서 발생되는 행위를 분석하여 기 탐지대상객체의 이상을 탐지할 수 있다. 즉, 행위 시뮬레이션 엔진은 행위 시뮬레이션을 담당하는 고유 엔진에 해당할 수 있으며, 행위 시뮬레이션이 수행되고 외부와 차단된 가상의 실행 공간을 생성할 수 있다. 이상탐지 처리부(330)는 페이로드 데이터를 복제한 후 행위 시뮬레이션 엔진을 통해 가상의 공간에서 실행 과정을 모니터링 할 수 있다. 이상탐지 처리부(330)는 행위 시뮬레이션 과정에서 해당 페이로드 데이터와 연관된 행위들을 수집하고 정상 행위의 범위를 벗어난 이상 행위를 검출할 수 있다. 페이로드 데이터와 연관된 이상 행위는 시스템 파일의 실행, 수정 및 삭제 등을 포함할 수 있다.In one embodiment, the anomaly
악성유무 결정부(350)는 페이로드 데이터를 단위요소로 분해하여 일련의 시퀀스 스트림을 생성하고 분해의 과정에서 시퀀스 벡터를 생성하며 시퀀스 벡터를 기초로 단위 벡터열을 생성하고 단위 벡터열을 학습하여 구축된 악성코드 탐지 모델을 통해 페이로드 데이터에서 악성코드의 유무를 결정할 수 있다. 악성유무 결정부(350)의 구체적인 구성 및 동작은 도 4 및 6에서 보다 자세히 설명한다.The
악성코드 탐지부(370)는 탐지대상객체의 이상 유무 및 악성코드의 유무를 이용하여 악성코드를 탐지할 수 있다. 탐지대상객체에 대한 이상 유무와 악성코드의 유무에 따른 검출 결과를 기초로 악성코드를 탐지할 수 있다. 즉, 악성코드 탐지부(370)는 기존의 분류 모델을 통한 탐지와 함께 별도의 이상탐지 모델을 결합하여 새로운 유형의 의심파일에 대해서는 효과적인 탐지를 수행할 수 있다.The malicious
제어부(390)는 악성코드 탐지 장치(130)의 전체적인 동작을 제어하고, 탐지대상객체 전처리부(310), 이상탐지 처리부(330), 악성유무 결정부(350) 및 악성코드 탐지부(370) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.The
도 4는 도 3의 악성유무 결정부의 기능적 구성을 설명하는 도면이다.FIG. 4 is a diagram explaining the functional configuration of the malignancy determination unit of FIG. 3 .
도 4를 참조하면, 악성유무 결정부(350)는 시퀀스 스트림 생성모듈(410), 시퀀스 벡터 생성모듈(430), 단위 벡터열 생성모듈(450) 및 악성코드 탐지 모델 구축모듈(470)을 포함할 수 있다.4, the
시퀀스 스트림 생성모듈(410)은 페이로드 데이터를 단위요소로 분해하여 일련의 시퀀스 스트림을 생성할 수 있다. 예를 들어, 탐지대상객체가 패킷인 경우 다양한 크기를 갖는 패킷의 페이로드 데이터를 특정 크기로 설정된 단위요소로 분해할 수 있으며, 페이로드 분할에 따라 일련의 스트림을 형성할 수 있다. 즉, 시퀀스 스트림은 네트워크를 통해 전송되는 패킷의 순서에 따라 페이로드 데이터가 동일한 크기의 단위요소들로 분할되어 형성되는 데이터 스트림에 해당할 수 있다.The sequence
한편, 시퀀스 스트림 생성모듈(410)에 의해 생성된 시퀀스 스트림은 다음 단계의 동작을 위해 임시 버퍼에 저장될 수 있으며, 필요에 따라 단위 기간마다 데이터베이스(150)에 독립적으로 저장될 수 있다.Meanwhile, the sequence stream generated by the sequence
일 실시예에서, 시퀀스 스트림 생성모듈(410)은 패킷의 길이가 특정 기준을 초과하지 않는 경우에는 단위요소를 바이트(byte)로 설정할 수 있다. 통상적으로 패킷의 길이는 제한될 수 있고, 패킷의 길이가 기 설정된 특정 기준을 초과하지 않는 경우라면 시퀀스 스트림 생성모듈(410)은 단위요소를 바이트로 설정할 수 있다. 예를 들어, 패킷의 페이로드 데이터는 16진수 바이트 시퀀스로 구성될 수 있고, 시퀀스 스트림 생성모듈(410)은 페이로드 데이터를 바이트 별로 분할하여 시퀀스 스트림을 생성할 수 있다.In one embodiment, the sequence
시퀀스 벡터 생성모듈(430)은 분해의 과정에서 단위요소를 단위요소 값으로 변환하여 시퀀스 스트림에 대응되는 시퀀스 벡터를 생성할 수 있다. 여기에서, 시퀀스 벡터는 시퀀스 스트림에 대응되어 형성되는 특징 정보에 해당할 수 있으며, 페이로드 데이터 별로 생성될 수 있다. 예를 들어, 시퀀스 벡터 생성모듈(430)은 분해된 16진수의 단위요소에 대해 그에 대응되는 10진수의 정수값으로 변환함으로써 시퀀스 벡터의 각 성분값을 결정할 수 있다.The sequence
일 실시예에서, 시퀀스 벡터 생성모듈(430)은 시퀀스 벡터의 크기를 패킷의 최대 길이로 결정할 수 있다. 예를 들어, 페이로드 데이터에 대응되어 생성되는 시퀀스 벡터는 패킷의 최대 길이가 1600 바이트(byte)인 점이 반영되어 1600차원의 크기로 형성될 수 있다. 이때, 시퀀스 벡터 생성모듈(430)은 페이로드 데이터의 길이에 상관없이 고정된 크기의 시퀀스 벡터를 생성할 수 있다. 만약 페이로드 데이터의 길이가 상대적으로 짧아 시퀀스 벡터의 일부 성분값을 결정할 수 없는 경우 시퀀스 벡터 생성모듈(430)은 해당 페이로드 데이터를 다른 페이로드 데이터와 결합한 후 시퀀스 벡터를 생성할 수도 있다.In one embodiment, the sequence
일 실시예에서, 시퀀스 벡터 생성모듈(430)은 단위요소를 0 부터 255 사이의 바이트 값에 대응되는 단위요소 값으로 변환할 수 있다. 예를 들어, 시퀀스 스트림이 16진수 바이트 시퀀스에 해당하는 경우 시퀀스 벡터 생성모듈(430)은 각 단위요소에 대해 0부터 255 사이의 바이트 값으로 변환하여 시퀀스 벡터를 생성할 수 있다. 만약 복수의 페이로드 데이터를 서로 연결하여 시퀀스 벡터를 생성하는 경우 시퀀스 벡터 생성모듈(430)은 단위요소의 크기를 확장하여 복수의 단위요소들을 기초로 0부터 255 사이의 바이트 값으로 변환하는 동작을 수행할 수 있다. 이때, 단위요소의 크기는 결합된 페이로드 데이터의 길이와 시퀀스 벡터의 크기를 기준으로 결정될 수 있다.In one embodiment, the sequence
단위 벡터열 생성모듈(450)은 시퀀스 벡터를 기초로 복수의 단위 벡터들로 구성된 단위 벡터열을 생성할 수 있다. 여기에서, 단위 벡터는 단위요소값에 대응되는 특징 벡터에 해당할 수 있고, 단위 벡터열은 복수의 단위 벡터들의 집합에 해당할 수 있으며, 단위 벡터들을 순서대로 연결하여 생성되는 데이터열에 해당할 수 있다.The unit vector
일 실시예에서, 단위 벡터열 생성모듈(450)은 패킷의 길이에 비례하도록 단위 벡터의 크기를 결정할 수 있다. 단위 벡터의 크기는 임베딩 알고리즘의 파라미터를 조정하여 다양한 값으로 설정될 수 있다. 단위 벡터열 생성모듈(450)은 패킷의 길이를 고려하여 단위 벡터의 크기를 결정할 수 있다. 예를 들어, 네트워크를 통해 전송되는 패킷의 평균 길이에 따라 단위 벡터의 크기를 조정함으로써 학습 과정에서 패킷의 주요 특징이 잘 반영되도록 할 수 있다. 또한, 단위 벡터열 생성모듈(450)은 네트워크를 통해 전송되는 패킷 길이의 최대값 또는 최소값을 기초로 단위 벡터의 크기를 동적으로 결정할 수도 있다.In one embodiment, the unit vector
일 실시예에서, 단위 벡터열 생성모듈(450)은 시퀀스 벡터의 단위요소 값들의 편차에 따라 단위 벡터의 크기를 결정할 수 있다. 단위 벡터열 생성모듈(450)은 시퀀스 벡터의 크기에 대응되는 개수들로 단위요소 값들을 구성할 수 있다. 단위 벡터열 생성모듈(450)은 단위요소 값들 간의 편차에 따라 단위 벡터의 크기를 결정할 수 있다. 이를 통해, 단위 벡터열 생성모듈(450)은 단위요소의 특징이 단위 벡터에 잘 반영되도록 할 수 있다. 예를 들어, 단위 벡터열 생성모듈(450)은 단위요소 값들의 최대 편차 또는 단위요소 값들 간의 표준편차에 따라 단위 벡터의 크기를 결정할 수 있다.In one embodiment, the unit vector
일 실시예에서, 단위 벡터열 생성모듈(450)은 시퀀스 벡터의 각 단위요소 값에 대응되는 임베딩 벡터(embedding vector)를 생성하여 복수의 단위 벡터들을 생성할 수 있다. 단위 벡터열 생성모듈(450)은 시퀀스 벡터를 사용하여 각 단위요소 값을 임베딩(embedding)하는 동작을 수행할 수 있다. 즉, 단위 벡터열 생성모듈(450)은 시퀀스 벡터의 각 단위요소 값을 단어(word)로 간주하여 소정의 임베딩 알고리즘을 적용한 결과로서 임베딩 벡터를 생성할 수 있다. 따라서, 단위 벡터는 각 단위요소 값에 대한 임베딩 벡터에 해당할 수 있고, 단위 벡터열은 단위 벡터들의 집합에 해당할 수 있다.In one embodiment, the unit vector
악성코드 탐지 모델 구축모듈(470)은 단위 벡터열을 학습하여 악성코드 탐지 모델을 구축할 수 있다. 단위 벡터열의 크기는 시퀀스 벡터와 단위 벡터 각각의 크기에 따라 결정될 수 있다. 예를 들어, 시퀀스 벡터의 크기가 x이고 단위 벡터의 크기가 y인 경우 단위 벡터열의 크기는 x * y로 결정될 수 있다. 악성코드 탐지 모델은 악성코드 탐지를 위한 학습 모델로서 특정 패킷에 대응되는 단위 벡터열을 입력으로 수신하여 악성 유무에 관한 판단 결과를 출력으로 제공할 수 있다. 이때, 악성 유무에 관한 판단 결과는 정상 또는 악성에 관한 확률 정보를 포함할 수 있다.The malicious code detection
일 실시예에서, 악성코드 탐지 모델 구축모듈(470)은 게이트 CNN(Gated Convolutional Neural Network)을 통해 악성코드 탐지 모델을 구축할 수 있다. 여기에서, 게이트 CNN(Gated CNN)은 복수의 컨볼루션 레이어들(convolutional layers)을 통합하기 위한 게이트(Gate) 구조를 채택하나 CNN에 해당할 수 있다. 게이트는 다중 스케일 피처 레이어들(multi-scale feature layers)에 의해 구현될 수 있고, 여러 필터를 통해 유용한 정보를 추출하고 하나 이상의 컨벌루션 연산을 통해 노이즈를 차단할 수 있다. 따라서, 게이트 CNN을 통해 구축된 악성코드 탐지 모델은 보다 정확도 높게 악성코드를 탐지할 수 있다.In one embodiment, the malicious code detection
일 실시예에서, 악성코드 탐지 모델 구축모듈(470)은 단위 벡터열을 가중 1차원 컨볼루션 레이어 및 비-가중 1차원 컨볼루션 레이어에 각각 적용한 결과를 조합하여 학습을 수행할 수 있다. 악성코드 탐지 모델 구축모듈(470)은 동일한 1차원 CNN 모델(1D CNN)을 독립적으로 적용한 결과를 조합하여 악성코드 탐지를 위한 학습을 수행할 수 있다. 악성코드 탐지 모델 구축모듈(470)은 단위 벡터열을 각각의 1차원 컨볼루션 레이어에 입력할 수 있으며, 어느 하나의 1차원 컨볼루션 레이어를 통과한 결과에 대해 가중 연산을 적용할 수 있다.In an embodiment, the malicious code detection
예를 들어, 가중 1차원 컨볼루션 레이어는 1차원 컨볼루션 레이어와 활성 함수(activation function)의 결합으로 구성될 수 있다. 이때, 활성 함수는 시그모이드(sigmoid) 함수를 포함할 수 있다. 또한, 악성코드 탐지 모델 구축모듈(470)은 가중 1차원 컨볼루션 레이어 및 비-가중 1차원 컨볼루션 레이어에 적용한 결과를 조합하기 위하여 곱연산을 수행할 수 있다. 보다 구체적으로, 악성코드 탐지 모델 구축모듈(470)은 아다마르 곱(Hadamard product or element wise product) 연산을 수행하여 각각의 1D 컨볼루션 레이어의 결과들을 조합할 수 있다.For example, a weighted 1D convolution layer may be composed of a combination of a 1D convolution layer and an activation function. In this case, the activation function may include a sigmoid function. In addition, the malicious code detection
일 실시예에서, 악성코드 탐지 모델 구축모듈(470)은 조합의 결과에 관한 맥스 풀링(max pooling)을 수행한 다음 완전 연결 레이어(fully connected layer)를 적용하여 학습을 완성할 수 있다. 악성코드 탐지 모델 구축모듈(470)은 맥스 풀링 레이어를 통과시켜 데이터 크기를 줄일 수 있다. 또한, 악성코드 탐지 모델 구축모듈(470)은 완전 연결 레이어를 통과시켜 최종 결과를 학습시킬 수 있다. 한편, 악성코드 탐지 모델 구축모듈(470)은 필요에 따라 완전 연결 레이어에 활성 함수를 결합하여 출력값을 정규화 할 수 있다. 이때, 활성 함수는 소프트맥스(softmax) 함수를 포함할 수 있다.In one embodiment, the malicious code detection
도 5는 본 발명에 따른 하이브리드 인공지능 기반의 악성코드 탐지 과정을 설명하는 순서도이다.5 is a flowchart illustrating a process of detecting malicious code based on hybrid artificial intelligence according to the present invention.
도 5를 참조하면, 악성코드 탐지 장치(130)는 탐지대상객체 전처리부(310)를 통해 탐지대상객체를 입력받고 탐지대상객체의 전처리를 통해 메타데이터 및 페이로드 데이터로 분류할 수 있다(단계 S510). 악성코드 탐지 장치(130)는 이상탐지 처리부(330)를 통해 메타데이터의 이상유무를 검출하고 메타데이터의 이상이 존재하지 않는 경우에는 페이로드 데이터에 관한 행위 시뮬레이션을 수행하여 탐지대상객체의 이상을 탐지할 수 있다(단계 S530).Referring to FIG. 5 , the malicious
또한, 악성코드 탐지 장치(130)는 악성유무 결정부(350)를 통해 페이로드 데이터를 단위요소로 분해하여 일련의 시퀀스 스트림을 생성하고 분해의 과정에서 시퀀스 벡터를 생성하며 시퀀스 벡터를 기초로 단위 벡터열을 생성하고 단위 벡터열을 학습하여 구축된 악성코드 탐지 모델을 통해 페이로드 데이터에서 악성코드의 유무를 결정할 수 있다(단계 S550). 악성코드 탐지 장치(130)는 악성코드 탐지부(370)를 통해 탐지대상객체의 이상 유무 및 악성코드의 유무를 이용하여 악성코드를 탐지할 수 있다(단계 S570).In addition, the malicious
도 6은 본 발명에 따른 페이로드 데이터에서 악성코드의 유무를 결정하는 과정을 설명하는 순서도이다.6 is a flowchart illustrating a process of determining the presence or absence of malicious code in payload data according to the present invention.
도 6을 참조하면, 악성코드 탐지 장치(130)는 악성코드를 탐지하는 악성유무 결정부(350)를 포함하여 구현될 수 있다. 또한, 악성유무 결정부(350)는 시퀀스 스트림 생성모듈(410)을 통해 페이로드 데이터를 단위요소로 분해하여 일련의 시퀀스 스트림을 생성할 수 있다(단계 S610).Referring to FIG. 6 , the malicious
또한, 악성유무 결정부(350)는 시퀀스 벡터 생성모듈(430)을 통해 분해의 과정에서 시퀀스 벡터를 생성할 수 있다(단계 S630). 악성유무 결정부(350)는 단위 벡터열 생성모듈(450)을 통해 시퀀스 벡터를 기초로 단위 벡터열을 생성할 수 있다(단계 S650). 악성유무 결정부(350)는 악성코드 탐지 모델 구축모듈(470)을 통해 단위 벡터열을 학습하여 구축된 악성코드 탐지 모델을 구축할 수 있다(단계 S670).In addition, the
도 7은 본 발명에 따른 악성코드 탐지 모델을 위한 학습 데이터를 생성하는 과정을 설명하는 도면이다.7 is a diagram explaining a process of generating learning data for a malicious code detection model according to the present invention.
도 7을 참조하면, 악성코드 탐지 장치(130)는 악성유무 결정부(350)를 통해 페이로드 데이터의 분해 과정에서 단위요소를 단위요소 값으로 변환하여 시퀀스 스트림(710)에 대응되는 시퀀스 벡터(730)를 생성할 수 있다. 즉, 이 경우 탐지대상객체는 네트워크의 패킷에 해당할 수 있다.Referring to FIG. 7 , the malicious
악성코드 탐지 장치(130)는 별도의 특성 공학(feature engineering)을 적용하지 않고, 페이로드 데이터가 가진 원래의 데이터 시퀀스를 이용하여 각 패킷의 페이로드 데이터에 대응되는 시퀀스 벡터(730)를 생성할 수 있다. 이때, 시퀀스 벡터(730)의 크기는 패킷의 최대 길이가 1600 인 것을 고려하여 1600차원으로 설정될 수 있다. 즉, 악성코드 탐지 장치(130)는 네트워크를 통해 전송되는 패킷 별로 1600차원의 시퀀스 벡터(730)를 생성하여 학습을 위한 기초 자료로 사용할 수 있다.The malicious
또한, 악성코드 탐지 장치(130)는 악성유무 결정부(350)를 시퀀스 벡터(730)를 기초로 복수의 단위 벡터들로 구성된 단위 벡터열(750)을 생성할 수 있다. 악성코드 탐지 장치(130)는 시퀀스 벡터의 각 성분 값을 단어로 간주하여 임베딩 알고리즘을 통해 각 성분에 대응되는 임베딩 벡터를 단위 벡터로서 생성할 수 있다. 즉, 시퀀스 벡터(730)에 대응되어 생성되는 복수의 단위벡터들이 모여 단위 벡터열(750)을 구성할 수 있으며, 이후 단위 벡터열(750)은 악성코드 탐지 모델을 위한 학습 데이터로서 사용될 수 있다.In addition, the malicious
한편, 단위 벡터열(750)을 구성하는 단위 벡터의 크기는 패킷의 길이에 비례하여 설정될 수 있다. 또한, 단위 벡터의 크기는 시퀀스 벡터(730)의 단위요소 값들의 편차에 따라 결정될 수도 있다. 도 7에서, 단위 벡터열(750)은 1600 크기의 시퀀스 벡터(730)에 대응되어 4차원의 단위 벡터들로 구성된 1600 * 4 크기의 벡터로 변환될 수 있다.Meanwhile, the size of the unit vectors constituting the
악성코드 탐지 장치(130)는 악성유무 결정부(350)를 통해 단위 벡터열을 학습 데이터로 사용하여 악성코드 탐지 모델을 구축할 수 있다. 이때, 악성코드 탐지 장치(130)는 단위 벡터열을 게이트 CNN 구조를 통해 학습시킬 수 있다. 즉, 악성코드 탐지 장치(130)는 악성파일의 바이트 시퀀스를 학습시키는 Malconv 모델을 보안관제 데이터에 적용하여 보안관제를 위한 악성코드 탐지 모델을 구축할 수 있다.The malicious
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to preferred embodiments of the present invention, those skilled in the art will variously modify and change the present invention within the scope not departing from the spirit and scope of the present invention described in the claims below. You will understand that it can be done.
100: 악성코드 탐지 시스템
110: 사용자 단말 130: 악성코드 탐지 장치
150: 데이터베이스
210: 프로세서 230: 메모리
250: 사용자 입출력부 270: 네트워크 입출력부
310: 탐지대상객체 전처리부 330: 이상탐지 처리부
350: 악성유무 결정부 370: 악성코드 탐지부
390: 제어부
410: 시퀀스 스트림 생성모듈 430: 시퀀스 벡터 생성모듈
450: 단위 벡터열 생성모듈 470: 악성코드 탐지 모델 구축모듈
710: 시퀀스 스트림 730: 시퀀스 벡터
750: 단위 벡터열100: malware detection system
110: user terminal 130: malicious code detection device
150: database
210: processor 230: memory
250: user input/output unit 270: network input/output unit
310: detection target object pre-processing unit 330: anomaly detection processing unit
350: Malicious presence determination unit 370: Malicious code detection unit
390: control unit
410: sequence stream generation module 430: sequence vector generation module
450: Unit vector column generation module 470: Malicious code detection model construction module
710: sequence stream 730: sequence vector
750: unit vector column
Claims (15)
상기 메타데이터의 이상유무를 검출하고 상기 메타데이터의 이상이 존재하지 않는 경우에는 상기 페이로드 데이터에 관한 행위 시뮬레이션을 수행하여 상기 탐지대상객체의 이상을 탐지하는 이상탐지 처리부;
상기 페이로드 데이터를 단위요소로 분해하여 일련의 시퀀스 스트림을 생성하고 상기 분해의 과정에서 시퀀스 벡터를 생성하며 상기 시퀀스 벡터를 기초로 단위 벡터열을 생성하고 상기 단위 벡터열을 학습하여 구축된 악성코드 탐지 모델을 통해 상기 페이로드 데이터에서 악성코드의 유무를 결정하는 악성유무 결정부; 및
상기 탐지대상객체의 이상 유무 및 상기 악성코드의 유무를 이용하여 악성코드를 탐지하는 악성코드 탐지부를 포함하되,
싱기 악성유무 결정부는 상기 단위요소를 0 부터 255 사이의 바이트 값에 대응되는 단위요소 값으로 변환하고, 상기 시퀀스 벡터의 단위요소 값들의 편차에 따라 상기 단위 벡터의 크기를 결정하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 장치.
a detection target object pre-processing unit that receives a detection target object and classifies the detection target object into metadata and payload data through preprocessing of the detection target object;
an anomaly detection processing unit which detects whether or not there is an anomaly in the metadata and, when there is no anomaly in the metadata, performs a behavior simulation on the payload data to detect anomaly in the object to be detected;
Malicious code constructed by decomposing the payload data into unit elements to generate a series of sequence streams, generating a sequence vector in the process of decomposition, generating a unit vector sequence based on the sequence vector, and learning the unit vector sequence. a malicious presence/absence determination unit determining whether or not there is malicious code in the payload data through a detection model; and
A malicious code detection unit for detecting malicious code by using whether the object to be detected is abnormal and whether the malicious code is present,
The singi malignancy determination unit converts the unit element into a unit element value corresponding to a byte value between 0 and 255, and determines the size of the unit vector according to the deviation of the unit element values of the sequence vector Hybrid, characterized in that Artificial intelligence-based malware detection device.
파일시스템에 있는 파일관리 데이터를 상기 메타데이터로 결정하고 상기 파일시스템에 있는 파일내용을 상기 페이로드 데이터로 결정하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 장치.
The method of claim 1, wherein the detection target object pre-processing unit
A hybrid artificial intelligence-based malware detection device, characterized in that the file management data in the file system is determined as the metadata and the contents of files in the file system are determined as the payload data.
악성코드 메타데이터 데이터베이스에서 상기 메타데이터와 가장 유사한 악성코드 메타데이터를 결정하고, 상기 메타데이터 및 상기 악성코드 메타데이터 간의 유클리디언 거리(Euclidean Distance)를 기초로 상기 메타데이터의 이상을 결정하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 장치.
The method of claim 1, wherein the anomaly detection processing unit
Determining malware metadata that is most similar to the metadata in a malware metadata database, and determining an anomaly of the metadata based on a Euclidean distance between the metadata and the malware metadata. Hybrid artificial intelligence-based malware detection device.
상기 페이로드 데이터를 독립적인 실행 공간을 가지는 행위 시뮬레이션 엔진을 통해 상기 행위 시뮬레이션을 수행하고, 상기 실행 공간 내에서 발생되는 행위를 분석하여 상기 탐지대상객체의 이상을 탐지하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 장치.
The method of claim 3, wherein the anomaly detection processing unit
Hybrid artificial intelligence characterized in that the behavior simulation is performed on the payload data through a behavior simulation engine having an independent execution space, and an abnormality of the detection target object is detected by analyzing behaviors occurring in the execution space. based malware detection device.
패킷의 길이가 특정 기준을 초과하지 않는 경우에는 상기 단위요소를 바이트(byte)로 설정하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 장치.
The method of claim 1, wherein the malignancy determining unit
A hybrid artificial intelligence-based malware detection device characterized in that if the length of the packet does not exceed a specific criterion, the unit element is set to a byte.
상기 시퀀스 벡터의 크기를 패킷의 최대 길이로 결정하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 장치.
The method of claim 1, wherein the malignancy determining unit
A hybrid artificial intelligence-based malware detection device, characterized in that the size of the sequence vector is determined as the maximum length of the packet.
패킷의 길이에 비례하도록 상기 단위 벡터의 크기를 결정하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 장치.
The method of claim 1, wherein the malignancy determining unit
Hybrid artificial intelligence-based malware detection device, characterized in that for determining the size of the unit vector in proportion to the length of the packet.
상기 시퀀스 벡터의 각 단위요소 값에 대응되는 임베딩 벡터(embedding vector)를 생성하여 복수의 단위 벡터들을 상기 단위 벡터열로서 생성하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 장치.
The method of claim 1, wherein the malignancy determining unit
Hybrid artificial intelligence-based malicious code detection device, characterized in that by generating an embedding vector corresponding to each unit element value of the sequence vector to generate a plurality of unit vectors as the unit vector sequence.
게이트 CNN(Gated Convolutional Neural Network)을 통해 상기 악성코드 탐지 모델을 구축하는 하이브리드 인공지능 기반의 악성코드 탐지 장치.
The method of claim 1, wherein the malignancy determining unit
A hybrid artificial intelligence-based malware detection device that builds the malware detection model through a Gated Convolutional Neural Network (CNN).
상기 탐지대상객체 전처리부를 통해, 탐지대상객체를 입력받고 상기 탐지대상객체의 전처리를 통해 메타데이터 및 페이로드 데이터로 분류하는 단계;
상기 이상탐지 처리부를 통해, 상기 메타데이터의 이상유무를 검출하고 상기 메타데이터의 이상이 존재하지 않는 경우에는 상기 페이로드 데이터에 관한 행위 시뮬레이션을 수행하여 상기 탐지대상객체의 이상을 탐지하는 단계;
상기 악성유무 결정부를 통해, 상기 페이로드 데이터를 단위요소로 분해하여 일련의 시퀀스 스트림을 생성하고 상기 분해의 과정에서 시퀀스 벡터를 생성하며 상기 시퀀스 벡터를 기초로 단위 벡터열을 생성하고 상기 단위 벡터열을 학습하여 구축된 악성코드 탐지 모델을 통해 상기 페이로드 데이터에서 악성코드의 유무를 결정하는 단계; 및
상기 악성코드 탐지부를 통해, 상기 탐지대상객체의 이상 유무 및 상기 악성코드의 유무를 이용하여 악성코드를 탐지하는 단계를 포함하되,
상기 악성코드의 유무를 결정하는 단계는 상기 단위요소를 0 부터 255 사이의 바이트 값에 대응되는 단위요소 값으로 변환하는 단계를 포함하고, 상기 시퀀스 벡터의 단위요소 값들의 편차에 따라 상기 단위 벡터의 크기를 결정하는 단계를 포함하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 방법.
In the hybrid artificial intelligence-based malware detection method performed in a hybrid artificial intelligence-based malware detection device including a detection target object preprocessing unit, an anomaly detection processing unit, a malicious existence determination unit and a malicious code detection unit,
receiving a detection target object through the detection target object preprocessing unit and classifying the detection target object into metadata and payload data through preprocessing of the detection target object;
detecting anomalies in the object to be detected by detecting anomalies in the meta data through the anomaly detection processing unit and performing behavior simulation on the payload data when there is no anomalies in the metadata;
Through the maliciousness determination unit, the payload data is decomposed into unit elements to generate a series of sequence streams, a sequence vector is generated in the process of the decomposition, and a unit vector sequence is generated based on the sequence vector, and the unit vector sequence is generated. determining whether or not there is malicious code in the payload data through a malicious code detection model built by learning; and
Detecting a malicious code by using the presence or absence of an abnormality in the object to be detected and the presence or absence of the malicious code through the malicious code detection unit;
The step of determining the presence or absence of malicious code includes converting the unit element into a unit element value corresponding to a byte value between 0 and 255, A hybrid artificial intelligence-based malware detection method comprising the step of determining the size.
상기 메타데이터 및 페이로드 데이터로 분류하는 단계는
파일시스템에 있는 파일관리 데이터를 상기 메타데이터로 결정하고 상기 파일시스템에 있는 파일내용을 상기 페이로드 데이터로 결정하는 단계를 포함하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 방법.
According to claim 12,
The step of classifying into the metadata and payload data
A hybrid artificial intelligence-based malicious code detection method comprising determining file management data in a file system as the metadata and determining file contents in the file system as the payload data.
상기 탐지대상객체의 이상을 탐지하는 단계는
악성코드 메타데이터 데이터베이스에서 상기 메타데이터와 가장 유사한 악성코드 메타데이터를 결정하고, 상기 메타데이터 및 상기 악성코드 메타데이터 간의 유클리디언 거리(Euclidean Distance)를 기초로 상기 메타데이터의 이상을 결정하는 단계를 포함하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 방법.
According to claim 12,
The step of detecting an anomaly of the detection target object is
Determining malicious code metadata most similar to the metadata in a malicious code metadata database, and determining abnormality of the metadata based on a Euclidean distance between the metadata and the malicious code metadata Hybrid artificial intelligence-based malware detection method comprising a.
상기 탐지대상객체의 이상을 탐지하는 단계는
상기 페이로드 데이터를 독립적인 실행 공간을 가지는 행위 시뮬레이션 엔진을 통해 상기 행위 시뮬레이션을 수행하고, 상기 실행 공간 내에서 발생되는 행위를 분석하여 상기 탐지대상객체의 이상을 탐지하는 단계를 포함하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 방법.
According to claim 14,
The step of detecting an anomaly of the detection target object is
Performing the behavior simulation on the payload data through a behavior simulation engine having an independent execution space, and detecting abnormalities in the detection target object by analyzing behaviors occurring in the execution space. A hybrid artificial intelligence-based malware detection method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210002023A KR102472850B1 (en) | 2021-01-07 | 2021-01-07 | Malware detection device and method based on hybrid artificial intelligence |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210002023A KR102472850B1 (en) | 2021-01-07 | 2021-01-07 | Malware detection device and method based on hybrid artificial intelligence |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220099749A KR20220099749A (en) | 2022-07-14 |
KR102472850B1 true KR102472850B1 (en) | 2022-12-01 |
Family
ID=82407035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210002023A KR102472850B1 (en) | 2021-01-07 | 2021-01-07 | Malware detection device and method based on hybrid artificial intelligence |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102472850B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235727B (en) * | 2023-11-09 | 2024-02-23 | 中孚安全技术有限公司 | WebShell identification method and system based on large language model |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101880686B1 (en) * | 2018-02-28 | 2018-07-20 | 에스지에이솔루션즈 주식회사 | A malware code detecting system based on AI(Artificial Intelligence) deep learning |
KR102010468B1 (en) * | 2018-09-06 | 2019-08-14 | 주식회사 윈스 | Apparatus and method for verifying malicious code machine learning classification model |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101421136B1 (en) * | 2007-07-10 | 2014-07-21 | 더 리젠츠 오브 더 유니버시티 오브 미시건 | Method and apparatus for modeling computer program behavior for behavioral detection of malicious program |
KR100942798B1 (en) | 2007-11-29 | 2010-02-18 | 한국전자통신연구원 | Apparatus and method for detecting a virus code |
KR20180080450A (en) * | 2017-01-04 | 2018-07-12 | 한국전자통신연구원 | Apparatus for malware detection based on cloud and method using the same |
-
2021
- 2021-01-07 KR KR1020210002023A patent/KR102472850B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101880686B1 (en) * | 2018-02-28 | 2018-07-20 | 에스지에이솔루션즈 주식회사 | A malware code detecting system based on AI(Artificial Intelligence) deep learning |
KR102010468B1 (en) * | 2018-09-06 | 2019-08-14 | 주식회사 윈스 | Apparatus and method for verifying malicious code machine learning classification model |
Non-Patent Citations (1)
Title |
---|
Edward Raff et al., "Malware Detection by Eating a Whole EXE"(2017.10.)* |
Also Published As
Publication number | Publication date |
---|---|
KR20220099749A (en) | 2022-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ni et al. | Malware identification using visualization images and deep learning | |
Fang et al. | Evading anti-malware engines with deep reinforcement learning | |
JP7405596B2 (en) | System and method for object classification of computer systems | |
Jian et al. | A novel framework for image-based malware detection with a deep neural network | |
US11025649B1 (en) | Systems and methods for malware classification | |
JP7023259B2 (en) | Systems and methods for detecting malicious files | |
Gao et al. | Malware classification for the cloud via semi-supervised transfer learning | |
Rahman et al. | Adaptive intrusion detection based on boosting and naïve Bayesian classifier | |
Nahmias et al. | Deep feature transfer learning for trusted and automated malware signature generation in private cloud environments | |
Torabi et al. | Practical autoencoder based anomaly detection by using vector reconstruction error | |
US10785243B1 (en) | Identifying evidence of attacks by analyzing log text | |
Osada et al. | Network intrusion detection based on semi-supervised variational auto-encoder | |
Wang et al. | Representation learning-based network intrusion detection system by capturing explicit and implicit feature interactions | |
Yang et al. | An enhanced intrusion detection system for IoT networks based on deep learning and knowledge graph | |
Sewak et al. | Deep reinforcement learning for cybersecurity threat detection and protection: A review | |
Levshun et al. | A survey on artificial intelligence techniques for security event correlation: models, challenges, and opportunities | |
CN115883213B (en) | APT detection method and system based on continuous time dynamic heterogeneous graph neural network | |
Falor et al. | A deep learning approach for detection of SQL injection attacks using convolutional neural networks | |
Panagiotou et al. | Host-based intrusion detection using signature-based and ai-driven anomaly detection methods | |
Tang et al. | Bhmdc: A byte and hex n-gram based malware detection and classification method | |
KR102472850B1 (en) | Malware detection device and method based on hybrid artificial intelligence | |
Alatawi et al. | Anomaly Detection Framework in Fog-to-Things Communication for Industrial Internet of Things. | |
Ibor et al. | Novel adaptive cyberattack prediction model using an enhanced genetic algorithm and deep learning (AdacDeep) | |
Sarkar et al. | A better and fast cloud intrusion detection system using improved squirrel search algorithm and modified deep belief network | |
CN112580044A (en) | System and method for detecting malicious files |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |