KR102472850B1 - Malware detection device and method based on hybrid artificial intelligence - Google Patents

Malware detection device and method based on hybrid artificial intelligence Download PDF

Info

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
Application number
KR1020210002023A
Other languages
Korean (ko)
Other versions
KR20220099749A (en
Inventor
윤명근
김영재
손현기
Original Assignee
국민대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 국민대학교산학협력단 filed Critical 국민대학교산학협력단
Priority to KR1020210002023A priority Critical patent/KR102472850B1/en
Publication of KR20220099749A publication Critical patent/KR20220099749A/en
Application granted granted Critical
Publication of KR102472850B1 publication Critical patent/KR102472850B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning 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

하이브리드 인공지능 기반의 악성코드 탐지 장치 및 방법{MALWARE DETECTION DEVICE AND METHOD BASED ON HYBRID ARTIFICIAL INTELLIGENCE}Malware detection device and method based on hybrid artificial intelligence {MALWARE DETECTION DEVICE AND METHOD BASED ON HYBRID ARTIFICIAL INTELLIGENCE}

본 발명은 악성코드 탐지 기술에 관한 것으로, 보다 상세하게는 기존의 분류 모델의 탐지 과정에 이상 탐지 모델을 결합하여 새로운 유형의 의심 파일을 탐지할 수 있는 하이브리드 인공지능 기반의 악성코드 탐지 장치 및 방법에 관한 것이다.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.

한국공개특허 제10-2009-0055669(2009.06.03)호Korean Patent Publication No. 10-2009-0055669 (2009.06.03)

본 발명의 일 실시예는 기존의 분류 모델의 탐지 과정에 이상 탐지 모델을 결합하여 새로운 유형의 의심 파일을 탐지할 수 있는 하이브리드 인공지능 기반의 악성코드 탐지 장치 및 방법을 제공하고자 한다.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 code detection system 100 may include a user terminal 110 , a malicious code detection device 130 and a database 150 .

사용자 단말(110)은 네트워크를 이용하여 데이터 전송 및 다양한 서비스를 이용할 수 있는 컴퓨팅 장치에 해당할 수 있고, 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 사용자 단말(110)은 악성코드 탐지 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들은 악성코드 탐지 장치(130)와 동시에 연결될 수 있다.The user terminal 110 may correspond to a computing device capable of transmitting data and using various services using a network, and may be implemented as a smartphone, laptop, or computer, but is not necessarily limited thereto, and various devices such as a tablet PC. can also be implemented. The user terminal 110 may be connected to the malicious code detection device 130 through a network, and a plurality of user terminals 110 may be simultaneously connected to the malicious code detection device 130 .

악성코드 탐지 장치(130)는 사용자 단말(110) 간의 데이터 통신이나 외부 시스템과의 네트워크 이용 과정에서 모니터링을 수행하고 악성코드를 탐지하여 보안 조치를 시행할 수 있는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 악성코드 탐지 장치(130)는 사용자 단말(110)과 네트워크를 통해 연결될 수 있고 정보를 주고받을 수 있다. 일 실시예에서, 악성코드 탐지 장치(130)는 데이터베이스(150)와 연동하여 네트워크 모니터링 및 보안관제를 위해 필요한 데이터를 저장할 수 있다.Malicious code detection device 130 is implemented as a server corresponding to a computer or program capable of monitoring and detecting malicious code in the course of data communication between user terminals 110 or using a network with an external system and implementing security measures. It can be. The malicious code detection device 130 may be connected to the user terminal 110 through a network and exchange information. In one embodiment, the malicious code detection device 130 may store data necessary for network monitoring and security control in conjunction with the database 150 .

데이터베이스(150)는 악성코드 탐지 장치(130)의 동작 과정에서 필요한 다양한 정보들을 저장하는 저장장치에 해당할 수 있다. 데이터베이스(150)는 네트워크 모니터링 과정에서 수집된 패킷 정보를 저장할 수 있고, 악성코드 탐지를 위한 다양한 학습 데이터 및 학습 정보를 저장할 수 있으며, 반드시 이에 한정되지 않고, 악성코드 탐지 장치(130)가 하이브리드 인공지능 기반의 악성코드를 탐지하는 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.The database 150 may correspond to a storage device for storing various pieces of information necessary for the operation of the malicious code detection device 130 . The database 150 may store packet information collected in the network monitoring process, and may store various learning data and learning information for detecting malicious code, but is not limited thereto, and the malicious code detecting device 130 may use hybrid artificial intelligence. In the process of detecting intelligence-based malicious code, collected or processed information can be stored in various forms.

도 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 code detection device 130 may include a processor 210 , a memory 230 , a user input/output unit 250 and a network input/output unit 270 .

프로세서(210)는 악성코드 탐지 장치(130)가 동작하는 과정에서의 각 단계들을 처리하는 프로시저를 실행할 수 있고, 그 과정 전반에서 읽혀지거나 작성되는 메모리(230)를 관리할 수 있으며, 메모리(230)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄할 수 있다. 프로세서(210)는 악성코드 탐지 장치(130)의 동작 전반을 제어할 수 있고, 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(210)는 악성코드 탐지 장치(130)의 CPU(Central Processing Unit)로 구현될 수 있다.The processor 210 may execute a procedure for processing each step in the process of operating the malicious code detection device 130, manage the memory 230 read or written throughout the process, and memory ( Synchronization time between the volatile memory and the non-volatile memory in 230) can be scheduled. The processor 210 may control the overall operation of the malicious code detection device 130, and is electrically connected to the memory 230, the user input/output unit 250, and the network input/output unit 270 to control data flow between them. can do. The processor 210 may be implemented as a central processing unit (CPU) of the malicious code detection device 130 .

메모리(230)는 SSD(Solid State Drive) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 악성코드 탐지 장치(130)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.The memory 230 is implemented as a non-volatile memory such as a solid state drive (SSD) or a hard disk drive (HDD) and may include an auxiliary storage device used to store all data necessary for the malware detection device 130, , may include a main memory implemented as a volatile memory such as RAM (Random Access Memory).

사용자 입출력부(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 code detection device 130 may be implemented as an independent server.

네트워크 입출력부(270)은 네트워크를 통해 외부 장치 또는 시스템과 연결하기 위한 환경을 포함하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다.The network input/output unit 270 includes an environment for connecting to an external device or system through a network, and includes, for example, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), and a VAN ( An adapter for communication such as Value Added Network) may be included.

도 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 code detection device 130 includes a detection target object pre-processing unit 310, an anomaly detection processing unit 330, a malicious code detection unit 350, a malicious code detection unit 370, and a control unit 390. can include

탐지대상객체 전처리부(310)는 탐지대상객체를 입력받고 탐지대상객체의 전처리를 통해 메타데이터 및 페이로드 데이터로 분류할 수 있다. 여기에서, 탐지대상객체는 파일, 네트워크 패킷, 프로그램 등을 포함할 수 있다. 탐지대상객체 전처리부(310)는 입력된 탐지대상객체를 분석하여 악성코드 탐지에 필요한 정보들을 수집할 수 있다. 탐지대상객체 전처리부(310)는 탐지대상객체의 메타데이터와 페이로드 데이터를 각각 분리하여 수집할 수 있다. 여기에서, 메타데이터는 해당 탐지대상객체에 관한 프로파일 정보에 해당할 수 있으며, 파일 유형, 이름, 용량, 생성 및 수정 날짜 등의 정적 정보를 포함할 수 있다. 페이로드 데이터는 해당 탐지대상객체의 컨텐츠 정보에 해당할 수 있다. 예를 들어, 탐지대상객체가 네트워크 패킷에 해당하는 경우 페이로드 데이터는 패킷의 페이로드(payload)에 해당할 수 있다.The detection target object pre-processing unit 310 receives the detection target object and classifies it into metadata and payload data through preprocessing of the detection target object. Here, detection target objects may include files, network packets, programs, and the like. The detection target object pre-processing unit 310 may analyze the input detection target object and collect information required for malicious code detection. The detection target object pre-processing unit 310 may separately collect metadata and payload data of the detection target object. Here, the metadata may correspond to profile information about the object to be detected, and may include static information such as file type, name, capacity, date of creation and modification. Payload data may correspond to content information of a corresponding detection target object. For example, when the object to be detected corresponds to a network packet, the payload data may correspond to the payload of the packet.

일 실시예에서, 탐지대상객체 전처리부(310)는 파일시스템에 있는 파일관리 데이터를 메타데이터로 결정하고 파일시스템에 있는 파일내용을 페이로드 데이터로 결정할 수 있다. 탐지대상객체 전처리부(310)는 탐지대상객체를 파일로 결정할 수 있고, 파일은 파일시스템을 통해 관리될 수 있다. 파일관리 데이터는 파일시스템이 특정 파일을 관리하는 과정에서 생성하는 파일 히스토리 정보를 포함할 수 있고, 파일내용은 각 파일의 주요 컨텐츠 내용을 포함할 수 있다.In one embodiment, the detection target object pre-processing unit 310 may determine file management data in the file system as metadata and file contents in the file system as payload data. The detection target object pre-processing unit 310 may determine the detection target object as a file, and the file may be managed through a file system. File management data may include file history information generated in the process of managing a specific file by a file system, and file contents may include main contents of each file.

이상탐지 처리부(330)는 메타데이터의 이상유무를 검출하고 메타데이터의 이상이 존재하지 않는 경우에는 페이로드 데이터에 관한 행위 시뮬레이션을 수행하여 탐지대상객체의 이상을 탐지할 수 있다. 이상탐지 처리부(330)는 메타데이터를 기초로 이상유무를 1차적으로 검출하고, 메타데이터 상의 이상이 검출되지 않는 경우 페이로드 데이터에 관한 이상유무를 2차적으로 검출할 수 있다. 이때, 페이로드 데이터에 대한 이상 검출은 행위 시뮬레이션을 통해 수행될 수 있다. 행위 시뮬레이션은 대응되는 파일을 실행시킨 후 페이로드 데이터에 대한 처리 과정을 모니터링하여 비정상 행위를 검출하는 과정으로 실행될 수 있다.The anomaly detection processing unit 330 detects whether or not there is an anomaly in the metadata, and if there is no anomaly in the metadata, it may detect anomaly in the object to be detected by performing behavior simulation on the payload data. The anomaly detection processing unit 330 primarily detects whether or not there is an abnormality based on the metadata, and when an abnormality in the metadata is not detected, may secondarily detect the presence or absence of an abnormality in the payload data. In this case, detection of abnormalities in the payload data may be performed through behavior simulation. Behavior simulation may be performed as a process of detecting an abnormal behavior by monitoring a process of processing payload data after executing a corresponding file.

일 실시예에서, 이상탐지 처리부(330)는 악성코드 메타데이터 데이터베이스에서 메타데이터와 가장 유사한 악성코드 메타데이터를 결정하고, 메타데이터 및 악성코드 메타데이터 간의 유클리디언 거리(Euclidean Distance)를 기초로 메타데이터의 이상을 결정할 수 있다. 즉, 이상탐지 처리부(330)는 메타데이터의 이상 검출을 위해 기 구축된 악성코드 메타데이터와의 유사도를 기초로 비교 분석을 수행할 수 있다. 이때, 메타데이터 간의 유사도는 유클리디언 거리를 기초로 산출될 수 있으며, 기 구축된 악성코드 메타데이터들과의 거리가 설정된 임계값 이하인 경우 이상탐지 처리부(330)는 해당 메타데이터의 이상을 결정할 수 있다.In one embodiment, the anomaly detection processing unit 330 determines the malware metadata most similar to the metadata in the malware metadata database, and based on the Euclidean distance between the metadata and the malware metadata, Anomalies in metadata can be determined. That is, the anomaly detection processing unit 330 may perform comparative analysis based on similarity with pre-constructed malware metadata to detect anomalies in metadata. At this time, the similarity between the metadata may be calculated based on the Euclidean distance, and if the distance to the previously built malware metadata is less than or equal to a set threshold, the anomaly detection processing unit 330 determines an anomaly of the corresponding metadata. can

일 실시예에서, 이상탐지 처리부(330)는 페이로드 데이터를 독립적인 실행 공간을 가지는 행위 시뮬레이션 엔진을 통해 행위 시뮬레이션을 수행하고, 실행 공간 내에서 발생되는 행위를 분석하여 기 탐지대상객체의 이상을 탐지할 수 있다. 즉, 행위 시뮬레이션 엔진은 행위 시뮬레이션을 담당하는 고유 엔진에 해당할 수 있으며, 행위 시뮬레이션이 수행되고 외부와 차단된 가상의 실행 공간을 생성할 수 있다. 이상탐지 처리부(330)는 페이로드 데이터를 복제한 후 행위 시뮬레이션 엔진을 통해 가상의 공간에서 실행 과정을 모니터링 할 수 있다. 이상탐지 처리부(330)는 행위 시뮬레이션 과정에서 해당 페이로드 데이터와 연관된 행위들을 수집하고 정상 행위의 범위를 벗어난 이상 행위를 검출할 수 있다. 페이로드 데이터와 연관된 이상 행위는 시스템 파일의 실행, 수정 및 삭제 등을 포함할 수 있다.In one embodiment, the anomaly detection processing unit 330 performs behavior simulation on payload data through a behavior simulation engine having an independent execution space, analyzes behaviors occurring in the execution space, and detects anomalies of previously detected objects. can detect That is, the behavior simulation engine may correspond to a unique engine in charge of behavior simulation, and may generate a virtual execution space in which behavior simulation is performed and blocked from the outside. After duplicating payload data, the anomaly detection processing unit 330 may monitor an execution process in a virtual space through a behavior simulation engine. The anomaly detection processing unit 330 may collect actions associated with corresponding payload data in a behavior simulation process and detect an abnormal behavior that is out of the range of a normal behavior. Abnormal actions associated with payload data may include execution, modification, and deletion of system files.

악성유무 결정부(350)는 페이로드 데이터를 단위요소로 분해하여 일련의 시퀀스 스트림을 생성하고 분해의 과정에서 시퀀스 벡터를 생성하며 시퀀스 벡터를 기초로 단위 벡터열을 생성하고 단위 벡터열을 학습하여 구축된 악성코드 탐지 모델을 통해 페이로드 데이터에서 악성코드의 유무를 결정할 수 있다. 악성유무 결정부(350)의 구체적인 구성 및 동작은 도 4 및 6에서 보다 자세히 설명한다.The maliciousness determination unit 350 decomposes the payload data into unit elements to generate a series of sequence streams, generates a sequence vector in the process of decomposition, generates a unit vector sequence based on the sequence vector, and learns the unit vector sequence. Through the built malicious code detection model, it is possible to determine the presence or absence of malicious code in payload data. The specific configuration and operation of the malignancy determination unit 350 will be described in more detail with reference to FIGS. 4 and 6 .

악성코드 탐지부(370)는 탐지대상객체의 이상 유무 및 악성코드의 유무를 이용하여 악성코드를 탐지할 수 있다. 탐지대상객체에 대한 이상 유무와 악성코드의 유무에 따른 검출 결과를 기초로 악성코드를 탐지할 수 있다. 즉, 악성코드 탐지부(370)는 기존의 분류 모델을 통한 탐지와 함께 별도의 이상탐지 모델을 결합하여 새로운 유형의 의심파일에 대해서는 효과적인 탐지를 수행할 수 있다.The malicious code detection unit 370 may detect malicious code by using whether or not there is an abnormality in the object to be detected and whether or not there is malicious code. Malicious code can be detected based on the detection result according to whether or not there is an abnormality in the object to be detected and whether or not there is malicious code. That is, the malicious code detection unit 370 can effectively detect a new type of suspicious file by combining a separate anomaly detection model with detection through an existing classification model.

제어부(390)는 악성코드 탐지 장치(130)의 전체적인 동작을 제어하고, 탐지대상객체 전처리부(310), 이상탐지 처리부(330), 악성유무 결정부(350) 및 악성코드 탐지부(370) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.The control unit 390 controls the overall operation of the malicious code detection device 130, and includes the detection target object pre-processing unit 310, the anomaly detection processing unit 330, the malicious code detection unit 350, and the malicious code detection unit 370. It can manage control flow or data flow between

도 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 maliciousness determination unit 350 includes a sequence stream generating module 410, a sequence vector generating module 430, a unit vector string generating module 450, and a malicious code detection model building module 470. can do.

시퀀스 스트림 생성모듈(410)은 페이로드 데이터를 단위요소로 분해하여 일련의 시퀀스 스트림을 생성할 수 있다. 예를 들어, 탐지대상객체가 패킷인 경우 다양한 크기를 갖는 패킷의 페이로드 데이터를 특정 크기로 설정된 단위요소로 분해할 수 있으며, 페이로드 분할에 따라 일련의 스트림을 형성할 수 있다. 즉, 시퀀스 스트림은 네트워크를 통해 전송되는 패킷의 순서에 따라 페이로드 데이터가 동일한 크기의 단위요소들로 분할되어 형성되는 데이터 스트림에 해당할 수 있다.The sequence stream generating module 410 may generate a series of sequence streams by decomposing payload data into unit elements. For example, when the object to be detected is a packet, payload data of packets having various sizes can be decomposed into unit elements set to a specific size, and a series of streams can be formed according to the payload division. That is, the sequence stream may correspond to a data stream formed by dividing payload data into unit elements having the same size according to the order of packets transmitted through the network.

한편, 시퀀스 스트림 생성모듈(410)에 의해 생성된 시퀀스 스트림은 다음 단계의 동작을 위해 임시 버퍼에 저장될 수 있으며, 필요에 따라 단위 기간마다 데이터베이스(150)에 독립적으로 저장될 수 있다.Meanwhile, the sequence stream generated by the sequence stream generation module 410 may be stored in a temporary buffer for operation in the next step, and may be independently stored in the database 150 for each unit period as needed.

일 실시예에서, 시퀀스 스트림 생성모듈(410)은 패킷의 길이가 특정 기준을 초과하지 않는 경우에는 단위요소를 바이트(byte)로 설정할 수 있다. 통상적으로 패킷의 길이는 제한될 수 있고, 패킷의 길이가 기 설정된 특정 기준을 초과하지 않는 경우라면 시퀀스 스트림 생성모듈(410)은 단위요소를 바이트로 설정할 수 있다. 예를 들어, 패킷의 페이로드 데이터는 16진수 바이트 시퀀스로 구성될 수 있고, 시퀀스 스트림 생성모듈(410)은 페이로드 데이터를 바이트 별로 분할하여 시퀀스 스트림을 생성할 수 있다.In one embodiment, the sequence stream generating module 410 may set a unit element to a byte when the length of the packet does not exceed a specific criterion. In general, the length of the packet may be limited, and if the length of the packet does not exceed a predetermined criterion, the sequence stream generation module 410 may set the unit element to a byte. For example, payload data of a packet may be composed of a hexadecimal byte sequence, and the sequence stream generation module 410 may generate a sequence stream by dividing the payload data by byte.

시퀀스 벡터 생성모듈(430)은 분해의 과정에서 단위요소를 단위요소 값으로 변환하여 시퀀스 스트림에 대응되는 시퀀스 벡터를 생성할 수 있다. 여기에서, 시퀀스 벡터는 시퀀스 스트림에 대응되어 형성되는 특징 정보에 해당할 수 있으며, 페이로드 데이터 별로 생성될 수 있다. 예를 들어, 시퀀스 벡터 생성모듈(430)은 분해된 16진수의 단위요소에 대해 그에 대응되는 10진수의 정수값으로 변환함으로써 시퀀스 벡터의 각 성분값을 결정할 수 있다.The sequence vector generation module 430 may generate a sequence vector corresponding to a sequence stream by converting unit elements into unit element values in the process of decomposition. Here, the sequence vector may correspond to feature information formed corresponding to the sequence stream and may be generated for each payload data. For example, the sequence vector generating module 430 may determine each component value of the sequence vector by converting the unit element of the decomposed hexadecimal number into a corresponding decimal integer value.

일 실시예에서, 시퀀스 벡터 생성모듈(430)은 시퀀스 벡터의 크기를 패킷의 최대 길이로 결정할 수 있다. 예를 들어, 페이로드 데이터에 대응되어 생성되는 시퀀스 벡터는 패킷의 최대 길이가 1600 바이트(byte)인 점이 반영되어 1600차원의 크기로 형성될 수 있다. 이때, 시퀀스 벡터 생성모듈(430)은 페이로드 데이터의 길이에 상관없이 고정된 크기의 시퀀스 벡터를 생성할 수 있다. 만약 페이로드 데이터의 길이가 상대적으로 짧아 시퀀스 벡터의 일부 성분값을 결정할 수 없는 경우 시퀀스 벡터 생성모듈(430)은 해당 페이로드 데이터를 다른 페이로드 데이터와 결합한 후 시퀀스 벡터를 생성할 수도 있다.In one embodiment, the sequence vector generation module 430 may determine the size of the sequence vector as the maximum length of the packet. For example, a sequence vector generated corresponding to payload data may have a size of 1600 dimensions by reflecting the fact that the maximum length of a packet is 1600 bytes. In this case, the sequence vector generation module 430 may generate a sequence vector having a fixed size regardless of the length of the payload data. If the length of the payload data is relatively short, and the value of some components of the sequence vector cannot be determined, the sequence vector generation module 430 may generate the sequence vector after combining the corresponding payload data with other payload data.

일 실시예에서, 시퀀스 벡터 생성모듈(430)은 단위요소를 0 부터 255 사이의 바이트 값에 대응되는 단위요소 값으로 변환할 수 있다. 예를 들어, 시퀀스 스트림이 16진수 바이트 시퀀스에 해당하는 경우 시퀀스 벡터 생성모듈(430)은 각 단위요소에 대해 0부터 255 사이의 바이트 값으로 변환하여 시퀀스 벡터를 생성할 수 있다. 만약 복수의 페이로드 데이터를 서로 연결하여 시퀀스 벡터를 생성하는 경우 시퀀스 벡터 생성모듈(430)은 단위요소의 크기를 확장하여 복수의 단위요소들을 기초로 0부터 255 사이의 바이트 값으로 변환하는 동작을 수행할 수 있다. 이때, 단위요소의 크기는 결합된 페이로드 데이터의 길이와 시퀀스 벡터의 크기를 기준으로 결정될 수 있다.In one embodiment, the sequence vector generation module 430 may convert unit elements into unit element values corresponding to byte values between 0 and 255. For example, if the sequence stream corresponds to a hexadecimal byte sequence, the sequence vector generation module 430 may generate a sequence vector by converting each unit element into a byte value between 0 and 255. If a sequence vector is generated by connecting a plurality of payload data to each other, the sequence vector generation module 430 extends the size of the unit element and converts it into a byte value between 0 and 255 based on the plurality of unit elements. can be done In this case, the size of the unit element may be determined based on the length of the combined payload data and the size of the sequence vector.

단위 벡터열 생성모듈(450)은 시퀀스 벡터를 기초로 복수의 단위 벡터들로 구성된 단위 벡터열을 생성할 수 있다. 여기에서, 단위 벡터는 단위요소값에 대응되는 특징 벡터에 해당할 수 있고, 단위 벡터열은 복수의 단위 벡터들의 집합에 해당할 수 있으며, 단위 벡터들을 순서대로 연결하여 생성되는 데이터열에 해당할 수 있다.The unit vector sequence generation module 450 may generate a unit vector sequence composed of a plurality of unit vectors based on the sequence vector. Here, the unit vector may correspond to a feature vector corresponding to a unit element value, the unit vector column may correspond to a set of a plurality of unit vectors, and may correspond to a data string generated by sequentially connecting unit vectors. have.

일 실시예에서, 단위 벡터열 생성모듈(450)은 패킷의 길이에 비례하도록 단위 벡터의 크기를 결정할 수 있다. 단위 벡터의 크기는 임베딩 알고리즘의 파라미터를 조정하여 다양한 값으로 설정될 수 있다. 단위 벡터열 생성모듈(450)은 패킷의 길이를 고려하여 단위 벡터의 크기를 결정할 수 있다. 예를 들어, 네트워크를 통해 전송되는 패킷의 평균 길이에 따라 단위 벡터의 크기를 조정함으로써 학습 과정에서 패킷의 주요 특징이 잘 반영되도록 할 수 있다. 또한, 단위 벡터열 생성모듈(450)은 네트워크를 통해 전송되는 패킷 길이의 최대값 또는 최소값을 기초로 단위 벡터의 크기를 동적으로 결정할 수도 있다.In one embodiment, the unit vector sequence generating module 450 may determine the size of the unit vector in proportion to the length of the packet. The size of the unit vector can be set to various values by adjusting the parameters of the embedding algorithm. The unit vector sequence generating module 450 may determine the size of the unit vector in consideration of the length of the packet. For example, by adjusting the size of the unit vector according to the average length of the packet transmitted through the network, the main characteristics of the packet can be well reflected in the learning process. Also, the unit vector sequence generation module 450 may dynamically determine the size of the unit vector based on the maximum or minimum value of the packet length transmitted over the network.

일 실시예에서, 단위 벡터열 생성모듈(450)은 시퀀스 벡터의 단위요소 값들의 편차에 따라 단위 벡터의 크기를 결정할 수 있다. 단위 벡터열 생성모듈(450)은 시퀀스 벡터의 크기에 대응되는 개수들로 단위요소 값들을 구성할 수 있다. 단위 벡터열 생성모듈(450)은 단위요소 값들 간의 편차에 따라 단위 벡터의 크기를 결정할 수 있다. 이를 통해, 단위 벡터열 생성모듈(450)은 단위요소의 특징이 단위 벡터에 잘 반영되도록 할 수 있다. 예를 들어, 단위 벡터열 생성모듈(450)은 단위요소 값들의 최대 편차 또는 단위요소 값들 간의 표준편차에 따라 단위 벡터의 크기를 결정할 수 있다.In one embodiment, the unit vector sequence generating module 450 may determine the size of the unit vector according to the deviation of unit element values of the sequence vector. The unit vector sequence generation module 450 may configure unit element values with numbers corresponding to the size of the sequence vector. The unit vector sequence generation module 450 may determine the size of the unit vector according to the deviation between unit element values. Through this, the unit vector sequence generation module 450 can ensure that the characteristics of the unit element are well reflected in the unit vector. For example, the unit vector sequence generating module 450 may determine the size of the unit vector according to a maximum deviation of unit element values or a standard deviation between unit element values.

일 실시예에서, 단위 벡터열 생성모듈(450)은 시퀀스 벡터의 각 단위요소 값에 대응되는 임베딩 벡터(embedding vector)를 생성하여 복수의 단위 벡터들을 생성할 수 있다. 단위 벡터열 생성모듈(450)은 시퀀스 벡터를 사용하여 각 단위요소 값을 임베딩(embedding)하는 동작을 수행할 수 있다. 즉, 단위 벡터열 생성모듈(450)은 시퀀스 벡터의 각 단위요소 값을 단어(word)로 간주하여 소정의 임베딩 알고리즘을 적용한 결과로서 임베딩 벡터를 생성할 수 있다. 따라서, 단위 벡터는 각 단위요소 값에 대한 임베딩 벡터에 해당할 수 있고, 단위 벡터열은 단위 벡터들의 집합에 해당할 수 있다.In one embodiment, the unit vector sequence generation module 450 may generate a plurality of unit vectors by generating an embedding vector corresponding to each unit element value of the sequence vector. The unit vector sequence generation module 450 may perform an operation of embedding each unit element value using a sequence vector. That is, the unit vector sequence generation module 450 may generate an embedding vector as a result of applying a predetermined embedding algorithm by considering each unit element value of the sequence vector as a word. Accordingly, the unit vector may correspond to an embedding vector for each unit element value, and the unit vector sequence may correspond to a set of unit vectors.

악성코드 탐지 모델 구축모듈(470)은 단위 벡터열을 학습하여 악성코드 탐지 모델을 구축할 수 있다. 단위 벡터열의 크기는 시퀀스 벡터와 단위 벡터 각각의 크기에 따라 결정될 수 있다. 예를 들어, 시퀀스 벡터의 크기가 x이고 단위 벡터의 크기가 y인 경우 단위 벡터열의 크기는 x * y로 결정될 수 있다. 악성코드 탐지 모델은 악성코드 탐지를 위한 학습 모델로서 특정 패킷에 대응되는 단위 벡터열을 입력으로 수신하여 악성 유무에 관한 판단 결과를 출력으로 제공할 수 있다. 이때, 악성 유무에 관한 판단 결과는 정상 또는 악성에 관한 확률 정보를 포함할 수 있다.The malicious code detection model building module 470 may build a malicious code detection model by learning the unit vector sequence. The size of the unit vector sequence may be determined according to the size of each sequence vector and unit vector. For example, when the size of the sequence vector is x and the size of the unit vector is y, the size of the unit vector sequence may be determined as x * y. The malicious code detection model is a learning model for detecting malicious code, and may receive a unit vector sequence corresponding to a specific packet as an input and provide a result of determining malicious code as an output. In this case, the result of determining whether or not the object is malignant may include probability information about normal or malignant nature.

일 실시예에서, 악성코드 탐지 모델 구축모듈(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 model building module 470 may build a malicious code detection model through a gated convolutional neural network (CNN). Here, the gated CNN adopts a gate structure for integrating a plurality of convolutional layers, but may correspond to CNN. Gates can be implemented by multi-scale feature layers, extract useful information through multiple filters and block out noise through one or more convolution operations. Therefore, the malicious code detection model built through gate CNN can detect malicious code with higher accuracy.

일 실시예에서, 악성코드 탐지 모델 구축모듈(470)은 단위 벡터열을 가중 1차원 컨볼루션 레이어 및 비-가중 1차원 컨볼루션 레이어에 각각 적용한 결과를 조합하여 학습을 수행할 수 있다. 악성코드 탐지 모델 구축모듈(470)은 동일한 1차원 CNN 모델(1D CNN)을 독립적으로 적용한 결과를 조합하여 악성코드 탐지를 위한 학습을 수행할 수 있다. 악성코드 탐지 모델 구축모듈(470)은 단위 벡터열을 각각의 1차원 컨볼루션 레이어에 입력할 수 있으며, 어느 하나의 1차원 컨볼루션 레이어를 통과한 결과에 대해 가중 연산을 적용할 수 있다.In an embodiment, the malicious code detection model building module 470 may perform learning by combining results of applying the unit vector sequence to the weighted 1D convolution layer and the non-weighted 1D convolution layer, respectively. The malicious code detection model building module 470 may perform learning for detecting malicious code by combining results of independently applying the same 1D CNN model. The malicious code detection model building module 470 may input the unit vector sequence to each 1D convolution layer, and may apply a weighting operation to a result passing through any one 1D convolution layer.

예를 들어, 가중 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 model building module 470 may perform a multiplication operation to combine results obtained by applying the weighted 1D convolution layer and the non-weighted 1D convolution layer. More specifically, the malicious code detection model building module 470 may combine results of each 1D convolution layer by performing a Hadamard product or element wise product operation.

일 실시예에서, 악성코드 탐지 모델 구축모듈(470)은 조합의 결과에 관한 맥스 풀링(max pooling)을 수행한 다음 완전 연결 레이어(fully connected layer)를 적용하여 학습을 완성할 수 있다. 악성코드 탐지 모델 구축모듈(470)은 맥스 풀링 레이어를 통과시켜 데이터 크기를 줄일 수 있다. 또한, 악성코드 탐지 모델 구축모듈(470)은 완전 연결 레이어를 통과시켜 최종 결과를 학습시킬 수 있다. 한편, 악성코드 탐지 모델 구축모듈(470)은 필요에 따라 완전 연결 레이어에 활성 함수를 결합하여 출력값을 정규화 할 수 있다. 이때, 활성 함수는 소프트맥스(softmax) 함수를 포함할 수 있다.In one embodiment, the malicious code detection model building module 470 may complete learning by performing max pooling on the result of the combination and then applying a fully connected layer. The malicious code detection model building module 470 may reduce the data size by passing the max pooling layer. In addition, the malicious code detection model building module 470 may pass a fully connected layer and learn a final result. Meanwhile, the malicious code detection model building module 470 may normalize an output value by combining an activation function with a fully connected layer, if necessary. In this case, the activation function may include a softmax function.

도 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 code detection apparatus 130 receives a detection target object through the detection target object pre-processing unit 310 and classifies the detection target object into metadata and payload data through preprocessing (step S510). The malicious code detection device 130 detects whether or not there is an abnormality in metadata through the anomaly detection processing unit 330, and if there is no abnormality in metadata, it performs a behavior simulation on the payload data to detect anomalies in the object to be detected. It can be detected (step S530).

또한, 악성코드 탐지 장치(130)는 악성유무 결정부(350)를 통해 페이로드 데이터를 단위요소로 분해하여 일련의 시퀀스 스트림을 생성하고 분해의 과정에서 시퀀스 벡터를 생성하며 시퀀스 벡터를 기초로 단위 벡터열을 생성하고 단위 벡터열을 학습하여 구축된 악성코드 탐지 모델을 통해 페이로드 데이터에서 악성코드의 유무를 결정할 수 있다(단계 S550). 악성코드 탐지 장치(130)는 악성코드 탐지부(370)를 통해 탐지대상객체의 이상 유무 및 악성코드의 유무를 이용하여 악성코드를 탐지할 수 있다(단계 S570).In addition, the malicious code detection device 130 decomposes the payload data into unit elements through the maliciousness determination unit 350 to generate a series of sequence streams, generates sequence vectors in the process of decomposition, and generates unit elements based on the sequence vectors. It is possible to determine the presence or absence of malicious code in the payload data through the malicious code detection model built by generating the vector sequence and learning the unit vector sequence (step S550). The malicious code detection device 130 may detect malicious code by using the presence or absence of abnormalities in the object to be detected and the presence or absence of malicious code through the malicious code detection unit 370 (step S570).

도 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 code detection device 130 may be implemented by including a malicious code detection unit 350 that detects malicious code. In addition, the maliciousness determination unit 350 may generate a series of sequence streams by decomposing the payload data into unit elements through the sequence stream generation module 410 (step S610).

또한, 악성유무 결정부(350)는 시퀀스 벡터 생성모듈(430)을 통해 분해의 과정에서 시퀀스 벡터를 생성할 수 있다(단계 S630). 악성유무 결정부(350)는 단위 벡터열 생성모듈(450)을 통해 시퀀스 벡터를 기초로 단위 벡터열을 생성할 수 있다(단계 S650). 악성유무 결정부(350)는 악성코드 탐지 모델 구축모듈(470)을 통해 단위 벡터열을 학습하여 구축된 악성코드 탐지 모델을 구축할 수 있다(단계 S670).In addition, the maliciousness determination unit 350 may generate a sequence vector in the process of decomposition through the sequence vector generation module 430 (step S630). The maliciousness determination unit 350 may generate a unit vector sequence based on the sequence vector through the unit vector sequence generation module 450 (step S650). The malicious code determination unit 350 may build a malicious code detection model built by learning the unit vector sequence through the malicious code detection model building module 470 (step S670).

도 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 code detection device 130 converts unit elements into unit element values in the decomposition process of payload data through the maliciousness determination unit 350, and the sequence vector corresponding to the sequence stream 710 ( 730) can be created. That is, in this case, the object to be detected may correspond to a packet of the network.

악성코드 탐지 장치(130)는 별도의 특성 공학(feature engineering)을 적용하지 않고, 페이로드 데이터가 가진 원래의 데이터 시퀀스를 이용하여 각 패킷의 페이로드 데이터에 대응되는 시퀀스 벡터(730)를 생성할 수 있다. 이때, 시퀀스 벡터(730)의 크기는 패킷의 최대 길이가 1600 인 것을 고려하여 1600차원으로 설정될 수 있다. 즉, 악성코드 탐지 장치(130)는 네트워크를 통해 전송되는 패킷 별로 1600차원의 시퀀스 벡터(730)를 생성하여 학습을 위한 기초 자료로 사용할 수 있다.The malicious code detection device 130 generates a sequence vector 730 corresponding to the payload data of each packet using the original data sequence of the payload data without applying separate feature engineering. can In this case, the size of the sequence vector 730 may be set to 1600 dimensions considering that the maximum length of a packet is 1600. That is, the malicious code detecting device 130 may generate a 1600-dimensional sequence vector 730 for each packet transmitted through the network and use it as basic data for learning.

또한, 악성코드 탐지 장치(130)는 악성유무 결정부(350)를 시퀀스 벡터(730)를 기초로 복수의 단위 벡터들로 구성된 단위 벡터열(750)을 생성할 수 있다. 악성코드 탐지 장치(130)는 시퀀스 벡터의 각 성분 값을 단어로 간주하여 임베딩 알고리즘을 통해 각 성분에 대응되는 임베딩 벡터를 단위 벡터로서 생성할 수 있다. 즉, 시퀀스 벡터(730)에 대응되어 생성되는 복수의 단위벡터들이 모여 단위 벡터열(750)을 구성할 수 있으며, 이후 단위 벡터열(750)은 악성코드 탐지 모델을 위한 학습 데이터로서 사용될 수 있다.In addition, the malicious code detecting device 130 may generate a unit vector sequence 750 composed of a plurality of unit vectors based on the sequence vector 730 by using the malicious presence determining unit 350 . The malicious code detection apparatus 130 may consider each component value of the sequence vector as a word and generate an embedding vector corresponding to each component as a unit vector through an embedding algorithm. That is, a plurality of unit vectors generated corresponding to the sequence vector 730 may be gathered to form a unit vector sequence 750, and then the unit vector sequence 750 may be used as training data for a malicious code detection model. .

한편, 단위 벡터열(750)을 구성하는 단위 벡터의 크기는 패킷의 길이에 비례하여 설정될 수 있다. 또한, 단위 벡터의 크기는 시퀀스 벡터(730)의 단위요소 값들의 편차에 따라 결정될 수도 있다. 도 7에서, 단위 벡터열(750)은 1600 크기의 시퀀스 벡터(730)에 대응되어 4차원의 단위 벡터들로 구성된 1600 * 4 크기의 벡터로 변환될 수 있다.Meanwhile, the size of the unit vectors constituting the unit vector sequence 750 may be set in proportion to the length of the packet. Also, the size of the unit vector may be determined according to deviations of unit element values of the sequence vector 730 . In FIG. 7 , a unit vector column 750 corresponds to a sequence vector 730 having a size of 1600 and can be converted into a vector having a size of 1600 * 4 composed of 4-dimensional unit vectors.

악성코드 탐지 장치(130)는 악성유무 결정부(350)를 통해 단위 벡터열을 학습 데이터로 사용하여 악성코드 탐지 모델을 구축할 수 있다. 이때, 악성코드 탐지 장치(130)는 단위 벡터열을 게이트 CNN 구조를 통해 학습시킬 수 있다. 즉, 악성코드 탐지 장치(130)는 악성파일의 바이트 시퀀스를 학습시키는 Malconv 모델을 보안관제 데이터에 적용하여 보안관제를 위한 악성코드 탐지 모델을 구축할 수 있다.The malicious code detection device 130 may build a malicious code detection model by using the unit vector sequence as learning data through the malicious existence determination unit 350 . At this time, the malicious code detection device 130 may train the unit vector sequence through a gated CNN structure. That is, the malicious code detection device 130 may construct a malicious code detection model for security monitoring by applying a Malconv model for learning a byte sequence of a malicious file to security monitoring data.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.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.
제1항에 있어서, 상기 탐지대상객체 전처리부는
파일시스템에 있는 파일관리 데이터를 상기 메타데이터로 결정하고 상기 파일시스템에 있는 파일내용을 상기 페이로드 데이터로 결정하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 장치.
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.
제1항에 있어서, 상기 이상탐지 처리부는
악성코드 메타데이터 데이터베이스에서 상기 메타데이터와 가장 유사한 악성코드 메타데이터를 결정하고, 상기 메타데이터 및 상기 악성코드 메타데이터 간의 유클리디언 거리(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.
제3항에 있어서, 상기 이상탐지 처리부는
상기 페이로드 데이터를 독립적인 실행 공간을 가지는 행위 시뮬레이션 엔진을 통해 상기 행위 시뮬레이션을 수행하고, 상기 실행 공간 내에서 발생되는 행위를 분석하여 상기 탐지대상객체의 이상을 탐지하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 장치.
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.
제1항에 있어서, 상기 악성유무 결정부는
패킷의 길이가 특정 기준을 초과하지 않는 경우에는 상기 단위요소를 바이트(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.
제1항에 있어서, 상기 악성유무 결정부는
상기 시퀀스 벡터의 크기를 패킷의 최대 길이로 결정하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 장치.
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.
삭제delete 제1항에 있어서, 상기 악성유무 결정부는
패킷의 길이에 비례하도록 상기 단위 벡터의 크기를 결정하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 장치.
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.
삭제delete 제1항에 있어서, 상기 악성유무 결정부는
상기 시퀀스 벡터의 각 단위요소 값에 대응되는 임베딩 벡터(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.
제1항에 있어서, 상기 악성유무 결정부는
게이트 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.
제12항에 있어서,
상기 메타데이터 및 페이로드 데이터로 분류하는 단계는
파일시스템에 있는 파일관리 데이터를 상기 메타데이터로 결정하고 상기 파일시스템에 있는 파일내용을 상기 페이로드 데이터로 결정하는 단계를 포함하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 방법.
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.
제12항에 있어서,
상기 탐지대상객체의 이상을 탐지하는 단계는
악성코드 메타데이터 데이터베이스에서 상기 메타데이터와 가장 유사한 악성코드 메타데이터를 결정하고, 상기 메타데이터 및 상기 악성코드 메타데이터 간의 유클리디언 거리(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.
제14항에 있어서,
상기 탐지대상객체의 이상을 탐지하는 단계는
상기 페이로드 데이터를 독립적인 실행 공간을 가지는 행위 시뮬레이션 엔진을 통해 상기 행위 시뮬레이션을 수행하고, 상기 실행 공간 내에서 발생되는 행위를 분석하여 상기 탐지대상객체의 이상을 탐지하는 단계를 포함하는 것을 특징으로 하는 하이브리드 인공지능 기반의 악성코드 탐지 방법.
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.
KR1020210002023A 2021-01-07 2021-01-07 Malware detection device and method based on hybrid artificial intelligence KR102472850B1 (en)

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)

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

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

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

Patent Citations (2)

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

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