KR102548985B1 - Methods and apparatus for machine learning modeling for detecting malicious document files - Google Patents
Methods and apparatus for machine learning modeling for detecting malicious document files Download PDFInfo
- Publication number
- KR102548985B1 KR102548985B1 KR1020220151889A KR20220151889A KR102548985B1 KR 102548985 B1 KR102548985 B1 KR 102548985B1 KR 1020220151889 A KR1020220151889 A KR 1020220151889A KR 20220151889 A KR20220151889 A KR 20220151889A KR 102548985 B1 KR102548985 B1 KR 102548985B1
- Authority
- KR
- South Korea
- Prior art keywords
- type
- sample data
- server
- file
- features related
- Prior art date
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 title claims description 64
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims description 47
- 238000004891 communication Methods 0.000 claims description 21
- 230000003068 static effect Effects 0.000 claims description 21
- 230000009471 action Effects 0.000 claims description 20
- 238000012544 monitoring process Methods 0.000 claims description 7
- 239000000284 extract Substances 0.000 abstract description 8
- 230000006399 behavior Effects 0.000 description 27
- 230000006870 function Effects 0.000 description 24
- 238000004458 analytical method Methods 0.000 description 18
- 238000001514 detection method Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 244000035744 Hura crepitans Species 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000000605 extraction Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000003066 decision tree Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000003211 malignant effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 229960005486 vaccine Drugs 0.000 description 1
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
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- 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/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- 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
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
본 명세서는 리버싱 엔진 기반으로, 악성 문서 파일을 탐지하기 위한 머신러닝 모델링 방법 및 장치에 관한 것이다.The present specification relates to a machine learning modeling method and apparatus for detecting a malicious document file based on a reversing engine.
지능형 지속 위협(Advanced Persistent Threat, APT) 공격은 공격자가 특정 타깃을 정하고 목표한 정보를 빼내기 위해 고도의 공격기법을 적용하여 지속적으로 다양한 형태의 악성 코드를 활용한다. 특히 APT 공격은 초기 침입단계에서 탐지하지 못하는 경우가 많으며, 주로 악성 코드를 포함하는 비실행(Non-Portable Executable, Non-PE) 파일을 이용하는 경우가 많다.In the Advanced Persistent Threat (APT) attack, an attacker sets a specific target and applies advanced attack techniques to continuously utilize various types of malicious codes to steal target information. In particular, APT attacks are often undetectable in the initial intrusion stage, and often use Non-Portable Executable (Non-PE) files containing malicious codes.
문서 행위란 비실행 파일이 관련된 응용프로그램의 액션을 실행하는 행위로서, 기존의 APT 솔루션들은 문서 행위 기반으로 동작하기 때문에 문서의 행위 발생 후, 샌드박스(Virtural Machine, VM)의 변화를 관찰하여 악성여부를 판단한다. 이는 문서 행위의 발현을 전부 기다린 후 악성여부를 파악하기 때문에 분석시간이 오래 걸린다.Document behavior is the behavior of executing the action of an application program related to non-executable files. Existing APT solutions operate based on document behavior. judge whether This takes a long time to analyze because it waits for all document behaviors to appear and then determines whether or not it is malignant.
또한, 기존 APT 솔루션들은 비실행 파일을 샌드박스에서 실행 후 샌드박스의 변화를 기반으로 판단한다. 예를 들어, APT 솔루션은 WINDOWS API 후킹(hooking)을 통해, 문서 행위의 대략적인 기능을 파악할 수는 있지만, 일반적인 문서 프로세스에는 많은 기능들이 포함되어 있어, 문서의 어떤 기능을 이용하여 어떤 행위가 유발되었는 지를 정확히 알기 어렵다. In addition, existing APT solutions run non-executable files in the sandbox and then judge them based on changes in the sandbox. For example, an APT solution can grasp the approximate function of a document action through WINDOWS API hooking, but a general document process includes many functions, so it is difficult to determine which action is triggered by using a function of a document. It's hard to know exactly what happened.
악성 문서 파일은 악성 코드 제작 도구를 이용하여 대량 생산된다. 대량 생산된 악성 문서 파일들은 비슷한 특징을 갖고 있으며, 이를 탐지하기 위해서는 탐지 시그니처(signature) 및 행위 탐지 패턴이 요구된다. Malicious document files are mass-produced using malicious code creation tools. Mass-produced malicious document files have similar characteristics, and detection signatures and behavior detection patterns are required to detect them.
시그니처 및 탐지 패턴은 분석가가 직접 분석하여 이들의 공통점을 찾아 제작해야 한다. 이러한 과정은 정적 분석과 동적 분석으로 분류될 수 있으며, 각각에 맞는 시그니처와 탐지 패턴을 제작하는 과정은 인공지능 모델을 통해 보다 빠르게 탐지될 수 있다.Signatures and detection patterns must be created by an analyst by directly analyzing them to find their commonalities. This process can be classified into static analysis and dynamic analysis, and the process of creating a signature and detection pattern suitable for each can be detected more quickly through an artificial intelligence model.
본 명세서의 목적은, 악성 문서 파일을 탐지하기 위한 머신러닝 모델링 방법 및 장치를 제안한다.An object of the present specification is to propose a machine learning modeling method and apparatus for detecting a malicious document file.
본 명세서가 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 이하의 명세서의 상세한 설명으로부터 본 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved by this specification are not limited to the above-mentioned technical problems, and other technical problems not mentioned are clear to those skilled in the art from the detailed description of the specification below. will be understandable.
본 명세서의 일 양상은, 서버가 악성 문서 파일을 탐지하기 위한 머신러닝 모델링을 위한 방법에 있어서, 상기 악성 문서 파일 탐지를 위한 인공지능 모델의 학습을 위한 샘플 데이터를 수집하는 단계; 파일의 타입에 근거하여, 상기 샘플 데이터를 분류하는 단계; 상기 분류된 샘플 데이터에 근거하여, 상기 샘플 데이터의 동적 특징을 추출하는 단계; 및 상기 동적 특징을 이용하여, 상기 인공지능 모델을 학습시키는 단계; 를 포함할 수 있다.One aspect of the present specification is a method for machine learning modeling for a server to detect a malicious document file, comprising: collecting sample data for learning an artificial intelligence model for detecting the malicious document file; classifying the sample data based on the type of file; extracting a dynamic feature of the sample data based on the classified sample data; and learning the artificial intelligence model using the dynamic features. can include
또한, 상기 분류된 샘플 데이터에 근거하여, 상기 샘플 데이터의 정적 특징을 추출하는 단계; 및 상기 정적 특징을 이용하여, 상기 인공지능 모델을 학습시키는 단계; 를 더 포함할 수 이다.Also, based on the classified sample data, extracting static features of the sample data; and learning the artificial intelligence model using the static features. can contain more.
또한, 상기 동적 특징은 디버깅(debugging) 엔진을 통해 추출되는 정보일 수 있다.Also, the dynamic feature may be information extracted through a debugging engine.
또한, 상기 동적 특징을 추출하는 단계는 상기 샘플 데이터에 상기 동적 특징을 추출하기 위한 중단점을 설정하는 단계; 상기 샘플 데이터를 실행하고, 상기 중단점에서 상기 샘플 데이터와 관련된 응용프로그램의 프로세스가 중단되는 지 여부를 모니터링 하는 단계; 및 상기 프로세스가 중단되는 것에 근거하여, 상기 동적 특징을 추출하는 단계; 를 포함할 수 있다.The extracting of the dynamic feature may include setting a breakpoint for extracting the dynamic feature in the sample data; executing the sample data, and monitoring whether a process of an application program related to the sample data is stopped at the breakpoint; and based on the stopping of the process, extracting the dynamic feature; can include
또한, 상기 동적 특징을 추출하는 단계는 상기 프로세스가 중단되지 않는 것에 근거하여, 상기 샘플 데이터와 관련된 신규 모듈이 로드되었는 지 여부를 판단하는 단계; 를 더 포함할 수 있다.In addition, the extracting of the dynamic feature may include determining whether a new module related to the sample data is loaded based on the fact that the process is not interrupted; may further include.
또한, 상기 동적 특징은 1) 외부 연결과 관련된 정보, 2) 매크로와 관련된 정보, 및 3) 상기 샘플 데이터의 프로세스와 관련된 정보를 포함할 수 있다.Also, the dynamic feature may include 1) information related to external connection, 2) information related to a macro, and 3) information related to a process of the sample data.
본 명세서의 또 다른 일 양상은, 악성 문서 파일을 탐지하기 위한 머신러닝 모델링을 수행하는 서버에 있어서, 통신부; 디버깅(debugging) 엔진이 포함된 메모리; 및 상기 통신부 및 상기 메모리를 기능적으로 제어하는 프로세서; 를 포함하고, 상기 프로세서는 상기 악성 문서 파일 탐지를 위한 인공지능 모델의 학습을 위한 샘플 데이터를 수집하고, 파일의 타입에 근거하여, 상기 샘플 데이터를 분류하며, 상기 분류된 샘플 데이터에 근거하여, 상기 샘플 데이터의 동적 특징을 추출하고, 상기 동적 특징을 이용하여, 상기 인공지능 모델을 학습시킬 수 있다.Another aspect of the present specification is a server performing machine learning modeling for detecting a malicious document file, comprising: a communication unit; memory containing a debugging engine; and a processor functionally controlling the communication unit and the memory. wherein the processor collects sample data for learning an artificial intelligence model for detecting the malicious document file, classifies the sample data based on a file type, and based on the classified sample data, Dynamic features of the sample data may be extracted, and the artificial intelligence model may be trained using the dynamic features.
본 명세서의 실시예에 따르면, 악성 문서 파일을 탐지하기 위한 머신러닝 모델링을 할 수 있다.According to an embodiment of the present specification, machine learning modeling for detecting a malicious document file may be performed.
본 명세서에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.Effects obtainable in the present specification are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below. .
도 1은 본 명세서와 관련된 전자 기기를 설명하기 위한 블록도이다.
도 2는 본 명세서와 관련된 서버 또는 클라이언트를 나타내는 도면이다.
도 3은 본 명세서에 적용될 수 있는 비정상 입력의 예시이다.
도 4는 본 명세서가 적용될 수 있는 문서 행위 판단 방법을 예시한다.
도 5는 본 명세서의 일 실시예에 따른 AI 장치의 블록도이다.
도 6는 본 명세서의 일 실시예에 따른 머신러닝 모델링 방법의 예시이다.
도 7은 본 명세서가 적용될 수 있는 동적 특징 추출의 예시이다.
본 명세서에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 명세서에 대한 실시예를 제공하고, 상세한 설명과 함께 본 명세서의 기술적 특징을 설명한다.1 is a block diagram for explaining an electronic device related to the present specification.
2 is a diagram showing a server or client related to the present specification.
3 is an example of an abnormal input that can be applied to this specification.
4 illustrates a method for determining a document behavior to which this specification can be applied.
5 is a block diagram of an AI device according to an embodiment of the present specification.
6 is an example of a machine learning modeling method according to an embodiment of the present specification.
7 is an example of dynamic feature extraction to which the present specification can be applied.
The accompanying drawings, which are included as part of the detailed description to aid understanding of the present specification, provide examples of the present specification and describe technical features of the present specification together with the detailed description.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 명세서의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. Hereinafter, the embodiments disclosed in this specification will be described in detail with reference to the accompanying drawings, but the same or similar components are given the same reference numerals regardless of reference numerals, and redundant description thereof will be omitted. The suffixes "module" and "unit" for components used in the following description are given or used together in consideration of ease of writing the specification, and do not have meanings or roles that are distinct from each other by themselves. In addition, in describing the embodiments disclosed in this specification, if it is determined that a detailed description of a related known technology may obscure the gist of the embodiment disclosed in this specification, the detailed description thereof will be omitted. In addition, the accompanying drawings are only for easy understanding of the embodiments disclosed in this specification, the technical idea disclosed in this specification is not limited by the accompanying drawings, and all changes included in the spirit and technical scope of this specification , it should be understood to include equivalents or substitutes.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms including ordinal numbers, such as first and second, may be used to describe various components, but the components are not limited by the terms. These terms are only used for the purpose of distinguishing one component from another.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.It is understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, but other elements may exist in the middle. It should be. On the other hand, when an element is referred to as “directly connected” or “directly connected” to another element, it should be understood that no other element exists in the middle.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.Singular expressions include plural expressions unless the context clearly dictates otherwise.
본 명세서에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In this specification, terms such as "comprise" or "having" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features It should be understood that the presence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded.
또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어 또는 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.Also, the term “unit” used in the specification means a software or hardware component, and “unit” performs certain roles. However, "unit" is not meant to be limited to software or hardware. A “unit” may be configured to reside in an addressable storage medium and may be configured to reproduce on one or more processors. Thus, as an example, “unit” can refer to components such as software components, object-oriented software components, class components and task components, processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. Functionality provided within components and "parts" may be combined into fewer components and "parts" or further separated into additional components and "parts".
또한, 본 명세서의 일 실시예에 따르면 "부"는 프로세서 및 메모리로 구현될 수 있다. 용어 "프로세서"는 범용 프로세서, 중앙 처리 장치 (CPU), 마이크로프로세서, 디지털 신호 프로세서 (DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함하도록 넓게 해석되어야 한다. 몇몇 환경에서는, "프로세서"는 주문형 반도체 (ASIC), 프로그램가능 로직 디바이스 (PLD), 필드 프로그램가능 게이트 어레이 (FPGA) 등을 지칭할 수도 있다. 용어 "프로세서"는, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 결합한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다.Also, according to one embodiment of the present specification, "unit" may be implemented as a processor and a memory. The term “processor” should be interpreted broadly to include general-purpose processors, central processing units (CPUs), microprocessors, digital signal processors (DSPs), controllers, microcontrollers, state machines, and the like. In some circumstances, “processor” may refer to an application specific integrated circuit (ASIC), programmable logic device (PLD), field programmable gate array (FPGA), or the like. The term "processor" refers to a combination of processing devices, such as, for example, a combination of a DSP and a microprocessor, a combination of a plurality of microprocessors, a combination of one or more microprocessors in conjunction with a DSP core, or any other such configuration. may also refer to
용어 "메모리"는 전자 정보를 저장 가능한 임의의 전자 컴포넌트를 포함하도록 넓게 해석되어야 한다. 용어 메모리는 임의 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 비-휘발성 임의 액세스 메모리 (NVRAM), 프로그램가능 판독-전용 메모리 (PROM), 소거-프로그램가능 판독 전용 메모리 (EPROM), 전기적으로 소거가능 PROM (EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들 등과 같은 프로세서-판독가능 매체의 다양한 유형들을 지칭할 수도 있다. 프로세서가 메모리로부터 정보를 판독하고/하거나 메모리에 정보를 기록할 수 있다면 메모리는 프로세서와 전자 통신 상태에 있다고 불린다. 프로세서에 집적된 메모리는 프로세서와 전자 통신 상태에 있다.The term “memory” should be interpreted broadly to include any electronic component capable of storing electronic information. The term memory includes random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable-programmable read-only memory (EPROM), electrical may refer to various types of processor-readable media, such as erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, and the like. A memory is said to be in electronic communication with the processor if the processor can read information from and/or write information to the memory. Memory integrated with the processor is in electronic communication with the processor.
본 명세서에서 사용되는 "비실행 파일"이란 실행 파일 또는 실행 가능한 파일과 반대되는 개념으로서 자체적으로 실행되지 않는 파일을 의미한다. 예를 들어, 비실행 파일은 PDF 파일, 한글 파일, 워드 파일과 같은 문서 파일, JPG 파일과 같은 이미지 파일, 동영상 파일, 자바 스크립트 파일, HTML 파일 등이 될 수 있으나, 이에 한정되지 않는다.As used herein, a "non-executable file" is a concept opposite to an executable file or an executable file, and means a file that is not itself executed. For example, the non-executable file may be a PDF file, a Korean file, a document file such as a word file, an image file such as a JPG file, a video file, a JavaScript file, and an HTML file, but is not limited thereto.
아래에서는 첨부한 도면을 참고하여 실시예에 대하여 본 명세서가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분들은 생략될 수 있다.Hereinafter, with reference to the accompanying drawings, embodiments will be described in detail so that those skilled in the art can easily carry out the embodiments. In addition, in order to clearly describe the present disclosure in the drawings, parts irrelevant to the description may be omitted.
도 1은 본 명세서와 관련된 전자 기기를 설명하기 위한 블록도이다. 1 is a block diagram for explaining an electronic device related to the present specification.
상기 전자 기기(100)는 무선 통신부(110), 입력부(120), 센싱부(140), 출력부(150), 인터페이스부(160), 메모리(170), 제어부(180) 및 전원 공급부(190) 등을 포함할 수 있다. 도 1에 도시된 구성요소들은 전자 기기를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서 상에서 설명되는 전자 기기는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.The electronic device 100 includes a
보다 구체적으로, 상기 구성요소들 중 무선 통신부(110)는, 전자 기기(100)와 무선 통신 시스템 사이, 전자 기기(100)와 다른 전자 기기(100) 사이, 또는 전자 기기(100)와 외부서버 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 또한, 상기 무선 통신부(110)는, 전자 기기(100)를 하나 이상의 네트워크에 연결하는 하나 이상의 모듈을 포함할 수 있다.More specifically, among the components, the
이러한 무선 통신부(110)는, 방송 수신 모듈(111), 이동통신 모듈(112), 무선 인터넷 모듈(113), 근거리 통신 모듈(114), 위치정보 모듈(115) 중 적어도 하나를 포함할 수 있다.The
입력부(120)는, 영상 신호 입력을 위한 카메라(121) 또는 영상 입력부, 오디오 신호 입력을 위한 마이크로폰(microphone, 122), 또는 오디오 입력부, 사용자로부터 정보를 입력받기 위한 사용자 입력부(123, 예를 들어, 터치키(touch key), 푸시키(mechanical key) 등)를 포함할 수 있다. 입력부(120)에서 수집한 음성 데이터나 이미지 데이터는 분석되어 사용자의 제어명령으로 처리될 수 있다.The
센싱부(140)는 전자 기기 내 정보, 전자 기기를 둘러싼 주변 환경 정보 및 사용자 정보 중 적어도 하나를 센싱하기 위한 하나 이상의 센서를 포함할 수 있다. 예를 들어, 센싱부(140)는 근접센서(141, proximity sensor), 조도 센서(142, illumination sensor), 터치 센서(touch sensor), 가속도 센서(acceleration sensor), 자기 센서(magnetic sensor), 중력 센서(G-sensor), 자이로스코프 센서(gyroscope sensor), 모션 센서(motion sensor), RGB 센서, 적외선 센서(IR 센서: infrared sensor), 지문인식 센서(finger scan sensor), 초음파 센서(ultrasonic sensor), 광 센서(optical sensor, 예를 들어, 카메라(121 참조)), 마이크로폰(microphone, 122 참조), 배터리 게이지(battery gauge), 환경 센서(예를 들어, 기압계, 토양습도계, 온도계, 방사능 감지 센서, 열 감지 센서, 가스 감지 센서 등), 화학 센서(예를 들어, 전자 코, 헬스케어 센서, 생체 인식 센서 등) 중 적어도 하나를 포함할 수 있다. 한편, 본 명세서에 개시된 전자 기기는, 이러한 센서들 중 적어도 둘 이상의 센서에서 센싱되는 정보들을 조합하여 활용할 수 있다.The
출력부(150)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 디스플레이부(151), 음향 출력부(152), 햅팁 모듈(153), 광 출력부(154) 중 적어도 하나를 포함할 수 있다. 디스플레이부(151)는 터치 센서와 상호 레이어 구조를 이루거나 일체형으로 형성됨으로써, 터치 스크린을 구현할 수 있다. 이러한 터치 스크린은, 전자 기기(100)와 사용자 사이의 입력 인터페이스를 제공하는 사용자 입력부(123)로써 기능함과 동시에, 전자 기기(100)와 사용자 사이의 출력 인터페이스를 제공할 수 있다.The
인터페이스부(160)는 전자 기기(100)에 연결되는 다양한 종류의 외부 기기와의 통로 역할을 수행한다. 이러한 인터페이스부(160)는, 유/무선 헤드셋 포트(port), 외부 충전기 포트(port), 유/무선 데이터 포트(port), 메모리 카드(memory card) 포트, 식별 모듈이 구비된 장치를 연결하는 포트(port), 오디오 I/O(Input/Output) 포트(port), 비디오 I/O(Input/Output) 포트(port), 이어폰 포트(port) 중 적어도 하나를 포함할 수 있다. 전자 기기(100)에서는, 상기 인터페이스부(160)에 외부 기기가 연결되는 것에 대응하여, 연결된 외부 기기와 관련된 적절할 제어를 수행할 수 있다.The
또한, 메모리(170)는 전자 기기(100)의 다양한 기능을 지원하는 데이터를 저장한다. 메모리(170)는 전자 기기(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 전자 기기(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다. 또한 이러한 응용 프로그램 중 적어도 일부는, 전자 기기(100)의 기본적인 기능(예를 들어, 전화 착신, 발신 기능, 메시지 수신, 발신 기능)을 위하여 출고 당시부터 전자 기기(100)상에 존재할 수 있다. 한편, 응용 프로그램은, 메모리(170)에 저장되고, 전자 기기(100) 상에 설치되어, 제어부(180)에 의하여 상기 전자 기기의 동작(또는 기능)을 수행하도록 구동될 수 있다.Also, the
제어부(180)는 상기 응용 프로그램과 관련된 동작 외에도, 통상적으로 전자 기기(100)의 전반적인 동작을 제어한다. 제어부(180)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 메모리(170)에 저장된 응용 프로그램을 구동함으로써, 사용자에게 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.The
또한, 제어부(180)는 메모리(170)에 저장된 응용 프로그램을 구동하기 위하여, 도 1과 함께 살펴본 구성요소들 중 적어도 일부를 제어할 수 있다. 나아가, 제어부(180)는 상기 응용 프로그램의 구동을 위하여, 전자 기기(100)에 포함된 구성요소들 중 적어도 둘 이상을 서로 조합하여 동작시킬 수 있다.In addition, the
전원공급부(190)는 제어부(180)의 제어 하에서, 외부의 전원, 내부의 전원을 인가받아 전자 기기(100)에 포함된 각 구성요소들에 전원을 공급한다. 이러한 전원공급부(190)는 배터리를 포함하며, 상기 배터리는 내장형 배터리 또는 교체가능한 형태의 배터리가 될 수 있다.The
상기 각 구성요소들 중 적어도 일부는, 이하에서 설명되는 다양한 실시 예들에 따른 전자 기기의 동작, 제어, 또는 제어방법을 구현하기 위하여 서로 협력하여 동작할 수 있다. 또한, 상기 전자 기기의 동작, 제어, 또는 제어방법은 상기 메모리(170)에 저장된 적어도 하나의 응용 프로그램의 구동에 의하여 전자 기기 상에서 구현될 수 있다. At least some of the components may operate in cooperation with each other in order to implement an operation, control, or control method of an electronic device according to various embodiments described below. Also, the operation, control, or control method of the electronic device may be implemented on the electronic device by driving at least one application program stored in the
본 명세서에서 서버(또는 클라우드 서버) 또는 클라이언트는 전자기기(100)를 포함할 수 있으며, 전자기기(100)는 단말로 통칭될 수 있다.In this specification, the server (or cloud server) or client may include the electronic device 100, and the electronic device 100 may be collectively referred to as a terminal.
단말은 외부 서버(또는 클라우드 서버) 또는 클라이언트와 네트워크로 연결되어 통신할 수 있다.The terminal may communicate with an external server (or cloud server) or a client through a network connection.
도 2는 본 명세서와 관련된 서버 또는 클라이언트를 나타내는 도면이다.2 is a diagram showing a server or client related to the present specification.
본 명세서에서 서버(또는 클라우드 서버) 또는 클라이언트는 제어부(200) 및 통신부(230)를 포함할 수 있다. 제어부(200)는 프로세서(210) 및 메모리(220)를 포함할 수 있다. 프로세서(210)는 메모리(220)에 저장된 명령어들을 수행할 수 있다. 프로세서(210)는 통신부(230)를 제어할 수 있다. 메모리(220)는 캐시(cache) 메모리를 포함할 수 있다. 캐시 메모리는 후술되는 원본 문서를 일정 시간 동안 임시로 저장할 수 있다.In this specification, a server (or cloud server) or a client may include a
프로세서(210)는 메모리(220)에 저장된 명령어에 기초하여 서버 또는 클라이언트의 동작을 제어할 수 있다. 서버 또는 클라이언트는 하나의 프로세서를 포함할 수 있고, 복수의 프로세서를 포함할 수 있다. 서버 또는 클라이언트가 복수의 프로세서를 포함하는 경우, 복수의 프로세서 중 적어도 일부는 물리적으로 이격된 거리에 위치할 수 있다. 또한, 서버 또는 클라이언트는 이에 한정되지 않고 알려진 다양한 방식으로 구현될 수 있다.The
통신부(230)는, 서버 또는 클라이언트와 무선 통신 시스템 사이, 서버 또는 클라이언트와 다른 서버 또는 클라이언트 사이, 또는 서버 또는 클라이언트와 외부서버(단말) 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 또한, 통신부(210)는, 서버 또는 클라이언트를 하나 이상의 네트워크에 연결하는 하나 이상의 모듈을 포함할 수 있다.The
제어부(200)는 메모리(220)에 저장된 응용 프로그램을 구동하기 위하여, 서버 또는 클라이언트의 구성요소들 중 적어도 일부를 제어할 수 있다. 나아가, 제어부(200)는 상기 응용 프로그램의 구동을 위하여, 서버 또는 클라이언트에 포함된 구성요소들 중 적어도 둘 이상을 서로 조합하여 동작 시킬 수 있다.The
본 명세서에서 서버는 리버싱 엔진 또는/및 CDR 서비스를 제공하는 CDR 엔진을 포함할 수 있다.In this specification, the server may include a reversing engine or/and a CDR engine providing CDR services.
리버싱(Reversing) 엔진Reversing Engine
리버싱 엔진이란, 비실행 파일에 대한 리버스 엔지니어링(리버싱) 과정을 자동화 한 분석/진단 엔진이다. 이는 역공학이라고 불리며, 이를 통해 서버는 소스코드가 없는 소프트웨어를 컴퓨터가 실행할 수 있는 언어인 어셈블리단까지 들어가 소프트웨어의 원리 및 구조에 대해 알 수 있다. 이를 이용하여 서버는 일반적인 소프트웨어(예를 들어, msoffice, pdf) 구조, 악성코드 행위, 취약점 악용 방법 등을 알 수 있다.A reversing engine is an analysis/diagnostic engine that automates the reverse engineering (reversing) process for non-executable files. This is called reverse engineering, and through this, the server can learn about the principles and structure of software without source code by entering the assembly stage, which is a language that computers can execute. Using this, the server can know the structure of general software (for example, msoffice, pdf), malicious code behavior, and how to exploit vulnerabilities.
예를 들어, 리버싱 엔진은 다음의 단계를 수행할 수 있다.For example, the reversing engine may perform the following steps.
1.파일 분석: 비실행 파일 자체의 외관(예를 들어, 속성, 작성자, 작성 날짜, 파일 타입)을 분석하는 단계로서, 일반 백신 프로그램과 유사하게 비실행 파일 자체의 정보만으로 악성여부를 진단할 수 있다.1. File analysis: As a step of analyzing the appearance of the non-executable file itself (eg, attribute, author, date of creation, file type), similar to general vaccine programs, maliciousness can be diagnosed only with the information of the non-executable file itself. can
2.정적 분석: 비실행 파일 내의 데이터를 추출, 분석해서 정상, 악성 여부를 판별하는 단계로서, 비실행 파일은 실행하지 않고 파일 구조에 맞게 내부 데이터를 추출하여 비교 분석하여 악성여부를 진단할 수 있다. 이는 매크로, URL 추출 분석 등에 적합할 수 있다.2.Static analysis: This is a step of extracting and analyzing data in non-executable files to determine whether they are normal or malicious. Non-executable files are not executed, and internal data is extracted according to the file structure and analyzed for comparison to diagnose maliciousness. there is. This may be suitable for macros, URL extraction analysis, and the like.
3.동적 분석: 비실행 파일을 실행하고 모니터링하면서 행위를 분석하여 악성 여부를 판별하는 단계로서, 매크로, 하이퍼링크, DDE 등 정상기능을 이용한 악성 행위를 탐지하기에 용이하다.3.Dynamic analysis: This is a step of analyzing behaviors while executing and monitoring non-executable files to determine whether they are malicious. It is easy to detect malicious behaviors using normal functions such as macros, hyperlinks, and DDE.
4.디버깅 분석: 비실행 파일을 실행하고 디버깅하여 취약점, 익스플로잇 등을 분석하는 단계로서, 매크로, 하이퍼링크, DDE를 포함하여 문서 내 본문, 표, 폰트, 그림 등을 이용한 응용프로그램의 취약점을 탐지하기에 적합하다.4. Debugging analysis: This is a step of analyzing vulnerabilities and exploits by executing and debugging non-executable files. Detecting vulnerabilities of applications using text, tables, fonts, pictures, etc. in documents, including macros, hyperlinks, and DDE suitable for doing
리버싱 엔진은 디버깅 분석에 사용될 수 있는 디버깅 엔진을 포함할 수 있다. 디버깅 엔진은 비실행 파일의 열람 과정을 디버깅 모드를 이용하여 문서 입력, 처리, 출력단계에서 발생하는 취약점을 진단할 수 있다. 여기서 취약점이란, 응용프로그램이 응용프로그램의 개발자가 개발한 코드(로직)에서 예상하지 못한 값을 입력 받았을 때, 발생하는 오류, 버그 등을 이용하는 것으로서, 공격자는 취약점을 통해 비정상 종료로 인한 서비스 거부, 원격 코드 실행 등의 악성 문서 행위를 실행할 수 있다.The reversing engine may include a debugging engine that may be used for debugging analysis. The debugging engine can diagnose vulnerabilities occurring in document input, processing, and output stages by using the debugging mode for the process of reading non-executable files. Vulnerability here refers to the use of errors and bugs that occur when an application program receives an unexpected value from the code (logic) developed by the application developer. Malicious document behavior such as remote code execution can be executed.
디버깅 엔진은 디버거를 포함할 수 있다. 디버거는 리버스 엔지니어링을 하기 위한 도구로 다른 대상 프로그램을 어셈블리 레벨에서 Break Point를 할 수 있는 프로그램, 프로세스를 의미할 수 있다.A debugging engine may include a debugger. A debugger is a tool for reverse engineering and can mean a program or process capable of breaking points in other target programs at the assembly level.
CDR(Contents Disarm and Reconstruction)Content Disarm and Reconstruction (CDR)
CDR 서비스는 비실행 파일을 분해해 악성파일 혹은 불필요한 파일을 제거하고 콘텐츠는 원본과 최대한 동일하게 하여, 새로운 파일을 만드는 솔루션이다.The CDR service is a solution that disassembles non-executable files, removes malicious or unnecessary files, and creates new files by making the contents the same as the original as much as possible.
즉, Contents Disarm and Reconstruction(CDR)은 문서 내의 컨텐츠를 무해화(Disarm)하고 재조합(Reconstruction)하여 안전한 문서를 만들어 고객에게 제공하는 서비스를 의미하며, 무해화 대상 파일은 비실행 파일 일체(예를 들어, 워드, 엑셀, 파워포인트, 한글, PDF)를 대상으로 할 수 있으며, 무해화 대상 컨텐츠는 액티브 컨텐츠(예를 들어, 매크로, 하이퍼링크, OLE 객체 등)일 수 있다.In other words, Contents Disarm and Reconstruction (CDR) means a service that disarms and reconstructs the contents in a document to create a safe document and provides it to customers. For example, Word, Excel, PowerPoint, Hangul, PDF) may be targeted, and the harmless target content may be active content (eg, macro, hyperlink, OLE object, etc.).
도 3은 본 명세서에 적용될 수 있는 비정상 입력의 예시이다.3 is an example of an abnormal input that can be applied to this specification.
도 3을 참조하면, 응용프로그램은 비실행 파일을 통해, 비정상적인 값(예를 들어, 입력값이 정상범위인 2를 초과하는 경우)을 입력 받는 경우, 개발자가 의도하지 않은 실행흐름으로 변경되어 취약점이 동작될 수 있다. 디버깅 엔진은 문서 열람 과정을 자동 디버깅하여 취약점과 관련된 특정 지점에 브레이크 포인트를 설정하고 입력값과 관련된 특정값을 확인하여 입력값이 취약점을 일으키는 값인지 아닌지 판별하여 악성 여부를 진단할 수 있다.Referring to FIG. 3, when an application program receives an abnormal value (for example, when the input value exceeds the normal range of 2) through a non-executable file, the application program is changed into an execution flow unintended by the developer and is vulnerable. this can work. The debugging engine automatically debugs the document browsing process, sets a breakpoint at a specific point related to the vulnerability, checks a specific value related to the input value, determines whether the input value is a value that causes a vulnerability, and diagnoses whether the input value is malicious.
보다 자세하게, 디버깅 엔진은 비실행 파일을 확인하고 이를 열람하기 위한 응용프로그램을 실행하여 디버깅을 시작할 수 있다. 비실행 파일을 열람하는 과정에서 문서 행위와 관련된 모듈이 로드 되면, 디버깅 엔진은 해당 모듈이 분석 대상 모듈인지 확인하고, 분석 대상이라면 지정된 주소에 브레이크 포인트를 설정할 수 있다.More specifically, the debugging engine can start debugging by identifying non-executable files and running an application to view them. When a module related to a document behavior is loaded while viewing a non-executable file, the debugging engine checks whether the module is an analysis target module, and if it is an analysis target, it can set a breakpoint at a designated address.
예를 들어, 악성 비실행 파일은 응용프로그램의 버전이나 운영체제 환경 등의 특정 조건이 만족하지 않으면 응용프로그램을 종료하거나 아무런 악성 행위가 발생하지 않는 흐름으로 분기하는 분기 지점들을 가질 수 있다. 서버는 사전에 분석가에 의해 분석되어 이러한 가능성을 가지는 분기 지점에 브레이크 포인트를 설정할 수 있다. For example, a malicious non-executable file may have branching points at which an application program is terminated or branched into a flow in which no malicious activity occurs unless a specific condition such as an application version or an operating system environment is satisfied. The server can set a breakpoint at a divergence point that has been previously analyzed by an analyst and has this possibility.
또한, 서버는 해당 분기 지점과 연관되어, 응용프로그램을 종료하지 않고 계속 실행하거나 악성 행위가 발생할 수 있는 흐름으로 유도할 수 있는 조건들을 설정할 수 있다.In addition, the server may set conditions associated with a corresponding branching point to continuously execute the application program without terminating or lead to a flow in which a malicious action may occur.
응용프로그램의 프로세스 실행 중 해당 브레이크 포인트 지점에서 프로세스가 멈춘 경우, 서버는 탐지 로직에 따라 취약점 여부를 탐지한 후, 결과를 분석 리포트에 저장하는 단계를 수행할 수 있다.If the process stops at the corresponding breakpoint while the process of the application program is running, the server may perform a step of detecting whether or not there is a vulnerability according to the detection logic and then storing the result in an analysis report.
서버에 포함된 자동화 리버싱 엔진은 전술한 단계들을 자동으로 수행하면서 분석하여 분석가가 연구, 개발한 진단 알고리즘을 통해, 악성 비실행 파일을 진단하고 차단할 수 있다.The automated reversing engine included in the server can analyze and diagnose malicious non-executable files through a diagnosis algorithm researched and developed by an analyst by automatically performing and analyzing the above steps.
도 4는 본 명세서가 적용될 수 있는 문서 행위 판단 방법을 예시한다.4 illustrates a method for determining a document behavior to which this specification can be applied.
도 4를 참조하면, 서버는 비실행 파일 및 비실행 파일을 실행시키기 위한 응용프로그램(예를 들어, MSOFFICE, 한컴오피스 등)을 포함할 수 있다.Referring to FIG. 4 , the server may include non-executable files and application programs (eg, MSOFFICE, Hancom Office, etc.) for executing non-executable files.
서버는 디버깅(debugging) 모드로 응용프로그램의 프로세스를 실행한다(S4010). 예를 들어, 서버는 CreateProcess API를 이용하여 디버깅 모드(DEBUG_ONLY_THIS_PROCESS)로 응용프로그램의 분석 대상 비실행 파일을 열기 위한 문서 프로세스를 실행할 수 있다. 이를 통해, 서버는 응용프로그램 프로세스의 디버그 이벤트를 수신 받을 수 있다.The server executes the process of the application program in debugging mode (S4010). For example, the server may execute a document process for opening a non-executable file to be analyzed by an application program in a debugging mode (DEBUG_ONLY_THIS_PROCESS) using the CreateProcess API. Through this, the server can receive the debug event of the application program process.
보다 자세하게, 서버는 CreateProcess API를 이용하여 응용프로그램 프로세스를 “DEBUG_ONLY_THIS_PROCESS” 플래그를 줘서 실행할 수 있다. In more detail, the server can execute the application process by passing the “DEBUG_ONLY_THIS_PROCESS” flag using the CreateProcess API.
서버는 응용프로그램의 프로세스에 근거하여, 문서 행위와 매칭되는 지점에 제1 중단점(breakpoint)를 설정한다(S4020). 예를 들어, 서버는 메모리에 적재된 응용프로그램의 프로세스와 관련된 OP(operating) 코드를 “0xCC”로 변경하여 중단점을 설정할 수 있다. OP 코드란, 명령코드를 의미하며 CPU가 실제로 수행하여야 할 작업 내용이 작성되어 있는 코드일 수 있다. 이를 위해, 서버는 WriteProcessMemory를 이용하여 메모리를 변경할 수 있다. Based on the process of the application program, the server sets a first breakpoint at a point matching the document behavior (S4020). For example, the server can set a breakpoint by changing the OP (operating) code related to the process of the application program loaded into memory to “0xCC”. The OP code means an instruction code and may be a code in which work contents to be actually performed by the CPU are prepared. To do this, the server can change the memory using WriteProcessMemory.
서버에는 문서 행위 및 해당 문서 행위가 매칭되는 지점에 관한 정보가 미리 설정되어 있을 수 있다. 예를 들어, 서버는 미리 정의 되어있는 행위 매칭 Break Point Table에 따라 WriteProcessMemory API를 이용하여 중단점을 설치할 수 있다.In the server, information about a document act and a point where the document act is matched may be set in advance. For example, the server can set breakpoints using the WriteProcessMemory API according to the predefined behavior matching Break Point Table.
서버는 비실행 파일이 실행 중인지 여부를 검사한다(S4030). 보다 자세하게, 서버는 Break Point를 설정한 후, 분석이 요청된 기타 비실행 파일들이 열람되어 있는 중인지 여부를 확인한다. 비실행 파일에서 요구하는 기능에 따라, 응용프로세스는 필요한 모듈이 메모리에 적재되므로, 타켓이 되는 비실행 파일의 문서 행위 판단의 신뢰성 확보에서 응용프로그램은 기타 비실행 파일들이 열람되어 있지 않은 상태를 갖어야 한다. 예를 들어, 악성 비실행 파일이 열람되었다면, 문서 행위 판단 결과에 대한 신뢰성이 낮아질 수 있다.The server checks whether the non-executable file is being executed (S4030). More specifically, after setting a break point, the server checks whether other non-executable files requested for analysis are being read. Depending on the functions required by the non-executable file, the application process loads the necessary modules into the memory, so the application program has a state in which other non-executable files are not read in order to secure the reliability of determining the document behavior of the target non-executable file. should be For example, if a malicious non-executable file is read, the reliability of the document behavior determination result may be lowered.
서버는 비실행 파일이 실행 중이지 않은 것에 근거하여, 분석 대상 비실행 파일을 실행한다(S4040). 보다 자세하게, 서버는 사용자가 분석을 요청한 비실행 파일을 해당 포맷에 맞는 응용프로그램 프로세스(예를 들어, EXCEL, WORD, PPT 등)를 이용하여 열람한다. 예들 들어, 서버는 MS Power point을 이용하여 sample.ppt 파일을 열람할 수 있다. 또는 서버는 비실행 파일이 실행 중인 지 여부를 검사하지 않고, 분석 대상 파일을 바로 실행할 수 있다.Based on the fact that the non-executable file is not being executed, the server executes the non-executable file to be analyzed (S4040). In more detail, the server reads the non-executable file requested by the user for analysis using an application program process (eg, EXCEL, WORD, PPT, etc.) suitable for the format. For example, the server can browse the sample.ppt file using MS Power Point. Alternatively, the server may directly execute the file to be analyzed without checking whether the non-executable file is running.
서버는 메모리 상에 분석 대상 비실행 파일과 관련된 신규 모듈이 로드되었는 지 여부를 판단한다(S4050). 서버는 분석 대상 비실행 파일이 응용프로그램 프로세스에 의해 실행되면, 신규 모듈이 로드되었는지 확인한다.The server determines whether a new module related to the non-executable file to be analyzed is loaded on the memory (S4050). When the non-executable file to be analyzed is executed by the application program process, the server checks whether a new module is loaded.
예를 들어, 서버는 디버깅 모드를 이용하여, 응용프로그램 프로세스에서 디버깅 이벤트가 발생하면 이를 수신할 수 있다. 서버는 해당 이벤트를 이용하여 LOAD DLL 이벤트가 발생하면 신규 모듈(예를 들어, DLL 메모리 탑재)로 판단할 수 있다. 보다 자세하게, 서버는 “LOAD_DLL_DEBUG_EVENT” 이벤트가 발생하면 신규 모듈이 올라온 것으로 판단할 수 있다.For example, the server may receive a debugging event when a debugging event occurs in an application program process using a debugging mode. The server can determine a new module (eg, DLL memory loading) when a LOAD DLL event occurs using the corresponding event. More specifically, the server may determine that a new module has been uploaded when a “LOAD_DLL_DEBUG_EVENT” event occurs.
예를 들어, 서버는 분석 대상 비실행 파일에서 필요한 기능(예를 들어, 메크로, ActiveX 기능 등)을 사용하기위해 응용프로그램 프로세스 기능에 맞는 모듈을 신규로 메모리에 적재할 수 있다.For example, the server may newly load a module suitable for an application program process function into memory in order to use a function (for example, a macro, an ActiveX function, etc.) required in a non-executable file to be analyzed.
서버는 신규 모듈의 로드에 근거하여, 문서 행위와 매칭되는 지점에 제2 중단점을 설정한다(S4060). 만일, 신규 모듈이 로드되었다고 판단되지 않는 경우, 서버는 제2 중단점을 설정하지 않는다.Based on the load of the new module, the server sets a second breakpoint at a point matching the document action (S4060). If it is not determined that the new module is loaded, the server does not set a second breakpoint.
서버는 제1 중단점 및/또는 제2 중단점에서 응용프로그램 프로세스가 중단되었는지 여부를 모니터링한다(S4070). 예를 들어, 서버는 중단점에서 응용프로그램 프로세스가 중단되어 프로세스 제어권이 디버거로 넘어갔는지를 확인할 수 있다. 제어권을 넘겨받은 디버거는 어떤 중단점에서 중단되었는지를 확인할 수 있다.The server monitors whether the application process is stopped at the first breakpoint and/or the second breakpoint (S4070). For example, the server can check whether the application process is stopped at the breakpoint and control of the process is transferred to the debugger. The debugger that has taken over control can check at which breakpoint it was interrupted.
서버는 모니터링 결과에 근거하여, 제1 중단점 및/또는 제2 중단점과 매칭되는 문서 행위 정보를 생성한다(S4080). 예를 들어, 서버는 중단점의 주소값을 확인할 수 있다. 이후, 서버는 해당 문서 행위 및 해당 문서 행위가 매칭되는 지점에 관한 정보에 근거하여, 중단점의 주소값과 매칭된 문서 행위에 대한 정보를 생성하고 이를 저장할 수 있다.Based on the monitoring result, the server generates document action information matching the first breakpoint and/or the second breakpoint (S4080). For example, the server can check the address value of the breakpoint. Thereafter, the server may generate and store information on a document activity matched with an address value of a breakpoint based on information about a corresponding document activity and a point where the corresponding document activity is matched.
다음의 표 1은 저장되는 중단점의 주소값과 매칭된 문서 행위의 예시이다.Table 1 below is an example of the document behavior matched with the stored address value of the breakpoint.
서버는 분석 대상 비실행 파일의 열람이 종료되었는지를 판단한다(S4090). 예를 들어, 서버는 기설정된 시간이 지났거나 메시지박스(Alert), Break Point를 일정시간 거치지 않았을 경우 등의 방식으로 분석 대상 비실행 파일의 열람이 종료되었는지 판단할 수 있다.The server determines whether the reading of the non-executable file to be analyzed is terminated (S4090). For example, the server may determine whether the viewing of the non-executable file to be analyzed is terminated in a manner such as when a preset time has elapsed or a message box (Alert) or a break point has not been passed for a certain period of time.
만일, 열람이 종료되지 않은 경우, 서버는 응용프로그램의 프로세스가 중단점에서 중단되었는지를 지속적으로 모니터링한다. 이를 통해, 서버는 문서 행위가 충분히 발현되도록 대기할 수 있다.If the browsing is not terminated, the server continuously monitors whether the process of the application program is stopped at the breakpoint. Through this, the server can wait for the document action to fully manifest.
이후, 서버는 저장된 문서 행위 정보를 단말로 전달할 수 있다. 이를 위해, 단말은 서버와 통신할 수 있고, 서버의 동작을 제어할 수 있는 관리프로그램을 포함할 수 있다. 단말은 관리 응용프로그램을 통해, 사용자에게 문서 행위 정보를 제공할 수 있다.Thereafter, the server may transmit the stored document behavior information to the terminal. To this end, the terminal may include a management program capable of communicating with the server and controlling the operation of the server. The terminal may provide document action information to the user through the management application program.
기존의 APT 솔루션은 문서 행위 발현 후, 샌드박스 변화를 기반으로 문서 행위를 추출한다. 이는 샌드박스가 문서 행위가 발현될 때까지 대기해야 하기 때문에 분석시간이 길어진다. 또한, 최종적으로 마지막 부분(예를 들어, 샌드박스 변화 후)을 확인하기 때문에 본 명세서의 분석 속도보다 느리다.Existing APT solutions extract document behavior based on sandbox changes after document behavior is manifested. This increases the analysis time because the sandbox has to wait until the document behavior is manifested. Also, since the last part is finally checked (eg, after sandbox change), the analysis speed in this specification is slower.
또한, 본 명세서의 서버는 샌드박스의 변화 전 단계에서 응용프로그램 프로세스가 실행되는 시점부터 분석을 시작할 수 있다.In addition, the server of the present specification may start analysis from the time when the application process is executed in the stage before the change of the sandbox.
또한, 어셈블리 레벨(예를 들어, CPU 명령어 처리 단계)부터 문서 행위의 변화를 확인하기 때문에 기존 APT 솔루션보다 분석 속도(행위 추출)가 빠르다.In addition, since changes in document behavior are checked from the assembly level (eg, CPU instruction processing stage), the analysis speed (behavior extraction) is faster than that of existing APT solutions.
또한, 기존 APT 솔루션은 문서 행위가 발현할 때까지 대기하므로, 종료 시점을 알기 어렵다. 하지만 본 명세서에서 서버는 문서 행위의 종료 시점을 대략적으로 판단할 수 있으므로, 빠르게 분석이 가능하다.In addition, the existing APT solution waits until the document action appears, so it is difficult to know the end point. However, in this specification, since the server can roughly determine the end point of a document action, it is possible to analyze quickly.
또한, 본 명세서에서 서버는 문서 행위와 대응되는 응용프로그램 프로세스가 사용하는 기능을 정확하게 파악할 수 있다.In addition, in this specification, the server can accurately grasp the function used by the application program process corresponding to the document action.
도 5는 본 명세서의 일 실시예에 따른 AI 장치의 블록도이다.5 is a block diagram of an AI device according to an embodiment of the present specification.
도 5를 참조하면, 상기 AI 장치(20)는 AI 프로세싱을 수행할 수 있는 AI 모듈을 포함하는 전자 기기 또는 상기 AI 모듈을 포함하는 서버 등을 포함할 수 있다. 또한, 상기 AI 장치(20)는 도 1에 도시된 전자기기(100)의 적어도 일부의 구성으로 포함되어 AI 프로세싱 중 적어도 일부를 함께 수행하도록 구비될 수도 있다.Referring to FIG. 5 , the
상기 AI 장치(20)는 AI 프로세서(21), 메모리(25) 및/또는 통신부(27)를 포함할 수 있다.The
상기 AI 장치(20)는 인공지능 모델을 학습할 수 있는 컴퓨팅 장치로서, 서버, 데스크탑 PC, 노트북 PC, 태블릿 PC 등과 같은 다양한 전자 장치로 구현될 수 있다.The
AI 프로세서(21)는 메모리(25)에 저장된 프로그램을 이용하여 인공지능 모델을 학습할 수 있다. 특히, AI 프로세서(21)는 악성 문서 탐지를 위한 인공지능 모델을 메모리(25) 상에 생성할 수 있고, 리버싱 엔진을 통해, 수집될 수 있는 데이터를 이용하여, 이러한 인공지능 모델을 학습시킬 수 있다.The
예를 들어, 인공지능 모델은 XGBoost 와 같은 DecisionTree 기반의 앙상블 모델을 이용하여, 생성될 수 있다. 보다 자세하게, 악성코드 분석가가 악성 코드를 탐지하는 정책(예를 들어, 시그니처, 행위 탐지 패턴)을 만드는 방법은 DecisionTree과 유사하므로, 본 명세서의 인공지능 모델은 DecisionTree 기반의 앙상블 모델을 이용할 때, 보다 높은 성능을 기대할 수 있다.For example, AI models can be created using DecisionTree-based ensemble models such as XGBoost. In more detail, since the method by which malware analysts create policies (e.g., signatures, behavior detection patterns) to detect malicious codes is similar to DecisionTree, the artificial intelligence model in this specification is more effective when using DecisionTree-based ensemble models. High performance can be expected.
도 6는 본 명세서의 일 실시예에 따른 머신러닝 모델링 방법의 예시이다.6 is an example of a machine learning modeling method according to an embodiment of the present specification.
도 6을 참조하면, 서버는 인공지능 모델의 학습을 위한 샘플 데이터를 수집하고, 전처리하여 인공지능 모델의 학습을 수행할 수 있다.Referring to FIG. 6 , the server may collect and pre-process sample data for learning the artificial intelligence model to perform learning of the artificial intelligence model.
대량으로 제작된 악성 문서 파일들은 비슷한 패턴을 갖고 있기 때문에 이들의 데이터 특징과 악성 문서 파일의 행위 패턴을 학습한 인공지능 모델을 활용하면, 서버는 효과적으로 악성 문서 파일을 탐지할 수 있다.Since malicious document files produced in large quantities have similar patterns, the server can effectively detect malicious document files by using an artificial intelligence model that has learned the behavior patterns of these data characteristics and malicious document files.
서버는 학습을 위한 샘플 데이터를 수집한다(S6010). 예를 들어, 서버는 사용자 또는 네트워크로부터 샘플 데이터를 수집할 수 있다. 샘플 데이터는 비실행 파일을 포함한다.The server collects sample data for learning (S6010). For example, the server may collect sample data from users or networks. Sample data includes non-executable files.
서버는 샘플 데이터에 근거하여, 중복 데이터를 제거하고, 라벨링(labeling)을 수행한다(S6020). 예를 들어, 서버는 샘플 데이터의 정보를 분석하여, 중복되는 데이터는 제거하고, 악성인지 정상인지에 대한 라벨링을 수행할 수 있다.The server removes redundant data based on the sample data and performs labeling (S6020). For example, the server may analyze information of the sample data, remove redundant data, and label whether the data is malicious or normal.
서버는 샘플 데이터를 분류한다(S6030). 예를 들어, 샘플 데이터는 파일의 타입 별로 분류될 수 있다. 보다 자세하게, 서버는 CFB 타입(예를 들어, DOC, XLS, PPT), OOXML 타입(예를 들어, DOCX, XLSX, PPTX), PDF 타입 또는 HWP 타입 등으로 샘플 데이터를 분류할 수 있다.The server classifies the sample data (S6030). For example, sample data may be classified according to file types. In more detail, the server may classify sample data into CFB type (eg DOC, XLS, PPT), OOXML type (eg DOCX, XLSX, PPTX), PDF type or HWP type.
서버는 분류된 샘플 데이터에 근거하여, 정적 특징 및/또는 동적 특징을 추출한다(S6040). 예를 들어, 서버는 파일의 타입 별로 학습에 필요한 정적 특징 및/또는 동적 특징을 추출할 수 있다. 보다 자세하게, 정적 특징이란, 서버가 비실행 파일을 실행하지 않고도 분석하여 추출할 수 있는 정보이고, 동적 특징이란, 서버가 디버깅 엔진을 통해 추출하는 정보를 의미할 수 있다.The server extracts static features and/or dynamic features based on the classified sample data (S6040). For example, the server may extract static features and/or dynamic features necessary for learning for each file type. More specifically, the static feature is information that can be analyzed and extracted by the server without executing the non-executable file, and the dynamic feature may mean information that the server extracts through a debugging engine.
표 2는 PDF 타입의 문서에서 정적 특징을 예시한다.Table 2 illustrates static features in PDF type documents.
- 악성 문서의 경우 비정상적인 값들이 포함되어 있음
ex) 편집기명, 작성자 명, 문서 수정 횟수, 문서 총 편집 시간 등- Extracting general information from documents.
- Malicious documents contain abnormal values
ex) Editor name, author name, number of document revisions, total document editing time, etc.
ex) 문서 페이지 수, 문단 수, 글자 수, 포함된 이미지 수 등- Extraction of information that can be obtained from the body of the document. - Malicious documents often have a more monotonous structure than normal documents.
ex) Number of document pages, number of paragraphs, number of characters, number of included images, etc.
ex) OpenAction, Automatic Annotation 포함 여부&개수- A function to set a specific action to be performed when viewing a document. - An attacker can use this function to perform malicious actions in conjunction with JavaScript when viewing documents.
ex) Whether OpenAction, Automatic Annotation are included & number
- 공격자는 여기에 악의적인 콘텐츠를 삽입 할 수 있음.
ex) Embedded File 개수- PDF can insert various objects such as images and links through the embed function
- Attackers can insert malicious content here.
ex) Number of embedded files
표 3은 Office 타입의 문서에서 정적 특징을 예시한다.Table 3 exemplifies static features in Office type documents.
- 악성 문서의 경우 비정상적인 값들이 포함되어 있음
ex) 편집기명, 작성자 명, 문서의 암호화 여부, 문서 수정 횟수, 문서 총 편집 시간, 문서 페이지 수 등- Extracting general information from documents.
- Malicious documents contain abnormal values
ex) Editor name, author name, whether the document is encrypted, number of document revisions, total editing time of the document, number of document pages, etc.
- 악성 문서의 경우 정상 문서에 비해 더 단조로운 구조를 띄는 경우가 많음
ex) 문서 페이지 수, 문단 수, 글자 수, 포함된 이미지 수 등- Extraction of information that can be obtained from the document body.
- Malicious documents often have a more monotonous structure than normal documents
ex) Number of document pages, number of paragraphs, number of characters, number of included images, etc.
- 삽입된 VBA 매크로를 추출하여 악성 행위에 많이 사용되는 특정 키워드의 존재 여부, 종류 등을 사용
ex) AutoExec, Hex String, IP address, URLs, executable filenames, email addresses- When a user reads a document or performs a specific action after reading the document, a macro designed to perform the desired action by the attacker can be inserted into the document to perform malicious actions.
- By extracting the inserted VBA macro, the existence and type of specific keywords frequently used in malicious behavior are used.
ex) AutoExec, Hex String, IP address, URLs, executable filenames, email addresses
- 공격자는 해당 기능을 이용해 악성코드 유포지로 접속해 악성코드를 유포할 수 있음
ex) DDE link 삽입 여부- DDE (Dynamic Data Exchange) is a function for sharing data between Windows applications and is used to import data from external sources.
- An attacker can use this function to connect to a malicious code distribution site and distribute malicious code.
ex) DDE link insertion
표 4는 각 문서의 타입에 적용될 수 있는 동적 특징을 예시한다.Table 4 illustrates dynamic features that can be applied to each type of document.
- 연결 기능을 이용하여 악성 코드를 다운 받을 수 있음
ex) AttachedTemplate, Frame, LinkedObject- Automatic connection type information when viewing documents
- Malicious code can be downloaded using the connection function
ex) AttachedTemplate, Frame, LinkedObject
- 악성 매크로가 주로 사용하는 오브젝트 정보를 학습 특징을 활용
ex) wscript.shell, msxml2.xmlhttp 등- Class information instantiated by macro
- Utilize object information mainly used by malicious macros to learn features
ex) wscript.shell, msxml2.xmlhttp, etc.
ex) run, open, exec 등- Utilize as a feature whether macros that can be used maliciously in instantiated classes are executed
ex) run, open, exec, etc.
- 악성 문서 파일은 악성 실행 파일을 하위 프로세스로 생성할 수 있음
ex) 프로세스 이름, 프로세스 인자값, 실행 경로 등- Use sub-process generation information as a learning feature when reading document files
- A malicious document file can create a malicious executable file as a sub-process
ex) Process name, process argument value, execution path, etc.
전술한 예시와 유사하게 서버는 문서의 타입 별로 정적/동적 특징을 설정할 수 있다.서버는 정적 특징 및/또는 동적 특징을 전처리한다(S6050). 예를 들어, 서버는 인공지능 모델이 이해할 수 있는 형태로 정적 특징 및/또는 동적 특징을 전처리 할 수 있다.Similar to the above example, the server may set static/dynamic characteristics for each type of document. The server pre-processes static and/or dynamic characteristics (S6050). For example, the server may preprocess static features and/or dynamic features into a form that the AI model can understand.
서버는 전처리된 정적 특징 및/또는 동적 특징을 이용하여 인공지능 모델을 학습시킨다(S6060).The server trains the artificial intelligence model using the preprocessed static features and/or dynamic features (S6060).
도 7은 본 명세서가 적용될 수 있는 동적 특징 추출의 예시이다.7 is an example of dynamic feature extraction to which the present specification can be applied.
도 7을 참조하면, S6040의 디버깅 엔진을 통해 동적 특징을 추출하는 방법을 보다 자세히 예시한다. 이는 도 4에서 전술한 문서 행위 판단 방법과 동시 또는 별도로 수행될 수 있다.Referring to FIG. 7 , a method of extracting dynamic features through the debugging engine of S6040 is exemplified in more detail. This may be performed concurrently with or separately from the document behavior determination method described in FIG. 4 .
서버는 디버깅 엔진을 통해, 샘플 데이터로부터 동적 특징을 추출하기 위한 중단점을 설정한다(S7010). 예를 들어, 서버에는 해당 샘플 데이터의 타입에 따라, 동적 특징에 매칭되는 지점에 관한 정보가 미리 설정되어 있을 수 있다. 보다 자세하게, 서버는 미리 정의 되어있는 동적 특징 매칭 Break Point Table에 따라 WriteProcessMemory API를 이용하여 중단점을 설정할 수 있다.The server sets breakpoints for extracting dynamic features from sample data through the debugging engine (S7010). For example, information about a point matching a dynamic feature may be previously set in the server according to the type of corresponding sample data. More specifically, the server can set breakpoints using the WriteProcessMemory API according to the predefined dynamic feature matching Breakpoint Table.
서버는 샘플 데이터를 실행하고, 중단점에서 샘플 데이터와 관련된 응용프로그램의 프로세스가 중단되는지 여부를 모니터링한다(S7020).The server executes the sample data and monitors whether the process of the application program related to the sample data is stopped at the breakpoint (S7020).
프로세스가 중단되지 않은 경우, 서버는 샘플 데이터와 관련된 신규 모듈이 로드되었는 지 여부를 판단한다(S7030). 예를 들어, 서버는 “LOAD_DLL_DEBUG_EVENT” 이벤트가 발생하면 신규 모듈이 올라온 것으로 판단할 수 있다. 신규 모듈이 로드 된 경우, 서버는 당해 신규 모듈에 대해서도 중단점을 설정하고, 신규 모듈과 관련된 응용프로그램의 프로세스가 중단되는지 여부를 모니터링 할 수 있다.If the process is not interrupted, the server determines whether a new module related to the sample data is loaded (S7030). For example, the server may determine that a new module has been uploaded when a “LOAD_DLL_DEBUG_EVENT” event occurs. When a new module is loaded, the server may set a break point for the new module and monitor whether a process of an application program related to the new module is stopped.
프로세스가 중단되는 경우, 서버는 동적 특징을 추출한다(S7040).When the process is stopped, the server extracts dynamic features (S7040).
예를 들어, 서버는 중단점에 근거하여, 동적 특징 데이터를 추출하고, 이를 기록하고 취합할 수 있다. 서버는 당해 샘플 데이터의 다른 중단점에도 전술한 동작을 반복하여, 동적 데이터를 추출할 수 있다.For example, the server may extract, record and aggregate dynamic feature data based on breakpoints. The server may extract dynamic data by repeating the above-described operation at other breakpoints of the sample data.
보다 자세하게, 중단점이 매크로(macro) 자동 실행과 관련된 동적 특징을 추출하기 위한 것인 경우, 서버는 프로세스가 중단되면 EAX 레지스터를 확인할 수 있다. 이후, 서버는 EAX 레지스터가 가리키는 메모리의 데이터를 확인하고, “Auto_Open” 키워드가 확인되면, 매크로 자동 실행 특징 데이터를 추출하고 기록할 수 있다. 다른 동적 특징에 대해서도, 이와 유사하게 추출될 수 있음은 물론이다.More specifically, if the breakpoint is to extract dynamic characteristics related to macro auto-execution, the server can check the EAX register when the process is halted. Thereafter, the server checks the data of the memory pointed to by the EAX register, and if the “Auto_Open” keyword is confirmed, the macro auto-execution feature data can be extracted and recorded. It goes without saying that for other dynamic features, they can be similarly extracted.
본 명세서에서 서버는 학습된 인공지능 모델을 이용하여, 문서형 악성코드에 대한 탐지율을 높일 수 있다. 또한, 리버싱 엔진이 분석을 하는 동안, 정적 특징의 결과를 얻어, 두 가지 판별 모델(예를 들어, 리버싱 엔진 및 정적 특징 모델)의 결과를 취합해 문서형 악성코드의 탐지율 상승을 기대할 수 있다.In the present specification, the server may increase the detection rate of document-type malicious code by using the learned artificial intelligence model. In addition, while the reversing engine is analyzing, it is possible to expect an increase in the detection rate of document-type malware by obtaining static feature results and combining the results of two discrimination models (eg, a reversing engine and a static feature model). .
또한, 문서의 정상 기능(예를 들어, 매크로, 원격 데이터 연결 등)을 이용한 대량 생산 악성코드들은 인공지능 모델을 이용하여 탐지하여, 탐지율을 극대화할 수 있다.In addition, mass-produced malicious codes using normal functions of documents (eg, macros, remote data connections, etc.) can be detected using an artificial intelligence model, thereby maximizing the detection rate.
전술한 본 명세서는, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀 질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 명세서의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 명세서의 등가적 범위 내에서의 모든 변경은 본 명세서의 범위에 포함된다.The above specification can be implemented as computer readable code on a medium on which a program is recorded. A computer-readable medium includes all types of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable media include Hard Disk Drive (HDD), Solid State Disk (SSD), Silicon Disk Drive (SDD), ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc. , and also includes those implemented in the form of a carrier wave (eg, transmission over the Internet). Accordingly, the above detailed description should not be construed as limiting in all respects and should be considered illustrative. The scope of this specification should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of this specification are included in the scope of this specification.
또한, 이상에서 서비스 및 실시 예들을 중심으로 설명하였으나 이는 단지 예시일 뿐 본 명세서를 한정하는 것이 아니며, 본 명세서가 속하는 분야의 통상의 지식을 가진 자라면 본 서비스 및 실시 예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시 예들에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부한 청구 범위에서 규정하는 본 명세서의 범위에 포함되는 것으로 해석되어야 할 것이다.In addition, although services and embodiments have been described above, this is only an example and does not limit the present specification, and those skilled in the art to which this specification belongs will not deviate from the essential characteristics of the present service and embodiments. It will be appreciated that various modifications and applications not exemplified above are possible. For example, each component specifically shown in the embodiments can be modified and implemented. And differences related to these modifications and applications should be construed as being included in the scope of the present specification as defined in the appended claims.
Claims (7)
상기 악성 문서 파일 탐지를 위한 인공지능 모델의 학습을 위한 샘플 데이터를 수집하는 단계;
파일의 타입에 근거하여, 상기 샘플 데이터를 분류하는 단계로서, 상기 파일의 타입은 CFB 타입, OOXML 타입, PDF 타입 및 HWP 타입을 포함함;
상기 분류된 샘플 데이터에 근거하여, 상기 샘플 데이터의 동적 특징 및 정적 특징을 추출하는 단계; 및
상기 동적 특징 및 상기 정적 특징을 이용하여, 상기 인공지능 모델을 학습시키는 단계;
를 포함하고,
상기 동적 특징은
디버깅(debugging) 엔진을 통해 추출되는 정보로서, 1) 상기 악성 문서 파일의 실행 시, 외부 연결(link)과 관련된 특징, 2) 매크로의 자동실행과 관련된 특징, 및 3) 상기 악성 문서 파일의 실행 시, 생성되는 자식 프로세스와 관련되는 특징을 포함하며,
상기 정적 특징은
1) 상기 파일의 타입이 상기 PDF 타입인 경우 : (1) PDF Keyword와 관련된 특징, (2) Open Action & Automatic Annotation과 관련된 특징, 및 (3) Embedded File과 관련된 특징을 포함하고,
2) 상기 파일의 타입이 상기 CFB 타입, 상기 OOXML 타입, 또는 상기 HWP 타입인 경우 : (1) Storage & Stream과 관련된 특징, (2) 상기 매크로와 관련된 특징, (3) DDE와 관련된 특징, 및 (4) SWF와 관련된 특징을 포함하는,
모델링 방법.
In the method for machine learning modeling for a server to detect a malicious document file,
collecting sample data for learning an artificial intelligence model for detecting the malicious document file;
classifying the sample data according to a file type, wherein the file type includes a CFB type, an OOXML type, a PDF type, and an HWP type;
extracting dynamic features and static features of the sample data based on the classified sample data; and
learning the artificial intelligence model using the dynamic feature and the static feature;
including,
The dynamic feature is
As information extracted through a debugging engine, 1) features related to external links when the malicious document file is executed, 2) features related to automatic execution of macros, and 3) execution of the malicious document file contains characteristics related to the child process being created,
The static feature is
1) When the file type is the PDF type: (1) features related to PDF keywords, (2) features related to Open Action & Automatic Annotation, and (3) features related to embedded files,
2) When the file type is the CFB type, the OOXML type, or the HWP type: (1) Features related to Storage & Stream, (2) Features related to the macro, (3) Features related to DDE, and (4) including features related to SWF;
modeling method.
상기 동적 특징을 추출하는 단계는
상기 샘플 데이터에 상기 동적 특징을 추출하기 위한 제1 중단점을 설정하는 단계;
상기 샘플 데이터를 실행하고, 상기 중단점에서 상기 샘플 데이터와 관련된 응용프로그램의 프로세스가 중단되는 지 여부를 제1 모니터링 하는 단계; 및
상기 프로세스가 중단되는 것에 근거하여, 상기 동적 특징을 추출하는 단계;
를 포함하는, 모델링 방법.
According to claim 1,
The step of extracting the dynamic feature is
setting a first breakpoint for extracting the dynamic feature in the sample data;
executing the sample data and first monitoring whether a process of an application program related to the sample data is stopped at the breakpoint; and
based on the stopping of the process, extracting the dynamic feature;
Including, modeling method.
상기 동적 특징을 추출하는 단계는
상기 프로세스가 중단되지 않는 것에 근거하여, 상기 샘플 데이터와 관련된 신규 모듈이 로드되었는 지 여부를 판단하는 단계;
상기 신규 모듈의 로드에 근거하여, 상기 동적 특징을 추출하기 위한 제2 중단점을 설정하는 단계;
상기 제2 중단점에서 상기 응용프로그램의 프로세스가 중단되었는지 여부를 제2 모니터링하는 단계; 및
1) 상기 제1 모니터링의 결과, 또는 2) 상기 제2 모니터링의 결과에 근거하여, 상기 동적 특징을 추출하는 단계;
를 더 포함하는, 모델링 방법.
According to claim 4,
The step of extracting the dynamic feature is
judging whether a new module related to the sample data has been loaded based on the fact that the process is not interrupted;
setting a second breakpoint for extracting the dynamic feature according to the load of the new module;
second monitoring whether the process of the application program is stopped at the second breakpoint; and
extracting the dynamic feature based on 1) a result of the first monitoring or 2) a result of the second monitoring;
Further comprising a, modeling method.
통신부;
디버깅(debugging) 엔진이 포함된 메모리; 및
상기 통신부 및 상기 메모리를 기능적으로 제어하는 프로세서; 를 포함하고,
상기 프로세서는
상기 악성 문서 파일 탐지를 위한 인공지능 모델의 학습을 위한 샘플 데이터를 수집하고, 파일의 타입에 근거하여, 상기 샘플 데이터를 분류하며, 상기 파일의 타입은 CFB 타입, OOXML 타입, PDF 타입 및 HWP 타입을 포함하고, 상기 분류된 샘플 데이터에 근거하여, 상기 샘플 데이터의 동적 특징 및 정적 특징을 추출하며, 상기 동적 특징 및 상기 정적 특징을 이용하여, 상기 인공지능 모델을 학습시키고,
상기 동적 특징은
디버깅(debugging) 엔진을 통해 추출되는 정보로서, 1) 상기 악성 문서 파일의 실행 시, 외부 연결(link)과 관련된 특징, 2) 매크로의 자동실행과 관련된 특징, 및 3) 상기 악성 문서 파일의 실행 시, 생성되는 자식 프로세스와 관련되는 특징을 포함하며,
상기 정적 특징은
1) 상기 파일의 타입이 상기 PDF 타입인 경우 : (1) PDF Keyword와 관련된 특징, (2) Open Action & Automatic Annotation과 관련된 특징, 및 (3) Embedded File과 관련된 특징을 포함하고,
2) 상기 파일의 타입이 상기 CFB 타입, 상기 OOXML 타입, 또는 상기 HWP 타입인 경우 : (1) Storage & Stream과 관련된 특징, (2) 상기 매크로와 관련된 특징, (3) DDE와 관련된 특징, 및 (4) SWF와 관련된 특징을 포함하는, 서버.
In a server that performs machine learning modeling for detecting a malicious document file,
communications department;
memory containing a debugging engine; and
a processor functionally controlling the communication unit and the memory; including,
The processor
Sample data for learning the artificial intelligence model for detecting the malicious document file is collected, and the sample data is classified based on the file type, and the file type is a CFB type, an OOXML type, a PDF type, and a HWP type. Including, extracting dynamic and static features of the sample data based on the classified sample data, and learning the artificial intelligence model using the dynamic and static features;
The dynamic feature is
As information extracted through a debugging engine, 1) features related to external links when the malicious document file is executed, 2) features related to automatic execution of macros, and 3) execution of the malicious document file contains characteristics related to the child process being created,
The static feature is
1) When the file type is the PDF type: (1) features related to PDF keywords, (2) features related to Open Action & Automatic Annotation, and (3) features related to embedded files,
2) When the file type is the CFB type, the OOXML type, or the HWP type: (1) Features related to Storage & Stream, (2) Features related to the macro, (3) Features related to DDE, and (4) A server, including features related to the SWF.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220151889A KR102548985B1 (en) | 2022-11-14 | 2022-11-14 | Methods and apparatus for machine learning modeling for detecting malicious document files |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220151889A KR102548985B1 (en) | 2022-11-14 | 2022-11-14 | Methods and apparatus for machine learning modeling for detecting malicious document files |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102548985B1 true KR102548985B1 (en) | 2023-06-28 |
Family
ID=86994051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220151889A KR102548985B1 (en) | 2022-11-14 | 2022-11-14 | Methods and apparatus for machine learning modeling for detecting malicious document files |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102548985B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102698907B1 (en) * | 2024-02-21 | 2024-08-26 | 시큐레터 주식회사 | Methods and devices for pre-filtering in a security solution by examining the internal information of the introduced document |
KR102699552B1 (en) * | 2024-03-15 | 2024-08-27 | 시큐레터 주식회사 | Method for inspecting the internal features of compound file binary format or office open xml format documents for quick classification of additional analysis targets in security solutions |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140090061A1 (en) * | 2012-09-26 | 2014-03-27 | Northrop Grumman Systems Corporation | System and method for automated machine-learning, zero-day malware detection |
US11222112B1 (en) * | 2021-02-24 | 2022-01-11 | Netskope, Inc. | Signatureless detection of malicious MS office documents containing advanced threats in macros |
KR102460078B1 (en) * | 2022-05-25 | 2022-10-28 | 시큐레터 주식회사 | Method of making efficient backup space for original file using difference (delta) extraction method in disarming operation and apparatus therefor |
-
2022
- 2022-11-14 KR KR1020220151889A patent/KR102548985B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140090061A1 (en) * | 2012-09-26 | 2014-03-27 | Northrop Grumman Systems Corporation | System and method for automated machine-learning, zero-day malware detection |
US11222112B1 (en) * | 2021-02-24 | 2022-01-11 | Netskope, Inc. | Signatureless detection of malicious MS office documents containing advanced threats in macros |
KR102460078B1 (en) * | 2022-05-25 | 2022-10-28 | 시큐레터 주식회사 | Method of making efficient backup space for original file using difference (delta) extraction method in disarming operation and apparatus therefor |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102698907B1 (en) * | 2024-02-21 | 2024-08-26 | 시큐레터 주식회사 | Methods and devices for pre-filtering in a security solution by examining the internal information of the introduced document |
KR102699552B1 (en) * | 2024-03-15 | 2024-08-27 | 시큐레터 주식회사 | Method for inspecting the internal features of compound file binary format or office open xml format documents for quick classification of additional analysis targets in security solutions |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Carmony et al. | Extract Me If You Can: Abusing PDF Parsers in Malware Detectors. | |
KR102548985B1 (en) | Methods and apparatus for machine learning modeling for detecting malicious document files | |
KR102494827B1 (en) | Methods and apparatus for detecting malicious macros in non-executable files using ocr | |
US20110030060A1 (en) | Method for detecting malicious javascript | |
CN101751530B (en) | Method for detecting loophole aggressive behavior and device | |
CN106650434B (en) | A kind of virtual machine anomaly detection method and system based on I/O sequence | |
CN102043915A (en) | Method and device for detecting malicious code contained in non-executable file | |
KR102460078B1 (en) | Method of making efficient backup space for original file using difference (delta) extraction method in disarming operation and apparatus therefor | |
US11809556B2 (en) | System and method for detecting a malicious file | |
US10275596B1 (en) | Activating malicious actions within electronic documents | |
KR102472523B1 (en) | Method and apparatus for determining document action based on reversing engine | |
JP5441043B2 (en) | Program, information processing apparatus, and information processing method | |
KR102470010B1 (en) | Method and apparatus for blocking malicious non-portable executable file using reversing engine and cdr engine | |
KR102468431B1 (en) | Method and apparatus for disarming ole object in ms-ooxml | |
Jordan et al. | Safe-pdf: Robust detection of javascript pdf malware using abstract interpretation | |
KR102548984B1 (en) | Methods and apparatus for detecting malicious document files using artificial intelligence models | |
KR102549007B1 (en) | Methods and apparatus for detecting macro using debugging engine | |
US20220366048A1 (en) | Ai-powered advanced malware detection system | |
KR102494837B1 (en) | Methods and apparatus for for detecting and decoding obfuscated javascript | |
Liu et al. | Automated binary analysis: A survey | |
KR102549124B1 (en) | Methods and apparatus for for detecting and decoding obfuscated vbscript | |
KR102560431B1 (en) | Methods and apparatus for examining malicious behavior of child process | |
KR102581932B1 (en) | Methods and devices for detecting seh overwrite mitigation bypass using a reverting engine | |
KR102503699B1 (en) | Method and apparatus for notifying the inflow of malicious files when files are moved in a network-separated environment | |
KR102556413B1 (en) | Method and apparatus for managing a virtual machine using semaphore |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |