KR20230103275A - Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information - Google Patents
Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information Download PDFInfo
- Publication number
- KR20230103275A KR20230103275A KR1020210194045A KR20210194045A KR20230103275A KR 20230103275 A KR20230103275 A KR 20230103275A KR 1020210194045 A KR1020210194045 A KR 1020210194045A KR 20210194045 A KR20210194045 A KR 20210194045A KR 20230103275 A KR20230103275 A KR 20230103275A
- Authority
- KR
- South Korea
- Prior art keywords
- code
- information
- data
- file
- analysis
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 319
- 238000012545 processing Methods 0.000 title claims abstract description 62
- 238000004458 analytical method Methods 0.000 claims abstract description 474
- 230000010365 information processing Effects 0.000 claims abstract description 124
- 238000003672 processing method Methods 0.000 claims abstract description 20
- 238000003860 storage Methods 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims description 103
- 230000006870 function Effects 0.000 claims description 91
- 238000010801 machine learning Methods 0.000 claims description 54
- 238000006243 chemical reaction Methods 0.000 claims description 28
- 238000002372 labelling Methods 0.000 claims description 26
- 238000003066 decision tree Methods 0.000 claims description 17
- 238000003058 natural language processing Methods 0.000 claims description 9
- 230000006399 behavior Effects 0.000 description 112
- 238000010586 diagram Methods 0.000 description 68
- 230000000875 corresponding effect Effects 0.000 description 63
- 230000003068 static effect Effects 0.000 description 59
- 238000010921 in-depth analysis Methods 0.000 description 53
- 238000013473 artificial intelligence Methods 0.000 description 51
- 238000010219 correlation analysis Methods 0.000 description 40
- 230000009471 action Effects 0.000 description 33
- 238000004422 calculation algorithm Methods 0.000 description 33
- 238000001514 detection method Methods 0.000 description 23
- 238000007781 pre-processing Methods 0.000 description 23
- 238000005516 engineering process Methods 0.000 description 14
- 230000015654 memory Effects 0.000 description 14
- 230000004044 response Effects 0.000 description 13
- 238000000605 extraction Methods 0.000 description 11
- 238000010606 normalization Methods 0.000 description 11
- 238000012351 Integrated analysis Methods 0.000 description 9
- 239000000284 extract Substances 0.000 description 9
- 230000001939 inductive effect Effects 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 238000013145 classification model Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 230000001965 increasing effect Effects 0.000 description 6
- 238000002360 preparation method Methods 0.000 description 6
- 238000007637 random forest analysis Methods 0.000 description 6
- 238000012098 association analyses Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000012805 post-processing Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007477 logistic regression Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 238000010926 purge Methods 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 238000005215 recombination Methods 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010230 functional analysis Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000000411 inducer Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000012038 vulnerability analysis Methods 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/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Virology (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
개시하는 실시 예들은 사이버 보안 위협 정보 처리 장치, 사이버 보안 위협 정보 처리 방법 및 사이버 보안 위협 정보 처리하는 프로그램을 저장하는 저장매체에 관한 것이다. The disclosed embodiments relate to a cyber security threat information processing device, a cyber security threat information processing method, and a storage medium storing a cyber security threat information processing program.
신종 또는 변종 등의 악성코드를 중심으로 점차 고도화 되고 있는 사이버 보안 위협의 피해가 커지고 있다. 이러한 피해를 조금이라도 줄이고 조기에 대응하기 위해서 다차원의 패턴 구성 및 각종 복합 분석 등을 통해서 대응 기술에 대한 고도화를 병행해 나가고 있다. 그러나, 최근의 사이버 공격은 제어 범위 내에 적절하게 대응되기 보다는 오히려 나날이 위협이 증가하고 있는 추세이다. 이러한 사이버 공격은 기존 ICT (Information and Communication Technology) 기반 시설을 넘어서 우리 삶에 직접적으로 영향을 끼치는 금융, 교통, 환경, 건강 등에 까지 위협을 가하고 있다.The damage from cyber security threats, which are gradually becoming more sophisticated, centered on new or variant malicious codes, is increasing. In order to reduce such damage even a little and respond early, we are simultaneously advancing countermeasure technologies through multi-dimensional pattern construction and various complex analyses. However, recent cyber attacks tend to increase day by day, rather than respond appropriately within the control range. These cyberattacks go beyond the existing ICT (Information and Communication Technology) infrastructure and pose a threat to finance, transportation, environment, and health, which directly affect our lives.
현존하는 대부분의 사이버 보안 위협을 탐지하고 대응하는 기반 기술 중에 하나는 사이버 공격 또는 악성 코드에 대한 패턴을 데이터베이스를 사전에 생성하고 데이터 흐름이 필요한 곳에 적절한 모니터링 기술을 활용한다. 기존의 기술은 모니터링된 패턴과 일치하는 데이터 흐름 또는 코드가 탐지되면 위협을 식별하여 대응하는 방식을 바탕으로 발전되어 왔다. 이와 같은 종래의 기술은 사전에 확보된 패턴과 일치하면 빠르고 정확하게 탐지할 수 있다는 장점이 있지만, 패턴이 확보되지 않거나 우회하는 신종, 변종 위협의 경우 탐지 자체가 불가능하거나 분석하는데 매우 시간이 오래 소요되는 문제점이 있었다. One of the basic technologies for detecting and responding to most existing cyber security threats is to create a database of patterns for cyber attacks or malicious codes in advance and utilize appropriate monitoring technology where data flows are needed. Existing technologies have been developed based on a method of identifying and responding to a threat when a data flow or code matching a monitored pattern is detected. Such conventional technology has the advantage of being able to quickly and accurately detect if it matches a pattern secured in advance, but in the case of a new or variant threat that does not have a pattern secured or bypasses, detection itself is impossible or takes a very long time to analyze. There was a problem.
종래의 기술은 인공지능 분석을 활용하더라도 악성코드 자체를 탐지하고 분석하는 기술을 고도화하는 방법에 초점이 맞춰져 있다. 그러나 근본적으로 사이버 보안 위협을 대응하기 위한 원천적인 기술은 존재하지 않아 이러한 방법만으로 신종 악성코드나 그 악성코드의 변종에 대응하기 힘들며 한계가 있다는 문제점이 있다. Conventional technologies are focused on a method of advancing a technology for detecting and analyzing malicious code itself even when artificial intelligence analysis is used. However, there is a problem in that fundamental technology for responding to cyber security threats does not exist, and thus it is difficult to respond to new malicious codes or variants of the malicious codes with only these methods, and there are limitations.
예를 들면 이미 발견된 악성 코드 자체를 탐지하고 분석하는 기술만으로는 그 탐지나 분석 시스템을 속이기 위한 디코이(decoy) 정보나 가짜 정보에 대응하지 못하고 혼선이 발생하는 문제점이 있다. For example, a technique for detecting and analyzing already discovered malicious code itself has a problem in that it cannot respond to decoy information or fake information to deceive the detection or analysis system, and confusion occurs.
학습할 데이터가 충분히 있는 대량 생산의 악성코드의 경우는 그 특징 정보를 충분히 확보할 수 있기 때문에 악성 여부 및 악성코드 종류를 구분할 수 있다. 그러나, 상대적으로 수량이 작게 만들어져 정교하게 공격하는 APT (Advanced Persistent Threat) 공격의 경우는 학습 데이터와 일치하지 않는 경우가 많고 타겟팅(targeting)된 공격이 대다수를 이루고 있기 때문에 기존 기술은 고도화하더라도 한계점이 존재한다.In the case of mass-produced malicious code with sufficient data to learn, sufficient information on its characteristics can be obtained, so that it is possible to distinguish whether it is malicious or not and the type of malicious code. However, in the case of APT (Advanced Persistent Threat) attacks, which are relatively small in number and sophisticated, often do not match learning data, and targeted attacks form the majority, so even if the existing technology is advanced, there are limitations. exist.
또한 종래에는 악성 코드, 공격 코드 또는 사이버 위협에 대한 설명을 하는 방법과 표현 기법이 분석가의 입장이나 분석 시각에 따라 달랐다. 예를 들면 악성 코드와 공격 행위를 기술하는 방식은 전세계적으로 표준이 되지 않아 같은 사건, 같은 악성코드를 탐지하여도 해당 분야의 전문가의 설명이 달라 혼동이 되는 문제점이 있었다. 심지어 악성코드 탐지 명 또한 통일이 되지 않아 같은 악성 파일임에도 불구하고 어떤 공격이 정확하게 수행되었는지 식별되지 못하거나 다르게 정리되었다. 따라서 식별된 공격 기법을 정규화되고 표준화된 방식으로 설명하지 못하는 문제점이 있었다.In addition, in the past, methods and expression techniques for explaining malicious codes, attack codes, or cyber threats differed depending on the analyst's position or analysis viewpoint. For example, since the method of describing malicious code and attack behavior is not standard worldwide, there is a problem in that even when the same incident or the same malicious code is detected, there is a problem of confusion due to different explanations by experts in the field. Even malicious code detection names are not unified, so even though it is the same malicious file, it is not identified exactly which attack was performed or it is organized differently. Therefore, there was a problem in that the identified attack technique could not be described in a normalized and standardized manner.
종래의 악성 코드 탐지 및 분석 방법은 악성코드 자체의 탐지를 중시하여 매우 유사한 악성 행위를 수행하는 악성 코드의 경우 생성하는 공격자가 다른 경우 공격자들을 식별하지 못하는 문제점이 있었다. Conventional methods of detecting and analyzing malicious codes place emphasis on detecting malicious codes themselves, and in the case of malicious codes that perform very similar malicious behaviors, there is a problem in that attackers cannot be identified if different attackers are generated.
위와 같은 문제점들과 연결되어 종래의 방식은 이러한 개별적인 케이스 집중된 탐지 방법에 의해 추후 가까운 미래에 어떤 사이버 위협 공격이 있을지 예측하기 어려운 문제점이 있었다. In connection with the above problems, the conventional method has a problem in that it is difficult to predict what kind of cyber threat attack will occur in the near future by such an individual case-focused detection method.
이하에서 개시하는 실시 예의 목적은, 인공 지능으로 학습된 데이터와 정확하게 일치하지 않는 악성 코드라도 탐지하고 대응할 수 있고 악성 코드의 변종에 대응할 수 있는 사이버 보안 위협 정보 처리 장치, 사이버 보안 위협 정보 처리 방법 및 사이버 보안 위협 정보 처리하는 프로그램을 저장하는 저장매체를 제공하는 것이다.The purpose of the embodiments disclosed below is a cyber security threat information processing device capable of detecting and responding to malicious codes that do not exactly match data learned by artificial intelligence and responding to variants of malicious codes, cyber security threat information processing methods, and A storage medium for storing a program for processing cyber security threat information is provided.
실시 예의 다른 목적은 악성 코드의 변종이라도 매우 빠른 시간 내에 악성 코드, 공격 기법, 공격자와 공격 예측 방법을 식별할 수 있는 사이버 보안 위협 정보 처리 장치, 사이버 보안 위협 정보 처리 방법 및 사이버 보안 위협 정보 처리하는 프로그램을 저장하는 저장매체를 제공하는 것이다.Another object of the embodiment is to process cyber security threat information processing device, cyber security threat information processing method, and cyber security threat information that can identify malicious code, attack technique, attacker and attack prediction method in a very short time even if it is a variant of malicious code. A storage medium for storing the program is provided.
실시 예의 다른 목적은 악성코드 탐지 명 등이 통일되지 않거나 사이버 공격 기법이 정확하게 기술되지 못하는 악성 코드의 정보를 정규화되고 표준화된 방식으로 제공할 수 있는 사이버 보안 위협 정보 처리 장치, 사이버 보안 위협 정보 처리 방법 및 사이버 보안 위협 정보 처리하는 프로그램을 저장하는 저장매체를 제공하는 것이다.Another object of the embodiment is a cyber security threat information processing device and a cyber security threat information processing method capable of providing information on malicious codes for which malicious code detection names are not unified or cyber attack techniques are not accurately described in a normalized and standardized manner. and a storage medium storing a program for processing cyber security threat information.
실시 예의 다른 목적은 매우 유사한 악성 행위를 수행하는 악성 코드를 생성하는 다른 공격자들을 식별하고 미래에 어떤 사이버 위협 공격이 있을지 예측이 가능한 사이버 보안 위협 정보 처리 장치, 사이버 보안 위협 정보 처리 방법 및 사이버 보안 위협 정보 처리하는 프로그램을 저장하는 저장매체를 제공하는 것이다.Another object of the embodiment is a cyber security threat information processing device, a cyber security threat information processing method, and a cyber security threat capable of identifying other attackers who generate malicious codes performing very similar malicious actions and predicting what cyber threat attacks will occur in the future. It is to provide a storage medium for storing a program for processing information.
따라서 실시예들에 따른 사이버 보안 위협 정보 처리 방법은 실행 파일 분석을 위한 제 1 사용자 실행 파일 분석 요청 신호를 입력 받는 단계, 제 1 사용자 실행 파일 분석 요청 신호에 따라 실행 파일을 디스어셈블링(disassembling)하여 디스어셈블된 코드를 얻고 디스어셈블된 코드를 재구성하여 재구성된 디스어셈블드 코드를 얻는 단계, 재구성된 디스어셈블드 코드를 처리하여 해쉬 함수로 변환하고 해쉬 함수를 N 그램(N-gram, N은 자연수) 데이터로 변환하는 단계, 변환된 N 그램(N-gram) 데이터의 블록 단위의 코드에 대해 앙상블 머신 러닝을 수행하여 블록 단위의 코드를 블록 단위의 코드가 수행하는 공격 기법의 식별자 및 블록 단위의 코드를 생성한 공격자의 식별자로 프로파일링하여 실행 파일 분석 결과를 생성하는 단계, 실행 파일 분석 결과를 기반으로 제 1 사용자 클러스터링 데이터를 생성하고, 제 1 사용자와 다른 제 2 사용자의 클러스터링 데이터와 상기 실행 파일 분석 결과간의 유사도를 비교하는 단계 및 유사도가 기설정된 값보다 높은 경우, 제 2 사용자에게 유사도와 관련된 정보를 제공하는 단계를 포함한다.Accordingly, a cyber security threat information processing method according to embodiments includes receiving a first user executable file analysis request signal for analyzing an executable file, and disassembling the executable file according to the first user executable file analysis request signal. to obtain a disassembled code, reconstruct the disassembled code to obtain a reconstructed disassembled code, process the reconstructed disassembled code to convert it into a hash function, and convert the hash function to N-gram (N-gram, N is natural number) data, ensemble machine learning is performed on the block-level code of the converted N-gram data, and block-level identifier and block-level attack technique performed by the block-level code Generating an execution file analysis result by profiling with an identifier of an attacker who generated the code of, generating a first user clustering data based on the execution file analysis result, and generating clustering data of a second user different from the first user and the above Comparing similarities between execution file analysis results and, when the similarity is higher than a predetermined value, providing information related to the similarity to a second user.
실시예들에 따른 사이버 보안 위협 처리 장치는 사용자 별 클러스터링 데이터를 저장하는 하나 또는 그 이상의 사용자 별 데이터 베이스들, 실행 파일 분석을 위한 제 1 사용자 실행 파일 분석 요청 신호를 입력받는 입력부 및 실행 파일을 처리하는 프로세서를 포함한다. 실시예들에 따른 프로세서는 제 1 사용자 실행 파일 분석 요청 신호에 따라 응용 프로그램 인터페이스(Application Programming Interface; API)를 통해 실행 파일을 디스어셈블링(disassmebling)하여 디스어셈블된 코드를 얻고 디스어셈블된 코드를 재구성하여 재구성된 디스어셈블드 코드를 얻는 디스어셈블링 모듈을 수행하고, 재구성된 디스어셈블드 코드를 처리하여 해쉬 함수로 변환하고 해쉬 함수를 N 그램(N-gram,N은 자연수) 데이터로 변환하는 데이터 변환 모듈을 수행하고, 변환된 N 그램(N-gram) 데이터의 블록 단위의 코드에 대해 앙상블 머신 러닝을 수행하여 블록 단위의 코드를 블록 단위의 코드가 수행하는 공격 기법의 식별자 및 블록 단위의 코드를 생성한 공격자의 식별자로 프로파일링하여 실행 파일 분석 결과를 생성하는 프로파일링 모듈을 수행하고, 실행 파일 분석 결과를 기반으로 제 1 사용자 클러스터링 데이터를 생성하고, 제 1 사용자와 다른 제 2 사용자의 클러스터링 데이터와 실행 파일 분석 결과 간의 유사도를 비교하는 유사도 비교 모듈을 수행하고, 유사도가 기설정된 값보다 높은 경우, 제 2 사용자에게 유사도와 관련된 정보를 제공한다. An apparatus for processing cyber security threats according to embodiments includes one or more databases for each user storing clustering data for each user, an input unit for receiving a first user execution file analysis request signal for analyzing an execution file, and processing an execution file. It includes a processor that According to the first user executable file analysis request signal, the processor according to the embodiments disassembles the executable file through an application programming interface (API) to obtain a disassembled code and the disassembled code. It performs a disassembly module that reconstructs and obtains a reconstructed disassembled code, processes the reconstructed disassembled code to convert it into a hash function, and converts the hash function into N-gram (N-gram, where N is a natural number) data. The data conversion module is performed, and ensemble machine learning is performed on the block-level code of the converted N-gram data to determine the identifier of the attack technique performed by the block-level code and the block-level code. Performs a profiling module that generates an executable file analysis result by profiling with the identifier of the attacker who generated the code, generates first user clustering data based on the executable file analysis result, and identifies a second user different from the first user A similarity comparison module that compares the similarity between the clustering data and the execution file analysis result is performed, and when the similarity is higher than a preset value, information related to the similarity is provided to the second user.
실시예들에 따른 사이버 보안 위협 정보를 처리하는 프로그램을 저장하는 저장 매체는 사이버 보안 위협 처리 실행 파일 분석을 위한 제 1 사용자 실행 파일 분석 요청 신호에 따라 실행 파일을 디스어셈블링(disassembling)하여 디스어셈블된 코드를 얻고 디스어셈블된 코드를 재구성하여 재구성된 디스어셈블드 코드를 얻고, 재구성된 디스어셈블드 코드를 처리하여 해쉬 함수로 변환하고 해쉬 함수를 N 그램(N-gram, N은 자연수) 데이터로 변환하고, 변환된 N 그램(N-gram) 데이터의 블록 단위의 코드에 대해 앙상블 머신 러닝을 수행하여 블록 단위의 코드를 블록 단위의 코드가 수행하는 공격 기법의 식별자 및 블록 단위의 코드를 생성한 공격자의 식별자로 프로파일링하여 실행 파일 분석 결과를 생성하고, 실행 파일 분석 결과를 기반으로 제 1 사용자 클러스터링 데이터를 생성하고, 제 1 사용자와 다른 제 2 사용자의 클러스터링 데이터와 실행 파일 분석 결과간의 유사도를 비교하고, 및 유사도가 기설정된 값보다 높은 경우, 제 2 사용자에게 유사도와 관련된 정보를 제공한다.A storage medium storing a program for processing cyber security threat information according to embodiments is disassembled by disassembling an executable file according to a first user execution file analysis request signal for analyzing a cyber security threat processing executable file Obtain the disassembled code, reconstruct the disassembled code to obtain the reconstructed disassembled code, process the reconstructed disassembled code to convert it into a hash function, and convert the hash function into N-gram (N is a natural number) data transform, and perform ensemble machine learning on the block-level code of the converted N-gram data to generate an identifier of an attack technique performed by the block-level code and block-level code An executable file analysis result is generated by profiling with an attacker's identifier, first user clustering data is generated based on the executable file analysis result, and similarity between the clustering data of the first user and another second user and the execution file analysis result is determined. comparison, and when the similarity is higher than a preset value, information related to the similarity is provided to the second user.
이하에서 개시하는 실시예에 따르면 머신 러닝으로 학습된 데이터와 정확하게 일치하지 않는 악성 코드라도 탐지하고 대응할 수 있고 악성 코드의 변종에 대응할 수 있다. According to the embodiments disclosed below, it is possible to detect and respond to malicious codes that do not exactly match data learned through machine learning, and to respond to variants of malicious codes.
실시예에 따르면 악성 코드의 변종이라도 매우 빠른 시간 내에 악성 코드, 공격 기법 및 공격자를 식별할 수 있고 나아가 추후의 특정 공격자의 공격 기법을 예측할 수 있다. According to the embodiment, it is possible to identify a malicious code, an attack technique, and an attacker within a very short period of time even if it is a variant of malicious code, and furthermore, it is possible to predict an attack technique of a specific attacker in the future.
실시예에 따르면 이러한 악성 코드 여부, 공격 기법, 공격 식별자 및 공격자를 기반으로 사이버 공격 구현 방식을 정확히 식별하고 이를 표준화된 모델로 제공할 수 있다. 실시예에 따르면 악성코드 탐지 명 등이 통일되지 않거나 사이버 공격 기법이 정확하게 기술되지 못하는 악성 코드의 정보를 정규화되고 표준화된 방식으로 제공할 수 있다. According to the embodiment, it is possible to accurately identify a cyber attack implementation method based on whether there is such a malicious code, an attack technique, an attack identifier, and an attacker, and provide it as a standardized model. According to the embodiment, it is possible to provide normalized and standardized information on malicious codes for which malicious code detection names, etc., or cyber attack techniques are not accurately described.
또한 기존에 알려지지 않은 악성 코드를 생성 가능성과 이를 개발할 수 있는 공격자들을 예측하고 미래에 어떤 사이버 위협 공격이 있을지 예측 가능한 수단을 제공할 수 있다.In addition, it can predict the possibility of creating previously unknown malicious code and the attackers who can develop it, and provide a means to predict what kind of cyber threat attack will occur in the future.
도 1은 사이버 보안 위협 정보 처리 방법의 일 실시 예를 예시한 도면
도 2는 개시하는 실시 예에 따라 분석 정보 생성하는 과정에서 정적 분석 정보를 얻는 예를 개시한 도면
도 3은 개시하는 실시 예에 따라 분석 정보 생성하는 과정에서 동적 분석 정보를 얻는 예를 개시한 도면
도 4은 개시하는 실시 예에 따라 분석 정보 생성하는 과정에서 심층 분석 정보를 얻는 예를 개시한 도면
도 5는 심층 분석의 일 예로서 악성 코드를 디스어셈블링하여 악성 행위가 포함된 파일임을 판단하는 예를 개시한 도면
도 6은 개시하는 실시 예에 따라 분석 정보 생성하는 과정에서 연관관계 분석 정보를 산출하는 일 예를 개시한 도면
도 7은 개시한 실시 예에 따라 연관관계 분석 정보를 얻는 과정의 일 예를 개시한 도면
도 8은 실시 예에 따라 사이버 위협 정보의 예측 정보 생성하는 일 예를 개시한 도면
도 9는 실시 예에 따라 사이버 위협 정보를 제공하기 위한 악성 코드 질의들의 예를 개시한 도면
도 10은 사이버 보안 위협 정보 처리 장치의 일 실시 예를 개시한 도면
도 11은 개시하는 실시 예에 따라 분석 프레임 워크 중 정적 분석 모듈의 기능을 상세히 설명하기 위한 일 예를 나타낸 도면
도 12는 개시하는 실시 예에 따라 분석 프레임 워크 중 동적분석 모듈의 기능을 상세히 설명하기 위한 일 예를 나타낸 도면
도 13은 개시하는 실시 예에 따라 분석 프레임 워크 중 심층분석 모듈의 기능을 상세히 설명하기 위한 일 예를 나타낸 도면
도 14은 개시하는 실시 예에 따라 분석 프레임 워크 중 연관관계분석 모듈의 기능을 상세히 설명하기 위한 일 예를 나타낸 도면
도 15는 개시하는 실시 예에 따라 예측 프레임 워크의 예측정보생성 모듈의 기능을 상세히 설명하기 위한 일 예를 나타낸 도면
도 16은 개시하는 실시 예에 따라 정적 분석을 수행하는 일 예를 나타낸 도면
도 17은 개시하는 실시 예에 따라 동적 분석을 수행하는 일 예를 나타낸 도면
도 18은 개시하는 실시 예에 따라 심층 분석을 수행하는 일 예를 나타낸 도면
도 19는 개시하는 실시 예에 따라 바이너리 코드에서 추출된 코드들로 공격 기법을 매칭하는 일 예를 나타낸 도면
도 20은 개시하는 실시 예에 따라 OP-CODE를 포함하는 코드 세트와 공격 기법을 매칭하는 일 예를 나타낸 도면
도 21은 개시하는 실시 예에 따라 사이버 위협 정보를 처리하는 흐름을 예시한 도면
도 22는 개시하는 실시 예에 따라 OP-CODE 및 ASM-CODE를 정규화된 코드로 변환한 값을 예시한 도면
도 23은 개시하는 실시 예에 따라 OP-CODE 및 ASM-CODE의 벡터화된 값을 예시한 도면
도 24는 개시하는 실시 예에 따라 코드의 블록 단위를 해쉬 값으로 변환하는 예를 개시한 도면
도 25는 개시하는 실시 예에 따른 앙상블 머신 러닝 모델의 일 예를 나타낸 도면
도 26은 개시하는 실시 예에 따라 머신 러닝으로 데이터를 학습하고 분류하는 흐름을 예시한 도면
도 27은 개시하는 실시 예에 따라 학습 데이터로 공격 식별자와 공격자를 식별하여 라벨링을 수행한 예를 나타낸 도면
도 28은 실시 예에 따라 공격 식별자를 식별한 결과를 나타낸 도면
도 29는 실시 예에 따라 공격 식별자에 따른 그램 데이터 패턴을 예시한 도면
도 30은 개시한 사이버 위협 정보를 처리하는 실시 예의 성능를 예시한 도면
도 31은 사이버 위협 정보의 탐지하는 엔진들의 탐지 엔진들을 탐지 명을 제공하는 예를 나타낸 도면
도 32는 실시 예에 따라 새로운 악성 코드와 공격 방식을 예시하는 일 예를 나타낸 도면
도 33은 사이버 보안 위협 정보 처리 방법의 다른 일 실시 예를 예시한 도면
도 34는 사이버 보안 위협 정보 처리 장치의 다른 일 실시 예를 예시한 도면
도 35는 실시예들에 따른 사이버 보안 위협 정보 처리 장치의 동작을 나타낸 블록도
도 36은 실시예들에 따른 사이버 보안 위협 정보 처리 장치의 동작을 나타낸 블록도
도 37은 실시예들에 따른 사이버 보안 위협 정보 처리 방법을 나타내는 플로우 다이어그램
도 38은 실시예들에 따른 사이버 보안 위협 정보 처리 장치의 예시
도 39는 실시예들에 따른 사이버 보안 위협 정보 처리 방법의 플로우 다이어그램1 is a diagram illustrating an embodiment of a cyber security threat information processing method;
2 is a diagram illustrating an example of obtaining static analysis information in a process of generating analysis information according to the disclosed embodiment;
3 is a diagram illustrating an example of obtaining dynamic analysis information in a process of generating analysis information according to the disclosed embodiment;
4 is a diagram illustrating an example of obtaining in-depth analysis information in a process of generating analysis information according to the disclosed embodiment;
5 is a view illustrating an example of determining that a file contains malicious behavior by disassembling malicious code as an example of in-depth analysis;
6 is a diagram illustrating an example of calculating correlation analysis information in a process of generating analysis information according to an embodiment disclosed herein;
7 is a diagram illustrating an example of a process of obtaining correlation analysis information according to the disclosed embodiment;
8 is a diagram illustrating an example of generating prediction information of cyber threat information according to an embodiment.
9 is a diagram illustrating examples of malicious code queries for providing cyber threat information according to an embodiment.
10 is a diagram illustrating an embodiment of a cyber security threat information processing device
11 is a diagram showing an example for explaining in detail the function of a static analysis module in an analysis framework according to the disclosed embodiment;
12 is a diagram showing an example for explaining in detail the function of a dynamic analysis module in an analysis framework according to an embodiment disclosed herein;
13 is a diagram showing an example for explaining in detail the function of an in-depth analysis module in an analysis framework according to an embodiment disclosed herein;
14 is a diagram showing an example for explaining in detail the function of a correlation analysis module in an analysis framework according to the disclosed embodiment.
15 is a diagram showing an example for explaining in detail the function of a predictive information generating module of a predictive framework according to the disclosed embodiment.
16 is a diagram showing an example of performing static analysis according to the disclosed embodiment;
17 is a diagram showing an example of performing dynamic analysis according to the disclosed embodiment.
18 is a diagram showing an example of performing in-depth analysis according to the disclosed embodiment.
19 is a diagram showing an example of matching attack techniques with codes extracted from binary codes according to the disclosed embodiment;
20 is a diagram showing an example of matching a code set including an OP-CODE and an attack technique according to an embodiment disclosed herein;
21 is a diagram illustrating a flow of processing cyber threat information according to an embodiment disclosed herein;
22 is a diagram illustrating values obtained by converting OP-CODE and ASM-CODE into normalized codes according to the disclosed embodiment;
23 is a diagram illustrating vectorized values of OP-CODE and ASM-CODE according to the disclosed embodiment;
24 is a diagram illustrating an example of converting a block unit of code into a hash value according to the disclosed embodiment;
25 is a diagram showing an example of an ensemble machine learning model according to an embodiment disclosed herein;
26 is a diagram illustrating a flow of learning and classifying data by machine learning according to the disclosed embodiment;
27 is a diagram showing an example in which labeling is performed by identifying an attack identifier and an attacker with learning data according to the disclosed embodiment;
28 is a diagram showing a result of identifying an attack identifier according to an embodiment
29 is a diagram illustrating a gram data pattern according to an attack identifier according to an embodiment;
30 is a diagram illustrating the performance of an embodiment of processing disclosed cyber threat information;
31 is a diagram showing an example of providing detection names to detection engines of engines that detect cyber threat information;
32 is a diagram illustrating an example of a new malicious code and an attack method according to an embodiment;
33 is a diagram illustrating another embodiment of a cyber security threat information processing method;
34 is a diagram illustrating another embodiment of a cyber security threat information processing device;
35 is a block diagram illustrating the operation of a cyber security threat information processing device according to embodiments.
36 is a block diagram illustrating the operation of a cyber security threat information processing device according to embodiments.
37 is a flow diagram illustrating a cyber security threat information processing method according to embodiments.
38 is an example of a cyber security threat information processing device according to embodiments
39 is a flow diagram of a cyber security threat information processing method according to embodiments;
이하에서는 첨부한 도면을 참조하여 실시 예를 예시하여 상세히 기술하도록 한다. 실시 예에서 프레임워크, 모듈, 응용 프로그램 인터페이스 등은 물리 장치 결합된 장치로 구현할 수도 있고 소프트웨어로 구현할 수도 있다. Hereinafter, an exemplary embodiment will be described in detail with reference to the accompanying drawings. In an embodiment, a framework, module, application program interface, etc. may be implemented as a device coupled to a physical device or may be implemented as software.
실시 예가 소프트웨어로 구현될 경우 저장매체에 저장되고 컴퓨터 등에 설치되어 프로세서에 의해 실행될 수 있다. When the embodiment is implemented as software, it may be stored in a storage medium, installed in a computer, etc., and executed by a processor.
사이버 보안 위협 정보 처리 장치 및 사이버 보안 위협 정보 처리 방법의 실시 예들을 상세히 개시하면 다음과 같다. Exemplary embodiments of a cyber security threat information processing device and a cyber security threat information processing method are described in detail as follows.
도 1은 사이버 보안 위협 정보 처리 방법의 일 실시 예를 예시한 도면이다. 사이버 보안 위협 정보 처리 방법의 일 실시 예를 설명하면 다음과 같다. 1 is a diagram illustrating an embodiment of a cyber security threat information processing method. An embodiment of a method for processing cyber security threat information is as follows.
사이버 보안 위협 정보 처리 장치로 입력된 파일의 전처리를 수행한다(S1000). The cyber security threat information processing device performs pre-processing of the input file (S1000).
파일의 전처리를 통해 파일을 식별할 수 있는 식별 정보를 얻을 수 있다. 파일의 전처리 수행의 일 예는 다음과 같다. Identification information that can identify a file can be obtained through file preprocessing. An example of performing file preprocessing is as follows.
수신한 파일로부터 파일의 출처 정보, 파일을 얻은 수집 정보, 파일의 사용자 정보 등을 포함한 여러 가지 메타 정보를 얻을 수 있다. 예를 들어 파일이 URL (uniform resource locator)을 포함하거나 또는 전자메일에 포함된 경우 파일에 대한 수집 정보를 얻을 수 있다. 사용자 정보는 파일의 생성, 업로드 또는 최종 저장한 사용자 정보 등을 포함할 수 있다. 전처리 과정에서 파일의 메타 정보로서 IP(internet protocol) 정보, 이에 기반한 국가 정보, API(Application Programming Interface) key 정보, 예를 들면 분석을 의뢰한 사용자의 API 정보 등을 얻을 수 있다. From the received file, you can obtain various meta-information including information about the origin of the file, collection information obtained from the file, and user information of the file. For example, if a file contains a URL (uniform resource locator) or is included in an e-mail, collection information about the file can be obtained. User information may include user information that has been created, uploaded, or finally stored in a file. In the pre-processing process, IP (internet protocol) information, country information based thereon, API (Application Programming Interface) key information, for example, API information of a user requesting analysis may be obtained as meta information of a file.
전처리 과정에서 파일의 해쉬(Hash) 값을 추출할 수도 있다. 해쉬 값이 이미 사이버 보안 위협 정보 처리 장치에 알려진 것이라면 이를 기반으로 파일의 종류나 위험 정도를 식별할 수 있다. In the pre-processing process, the hash value of the file can be extracted. If the hash value is already known to the cyber security threat information processing device, the type or risk level of the file can be identified based on this.
만약 이미 알려진 파일이 아니라면 기 저장된 정보 또는 필요한 경우 외부의 레퍼런스 웹 사이트(reference website)에 해쉬 값과 파일 정보를 조회하여 파일 종류 식별을 위한 분석 정보를 얻을 수 있다. 예를 들어 외부의 레퍼런스 웹 사이트로서 한국인터넷진흥원에서 운영하는 C-TAS(Cyber Threats Analysis System), CTA(Cyber Threat Alliance)의 운영시스템, VitusTotal 등의 사이트로부터 파일 종류에 따른 정보를 얻을 수 있다. If the file is not already known, analysis information for identifying the file type may be obtained by searching the hash value and file information in pre-stored information or, if necessary, an external reference website. For example, information according to file type can be obtained from sites such as the C-TAS (Cyber Threats Analysis System) operated by the Korea Internet & Security Agency, the operating system of the CTA (Cyber Threat Alliance), and VitusTotal as external reference websites.
예를 들면, 파일의 MD5 (Message-Digest algorithm 5), SHA1 (Secure Hash Algorithm 1), SHA 256 등의 해쉬 함수의 해쉬 값을 이용하여 해당 사이트에서 파일을 검색할 수 있다. 그리고 검색 결과를 이용해 상기 파일을 식별할 수 있다.For example, a file can be retrieved from a corresponding site by using the hash value of a hash function such as MD5 (Message-Digest algorithm 5), SHA1 (Secure Hash Algorithm 1), or
파일을 분석을 수행하는 일 예로서, 입력된 파일이 모바일 네트워크를 통해 전송될 경우 네트워크 트래픽을 통해 전송되는 패킷은 네트워크 전송 패킷의 재조합 기술 등을 사용하여 입력된 파일이 모바일 악성 의심 코드인 경우 이를 저장할 수 있다. 패킷의 재조합 기술은 수집된 네트워크 트래픽에서 하나의 실행 코드에 해당하는 일련의 패킷들을 재 조합하며, 재 조합된 패킷들에 의해 전송되는 파일이 모바일 악성 의심 코드인 경우 이 파일이 저장된다. As an example of analyzing a file, when an input file is transmitted through a mobile network, a packet transmitted through network traffic uses a recombinant technology of network transmission packets to determine if the input file is a suspected mobile malicious code. can be saved Packet recombination technology reassembles a series of packets corresponding to one executable code from the collected network traffic, and if a file transmitted by the recombined packets is a mobile malicious suspicious code, this file is stored.
만약 이 단계에서 전송 파일 내에 모바일 악성 의심 코드 추출이 되지 않은 경우 파일 내에 다운로드 URL에 직접 접속하여 모바일 악성 의심 코드를 다운로드하여 저장할 수도 있다. In this step, if the mobile suspicious code is not extracted from the transmission file, the mobile suspicious code may be downloaded and stored by directly accessing the download URL in the file.
상기 입력된 파일과 관련된 악성 행위(malicious activity) 분석 정보 생성한다(S2000).Malicious activity analysis information related to the input file is generated (S2000).
입력된 파일과 관련된 악성 행위의 분석 정보는 파일 자체에 대한 정보를 분석하는 정적 분석 정보나 입력된 파일로부터 얻은 정보를 실행하여 악성 행위 여부를 판별할 수 있는 동적 분석 정보를 포함할 수 있다. The malicious behavior analysis information related to the input file may include static analysis information for analyzing information about the file itself or dynamic analysis information for determining malicious behavior by executing information obtained from the input file.
이 단계의 분석 정보는 입력된 파일과 관련된 실행 파일로부터 가공된 정보를 이용하거나 파일과 관련된 메모리 분석을 수행하는 심층 분석 정보를 포함할 수 있다. The analysis information of this step may include in-depth analysis information using information processed from an executable file related to an input file or memory analysis related to the file.
심층 분석은 악성 행위를 정확하게 식별할 수 있도록 인공 지능 분석을 포함할 수 있다.In-depth analysis may include artificial intelligence analysis to accurately identify malicious behavior.
이 단계의 분석 정보는 또한 파일과 관련하여 이미 저장된 분석 정보나 또는 생성된 분석 정보를 서로 연관시켜 공격 행위나 공격자에 대한 연관 관계를 추정할 수 있는 연관관계 분석 정보를 포함할 수 있다. Analysis information of this step may also include correlation analysis information capable of estimating a relationship with an attacker or an attacker by correlating previously stored analysis information or generated analysis information in relation to a file.
이 단계에서 다수의 분석 정보는 전체 분석 결과로 제공되기 위해 취합될 수 있다. At this stage, multiple pieces of analysis information may be aggregated to provide an overall analysis result.
예를 들어 하나의 파일에 대한 정적 분석 정보, 동적 분석 정보, 심층 분석 정보, 연관관계 분석 정보 등은 정확한 공격 기법과 공격자 식별을 위해 통합 분석될 수 있다. 통합 분석은 분석 정보 사이의 중복된 부분을 제거하고 분석 정보 간 공통의 정보는 정확도를 높이는데 사용될 수 있다. For example, static analysis information, dynamic analysis information, in-depth analysis information, correlation analysis information, etc. of one file can be integrated and analyzed to identify accurate attack techniques and attackers. Integrated analysis removes redundant parts between analysis information, and common information between analysis information can be used to increase accuracy.
예를 들어 여러 분석과 경로를 통해 수집된 사이버 위협 침해 정보(indicator of compromise, IoC)들은 정보들 사이에 노멀라이징(normalizing)하거나 인리치먼트(enrichment) 수행을 통해 표준화 작업을 수행할 수 있다. For example, cyber threat indicators of compromise (IoCs) collected through various analyzes and paths can be normalized or standardized through enrichment.
분석 정보의 획득하는 실시 예에서 반드시 위의 기술된 모든 분석 정보를 순서에 따라 산출할 필요는 없다. 예를 들어 정적 분석 정보 획득과 동적 분석 정보 획득은 어느 하나만 진행될 수도 있으며 정적 분석 정보 보다 동적 분석 정보를 먼저 수행할 수도 있다. In the embodiment of acquiring the analysis information, it is not necessary to necessarily calculate all the analysis information described above in sequence. For example, either static analysis information acquisition or dynamic analysis information acquisition may proceed, and dynamic analysis information may be performed before static analysis information.
심층 분석 정보는 반드시 정적 분석 또는 동적 분석을 수행한 후 진행될 필요가 없으며, 연관 관계 분석도 심층 분석 정보 없이 수행될 수도 있다. In-depth analysis information does not necessarily need to be performed after performing static analysis or dynamic analysis, and correlation analysis may also be performed without in-depth analysis information.
따라서 위 분석 정보를 획득하는 처리 순서는 변경될 수도 있으며 선택적으로 이루어질 수도 있다. 또한 위에 기술한 분석 정보의 획득 과정과 예측 정보의 생성 과정은 파일로부터 획득한 정보에 기초하여 병렬적으로 수행될 수 있다. 예를 들면 동적 분석이 수행이 완료되지 않더라도 연관관계 분석 정보를 생성할 수도 있다. 마찬가지로 동적 분석 수행이나 심층 분석 수행이 동시에 진행될 수 있다.Accordingly, the processing sequence of acquiring the above analysis information may be changed or selectively performed. In addition, the process of obtaining analysis information and the process of generating prediction information described above may be performed in parallel based on information obtained from a file. For example, correlation analysis information may be generated even if dynamic analysis is not completed. Likewise, performing dynamic analysis or performing in-depth analysis can be performed simultaneously.
이러한 경우 위에서 예시한 전처리 과정(S1000)은 파일의 정보를 얻거나 식별하기 위한 것이므로 정적 분석, 동적 분석, 심층 분석 또는 연관 분석이 개별적이나 병렬적으로 수행될 경우 각 분석 단계에 일부로서 각각 수행될 수 있다.In this case, the preprocessing process (S1000) exemplified above is for obtaining or identifying file information, so if static analysis, dynamic analysis, in-depth analysis, or association analysis is performed individually or in parallel, it will be performed as part of each analysis step. can
이 단계에 대한 상세한 실시 예는 아래에서 후술한다. A detailed embodiment of this step will be described below.
상기 입력된 파일과 관련된 악성 행위의 예측 정보를 생성할 수 있다(S3000).Prediction information of malicious behavior related to the input file may be generated (S3000).
분석 정확도를 높이기 위해 위의 분석된 여러 가지 정보의 데이터 세트를 이용하여 악성 행위의 발생 여부, 공격 기법, 공격자 그룹 등에 대한 예측 정보를 생성할 수 있다. In order to increase the accuracy of analysis, predictive information on occurrence of malicious behavior, attack technique, attacker group, etc. can be generated using the data set of various information analyzed above.
예측 정보의 생성은 이미 분석된 데이터 세트에 대한 인공지능 분석을 통해 수행될 수 있다. 예측 정보의 생성은 필수적인 단계가 아니며 인공지능 분석을 위해 적절하게 분석된 데이터 세트가 마련되어 조건이 만족될 경우 추후 악성 공격 행위에 대한 예측 정보를 생성할 수 있다. The generation of predictive information can be performed through artificial intelligence analysis on already analyzed data sets. Generation of predictive information is not an essential step, and predictive information on future malicious attack behavior can be generated when a properly analyzed data set is prepared for AI analysis and conditions are satisfied.
실시 예는 여러 가지 분석 정보들을 기반으로 인공 지능 기반의 머신 러닝을 수행한다. 실시 예는 분석된 정보에 대한 데이터 세트를 기반으로 예측 정보를 생성할 수 있다. 예를 들면 인공 지능으로 학습된 데이터를 바탕으로 추가적인 분석 정보를 생성하고 다시 생성된 분석 정보는 다시 새로운 학습 데이터로서 인공 지능의 입력 데이터로 이용될 수 있다. The embodiment performs artificial intelligence-based machine learning based on various analysis information. An embodiment may generate predictive information based on a data set for the analyzed information. For example, additional analysis information is generated based on data learned by artificial intelligence, and the analysis information generated again can be used as input data for artificial intelligence as new learning data.
여기서 예측 정보는 악성 코드 제작자 정보, 악성 코드 공격 방법 정보, 악성 코드 공격 그룹 예측, 악성 코드 유사도 예측 정보, 및 악성 코드 확산도 예측 정보 등을 포함할 수 있다. Here, the prediction information may include malicious code creator information, malicious code attack method information, malicious code attack group prediction, malicious code similarity prediction information, and malicious code spread prediction information.
생성된 예측 정보는 악성 코드 자체의 위험도를 예측한 제 1 예측 정보와 악성 코드의 공격자, 공격 그룹, 유사도, 확산도 등을 예측한 제 2 예측 정보 등을 포함할 수 있다. The generated prediction information may include first prediction information for predicting the risk of the malicious code itself and second prediction information for predicting an attacker, attack group, similarity, spread, and the like of the malicious code.
이러한 제 1 예측 정보와 제 2 예측 정보를 포함하는 예측 분석 정보는 서버나 데이터 베이스에 저장될 수 있다.Prediction analysis information including the first prediction information and the second prediction information may be stored in a server or a database.
이에 대한 상세한 실시 예는 이하에서 후술한다. A detailed embodiment thereof will be described below.
상기의 분석 정보 또는 예측 정보에 대한 후처리 후 상기 입력된 파일과 관련된 사이버 위협 정보를 제공한다(S4000).After post-processing the analysis information or prediction information, cyber threat information related to the input file is provided (S4000).
실시 예는 분석 정보 또는 예측 정보에 기초하여 악성 코드 종류 및 악성 코드의 위험도를 결정한다. 그리고 실시 예는 악성 코드에 대한 프로파일링 정보를 생성한다. 따라서 파일 분석을 통해 파일에 대한 자체 분석을 수행한 결과나 추가 및 예측 분석을 수행한 결과를 저장할 수 있다. 생성되는 프로파일링 정보는 악성 코드에 대한 공격 기법이나 공격자에 대한 라벨링을 포함한다.According to an embodiment, the type of malicious code and the risk level of the malicious code are determined based on analysis information or prediction information. And the embodiment generates profiling information about malicious codes. Thus, file analysis allows you to store the results of performing your own analysis of a file or performing additive and predictive analysis. Generated profiling information includes attack techniques for malicious code or labeling for attackers.
사이버 위협 정보는 위의 전처리가 수행된 정보, 생성되거나 식별된 분석 정보, 생성된 예측 정보 또는 이 정보들의 취합 정보나 이 정보들을 기반으로 결정된 정보를 포함할 수 있다. The cyber threat information may include information on which the above preprocessing has been performed, generated or identified analysis information, generated prediction information, or aggregation information of these information or information determined based on the information.
제공되는 사이버 위협 정보에는 입력된 파일과 관련하여 데이터 베이스에 저장된 분석 정보를 이용하거나 위에서 분석되거나 예측된 정보가 포함될 수 있다. The provided cyber threat information may include information analyzed or predicted using analysis information stored in a database in relation to an input file or analyzed or predicted above.
실시 예에 따르면 사용자가 입력된 파일에 대한 악성 행위뿐만 아니라 이미 저장된 파일이나 악성 행위에 대해 사이버 위협 정보를 조회할 경우 이에 대한 정보를 제공할 수 있다.According to the embodiment, when a user searches for cyber threat information on not only a malicious action on an input file but also a previously stored file or malicious action, information on this may be provided.
이러한 통합 분석 정보는 해당 파일에 대응하여 서버나 데이터 베이스에 표준화된 포맷으로 저장될 수 있다. 이러한 통합 분석 정보는 표준화된 포맷으로 저장되어 사이버 위협 정보를 검색 또는 조회에 사용될 수 있다. This integrated analysis information may be stored in a standardized format in a server or database corresponding to a corresponding file. This integrated analysis information is stored in a standardized format and can be used for searching or querying cyber threat information.
사용자의 사이버 위협 정보의 조회에 대항 추가적인 예시는 이하에서 상세히 후술한다.Additional examples against the inquiry of the user's cyber threat information will be described in detail below.
도 2는 개시하는 실시 예에 따라 분석 정보 생성하는 과정에서 정적 분석 정보를 얻는 예를 개시한다. Figure 2 discloses an example of obtaining static analysis information in the process of generating analysis information according to the disclosed embodiment.
개시하는 실시 예에 따른 정적 분석 정보를 획득하는 단계는, 입력된 파일의 구조 정보를 얻고 분석하는 단계를 포함할 수 있다(S2110). Obtaining static analysis information according to the disclosed embodiment may include obtaining and analyzing structure information of an input file (S2110).
실시 예는 파일이 실행되지 않는 환경에서 먼저 식별된 파일 기본적인 구조 정보를 분석할 수 있다. 이 단계에서는 예를 들어 파일의 종류가 ELF(Executable and Linkable Format), PE(Portable Executable), APK(Android Application Package) 등에 파일 종류가 다르더라도 파일의 위 파일 구조나 그 구조로부터 추출할 수 있는 정보를 획득하거나 분석한다. The embodiment may analyze basic structure information of a file identified first in an environment in which the file is not executed. In this step, even if the file type is different, for example, ELF (Executable and Linkable Format), PE (Portable Executable), APK (Android Application Package), etc., the file structure above the file or information that can be extracted from the structure to obtain or analyze
참고로 예시하는 정적 분석에서 파일의 식별은 개시한 전처리 단계에서 수행될 수도 있는데 이러한 경우 S210 단계의 분석 단계는 전처리 단계와 함께 수행될 수 있다.For reference, identification of a file in the static analysis illustrated may be performed in the disclosed preprocessing step. In this case, the analysis step of step S210 may be performed together with the preprocessing step.
그리고 입력된 파일의 패턴 분석을 수행할 수 있다(S2120). And pattern analysis of the input file can be performed (S2120).
여기서는 식별된 파일에 대해 파일 패턴을 분석하는 경우로서 파일에 어떤 조치를 취하지 않고 파일 자체를 오픈하여 추출할 수 있는 여러 스트링(string) 등을 확인하여 파일의 패턴을 얻을 수 있다. In this case, the file pattern is analyzed for the identified file, and the file pattern can be obtained by checking several strings that can be extracted by opening the file itself without taking any action on the file.
입력된 파일이 제작과 관련된 정보를 얻고 분석할 수 있다(S2130). Information related to the production of the input file may be obtained and analyzed (S2130).
실시 예는 파일이 가지고 있는 고유 정보나 메타 정보, 예를 들면 파일 제작자 정보, 실행 파일인 경우 코드사이닝(codesigning) 정보 등을 얻을 수 있다. In the embodiment, unique information or meta information possessed by a file, for example, file maker information, and codesigning information in the case of an executable file may be obtained.
그리고 입력된 파일의 환경 정보를 분석할 수 있다(S2140). Then, environment information of the input file may be analyzed (S2140).
여기서는 대상 파일이 갖추어야 할 시스템 환경적 구성 요소 정보 등에 정보를 얻을 수 있다. Here, information such as system environment component information that the target file should have can be obtained.
그리고 입력된 파일과 관련된 여러 가지 기타 정보들을 분석하고 저장한다(S2150). 이러한 파일의 수행 없이 파일 자체의 정적 정보를 특정 파일 포맷, 예를 들어 JSON (JavaScript Object Notation)과 같은 데이터 포맷으로 저장할 수 있다.Then, various other information related to the input file is analyzed and stored (S2150). Static information of the file itself can be stored in a specific file format, for example, a data format such as JSON (JavaScript Object Notation), without performing such a file.
정적 분석의 예는 파일 자체를 분석하는 것으로서 코딩 기반의 취약 항목 존재 여부, 인터페이스 또는 함수의 호출 구조 문제, 또는 파일의 바이너리 구조 등을 얻을 수 있다. An example of static analysis is to analyze the file itself, and it is possible to obtain the presence or absence of vulnerable items in the coding base, a problem with an interface or function call structure, or a binary structure of a file.
위에서 개시한 정적 정보를 분석하는 일 예를 편의상 플로우 차트로 나타내었으나, 위 단계들은 반드시 위에서 기술되거나 도면에서 표시된 순서로 수행될 필요가 없다. 또한 파일에 따라 이 도면에서 개시한 모든 단계를 수행할 필요도 없으며 정적 분석 정보를 얻기 위해 일부 단계, 예를 들면 구조 정부 분석, 제작 관련 정보 분석 및 환경 정보 분석을 선택적으로 수행할 수도 있다. 즉 이에 대한 실시 순서와 실시 단계의 선택의 당업자의 선택에 따라 달라질 수 있다. An example of analyzing the static information disclosed above is shown as a flow chart for convenience, but the above steps need not necessarily be performed in the order described above or indicated in the figures. Also, depending on the file, it is not necessary to perform all the steps disclosed in this figure, and some steps, such as structural government analysis, fabrication related information analysis, and environmental information analysis may be optionally performed to obtain static analysis information. That is, it may vary according to the selection of a person skilled in the art in the selection of the execution sequence and execution steps.
개시된 실시 예에 따라 정적 분석 정보를 획득하는 예들을 간략하게 설명하면 다음과 같다. Briefly, examples of obtaining static analysis information according to the disclosed embodiment are as follows.
정적 분석을 수행하는 일 예로서, 전처리 과정에서 입력된 파일의 해쉬(Hash) 값을 추출할 경우 추출된 파일의 해쉬 값과, 악성코드에 대해 이미 저장된 해쉬 값과 비교하여 상기 입력된 파일이 악성코드 여부를 분석할 수 있다. 분석된 기반으로 파일 내에 악성 코드가 있는지 탐지할 수 있다. As an example of performing static analysis, when the hash value of an input file is extracted in a preprocessing process, the hash value of the extracted file is compared with the hash value already stored for malicious code, and the input file is malicious. code can be analyzed. Based on the analysis, it is possible to detect whether there is malicious code in the file.
만약, 입력 파일이 모바일 데이터 인 경우 입력된 파일로부터 모바일 악성 의심 코드의 코드 정보를 추출한다. 여기서, 코드 정보란 모바일 악성 의심 코드를 실행하지 않고 코드 자체로부터 추출할 수 있는 정보를 의미하는 것으로, 예를 들어, 해쉬(Hash) 정보, 코드 크기 정보, 파일 헤더 정보, 코드 내에 포함되어 있는 식별 가능한 문자열 정보 및 동작 플랫폼 정보 등을 포함할 수 있다.If the input file is mobile data, code information of mobile malicious code is extracted from the input file. Here, the code information means information that can be extracted from the code itself without executing the mobile malicious code, for example, hash information, code size information, file header information, and identification included in the code. Possible string information and operating platform information may be included.
설명한 바와 같이 이와 같이 획득된 정적 분석 정보는 해당 파일에 대응하여 저장될 수 있다.As described above, static analysis information obtained in this way may be stored corresponding to a corresponding file.
도 3은 개시하는 실시 예에 따라 분석 정보 생성하는 과정에서 동적 분석 정보를 얻는 예를 개시한다.3 discloses an example of obtaining dynamic analysis information in a process of generating analysis information according to the disclosed embodiment.
전처리로부터 식별된 파일 정보 또는 정적 분석 정보 중 적어도 하나에 기반하여 식별된 파일의 실행 환경에서 실행된 결과 데이터에 따른 동적 분석 정보를 획득할 수 있다Dynamic analysis information according to result data executed in an execution environment of a file identified based on at least one of file information or static analysis information identified from preprocessing may be obtained.
개시하는 실시 예에 따른 동적 분석 정보를 획득하는 단계는 파일이 실행 중인 환경에서 다양한 입출력 데이터를 분석하거나 또는 파일 실행 시 실행 환경과 상호작용의 변화를 분석하여 취약하거나 위험한 이상현상을 탐지하는 단계이다. 일반적으로 가상화 환경에서 파일을 직접적으로 실행하여 이상 여부를 분석한다. Acquiring dynamic analysis information according to the disclosed embodiment is a step of detecting a vulnerable or dangerous anomaly by analyzing various input/output data in an environment in which a file is being executed or by analyzing changes in interaction with an execution environment when a file is executed. . In general, files are directly executed in a virtualization environment to analyze abnormalities.
동적 분석을 수행하기 위해 실시 예는 입력 파일을 실행하기 위한 동적 분석 환경을 생성하고 준비한다(S2210). 입력된 파일의 타입을 식별한 경우 각각의 파일의 타입에 따라 어떤 실행 환경이 필요한지 알 수 있다. 예를 들면 파일에 따라 윈도우 운영체제, 리눅스 운영체제, 모바일 기기 운영체제에서 실행되는 파일인지 식별할 수 있다. To perform dynamic analysis, the embodiment creates and prepares a dynamic analysis environment for executing an input file (S2210). When the type of the input file is identified, it is possible to know which execution environment is required according to the type of each file. For example, depending on the file, it can identify whether the file is executed in a Windows operating system, a Linux operating system, or a mobile device operating system.
준비된 분석 환경에서 악성 코드 여부를 판별하기 위해 획득된 파일을 실행한다(S2220). In the prepared analysis environment, the acquired file is executed to determine whether it is a malicious code (S2220).
동적 분석 정보를 획득하기 위해 이러한 실행 환경에서 파일을 실행하여 해당 시스템에서 발생하는 이벤트를 수집할 수 있다(S2230). 예를 파일 자체, 프로세스, 메모리, 레지스트리, 네트워크의 시스템에 대한 이벤트 또는 각 시스템의 설정을 변경시키는 이벤트를 수집할 수 있다. 그리고, 수집된 이벤트들을 개별적으로 또는 취합하여 분석한다.In order to obtain dynamic analysis information, a file may be executed in such an execution environment to collect events occurring in the corresponding system (S2230). For example, you can collect events about files themselves, processes, memory, registry, systems on the network, or events that change the settings of each system. Then, the collected events are analyzed individually or collectively.
수집된 결과를 취합한 후 동적 분석을 위한 환경을 다시 복구한다(S2240). After collecting the collected results, the environment for dynamic analysis is restored again (S2240).
이와 같이 획득된 결과는 해당 파일에 대응된 동적 분석 정보로 저장될 수 있다.The result obtained in this way may be stored as dynamic analysis information corresponding to the corresponding file.
이하에서 이와 같은 동적 분석 정보를 획득하는 실시 예에 따라 동적 분석 정보를 수집하고 분석하는 예를 간략하게 개시한다. Hereinafter, an example of collecting and analyzing dynamic analysis information according to an embodiment of obtaining such dynamic analysis information will be briefly described.
동적 분석의 일 실시 예로서, 입력된 파일이 모바일 기기 운영 체제에서 동작하는 파일로 식별된 경우, 파일을 모바일 단말 또는 모바일 단말 환경과 동일하게 구성된 에뮬레이터나 가상화 환경에서 직접 실행한다. 그리고 파일 내에 모바일 악성 의심 코드가 실행된 후에 단말에 발생하는 모든 변화, 즉 행위 정보를 추출하고 기록한다. 행위 정보는 단말의 운영체제(OS) 환경에 따라 상이하나, 통상적으로 프로세스, 파일, 메모리 및 네트워크 정보 등의 이벤트 정보를 포함할 수 있다.As an example of dynamic analysis, when an input file is identified as a file operating in a mobile device operating system, the file is directly executed in a mobile terminal or an emulator or virtualization environment configured the same as the mobile terminal environment. In addition, all changes that occur in the terminal after the suspected mobile malicious code is executed in the file, that is, behavior information, are extracted and recorded. Action information is different depending on the operating system (OS) environment of the terminal, but may typically include event information such as process, file, memory, and network information.
동적 분석의 다른 실시 예로서 전처리 과정에서 입력된 파일의 해쉬(Hash) 값을 추출되지 않고 사용자 단말에서 해쉬 값이 추출된 경우라도, 단말에서 추출된 파일의 해쉬 값을 인텔리전스 플랫폼을 통해 수신할 수 있다. As another example of dynamic analysis, even if the hash value of the input file is not extracted in the preprocessing process and the hash value is extracted from the user terminal, the hash value of the file extracted from the terminal can be received through the intelligence platform. there is.
데이터베이스에 해당 파일의 해쉬 값이 이미 저장되지 않는 경우 수신된 파일을 가상 또는 실제의 운영체제에서 실행시키고, 실행 시에 발생되는 행위를 실시간으로 수집하고 수집된 동적분석 정보를 데이터베이스에 이미 저장된 정보와 비교할 수 있다. If the hash value of the file is not already stored in the database, the received file is executed in a virtual or real operating system, the actions occurring during execution are collected in real time, and the collected dynamic analysis information is compared with the information already stored in the database. can
상기 비교 결과 이미 정의된 위험도를 초과하는 경우 입력된 파일이 악성 코드를 포함하고 있다고 판단할 수 있고, 해당 파일의 해쉬 값을 데이터 베이스에 저장하여 추후 정적 분석 등에 이용할 수 있다. As a result of the comparison, if the risk level already defined is exceeded, it can be determined that the input file contains malicious code, and the hash value of the corresponding file can be stored in a database and used for static analysis later.
악성 코드에 따라 행위 주체가 되는 제 1 프로세스가 시스템에 위험한 행위를 발생하는 경우도 있다. 그러나, 경우에 따라 상기 제 1 의 프로세스의 행위가 추가적으로 자식 프로세스인 제 2 프로세스를 추가로 생성하고 상기 제 2 프로세스가 시스템에 악성 행위를 수행하는 경우도 있다. Depending on the malicious code, the first process acting as a subject of action may cause a dangerous action to the system. However, in some cases, the behavior of the first process additionally creates a second process, which is a child process, and the second process performs a malicious action on the system.
이러한 경우, 동적 분석의 일 실시 예는 최초의 제 1 의 프로세스의 행위가 실행 시스템에 발생시키는 이벤트들을 저장하고, 추가적으로 제 1 프로세스의 자식 프로세스인 제 2 프로세스를 추출 또는 확인하여 상기 제 2 프로세스에 따른 악성 행위의 이벤트를 저장할 수도 있다. 이와 같이 이 예에서 동적 분석은 최초의 제 1 프로세스와 그와 연결될 제 2, 3의 프로세스의 이벤트 정보도 종합적으로 분석하여 식별된 파일이 악성 코드를 포함하는지 판단할 수 있다.In this case, an embodiment of the dynamic analysis stores events generated by the behavior of the first process in the execution system, and additionally extracts or identifies the second process, which is a child process of the first process, so that the second process It is also possible to store events of malicious actions according to the method. In this way, the dynamic analysis in this example comprehensively analyzes event information of the first process and the second and third processes to be connected thereto to determine whether the identified file contains malicious code.
입력된 파일의 실행 결과에 따라 알려지지 않은 악성 코드의 특성이 없는 경우는 악성 코드의 특성을 가지고 있더라도 탐지하기 어려운 경우 있다. 이러한 경우 동적 분석의 또 다른 실시 예는 식별된 파일이 실행 시에 외부와 통신하는 네트워크 프로세스를 모니터링하고 분석하여 상기 실행 프로세스의 악성 행위를 탐지할 수 있다. Depending on the execution result of the input file, if there is no characteristic of unknown malicious code, it is difficult to detect even if it has the characteristic of malicious code. In this case, another embodiment of dynamic analysis may detect a malicious behavior of the executing process by monitoring and analyzing a network process that communicates with the outside when the identified file is executed.
예를 들면 식별된 파일을 실행한 경우 외부와 통신하는 네트워크 이벤트를 모니터링할 수 있다. 파일 실행에 따라 로컬 어드레스 오브젝트(local address object)를 생성한 프로세스 아이디(Process IDentifier, PID)를 저장한다. 그리고, 상기 파일 실행과 관련된 네트워크 이벤트가 발생될 경우 해당 네트워크 이벤트의 IRP(Interior Router Protocol) 정보로부터 로컬 어드레스 오브젝트 정보들을 추출할 수 있다. For example, you can monitor network events that communicate with the outside world when an identified file is executed. Stores the Process IDentifier (PID) that created the local address object according to file execution. Further, when a network event related to the file execution occurs, local address object information may be extracted from Interior Router Protocol (IRP) information of the corresponding network event.
상기 프로세스 아이디가 생성한 로컬 어드레스 오브젝트와 상기 네트워크 이벤트와 관련된 로컬 어드레스 오브젝트들을 비교하여 악성 행위를 판단하는 동적 분석을 수행할 수 있다. 예를 들면 상기 네트워크 이벤트에 따라 송수신되는 패킷의 패턴이나 또는 패킷 전송을 유발하는 C&C (Control and Command) 서버를 확인하여 악성 행위 여부를 판단할 수 있다. A dynamic analysis may be performed to determine a malicious behavior by comparing a local address object generated by the process ID with local address objects related to the network event. For example, it is possible to determine whether there is a malicious action by checking a pattern of packets transmitted and received according to the network event or a control and command (C&C) server that causes packet transmission.
동적 분석의 또 다른 실시 예로서, 주소 결정 프로토콜(Address Resolution Protocol, ARP) 스푸핑 (spoofing) 공격을 방지하기 위해 ARP 정보를 모니터닝할 수도 있다. 일반적으로 로컬 영역 네트워크에서 장비의 IP(internet protocol) 주소와 MAC (media access control) 주소간의 대응은 ARP 이나 Neighbor Discovery Protocol (NDP) 이 사용될 수 있다. As another example of dynamic analysis, ARP information may be monitored to prevent an Address Resolution Protocol (ARP) spoofing attack. In general, ARP or Neighbor Discovery Protocol (NDP) may be used for correspondence between an IP (internet protocol) address and a MAC (media access control) address of a device in a local area network.
ARP 스푸핑 공격은 공격자가 IP 패킷을 전송할 경우 수신 네트워크 장비의 MAC 주소가 아닌 자신의 MAC 주소에 대응하는 ARP 메시지를 전송하여 이루어진다. 전송된 메시지를 수신한 네트워크 장비는 전송 패킷을 정상적인 IP 주소가 아닌 공격자로 전송하도록 한다. ARP spoofing attack is performed when an attacker transmits an IP packet by sending an ARP message corresponding to his own MAC address, not the MAC address of the receiving network device. The network equipment receiving the transmitted message transmits the transmission packet to the attacker instead of the normal IP address.
실시 예는 이러한 공격에 대응하기 위하여 네트워크 장비들로부터 직접 수집된 ARP 정보와, 가상 네트워크에 포함된 네트워크 장비들의 SNMP (Simple Network Management Protocol) 정보 내의 ARP 정보를 비교함으로써 ARP 스푸핑 공격 발생 여부를 판단할 수 있다. The embodiment compares ARP information directly collected from network devices with ARP information in SNMP (Simple Network Management Protocol) information of network devices included in a virtual network in order to respond to such an attack, thereby determining whether an ARP spoofing attack has occurred. can
즉, 동적 분석의 일 실시 예는, 호스트가 네트워크에 연결된 장비들에 ARP 정보 요청 메시지를 전송하여 회신된 ARP 응답 메시지에 포함된 제 1 ARP 정보와, 가상 네트워크에 접속된 장비들의 SNMP 정보 내에 포함된 제 2 ARP 정보를 비교하여 제 1 ARP 정보와 제 2 ARP 정보가 다른 경우 ARP 스푸닝 공격이 발생했다고 판단할 수 있다. That is, in one embodiment of the dynamic analysis, the host transmits an ARP information request message to devices connected to the network, and the first ARP information included in the returned ARP response message and the SNMP information of the devices connected to the virtual network are included. When the first ARP information and the second ARP information are different from each other by comparing the second ARP information, it may be determined that an ARP spuning attack has occurred.
이 실시 예는 이러한 동적 분석의 방식을 이용하여 ARP 스푸핑 공격을 탐지하고 호스트 장비에 저장될 기밀 정보 유출을 방지할 수 있다. This embodiment can detect an ARP spoofing attack and prevent leakage of confidential information to be stored in a host device by using such a dynamic analysis method.
동적 분석 방식의 또 다른 실시에는 가상 환경을 회피하도록 하는 악성 코드를 분석할 수 있는 방법이다. 여기서 관리 서버와 네트워크를 통해 연결된 단말은 관리 서버에 저장된 제 1 OS (operating system) 이미지를 이용해 부팅을 수행할 수 있다. 단말이 부팅된 후 상기 제 1 OS에 기초하여 악성 코드를 분석한 후, 상기 단말은 관리 서버로부터 제 2 OS 이미지를 수신하고, 수신된 제 2 OS 이미지를 이용해 초기화를 수행한다. 그리고 상기 단말이 악성 코드가 분석 종료된 시그니처를 상기 관리 서버로 전송하도록 한다. 따라서, 제 1 OS에 기초하여 악성 코드를 분석 후에 발행된 악성 행위가 있더라도 상기 관리 서버는 단말이 제 1 OS을 단말에서 삭제하도록 하고 원본 OS 이미지와 동일한 제 2 OS를 기초로 단말이 부팅하도록 함으로써 단말에 악성 행위 발생을 방지하도록 할 수 있다. Another implementation of the dynamic analysis method is a method of analyzing a malicious code that avoids a virtual environment. Here, a terminal connected to the management server through a network may perform booting using a first OS (operating system) image stored in the management server. After the terminal boots and analyzes malicious codes based on the first OS, the terminal receives a second OS image from a management server and performs initialization using the received second OS image. Then, the terminal transmits the signature of which the malicious code has been analyzed to the management server. Therefore, even if there is a malicious behavior issued after analyzing the malicious code based on the first OS, the management server allows the terminal to delete the first OS from the terminal and boots the terminal based on the second OS identical to the original OS image. Malicious behavior can be prevented from occurring in the terminal.
악성 코드는 외부의 서버와 통신하며 추가적인 명령을 발생시키고 파일을 수신하도록 할 수 있다. Malicious code can communicate with an external server, issue additional commands, and receive files.
그런데 동적 분석을 수행할 수 있는 서버가 중지된 경우는 이러한 동적 분석에 매우 오랜 시간이 소요될 수 있고 해당 행위가 사전 차단된 경우에도 동적 분석을 수행할 수 없는 경우가 있다. However, when a server capable of performing dynamic analysis is stopped, such dynamic analysis may take a very long time, and there are cases in which dynamic analysis cannot be performed even when a corresponding action is blocked in advance.
동적 분석을 통해 네트워크 행위를 분석하기 위해서는 악성 코드가 사용하는 명령 제어 서버(C&C 서버), 추가적인 악성 코드를 다운로드하기 위한 다운로드 서버 또는 악성 코드들끼리 정보를 주고 받거나 해커와 정보를 주고 받는 커뮤니케이션 패킷 등의 정보를 추출하여 분석해야 한다. 그러나, 이와 같이 관련 서버가 작동하지 않는 경우에는 그러한 정보의 추출할 수 없다. In order to analyze network behavior through dynamic analysis, a command control server (C&C server) used by malicious codes, a download server to download additional malicious codes, or communication packets that exchange information between malicious codes or with hackers, etc. information must be extracted and analyzed. However, such information cannot be extracted if the relevant server does not operate in this way.
여기서 개시하는 동적 분석 방법의 또 다른 실시 예는 서버가 동작 중지된 경우에도 동적 분석을 수행하도록 할 수 있다. According to another embodiment of the dynamic analysis method disclosed herein, dynamic analysis may be performed even when a server is stopped.
예를 들어 네트워크 접속 유도 장치가 악성 코드에 감염된 클라이언트 단말과 관리 서버에 사이에서 단말의 접속 요청을 처리하도록 하여 동적 분석을 진행하도록 할 수도 있다. 네트워크 접속 유도 장치는 단말로부터 접속 요청을 수신하고 이를 악성 코드 행위를 유발시키는 C&C 서버로 전달하도록 할 수 있다. 그리고, 만약 상기 네트워크 접속 유도 장치가 일정 시간 내에 C&C 서버로부터 응답 패킷을 수신하지 못하면, 상기 네트워크 접속 유도 장치는 별도의 가상의 응답 패킷과 접속 요청을 함께 상기 단말에 전송하도록 한다. For example, dynamic analysis may be performed by having the device for inducing network access process an access request of a terminal between a client terminal infected with malicious code and a management server. The device for inducing network access may receive an access request from a terminal and transmit it to a C&C server that causes malicious code behavior. And, if the network connection inducing device does not receive a response packet from the C&C server within a certain time, the network connection inducing device transmits a separate virtual response packet and an access request together to the terminal.
이후에 상기 단말로부터 수신된 악성 코드 분석에 관련된 데이터를 추출할 수 있다. Thereafter, data related to malicious code analysis received from the terminal may be extracted.
가상의 응답 패킷을 이용하는 예는 가상의 응답 패킷 TCP 세션을 생성하기 위한 패킷 형식이면 충분하다. 악성 코드가 사용하는 일반적인 TCP (Transmission Control Protocol) 프로토콜은 TCP 세션만 생성하도록 상기 클라이언트 단말이 전송하는 데이터 패킷을 생성할 수 있다. 그리고 상기 데이터 패킷으로부터 악성 코드의 동적 분석에 필요한 중요 정보들을 추출할 수 있다. 이와 같이 하면 관리 서버가 동작하지 않더라도 네트워크 접속 유도 장치의 동작을 이용하여 동적 분석을 수행할 수 있다. As an example of using a virtual response packet, a packet format for creating a virtual response packet TCP session is sufficient. A general Transmission Control Protocol (TCP) protocol used by malicious code may generate a data packet transmitted by the client terminal to create only a TCP session. In addition, important information required for dynamic analysis of malicious code can be extracted from the data packet. In this way, even if the management server does not operate, dynamic analysis can be performed using the operation of the network connection inducing device.
이와 같이 실시 예는 수신된 파일을 실행하여 발행하는 이벤트를 분석할 수 하고 동적 분석 정보를 데이터베이스에 저장할 수 있다. In this way, the embodiment may analyze an event issued by executing a received file and store dynamic analysis information in a database.
도 4는 개시하는 실시 예에 따라 분석 정보 생성하는 과정에서 심층 분석 정보를 얻는 예를 개시한다.4 discloses an example of obtaining in-depth analysis information in a process of generating analysis information according to the disclosed embodiment.
개시하는 실시 예에 따른 심적 분석 정보를 획득하는 단계는 수신된 파일 포함하는 실행 가능한 파일 디스어셈블링(disassembling)하여 기계 언어 레벨에서 분석하여 악성 행위를 유발하는 공격 기법이나 공격자를 식별하는 특징을 포함한다. Acquiring the psychological analysis information according to the disclosed embodiment includes a feature of identifying an attack technique or an attacker that causes malicious behavior by disassembling an executable file including the received file and analyzing it at the machine language level. do.
심층 분석 정보는 기술한 정적 분석이나 동적 분석의 결과를 이용하여 얻을 수도 있고, 분석자의 해석 기준에 따라 실행 가능한 파일을 악성 행위를 유발하는 파일로 분석할 수 있다. In-depth analysis information may be obtained using the results of the static analysis or dynamic analysis described above, or an executable file may be analyzed as a file causing malicious behavior according to an analysis standard of an analyzer.
또한 심층 분석 정보는 파일 자체의 분석 정보나 또는 파일을 여러 번 가공한 정보를 포함할 수 있고 이미 저장된 정보를 기반으로 수행될 수 있다. Further, the in-depth analysis information may include analysis information of the file itself or information obtained by processing the file several times, and may be performed based on already stored information.
심층 분석은 디스어셈블링(disassembling), 디스어셈블된 기계언어레벨의 코드추출, 공격행위(TTP)식별, 공격자 식별, 테인트분석(taint analysis)을 수행하는 단계를 포함할 수 있다. The in-depth analysis may include disassembling, disassembling machine language level code extraction, attack behavior (TTP) identification, attacker identification, and taint analysis.
도면을 참조하여 상세히 예시하면 다음과 같다. A detailed example with reference to the drawings is as follows.
입력된 파일이 실행 가능한 파일을 포함할 경우 심층 분석은 실행 가능한 파일을 디스어셈블(disassemble)한다 (S2410). If the input file includes an executable file, in-depth analysis disassembles the executable file (S2410).
디스어셈블(disassemble)된 어셈블리 코드(assembly code)들은 OP-CODE(operation code)와 피연산자(operand)를 포함할 수 있다. OP-CODE(operation code)는 명령어 코드로 호칭할 수는 기계 언어 명령어를 나타내고, 피연산자(operand)는 실행 동작에 필요한 정보, 즉 기계 언어 명령어의 대상 데이터나 메모리 위치를 나타낸다. Disassembled assembly codes may include an operation code (OP-CODE) and an operand. An operation code (OP-CODE) represents a machine language instruction that can be called a command code, and an operand represents information necessary for an execution operation, that is, target data or a memory location of the machine language instruction.
이하에서는 편의상 디스어셈블(disassemble)된 어셈블리 코드(assembly code)들 중 OP-CODE를 제외한 부분을 ASM-CODE로 호칭하도록 한다. 따라서, 이하에서 ASM-CODE 는 피연산자(operand) 부분을 포함할 수 있다. Hereinafter, for convenience, the parts excluding the OP-CODE among the disassembled assembly codes are referred to as ASM-CODE. Therefore, below, ASM-CODE may include an operand part.
디스어셈블링(disassembling)을 통해 오브젝트 코드 형식의 실행 가능한 파일은 특정 형식, 예를 들면 어셈블러 언어 형식의 코드 또는 디스어셈블된 코드로 변환된다. 이러한 디스어셈블된 코드로부터 일정 형식을 가진 OP-CODE (operation code) 와 ASM-CODE를 추출할 수 있다 (S2420). Through disassembly, an executable file in object code format is converted into a specific format, for example code in assembler language format or disassembled code. From these disassembled codes, OP-CODE (operation code) and ASM-CODE having a certain format can be extracted (S2420).
추출된 디스어셈블드 코드를 일정 형식의 데이터 포맷을 변환할 수 있다. 일정 형식의 데이터 포맷의 변환 예시는 아래에서 개시한다.The extracted disassembled code can be converted into a certain type of data format. An example of conversion of a certain type of data format is disclosed below.
심층 분석은 추출된 디스어셈블된 코드나 상기 일정 형식으로 변환된 데이터 포맷을 기반으로 공격행위를 식별할 수 있다(S2430). The in-depth analysis may identify an attack based on the extracted disassembled code or the data format converted to the predetermined format (S2430).
디스어셈블된 코드 내에 OP-CODE는 수행될 연산을 특정하는 기계 언어 명령어의 일부인데, 사이버 보안 상 공격 행위 또는 공격 기법(Terrorist Tactics, Techniques, and Procedures, 이하 TTP)을 유발하는 OP-CODE는 해당 공격 행위 별로 매우 유사한 값이나 포맷을 가질 수 있다. 따라서, 이러한 OP-CODE와 ASM-CODE 를 분석하면 특정 공격 행위를 구별할 수 있다. The OP-CODE in the disassembled code is a part of machine language instructions that specify the operation to be performed. Each attack activity may have a very similar value or format. Therefore, by analyzing these OP-CODEs and ASM-CODEs, specific attack behaviors can be distinguished.
실행 가능한 파일로부터 디스어셈블된 코드들을 추출하고 추출된 디스어셈블된 코드들은 실행 함수에 따라 분리될 수 있다. Disassembled codes may be extracted from an executable file, and the extracted disassembled codes may be separated according to an execution function.
예를 들면 디스어셈블된 코드로부터 추출된 OP-CODE와 ASM-CODE 또는 상기 디스어셈블된 코드의 재조합된 코드는 퍼지 해쉬(Fuzzy Hashing) 방식 또는 CTPH (context triggered piecewise hashes) 방식 등의 해쉬 값이나 이를 일정 형식의 코드로 변환할 수 있다. For example, the OP-CODE and ASM-CODE extracted from the disassembled code or the recombined code of the disassembled code is a hash value such as a fuzzy hash method or a context triggered piecewise hashes (CTPH) method, or It can be converted into a certain type of code.
실시 예는 실행 가능한 파일의 디스어셈블된 코드를 일정 형식으로 변환하고 사이버 보안 전문가 집단들이 공통적으로 인정하는 공격 행위 세부 요소들로 매칭하도록 하여 그 공격행위를 식별할 수 있다. The embodiment can identify the attack by converting the disassembled code of the executable file into a certain format and matching it with detailed elements of the attack that are commonly recognized by cyber security expert groups.
그리고 이미 추출된 디스어셈블된 코드들과 공격행위(TTP) 별 매칭 관계를 저장한 데이터베이스에 기반하여 공격행위(TTP)를 식별하도록 할 수 있다. 이 경우 추출된 디스어셈블된 코드들의 CTPH 알고리즘에 따른 퍼지 해쉬 값이나 이를 일정 형식으로 변환한 데이터와 공격 행위(TTP) 별 매칭 유사도를 고속으로 수행할 수 있다. In addition, based on the database storing the already extracted disassembled codes and the matching relationship for each attack behavior (TTP), the attack behavior (TTP) can be identified. In this case, it is possible to perform high-speed matching of fuzzy hash values according to the CTPH algorithm of the extracted disassembled codes or data obtained by converting them into a certain format, and each attack behavior (TTP).
이러한 보안 전문가 집단의 공격 행위를 저장한 데이터 베이스의 일 예로서 MITRE ATT&CK 등의 정보를 저장한 데이터베이스를 예로 들 수 있다. MITRE ATT&CK은 실제 보안 공격 기법이나 행위에 대한 데이터 베이스의 하나로서, 특정 보안 공격 기법이나 행위들을 매트릭스 형식의 구성 요소들로 표시함으로써, 공격 기법과 행위들을 일정한 데이터 세트 형식으로 식별할 수 있도록 한다. As an example of a database storing the attack behaviors of such a group of security experts, a database storing information such as MITER ATT&CK may be exemplified. MITER ATT&CK is one of the databases for actual security attack techniques or behaviors, and by displaying specific security attack techniques or behaviors as elements in a matrix form, attack techniques and behaviors can be identified in the form of a certain data set.
MITRE ATT&CK는 해커 또는 악성 코드의 공격 기법에 대한 내용을 공격의 단계 별로 분류하여 CVE 코드(Common Vulnerabilities and Exposures Code)의 매트릭스로 표현한다. MITER ATT&CK categorizes the attack techniques of hackers or malicious codes by attack stage and expresses them in a matrix of CVE codes (Common Vulnerabilities and Exposures Code).
실시 예는 디스어셈블된 코드를 분석함으로써 여러 가지 공격 행위들 중 특정 공격 행위를 식별하되, 식별된 타입의 공격 행위가 전문가 단체들이 인정하는 실제 수행되는 공격 코드들에 매칭되도록 함으로써 공격 행위 식별이 전문적이면서 공통으로 인식되는 요소들로 표현되도록 할 수 있다.The embodiment analyzes the disassembled code to identify a specific attack behavior among various attack behaviors, but matches the identified type of attack behavior to the actual attack codes recognized by expert organizations, so that the identification of the attack behavior is specialized. It can be expressed as elements that are recognized in common.
디스어셈블된 코드 내에 OP-CODE는 특정 행위를 유발시키는 기계 언어 명령어이므로, 동일한 공격 행위를 유발하는 파일의 OP-CODE 는 매우 유사할 수 있다. 그러나 동일 공격 행위와 이를 유발하는 파일에 포함된 OP-CODE가 정확하게 완전히 동일한 것은 아니므로, 실시 예는 OP-CODE를 포함하는 디스어셈블링된 코드에 대해 인공 지능 기반의 머신 러닝을 수행하도록 할 수 있다. 머신 러닝이 수행되면 임계 치 이상의 유사도를 가진 공격 코드의 포함 여부와 공격 코드의 공격 기법이 식별될 수 있다. Since the OP-CODE in the disassembled code is a machine language command that causes a specific action, OP-CODEs of files that cause the same attack action can be very similar. However, since the same attack behavior and the OP-CODE included in the file that causes it are not exactly the same, the embodiment can perform artificial intelligence-based machine learning on the disassembled code including the OP-CODE. there is. When machine learning is performed, whether an attack code having a similarity higher than a threshold value is included and an attack method of the attack code can be identified.
따라서, 동일한 악성 행위를 유발시키는 파일들의 디스어셈블링된 코드들이 완전히 동일하지 않더라도 디스어셈블링된 코드기반으로 악성 행위를 수행하는 파일을 식별할 수 있다. Accordingly, even if the disassembled codes of the files causing the same malicious behavior are not completely identical, the file performing the malicious behavior can be identified based on the disassembled code.
머신 러닝 알고리즘으로 Perceptron, Logistic Regression, Support Vector Machines, Multilayer Perceptron 등의 알고리즘이 사용될 수 있다. As a machine learning algorithm, algorithms such as Perceptron, Logistic Regression, Support Vector Machines, and Multilayer Perceptron may be used.
디스어셈블된 코드들의 퍼지 해쉬 값들의 유사도를 AI(Artificial Intelligence; 이하 AI) 알고리즘을 이용하여 기존에 학습된 MITRE ATT&CK과 같은 공격 기법의 공격 코드들로 매칭하여 최종적으로 악성 코드임을 탐지할 수 있다 The similarity of the fuzzy hash values of the disassembled codes can be finally detected as malicious code by matching the similarity of the fuzzy hash values of the disassembled codes with the previously learned attack codes of attack techniques such as MITER ATT&CK using the AI algorithm.
그리고 실시 예는 인공 지능 머신 러닝의 결과를 이용하면 보다 정확성을 가지고 신속하게 디스어셈블된 코드에 대응되는 공격 행위 또는 공격 행위의 취약 요소들을 식별할 수 있다. Further, in the embodiment, by using the result of artificial intelligence machine learning, it is possible to more accurately and quickly identify an attacking behavior corresponding to the disassembled code or vulnerable elements of the attacking behavior.
이에 대한 구체적인 실시 예들은 이하에서 도면을 참고하여 상세히 개시한다.Specific embodiments for this will be disclosed in detail with reference to the drawings below.
심층 분석의 실시 예는 디스어셈블된 코드와 인공 지능 기반의 머신 러닝 결과를 이용해 유사 공격 행위를 유발하는 공격자도 식별하는 단계를 포함할 수도 있다(S2440). 마찬가지로 공격자 식별에 대한 구체적인 예는 후술한다An embodiment of the in-depth analysis may also include identifying an attacker who causes a similar attack behavior using the disassembled code and artificial intelligence-based machine learning results (S2440). Similarly, specific examples of attacker identification will be described later.
그리고 심층 분석의 실시 예는 파일이 없는(fileless) 악성 코드의 경우도 특정 시점에서 시스템의 메모리 분석을 통해 공격 행위가 있는지 여부에 대해 판단할 수 있는 테인트분석(taint analysis)을 포함할 수 있다(S2450). In addition, an embodiment of the in-depth analysis may include taint analysis that can determine whether there is an attack behavior through memory analysis of the system at a specific point in time even in the case of fileless malicious code. (S2450).
심층 분석은 실행 파일의 디스어셈블링된 코드를 처리하는 것에 기반하며 이에 따른 공격 기법이나 공격자의 식별, 또는 테인트 분석은 선택적으로 수행될 수도 있다.In-depth analysis is based on processing the disassembled code of the executable file, and identification of attack techniques or attackers or taint analysis may be selectively performed.
이와 같이 수행된 최종 심층 분석 정보는 해당 파일에 대응되는 심층 분석 정보로 데이터베이스에 저장할 수 있다. The final in-depth analysis information performed in this way may be stored in a database as in-depth analysis information corresponding to a corresponding file.
도 5는 심층 분석의 일 예로서 악성 코드를 디스어셈블링하여 악성 행위가 포함된 파일임을 판단하는 예를 개시한다. 5 discloses an example of disassembling malicious code and determining that the file contains malicious behavior as an example of in-depth analysis.
기술한 바와 같이 실행 가능한 파일을 디스어셈블링을 수행하면 어셈블리 언어 형식의 코드의 형식인 OP-CODE 와 ASM-CODE를 얻을 수 있다.As described above, if the executable file is disassembled, OP-CODE and ASM-CODE, which are assembly language code formats, can be obtained.
예를 들어 EXE 실행 파일 내에 특정 함수 A는 디스어셈블러(disassembler)를 거치면 OP-CODE를 포함하는 디스어셈블링된 코드 또는 디스어셈블드 코드(disassembled cocde)로 변환될 수 있다. For example, a specific function A in an EXE executable file may be converted into disassembled code including OP-CODE or disassembled code by passing through a disassembler.
만약 EXE 실행 파일이 악성 행위를 유발하는 악성 코드인 경우, 이러한 행위를 유발하는 함수나 코드 부분을 디스어셈블링하면 악성 행위를 유발하는 디스어셈블드 코드 세트를 얻을 수 있다. If the EXE executable file is malicious code that causes malicious behavior, a disassembled code set that causes malicious behavior can be obtained by disassembling functions or code parts that cause such behavior.
디스어셈블드 코드 세트는 상기 악성 행위 또는 악성 코드에 대응되는 OP-CODE 세트 또는 OP-CODE 와 ASM-CODE가 조합된 세트를 포함할 수 있다. The disassembled code set may include an OP-CODE set corresponding to the malicious behavior or malicious code or a combination of OP-CODE and ASM-CODE.
악성 행위가 동일하더라도 이를 수행하도록 하는 악성 코드의 알고리즘이나 실행 파일의 디스어셈블링 결과가 정확하게 같지 않기 때문에 인공 지능 기반의 유사도 분석을 통해 입력된 악성 코드가 특정 디스어셈블드 코드 세트와 대응되는지를 식별할 수 있다.Even if the malicious behavior is the same, since the disassembling result of the algorithm or executable file of the malicious code to perform it is not exactly the same, artificial intelligence-based similarity analysis identifies whether the entered malicious code corresponds to a specific set of disassembled codes. can do.
이렇게 특정 디스어셈블드 코드 세트와 대응되는 악성 행위를, MITRE ATT&CK와 같은 전문적이고 공용의 공격 방식 또는 공격 기법에 대응시켜 공격 기법 (TTP)를 식별하는데 사용할 수 있다. In this way, the malicious behavior corresponding to a specific disassembled code set can be used to identify an attack technique (TTP) by responding to a specialized and common attack method or attack technique such as MITER ATT&CK.
또는 특정 디스어셈블드 코드 내 OP-CODE 세트 또는 OP-CODE 와 ASM-CODE가 조합된 세트를 MITRE ATT&CK에서 정의한 공격 기법 요소들과 대응시켜 공격 기법을 판단하는데 사용할 수 있다. Alternatively, an OP-CODE set in a specific disassembled code or a combination set of OP-CODE and ASM-CODE can be used to determine an attack technique by matching it with attack technique elements defined in MITER ATT&CK.
이 도면은 실행 파일, 해당 실행 파일의 디스어셈블드 코드 세트와 MITRE ATT&CK에서 공격 기법 요소들에 대응되는 공격 기법을 대응한 예를 나타낸다.This figure shows an example of correspondence of attack techniques corresponding to attack technique elements in an executable file, a disassembled code set of the corresponding executable file, and MITER ATT&CK.
도 6은 개시하는 실시 예에 따라 분석 정보 생성하는 과정에서 연관관계 분석 정보를 산출하는 일 예를 개시한다.6 discloses an example of calculating correlation analysis information in a process of generating analysis information according to the disclosed embodiment.
상기 얻은 여러 가지 분석 정보들은 사이버 위협 침해 정보로 이용될 수 있는데, 사이버 위협 침해 정보에 기반해 공격자 또는 공격 기법의 연관관계를 나타내는 연관관계 분석 정보를 생성한다. The obtained various analysis information can be used as cyber threat infringement information, and based on the cyber threat infringement information, correlation analysis information indicating a relationship between an attacker or an attack technique is generated.
사이버 위협 침해 정보(indicator of compromise, IoC)는 시스템이나 네트워크 상에 발생하는 실제 또는 잠재적인 사이버 보안 위협 행위, 공격 행위 또는 악성 행위를 식별하는 여러 가지 정보들을 지칭한다. 예를 들면, 사이버 위협 침해 정보(IoC)는 이러한 행위들을 지칭하는 파일, 로그 정보 상에 나타나는 여러 흔적들, 파일 자체, 경로 등 또는 이런 행위를 추론하도록 하는 정보들을 나타낸다.A cyber threat indicator of compromise (IoC) refers to a set of pieces of information that identifies actual or potential cyber security threats, attacks, or malicious behavior on a system or network. For example, cyber threat infringement information (IoC) indicates files that refer to these actions, various traces appearing on log information, files themselves, paths, etc., or information that allows these actions to be inferred.
이미 분석된 정적, 동적, 심층 분석 정보 등과 식별된 파일을 이용하여, 분석 정보와 공격 행위 사이의 IP 정보의 연관관계(S2510), 이메일에 포함되거나 웹사이트의 호스트네임의 연관관계(S2520), URL의 연관관계(S2530), 파일의 코드사인(codesign)의 연관 관계들(S2540)을 얻을 수 있다. Using the files identified such as static, dynamic, and in-depth analysis information that have already been analyzed, the relationship between the analysis information and the attack behavior (S2510), the relationship between the hostname of the website or included in the email (S2520), Associations of URLs (S2530) and codesigns of files (S2540) can be obtained.
여기서 예시하는 연관관계 분석 정보를 획득하는 과정은 일 예로서 반드시 예시한 순서를 따르거나 모든 연관관계가 분석되어야 하는 것은 아니다. 예를 들어 분석 정보와 공격행위 사이의 IP 와 URL의 연관관계만 이용해도 관련 파일에 대한 연관관계를 얻어낼 수 있다. 이러한 연관관계 분석 정보는 정확하게 공격기법 또는 공격자를 추론하는데 사용될 수 있다. The process of obtaining correlation analysis information exemplified here is an example and does not necessarily follow the exemplified sequence or analyze all correlations. For example, it is possible to obtain a relation to a related file by using only the relation of IP and URL between analysis information and an attack. This correlation analysis information can be used to accurately infer an attack technique or an attacker.
정적 분석, 동적 분석, 심층 분석 등으로 공격 행위나 공격자가 식별되지 않더라도 분석된 정보들 간의 연관관계를 이용하면 공격 행위와 공격자를 추정할 수 있는 정보를 얻을 수 있다. 이에 대한 상세한 설명은 이하에서 도면을 참조하여 설명한다.Even if an attacker or an attacker is not identified through static analysis, dynamic analysis, or in-depth analysis, information that can be used to estimate the attacker or attacker can be obtained by using the correlation between the analyzed information. A detailed description thereof will be described below with reference to the drawings.
이러한 연관 관계 분석 정보는 수신되는 파일에 대해 지속적이고 누적적으로 저장하고 추후 새로운 파일을 수신할 때마다 저장된 연관관계 분석 정보는 다시 업데이트할 수 있다. The correlation analysis information may be continuously and cumulatively stored for the received file, and the stored correlation analysis information may be updated again whenever a new file is received in the future.
위에서 분석한 여러 가지 분석 정보를 기반으로 사이버 위협 침해 정보를 얻는다. Based on the various analysis information analyzed above, cyber threat infringement information is obtained.
그리고 사이버 위협 침해 정보(IoC)를 이용해 공격 행위나 공격자를 식별할 수 있는 여러 가지 연관관계 정보를 얻을 수 있다(S2550). In addition, it is possible to obtain various relational information that can identify an attacker or an attacker using cyber threat infringement information (IoC) (S2550).
이러한 사이버 위협 침해 정보(IoC)는 추후에 공격 기법을 추론하는 연관관계 분석 정보를 얻는데 이용될 수 있다. 연관 관계 분석과 이를 이용하여 공격자를 추적 또는 공격 행위를 추론할 수 있는 예는 이하에서 상세히 설명한다.This cyber threat infringement information (IoC) can be used to obtain correlation analysis information that infers an attack technique later. Association analysis and an example in which an attacker can be tracked or an attack behavior can be inferred using the analysis will be described in detail below.
그리고 획득된 연관관계 분석 정보는 해당 파일에 대응하여 다시 서버나 데이터 베이스에 저장될 수 있다.Also, the acquired correlation analysis information may be stored in a server or database again in correspondence with the corresponding file.
설명한 바와 같이 위와 같이 분석된 정보들은 취합되어 중복 제거, 표준화, 인리치먼트 (enrichment) 과정을 통해 표준화될 수 있다. 예를 들면 정적 분석 정보, 동적분석 정보, 심층분석 정보, 연관관계분석 정보들은 사용자에게 제공되거나 추후 사이버 위협 정보를 갱신 또는 재생산하기 위해 표준화된 포맷으로 저장될 수 있다. As described above, the analyzed information may be collected and standardized through a process of deduplication, standardization, and enrichment. For example, static analysis information, dynamic analysis information, in-depth analysis information, and correlation analysis information may be provided to users or stored in a standardized format to update or reproduce cyber threat information later.
여기서 각 분석 정보들의 중복되거나 공통된 분석 정보는 중복된 부분을 제거하고, 부족한 부분의 데이터의 인리치먼트(enrichment) 작업 등을 수행할 수 있다.Here, redundant or common analysis information of each piece of analysis information may remove overlapping portions, and enrichment of data of insufficient portions may be performed.
그리고 사용자의 조회 질의에 따라 또는 서비스 정책에 따라 사이버 위협 정보로 제공될 수 있다. 사이버 위협 정보로 제공에 대해서도 이하에서 상세히 설명한다.In addition, it may be provided as cyber threat information according to a user's query or service policy. The provision of cyber threat information will also be described in detail below.
이러한 사이버 위협 정보는 사용자에게 직접 제공될 수도 있고 아래에서 설명하는 사이버 위협 예측 정보로 생성된 후 사용자의 요청이나 서비스에 따라 제공될 수도 있다. Such cyber threat information may be provided directly to the user or may be provided according to the user's request or service after being generated as cyber threat prediction information described below.
도 7은 개시한 실시 예에 따라 연관관계 분석 정보를 얻는 과정의 일 예를 개시한 도면이다. 7 is a diagram illustrating an example of a process of obtaining correlation analysis information according to the disclosed embodiment.
이 도면에서 파일 A-1 (10), A-2 (20), B-1 (30)은 악성 행위를 유발할 수 있는 파일을 지칭하고, 서버 (가) (110), 서버 (나)(120)는 악성 행위를 유발시키는 C&C 서버를 나타낸다. In this drawing, files A-1 (10), A-2 (20), and B-1 (30) refer to files that can cause malicious behavior, and the server (A) 110 and the server (B) 120 ) represents a C&C server that causes malicious behavior.
개시한 실시 예에 따라 파일 A-1(10)의 파일을 수신하여 동적 분석을 수행한 경우, 파일 A-1 (10) 실행 시에 서버 (가) (110) 를 접속하는 것을 확인하였다고 가정한다.It is assumed that when the file of file A-1 (10) is received and dynamic analysis is performed according to the disclosed embodiment, it is confirmed that the server (A) 110 is accessed when the file A-1 (10) is executed. .
실시 예는 악성 코드에 대한 여러 가지 분석 정보를 저장하는 데이터 베이스로부터 파일 A-1 (10)과 유사한 파일 A-2 (20)의 저장된 분석 정보를 얻을 수 있다. 파일 A-2 (20)의 분석 정보로부터 동일한 서버인 서버 (가) (110) 가 파일 A-1 (10) 과 파일 A-2 (20)을 활용한다는 것을 파악할 수 있고 이러한 정보로부터 서버 (가) (110) 는 동일 공격 기법 또는 동일 서버를 이용하는 해커임을 추정할 수 잇다. According to the embodiment, the stored analysis information of the file A-2 (20) similar to the file A-1 (10) can be obtained from a database storing various analysis information on malicious codes. From the analysis information of the file A-2 (20), it can be found that the server (A) 110, which is the same server, utilizes the file A-1 (10) and the file A-2 (20), and from this information, the server (a) ) 110 can be assumed to be a hacker using the same attack technique or the same server.
실시 예에 따라 이미 분석된 파일인 파일 A-2 (20) 이 서버 (가) (110)뿐만 아니라 서버 (나) (120) 도 접속하는 경우 파일 A-2 (20) 의 연관 관계로서 서버 (나) (120)의 정보를 저장할 수 있다. According to the embodiment, when the file A-2 (20), which is a file that has already been analyzed, connects not only to the server (A) 110 but also to the server (B) 120, the server ( B) The information of (120) can be stored.
만약 파일 A-1(10) 과 파일 A-2(20) 과는 전혀 다른 파일이지만 파일 B-1 (30) 의 분석 정보가 서버 (나) (120)를 접속한 기록을 저장했다면 파일 형식이 다르지만 서버 (가) (110) 와 서버 (나) (120) 는 동일한 공격자 그룹 또는 동일한 기법을 이용하는 공격자 그룹일 수 있다. If the file A-1 (10) and the file A-2 (20) are completely different files, but the analysis information of the file B-1 (30) stores the record of accessing the server (B) (120), the file format is Although different, server (A) 110 and server (B) 120 may be the same attacker group or an attacker group using the same technique.
따라서, 이와 같이 파일과 관련된 여러 가지 분석 정보에 대해 연관관계를 분석하면 악성 행위를 유발하는 공격자, 공격 기법 등에 대한 그룹핑 정보를 얻을 수 있고, 이러한 연관관계 분석 정보는 공격자나 공격자 그룹을 식별하는데 활용될 수 있다. Therefore, by analyzing the correlation of various analysis information related to files, grouping information on attackers and attack techniques that cause malicious behavior can be obtained, and this correlation analysis information is used to identify an attacker or attacker group. It can be.
이하에서는 사이버 위협 예측 정보를 설명하는 예를 개시한다.Hereinafter, an example for explaining cyber threat prediction information will be disclosed.
파일의 식별 정보와 얻은 분석 정보들 중 적어도 하나 이상의 정보를 이용하거나 취합한 데이터 세트에 기초하여 사이버 위협 예측 정보를 생성할 수 있다 Cyber threat prediction information may be generated based on at least one of the file identification information and the obtained analysis information, or based on a collected data set.
도 8은 실시 예에 따라 사이버 위협 정보의 예측 정보 생성하는 일 예를 개시한다. 도면을 참조하여 사이버 위협 정보의 예측 정보를 생성하는 예를 설명하면 다음과 같다.8 discloses an example of generating prediction information of cyber threat information according to an embodiment. An example of generating prediction information of cyber threat information will be described with reference to the drawings.
분석 정보에 대한 데이터 세트가 확보되면 그 데이터 세트를 기초로 추후에 발생할 공격 행위와 관련된 예측 정보 생성이 가능하다. When a data set for analysis information is secured, it is possible to generate predictive information related to future attack behavior based on the data set.
위와 같이 추출된 분석 정보에 따른 데이터 세트를 인공 지능 기반의 학습 데이터 세트로 가공하고, 가공된 학습 데이터 세트를 기초로 인공 지능 분석을 수행하면 공격 행위와 관련된 여러 가지 예측 정보 생성이 가능하다. By processing the data set according to the analysis information extracted as above into an artificial intelligence-based learning data set and performing artificial intelligence analysis based on the processed learning data set, it is possible to generate various predictive information related to an attack behavior.
이렇게 생성된 예측 정보의 데이터 세트는 다시 새로운 학습 데이터 세트로 반복적으로 생성 또는 가공할 수 있다. The data set of prediction information generated in this way may be repeatedly generated or processed as a new training data set.
이 도면의 실시 예는 위의 분석 정보의 데이터 세트를 인공 지능 학습을 통해 악성 코드 제작자의 예측 정보(S3110), 악성 코드 공격 방법의 예측 정보(S3120), 악성 코드 공격 그룹의 예측 정보(S3130), 악성 코드 유사도 예측 정보(S3140), 악성 코드 확산도 예측 정보(S3150) 등을 생성하는 예를 개시한다.In the embodiment of this figure, the data set of the above analysis information is analyzed through artificial intelligence learning to obtain malicious code creator's prediction information (S3110), malicious code attack method prediction information (S3120), and malicious code attack group prediction information (S3130). , Malicious code similarity prediction information (S3140), malicious code spread prediction information (S3150), etc. are generated.
여기서 예측 정보의 순서는 일 예로서 예측 정보 획득의 순서의 변경이 가능하다. 예를 들면 악성 코드 유사도 예측 정보(S3140)와 악성 코드 확산도 예측 정보(S3150)의 순서는 변경될 수 있으며 나머지 예측 정보의 생성도 반드시 예시된 순서에 따를 필요가 없다. Here, the order of predictive information is an example, and the order of obtaining predictive information can be changed. For example, the order of the malicious code similarity prediction information (S3140) and the malicious code spread prediction information (S3150) may be changed, and the generation of the remaining prediction information does not necessarily follow the illustrated order.
또한 예시한 유사도 예측 정보 이외에 사이버 위협 정보와 관련된 추가적인 예측 정보 생성도 가능하다.In addition to the exemplified similarity prediction information, it is also possible to generate additional prediction information related to cyber threat information.
이렇게 생성한 악성 코드의 예측 정보는 자체 위험도를 예측하는 위험도 예측 정보와 공격자, 공격 그룹, 유사도, 확산도 등을 각각 예측하는 예측 정보 또는 그 예측 정보를 종합적으로 표시하는 악성 코드의 종합 예측 정보로 나뉘어 데이터베이스에 저장될 수 있다. The generated malicious code prediction information is composed of risk prediction information that predicts its own risk, predictive information that predicts the attacker, attack group, similarity, spread, etc., or comprehensive prediction information of malicious code that comprehensively displays the prediction information. It can be divided and stored in a database.
위와 같은 사이버 위협 정보의 분석 정보와 예측 정보를 이용하면 입력된 파일과 관련된 악성 코드의 종류를 식별하고 이에 대한 위험도를 결정할 수 있다. Using the analysis information and prediction information of the above cyber threat information, it is possible to identify the type of malicious code related to the input file and determine the risk level thereof.
또한 입력된 파일과 관련된 악성 코드의 기록을 포함한 프로파일링 정보를 생성하여 저장될 수 있는데, 저장된 악성 코드와 관련된 분석 정보, 예측 정보, 위험도 또는 프로파일링 정보는 사용자가 이를 쉽게 조회할 수 있도록 추가로 가공될 수 있다. In addition, profiling information including a record of malicious code related to the input file may be created and stored. The analysis information, prediction information, risk level, or profiling information related to the stored malicious code is additionally provided so that the user can easily view it. can be processed.
사용자에게 사이버 위협 정보를 제공하는 일 예를 개시하면 다음과 같다. An example of providing cyber threat information to a user is as follows.
특정 파일을 기준으로 여러 가지 연관 관계 분석 정보가 발생될 수 있어서 사이버 위협 침해 정보(IoC)를 매우 많은 데이터 통신량이 필요할 수 있다. 실시 예는 사이버 보안의 위협에 신속하게 대처하기 위해서는 이러한 정보를 빠른 시간 내에 공유, 저장, 조회, 및 업데이트할 수 있다. Since various correlation analysis information may be generated based on a specific file, a very large amount of data communication may be required for cyber threat infringement information (IoC). In order to quickly respond to cyber security threats, the embodiment can share, store, inquire, and update such information within a short period of time.
위와 같은 분석 정보들에 기초하여 실시 예는 보안 이벤트가 발생하면 발생된 보안 이벤트에 관련된 사이버 위협 침해 정보(IoC)를 암호화 소켓 통신을 통해 사이버 위협 침해 정보(IoC) 저장 서버나 다른 사용자 단말기들에 P2P 소켓 통신을 이용해 조회를 요청할 수 있다. 그리고 사이버 위협 침해 정보(IoC) 저장 서버나 다른 사용자 단말기들 중 사이버 위협 침해 정보(IoC)를 빨리 수신하는 정보를 사이버 위협 침해 정보(IoC)로 이용할 수 있다. Based on the analysis information as described above, when a security event occurs, the embodiment transmits the cyber threat breach information (IoC) related to the security event to the cyber threat breach information (IoC) storage server or other user terminals through encrypted socket communication. Inquiry can be requested using P2P socket communication. In addition, information that quickly receives cyber threat IoC among cyber threat IoC storage servers or other user terminals may be used as cyber threat IoC.
또 다른 예로서, 사이버 위협 정보를 제공하는 또 다른 예로서 사용자가 사용하는 단말에서 상기와 같이 분석된 악성 코드에 대한 정보를 조회할 경우 조회된 정보를 다음과 같이 제공할 수 있다. As another example of providing cyber threat information, when a terminal used by a user searches for information on the analyzed malicious code as described above, the searched information may be provided as follows.
예를 들어 사용자가 사용하는 단말이 파일의 해쉬 값을 산출한 경우, 산출된 해쉬 값에 대해 텍스트 형식으로 악성 코드 여부의 조회하는 질의를 서버로 전송할 수 있다. 해쉬 값과 질의를 수신한 서버가 위와 같이 악성 코드 정보가 저장된 데이터 베이스에 상기 해쉬 값을 전달하고 이에 대한 조회 결과를 수신한다. 조회 결과를 수신한 서버는 그 결과를 상기 해쉬 값에 대응되는 텍스트 값으로 사용자 단말에 다시 리턴할 수 있다. For example, when a terminal used by a user calculates a hash value of a file, a query to inquire whether or not there is a malicious code may be transmitted to the server in a text format for the calculated hash value. The server that has received the hash value and the query transfers the hash value to the database storing the malicious code information as described above and receives a search result for the hash value. The server receiving the query result may return the result to the user terminal as a text value corresponding to the hash value.
저장된 악성 코드에 대한 정보를 기반으로 사용자의 요청에 따라 사이버 위협 정보를 제공하는 다른 예를 도면을 참조하여 설명하면 다음과 같다. Another example of providing cyber threat information according to a user's request based on stored malicious code information will be described with reference to the drawings.
도 9는 실시 예에 따라 사이버 위협 정보를 제공하기 위한 악성 코드 질의들의 예를 개시한다. 9 discloses examples of malicious code queries for providing cyber threat information according to an embodiment.
사이버 보안 위협 정보 처리에 대한 실시 예는 위와 같이 산출한 분석 정보와 예측 정보를 기초로 식별한 악성 코드를 여러 가지 메타 정보와 함께 저장할 수 있다.An embodiment of cyber security threat information processing may store the malicious code identified based on the analysis information and prediction information calculated as above together with various meta information.
위에서 설명한 바와 같이 사용자는 악성 코드 정보가 저장된 데이터 베이스에 예시한 바와 같은 조회를 요청할 수 있다. As described above, the user may request the exemplified inquiry to the database in which malicious code information is stored.
Query (A)를 참고하면, 사용자는 실시 예에 따른 사이버 위협 정보가 저장된 데이터베이스에 Query (A)와 같이 악성 코드와 관련된 기간, 특정 악성 코드의 수량, 탐지명, 파일 타입, 유포지, 코드사인 및 파일 크기 등의 카테고리로 악성 코드를 질의할 수 있다. Referring to Query (A), the user may search the database storing cyber threat information according to the embodiment for a period related to malicious code, the quantity of specific malicious code, detection name, file type, distribution place, code sign, and Malicious code can be queried by category such as file size.
그러면 사이버 위협 정보가 저장된 데이터 베이스는 서버를 통해 Query 에 대응되는 사이버 위협 정보나 악성 코드 정보를 리턴한다.Then, the database storing cyber threat information returns cyber threat information or malicious code information corresponding to the query through the server.
다른 예로 사용자는 이 도면의 Query (B)에서 예시한 바와 같이 악성 코드와 관련된 특정일, 특정 악성 코드의 수량, 파일 타입, 유포지 여부, 자식 프로세스의 생성 여부 등을 질의할 수 있다. As another example, as exemplified in Query (B) of this figure, the user may inquire about a specific date related to malicious code, quantity of specific malicious code, file type, distribution location, creation of child processes, and the like.
Query (C)에서 예시하는 바와 같이 사용자는 악성 코드와 관련된 기간, 특정 악성 코드의 수량, 파일 타입, 유포지 정보, 파일 명 정보, 악성 코드 수행에 따른 공격 행위, 파일 크기에 정보를 이용하여 악성 코드에 대한 정보를 질의할 수 있다. As exemplified in Query (C), the user can detect malicious code by using information on the period related to malicious code, quantity of specific malicious code, file type, distribution location information, file name information, attack behavior according to malicious code execution, and file size. You can query information about
Query (D)의 예는 악성 코드와 관련된 기간, 특정 악성 코드의 수량, 파일 타입, 유포지 주소 및 악성 코드의 통계 정보를 이용하여 악성 코드에 대한 정보를 질의할 수 있다.An example of Query (D) may query information about malicious codes by using the period related to malicious codes, quantity of specific malicious codes, file type, distribution address, and statistical information of malicious codes.
설명한 바와 같이 사이버 보안 위협 정보 처리 방법의 실시 예는 분석 정보, 예측 정보는 사용자의 조회 문의에 대해 대응되는 악성 코드 정보를 제공하기 위해 악성 코드에 위와 같은 조건에 맞는 정보를 데이터베이스에 함께 저장한다.As described above, in the embodiment of the cyber security threat information processing method, analysis information and prediction information are stored together with malicious code in a database in order to provide malicious code information corresponding to a user's query.
따라서, 서버는 해당 질의 조건과 일치하는 악성 코드에 대한 정보를 데이터베이스부터 얻어 사용자에게 전송할 수 있다.Accordingly, the server can obtain information on malicious code matching the query condition from the database and transmit it to the user.
예시한 바와 같이 사용자는 파일의 여러 가지 메타 정보를 이용해 악성 코드 정보를 조회할 수 있다. 사용자는 보호해야 하는 정보나 시스템이 악성 코드에 의해 피해나 위협이 될 수 있는 정보를 미리 얻을 수 있다.As illustrated, the user can search malicious code information using various meta information of a file. The user can obtain in advance information to be protected or information that may cause damage or threat to the system by malicious code.
도 10은 사이버 보안 위협 정보 처리 장치의 일 실시 예를 개시한 도면이다. 이 도면의 실시 예는 사이버 보안 위협 정보 처리 장치를 개념적으로 예시하는데 이 도면을 참조하여 사이버 보안 위협 정보 처리 장치의 실시 예를 설명하면 다음과 같다. 10 is a diagram illustrating an embodiment of a cyber security threat information processing device. The embodiment of this drawing conceptually exemplifies a cyber security threat information processing device. An embodiment of the cyber security threat information processing device will be described with reference to this drawing.
개시하는 사이버 보안 위협 정보 처리 장치는 물리장치(2000)인 데이터베이스 및 서버(2100) 및 데이터베이스(2200)와 상기 물리장치(2000) 상에서 구동되는 응용 프로그래밍 인터페이스 Application Programming Interface, API) 포함하는 플랫폼 (10000)을 포함한다. 이하에서 플랫폼(10000)은 사이버 위협 인텔리전스 플랫폼(cyber threat intelligence platform; CTIP) 또는 간략하게 인텔리전스 플랫폼(10000)으로 호칭한다.The disclosed cyber security threat information processing device includes a database and a
서버(2100)는 중앙연산장치(central processing unit, CPU) 나 프로세서와 같은 연산장치를 포함하고 데이터베이스(2200)에 데이터를 저장하거나 읽을 수 있다. The
서버(2100)는 입력되는 보안 관련 데이터를 연산 및 처리하며 파일을 실행하여 여러 가지 보안 이벤트를 발생시키고 관련된 데이터를 처리하도록 한다. 그리고 서버(2100)는 여러 가지 사이버 보안 관련 데이터의 입출력을 제어하고 인텔리전스 플랫폼(10000)에서 처리된 데이터를 데이터베이스(2200)에 저장할 수 있다. The
서버(2100)는 데이터 입력을 위한 네트워크 장치나 네트워크의 보안 장치를 포함할 수 있다. 서버(2100)의 중앙처리장치, 프로세서 또는 연산장치는 이하의 도면에서 예시하는 프레임워크나 해당 프레임 워크 내의 모듈을 수행할 수 있다.The
실시 예에 따른 인텔리전스 플랫폼(10000)은 사이버 위협 정보의 처리를 위한 응용 프로그래밍 인터페이스(API)를 제공한다. 예를 들어 인텔리전스 플랫폼(10000)은, 네트워크와 연결된 네트워크 보안 장치나 악성 행위를 스캔 및 감지하는 사이버 악성 행위 방지 프로그래밍 소프트웨어로부터 파일이나 데이터를 입력받을 수 있다. The
예를 들어 실시 예에 따른 인텔리전스 플랫폼(10000)은 보안 이벤트를 제공하는 SIEM (Security Information and Event Management) API, 실행 환경에 대한 데이터를 제공하는 EDR (Environmental Data Retrieval) API, 네트워크 트래픽을 정의된 보안 정책에 따라 모니터하고 제어하는 파이어월(firewall) API 등의 기능을 제공할 수 있다. 또한 인텔리전스 플랫폼(10000)은 내부와 외부 네트워크 사이에 방화벽과 유사한 역할을 수행하는 IPS (Intrusion Prevention Systems )의 API의 역할도 제공할 수 있다. For example, the
실시 예에 따른 인텔리전스 플랫폼(10000)의 응용 프로그래밍 인터페이스(API)(1100)는 사이버 보안의 공격 행위를 수행하는 악성 코드를 포함하는 파일들을 여러 클라이언트 기기들 (1010, 1020, 1030) 로부터 수신할 수 있다. The application programming interface (API) 1100 of the
실시 예에 따른 인텔리전스 플랫폼(10000)은 전처리부(미도시), 분석 프레임 워크(1210)와 예측 프레임 워크(1220) 및 AI 엔진 (1230) 및 후처리부(미도시)을 포함할 수 있다. The
인텔리전스 플랫폼(10000)의 전처리부는 클라이언트 기기들(1010, 1020, 1030)로부터 수신된 여러 가지 파일들에 대한 사이버 위협 정보를 분석할 수 있도록 전처리를 수행한다.The pre-processing unit of the
예를 들면 전처리부는 수신된 파일을 처리하여 그 파일로부터 파일의 출처 정보, 파일을 얻은 수집 정보, 파일의 사용자 정보 등을 포함한 여러 가지 메타 정보를 얻을 수 있다. 예를 들어 파일이 URL (uniform resource locator)을 포함하거나 또는 전자메일에 포함된 경우 파일에 대한 수집 정보를 얻을 수 있다. 사용자 정보는 파일의 생성, 업로드 또는 최종 저장한 사용자 정보 등을 포함할 수 있다. 전처리 과정에서 파일의 메타 정보로서 IP(internet protocol) 정보, 이에 기반한 국가 정보, API(Application Programming Interface) key 정보 등을 얻을 수 있다.For example, the pre-processing unit may process the received file and obtain various meta information including source information of the file, collection information obtained from the file, user information of the file, etc. from the file. For example, if a file contains a URL (uniform resource locator) or is included in an e-mail, collection information about the file can be obtained. User information may include user information that has been created, uploaded, or finally stored in a file. In the preprocessing process, IP (internet protocol) information, country information based thereon, API (Application Programming Interface) key information, etc. may be obtained as meta information of a file.
인텔리전스 플랫폼(10000)의 전처리부(미도시)는 입력된 파일의 해쉬(Hash) 값을 추출할 수 있다. 해쉬 값이 이미 사이버 보안 위협 정보 처리 장치에 알려진 것이라면 이를 기반으로 파일의 종류를 식별할 수 있다. A pre-processing unit (not shown) of the
만약 이미 알려진 파일이 아니라면 운영하는 C-TAS(Cyber Threats Analysis System), CTA(Cyber Threat Alliance)의 운영시스템, VitusTotal 등의 사이버 위협 정보의 레퍼런스 인터넷 사이트에 해쉬 값과 파일 정보를 조회하여 파일 종류 식별을 위한 분석 정보를 얻을 수 있다. If the file is not already known, identify the file type by searching the hash value and file information on reference Internet sites for cyber threat information such as C-TAS (Cyber Threats Analysis System), CTA (Cyber Threat Alliance) operating system, and VitusTotal. You can get analysis information for
설명한 바와 같이 입력된 파일의 해쉬 값은 MD5 (Message-Digest algorithm 5), SHA1 (Secure Hash Algorithm 1), SHA 256 등의 해쉬 함수의 해쉬 값이 될 수 있다. As described above, the hash value of the input file may be a hash value of a hash function such as MD5 (Message-Digest algorithm 5), SHA1 (Secure Hash Algorithm 1), or
분석 프레임 워크(1210)는 입력된 파일로부터 악성 코드에 대한 분석 정보를 생성할 수 있다. The
분석 프레임 워크(1210)는 정적 분석 모듈(1211), 동적분석 모듈(1213), 심층분석 모듈(1215) 및 연관관계분석 모듈(1217) 등 여러 가지 분석 방식에 따른 분석 모듈을 포함할 수 있다. The
정적 분석 모듈(1211)은 입력된 파일과 관련된 악성 행위의 분석 정보는 파일 자체에 대한 악성 코드 관련 정보를 분석할 수 있다. The
동적분석 모듈(1213)은 입력된 파일로부터 얻은 여러 가지 정보들을 기반으로 여러 행위를 수행함으로써 악성 코드 관련 정보를 분석할 수 있다. The
심층분석 모듈(1215)은 입력된 파일과 관련된 실행 가능한 파일을 가공한 정보를 이용하거나 실행 가능한 파일과 관련된 메모리 분석을 수행하여 악성 코드 관련 정보를 분석할 수 있다. 심층분석 모듈(1215)은 악성 행위를 정확하게 식별할 수 있도록 인공 지능 분석을 포함할 수 있다.The in-
연관관계분석 모듈(1217)은 입력된 파일과 관련하여 이미 저장된 분석 정보들이나 또는 생성된 분석 정보들을 서로 연관시켜 공격 행위나 공격자에 대한 연관 관계를 추정할 수 있는 연관관계 분석 정보를 포함할 수 있다. The relational
분석 프레임 워크(1210)는 정적 분석 모듈(1211), 동적분석 모듈(1213), 심층분석 모듈(1215) 및 연관관계분석 모듈(1217)로부터 분석된 정보들을 악성 코드의 특성과 행위에 대한 분석 결과들을 서로 결합하고, 결합된 최종 정보를 사용자에게 제공할 수 있다. The
예를 들어 분석 프레임 워크(1210)는 하나의 파일에 대한 정적 분석 정보, 동적 분석 정보, 심층 분석 정보, 연관관계 분석 정보 등은 정확한 공격 기법과 공격자 식별을 위해 통합 분석할 수 있다. 분석 프레임 워크(1210)는 분석 정보들 사이에 중복된 부분을 제거하고 분석 정보들 사이에 공통의 정보는 정확도를 높이는데 사용한다. For example, the
분석 프레임 워크(1210)는 제공하는 정보를 표준화할 수 있는데, 예를 들면 여러 분석과 경로를 통해 수집된 사이버 위협 침해 정보(indicator of compromise, IoC)들을 노멀라이징(normalizing)하거나 인리치먼트(enrichment) 작업한다. 그리고 최종 표준화된 악성 코드 또는 악성 행위에 대한 분석 정보를 생성할 수 있다. The
분석 프레임 워크(1210)의 정적 분석 모듈(1211), 동적분석 모듈(1213), 심층분석 모듈(1215) 및 연관관계분석 모듈(1217)은 분석되는 데이터의 정확성을 높이기 위해 분석 대상 데이터에 인공지능 분석에 따른 머신 러닝이나 딥 러닝 기법을 수행할 수 있다. The
AI 엔진(1230)은 분석 프레임 워크(1210)의 분석 정보 생성을 위해 인공지능 분석 알고리즘을 수행할 수 있다.The
이러한 정보는 데이터 베이스(2200)에 저장될 수 있고 서버(2100)는 사용자나 클라이언트 요청에 따라 데이터 베이스(2200)에 저장된 악성 코드 또는 악성 행위에 대한 분석 정보를 사이버 위협 인텔리전스 정보로 제공할 수 있다. This information may be stored in the
예측 프레임 워크(1220)은 제1예측정보생성모듈(1221), 제2예측정보생성모듈 (1223) 등 예측 정보에 따라 다수의 예측정보생성모듈들을 포함할 수 있다. 예측 프레임 워크(1220)은 분석 정확도를 높이기 위해 위의 분석된 여러 가지 정보의 데이터 세트를 이용하여 악성 행위의 발생 여부, 공격 기법, 공격자 그룹 등에 대한 예측 정보를 생성할 수 있다.The
예측 프레임 워크(1220)는 분석 프레임 워크(1210)가 분석한 분석 정보에 대한 데이터 세트를 기반으로 AI 엔진(1230)을 이용하여 인공지능 분석 알고리즘을 수행하여 입력된 파일과 관련된 악성 행위에 대한 예측 정보를 생성할 수 있다.The
AI 엔진(1230)은 분석 정보에 대한 데이터 세트에 대해 인공 지능 기반의 머신 러닝으로 학습하여 추가적인 분석 정보를 생성하고, 추가 생성된 분석 정보는 다시 새로운 학습 데이터로서 인공 지능의 입력 데이터로 이용될 수 있다.The
예측 프레임 워크(1220)가 생성하는 예측 정보는 악성 코드 제작자 정보, 악성 코드 공격 방법 정보, 악성 코드 공격 그룹 예측, 악성 코드 유사도 예측 정보, 및 악성 코드 확산도 예측 정보 등을 포함할 수 있다.The prediction information generated by the
위와 같이 여러 가지 악성 코드나 공격 행위 등에 관련된 예측 정보를 생성한 예측 프레임 워크(1220)는 생성한 예측 정보들을 데이터베이스(2200)에 저장할 수 있다. 그리고 사용자의 요청에 따라 또는 공격 징후에 따라 생성한 예측정보를 사용자에게 제공할 수 있다.As described above, the
서버(2100)는 설명한 바와 같이 데이터 베이스(2200)에 저장된 분석 정보 또는 예측 정보에 대한 후처리 후 상기 입력된 파일과 관련된 사이버 위협 정보를 제공할 수 있다. As described above, the
서버(2100)의 프로세서는 생성된 분석 정보 또는 예측 정보에 기초하여 악성 코드 종류 및 악성 코드의 위험도를 결정하는 작업을 수행한다. The processor of the
서버(2100)의 프로세서는 악성 코드에 대한 프로파일링 정보를 생성할 수 있다. 데이터베이스(2200)는 파일 분석을 통해 파일에 대한 자체 분석을 수행한 결과나 추가 및 예측 분석을 수행한 결과를 저장할 수 있다. A processor of the
서버(2100)에 의해 사용자에게 제공되는 사이버 위협 정보는, 기술된 전처리가 수행된 정보, 생성되거나 식별된 분석 정보, 생성된 예측 정보 또는 이 정보들의 취합 정보나 이 정보들을 기반으로 결정된 정보를 포함할 수 있다. The cyber threat information provided to the user by the
제공되는 사이버 위협 정보에는 입력된 파일과 관련하여 데이터 베이스에 저장된 분석 정보를 이용하거나 위에서 분석되거나 예측된 정보가 포함될 수 있다. The provided cyber threat information may include information analyzed or predicted using analysis information stored in a database in relation to an input file or analyzed or predicted above.
실시 예에 따르면 사용자가 입력된 파일에 대한 악성 행위뿐만 아니라 이미 저장된 파일이나 악성 행위에 대해 사이버 위협 정보를 조회할 경우 이에 대한 정보를 제공할 수 있다.According to the embodiment, when a user searches for cyber threat information on not only a malicious action on an input file but also a previously stored file or malicious action, information on this may be provided.
이러한 통합 분석 정보는 해당 파일에 대응하여 서버나 데이터 베이스에 표준화된 포맷으로 저장될 수 있다. 이러한 통합 분석 정보는 표준화된 포맷으로 저장되어 사이버 위협 정보를 검색 또는 조회하는데 사용될 수 있다.This integrated analysis information may be stored in a standardized format in a server or database corresponding to a corresponding file. This integrated analysis information is stored in a standardized format and can be used to search or query cyber threat information.
도 11은 개시하는 실시 예에 따라 분석 프레임 워크 중 정적 분석 모듈의 기능을 상세히 설명하기 위한 일 예를 나타낸다. 이 도면을 참조하여 정적 분석 모듈의 수행 과정을 예시하면 다음과 같다. 11 illustrates an example for explaining in detail the function of a static analysis module in an analysis framework according to the disclosed embodiment. Referring to this figure, the execution process of the static analysis module is exemplified as follows.
개시한 바와 같이 인텔리전스 플랫폼(100)의 분석 프레임 워크(15000)는 정적분석 모듈(15100)을 포함할 수 있다.As disclosed, the
정적분석 모듈(15100)은 파일 자체를 분석할 수 있는데, 파일 또는 파일의 메타 정보 등에 기초하여 코딩 기반의 취약 항목 존재 여부, 인터페이스 또는 함수의 호출 구조 문제, 또는 파일의 바이너리 구조 등 파일과 관련하여 악성 행위에 연관될 수 있는 정보를 얻을 수 있다.The
정적분석 모듈(15100)은 파일구조분석 모듈(15101), 파일패턴분석 모듈(15103), 파일제작정보분석 모듈(15105), 파일환경분석 모듈(15107), 및 파일관련분석 모듈(15109)를 포함할 수 있다. The
정적분석 모듈(15100) 중 파일구조분석 모듈(15101)는 파일이 실행되지 않는 환경에서 식별된 파일의 기본적인 구조 정보를 분석할 수 있다. Among the
파일구조분석 모듈(15101)는 예를 들어 파일의 종류가 ELF(Executable and Linkable Format), PE(Portable Executable), APK(Android Application Package) 등에 파일 종류가 다르더라도 파일의 위 파일 구조나 그 구조로부터 추출할 수 있는 정보를 획득하거나 분석한다. The file
파일패턴분석 모듈(15103)은 파일의 패턴 분석을 수행할 수 있는데, 식별된 파일에 어떤 조치를 취하지 않고 파일 자체를 오픈하여 추출할 수 있는 여러 스트링(string) 등을 확인하여 파일의 패턴을 얻을 수 있다. The file pattern analysis module 15103 can perform file pattern analysis. The file pattern is obtained by checking various strings that can be extracted by opening the file itself without taking any action on the identified file. can
파일제작정보분석 모듈(15105)은 입력된 파일이 제작과 관련된 정보를 얻고 분석할 수 있다. 파일제작정보분석 모듈(15105)은 파일이 가지고 있는 고유 정보나 메타 정보, 예를 들면 파일 제작자 정보, 실행 파일인 경우 코드사이닝(codesigning) 정보 등을 얻을 수 있다. The file production
파일환경분석 모듈(15107)은 입력된 파일의 환경 정보를 분석할 수 있다. 파일환경분석 모듈(15107)은 대상 파일이 갖추어야 할 시스템 환경적 구성 요소 정보 등에 정보를 얻을 수 있다. The file
파일관련분석 모듈(15109)은 그리고 입력된 파일과 관련된 여러 가지 기타 메타 정보들을 분석할 수 있다. The file related
정적분석 모듈(15100)은 입력된 파일의 수행 없이 개시한 바와 같이 얻고 분석된 파일 자체의 정적 정보를 JSON (JavaScript Object Notation)과 같은 데이터 포맷으로 변환하여 데이터베이스(2200)에 저장할 수 있다.The
서버(2100)는 데이터베이스(2200)에 저장된 파일에 대한 정적 분석 정보를 사용자에 제공할 수 있다. The
분석프레임워크(15000)의 정적분석 모듈(15100)은 입력된 파일의 해쉬(Hash) 값과, 데이터베이스(2200)에 악성코드에 대해 이미 저장된 해쉬 값을 비교하여 상기 입력된 파일이 악성코드 여부를 분석할 수 있다. 그리고 입력 파일의 악성 코드에 대해 분석된 정보는 데이터베이스(2200)에 저장할 수 있다.The
분석프레임워크(15000)의 정적분석 모듈(15100)은 입력 파일이 모바일 데이터 인 경우 입력된 파일로부터 모바일 악성 의심 코드의 코드 정보를 추출할 수 있다. 악성 의심 코드의 코드 정보는 해쉬(Hash) 정보, 코드 크기 정보, 파일 헤더 정보, 코드 내에 포함되어 있는 식별 가능한 문자열 정보 및 동작 플랫폼 정보 등을 포함할 수 있다.If the input file is mobile data, the
분석프레임워크(15000)의 정적분석 모듈(15100)은 분석한 분석정보를 기반으로 파일 내에 악성 코드가 있는지 탐지할 수 있다. 그리고 탐지된 악성 코드와 관련된 정적 분석 정보를 데이터베이스(2200)에 저장할 수 있다.The
도 12는 개시하는 실시 예에 따라 분석 프레임 워크 중 동적분석 모듈의 기능을 상세히 설명하기 위한 일 예를 나타낸다. 이 도면을 참조하여 동적분석 모듈의 수행 과정을 예시하면 다음과 같다.12 shows an example for explaining in detail the function of the dynamic analysis module in the analysis framework according to the disclosed embodiment. Referring to this drawing, the process of performing the dynamic analysis module is exemplified as follows.
예시한 인텔리전스 플랫폼(10000)의 분석 프레임 워크(15000)는 동적분석 모듈(15200)을 포함할 수 있다. 동적분석 모듈(15200)은 전처리된 파일 정보 또는 정적 분석 정보 중 적어도 하나에 기반하여 식별된 파일의 실행 환경에서 실행된 결과 데이터에 따른 동적 분석 정보를 획득할 수 있다. The
동적분석 모듈(15200)은 파일이 실행 중인 환경에서 다양한 입출력 데이터를 분석하거나 또는 파일 실행 시 실행 환경과 상호작용의 변화를 분석하여 취약하거나 위험한 이상현상을 탐지할 수 있다. 동적분석 모듈(15200)은 가상화 환경 등을 생성하고 생성된 가상화 환경에서 파일을 직접적으로 실행하여 이상 여부를 분석할 수 있다.The
분석 프레임 워크(15000)의 동적분석 모듈(15200)은 환경준비 모듈(15201), 파일실행 모듈(15203), 행위수집 모듈(15205), 분석결과취합 모듈(15207), 및 분석환경복구 모듈(15209)를 포함할 수 있다. The dynamic analysis module (15200) of the analysis framework (15000) includes an environment preparation module (15201), a file execution module (15203), an action collection module (15205), an analysis result collection module (15207), and an analysis environment recovery module (15209). ) may be included.
환경준비 모듈(15201)은 입력 파일과 관련된 실행 파일을 실행하기 위한 동적 분석 환경을 생성하고 준비한다. 환경준비 모듈(15201)은 실행 파일의 타입을 식별한 경우 각각의 파일의 타입에 따라 어떤 실행 환경이 필요한지 식별할 수 있다. 예를 들면 파일에 따라 윈도우 운영체제, 리눅스 운영체제, 모바일 기기 운영체제에서 실행되는 파일인지 식별할 수 있다. 환경준비 모듈(15201)은 실행 파일을 실행하기 위해 식별된 환경을 준비할 수 있다. The
파일실행 모듈(15203)은 환경준비 모듈(15201)이 준비한 분석 환경에서 실행 파일이 악성 코드 포함하고 있는지 여부를 판별하기 위해 파일을 실행한다. The
행위수집 모듈(15205)은 동적 분석 정보를 획득하기 위해 실행 환경에서 실행된 파일의 실행 중에 시스템에서 발생하는 이벤트를 수집할 수 있다. 예를 들어 행위수집 모듈(15205)은 파일 자체, 프로세스, 메모리, 레지스트리, 네트워크의 시스템에 대한 이벤트 또는 각 시스템의 설정을 변경시키는 이벤트를 수집할 수 있다. The
분석결과취합 모듈(15207)은 행위수집 모듈(15205)이 수집한 이벤트들을 개별적으로 또는 취합하여 분석한다.The analysis
분석환경복구 모듈(15209)은 수집된 결과를 취합한 후 동적 분석을 위한 환경을 다시 복구한다. The analysis
동적분석 모듈(15200)은 이와 같이 획득된 결과를 해당 파일 또는 파일의 악성 코드에 대응된 동적 분석 정보로 데이터베이스(2200)에 저장할 수 있다.The
동적분석 모듈(15200)이 위 실시 예에 따라 동적 분석 정보를 수집하고 분석하는 예를 간략하게 개시하면 다음과 같다. An example in which the
동적 분석의 일 실시 예로서, 동적분석 모듈(15200)은 입력된 파일이 모바일 기기 운영 체제에서 동작하는 파일로 식별된 경우, 파일을 모바일 단말 또는 모바일 단말 환경과 동일하게 구성된 에뮬레이터나 가상화 환경을 생성할 수 있다. 그리고 동적분석 모듈(15200)은 생성한 에뮬레이터나 가상화 환경에서 상기 파일을 직접 실행할 수 있다. 동적분석 모듈(15200)은 파일 내에 모바일 악성 의심 코드가 실행된 후에 단말에 발생하는 모든 변화, 즉 행위 정보를 추출하고 기록할 수 있다. 행위 정보는 단말의 운영체제(OS) 환경이 다른 경우라도 프로세스, 파일, 메모리 및 네트워크 정보 등의 이벤트 정보를 포함할 수 있다.As an example of dynamic analysis, the
동적 분석의 다른 실시 예로서 동적분석 모듈(15200)은 전처리 과정에서 입력된 파일의 해쉬(Hash) 값을 추출되지 않고 사용자 단말에서 추출된 경우라도 단말에서 추출된 파일의 해쉬 값을 인텔리전스 플랫폼(10000)을 통해 수신할 수 있다.As another example of dynamic analysis, the
데이터베이스(2200)에 해당 파일의 해쉬 값이 이미 저장되지 않는 경우 동적분석 모듈(15200)은 수신된 파일을 가상 또는 실제의 운영체제에서 실행시키고, 실행 시에 발생되는 행위를 실시간으로 수집하고 수집된 동적분석 정보를 데이터베이스(2200)에 이미 저장된 정보와 비교할 수 있다. If the hash value of the corresponding file is not already stored in the
상기 비교 결과 이미 정의된 위험도를 초과하는 경우 입력된 파일이 악성 코드를 포함하고 있다고 판단할 수 있고, 동적분석 모듈(15200)은 악성 코드에 대응되는 파일의 해쉬 값을 데이터베이스(2200)에 저장할 수 있다. 저장된 악성 해쉬 값은 추후 정적 분석 등에 이용할 수 있다. As a result of the comparison, if it exceeds a predefined risk level, it may be determined that the input file contains malicious code, and the
악성 코드는 외부의 서버와 통신하며 추가적인 명령을 발생시키고 파일을 수신하도록 할 수 있다. Malicious code can communicate with an external server, issue additional commands, and receive files.
그런데 동적 분석을 수행할 수 있는 플랫폼과 서버가 중지된 경우는 이러한 동적 분석에 매우 오랜 시간이 소요될 수 있고 해당 행위가 사전 차단된 경우에도 동적 분석을 수행할 수 없는 경우가 있다. However, when the platform and server capable of performing dynamic analysis are stopped, such dynamic analysis may take a very long time, and there are cases in which dynamic analysis cannot be performed even when the corresponding action is blocked in advance.
실시 예에 따른 동적분석 모듈(15200)은 네트워크 행위를 분석할 경우, 악성 코드가 사용하는 명령 제어 서버(C&C 서버), 추가적인 악성 코드를 다운로드하기 위한 다운로드 서버 또는 악성 코드들끼리 정보를 주고 받거나 해커와 정보를 주고 받는 커뮤니케이션 패킷 등의 정보를 추출하여 분석할 수 있다. When the
여기서 개시하는 동적분석 모듈(15200)은 서버(2100)가 동작 중지된 경우에도 동적 분석을 수행하도록 할 수 있다. The
예를 들어 네트워크 접속 유도 장치(미도시)가 악성 코드에 감염된 클라이언트 단말과 인텔리전스 플랫폼(10000) 또는 서버(2100)에 사이에서 단말의 접속 요청을 처리하도록 하여 동적 분석을 진행하도록 할 수도 있다. For example, a network access inducer (not shown) may process a connection request of a terminal between a client terminal infected with malicious code and the
네트워크 접속 유도 장치(미도시)는 단말로부터 접속 요청을 수신하고 이를 악성 코드 행위를 유발시키는 C&C 서버로 전달하도록 할 수 있다. A device for inducing network access (not shown) may receive an access request from a terminal and transmit it to a C&C server that causes malicious code behavior.
그리고, 만약 상기 네트워크 접속 유도 장치가 일정 시간 내에 C&C 서버로부터 응답 패킷을 수신하지 못하면, 상기 네트워크 접속 유도 장치는 별도의 가상의 응답 패킷과 접속 요청을 함께 상기 단말에 전송하도록 한다. And, if the network connection inducing device does not receive a response packet from the C&C server within a certain time, the network connection inducing device transmits a separate virtual response packet and an access request together to the terminal.
이후에 상기 단말로부터 수신된 악성 코드 분석에 관련된 데이터를 추출할 수 있다. Thereafter, data related to malicious code analysis received from the terminal may be extracted.
가상의 응답 패킷을 이용하는 예는 가상의 응답 패킷 TCP 세션을 생성하기 위한 패킷 형식이면 충분하다. 악성 코드가 사용하는 일반적인 TCP (Transmission Control Protocol) 프로토콜은 TCP 세션만 생성하도록 상기 클라이언트 단말이 전송하는 데이터 패킷을 생성할 수 있다. 그리고 상기 데이터 패킷으로부터 악성 코드의 동적 분석에 필요한 중요 정보들을 추출할 수 있다. 이와 같이 하면 관리 서버가 동작하지 않더라도 네트워크 접속 유도 장치의 동작을 이용하여 동적 분석을 수행할 수 있다.As an example of using a virtual response packet, a packet format for creating a virtual response packet TCP session is sufficient. A general Transmission Control Protocol (TCP) protocol used by malicious code may generate a data packet transmitted by the client terminal to create only a TCP session. In addition, important information required for dynamic analysis of malicious codes can be extracted from the data packet. In this way, even if the management server does not operate, dynamic analysis can be performed using the operation of the network connection inducing device.
도 13은 개시하는 실시 예에 따라 분석 프레임 워크 중 심층분석 모듈의 기능을 상세히 설명하기 위한 일 예를 나타낸다. 이 도면을 참조하여 심층분석 모듈의 수행 과정을 예시하면 다음과 같다.13 shows an example for explaining in detail the function of an in-depth analysis module among analysis frameworks according to the disclosed embodiment. Referring to this drawing, the process of performing the in-depth analysis module is exemplified as follows.
인텔리전스 플랫폼(10000)의 분석 프레임 워크(15000)는 심층분석 모듈(15300)을 포함할 수 있다. 심층분석 모듈(15300)은 수신된 파일 포함하는 실행 가능한 파일 디스어셈블링하여 기계 언어 레벨에서 분석하여 악성 행위를 유발하는 공격 기법이나 공격자를 식별할 수 있다. The
심층분석 모듈(15300)은 기술한 정적 분석이나 동적 분석의 기반으로 심층 분석 정보를 얻을 수도 있고, 분석자의 해석 기준에 따라 실행 가능한 파일을 악성 행위를 유발하는 파일을 이용하여 분석할 수도 있다. The in-
심층분석 모듈(15300)은 파일 자체의 분석 정보나 또는 파일을 여러 번 가공한 정보를 포함할 수 있고 이미 저장된 정보를 기반으로 심층 분석 정보를 생성할 수 있다The in-
심층분석 모듈(15300)은 또한, 심층 분석은 디스어셈블링(disassembling) 모듈(15301), 기계언어코드추출 모듈(15303), 공격행위(TTP)식별 모듈(15305), 공격자식별 모듈(15307), 테인트분석(taint analysis)모듈(15309)를 포함할 수 있다. The in-
분석 프레임 워크(15000)는 심층분석 모듈(15300)은 AI 엔진(1230)을 이용하여 인공 지능 기반의 머신 러닝 알고리즘을 수행하고, 그 결과로 심층분석 정보를 얻을 수 있다. In the
디스어셈블링(disassembling) 모듈(15301)은 입력된 파일이 실행 가능한 파일을 포함할 경우 실행 가능한 파일을 디스어셈블(disassemble)한다. The
실행 가능한 파일이 디스어셈블링(disassembling)되면 오브젝트 코드 형식의 특정 형식, 예를 들면 어셈블러 언어 형식의 코드로 변환된다. When an executable file is disassembled, it is converted into code in a specific form in object code format, for example in assembler language format.
기계언어코드추출모듈(15303)은 일정 형식을 가진 OP-CODE (operation code)와 ASM-CODE를 포함하는 디스어셈블드 코드를 추출할 수 있다. 일정 형식을 가진 OP-CODE (operation code)는 악성 코드와 관련된 OP-CODE 부분을 의미하는 것으로 추출된 OP-CODE를 포함하는 디스어셈블드 코드는 악성 코드 또는 악성 행위와 관련된 부분을 지칭한다. The machine language
기계언어코드추출모듈(15303)은 디스어셈블드 코드를 일정 형식의 데이터 포맷을 변환할 수 있다. 일정 형식의 데이터 포맷의 변환 예시는 아래에서 개시한다.The machine language
실행 가능한 파일의 디스어셈블드 코드를 사이버 보안 전문가 집단들이 공통적으로 인정하는 공격 행위 세부 요소들로 매칭하도록 하여 그 공격행위를 식별할 수 있다.The attack can be identified by matching the disassembled code of the executable file with detailed attack action elements commonly recognized by cyber security expert groups.
공격행위(TTP)식별 모듈(15305)은 추출된 디스어셈블드 코드나 일정 형식으로 변환된 포맷의 데이터를 기반으로 공격행위, 공격기법 및 공격 프로세스를 식별할 수 있다. The attack behavior (TTP)
공격행위(TTP)식별 모듈(15305)은 실행 가능한 파일의 디스어셈블드 코드를 기반의 퍼지 해쉬 값을 사이버 보안 전문가 집단들이 공통적으로 인정하는 공격 행위 세부 요소들로 매칭하도록 하여 그 공격행위를 식별할 수 있다.The attack behavior (TTP)
공격행위(TTP)식별 모듈(15305)은 이미 추출된 디스어셈블드 코드들과 공격행위(TTP) 별 매칭 관계를 저장한 데이터베이스(2200) 또는 외부 레퍼런스 데이터베이스에 기반하여 공격행위(TTP)를 식별하도록 할 수 있다. 공격행위(TTP)식별 모듈(15305)은 AI 엔진(1230)의 머신 러닝을 이용하여 추출된 디스어셈블드 코드들의 CTPH 알고리즘 등의 퍼지 해쉬 값과 공격행위(TTP) 별 매칭 유사도를 고속으로 수행하여 공격행위 또는 공격기법을 분류할 수 있다..The Attack Behavior (TTP)
디스어셈블드 코드 내 OP-CODE는 수행될 연산을 특정하는 기계 언어 명령어의 일부인데, 사이버 보안 상 공격기법 또는 공격행위(Terrorist Tactics, Techniques, and Procedures, 이하 TTP)를 유발하는 OP-CODE 를 포함하는 디스어셈블드 코드는 해당 공격 행위 별로 매우 유사한 값이나 포맷을 가질 수 있다. 따라서, 이러한 OP-CODE와 ASM-CODE의 조합인 디스어셈블드 코드를 분석하면 특정 타입의 공격 행위를 구별할 수 있다. The OP-CODE in the disassembled code is a part of machine language instructions that specify the operation to be performed, including OP-CODEs that cause cyber security attack techniques or attacks (TTP). The disassembled code to attack may have a very similar value or format for each attack. Therefore, by analyzing the disassembled code, which is a combination of OP-CODE and ASM-CODE, a specific type of attack can be distinguished.
예를 들면 공격행위(TTP)식별 모듈(15305)는 실행 가능한 파일로부터 추출된 디스어셈블드 코드를 퍼지 해쉬(Fuzzy Hashing) 방식 또는 CTPH (context triggered piecewise hashes) 방식의 해쉬 값으로 변환할 수 있다. For example, the attack behavior (TTP)
공격행위(TTP)식별 모듈(15305)과 함께 수행되는 AI 엔진(1230)의 머신 러닝 알고리즘으로 Perceptron, Logistic Regression, Support Vector Machines, Multilayer Perceptron 등의 알고리즘이 사용될 수 있다. 또한 AI 엔진(1230)으로 앙상블 머신 러닝 알고리즘이나 자연어 처리 알고리즘도 사용할 수 있다. 이에 대한 예는 이하에서 상세히 개시한다.As a machine learning algorithm of the
보안 전문가 집단의 공격 행위를 저장한 데이터 베이스의 일 예로서 MITRE ATT&CK은 실제 보안 공격 기법이나 행위에 대한 데이터 베이스인데 공격행위(TTP)식별 모듈(15305)은 추출한 OP-CODE을 포함하는 디스어셈블드 코드이 변환된 해쉬 값을 MITRE ATT&CK의 데이터베이스 상의 일정한 데이터 세트 형식 또는 식별자로 식별할 수 있도록 한다.As an example of a database storing attack behaviors of a group of security experts, MITER ATT&CK is a database for actual security attack techniques or behaviors. The attack behavior (TTP) identification module (15305) is a disassembled The code allows the converted hash value to be identified as a certain data set format or identifier on MITER ATT&CK's database.
MITRE ATT&CK는 해커 또는 악성 코드의 공격 기법에 대한 취약 요소들을 CVE 코드(Common Vulnerabilities and Exposures Code)의 매트릭스로 표현한다. MITER ATT&CK expresses the vulnerable factors for attack techniques of hackers or malicious codes as a matrix of CVE codes (Common Vulnerabilities and Exposures Code).
실시 예는 디스어셈블드 코드를 분석함으로써 여러 가지 공격 행위들 중 특정 공격 행위를 식별하되, 식별된 타입의 공격 행위가 전문가 단체들이 인정하는 공격 행위의 요소들로 매칭되도록 함으로써 공격 행위 식별이 전문적이면서 공통으로 인식되는 요소들로 표현되도록 할 수 있다.The embodiment identifies a specific attack behavior among various attack behaviors by analyzing the disassembled code, but matches the identified type of attack behavior with the elements of the attack behavior recognized by expert organizations, so that the identification of the attack behavior is professional and It can be expressed with commonly recognized elements.
설명한 바와 같이 OP-CODE는 특정 행위를 유발시키는 기계 언어 명령어이므로, 동일한 공격 행위를 유발하는 파일의 디스어셈블드 코드는 매우 유사할 수 있다. 그러나 공격 행위와 이를 유발하는 파일의 디스어셈블드 코드가 정확하게 매칭되는 것은 아니므로 코드 상 일부 차이가 있을 수 있다.As described above, since OP-CODE is a machine language instruction that causes a specific action, disassembled codes of files that cause the same attack action can be very similar. However, since the attack behavior and the disassembled code of the file that causes it do not exactly match, there may be some differences in the code.
공격행위(TTP)식별 모듈(15305)은 추출한 디스어셈블드 코드를 일정 형식으로 변환한 코드에 대해 AI 엔진(1230)의 머신 러닝 수행하도록 한다. 따라서, 동일한 악성 행위를 유발시키는 파일들의 OP-CODE들이 완전히 동일하지 않더라도 공격행위(TTP)식별 모듈(15305)은 머신 러닝과 추출된 OP-CODE 기반의 퍼지 해쉬 값과 그에 대응하는 공격 요소를 매칭하여 공격 행위 등을 식별할 수 있다. The attack behavior (TTP)
공격행위(TTP)식별 모듈(15305)은 디스어셈블드 코드들의 유사도를 AI 알고리즘을 이용하여 MITRE ATT&CK과 같은 공격 기법에 매칭하여 최종적으로 해당 파일이 악성 코드임을 탐지할 수 있다. The attack behavior (TTP)
이에 대한 구체적인 예는 후술 한다.A specific example of this will be described later.
공격자식별 모듈(15307)은 추출된 디스어셈블드 코드와 인공 지능 기반의 머신 러닝 결과를 이용해 유사 공격 행위를 유발하는 공격자도 식별하는 단계를 포함할 수도 있다. 마찬가지로 공격자 식별에 대한 구체적인 예는 후술한다The
테인트분석(taint analysis)모듈(15309)은 파일이 없는(fileless) 악성 코드의 경우도 특정 시점에서 시스템의 메모리 분석을 통해 공격 행위가 있는지 여부에 대해 판단할 수 있다. The
심층분석 모듈(15300)은 해당 파일이나 그 파일로부터 식별된 악성 코드에 대응되는 심층 분석 정보를 데이터베이스(2200)에 저장할 수 있다.The
도 14은 개시하는 실시 예에 따라 분석 프레임 워크 중 연관관계분석 모듈의 기능을 상세히 설명하기 위한 일 예를 나타낸다. 이 도면을 참조하여 연관관계분석 모듈의 수행 과정을 예시하면 다음과 같다.14 illustrates an example for explaining in detail the function of a correlation analysis module in an analysis framework according to the disclosed embodiment. Referring to this figure, the execution process of the association analysis module is exemplified as follows.
인텔리전스 플랫폼(10000)의 분석 프레임 워크(15000)는 연관관계분석 모듈(15400)을 포함할 수 있다. 연관관계분석 모듈(15400)은 분석 프레임 워크(15000)가 분석하는 여러 가지 분석 정보들을, 사이버 위협 침해 정보(IoC)에 기반하여 공격자 또는 공격 기법 사이에 연관관계로 표현되도록 연관관계 분석 정보를 생성한다.The
연관관계분석 모듈(15400)은 분석 정보와 공격 행위 사이의 IP 정보의 연관관계를 분석하는 제 1 연관관계분석 모듈(15401), 이메일에 포함되거나 웹사이트 등에 포함된 호스트네임의 연관관계를 분석하는 제 2 연관관계분석 모듈 (15403), URL의 연관관계를 분석하는 제 3 연관관계분석 모듈 (15405), 파일의 코드사인(codesign)의 연관관계를 분석하는 제 4 연관관계분석 모듈 (15407), 공격 기법들 사이의 연관관계를 분석하는 제 5 연관관계분석 모듈 (15407) 등을 포함할 수 있다.The
이 도면에 표시된 모듈들은 예시에 불과하며, 이 도면에 표시되지 않더라도 연관관계분석 모듈(15400)은 공격 기법과 공격자를 판단하기 위해 분석된 정보들 사이에 여러 가지 연관관계들을 분석할 수 있는 모듈들을 포함할 수 있다. 예를 들면 연관관계분석 모듈(15400)은 생성한 연관관계 정보들을 취합하거나 통합하는 통합 분석 모듈을 포함할 수도 있다. The modules shown in this figure are just examples, and even if not shown in this figure, the
연관관계분석 모듈(15400)은 정확하게 공격기법 또는 공격자를 추론하는데 사용되는 연관관계 분석 정보를 생성할 수 있다. The
연관관계분석 모듈(15400)은 수신되는 파일이나 악성 코드에 대해 지속적이고 누적적으로 분석 정보들을 저장하고 추후 새로운 파일이나 악성 코드가 분석될 때마다 관련된 연관관계 분석 정보를 다시 업데이트하여 데이터베이스(2220)에 저장한다. The
연관관계분석 모듈(15400)은 위에서 분석한 여러 가지 분석 정보(정적분석정보, 동적분석정보, 심층분석정보 등)를 기반으로 사이버 위협 침해 정보를 얻을 수 있다. The
연관관계분석 모듈(15400)은 사이버 위협 침해 정보(IoC)를 이용해 공격 행위나 공격자를 식별할 수 있는 여러 가지 연관관계 정보를 얻을 수 있으며 이와 같이 분석된 연관관계 분석 정보를 데이터베이스(2200)에 저장할 수 있다.The
위에서 개시한 바와 같이 인텔리전스 플랫폼(10000)의 분석 프레임 워크(15000)는 분석된 정보들을 종합하여 중복 제거, 표준화, 인리치먼트 과정을 통해 표준화된 정보를 데이터베이스(2220)에 저장할 수 있다. As described above, the
인텔리전스 플랫폼(10000)는 정적 분석 정보, 동적분석 정보, 심층분석 정보, 연관관계분석 정보들을 사이버 위협 정보를 갱신 또는 재생산하기 위해 표준화된 포맷으로 데이터베이스(2200)에 저장할 수 있다. The
여기서 인텔리전스 플랫폼(10000)는 각 분석 정보들의 중복되거나 공통된 분석 정보의 중복된 부분을 제거하고, 부족한 부분의 데이터의 인리치먼트(enrichment) 작업 등을 수행할 수 있다.Here, the
인텔리전스 플랫폼(10000)는 후 처리를 통해 표준화된 정보를 사이버 공격들의 방지하기 위해 고안된 표준인 STIX 이나 TAXII 등의 포맷으로 저장할 수 있다. The
서버 (2100)는 사용자의 조회 질의에 따라 또는 서비스 정책에 따라 분석 프레임 워크(15000)가 생성한 분석 정보 등을 표준화된 사이버 위협 정보로 제공할 수 있다. 사이버 위협 정보로 제공 방법에 대해서도 이하에서 상세히 후술한다.The
이러한 사이버 위협 정보는 사용자의 요청이나 서비스에 따라 제공할 수도 있다.Such cyber threat information may be provided according to a user's request or service.
도 15는 개시하는 실시 예에 따라 예측 프레임 워크의 예측정보생성 모듈의 기능을 상세히 설명하기 위한 일 예를 나타낸다. 이 도면을 참조하여 예측 프레임 워크의 수행 과정을 예시하면 다음과 같다.15 shows an example for explaining in detail the function of the predictive information generating module of the predictive framework according to the disclosed embodiment. Referring to this figure, the execution process of the prediction framework is exemplified as follows.
예시한 인텔리전스 플랫폼(10000)의 예측 프레임 워크(17000)는 예측정보생성모듈(17100)을 포함할 수 있다. 예측정보생성모듈(17100)은 생성하는 예측정보에 따라 다수의 정보예측모듈들을 포함할 수 있다. 이 예에서는 예측정보생성모듈(17100)이 제1정보예측모듈(1711), 제2정보예측모듈(1713), 제3정보예측모듈(1715), 제4정보예측모듈(1717), 및 제5정보예측모듈(1719)을 포함하는 예를 나타낸다. The
예측 프레임 워크(17000)는 이전에 예시한 분석 프레임 워크(미도시)가 생성한 분석정보들을 이용할 수 있다. 예측 프레임 워크(17000)는 여러 가지 분석 정보들에 따른 데이터 세트를 인공 지능 기반의 학습 데이터 세트로 가공하고, AI 엔진(1230)은 가공된 학습 데이터 세트를 기초로 인공 지능 분석을 수행할 수 있다. The
예측 프레임 워크(17000)과 AI 엔진(1230)의 수행을 통해 공격 행위와 관련된 여러 가지 예측 정보 생성할 수 있다. Through the execution of the
이 예에서는 제1정보예측모듈(1711)는 인공 지능 학습을 통해 악성 코드 제작자의 예측 정보를 생성할 수 있다. 제2정보예측모듈(1713)는 악성 코드 공격 방법의 예측 정보를 생성하고 제3정보예측모듈(1715)는 악성 코드 공격 그룹의 예측 정보를 생성할 수 있다. 그리고 제4정보예측모듈(1717)는 악성 코드 유사도 예측 정보를 생성하고, 제5정보예측모듈(1719)는 악성 코드 확산도 예측 정보를 생성하는 예를 나타낸다. In this example, the first information prediction module 1711 may generate prediction information of a malicious code maker through artificial intelligence learning. The second information prediction module 1713 may generate prediction information of a malicious code attack method, and the third information prediction module 1715 may generate prediction information of a malicious code attack group. Further, the fourth information prediction module 1717 generates malicious code similarity prediction information, and the fifth information prediction module 1719 generates malicious code spread prediction information.
구체적인 예측 정보의 생성의 예는 이하에서 후술한다. An example of generating specific prediction information will be described later.
예측 프레임 워크(17000)는 생성한 예측 정보를 데이터베이스(2200)에 저장할 수 있다. The
예를 들면 예측 프레임 워크(17000)는 특정 악성 코드에 대해 그 악성코드의 위험 자체를 예측한 악성코드 위험도 예측 정보를 생성하여 데이터베이스(2200)에 저장할 수 있다. For example, the
그리고 예측 프레임 워크(17000)는 특정 악성 코드에 대해 예측한 제작자, 공격방법, 공격 그룹, 유사도, 확산도의 예측 정보를 데이터베이스(2200)에 저장할 수 있다. In addition, the
개시한 바와 같이 인텔리전스 플랫폼(1000)은 분석 정보 또는 예측 정보에 기초하여 악성 코드 종류 및 악성 코드의 위험도를 생성할 수 있다. 그리고 인텔리전스 플랫폼(10000)은 악성 코드에 대한 프로파일링 정보를 생성할 수 있다. As disclosed above, the
인텔리전스 플랫폼(10000)은 파일 분석을 통해 파일에 대한 자체 분석을 수행한 결과나 추가 및 예측 분석을 수행한 결과를 데이터베이스(2200)에 저장할 수 있다.The
인텔리전스 플랫폼(10000)이 제공하는 사이버 위협 정보는, 위의 전처리를 수행한 정보, 생성한 분석 정보, 생성한 예측 정보 또는 이 정보들의 취합 정보나 이 정보들을 기반으로 추가 후 처리된 정보를 포함할 수 있다. The cyber threat information provided by the
따라서 제공되는 사이버 위협 정보에는 입력된 파일과 관련하여 통합 분석Therefore, the cyber threat information provided includes integrated analysis in relation to the input file.
이러한 예시한 인텔리전스 플랫폼(10000)에 의해 제공되는 통합 분석 정보는, 입력된 파일에 대응하여 서버(2100)에 의해 데이터베이스(2200)에 표준화된 포맷으로 저장될 수 있다. 이러한 통합 분석 정보는 표준화된 포맷으로 저장되어 사이버 위협 정보를 검색 또는 조회에 사용될 수 있다.The integrated analysis information provided by the
이하에서는 각 처리 단계 또는 모듈에 따른 상세한 실시 예들을 개시한다. Hereinafter, detailed embodiments according to each processing step or module are disclosed.
도 16은 개시하는 실시 예에 따라 정적 분석을 수행하는 일 예를 나타낸다. 도면을 참조하여 실시 예에 따른 정적 분석 방법의 일 예를 설명하며 다음과 같다. 16 shows an example of performing static analysis according to the disclosed embodiment. An example of a static analysis method according to an embodiment is described with reference to the drawings, and is as follows.
설명한 바와 같이 정적 분석을 수행하기 이전에 전처리 단계나 정적 분석의 초기 단계에서 파일의 종류를 식별 수 있다. 이 도면은 파일의 종류로서 편의상 ELF, EXE, ARK 파일이 식별된 경우를 예시하지만 실시예의 적용은 이에 국한되지 않는다.As described above, the type of file can be identified in the pre-processing stage or in the initial stage of static analysis before performing static analysis. This figure illustrates a case where ELF, EXE, and ARK files are identified as file types for convenience, but the application of the embodiment is not limited thereto.
악성코드의 정적 분석 또는 탐지는 위와 같은 파일 자체가 가지고 있는 성격과 기존에 확인된 패턴 데이터베이스와 비교 하는 과정을 기반으로 동작할 수 있다. Static analysis or detection of malicious code can be operated based on the process of comparing the characteristics of the above file itself with the previously identified pattern database.
정적 정보 추출기는 입력된 파일의 구조를 파싱하여 구조 정보를 얻을 수 있다.The static information extractor can obtain structure information by parsing the structure of the input file.
파싱된 파일의 구조 상 패턴(pattern)은 데이터베이스(DB)(2200)에 이미 저장된 악성 코드의 패턴과 비교될 수 있다. A pattern in the structure of the parsed file may be compared with a pattern of malicious code already stored in the database (DB) 2200 .
파싱된 파일의 구조 특징과 패턴은 상기 파싱된 파일의 메타 정보가 될 수 있다. The structure characteristics and patterns of the parsed file may become meta information of the parsed file.
위에 개시된 예에서는 표시하지 않았으나 개시하는 실시예의 정적 분석에서도 머신 러닝 엔진이 사용될 수 있다. 데이터베이스(2200)는 이미 저장된 악성 코드의 학습된 특징들을 포함하는 데이터 세트를 저장할 수 있다. Although not shown in the example disclosed above, a machine learning engine may also be used in the static analysis of the disclosed embodiment. The
AI 엔진은 위와 같이 파상된 파일로부터 얻은 메타 정보를 머신 러닝을 통해 학습하고, 데이터베이스(2200)에 이미 저장된 데이터 세트를 비교하여 악성코드 여부를 판단할 수 있다.The AI engine can learn the meta information obtained from the above-described broken file through machine learning, and compare a data set already stored in the
정적 분석을 통해 악성 코드로 분석된 파일은 파일의 구조적 특징은 악성 코드와 관련된 데이터 세트로 다시 저장될 수 있다.For files that have been analyzed as malicious code through static analysis, the structural characteristics of the file can be saved back as a data set related to malicious code.
도 17은 개시하는 실시 예에 따라 동적 분석을 수행하는 일 예를 나타낸다. 도면을 참조하여 실시 예에 따른 동적 분석 방법의 일 예를 설명하며 다음과 같다. 17 shows an example of performing dynamic analysis according to the disclosed embodiment. An example of a dynamic analysis method according to an embodiment is described with reference to the drawings, and is as follows.
설명한 바와 같이 동적 분석을 수행하기 이전에 전처리 단계나 동적 분석의 초기 단계에서 파일의 종류를 식별 수 있다. 마찬가지로 이 예시에서 파일의 종류로서 편의상 ELF, EXE, ARK 파일이 식별된 경우를 예시한다. As described above, the type of file can be identified in the pre-processing stage or the initial stage of dynamic analysis before performing dynamic analysis. Similarly, in this example, ELF, EXE, and ARK files are identified as the type of file for convenience.
전처리를 통해 동적 분석 대상이 되는 파일 종류를 식별할 수 있다. 식별된 파일은 각 파일의 종류와 타입에 따라 가상 환경에서 실행될 수 있다. Through pre-processing, it is possible to identify file types that are subject to dynamic analysis. The identified file can be executed in a virtual environment according to the type and type of each file.
예를 들어 식별된 파일이 ELF 파일인 경우 대기 큐(Que)를 거쳐 리눅스 가상 환경(Virtual Machine, VM)의 운영체제에서 실행될 수 있다. For example, if the identified file is an ELF file, it can be executed in the operating system of a Linux virtual machine (VM) through a standby queue (Que).
ELF 파일이 실행될 경우 발생하는 이벤트는 행위 로그(log)에 기록될 수 있다. Events that occur when an ELF file is executed can be recorded in an action log.
이와 같이 각각의 식별 파일의 종류 별로 윈도우, 리눅스, 모바일 운영체제 시스템을 가상으로 구축한 후 가상 시스템의 실행 이벤트를 기록한다. In this way, a Windows, Linux, and mobile operating system system is virtually constructed for each type of identification file, and then an execution event of the virtual system is recorded.
그리고 데이터베이스(2200)에 이미 저장된 악성 코드의 실행 이벤트들과 기록한 실행 이벤트들을 비교할 수 있다. 위에서 예시하지 않았으나 동적 분석의 경우에도 머신 러닝을 통해 기록한 실행 이벤트들을 학습하고, 학습된 데이터가 이미 저장된 악성 코드의 실행 이벤트들과 유사한지 판단할 수 있다.In addition, execution events of malicious codes already stored in the
동적 분석의 경우 파일에 따라 가상 환경을 구축해야 하고 이에 따라 분석 및 탐지 시스템의 규모가 커질 수 있다.In the case of dynamic analysis, a virtual environment must be built according to the files, and accordingly, the size of the analysis and detection system can increase.
도 18은 개시하는 실시 예에 따라 심층 분석을 수행하는 일 예를 나타낸다. 도면을 참조하여 실시 예에 따른 심층 분석 방법의 일 예를 설명하며 다음과 같다. 18 shows an example of performing in-depth analysis according to the disclosed embodiment. An example of an in-depth analysis method according to an embodiment is described with reference to the drawings, and is as follows.
설명한 바와 같이 심층 분석을 수행하기 이전에 전처리 단계나 심층 분석의 초기 단계에서 파일의 종류를 식별 수 있다. 개시된 예는 식별된 파일이 ELF, EXE, ARK 의 실행 가능한 바이너리 파일을 예시한다. As described above, the type of file can be identified in the pre-processing stage or the initial stage of in-depth analysis before performing in-depth analysis. The disclosed example illustrates an executable binary file in which the identified file is ELF, EXE, or ARK.
실행 가능한 바이너리 파일을 디스어셈블(disassemble)을 수행하면 CPU(Central Processing Unit)의 명령어 집합 중 함수들의 구조를 분석할 수 있다.By disassembling an executable binary file, the structure of functions in the instruction set of a central processing unit (CPU) can be analyzed.
심층 분석은 동적 분석과 다르게 바이너리 파일을 디스어셈블하여 추출된 코드를 기반으로 동작하기 때문에 상대적으로 시스템 규모가 간단하게 분석이 가능하다. 그리고 심층 분석은 별도의 엔진 없이 추출된 코드들을 정규화 하는 과정을 통해 만들어진 데이터를 기초로 인공지능 분석을 수행할 수 있다. Unlike dynamic analysis, in-depth analysis operates based on code extracted by disassembling binary files, so it is possible to analyze the size of the system relatively simply. In-depth analysis can perform artificial intelligence analysis based on data created through the process of normalizing extracted codes without a separate engine.
이 도면에서 디스어셈블드 코드는 OP-CODE와 ASM-CODE의 결합으로 표현된다. In this figure, the disassembled code is expressed as a combination of OP-CODE and ASM-CODE.
실시 예는 OP-CODE 와 ASM-CODE를 기반으로 두 가지 코드를 조합하고, 조합된 코드 중 의미가 있는 코드 블록(Code Block)을 추출할 수 있다. The embodiment may combine two codes based on OP-CODE and ASM-CODE, and extract a meaningful code block from the combined codes.
OP-CODE 와 ASM-CODE을 포함하는 디스어셈블된 코드의 코드 블록(Code Block)은 일정한 형식을 변환하여 해당 코드가 악성 코드와 관련되었는지, 어떤 악성 코드이지 또는 어떤 공격자가 개발했는지를 식별할 수 있다.The code block of the disassembled code, including OP-CODE and ASM-CODE, is converted into a certain format to identify whether the code is related to malicious code, which malicious code it is, or which attacker developed it. there is.
이를 판단하기 위한 코드 블록(Code Block)의 데이터 변환 방식을 여러 가지 과정이 있다. 디스어셈블된 코드의 데이터 변환 과정은 데이터의 처리 속도와 정확도에 따라 선택적으로 적용될 수 있으나 이 도면에서는 정규화 과정과 벡터화 과정만을 표기하였다. There are several processes for data conversion of code blocks to determine this. The data conversion process of the disassembled code can be selectively applied according to the data processing speed and accuracy, but only the normalization process and the vectorization process are shown in this figure.
OP-CODE와 ASM-CODE의 결합 코드의 추출된 코드 블록(Code Block)을 정규화 과정과 벡터화 과정을 수행할 수 있다. A normalization process and a vectorization process may be performed on the extracted code block of the combination code of OP-CODE and ASM-CODE.
즉 바이너리 코드의 OP-CODE 와 ASM-CODE 조합으로 코드 블록(Code Block)을 추출하고 이 코드 블록(Code Block)의 특징 정보를 벡터화시킨 후 다양한 특징 정보를 통해 학습된 데이터와 비교하여 공격 행위 등을 식별하도록 한다.That is, after extracting a code block by combining OP-CODE and ASM-CODE of binary code, vectorizing the feature information of this code block, and comparing it with the data learned through various feature information, attack actions, etc. to identify
동일한 실행 파일이라도 이와 같이 추출된 코드 블록(Code Block)이 모두 다를 수 있기 때문에 실시 예는 추출된 코드 블록(Code Block)를 악성 코드로 판단하고 분류하는 방식으로 머신 러닝 또는 인공 지능(AI) 방식을 이용할 수 있다. Since all of the extracted code blocks may be different even in the same executable file, the embodiment uses a machine learning or artificial intelligence (AI) method to determine and classify the extracted code blocks as malicious code. is available.
그리고 실시 예는 정규화 및 벡터화 과정이 수행된 최종 데이터를 인공 지능을 통해 학습시킨다. 학습된 데이터는 데이터베이스(2200)에 이미 저장된 공격 기법(TTP)과 공격자 또는 공격 그룹의 데이터와 비교되어 악성 코드 여부 등의 정보를 얻을 수 있다. And the embodiment learns the final data on which normalization and vectorization processes have been performed through artificial intelligence. The learned data may be compared with an attack technique (TTP) already stored in the
실시 예는 악성 코드의 핵심 부분인 구성 요소를 MITRE ATT&CK 모델을 기반으로 분류하고 구분할 수 있다. In the embodiment, components that are core parts of malicious codes can be classified and classified based on the MITER ATT&CK model.
이에 대한 구체적인 실시 예는 이하에서 더욱 상세하게 개시된다.A specific embodiment for this is disclosed in more detail below.
도 19는 개시하는 실시 예에 따라 바이너리 코드에서 추출된 코드들로 공격 기법을 매칭하는 일 예를 나타낸다. 여기에서는 공격 기법을 매칭하는 일 예로 표준화된 모델을 사용하는 예를 개시한다. 19 illustrates an example of matching attack techniques with codes extracted from binary codes according to the disclosed embodiment. Here, an example of using a standardized model as an example of matching an attack technique is disclosed.
여기서 표준화된 모델로 MITRE ATT&CK® Framework를 예시한다.Here, the MITER ATT&CK® Framework is exemplified as a standardized model.
예를 들어 사이버 보안 상 “악성 행위” 라고 하는 것은 분석가에 따라 해석 방식이 다르고 각자가 가지고 있는 식견에 따라서 다르게 해석하는 경우가 많았다. For example, in terms of cyber security, “malicious behavior” was often interpreted differently depending on the analyst's interpretation method and each person's insight.
국제적으로 시스템 상에서 발생하는 “악성 행위”를 표준화 하고 모두가 같은 해석을 할 수 있도록 전문가들 사이에 많은 노력을 수행되고 있다. 미국 연방정부의 지원을 받으며 국가안보관련 업무를 수행하던 비영리 연구개발 단체인 MITRE(https://attack.mitre.org)에서 “악성 행위” 에 대한 정의를 연구하였고 그에 따라 ATT&CK® Framework 이라는 것을 만들고 공표하였다. 이 프레임 워크는 사이버 위협 또는 악성코드에 대해 모두가 같은 “악성 행위”를 정의 할 수 있도록 정의하였다. Internationally, many efforts are being made among experts to standardize the “malicious behavior” that occurs on systems and to ensure that everyone has the same interpretation. MITRE (https://attack.mitre.org), a non-profit research and development organization that was supported by the US federal government and carried out national security-related tasks, studied the definition of “malicious behavior” and created the ATT&CK® Framework accordingly. announced. This framework is defined so that everyone can define the same “malicious behavior” for cyber threats or malware.
MITRE ATT&CK® Framework (이하, MITRE ATT&CK®)는 공격자들의 최신 공격 기술 정보를 정리한 것으로서 Adversarial Tactics, Techniques, and Common Knowledge의 약어이다. MITRE ATT&CK® 은, 실제 사이버 공격 사례를 관찰한 후 공격자의 악의적 행위(Adversary behaviors)에 대해서 공격 방법(Tactics)과 기술(Techniques)을 분석하여 다양한 공격 그룹들의 공격 기법들에 대한 정보들을 분류하고 목록화한 표준적인 데이터이다. MITER ATT&CK® Framework (hereinafter referred to as MITER ATT&CK®) is an abbreviation of Adversarial Tactics, Techniques, and Common Knowledge, which summarizes attacker's latest attack technique information. MITER ATT&CK® observes actual cases of cyber attacks, analyzes attack tactics and techniques for adversary behaviors of attackers, classifies and lists information on attack techniques of various attack groups This is standardized data.
MITRE ATT&CK® 은 전통적인 사이버 킬체인의 개념과는 약간 관점을 달리하여 지능화된 공격의 탐지를 향상시키기 위해 위협적인 전술과 기술을 체계화(패턴화)한 것이다. 원래 ATT&CK는 MITRE에서 윈도우 운영체제를 사용하는 기업 환경에 사용되는 해킹 공격에 대해서 방법(Tactics), 기술(Techniques), 절차(Procedures) 등 TTP를 문서화하는 것으로 시작되었다. 그 이후 ATT&CK은 공격자로부터 발생한 일관된 공격 행동 패턴에 대한 분석을 기반으로 TTP 정보를 매핑하여 공격자의 행위를 식별해 줄 수 있는 프레임워크로 발전하였다.MITER ATT&CK® systematizes (patterns) threatening tactics and techniques to improve the detection of intelligent attacks, taking a slightly different perspective from the traditional cyber kill chain concept. Originally, ATT&CK started by documenting TTP such as tactics, techniques, and procedures for hacking attacks used in corporate environments using the Windows operating system at MITRE. Since then, ATT&CK has developed into a framework that can identify an attacker's behavior by mapping TTP information based on the analysis of consistent attack behavior patterns generated by the attacker.
개시하는 실시 예에서 언급하는 악성 행위는, MITRE ATT&CK® 와 같은 표준화된 모델에 기반하여 악성 코드를 공격 기법에 매칭하여 표현할 수 있는데 표준화된 모델이 어떤 것이든 악성 코드를 요소 별로 식별하고 분류하여 공격 식별자에 매칭할 수 있다. Malicious behaviors mentioned in the disclosed embodiments can be expressed by matching malicious codes to attack techniques based on a standardized model such as MITER ATT&CK®. You can match an identifier.
이 도면의 예 어떻게 악성 코드의 악성 행위와 MITRE ATT&CK 모델 기반으로 공격 기법이 매칭되는지를 개념적으로 나타낸다. An example of this figure conceptually shows how the malicious behavior of the malicious code and the attack technique are matched based on the MITER ATT&CK model.
실행 파일 EXE는 파일 실행 시에 수행되는 여러 가지 함수들(Function A, B, C, D, E,…, N,…, Z)을 포함할 수 있다. 그 함수들 중 적어도 하나의 함수를 포함하는 함수 그룹은 하나의 공격 방법(tactic)을 수행할 수 있다. The executable file EXE may include various functions (Function A, B, C, D, E, ..., N, ..., Z) that are executed when the file is executed. A function group including at least one of the functions may perform one attack strategy.
이 도면의 예에서 함수 A, B, C는 공격 방법(tactic) A에 대응되고, 함수 D, B, F는 공격 방법(tactic) B에 대응되는 예를 개시한다. 유사하게 함수 Z, R, C는 공격 방법(tactic) C에 대응되고, 함수 K 및 F는 공격 방법(tactic) D에 대응된다. In the example of this figure, functions A, B, and C correspond to tactic A, and functions D, B, and F correspond to tactic B. Similarly, functions Z, R, and C correspond to tactics C, and functions K and F correspond to tactics D.
실시 예는 각 공격 방법(tactic)에 대응되는 함수들의 집합과 특정 디스어셈블드 코드 의 부분을 대응시킬 수 있다. 데이터베이스는 이미 인공 지능으로 학습된 디스어셈블드 코드들에 대응될 수 있는 의 공격 방법(Tactics), 기술(Techniques), 절차(Procedures) (TTP)의 공격 식별자 (T-ID)를 저장하고 있다. In an embodiment, a set of functions corresponding to each attack strategy may correspond to a part of a specific disassembled code. The database already stores attack identifiers (T-IDs) of Tactics, Techniques, and Procedures (TTP) that can correspond to disassembled codes learned by artificial intelligence.
공격 방법(Tactics), 기술(Techniques), 절차(Procedures) (TTP)의 공격 식별자 (T-ID)는 표준화된 모델을 따르며 여기 도면의 예시는 사이버 위협 정보의 표준화된 모델로 MITRE ATT&CK®를 예시하였다. The Attack Identifier (T-ID) of the Tactics, Techniques, and Procedures (TTP) follows a standardized model and the example in the figure here illustrates MITER ATT&CK® as a standardized model for cyber threat intelligence. did
따라서, 실시 예는 바이너리 파일에서 디스어셈블드 코드로부터 추출한 결과 데이터를 표준화된 공격 식별자로 매칭시킬 수 있다. 공격 식별자를 매칭하는 보다 구체적인 방식은 아래에서 개시한다.Accordingly, the embodiment may match result data extracted from disassembled code in a binary file with a standardized attack identifier. A more specific method of matching the attack identifier is disclosed below.
도 20은 개시하는 실시 예에 따라 OP-CODE를 포함하는 코드 세트와 공격 기법을 매칭하는 일 예를 나타낸다. 20 illustrates an example of matching a code set including an OP-CODE and an attack technique according to the disclosed embodiment.
대부분의 인공지능 엔진은 악성 코드의 다양한 특징 정보를 바탕으로 학습된 데이터 셋(data set)을 이용해 악성 코드를 판별한다. 그러면 악성 코드의 악성 여부는 판단이 되지만 이러한 방식은 악성 코드가 왜 악성 코드인지에 대한 설명을 하기 힘들었다. 그러나 예시한 바와 같이 표준화된 공격 방법(TTP)의 식별자로 대응시키면 해당 악성 코드가 어떤 위협 요소가 있는지 식별이 가능하다. 따라서, 실시 예는 보안 관리자에게 사이버 위협 정보를 정확하게 전달하도록 하고, 보안 관리자가 사이버 위협 정보를 체계적이고 장기적으로 관리할 수 있도록 할 수 있다. Most artificial intelligence engines identify malicious codes using a data set learned based on various characteristic information of malicious codes. Then, it is determined whether the malicious code is malicious or not, but it is difficult to explain why the malicious code is malicious in this method. However, as shown in the example, if the identifier of the standardized attack method (TTP) is matched, it is possible to identify the threat element of the corresponding malicious code. Accordingly, the embodiment can accurately deliver cyber threat information to the security manager and enable the security manager to manage the cyber threat information systematically and for a long period of time.
실시 예는 디스어셈블드 코드를 기반으로 공격 방법(TTP)을 식별하기 위한 인공 지능 학습용 데이터 셋을 생성할 때 단순히 공격 방법(TTP)의 식별자 또는 라벨링 만을 구분할 뿐만 아니라 공격 방법(TTP)을 어떻게 구현했는지에 대한 특징을 중요한 요소로 반영할 수 있다. The embodiment not only distinguishes the identifier or labeling of the attack method (TTP) when generating a data set for artificial intelligence learning to identify the attack method (TTP) based on the disassembled code, but also how to implement the attack method (TTP) It can reflect the characteristics of whether or not it has been done as an important factor.
동일한 공격 방법(TTP)을 구현하는 악성 코드라도 개발자에 따라 동일한 코드로 생성하는 것은 불가능하다. 즉, 공격 방법(TTP)의 기술은 인간 구술 언어 형태로 되어 있으나, 개발자에 따라 이를 구현 방식과 코드 작성 방법이 동일하지 않다. Even malicious codes that implement the same attack method (TTP), it is impossible to generate the same code depending on the developer. That is, the description of the attack method (TTP) is in the form of human oral language, but the implementation method and code writing method are not the same depending on the developer.
이러한 코드 작성의 차이는 개발자의 역량이나 프로그램 로직을 구현하는 방식이나 습관에 따르는데 이러한 차이는 바이너리 코드 또는 이를 디스어셈블된 OP-CODE 와 ASM-CODE의 차이로 나타낸다. The difference in code writing depends on the developer's ability or the way or habit of implementing program logic, and this difference is represented by binary code or the difference between disassembled OP-CODE and ASM-CODE.
그래서 단순히 결과적인 공격 방법(TTP)의 타입에 따라 공격 식별자를 부여하거나 대응시키면 악성 코드를 생성하는 공격자 또는 공격자 그룹까지 정확하게 식별하기 힘들다. Therefore, it is difficult to accurately identify an attacker or group of attackers who generate malicious code simply by assigning or matching an attack identifier according to the type of resulting attack method (TTP).
반대로 디스어셈블된 OP-CODE 와 ASM-CODE의 특성을 중요한 변수로 반영시켜서 모델링을 수행하면 특정 악성코드나 공격 도구를 개발한 개발자 혹은 자동으로 생성하는 도구 자체까지도 식별이 가능하다. Conversely, if modeling is performed by reflecting the characteristics of the disassembled OP-CODE and ASM-CODE as important variables, it is possible to identify the developer who developed a specific malicious code or attack tool, or even the automatically generated tool itself.
개시하는 실시 예는 디스어셈블된 OP-CODE 와 ASM-CODE 결합 코드의 고유한 특성에 따라 현대의 사이버 전에서 굉장히 중요한 위협 인텔리전스를 생성하도록 할 수 있다. 즉, 이러한 고유 특성에 기초하면 실시 예는 공격 코드 또는 악성 코드를 어떻게 동작을 하는지, 이것을 누가 어떤 의도로 개발했는지에 대한 내용을 함께 식별할 수 있다. The disclosed embodiment can generate very important threat intelligence in modern cyber warfare according to the unique characteristics of the disassembled OP-CODE and ASM-CODE combined code. That is, based on these unique characteristics, the embodiment can identify how the attack code or malicious code operates, and who developed it and for what purpose.
그리고 추후에 해당 공격자가 계속해서 공격하는 특징 정보를 바탕으로 취약한 시스템을 보완할 수 있고 사이버 보안 위협에 대한 능동적이고 선제적인 대응이 가능하도록 할 수 있다. In the future, it is possible to supplement vulnerable systems based on information about characteristics that attackers continue to attack, and to enable active and preemptive responses to cyber security threats.
이러한 개념 상에서 실시 예는 단순히 OP-CODE 기반으로 공격 결과에 따른 공격 기법을 식별하는 방식과 성능에서 전혀 다른 결과를 제공한다. On this concept, the embodiment simply provides completely different results in terms of performance and method of identifying an attack technique according to an attack result based on OP-CODE.
실시 예는 공격 방법(TTP)를 구현하기 위해 사용된 코딩 기법을 정확하게 식별하여 분류하기 위해 디스어셈블된 OP-CODE 와 ASM-CODE을 조합된 특징에 기초한 디스어셈블드 코드의 데이터 세트를 생성할 수 있다. 이렇게 생성된 데이터 세트로부터 고유한 특성을 식별하도록 모델링하면 공격 방법(TTP)뿐만 아니라 개발자의 특징 정보, 즉 개발자 (또는 자동화된 제작 도구)가 누구인지까지 식별이 가능하다. Embodiments can generate a data set of disassembled codes based on the combined characteristics of the disassembled OP-CODE and ASM-CODE to accurately identify and classify the coding technique used to implement the attack method (TTP). there is. Modeling to identify unique characteristics from the data set created in this way can identify not only the attack method (TTP) but also the developer's characteristic information, that is, who the developer (or automated production tool) is.
이 도면은 위에서 설명한 방식으로 모델링된 OP-CODE 데이터 세트를 공격 식별자에 매칭하는 예를 나타낸다. This figure shows an example of matching an OP-CODE data set modeled in the manner described above to an attack identifier.
이 예에서 제 1 OP-CODE 세트(OP-CODE set #1)는 공격 기법 식별자 T1011에 매칭되고, 제 2 OP-CODE 세트(OP-CODE set #2)는 공격 기법 식별자 T2013에 매칭됨을 나타낸다. 그리고 제 3 OP-CODE 세트(OP-CODE set #3)는 공격 기법 식별자 T1488에 매칭할 수 있고, 제 N번째 OP-CODE 세트(OP-CODE set #N)는 임의의 공격 기법 식별자 T1XXX에 매칭됨을 나타낸다. 표준화된 모델인 MITRE ATT&CK®은 공격 기법의 식별자를 요소 별로 매트릭스 형식으로 표현하지만, 실시 예는 공격 기법의 식별자 이외에 공격자 또는 공격 도구를 추가로 식별할 수 있다. In this example, the first OP-CODE set (OP-CODE set #1) matches the attack technique identifier T1011, and the second OP-CODE set (OP-CODE set #2) matches the attack technique identifier T2013. And the third OP-CODE set (OP-CODE set #3) can match the attack technique identifier T1488, and the Nth OP-CODE set (OP-CODE set #N) matches any attack technique identifier T1XXX indicates being MITER ATT&CK®, which is a standardized model, expresses attack technique identifiers in a matrix format for each element, but in an embodiment, an attacker or an attack tool may be additionally identified in addition to an attack technique identifier.
이 도면은 편의 상 OP-CODE 데이터 세트로 표시하였으나 OP-CODE 와 ASM-CODE을 포함하는 디스어셈블드 코드의 데이터 세트로 공격 기법을 식별하면 OP-CODE 데이터 세트만으로 공격 기법을 식별하는 것보다 더욱 세분화된 공격 기법을 식별할 수 있다. Although this figure is shown as an OP-CODE data set for convenience, identifying attack techniques with a data set of disassembled codes including OP-CODE and ASM-CODE is more effective than identifying attack techniques with only the OP-CODE data set. It is possible to identify detailed attack techniques.
실시 예에 따라 디스어셈블드 코드의 데이터 세트의 조합을 분석하면 공격 기법 식별자 뿐만 아니라 공격자 또는 공격 그룹의 식별할 수도 있다.According to an embodiment, when a combination of data sets of disassembled codes is analyzed, not only an attack technique identifier but also an attacker or an attack group may be identified.
따라서, 실시 예는 기존의 기술보다 인텔리전스 정보 획득 차원에서 고도화된 기술을 제공할 수 있을 뿐만 아니라 종래의 보안 영역에서 해결하지 못한 문제를 해결할 수 있다. Therefore, the embodiment can provide a more advanced technology than the existing technology in terms of acquiring intelligence information, and can solve problems that have not been solved in the conventional security area.
위와 같이 복잡한 환경에서 정확한 인텔리전스 정보를 확보하기 위해 빠른 데이터처리와 알고리즘이 요구된다. 이하에서는 이와 관련된 추가적인 실시 예와 그에 따른 성능에 대해 개시하도록 한다.In such a complex environment, fast data processing and algorithms are required to secure accurate intelligence information. Hereinafter, additional embodiments related to this and performance thereof will be disclosed.
도 21은 개시하는 실시 예에 따라 사이버 위협 정보를 처리하는 흐름을 예시한 도면이다. 21 is a diagram illustrating a flow of processing cyber threat information according to the disclosed embodiment.
이 도면에서 식별된 파일이 ELF, EXE, ARK 의 실행 가능한 바이너리 파일인 경우를 예로 하여 설명한다. 이 단계의 처리 과정은 위에서 개시한 심층 분석과 관련된다.A case in which the file identified in this figure is an ELF, EXE, or ARK executable binary file will be described as an example. The processing of this step is related to the in-depth analysis described above.
먼저 제 1 단계로서 OP-CODE 코드를 포함하는 디스어셈블드 코드를 추출하는 과정의 일 상세한 예를 설명하면 다음과 같다. First, a detailed example of a process of extracting a disassembled code including an OP-CODE code as a first step will be described below.
소스 코드를 컴파일(complie)하면 실행 파일이 생성된다.Compiling the source code creates an executable file.
원시 소스 코드는 실행 가능한 각 운영체제(OS) 환경에서 컴파일러에 의해 기계의 처리에 적합한 형태의 새로운 데이터로 생성된다. 새롭게 구성된 바이너리 데이터는 사람이 읽기에는 적합하지 않은 형태로 되어 있어 실행 파일 형태로 만들어진 파일을 인간이 해석해서 그 내부 로직을 파악하는 것은 불가능하다.The original source code is created as new data in a form suitable for machine processing by a compiler in each executable operating system (OS) environment. Since the newly formed binary data is in a form unsuitable for human reading, it is impossible for humans to understand the internal logic of a file made in the form of an executable file.
그러나 보안 시스템의 취약점 분석과 다양한 목적을 위해서 그 역과정을 수행하여 기계어의 해석이나 분석을 수행하는데 설명한 바와 같이 디스어셈블 과정이라고 한다. 디스어셈블 과정은 특정 운영체제의 중앙처리장치(CPU)와 처리 비트 수(32비트, 64비트 등) 에 맞춰서 수행될 수 있다. However, it is called the disassembly process as described in performing the interpretation or analysis of machine language by performing the reverse process for the vulnerability analysis of the security system and various purposes. The disassembly process may be performed according to the central processing unit (CPU) of a specific operating system and the number of processing bits (32 bits, 64 bits, etc.).
예시한 ELF, EXE, ARK 의 실행 파일을 각각 디스어셈블을 수행하면 디스어셈블된 어셈블리 코드를 획득할 수 있다. Disassembled assembly code can be obtained by disassembling the example ELF, EXE, and ARK executable files respectively.
디스어셈블된 코드는 OP-CODE 와 ASM-CODE가 조합된 코드를 포함할 수 있다. The disassembled code may include a code in which OP-CODE and ASM-CODE are combined.
실시 예는 디스어셈블 도구를 기반으로 실행 파일을 분석하여 실행 파일로부터 OP-CODE 와 ASM-CODE을 추출할 수 있다.The embodiment may extract OP-CODE and ASM-CODE from the executable file by analyzing the executable file based on a disassembly tool.
개시하는 실시 예는 추출된 OP-CODE 와 ASM-CODE을 그대로 이용하지 않고 각 함수 별로 재구성하여 OP-CODE 배열을 다시 구성한다. OP-CODE 배열을 재정리할 경우 원본 바이너리 데이터도 함께 포함하여 데이터의 해석을 충분히 수행할 수 있도록 데이터를 재구성할 수 있다. 이러한 재배열를 통해 OP-CODE 와 ASM-CODE의 새로운 조합은 공격 기법뿐만 아니라 공격자를 식별할 수 있는 기초 데이터를 제공한다. The disclosed embodiment does not use the extracted OP-CODE and ASM-CODE as it is, but reconstructs the OP-CODE array by reconstructing each function. When the OP-CODE arrangement is rearranged, the data can be reconstructed so that the data analysis can be sufficiently performed by including the original binary data together. Through this rearrangement, the new combination of OP-CODE and ASM-CODE provides basic data to identify attackers as well as attack techniques.
제 2 단계로 어셈블리 데이터를 처리하는 과정(ASM)을 상세히 설명하면 다음과 같다. The process of processing assembly data (ASM) in the second step will be described in detail.
어셈블리 데이터 처리 과정은 OP-CODE와 필요한 ASM-CODE 만을 분리한 후 인간 또는 컴퓨터가 읽기 좋은 형태로 재구성된 데이터를 기반으로 유사도를 분석하고 정보를 추출하는 과정이다. The assembly data processing process is a process of separating only the OP-CODE and the necessary ASM-CODE, and then analyzing the similarity and extracting information based on the data reconstructed in a form that is easy for humans or computers to read.
이 단계에서 디스어셈블된 어셈블리 데이터는 일정한 데이터 형식으로 변환될 수 있다. Assembly data disassembled in this step can be converted into a certain data format.
이러한 데이터 형식의 변환은 데이터 처리 속도를 높이고 데이터의 정확한 분석을 위해 아래 기술된 변환 방식들은 모두 적용될 필요없이 선택적으로 적용될 수 있다.Conversion of these data formats can be selectively applied without the need to apply all of the conversion methods described below to increase data processing speed and accurately analyze data.
재배열된 OP-CODE 와 ASM-CODE의 조합의 어셈블리 데이터로부터 여러 가지 함수를 추출할 수 있다. Various functions can be extracted from the assembly data of the rearranged combination of OP-CODE and ASM-CODE.
하나의 실행 파일을 디스어셈블하면 프로그램 크기에 따라 다르지만 평균적으로 약, 7,000~12,000개 정도 되는 함수를 포함할 수 있다. 이 함수들은 프로그래머가 필요에 따라 구현한 함수도 있으며 운영체제에서 기본적으로 제공하는 함수들도 있다. Disassembling one executable file can contain about 7,000 to 12,000 functions on average, depending on the size of the program. Some of these functions are implemented as needed by the programmer, while others are provided by default in the operating system.
실제 ASM-CODE를 분석하면 약 87%~91% 정도의 함수가 운영체제에서 기본적으로 제공하는 함수(OS supported)이고 프로그래머가 프로그램 로직을 위해서 실제 구현한 ASM-CODE는 약 10% 정도이다. 운영체제에서 제공한 함수는 함수 명과 함께 운영체제 설치 시에 기본적으로 설치되는 각종 DLL, SO 파일 등에 포함되는 함수들(Default function)이다. 이러한 운영체제 제공 함수들은 이미 분석하여 저장하여 분석 대상 데이터로부터 필터링할 수 있다. 이렇게 분석해야 할 코드만 분리하면 이후 처리 속도와 성능을 높일 수 있다. Analyzing the actual ASM-CODE, about 87% to 91% of the functions are basically provided by the operating system (OS supported), and about 10% of the ASM-CODE actually implemented by the programmer for the program logic. Functions provided by the operating system are functions (default functions) included in various DLLs and SO files that are basically installed when installing the operating system along with function names. These operating system-provided functions can already be analyzed and stored to filter from the data to be analyzed. By isolating only the code to be analyzed in this way, the processing speed and performance can be increased later.
실시 예는 프로그램의 기능적 분석을 정확하게 수행하기 위해서 OP-CODE를 함수 단위로 분리해서 처리할 수 있다. 실시 예는 모든 의미적 분석의 최소 단위를 어셈블리 코드에 포함된 함수를 기반하여 수행할 수 있다. In the embodiment, in order to accurately perform functional analysis of a program, OP-CODE can be separated and processed in units of functions. In the embodiment, the minimum unit of all semantic analysis may be performed based on functions included in assembly code.
분석 성능과 처리 속도를 높이기 위해 실시 예는 의미가 정확하지 않은 연산자 수준의 함수들은 필터링하고 정보량이 임계 치 보다 작은 함수들 도 분석 대상에서 제거할 수 있다. 함수들의 필터링의 여부와 정도는 실시 예에 따라 다르게 설정할 수 있다. In order to increase analysis performance and processing speed, the embodiment may filter out operator-level functions whose semantics are not accurate, and may also remove functions whose amount of information is smaller than a critical value from analysis targets. Whether or not to filter functions and the degree of filtering may be set differently according to embodiments.
실시 예는 함수에 따라 정리된 OP-CODE 로부터 디스어셈블러가 출력 시 제공하는 주석 데이터를 제거할 수 있다. 그리고 실시 예는 디스어셈블된 코드를 재배열할 수 있다. The embodiment may remove annotation data provided by the disassembler when outputting from the OP-CODE organized according to the function. And the embodiment may rearrange the disassembled code.
예를 들면, 디스어셈블러가 출력하는 디스어셈블된 코드는 [ASM-CODE, OP-CODE, 파라미터]의 순서를 가질 수 있다. For example, the disassembled code output by the disassembler may have the order of [ASM-CODE, OP-CODE, parameters].
실시 예는 어셈블리 데이터로부터 파라미터 데이터를 제거하고 위 순서의 디스어셈블된 코드를 [OP-CODE, ASM-CODE] 순서로 재정리 또는 재구성할 수 있다. 이렇게 재정된 디스어셈블된 코드는 정규화 또는 벡터화하여 처리하기 용이하다. 그리고 처리 속도를 현격하게 높일 수 있다.In an embodiment, parameter data may be removed from assembly data, and disassembled codes in the above order may be rearranged or reconstructed in the order of [OP-CODE, ASM-CODE]. The reorganized disassembled code is easy to process by normalizing or vectorizing. And the processing speed can be significantly increased.
특히 [OP-CODE, ASM-CODE] 의 조합을 가지는 디스어셈블된 코드 중 ASM-CODE 부분은 데이터의 길이가 달라 서로 비교하기 용이하지 않다. 따라서 해당 어셈블리 데이터의 고유성을 확인하기 위해서 데이터를 특정 크기의 데이터 포맷으로 정규화시킬 수 있다. 예를 들면 실시 예는 [OP-CODE, ASM-CODE] 조합의 디스어셈블된 코드의 고유성을 확인하기 위해서 데이터 부분을 정규화하기 용이한 특정 길이의 데이터 세트, 예를 들면 CRC(cyclic redundancy check) 데이터로 변환시킬 수 있다. In particular, among the disassembled codes having a combination of [OP-CODE and ASM-CODE], it is not easy to compare ASM-CODE parts with different data lengths. Therefore, in order to confirm the uniqueness of the corresponding assembly data, data can be normalized into a data format of a specific size. For example, the embodiment is a data set of a specific length that is easy to normalize the data part in order to confirm the uniqueness of the disassembled code of the [OP-CODE, ASM-CODE] combination, for example, CRC (cyclic redundancy check) data can be converted to
일 예로서 [OP-CODE, ASM-CODE] 조합의 디스어셈블된 코드에서 OP-CODE 부분은 제 1 길이의 CRC 데이터로, ASM-CODE 부분은 제 2 길이의 CRC 데이터로 각각 변환하는 것도 가능하다. As an example, in the disassembled code of [OP-CODE, ASM-CODE] combination, it is also possible to convert the OP-CODE part into CRC data of the first length and the ASM-CODE part into CRC data of the second length, respectively. .
OP-CODE와 ASM-CODE 변환된 정규화 데이터는 각각 해당 변환 이전의 각각 코드의 고유성을 유지할 수 있도록 한다. 고유성을 가지고 변환된 정규화 데이터의 유사도 판단 속도를 빠르게 하기 위해 상기 정규화된 데이터를 벡터화(Vectorization)를 수행할 수 있다. The normalized data converted into OP-CODE and ASM-CODE enables the uniqueness of each code before the corresponding conversion to be maintained. In order to speed up the similarity determination of the normalized data converted with uniqueness, vectorization may be performed on the normalized data.
설명한 바와 같이 데이터 변환 과정으로서 정규화 또는 벡터화 과정은 데이터 처리 속도를 높이고 데이터의 정확한 분석을 선택적으로 적용될 수도 있다.As described above, the normalization or vectorization process as a data conversion process may increase data processing speed and may be selectively applied for accurate analysis of data.
정규화 과정과 벡터화 과정의 상세한 예는 다시 아래에서 상세히 개시한다.Detailed examples of the normalization process and the vectorization process are disclosed in detail again below.
제 3단계로서 디스어셈블드 코드를 분석하는 데이터의 분석과정을 상세히 설명하면 다음과 같다. As a third step, the data analysis process of analyzing the disassembled code will be described in detail.
이 과정에서도 데이터 처리 속도를 높이고 데이터의 정확한 분석을 위해 여러 가지 데이터 형식의 변환이 사용될 수 있는데, 아래 개시하는 기술된 변환 방식들은 모두 적용할 필요없이 그 중 일부를 선택적으로 적용할 수 있다.Even in this process, conversion of various data formats can be used to increase data processing speed and accurately analyze data, and some of the conversion methods described below do not need to be applied, and some of them can be selectively applied.
이러한 변환된 데이터에 기초하여 변환된 디스어셈블드 코드 내의 함수 별 데이터 세트를 기반으로 악성 코드와 유사도를 분석하는 단계이다.This step is to analyze the degree of similarity with the malicious code based on the data set for each function in the converted disassembled code based on the converted data.
실시 예는 코드 간 유사도를 수행하기 위해 벡터화된 OP-CODE 와 ASM-CODE의 데이터 세트들을 바이트 데이터로 다시 변환할 수 있다. The embodiment may convert vectorized data sets of OP-CODE and ASM-CODE back into byte data in order to perform similarity between codes.
재변환된 바이트 데이터를 기반으로 블록 단위의 해쉬 값을 추출하고 블록 단위의 고유 값을 기반으로 전체 데이터의 해쉬 값을 생성할 수 있다. Based on the reconverted byte data, a hash value in block units can be extracted, and a hash value for all data can be generated based on a unique value in block units.
해쉬 값은 바이트 데이터의 부분인 블록 단위의 비교를 효율적으로 수행하기 위해서 각 블록 단위의 고유 값을 추출하도록 지정된 단위의 해쉬 값을 추출하여 비교할 수 있다. The hash value may be compared by extracting a hash value of a unit designated to extract a unique value of each block unit in order to efficiently perform comparison in block units, which are part of byte data.
이와 같이 지정된 단위의 해쉬 값을 추출하고 2개 이상의 데이터의 유사도를 비교하기 위해 퍼지 해쉬(Fuzzy Hashing) 기법이 사용될 수 있다. 예를 들면 실시 예는 퍼지 해쉬(Fuzzy Hashing) 중 CTPH(Context Triggered Piecewise Hashing) 방식을 사용하여 블록 단위로 추출된 해쉬 값과 기 저장된 악성 코드 중 일부 단위의 해쉬 값을 서로 비교하여 유사도를 판단할 수 있다. In this way, a fuzzy hashing technique may be used to extract a hash value of a designated unit and compare similarities between two or more pieces of data. For example, in the embodiment, CTPH (Context Triggered Piecewise Hashing) method among fuzzy hashing is used to determine similarity by comparing hash values extracted in block units with hash values of some units of previously stored malicious codes. can
정리하면 실시 예는 OP-CODE 및 ASM-CODE의 조합 코드가 특정 기능을 함수 단위로 구현한다는 사실에 기반하여, 각 특정 기능의 고유성을 확인하기 위해서 OP-CODE 와 ASM-CODE의 디스어셈블된 코드의 고유 값을 생성한다. 그리고 이 고유 값을 기반으로 디스어셈블된 코드의 OP-CODE와 ASM-CODE중 블록 단위의 고유 값을 추출하여 유사도 연산을 수행할 수 있다. In summary, the embodiment is based on the fact that the combination code of OP-CODE and ASM-CODE implements a specific function in a function unit, in order to confirm the uniqueness of each specific function, the disassembled code of OP-CODE and ASM-CODE generate a unique value of Based on this unique value, similarity calculation can be performed by extracting the unique value of each block from the OP-CODE and ASM-CODE of the disassembled code.
블록 단위의 해쉬 값을 추출 하는 상세한 예도 아래에서 도면을 참조하여 개시하도록 한다. A detailed example of extracting a hash value in block units will also be disclosed with reference to the drawings below.
설명한 바와 같이 실시 예는 유사도 연산을 수행할 경우 블록 단위 해쉬 값을 이용할 수 있다. As described, the embodiment may use a hash value in units of blocks when similarity calculation is performed.
추출된 블록 단위 해쉬 값은 String Data (Byte Data) 로 구성되어 있고 String Data (Byte Data)는 수치화 값들로 코드 간의 유사도를 비교할 수 있다. 만약 수십억 개의 디스어셈블된 코드 데이터 세트의 바이트 비교를 수행하면 하나의 유사도 결과를 얻는데 엄청난 시간을 소비할 수 있다. The extracted block unit hash value is composed of String Data (Byte Data), and String Data (Byte Data) is a numerical value, and similarity between codes can be compared. If you perform byte comparisons of billions of disassembled code data sets, you can spend a lot of time getting a single similarity result.
따라서 실시 예는 String Data (Byte Data)는 수치화 값으로 변환할 수 있는데 이러한 수치화 값에 기반하면 인공지능 기술을 활용해 유사도 분석을 빠르게 수행할 수 있다. Therefore, in the embodiment, String Data (Byte Data) can be converted into numerical values. Based on these numerical values, similarity analysis can be quickly performed using artificial intelligence technology.
실시 예는 추출된 블록 단위의 해쉬 값의 String Data (Byte Data) 를 N-gram 데이터 기반으로 벡터화시킬 수 있다. 이 도면의 실시 예는 연산 속도를 높이기 위해 블록 단위의 해쉬 값을 2-gram 데이터로 벡터화 수행하는 경우를 예시한다. 그런데 실시 예는 블록 단위의 해쉬 값을 반드시 2-gram 데이터로 변환할 필요는 없으며 3-gram, 4-gram,…, N-gram의 데이터로 벡터화 변환하는 것도 가능하다. N-gram의 데이터에서 N이 증가할수록 데이터의 특성을 정확하게 반영할 수 있지만 데이터의 처리 시간의 속도가 증가한다. In an embodiment, String Data (Byte Data) of hash values in units of extracted blocks may be vectorized based on N-gram data. The embodiment of this figure illustrates a case of performing vectorization of hash values in units of blocks into 2-gram data in order to increase the operation speed. However, in the embodiment, it is not necessary to convert the hash value in block units into 2-gram data, but 3-gram, 4-gram, ... , it is also possible to vectorize and convert to N-gram data. In N-gram data, as N increases, the characteristics of data can be accurately reflected, but the speed of data processing increases.
기술한 바와 같이 데이터 처리 속도를 높이고 데이터의 정확한 분석을 위해 바이트 변환, 해쉬의 변환 및 아래의 N-gram 변환은 선택적으로 적용할 수 있다.As described above, byte conversion, hash conversion, and N-gram conversion below can be selectively applied to increase data processing speed and accurately analyze data.
예시한 2-gram 변환 데이터는 최대 65,536 차원을 가진다. 학습 데이터의 차원이 높아질수록, 데이터의 분포가 희박해(sparse)지며, 이에 따라 분류 성능에 악영향을 끼칠 수 있다. 그리고 학습 데이터의 차원이 높아지면 데이터를 학습하기 위한 시간 복잡도와 공간 복잡도가 증가한다. The illustrated 2-gram conversion data has a maximum dimension of 65,536. As the dimension of training data increases, the distribution of data becomes sparse, which may adversely affect classification performance. In addition, as the dimension of the training data increases, the time complexity and space complexity for learning the data increase.
이러한 문제점을 해결하기 위해 실시 예는 다양한 텍스트 표현 기반의 여러 가지 자연어 처리 알고리즘으로 처리할 수 있다. 이 실시 예에서는 이러한 알고리즘으로 TF-IDF(Term Frequency-Inversed Document Frequency) 기법을 예로 하여 설명한다. In order to solve this problem, the embodiment can be processed with various natural language processing algorithms based on various text expressions. In this embodiment, a TF-IDF (Term Frequency-Inversed Document Frequency) technique will be described as an example of such an algorithm.
이 단계의 학습 데이터의 유사도를 처리하기 위한 일 예로서, 고차원 데이터 중에서 공격 식별자 또는 클래스(T-ID)를 판단할 경우 의미 있는 특징(패턴)을 선택하기 위해 TF-IDF(Term Frequency-Inversed Document Frequency) 기법을 사용할 수 있다. 일반적으로, TF-IDF 기법은 검색 엔진에서 유사도가 높은 문서를 찾기 위해 사용되는데 이를 계산하는 수학식들은 다음과 같다. As an example for processing the similarity of the learning data in this step, TF-IDF (Term Frequency-Inversed Document) frequency) technique can be used. In general, the TF-IDF technique is used to find documents with high similarity in search engines, and the equations for calculating this are as follows.
여기서 는 특정 문서 에서 특정 단어 의 빈도율을 의미하고 그 단어가 반복적으로 나올수록 높은 값을 갖는다. here is a specific document specific words in It means the frequency rate of and has a higher value as the word appears repeatedly.
는 특정 단어 를 포함하는 문서 의 비율의 역수 값으로, 단어가 여러 문서에서 흔하게 나타날수록 낮은 값을 갖는다. is a specific word document containing The reciprocal value of the ratio of , the lower the value the more common the word appears in multiple documents.
는 와 를 곱한 값으로, 어떤 단어가 어떤 문서에 더 적합한지 수치화시킬 수 있다. Is and , it is possible to quantify which word is more suitable for which document.
TF-IDF 방식은 수학식 1에 의한 단어의 빈도와 수학식 2에 의한 역문서빈도 (문서의 빈도에 특정한 역수)를 이용하여 수학식 3과 같이 문서 단어 행렬 내의 단어의 중요도에 따라 가중치를 반영하는 하는 방식이다. The TF-IDF method uses the frequency of words according to
실시 예에서 블록 단위의 코드 상의 단어의 특징 또는 패턴에 기반하여 해당 단어가 포함된 문서를 공격 식별자(T-ID)라고 추론할 수 있다. 따라서, 블록 단위의 코드로부터 추출된 패턴에 대해서 TF-IDF를 계산하면, 특정 공격 식별자(T-ID) 내에서 빈번하게 나타나는 패턴을 추출하거나 또는 특정 공격 식별자(T-ID)와 관련 없는 패턴을 가지는 코드를 제거할 수 있다. In an embodiment, a document including a corresponding word may be inferred as an attack identifier (T-ID) based on a word characteristic or pattern on a block unit code. Therefore, if TF-IDF is calculated for the pattern extracted from the block-level code, a pattern that appears frequently within a specific attack identifier (T-ID) is extracted or a pattern that is not related to a specific attack identifier (T-ID) is extracted. The code can be removed.
예를 들어, 특정 패턴 A는 모든 공격 식별자(T-ID)들에서 발현되는 패턴이라고 했을 때, 특정 패턴 A에 대한 TF-IDF 값은 낮게 측정될 것이다. 그리고 이러한 패턴은 실제 공격 식별자(T-ID)를 구분하기 위해 불필요한 패턴임을 판단할 수 있다. TF-IDF와 같은 자연어의 유사도 판단을 위한 알고리즘은 머신 러닝 알고리즘의 학습을 통해 수행될 수도 있다. For example, assuming that a specific pattern A is a pattern expressed in all attack identifiers (T-IDs), the TF-IDF value for the specific pattern A will be measured low. In addition, it may be determined that such a pattern is an unnecessary pattern in order to distinguish an actual attack identifier (T-ID). An algorithm for determining the similarity of natural language, such as TF-IDF, may be performed through learning of a machine learning algorithm.
실시 예는 이러한 불필요한 패턴을 제거하여 불필요한 연산을 줄이고 추론 시간을 단축시킬 수 있다.The embodiment can reduce unnecessary calculations and reduce reasoning time by removing such unnecessary patterns.
상세하게 실시 예는 변환되어 블록 단위 코드의 데이터에 대해, 여러 가지 자연어 처리의 텍스트 표현에 기초한 유사도 알고리즘을 수행할 수 있다. 유사도 알고리즘을 통해 공격 식별자와 관련이 없는 패턴의 코드는 제거하여 아래 수행되는 알고리즘 수행과 머신 러닝에 따른 분류 과정의 수행을 크게 단축시킬 수 있다. In detail, the embodiment may perform a similarity algorithm based on text representations of various natural language processing on data of block-by-block code after conversion. Through the similarity algorithm, patterns of codes that are not related to the attack identifier can be removed, greatly shortening the algorithm performed below and the classification process according to machine learning.
실시 예는 블록 단위의 코드 상의 특징 또는 패턴을 기반하여 공격 식별자의 패턴을 분류하기 위해 분류 모델링을 수행할 수 있다. 실시 예는 벡터화된 블록 단위의 코드 특징 또는 패턴이 알려진 공격 식별자의 패턴인지를 학습하고, 이를 정확한 공격 기법이나 구현방식으로 분류할 수 있다. 실시 예는 악성 코드와 유사한 코드 패턴이 있다고 판단된 코드에 대해 정확한 공격 구현 방식, 즉 공격 식별자와 공격자를 분류를 위해 여러 가지 앙상블 머신 러닝 모델들을 이용한다. The embodiment may perform classification modeling to classify patterns of attack identifiers based on features or patterns on code in units of blocks. The embodiment can learn whether a vectorized block-based code feature or pattern is a pattern of a known attack identifier, and classify it into an accurate attack technique or implementation method. The embodiment uses various ensemble machine learning models to classify an accurate attack implementation method, that is, an attack identifier and an attacker, for a code determined to have a code pattern similar to a malicious code.
앙상블 머신 러닝 모델들은 준비된 데이터를 여러 개의 분류 노드들을 생성하고 각 분류 노드의 대한 노드의 예측을 결합하여 정확한 예측을 수행하는 기법이다. 위에서 설명한 바와 같이 블록 단위의 코드 상의 단어의 특징 또는 패턴이 어떤 공격 구현 방식인지, 즉 공격 식별자 또는 공격자인지 분류하는 앙상블 머신 러닝 모델들을 수행한다. Ensemble machine learning models are techniques that generate multiple classification nodes from prepared data and perform accurate predictions by combining predictions of the nodes for each classification node. As described above, ensemble machine learning models are performed to classify the characteristics or patterns of words in the code of each block as an attack implementation method, that is, an attack identifier or an attacker.
앙상블 머신 러닝 모델들을 적용 시에 과탐과 오탐을 방지하기 위해 준비된 데이터의 분류를 위한 임계 값을 설정할 수 있다. 설정된 탐지 임계 값 이상의 데이터들만 분류하고 설정된 탐지 임계 값에 도달하지 못하는 데이터는 분류 수행을 하지 않을 수 있다. A threshold value for classification of prepared data may be set to prevent over- and false-positives when ensemble machine learning models are applied. Only data that exceeds the set detection threshold may be classified, and data that does not reach the set detection threshold may not be classified.
기술 바와 같이 데이터 처리 속도를 높이고 데이터의 정확한 분석을 위해 여러 가지 데이터 형식의 변환이 사용될 수 있다. 위에서 기술한 데이터 변환 방식 중 As described above, conversion of various data formats may be used to speed up data processing and accurately analyze data. Among the data conversion methods described above,
이러한 앙상블 머신 러닝 모델들을 적용하는 대한 구체적인 실시 예는 아래의 이하에서 다시 상세히 설명한다.A specific embodiment of applying these ensemble machine learning models will be described in detail below.
제 4단계로서 공격 기법(TTP)을 식별하여 라벨링을 부여하는 프로파일링 하는 과정을 설명하면 다음과 같다. As the fourth step, the profiling process of identifying and labeling attack techniques (TTP) is as follows.
이미 분석된 공격 코드 또는 악성 코드에 기반하여 입력된 바이너리 데이터의 OP-CODE와 ASM-CODE를 포함하는 디스어셈블드 코드의 특징 추출을 통해 벡터화시키는 예를 위에서 기술하였다.An example of vectorization through feature extraction of disassembled code including OP-CODE and ASM-CODE of input binary data based on already analyzed attack code or malicious code has been described above.
이렇게 벡터화된 데이터는 머신 러닝 모델링을 통해 학습된 후 특정 공격 기법으로 분류되고 분류된 코드들은 프로파일링 과정에서 상기 분류된 데이터의 라벨링이 수행된다.After the vectorized data is learned through machine learning modeling, it is classified as a specific attack technique, and the classified codes are labeled with the classified data in a profiling process.
라벨링은 크게 두 부분에 수행될 수 있는데 하나는 표준화된 모델에서 정의한 공격 식별자에 대한 고유 인덱스를 붙이는 것이고 다른 하나는 공격 코드를 작성한 사용자에 대한 정보를 기입하는 것이다. Labeling can be performed in two parts. One is to attach a unique index to the attack identifier defined in the standardized model, and the other is to write information about the user who wrote the attack code.
라벨링은 표준화된 모델, 예를 들면 MITRE ATT&CK에서 반영된 공격 식별자(T-ID)에 따라 부여하도록 하여 추가적인 작업 없이 사용자에게 정확한 정보를 전달할 수 있도록 한다. Labeling is assigned according to a standardized model, for example, an attack identifier (T-ID) reflected in MITER ATT&CK, so that accurate information can be delivered to users without additional work.
그리고 라벨링은 공격 식별자뿐만 아니라 해당 공격 식별자를 구현한 공격자를 구별할 수 있도록 부여된다. 따라서 공격 식별자뿐만 아니라 공격자와 그에 따른 구현 방식을 식별할 수 있도록 제공할 수 있다. And labeling is given to distinguish not only the attack identifier but also the attacker who implemented the attack identifier. Therefore, it can be provided to identify not only the attack identifier but also the attacker and its implementation method.
실시 예는 기존에 분류된 디스어셈블된 코드(OP-CODE, ASM-CODE, 또는 그 조합)의 데이터 세트를 학습한 데이터를 기반으로 고도화된 프로파일링이 가능한다. 실시 예는 위에서 개시한 정적 분석, 동적 분석, 또는 연관 분석의 데이터도 라벨링을 수행하는 참고 데이터로 활용할 수 있다. 따라서 기존에 분석되지 않은 데이터 세트라고 하더라도 정적, 동적, 및 연관 분석의 결과를 함께 고려하면 매우 빠르고 효율적으로 프로파일링 데이터를 확보할 수 있다.In the embodiment, advanced profiling is possible based on data learned from a data set of previously classified disassembled codes (OP-CODE, ASM-CODE, or a combination thereof). In the embodiment, the data of the static analysis, dynamic analysis, or association analysis disclosed above may also be used as reference data for performing labeling. Therefore, even for data sets that have not been previously analyzed, profiling data can be obtained very quickly and efficiently by considering the results of static, dynamic, and association analysis together.
위에서 3단계의 악성 코드와 유사한 패턴을 가지는 코드를 학습하고 학습된 데이터가 분류되는 과정과 4단계의 분류된 데이터의 프로파일링 과정은 머신 러닝에 알고리즘에 의해 함께 진행될 수 있다. The process of learning a code having a pattern similar to the malicious code in
이에 대한 상세한 예는 아래에서 개시한다. 그리고 프로파일링된 데이터 세트의 실제 예도 아래에서 도면을 참고하여 예시하도록 한다.A detailed example of this is disclosed below. In addition, an actual example of the profiled data set will be illustrated with reference to the drawings below.
도 22는 개시하는 실시 예의 데이터 변환의 일 예로서 디스어셈블드 코드의 OP-CODE 및 ASM-CODE를 정규화된 코드로 변환한 값을 예시한 도면이다. 22 is a diagram illustrating values obtained by converting OP-CODE and ASM-CODE of disassembled codes into normalized codes as an example of data conversion according to the disclosed embodiment.
설명한 바와 같이 실행 파일의 디스어셈블링을 수행하면 OP-CODE 및 ASM-CODE가 결합된 데이터가 출력된다. As described above, if the execution file is disassembled, OP-CODE and ASM-CODE combined data is output.
실시 예는 디스어셈블링된 데이터로부터 함수 별로 출력되는 주석 데이터를 제거하고 처리가 용이하도록 OP-CODE, ASM-CODE, 및 대응 파라미터의 배치 순서를 변경할 수 있다. The embodiment may remove annotation data output for each function from disassembled data and change the arrangement order of OP-CODE, ASM-CODE, and corresponding parameters to facilitate processing.
재구성된 OP-CODE와 ASM-CODE를 정규화된 코드 데이터로 변경하는데, 이 도면의 예는 정규화된 코드 데이터로 CRC 데이터를 예시한다. The reconstructed OP-CODE and ASM-CODE are changed into normalized code data, and the example in this figure illustrates CRC data as normalized code data.
일 예로 OP-CODE는 CRC-16로 변환하고 ASM-CODE로 CRC-32로 변환할 수 있다. For example, OP-CODE can be converted into CRC-16 and ASM-CODE can be converted into CRC-32.
예시한 표의 첫 번째 행에서 OP-CODE의 push함수를 0x45E9의 CRC-16 데이터로 변경하고, ASM-CODE의 55를 0xC9034AF6의 CRC-32 데이터로 변경한 것을 예시한다. In the first row of the illustrated table, the OP-CODE push function is changed to CRC-16 data of 0x45E9, and 55 of ASM-CODE is changed to CRC-32 data of 0xC9034AF6.
두 번째 행에서는 OP-CODE의 mov함수를 0x10E3의 CRC-16 데이터로 변경하고, ASM-CODE의 8B EC 를 0x3012FD2C의 CRC-32 데이터로 변경하였다. 세 번째 행에서는 OP-CODE의 lea함수를 0xAACE의 CRC-16 데이터로 변경하고, ASM-CODE의 8D 45 0C를 0x9214A6AA의 CRC-32 데이터로 변경하였다. In the second row, the mov function of OP-CODE is changed to CRC-16 data of 0x10E3, and 8B EC of ASM-CODE is changed to CRC-32 data of 0x3012FD2C. In the third row, the lea function of OP-CODE is changed to CRC-16 data of 0xAACE, and
네 번째 행에서 OP-CODE의 push함수를 0x45E9의 CRC-16 데이터로 변경하고, ASM-CODE의 50를 0xB969BE79의 CRC-32 데이터로 변경한 것을 예시한다. In the fourth row, it is exemplified that the push function of OP-CODE is changed to CRC-16 data of 0x45E9 and 50 of ASM-CODE is changed to CRC-32 data of 0xB969BE79.
이 예와 다르게 CRC 데이터와 다른 다른 정규화 코드 데이터나 길이가 다른 코드 데이터를 사용할 수도 있다. Unlike this example, other normalization code data different from CRC data or code data having a different length may be used.
이렇게 디스어셈블링된 코드를 정규화된 코드로 변경하면 각 코드의 고유성을 확보하면서 이후의 연산, 유사도 산출 및 벡터화 수행을 용이하게 빠르게 수행할 수 있다. If the disassembled code is changed into a normalized code, the subsequent calculation, similarity calculation, and vectorization can be performed easily and quickly while securing the uniqueness of each code.
도 23은 개시하는 실시 예의 데이터 변환의 일 예로서 디스어셈블드 코드의 OP-CODE 및 ASM-CODE의 벡터화된 값을 예시한 도면이다.23 is a diagram illustrating vectorized values of OP-CODE and ASM-CODE of disassembled codes as an example of data conversion according to the disclosed embodiment.
이 도면에서는 정규화된 OP-CODE 의 코드(위의 예에 따르면 CRC-16)와 정규화된 ASM-CODE (위의 예에 따르면 CRC-32)를 각각 벡터화시킨 결과를 예시한다. In this figure, a result of vectorizing a normalized OP-CODE code (CRC-16 according to the above example) and a normalized ASM-CODE (CRC-32 according to the above example) is illustrated.
정규화된 OP-CODE 의 코드를 벡터화한 값(OP-CODE Vector)와 정규화된 ASM-CODE의 코드를 벡터화한 값(ASM-CODE Vector)을 이 도면에 표 형식으로 나타내었다. The vectorized value of the normalized OP-CODE code (OP-CODE Vector) and the vectorized value of the normalized ASM-CODE code (ASM-CODE Vector) are shown in tabular form in this figure.
이 도면의 각 행의 OP-CODE Vector 값과 ASM-CODE Vector 값은 각각 도 22의 각 행의 OP-CODE의 정규화 값과 ASM- CODE의 정규화 값에 대응된다. The OP-CODE Vector value and the ASM-CODE Vector value of each row in this figure correspond to the OP-CODE normalization value and the ASM-CODE normalization value of each row in FIG. 22, respectively.
예를 들어, 도 22의 표의 네 번째 행의 CRC 데이터 0x45E9와 0xB969BE79의 벡터화 값들은 각각 이 도면의 표의 네 번째 행의 17897와 185 105 121 44이 된다. For example, the vectorized values of CRC data 0x45E9 and 0xB969BE79 in the fourth row of the table of FIG. 22 become 17897 and 185 105 121 44 of the fourth row of the table of this figure, respectively.
이렇게 정규화된 데이터에 대해 벡터화를 수행하면 디스어셈블링된 OP-CODE의 함수와 ASM-CODE가 각각 고유 특징을 포함하면서 벡터화 값으로 변화된다.When vectorization is performed on the normalized data, the disassembled OP-CODE function and ASM-CODE are converted into vectorized values while including unique features.
도 24는 개시하는 실시 예의 데이터 변환의 일 예로서 코드의 블록 단위를 해쉬 값으로 변환하는 예를 개시한 도면이다. 24 is a diagram illustrating an example of converting a code block unit into a hash value as an example of data conversion according to the disclosed embodiment.
유사도 분석을 수행하기 위해서 벡터화된 각 OP-CODE 및 ASM-CODE 의 데이터 세트는 바이트 데이터 형태로 재변환이 수행된다. 재변환된 바이트 데이터는 블록 단위의 해쉬 값으로 변환될 수 있다. 그리고 다시 블록 단위의 해쉬 값들에 기반하여 전체 재변환된 바이트 데이터의 해쉬 값을 생성한다. To perform similarity analysis, vectorized OP-CODE and ASM-CODE data sets are reconverted into byte data form. The reconverted byte data may be converted into a hash value in units of blocks. Then, a hash value of the entire reconverted byte data is generated based on the hash values in block units.
실시 예는 재변환된 해쉬 값을 산출하는데 MD5(Message-Digest algorithm 5), SHA1 (Secure Hash Algorithm 1), SHA 256이 등의 해쉬 값을 사용될 수도 있는데, 데이터 사이의 유사도 판단을 위한 퍼지 해쉬(Fuzzy Hash) 함수를 이용할 수 있다. In the embodiment, hash values such as MD5 (Message-Digest algorithm 5), SHA1 (Secure Hash Algorithm 1), and
이 도면의 표에서 첫 번째 행은 데이터에 포함될 수 있는 사람이 가독할 수 있는 character를 나타낸다. 재변환된 바이트 데이터 중 블록 단위에 포함되는 값은 이와 같은 가독성의 character들을 포함할 수 있다.In the table of this figure, the first row represents a human-readable character that may be included in the data. Among the reconverted byte data, values included in block units may include such readable characters.
각 character들은 두 번째 행의 아스키 값(ascii val)인 97, 98, 99, 100, …., 48, 49에 대응될 수 있다. Each character is 97, 98, 99, 100, … which is the ASCII value of the second row. ., 48, 49 may correspond.
첫 번째 행의 character 값들을 포함하는 데이터를 세그먼트하여 아스키 값들의 합산이 가능한 블록으로 분리할 수 있다.Data including the character values of the first row can be segmented and divided into blocks that can be summed with ASCII values.
표의 세 번째 행은 4개의 character 를 가지는 블록 단위 내에서 각 character 값에 대응되는 아스키 값의 합산 값을 나타낸다. The third row of the table shows the sum of ASCII values corresponding to each character value within a block unit with 4 characters.
첫 번째 블록의 경우 그 블록 내 character 에 대응되는 아스키 값(ascii val) 97, 98, 99, 100의 합(ascii sum)인 394의 값을 가질 수 있다. In the case of the first block, it can have a value of 394, which is the sum of ASCII values (ascii val) 97, 98, 99, and 100 corresponding to characters in the block.
그리고 마지막 행은 블록 단위의 아스키 값의 합이 Base 64의 표현으로 변환된 경우를 나타낸다. 문자(letter) K는 첫 번째 블록의 합산이 된다. And the last row shows the case where the sum of ASCII values in block units is converted to
이러한 방식으로 해당 데이터에 대해 Kaq6KaU라는 시그니처를 얻을 수 있다. In this way, the signature Kaq6KaU can be obtained for the corresponding data.
이러한 시그니처를 기반으로 두 개의 블록 단위 데이터에 대한 유사도를 산출할 수 있다. Based on these signatures, it is possible to calculate the degree of similarity between two pieces of block unit data.
이 실시 예는 재변환된 바이트 데이터 중 코드에 포함된 블록 단위들에 대해 유사도 판단을 위한 퍼지 해쉬 함수로 해쉬 값을 산출하고, 산출된 해쉬 값들을 기반으로 유사도를 판단할 수 있다. 유사도 판단을 위한 퍼지 해쉬 함수로 CTPH(Context Triggered Piecewise Hashing)를 예시하였으나 데이터의 유사도를 산출할 수 있는 다른 퍼지 해쉬 함수를 사용하는 것도 가능하다. This embodiment can calculate hash values for block units included in codes among reconverted byte data using a fuzzy hash function for determining similarity, and determine similarity based on the calculated hash values. Although CTPH (Context Triggered Piecewise Hashing) is exemplified as a fuzzy hash function for determining similarity, it is also possible to use other fuzzy hash functions that can calculate the similarity of data.
도 25는 개시하는 실시 예에 따른 앙상블 머신 러닝 모델의 일 예를 나타낸 도면이다. 25 is a diagram illustrating an example of an ensemble machine learning model according to the disclosed embodiment.
실시 예는 앙상블 머신 러닝 모델을 이용하여 악성 코드로 판단되는 파일의 공격 식별자(T-ID)를 정확하게 분류할 수 있다.The embodiment can accurately classify the attack identifier (T-ID) of a file determined to be malicious code using an ensemble machine learning model.
String Data (Byte Data)로 구성된 블록 단위를 해쉬 값은 N-gram 특징 정보 기반으로 수치화시킨 후 이것이 공격 식별자(T-ID) 또는 분류될 클래스인지를 판단하기 위해 TF-IDF 등의 기법으로 유사도를 계산할 수 있다. Block units composed of String Data (Byte Data) are digitized based on N-gram feature information for hash values, and then similarity is evaluated using techniques such as TF-IDF to determine whether this is an attack identifier (T-ID) or a class to be classified. can be calculated
불필요한 연산을 줄여 공격 기법 식별의 성능을 높이기 위해 실시 예는 위 해쉬 값 중 유사도를 기반으로 불필요한 패턴을 제거할 수 있다. In order to improve the performance of attack technique identification by reducing unnecessary calculations, an embodiment may remove unnecessary patterns based on similarity among the hash values.
그리고 불필요한 패턴이 제거된 데이터를 앙상블 머신 러닝을 통해 모델링하여 공격 식별자를 분류할 수 있다.In addition, the attack identifier can be classified by modeling the data from which unnecessary patterns have been removed through ensemble machine learning.
앙상블 머신 러닝 모델의 여러 개의 분류 노드의 학습 결과들을 결합하기는 방식으로 보팅(Voting), 배깅(Bagging), 부스팅(Booting) 등의 방식이 있다 이러한 방식들을 적절히 조합한 앙상블 머신 러닝 모델은 학습 데이터의 분류 정확도를 높이는데 기여할 수 있다. There are methods such as voting, bagging, and boosting that combine the learning results of multiple classification nodes of an ensemble machine learning model. An ensemble machine learning model that properly combines these methods can contribute to improving the classification accuracy of
여기서는 일 예로서 배깅 방식의 랜덤 포레스트(Random Forest) 방식을 적용하는 경우를 예를 들어 공격 식별자를 보다 정확하게 분류하는 방법을 설명한다. Here, as an example, a method of more accurately classifying an attack identifier will be described, taking a case in which a random forest method of a bagging method is applied.
랜덤 포레스트(Random Forest) 방식은 많은 수의 디시전 트리(Decision Tree) 생성하여 단일 디시전 트리에 의한 분류 오류를 낮추고 일반화된 분류 결과를 얻는 방식이다. 실시 예는 준비된 데이터에 대해 적어도 하나 이상의 디시전 트리(Decision Tree)를 이용한 랜덤 포레스트(Random Forest) 학습 알고리즘을 적용할 수 있다. 여기서 준비된 데이터는 블록 단위의 퍼지 해쉬 값으로부터 불필요한 패턴이 제거된 데이터를 의미한다.The random forest method generates a large number of decision trees to reduce classification errors by a single decision tree and obtain generalized classification results. An embodiment may apply a random forest learning algorithm using at least one decision tree to prepared data. Here, the prepared data means data from which unnecessary patterns are removed from the fuzzy hash value in units of blocks.
블록 단위 해쉬 값의 유사도 판단을 위해 적어도 하나 이상의 노드를 가진 디시전 트리(Decision Tree)모델을 수행한다. 디시전 트리(Decision Tree)의 정보 획득(information gain) 정도에 따라 1개 이상의 클래스(공격 식별자; T-ID)를 구분할 수 있는 특징 값(여기서는 블록 단위 해쉬 값을 기초로 한 분류 패턴의 발현 개수)에 대해 비교 조건을 최적화할 수 있다. To determine the similarity of hash values in block units, a decision tree model with at least one node is performed. Characteristic values that can distinguish one or more classes (attack identifier; T-ID) according to the degree of information gain of the decision tree (here, the number of occurrences of classification patterns based on hash values in block units) ), the comparison condition can be optimized.
이를 위해 도면에서 예시한 바와 같은 디시전 트리(Decision Tree)를 생성할 수 있다. To this end, a decision tree as illustrated in the drawing may be created.
이 도면에서 위 쪽의 사각형(2510, 2520, 2530, 2540)들은 인 터미널 노드로서 클래스를 구분하는 조건을 의미하고 아래 쪽의 사각형 부분(2610, 2620, 2630)은 터미널 노드로 분류되는 클래스를 의미한다. In this figure, the
예를 들어 랜덤 포레스트(Random Forest) 모델을 앙상블 머신 러닝 모델로 적용할 경우, 1개 이상의 디시전 트리(Decision Tree)를 이용하여 앙상블 기법을 사용하는 분류 모델이다. 랜덤 포레스트(Random Forest) 모델을 구성하는 디시전 트리(Decision Tree)의 입력 데이터의 특징을 다르게 하여 다양한 디시전 트리(Decision Tree)를 구성한다. 여러 개 생성된 디시전 트리(Decision Tree) 모델에 대해 분류를 수행하고 다수결 투표 기법을 사용하여 최종 분류 클래스를 결정한다. 각 노드의 테스트는 병렬적으로 진행될 수 있어 계산 효율이 높다.For example, when a random forest model is applied as an ensemble machine learning model, it is a classification model using an ensemble technique using one or more decision trees. Various decision trees are constructed by differentiating the characteristics of the input data of the decision tree constituting the random forest model. Classification is performed on several generated Decision Tree models, and the final classification class is determined using a majority voting technique. The test of each node can be performed in parallel, resulting in high computational efficiency.
클래스를 분류할 경우 과탐과 오탐을 방지하기 위해 임계값을 설정하고 하한 임계값 이하의 값은 버리고, 탐지 임계값 이상의 데이터 대상으로 분류를 수행할 수 있다.When classifying a class, a threshold value may be set to prevent over- and false-positives, values below the lower threshold value may be discarded, and classification may be performed with a data target above the detection threshold value.
도 26은 개시하는 실시 예에 따라 머신 러닝으로 데이터를 학습하고 분류하는 흐름을 예시한 도면이다. 26 is a diagram illustrating a flow of learning and classifying data through machine learning according to the disclosed embodiment.
입력 데이터의 프로파일링은 분류 단계(S2610)과 학습 단계(S2620)를 포함할 수 있다. Profiling of the input data may include a classification step (S2610) and a learning step (S2620).
실시 예에서 학습 단계(S2620)는 (a) 해쉬 값 추출 과정, (b) N-gram 패턴 추출 과정, (c) 자연어 처리 분석 (TF-IDF 분석) 과정, (d) 패턴 선택 과정, (e) 모델 학습 과정 등을 포함할 수 있다. In the embodiment, the learning step (S2620) is (a) hash value extraction process, (b) N-gram pattern extraction process, (c) natural language processing analysis (TF-IDF analysis) process, (d) pattern selection process, (e ) model learning process, etc.
그리고 실시 예에서 분류 단계(S2610)는, (a) 해쉬 값 추출 과정, (b) N-gram 패턴 추출 과정, (f) 패턴 선택 과정, (g) 벡터화에 의한 분류 과정 등을 포함할 수 있다. In the embodiment, the classification step (S2610) may include (a) a hash value extraction process, (b) an N-gram pattern extraction process, (f) a pattern selection process, (g) a classification process by vectorization, and the like. .
실시 예에 따른 프로파일링 단계 중 분류 단계(S2620)를 먼저 설명하면 다음과 같다. The classification step (S2620) of the profiling step according to the embodiment is first described as follows.
실행 파일 집합이나 처리된 파일로부터 입력 데이터를 수신한다.It receives input data from a set of executable files or from processed files.
데이터베이스에 저장된 실행 파일 집합들로부터 입력 데이터를 수신하거나 또는 위에서 예시한 처리 과정으로부터 전달되는 실행 파일이 포함된 입력 데이터를 수신한다. 입력 데이터는 OP-CODE 와 ASM-CODE 코드를 포함하는 디스어셈블된 코드를 변환시킨 데이터로 벡터화시킨 데이터일 수 있다. Input data is received from a set of executable files stored in the database, or input data including an executable file delivered from the process illustrated above is received. The input data may be vectorized data obtained by converting disassembled codes including OP-CODE and ASM-CODE codes.
입력 데이터인 디스어셈블된 코드로부터 퍼지 해쉬(Fuzzy Hash) 값을 추출(a)하고 특정 함수에 대한 N-gram 패턴 데이터를 추출한다(b). 이때 기존의 의미 패턴 집합 중 악성 코드와 유사하다고 판단한 패턴을 포함한 2-gram 의 패턴 데이터를 선택할 수 있다(f). A fuzzy hash value is extracted from the disassembled code, which is the input data (a), and N-gram pattern data for a specific function is extracted (b). At this time, among the existing semantic pattern sets, 2-gram pattern data including patterns determined to be similar to malicious codes can be selected (f).
선택한 패턴의 N-gram 데이터를 벡터화 데이터로 변환하고 벡터화 데이터를 의미가 패턴이 결정된 함수로 분류할 수 있다(g).The N-gram data of the selected pattern can be converted into vectorized data, and the vectorized data can be classified into a function whose meaning pattern is determined (g).
실시 예에 따른 프로파일링 단계 중 학습 단계(S2610)는 다음과 같이 수행된다. Among the profiling steps according to the embodiment, the learning step (S2610) is performed as follows.
만약 입력된 데이터가 새로운 파일이라면 입력 데이터인 디스어셈블된 코드로부터 퍼지 해쉬(Fuzzy Hash) 값을 추출한다(a).If the input data is a new file, a fuzzy hash value is extracted from the disassembled code, which is the input data (a).
추출된 퍼지 해쉬(Fuzzy Hash) 값을 N-gram 데이터(이 예에서는 2-gram)로 벡터화시킨다(b). The extracted fuzzy hash value is vectorized into N-gram data (2-gram in this example) (b).
추출된 특정 패턴에 대해 TF-IDF 와 같은 자연어 처리 분석을 수행한다(c)Perform natural language processing analysis such as TF-IDF on the extracted specific pattern (c)
기존의 공격 식별자(T-ID)와 관련된 패턴을 가지는 데이터 세트 중 유사도가 높은 데이터 세트를 선택하고 나머지는 필터링한다(d). 이때 기존의 의미 패턴 집합에 저장된 데이터 세트들과 비교하여 공격 식별자(T-ID)와 관련된 패턴을 가지는 데이터 세트의 일부 또는 전부의 특징을 포함한 샘플 데이터 세트들을 선택할 수 있다. Among the data sets having a pattern related to the existing attack identifier (T-ID), a data set with high similarity is selected and the rest is filtered (d). In this case, sample data sets including some or all characteristics of a data set having a pattern related to an attack identifier (T-ID) may be selected by comparing data sets stored in an existing semantic pattern set.
추출된 샘플 데이터 세트를 기반으로 벡터화한 N-gram 데이터를 학습시킬 수 있다(e). Based on the extracted sample data set, vectorized N-gram data can be learned (e).
N-gram 의 벡터화 데이터를 분류 모델에 입력하여 공격 식별자(T-ID) 별로 확률을 얻는다. 예를 들어 N-gram 구조의 벡터화 데이터가 특정 공격 식별자(T-ID) T1027일 확률이 A%이고, 공격 식별자 T1055일 확률이 (100-A)%인 확률 등의 확률을 얻을 수 있다. N-gram vectorized data is input into the classification model to obtain probability for each attack identifier (T-ID). For example, it is possible to obtain a probability such that the probability that the vectorized data of the N-gram structure is a specific attack identifier (T-ID) T1027 is A%, and the probability that the attack identifier T1055 is (100-A)%.
분류 모델은 적어도 하나 이상의 디시전 트리를 포함하는 랜덤 포레스트 등의 앙상블 머신 러닝 모델을 이용할 수 있다.The classification model may use an ensemble machine learning model such as a random forest including at least one decision tree.
(A) 여기서 분류 모델에 기반하여 벡터화한 N-gram 데이터가 어떤 공격 기법 또는 공격자인지 판단할 수 있다. (A) Here, based on the classification model, it is possible to determine which attack technique or attacker the vectorized N-gram data is.
분류 모델(e)의 분류 결과 또는 기존의 저장된 패턴의 선택(f) 결과에 따라 입력 데이터를 분류하여 라벨링을 수행한다(g). Labeling is performed by classifying the input data according to the classification result of the classification model (e) or the selection result of the previously stored pattern (f) (g).
최종 라벨링이 수행된 결과는 다음의 도면을 참조하여 예시한다.The result of the final labeling is exemplified with reference to the following figures.
도 27은 개시하는 실시 예에 따라 입력 데이터를 학습하고 분류하여 공격 식별자와 공격자를 라벨링한 예를 나타낸 도면이다. 27 is a diagram illustrating an example of labeling an attack identifier and an attacker by learning and classifying input data according to the disclosed embodiment.
이 도면은 프로파일리의 결과로서 공격 식별자, 공격자 또는 공격 그룹, 어셈블리 코드에 대응되는 퍼지 해쉬 값, 그에 대응되는 N-gram(여기서는 2-gram 데이터로 기재)를 각각 표 형식으로 나타낸 도면이다. This figure is a diagram showing attack identifiers, attackers or attack groups, purge hash values corresponding to assembly codes, and corresponding N-grams (here described as 2-gram data) in tabular form as a result of profiling.
실시 예에 따라 프로파일링이 완료되면 다음과 같은 공격 방법의 구현과 관련하여 분류된 데이터를 얻을 수 있다. According to the embodiment, when profiling is completed, classified data related to the implementation of the following attack method may be obtained.
실시 예에 의한 프로파일링에 따라 공격 식별자(T-ID)와 공격자 또는 공격자 그룹(Attacker or Group)에 각각 라벨링될 수 있다. According to the profiling according to the embodiment, an attack identifier (T-ID) and an attacker or attacker group may be respectively labeled.
여기서 공격 식별자(T-ID)는 설명한 바와 같이 표준화된 모델에 따를 수 있는데 이 예에서는 MITRE ATT&CK®에서 제공하는 공격 식별자(T-ID)를 부여한 결과를 예시한다. Here, the attack identifier (T-ID) may follow the standardized model as described. In this example, the result of assigning the attack identifier (T-ID) provided by MITER ATT&CK® is exemplified.
위에서 기술한 바와 같이 식별된 공격자 또는 공격자 그룹(Attacker or Group)에도 라벨링이 추가될 수 있다. 이 도면은 공격자 또는 공격자 그룹(Attacker or Group)의 라벨링으로 공격자 TA504를 식별한 예를 나타낸다. Labeling may also be added to the identified attacker or attacker group as described above. This figure shows an example of identifying the attacker TA504 with the labeling of the attacker or attacker group.
SHA-256 (size)는 각각의 공격 식별자(T-ID) 또는 공격자 그룹(Attacker or Group)에 대응되는 악성 코드의 퍼지 해쉬 값과 데이터 사이즈을 나타낸다. 설명한 바와 같이 이러한 악성 코드는 OP-CODE 와 ASM-CODE의 재배치와 조합에 대응될 수 있다. SHA-256 (size) represents the fuzzy hash value and data size of malicious code corresponding to each attack identifier (T-ID) or attacker group (Attacker or Group). As described above, these malicious codes can correspond to rearrangement and combination of OP-CODE and ASM-CODE.
그리고 N-gram으로 표시한 섹션의 값은 공격 식별자(T-ID) 또는 공격자 그룹과 악성 코드의 퍼지 해쉬 값에 대응되는 N-gram 패턴 데이터로서, 이 예에서는 2-gram 데이터의 일부로 표시하였다. And the value of the section marked as N-gram is the N-gram pattern data corresponding to the attack identifier (T-ID) or the fuzzy hash value of the attacker group and malicious code. In this example, it is displayed as part of the 2-gram data.
이 도면에서 예시한 바와 같이 악성 코드(OP-CODE 와 ASM-CODE)의 퍼지 해쉬 값과 N-gram 패턴 데이터에 대응되는 공격 식별자(T-ID) 또는 공격자 그룹이 라벨링되어 저장될 수 있다. As illustrated in this figure, purge hash values of malicious codes (OP-CODE and ASM-CODE) and attack identifiers (T-IDs) corresponding to N-gram pattern data or attacker groups can be labeled and stored.
예시한 라벨링된 데이터는 앙상블 머신 러닝의 참조 데이터로 이용될 수 있고, 분류 모델의 참조 데이터로 이용될 수도 있다. The exemplified labeled data may be used as reference data for ensemble machine learning and may be used as reference data for classification models.
이하에서 개시한 실시 예들의 성능 결과를 예시한다.Performance results of the embodiments disclosed below are illustrated.
도 28은 실시 예에 따라 공격 식별자를 식별한 결과를 나타낸 도면이다. 28 is a diagram showing a result of identifying an attack identifier according to an embodiment.
이 도면은 유클리언 디스턴스 매트릭스(Euclidean Distance Matrix)를 예시하는데, 유클리언 디스턴스 매트릭스(Euclidean Distance Matrix)는 두 데이터 세트 사이의 유사도를 나타낼 수 있다. This figure illustrates a Euclidean Distance Matrix, which can represent the degree of similarity between two data sets.
이 도면에서 밝은 부분은 두 데이터 세트의 유사도가 낮은 것을 의미하고 어두운 부분은 두 데이터 세트의 유사도가 높은 것을 의미한다. In this figure, a bright part means that the two data sets have a low similarity, and a dark part means that the two data sets have a high similarity.
이 도면에서 T10XX는 공격 식별자(T-ID)를 의미하고 괄호 안에 character T, K, L은 각각 해당 공격 식별자(T-ID)에 따른 공격 기법을 작성한 공격자 그룹을 의미한다. In this figure, T10XX means an attack identifier (T-ID), and characters T, K, and L in parentheses mean an attacker group that has created an attack technique according to the corresponding attack identifier (T-ID).
즉, 행과 열은 각각의 공격자 그룹들(T, K, L)이 생성한 공격 식별자(T-ID)들을 의미하며 행과 열은 동일한 의미를 가진다. 예를 들어 T1055(K)는 L 공격자 그룹이 생성한 T1055 공격을 의미하고, T1055(K)는 K 공격자 그룹이 생성한 동일한 공격 방법 T1055를 의미한다. That is, the rows and columns mean attack identifiers (T-IDs) generated by each attacker group (T, K, and L), and the rows and columns have the same meaning. For example, T1055(K) means T1055 attack created by L attacker group, and T1055(K) means the same attack method T1055 created by K attacker group.
각각의 데이터 세트의 샘플들은 자신의 샘플을 포함하기 때문에 다른 샘플들과의 거리를 각각 계산하면 왼쪽 위에서 오른쪽 아래의 대각선 방향으로 동일성이 높은 분포를 나타낸다. Since each sample in the data set includes its own sample, calculating the distance to other samples shows a distribution with high identity in the diagonal direction from top left to bottom right.
이 도면을 보면 동일한 공격 식별자(T-ID)의 경우 공격자 그룹이 다르더라도 유사한 특징을 나타내는 것을 확인할 수 있다. 예를 들어 T1027의 공격 식별자는 공격 그룹이 T 또는 K라고 하더라도 공격 기법이 유사하면 유사도가 높게 평가될 수 있다.Looking at this figure, it can be confirmed that the same attack identifier (T-ID) shows similar characteristics even if the attacker group is different. For example, the attack identifier of T1027 may have a high degree of similarity if the attack technique is similar even if the attack group is T or K.
따라서, 위의 실시 예와 같이 추출한 데이터 세트를 기반으로 학습을 진행하면 동일한 공격자가 구현한 같은 공격 기법(T-ID)에 대한 특징은 명확하게 식별되고(가장 어두운 부분), 다른 공격자가 구현한 동일한 공격 기법(T-ID)은 유사도가 높은 것(중간 어두운 부분)을 확인할 수 있다.Therefore, when learning is performed based on the extracted data set as in the above embodiment, the characteristics of the same attack technique (T-ID) implemented by the same attacker are clearly identified (the darkest part), and It can be seen that the same attack technique (T-ID) has a high degree of similarity (middle dark part).
따라서, 이와 같이 OP-CODE 와 ASM-CODE 의 조합에 기초한 샘플 데이터를 추출하여 적용해 공격 기법을 분류하면 공격자가 다른 경우라고 하더라도 특정의 공격 기법 또는 식별자(T-ID)를 확실하게 분류해 낼 수 있다. 반대로 OP-CODE 와 ASM-CODE 의 조합을 통해 악성 코드 내부에 구현된 특정 코드를 명확하게 식별할 수 있을 뿐만 아니라 공격자, 공격 식별자를 포함함 공격 구현 방식을 식별할 수 있다.Therefore, if the attack technique is classified by extracting and applying the sample data based on the combination of OP-CODE and ASM-CODE in this way, even if the attacker is different, a specific attack technique or identifier (T-ID) can be definitely classified. can On the contrary, through the combination of OP-CODE and ASM-CODE, it is possible to clearly identify the specific code implemented inside the malicious code, as well as identify the attacker and the attack implementation method including the attack identifier.
도 29는 실시 예에 따라 공격 식별자에 따른 그램 데이터 패턴을 예시한 도면이다. 29 is a diagram illustrating a gram data pattern according to an attack identifier according to an embodiment.
이 도면은 서로 다른 공격 식별자 (T-ID)가 다른 경우 그램 데이터의 패턴을 예시한 도면이다. 예를 들어 공격 식별자 T1027과 T1055를 포함한 각각의 악성 코드를 2-gram의 패턴 데이터로 변환하여 실시예에 따라 분류하면 공격 식별자 (T-ID)가 별로 다른 그램 패턴을 보인다. This figure illustrates patterns of gram data when different attack identifiers (T-IDs) are different. For example, if each malicious code including attack identifiers T1027 and T1055 is converted into 2-gram pattern data and classified according to the embodiment, each attack identifier (T-ID) shows a different gram pattern.
즉, OP-CODE 와 ASM-CODE 의 조합을 기반으로 악성 코드 내 공격 기법들을 식별하는 실시 예에 따르면 공격 식별자 (T-ID)별로 그램 데이터의 패턴이 나뉠 수 있다. That is, according to the embodiment of identifying attack techniques in malicious code based on the combination of OP-CODE and ASM-CODE, the pattern of gram data can be divided for each attack identifier (T-ID).
이 결과는 본 실시예에 따르면 공격자가 같더라도 악성 코드 내 숨겨진 여러 가지 공격 식별자 (T-ID)들을 명확하게 식별할 수 있다는 것을 의미한다. This result means that according to the present embodiment, even if the attacker is the same, various attack identifiers (T-IDs) hidden in the malicious code can be clearly identified.
도 30은 개시한 사이버 위협 정보를 처리하는 실시 예의 성능을 예시한 도면이다. 30 is a diagram illustrating the performance of the disclosed embodiment of processing cyber threat information.
이 도면은 개시한 실시예의 성능 중 공격 식별자 또는 공격자를 분류하는 연산 속도에 대한 성능을 예시한 것이다. This figure illustrates the performance of the attack identifier or the computational speed of classifying the attacker among the performances of the disclosed embodiment.
가로축은 데이터베이스에 저장된 데이터의 양을 나타내고 세로축은 공격 식별자를 분류하는데 소요되는 시간을 나타낸다. The horizontal axis represents the amount of data stored in the database, and the vertical axis represents the time required to classify the attack identifier.
데이터베이스에 저장된 퍼지 해쉬 데이터의 데이터의 개수를 증가시키면서, 일반적인 샘플을 각각 N : 1 (N대 1)로 비교하면 데이터의 개수 에 따라 처리 시간이 기하급수적으로 증가할 수 있다. 예를 들어 단순히 해쉬 값이나 퍼지 해쉬 값의 유사도만을 비교하면(ssdeep로 표시) 비교하는 데이터의 양에 따라 소요시간이 매우 증가한다.If the number of fuzzy hash data stored in the database is increased, and each normal sample is compared N: 1 (N to 1), the processing time may increase exponentially according to the number of data. For example, simply comparing the similarity of hash values or fuzzy hash values (indicated by ssdeep), the time required greatly increases depending on the amount of data to be compared.
그러나 실시 예의 앙상블 머신 러닝 모델의 디시전 트리(Decision Tree) 모델을 이용하면 공격 식별자 등을 분류하는 추론 시간이 데이터의 개수가 증가해도 증가하지 않는다.However, when the decision tree model of the ensemble machine learning model of the embodiment is used, the inference time for classifying the attack identifier does not increase even if the number of data increases.
즉 최적화된 비교 트리를 생성하는 디시전 트리(Decision Tree) 모델은 노드를 병렬적으로 처리할 수 있으므로 데이터 개수가 증가해도 계산 속도에 큰 영향을 받지 않는 장점이 있다. That is, the decision tree model that generates an optimized comparison tree has the advantage of not being significantly affected by the calculation speed even if the number of data increases because nodes can be processed in parallel.
도 31은 사이버 위협 정보의 탐지하는 엔진들의 탐지 엔진들을 탐지 명을 제공하는 예를 나타낸 도면이다. 31 is a diagram illustrating an example of providing detection names to detection engines of engines that detect cyber threat information.
악성코드 탐지 분야의 다양한 엔진들이 개발되어 사이버 위협 정보를 탐지 수행이 되고 있다. 인공 지능 분석이 늘어나면서 악성 코드의 탐지 능력이 증가하였다고 하더라도 탐지된 악성 코드를 제대로 설명하고 그 정보를 제공하지 못하면 이러한 탐지 능력의 효용성이 매우 떨어진다. Various engines in the field of malicious code detection have been developed to detect cyber threat information. Even if the ability to detect malicious codes increases as artificial intelligence analysis increases, the effectiveness of this detection ability is very low if the detected malicious codes are not properly explained and information is provided.
이 도면은 VirusTotal 사이트에서 제공하는 해외 유명의 탐지 엔진들(3210)(왼쪽)과, 각 그 탐지 엔진이 제공하는 동일한 악성 코드의 탐지명(오른편)을 예시한 것이다. This figure exemplifies foreign famous detection engines 3210 (left) provided by the VirusTotal site and detection names (right) of the same malicious code provided by each detection engine.
동일한 악성 코드의 식별과 전달이 정확하게 이루어지지 않기 때문에 해당 악성 코드가 어떤 이유로 탐지되었는지 식별하기 어렵다. 따라서 보안 담당자가 해당 정보에 기초하여 어떤 오브젝트에 대한 조치를 취해야 하는지 대응책을 찾기 힘들었고 보안 위협에 대한 리스크에 대응하기 힘들었다. Since the same malicious code is not accurately identified and delivered, it is difficult to identify the reason why the corresponding malicious code was detected. Therefore, it was difficult for security personnel to find countermeasures on which object to take action based on the information, and it was difficult to respond to the risk of security threats.
그러나 개시하는 실시 예는 표준화된 모델인 MITRE ATT&CK 등에서 제공하는 공격 식별자의 매트릭스 요소와 그 조합으로 사이버 위협 정보를 제공하고 표준화된 식별자(T-ID)로 악성 코드에 대한 정보 제공함으로써 범용성과 효율성을 매우 높일 수 있다. However, the disclosed embodiment provides cyber threat information with a matrix element of an attack identifier provided by a standardized model such as MITER ATT&CK and its combination, and provides information on malicious code with a standardized identifier (T-ID), thereby increasing versatility and efficiency. can be very high.
이하에서는 개시한 실시 예에 기반하여 공격자 추적하고 새로운 공격을 예측할 수 있는 예를 부연하여 설명한다.Hereinafter, an example in which an attacker can be tracked and a new attack can be predicted based on the disclosed embodiment will be amplified and described.
도 32는 실시 예에 따라 새로운 악성 코드와 공격 방식을 예시하는 일 예를 나타낸 도면이다. 32 is a diagram illustrating an example of a new malicious code and an attack method according to an embodiment.
코드의 개발자는 코드를 생성하는데 본인만의 고유의 습관들, 예를 들어 변수명 선언, 함수 호출 구조, 파라미터 호출 방법 등을 사용하는 경향이 매우 높다. 프로그램의 개발이 논리의 흐름과 경험에 기반해 생성되기 때문에 이러한 습관을 완전히 변경하는 것은 매우 어려운 것이다. Code developers tend to use their own customs, such as variable name declaration, function call structure, and parameter calling method, to create code. It is very difficult to completely change these habits because program development is driven by logic flow and experience.
이러한 근거에 기반하여 실시 예는 코드 상의 이와 같은 결과물들을 개발자의 핑거 프린팅로 사용하여 공격자를 추적할 수 있다. Based on this basis, the embodiment can track an attacker by using such results on the code as the developer's fingerprinting.
악성 코드의 공격 식별자(T-ID)를 기반으로 학습 데이터를 구성할 경우 위와 같은 특징 정보를 이용해서 개발자를 특정할 수 있다. 악성 코드의 디스어셈블된 코드는 이러한 개발자의 고유 특성이나 습관을 반영하고 있다. When the learning data is configured based on the attack identifier (T-ID) of the malicious code, the developer can be identified using the above characteristic information. The disassembled code of the malicious code reflects the unique characteristics or habits of these developers.
특정 해커가 특정 공격 기법을 구현하기 위해서 본인이 인지하지 못한 본인만의 사용하는 기법을 사용할 수 있으며 그 코드의 복잡도가 증가할수록 특정 개발자를 지정할 수 있는 가능성이 높아진다.In order to implement a specific attack technique, a specific hacker can use his/her own technique that he or she is not aware of, and as the complexity of the code increases, the possibility of specifying a specific developer increases.
또한 각 공격 식별자(T-ID) 별 OP-CODE 와 ASM-CODE 의 코드 블록을 조합하면 아직 알려지지 않은 신종 또는 변종의 악성 코드 탐지에도 사용될 수 있다. In addition, combining OP-CODE and ASM-CODE code blocks for each attack identifier (T-ID) can be used to detect new or variant malicious codes that are not yet known.
이 도면은 아래와 실시 예에 따라 디스어셈블된 OP-CODE 와 ASM-CODE의 조합을 통해 현존하지 않는 새로운 TTP의 조합을 만드는 예를 개시한다. This figure discloses an example of creating a combination of a new non-existent TTP through a combination of disassembled OP-CODE and ASM-CODE according to the following embodiment.
이 예에서 T1044, T1039, T1211,…, T-N은 각각 공격 식별자(T-ID)들을 예시한다. In this example, T1044, T1039, T1211,… , T-N respectively illustrate attack identifiers (T-IDs).
각 공격 식별자에 대응하는 OP-CODE 1 ~ N 세트는 각각의 각 공격 식별자의 악성 코드에 포함되는 코드 세트를 의미한다. The set of OP-
여기서 예시한 바와 같이 malware 악성 코드는 기존에 알려진 공격 식별자T1044의 OP-CODE 1, T1039의 OP-CODE2, T1211의 OP-CODE3, 및, T-N의 OP-CODE 1 등을 조합을 포함하는 악성 코드라고 하자. 이러한 OP-CODE의 조합의 세트를 포함하는 malware 악성 코드는 이미 알려진 코드일 수도 있고 알려지지 않은 코드일 수도 있다. As exemplified here, the malware malicious code is a malicious code containing a combination of known attack identifiers such as OP-
유사한 방식으로 T1044의 OP-CODE 3, T1039의 OP-CODEN, T1211의 OP-CODE4 및, T-N의 OP-CODE 2 등을 포함하는 새로운 공격 기법을 찾을 수 있다. In a similar way, new attack techniques including OP-
또는 T1044의 OP-CODE 4, T1039의 OP-CODE4, T1211의 OP-CODE2 및, T-N의 OP-CODE 3 등을 포함하는 새롭고 알려지지 않은 공격 기법을 찾을 수도 있다.Alternatively, new and unknown attack techniques including OP-
위에서는 편의상 OP-CODE의 조합만으로 공격 기법을 찾는 예를 개시하였으나, OP-CODE와 ASM-CODE를 조합하여 디스어셈블드 코드를 생성하면 공격 기법을 찾을 뿐만 아니라 공격자나 공격 그룹도 식별할 수 있다. In the above, for convenience, an example of finding an attack technique using only a combination of OP-CODEs was disclosed, but if a disassembled code is generated by combining OP-CODE and ASM-CODE, not only an attack technique is found, but also an attacker or attack group can be identified. .
유사하게 OP-CODE와 ASM-CODE를 포함하는 디스어셈블드 코드의 재조합을 통해 새로운 코드 세트를 생성할 수 있다. 실행 파일의 함수에 대응되는 OP-CODE 뿐만 아니라 실행 파일의 대상이나 저장 위치를 나타내는 ASM-CODE를 재구성하거나 또는 재조합된 디스어셈블드 코드를 생성할 수 있다. Similarly, a new code set can be created through recombination of disassembled codes including OP-CODE and ASM-CODE. OP-CODE corresponding to the function of the executable file as well as ASM-CODE representing the destination or storage location of the executable file can be reconstructed or reassembled disassembled code can be generated.
이러한 재구성 디스어셈블드 코드를 머신 러닝을 통해 학습하여 기존에 분석된 악성 코드와 비교하면 세분화된 새로운 방식의 공격 기법과 이를 생성하는 공격자를 식별하는 것을 넘어 추후 공격 예측이 가능하다. By learning this reconstructed disassembled code through machine learning and comparing it with previously analyzed malicious codes, it is possible to predict future attacks beyond identifying a new type of detailed attack technique and the attacker who created it.
이렇게 새로운 TTP 의 조합과 공격 경로의 조합은 지금까지 존재 하지 않았던 새로운 사이버 위협 또는 악성코드의 공격 방법을 만들어 낼 수 있는데, 실시 예는 이렇게 기존의 디스어셈블된 코드 세트를 조합하여 공격 가능한 코드가 생성되는지 확인할 수 있다. 공격 가능한 코드인지 여부는 동적 분석 등의 테스트 등을 통해 확인할 수도 있다. The combination of new TTP and attack path can create a new cyber threat or malicious code attack method that did not exist until now. you can check if it does. Whether or not the code can be attacked can also be checked through tests such as dynamic analysis.
따라서 실시 예는 디스어셈블된 코드 세트의 조합을 통해 향후 있을 보안 위협에 대응할 수 있는 정보를 제공할 수 있어 이에 대한 선제적인 대응이 가능하다. Therefore, the embodiment can provide information capable of responding to security threats in the future through a combination of disassembled code sets, so that a preemptive response to them is possible.
예를 들면 조합된 코드에 기반하여 각 공격 기법(TTP) 별 사용 빈도나 사용 했을 때 성공 가능성 등의 값을 반영한 코드를 생성할 수 있다. For example, based on the combined code, it is possible to generate a code that reflects values such as the frequency of use for each attack technique (TTP) or the probability of success when used.
또는 인공 지능을 학습을 통해 성공 확률이 높은 새로운 코드 블록 조합의 공격 코드나 악성 코드를 미리 생성할 수 있다. 그리고 이러한 정보를 반영하여 기존 보안 제품들이 대응 할 수 있는 패턴을 생성하거나 내부 시스템의 취약한 부분의 보안성을 강화할 수 있는 정보를 제공할 수 있다. Alternatively, an attack code or malicious code of a new code block combination with a high probability of success may be generated in advance through artificial intelligence learning. In addition, by reflecting this information, it is possible to create a pattern that existing security products can respond to, or to provide information that can strengthen the security of the weak part of the internal system.
도 33은 사이버 보안 위협 정보 처리 방법의 다른 일 실시 예를 예시한 도면이다. 33 is a diagram illustrating another embodiment of a cyber security threat information processing method.
입력된 실행 파일을 디스어셈블링하여 디스어셈블된 코드를 얻고 상기 디스어셈블된 코드를 재구성하여 재구성된 디스어셈블드 코드를 얻는다(S3110). The input executable file is disassembled to obtain a disassembled code, and the disassembled code is reconstructed to obtain a reconstructed disassembled code (S3110).
디스어셈블된 코드를 얻고 재구성하는 예는 도 18 및 도 21 등을 참조하여 설명하였다. An example of obtaining and reconstructing the disassembled code has been described with reference to FIGS. 18 and 21 .
상기 재구성된 디스어셈블드 코드를 처리하여 해쉬 함수로 변환하고 상기 해쉬 함수를 N 그램(N-gram) 데이터로 변환한다(3120).The reconstructed disassembled code is processed and converted into a hash function, and the hash function is converted into N-gram data (3120).
재구성된 디스어셈블드 코드를 일정한 포맷의 데이터 세트로 변환하는 예는 도 21, 도 24 등에 예시하였다. Examples of converting the reconstructed disassembled code into a data set of a certain format are illustrated in FIGS. 21 and 24 .
상기 변환된 N 그램(N-gram) 데이터의 블록 단위의 코드에 대해 앙상블 머신 러닝을 수행하여 상기 블록 단위의 코드를 상기 블록 단위의 코드가 수행하는 공격 기법의 식별자 및 상기 블록 단위의 코드를 생성한 공격자의 식별자로 프로파일링한다(S3130)Ensemble machine learning is performed on the block-unit code of the converted N-gram data to generate an identifier of an attack technique performed by the block-unit code and the block-unit code Profiling with an attacker's identifier (S3130)
이 단계의 공격 기법의 식별자와 공격자의 식별자를 프로파일링하는 예는 도 19, 도 20, 도 21, 도 25, 도 26, 도 27 등을 참조하여 설명하였다. Examples of profiling the identifier of the attack technique and the identifier of the attacker in this step have been described with reference to FIGS. 19, 20, 21, 25, 26, and 27.
도 34는 사이버 보안 위협 정보 처리 장치의 다른 일 실시 예를 예시한 도면이다. 34 is a diagram illustrating another embodiment of a cyber security threat information processing device.
사이버 보안 위협 정보 처리 장치의 다른 일 실시예는 프로세서를 포함하는 서버(2100), 데이터베이스(2200), 및 인텔리전스 플랫폼(10000)을 포함할 수 있다. Another embodiment of the cyber security threat information processing device may include a
인텔리전스 플랫폼(10000)은 응용 프로그램 인터페이스(Application Programming Interface) (1100), 프레임워크(18000), 여러 가지 알고리즘과 수행 모듈을 실행하는 분석및예측모듈(18100), AI 엔진(1230)을 포함할 수 있다. The
데이터베이스(2200)는 이미 분류된 악성 코드 또는 악성 코드의 패턴 코드를 저장할 수 있다. The
서버(2100)의 프로세서는 응용 프로그램 인터페이스(Application Programming Interface) (1100)로부터 수신된 실행 파일을 입력된 실행 파일을 디스어셈블링하여 디스어셈블된 코드를 얻고 상기 디스어셈블된 코드를 재구성하여 재구성된 디스어셈블드 코드를 얻는 제 1 모듈(18101)의 수행할 수 있다. The processor of the
제 1 모듈(18101)의 수행 과정의 예는 도 18 및 도 21 등을 예시하였다.Examples of the execution process of the
그리고 서버(2100)의 프로세서는 상기 재구성된 디스어셈블드 코드를 처리하여 해쉬 함수로 변환하고 상기 해쉬 함수를 N 그램(N-gram) 데이터로 변환하는 제 2 모듈(18103)을 수행할 수 있다.Further, the processor of the
제 2 모듈(18103)의 수행 과정의 예는 도 21, 도 24 등에 예시하였다.Examples of the execution process of the
서버(2100)의 프로세서는 상기 변환된 N 그램(N-gram) 데이터의 블록 단위의 코드에 대해 앙상블 머신 러닝을 수행하여 상기 블록 단위의 코드를 상기 블록 단위의 코드가 수행하는 공격 기법의 식별자 및 상기 블록 단위의 코드를 생성한 공격자의 식별자로 프로파일링하는 제 3 모듈(18105)을 수행할 수 있다.The processor of the
제 3 모듈(18105)의 수행 과정의 예는 도 19, 도 20, 도 21, 도 25, 도 26, 도 27 등을 참조하여 설명하였다.Examples of the execution process of the
따라서 개시한 실시예에 따르면 머신 러닝으로 학습된 데이터와 정확하게 일치하지 않는 악성 코드라도 탐지하고 대응할 수 있고 악성 코드의 변종에 대응할 수 있다. Therefore, according to the disclosed embodiment, it is possible to detect and respond to malicious codes that do not exactly match data learned through machine learning, and respond to variants of malicious codes.
실시예에 따르면 악성 코드의 변종이라도 매우 빠른 시간 내에 악성 코드, 공격 기법 및 공격자를 식별할 수 있고 나아가 추후의 특정 공격자의 공격 기법을 예측할 수 있다. According to the embodiment, it is possible to identify a malicious code, an attack technique, and an attacker within a very short period of time even if it is a variant of malicious code, and furthermore, it is possible to predict an attack technique of a specific attacker in the future.
실시예에 따르면 이러한 악성 코드 여부, 공격 기법, 공격 식별자 및 공격자를 기반으로 사이버 공격 구현 방식을 정확히 식별하고 이를 표준화된 모델로 제공할 수 있다. 실시예에 따르면 악성코드 탐지 명 등이 통일되지 않거나 사이버 공격 기법이 정확하게 기술되지 못하는 악성 코드의 정보를 정규화되고 표준화된 방식으로 제공할 수 있다. According to the embodiment, it is possible to accurately identify a cyber attack implementation method based on whether there is such a malicious code, an attack technique, an attack identifier, and an attacker, and provide it as a standardized model. According to the embodiment, it is possible to provide normalized and standardized information on malicious codes for which malicious code detection names, etc., or cyber attack techniques are not accurately described.
또한 기존에 알려지지 않은 악성 코드를 생성 가능성과 이를 개발할 수 있는 공격자들을 예측하고 미래에 어떤 사이버 위협 공격이 있을지 예측 가능한 수단을 제공할 수 있다.In addition, it can predict the possibility of creating previously unknown malicious code and the attackers who can develop it, and provide a means to predict what kind of cyber threat attack will occur in the future.
도 35는 실시예들에 따른 사이버 보안 위협 정보 처리 장치의 동작을 나타낸 블록도이다. 35 is a block diagram illustrating the operation of a cyber security threat information processing device according to embodiments.
도 35의 블록도(3500)는 도 1 내지 도 34에서 설명한 사이버 보안 위협 정보 처리 장치가 사용자의 파일 분석 요청 신호에 따라 파일 특징을 수집하고 분석하여 사용자별 클러스터링을 생성하는 동작의 예시이다. A block diagram 3500 of FIG. 35 is an example of an operation in which the cyber security threat information processing apparatus described in FIGS. 1 to 34 collects and analyzes file characteristics according to a user's file analysis request signal to generate clustering for each user.
실시예들에 따른 사이버 보안 위협 정보 처리 장치는 사용자 (User A)로부터 파일 분석 요청 신호(3510)를 수신한다. 실시예들에 따른 사용자의 파일 분석 요청 신호(3510)는 네트워크를 통해 전송될 수 있다. A cyber security threat information processing device according to embodiments receives a file
실시예들에 따른 사이버 보안 위협 정보 처리 장치는 파일 분석 요청 신호에 따라 실행 파일을 분석한다(3520). 사이버 보안 위협 정보 처리 장치의 파일 분석의 구체적인 동작은 다음과 같다.The cyber security threat information processing device according to the embodiments analyzes the execution file according to the file analysis request signal (3520). A specific operation of the file analysis of the cyber security threat information processing device is as follows.
실시예들에 따른 사이버 보안 위협 정보 처리 장치는 사용자의 분석 요청 대상인 실행 파일(EXE, EFL, APK 등)을 디스어셈블(Disassemble)한다(3521). 디스어셈블된 어셈블리 코드(assembly code)들은 OP-CODE(operation code)와 피연산자(operand)를 포함할 수 있다. OP-CODE(operation code)는 명령어 코드로 호칭할 수는 기계 언어 명령어를 나타내고, 피연산자(operand)는 실행 동작에 필요한 정보, 즉 기계 언어 명령어의 대상 데이터나 메모리 위치를 나타낸다. 상술한 바와 같이 디스어셈블(disassemble)된 어셈블리 코드(assembly code)들 중 OP-CODE를 제외한 부분은 ASM-CODE로 호칭되며, ASM-CODE 는 피연산자(operand) 부분을 포함할 수 있다. 디스어셈블링(disassembling)을 통해 오브젝트 코드 형식의 실행 가능한 파일은 특정 형식, 예를 들면 어셈블러 언어 형식의 코드 또는 디스어셈블된 코드로 변환된다. The cyber security threat information processing device according to the embodiments disassembles an execution file (EXE, EFL, APK, etc.) that is a user's analysis request target (3521). The disassembled assembly codes may include operation codes (OP-CODEs) and operands. An operation code (OP-CODE) represents a machine language instruction that can be called a command code, and an operand represents information necessary for an execution operation, that is, target data or a memory location of the machine language instruction. As described above, among disassembled assembly codes, parts other than OP-CODE are referred to as ASM-CODE, and ASM-CODE may include an operand part. Through disassembly, an executable file in object code format is converted into a specific format, for example code in assembler language format or disassembled code.
실시예들에 따른 사이버 보안 위협 정보 처리 장치는 디스어셈블된 코드로부터 사용자에 따른 일정 형식을 가진 OP-CODE (operation code) 와 ASM-CODE를 추출한다(3522). 실시예들에 따른 사이버 보안 위협 정보 처리 장치는 추출된 OP-CODE 와 ASM-CODE을 그대로 이용하지 않고 각 함수 별로 재구성하여 OP-CODE 배열을 다시 구성할 수 있다. OP-CODE 배열을 재정리할 경우 원본 바이너리 데이터도 함께 포함하여 데이터의 해석을 충분히 수행할 수 있도록 데이터를 재구성할 수 있다. 따라서 실시예들에 따른 사이버 보안 위협 정보 처리 장치는 OP-CODE 와 ASM-CODE의 새로운 조합은 공격 기법뿐만 아니라 공격자를 식별할 수 있는 기초 데이터를 제공할 수 있다. OP-CODE 와 ASM-CODE의 조합 방법은 도 1 내지 도 34에서 설명한 바와 동일하므로 구체적인 설명은 생략한다. 조합된 OP-CODE 와 ASM-CODE는 [OP-CODE, ASM-CODE] 순서로 재정리된다. 이와 같이 재정리된 디스어셈블된 코드는 정규화 또는 벡터화하여 처리하기 용이하여 데이터 처리 속도를 높일 수 있다. [OP-CODE, ASM-CODE] 의 조합을 가지는 디스어셈블된 코드 중 ASM-CODE 부분은 데이터의 길이가 달라 서로 비교하기 용이하지 않다. 따라서 사이버 보안 위협 정보 처리 장치는 해당 어셈블리 데이터의 고유성을 확인하기 위해서 데이터를 특정 크기의 데이터 포맷으로 정규화시킬 수 있다. OP-CODE와 ASM-CODE 변환된 정규화 데이터는 각각 해당 변환 이전의 각각 코드의 고유성을 유지할 수 있다. 사이버 보안 위협 정보 처리 장치는 고유성을 가지고 변환된 정규화 데이터의 유사도 판단 속도를 빠르게 하기 위해 정규화된 데이터를 벡터화(Vectorization)할 수 있다. 실시예들에 따른 정규화 및/또는 벡터화 과정은 데이터 처리 및 분석을 위해 선택적으로 적용될 수 있다. 정규화 및/또는 벡터화 과정은 도 1 내지 도 34에서 설명한 바와 동일하므로 구체적인 설명은 생략한다. 사이버 보안 위협 정보 처리 장치는 벡터화된 OP-CODE 와 ASM-CODE의 데이터 세트들을 바이트 데이터로 다시 변환할 수 있다. 사이버 보안 위협 정보 처리 장치는 재변환된 바이트 데이터를 기반으로 블록 단위의 해쉬 값을 추출하고 블록 단위의 고유 값을 기반으로 전체 데이터의 해쉬 값을 생성할 수 있다. 해쉬 값은 바이트 데이터의 부분인 블록 단위의 비교를 효율적으로 수행하기 위해서 각 블록 단위의 고유 값을 추출하도록 지정된 단위의 값이다. 해쉬 값을 추출하기 위해 퍼지 해쉬(Fuzzy Hashing) 기법이 사용될 수 있다. 해쉬 값 추출 및 퍼지 해쉬 기법에 대해서는 도 1 내지 도 34에서 설명한 바와 동일하다. 사이버 보안 위협 정보 처리 장치는 추출된 해쉬 값과 기 저장된 악성 코드 중 일부 단위의 해쉬 값을 서로 비교하여 유사도를 판단할 수 있다. The apparatus for processing cyber security threat information according to embodiments extracts OP-CODE (operation code) and ASM-CODE having a certain format according to a user from the disassembled code (3522). The apparatus for processing cyber security threat information according to the embodiments may reconfigure the OP-CODE arrangement by reconstructing each function without using the extracted OP-CODE and ASM-CODE as they are. When the OP-CODE arrangement is rearranged, the data can be reconstructed so that the data analysis can be sufficiently performed by including the original binary data together. Therefore, in the cyber security threat information processing device according to the embodiments, the new combination of OP-CODE and ASM-CODE can provide not only an attack technique but also basic data capable of identifying an attacker. Since the combination method of OP-CODE and ASM-CODE is the same as that described in FIGS. 1 to 34, a detailed description thereof will be omitted. Combined OP-CODE and ASM-CODE are rearranged in order of [OP-CODE, ASM-CODE]. The disassembled code rearranged in this way can be easily processed by normalization or vectorization, so that data processing speed can be increased. Among the disassembled codes having a combination of [OP-CODE, ASM-CODE], it is not easy to compare the ASM-CODE parts with each other because the data length is different. Accordingly, the cyber security threat information processing device may normalize data into a data format of a specific size in order to confirm the uniqueness of corresponding assembly data. The normalized data converted to OP-CODE and ASM-CODE may maintain the uniqueness of each code before the corresponding conversion. The cyber security threat information processing device may vectorize the normalized data in order to speed up the similarity determination of the converted normalized data with uniqueness. A normalization and/or vectorization process according to embodiments may be selectively applied for data processing and analysis. Since the normalization and/or vectorization process is the same as that described in FIGS. 1 to 34, a detailed description thereof will be omitted. The cyber security threat information processing device may convert vectorized data sets of OP-CODE and ASM-CODE back into byte data. The cyber security threat information processing device may extract a hash value in units of blocks based on the reconverted byte data and generate a hash value of all data based on a unique value in units of blocks. The hash value is a value of a unit designated to extract a unique value of each block unit in order to efficiently perform comparison of block units, which are part of byte data. A fuzzy hashing technique may be used to extract the hash value. Hash value extraction and fuzzy hash techniques are the same as those described in FIGS. 1 to 34 . The cyber security threat information processing device may determine similarity by comparing the extracted hash value with the hash value of some units of previously stored malicious codes.
해쉬 값은 String Data (Byte Data) 로 구성되어 있으므로 수십억 개의 디스어셈블된 코드 데이터 세트의 바이트 비교를 수행하면 하나의 유사도 결과를 얻는데 엄청난 시간을 소비할 수 있다. 따라서 사이버 보안 위협 정보 처리 장치는 연산의 속도를 높이기 위하여 String Data (Byte Data)를 N-gram 데이터 기반으로 벡터화할 수 있다(3523). N-gram 변환의 N 값이 증가하면, 변환된 데이터는 원래 데이터의 특성을 정확하게 반영할 수 있지만, 데이터 변환 처리 시간이 지연될 수 있다. 본 예시에서는 2-gram을 설명하고 있으나, 이는 예시에 불과하며, 3-gram, 4-gram,…, N-gram 데이터 기반의 다양한 벡터화 변환이 적용될 수 있다. N-gram 변환은 도 1 내지 도 34에서 설명한 바와 동일하므로 구체적인 설명은 생략한다.Since the hash value is composed of String Data (Byte Data), performing byte comparison of billions of disassembled code data sets can consume an enormous amount of time to obtain a single similarity result. Accordingly, the cyber security threat information processing device may vectorize String Data (Byte Data) based on N-gram data in order to speed up operation (3523). When the N value of N-gram conversion increases, the converted data can accurately reflect the characteristics of the original data, but the data conversion processing time may be delayed. In this example, 2-gram is described, but this is only an example, and 3-gram, 4-gram, ... , various vectorization transformations based on N-gram data can be applied. N-gram conversion is the same as that described in FIGS. 1 to 34, so a detailed description thereof will be omitted.
사이버 보안 위협 정보 처리 장치는 변환된 데이터에 대하여 자연어 처리의 텍스트 표현에 기초한 유사도 알고리즘을 수행할 수 있다. 유사도 알고리즘을 통해 공격 식별자와 관련이 없는 패턴의 코드는 제거할 수 있다. 또한 사이버 보안 위협 정보 처리 장치는 블록 단위의 코드 상의 특징 또는 패턴을 기반하여 공격 식별자의 패턴을 분류하기 위해 분류 모델링을 수행할 수 있다. 예를 들어 사이버 보안 위협 정보 처리 장치는 벡터화된 블록 단위의 코드 특징 또는 패턴이 알려진 공격 식별자의 패턴인지를 학습하고, 이를 정확한 공격 기법이나 구현방식으로 분류할 수 있다. 실시예들에 따른 사이버 보안 위협 정보 처리 장치는 악성 코드와 유사한 코드 패턴이 있다고 판단된 코드에 대해 정확한 공격 구현 방식, 즉 공격 식별자와 공격자를 분류를 위해 여러 가지 앙상블 머신 러닝 모델들을 이용할 수 있다. 머신 러닝 모델들에 대한 설명은 도 1 내지 도 34에서 설명한 바와 동일하므로 구체적인 설명은 생략한다. The cyber security threat information processing device may perform a similarity algorithm based on text expression of natural language processing on the converted data. Through the similarity algorithm, patterns of codes that are not related to the attack identifier can be removed. In addition, the cyber security threat information processing device may perform classification modeling to classify attack identifier patterns based on features or patterns on code in units of blocks. For example, the cyber security threat information processing device may learn whether a vectorized block-based code feature or pattern is a pattern of a known attack identifier, and classify it as an accurate attack technique or implementation method. The cyber security threat information processing apparatus according to embodiments may use various ensemble machine learning models to classify an accurate attack implementation method, that is, an attack identifier and an attacker, for a code determined to have a code pattern similar to a malicious code. Since descriptions of the machine learning models are the same as those described with reference to FIGS. 1 to 34 , detailed descriptions are omitted.
또한 사이버 보안 위협 정보 처리 장치는 변환된 데이터를 특정 공격 기법(TTP)로 식별하고 라벨링하여 파일 분석 결과를 생성한다. 라벨링은 크게 두 부분에 수행될 수 있는데 하나는 표준화된 모델에서 정의한 공격 식별자에 대한 고유 인덱스를 붙이는 것이고 다른 하나는 공격 코드를 작성한 사용자에 대한 정보를 기입하는 것이다. 라벨링은 표준화된 모델, 예를 들면 MITRE ATT&CK에서 반영된 공격 식별자(T-ID)에 따라 부여하도록 하여 추가적인 작업 없이 사용자에게 정확한 정보를 전달할 수 있도록 한다. 라벨링은 공격 식별자뿐만 아니라 해당 공격 식별자를 구현한 공격자를 구별할 수 있도록 부여된다. 따라서 사이버 보안 위협 정보 처리 장치는 공격 식별자뿐만 아니라 공격자와 그에 따른 구현 방식을 식별할 수 있는 정보를 제공할 수 있다. 실시예들에 따른 라벨링은 도 1 내지 도 34에서 설명한 바와 동일하므로 구체적인 설명은 생략한다. In addition, the cyber security threat information processing device generates a file analysis result by identifying and labeling the converted data as a specific attack technique (TTP). Labeling can be performed in two parts. One is to attach a unique index to the attack identifier defined in the standardized model, and the other is to write information about the user who wrote the attack code. Labeling is assigned according to a standardized model, for example, an attack identifier (T-ID) reflected in MITER ATT&CK, so that accurate information can be delivered to users without additional work. The labeling is given to distinguish not only the attack identifier, but also the attacker who implemented that attack identifier. Accordingly, the cyber security threat information processing device may provide not only an attack identifier but also information capable of identifying an attacker and an implementation method thereof. Labeling according to the embodiments is the same as that described with reference to FIGS. 1 to 34, so detailed descriptions thereof are omitted.
또한 사이버 보안 위협 정보 처리 장치는 기존에 분류된 디스어셈블된 코드(OP-CODE, ASM-CODE, 또는 그 조합)의 데이터 세트를 학습한 데이터를 기반으로 고도화된 프로파일링 정보를 생성할 수 있다. 실시예들에 따른 프로파일링 정보는 라벨링된 공격 식별자, 공격자 또는 공격 그룹, 어셈블리 코드에 대응되는 악성 코드의 퍼지 해쉬 값, 공격 식별자(T-ID) 또는 공격자 그룹과 악성 코드의 퍼지 해쉬 값에 대응되는 N-gram(예를 들면 2-gram 데이터)를 포함할 수 있다. 실시예들에 따른 공격 식별자(T-ID)는 설명한 바와 같이 표준화된 모델(예를 들면 상술한 MITRE ATT&CK®에서 제공하는 공격 식별자(T-ID))에 따른다. 실시예들에 따른 프로파일링 정보 및 생성 방법은 도 1 내지 도 34에서 설명한 바와 동일하므로 구체적인 설명은 생략한다.In addition, the cyber security threat information processing device may generate advanced profiling information based on data learned from a data set of previously classified disassembled codes (OP-CODE, ASM-CODE, or a combination thereof). Profiling information according to embodiments corresponds to a labeled attack identifier, an attacker or attack group, a fuzzy hash value of malicious code corresponding to an assembly code, an attack identifier (T-ID), or a fuzzy hash value of an attacker group and malicious code. It may include N-grams (eg, 2-gram data) that are As described above, the attack identifier (T-ID) according to the embodiments follows a standardized model (eg, the attack identifier (T-ID) provided by MITER ATT&CK® described above). Since the profiling information and generation method according to the embodiments are the same as those described in FIGS. 1 to 34, a detailed description thereof will be omitted.
실시예들에 따른 사이버 보안 위협 정보 처리 장치는 파일 분석 결과(예를 들면 라벨링 결과 정보, 프로파일링 정보 등)를 사용자에게 제공한다(3530). 실시예들에 따른 파일 분석 결과는 텍스트, 이미지 등 다양한 포맷으로 제공될 수 있다. 또한 사이버 보안 위협 정보 처리 장치는 프로파일링 정보를 사용자 별로 클러스터링하여 데이터 베이스에 저장한다. 실시예들에 따른 사용자 별 클러스터링된 데이터는 사용자(예를 들면 사용자 A)가 주로 분석을 요청하는 파일들의 특징을 수집하여 생성되는 데이터 군집이다. 즉, 클러스터링은 사용자(예를 들면 사용자 아이디, 사용자 식별자 등)을 부여하는 라벨링을 통해 생성될 수 있다. 또한 클러스터링된 데이터는 사용자 별 데이터 베이스에 저장 및 관리 될 수 있다. 실시예들에 따른 사이버 보안 위협 정보 처리 장치는 파일 분석 요청 대상 파일에 대한 파일 분석 결과만을 사용자에게 제공할 수 도 있고, 클러스터링된 데이터(또는 클러스터링된 데이터의 결과)를 제공할 수도 있다. 또한 사용자는 클러스터링된 데이터를 저장하는 데이터 베이스에 직접 접근(access)할 수도 있다. 또한 사이버 보안 위협 정보 처리 장치는 사용자의 요청에 따라 또는 요청이 없이도 네트워크를 통해 클러스터링된 데이터를 제공할 수 있다. 도 35에 도시된 블록도는 예시에 불과하며, 사이버 보안 위협 정보 처리 장치의 동작은 본 예시에만 국한되지 않는다. 또한 실시예들에 따른 사이버 보안 위협 정보 처리 장치는 사용자 별 클러스터링 데이터를 저장하는 적어도 하나 이상의 사용자 별 클러스터링 데이터 베이스 및 실행 파일 분석 요청 신호를 입력받는 입력부를 포함할 수 있다.The cyber security threat information processing device according to the embodiments provides a file analysis result (eg, labeling result information, profiling information, etc.) to the user (3530). A file analysis result according to embodiments may be provided in various formats such as text and image. In addition, the cyber security threat information processing device clusters profiling information for each user and stores the profiling information in a database. The clustered data for each user according to the embodiments is a data cluster generated by collecting characteristics of files that a user (eg, user A) mainly requests for analysis. That is, clustering can be created through labeling that assigns users (eg, user IDs, user identifiers, etc.). Also, clustered data can be stored and managed in a user-specific database. The cyber security threat information processing apparatus according to the embodiments may provide the user with only the file analysis result for the file analysis request target file or may provide clustered data (or clustered data result). Also, a user may directly access a database storing clustered data. In addition, the cyber security threat information processing device may provide clustered data through a network according to a user's request or without a request. The block diagram shown in FIG. 35 is only an example, and the operation of the cyber security threat information processing device is not limited to this example. In addition, the cyber security threat information processing apparatus according to embodiments may include at least one clustering database for each user that stores clustering data for each user and an input unit that receives an execution file analysis request signal.
도 36은 실시예들에 따른 사이버 보안 위협 정보 처리 장치의 동작을 나타낸 블록도이다. 36 is a block diagram illustrating the operation of a cyber security threat information processing device according to embodiments.
도 36의 블록도(3600)는 도 1 내지 도 35에서 설명한 사이버 보안 위협 정보 처리 장치가 사용자(예를들면 사용자 A)의 파일 분석 요청 신호에 따라 파일을 분석하고 해당 파일의 특징과 다른 사용자들(예를 들면 사용자 B, 사용자 C)의 클러스터링 데이터와 유사도를 비교하여 사용자 친화적인 사이버 위협 정보 제공 동작을 나타낸다.The block diagram 3600 of FIG. 36 shows that the cyber security threat information processing device described in FIGS. 1 to 35 analyzes a file according to a file analysis request signal from a user (eg, user A), and analyzes the characteristics of the file and other users. (For example, user B, user C) clustering data and similarity are compared to indicate user-friendly cyber threat information providing operation.
사이버 보안 위협 정보 처리 장치는 사용자(사용자 A)로부터 실행 파일(신규 파일 “ABC.exe”)분석을 요청하는 실행 파일 분석 요청 신호(또는 파일 분석 요청 신호라고 호칭)를 수신한다(3610). 실시예들에 따른 사이버 보안 위협 정보 처리 장치는 파일을 분석할 수 있다(예를 들면 도 35의 3520). 사이버 보안 위협 정보 처리 장치의 파일 분석 동작은 도 1 내지 도 35에서 설명한 바와 동일하므로 구체적인 설명은 생략한다. The cyber security threat information processing device receives an execution file analysis request signal (or called a file analysis request signal) requesting analysis of an execution file (new file “ABC.exe”) from a user (user A) (3610). An apparatus for processing cyber security threat information according to embodiments may analyze a file (eg, 3520 of FIG. 35 ). Since the file analysis operation of the cyber security threat information processing device is the same as that described in FIGS. 1 to 35, a detailed description thereof will be omitted.
실시예들에 따른 사이버 보안 위협 정보 처리 장치는 신규 파일 분석 결과(예를 들면 ABC exe “특징” 정보)를 사용자(예를 들면 사용자 식별자)를 부여하는 라벨링을 통해 클러스터링한다(3620). 기존에 사용자 A의 파일 분석 요청에 따라 생성된 클러스터링된 데이터가 저장된 사용자 A 클러스터링 데이터 베이스가 있는 경우, 사용자 A의 클러스터링된 데이터는 사용자 A 클러스터링 데이터 베이스에 저장 및 관리된다. 따라서 사이버 보안 위협 정보 처리 장치는 파일 분석 결과를 사용자 A의 클러스터링 데이터 베이스에 저장할 수 있다. 만약 사용자 A 클러스터링 데이터 베이스가 없다면 사이버 보안 위협 정보 처리 장치는 생성된 사용자 A의 클러스터링 데이터를 저장 및 관리하기 위한 사용자 A 클러스터링 데이터 베이스를 생성할 수 있다. 실시예들에 따른 파일 분석 결과는 도 1 내지 도 35에서 설명한 특정 공격 기법(TTP)으로 라벨링된 데이터, 프로파일링 정보 중 적어도 어느 하나 이상에 대응할 수 있다. 또한 실시예들에 따른 클러스터링 및 사용자 A의 클러스터링 데이터 베이스의 저장은 순차적으로 또는 동시에 수행될 수 있다. 또한 클러스터링 및 클러스터링 데이터 베이스의 저장은 본 예시에 국한되지 않는다.The apparatus for processing cyber security threat information according to embodiments clusters new file analysis results (eg, ABC exe “feature” information) through labeling to assign users (eg, user identifiers) (3620). If there is a user A clustering database that stores clustered data generated according to user A's file analysis request, the clustered data of user A is stored and managed in the user A clustering database. Accordingly, the cyber security threat information processing device may store the file analysis result in the user A's clustering database. If there is no user A clustering database, the cyber security threat information processing apparatus may create a user A clustering database for storing and managing the generated clustering data of user A. A file analysis result according to embodiments may correspond to at least one or more of data labeled as a specific attack technique (TTP) and profiling information described in FIGS. 1 to 35 . Also, clustering according to embodiments and storage of user A's clustering database may be performed sequentially or simultaneously. Also, clustering and storage of the clustering database are not limited to this example.
실시예들에 따른 사이버 보안 위협 정보 처리 장치는 신규 파일 분석 결과(예를 들면 ABC exe “특징”를 기반으로, 신규 파일 분석을 요청하지 않은 사용자에게 신규 파일 분석 결과 정보를 제공할 수 있다. 사이버 보안 위협 정보 처리 장치는 신규 파일 분석 결과와 신규 파일 분석을 요청하지 않은 사용자의 클러스터링 데이터의 유사도를 비교하여 유사한 경우, 해당 사용자의 요청이 없어도 신규 파일 분석 결과 정보 및/또는 유사도와 관련된 정보를 제공할 수 있다. 왜냐하면 유사도가 높은 경우 (또는 유사한 경우), 해당 사용자가 주로 분석을 요청하는 대상 파일들과 신규 분석 대상 파일의 유사도가 높다는 것을 의미하기 때문이다. 따라서 신규 분석 대상 파일을 요청하지 않은 사용자에게도 신규 파일 분석 결과 및 유사도와 관련된 정보는 미래의 사이버 위협을 분석하기 위한 유의미한 정보가 될 수 있다. 즉, 사이버 보안 위협 정보 처리 장치는 기 분석된 사용자별 클러스터링 데이터를 활용하여, 보다 사용자 친화적인 사이버 위협 정보 서비스를 제공할 수 있다. The cyber security threat information processing device according to embodiments may provide new file analysis result information to a user who has not requested new file analysis based on a new file analysis result (eg, ABC exe “feature”. Cyber security threat information processing device). The security threat information processing device compares the similarity between the new file analysis result and the clustering data of the user who did not request the new file analysis, and if similar, provides the new file analysis result information and/or information related to the similarity even without the user's request. This is because if the similarity is high (or similar), it means that the new analysis target file has a high similarity with the target files that the user mainly requests for analysis. For the user, the new file analysis results and information related to similarity can be meaningful information for analyzing future cyber threats.In other words, the cyber security threat information processing device utilizes the previously analyzed clustering data for each user, making it more user-friendly. It can provide cyber threat information service.
구체적으로, 사이버 보안 위협 정보 처리 장치는 파일 분석 결과(예를 들면 ABC exe “특징” 정보)를 사용자 A가 아닌 적어도 하나 이상의 다른 사용자들(예를 들면 사용자 B, 사용자 C)의 클러스터링데이터 베이스에 저장된 데이터와 비교할 수 있다(3630, 3631). 상술한 바와 같이 다른 사용자들의 클러스터링된 데이터는 사용자(예를 들면 사용자 아이디, 식별자)를 부여하는 라벨링읕 통해 생성되는 데이터로서, 신규 파일 분석 결과와 동일한 포맷, 데이터 종류 등으로 구성된 데이터를 포함한다. 또한 각 사용자별 클러스터링된 데이터는 각 사용자별 클러스터링 데이터 베이스(DB)에 저장 및 관리된다. 사이버 보안 위협 정보 처리 장치는 신규 파일 분석 결과와 사용자별 클러스터링 데이터 베이스 내의 데이터의 유사도를 비교한다. 유사도가 기설정된 유사도보다 높은 경우, 사이버 보안 위협 정보 처리 장치는 신규 파일 분석 결과 및 유사도와 관련된 정보를 해당 사용자 (예를 들면 사용자 C)에게 제공한다(3640. 신규 파일 분석 결과 및 유사도와 관련된 정보는 알람 메시지 등의 형태로 사용자에게 제공될 수 있으며, 제공 방법, 형태, 제공 정보 등은 본 예시에 국한되지 않는다. 또한 신규 파일 분석 결과 및 유사도와 관련된 정보는 파일명 및 유사도를 포함할 수 있다. 실시예들에 따른 사이버 보안 위협 정보 처리 장치는 사용자의 요청에 따라 또는 사용자 요청과 관계없이 신규 파일 분석 결과 및 유사도와 관련된 정보를 해당 사용자의 클러스터링 DB에 저장할 수 있다. 만약 유사도가 기설정된 유사도보다 작은 경우, 사이버 보안 위협 정보 처리 장치는 신규 파일 분석 결과 및 유사도와 관련된 정보를 해당 사용자 (예를 들면 사용자 B)에게 제공하지 않는다(3650). 실시예들에 따른 신규 파일 분석 결과 및 유사도와 관련된 정보는 사용자 요청에 따라 유사도와 관계없이 사용자에게 제공될 수도 있다. 도 36에 도시된 블록도는 예시에 불과하며, 사이버 보안 위협 정보 처리 장치의 동작은 본 예시에만 국한되지 않는다.Specifically, the cyber security threat information processing device stores the file analysis result (eg, ABC exe “characteristic” information) in a clustering database of at least one other user (eg, user B, user C) other than user A. It can be compared with the stored data (3630, 3631). As described above, the clustered data of other users is data generated through labeling that assigns a user (eg, user ID, identifier), and includes data composed of the same format and data type as the new file analysis result. In addition, clustered data for each user is stored and managed in a clustering database (DB) for each user. The cyber security threat information processing device compares the new file analysis result with the similarity of data in the clustering database for each user. If the similarity is higher than the preset similarity, the cyber security threat information processing device provides the new file analysis result and information related to the similarity to the corresponding user (for example, user C) (3640. New file analysis result and information related to the similarity). may be provided to the user in the form of an alarm message, etc., and the provision method, form, information provided, etc. are not limited to this example, and information related to a new file analysis result and similarity may include a file name and similarity. According to the user's request or regardless of the user's request, the cyber security threat information processing apparatus according to the embodiments may store new file analysis results and similarity-related information in the user's clustering DB. If small, the cyber security threat information processing device does not provide information related to the new file analysis result and similarity to the corresponding user (for example, user B) (3650) New file analysis result and similarity related information according to embodiments Information may be provided to the user regardless of similarity according to the user's request The block diagram shown in Fig. 36 is only an example, and the operation of the cyber security threat information processing device is not limited to this example.
도 37은 실시예들에 따른 사이버 보안 위협 정보 처리 방법을 나타내는 플로우 다이어그램이다.37 is a flow diagram illustrating a cyber security threat information processing method according to embodiments.
도 37의 플로우 다이어 그램(3700)은 도 36에서 설명한 사이버 보안 위협 정보 처리 장치의 사이버 보안 위협 정보 처리 방법의 예시이다.A flow diagram 3700 of FIG. 37 is an example of the cyber security threat information processing method of the cyber security threat information processing device described in FIG. 36 .
실시예들에 따른 사이버 보안 위협 정보 처리 장치는 신규 파일 분석 요청 신호를 수신한다(3710). 상술한 바와 같이 신규 파일 분석 요청 신호는 특정 사용자의 요청 신호로서 네트워크 등을 통해 수신될 수 있다. The cyber security threat information processing device according to the embodiments receives a new file analysis request signal (3710). As described above, the new file analysis request signal may be received through a network as a request signal of a specific user.
실시예들에 따른 사이버 보안 위협 정보 처리 장치는 신규 파일 분석 요청 신호에 따라 실행 파일을 분석한다(3720). 사이버 보안 위협 정보 처리 장치는 실행파일을 디스어셈블링하고, OP 코드 및 The cyber security threat information processing device according to the embodiments analyzes an executable file according to a new file analysis request signal (3720). The cyber security threat information processing device disassembles the executable file, and the OP code and
ASM 코드를 추출하고 벡터화 한 뒤 2-gram 데이터를 추출하여 공격 식별자 및 해당 공격 식별자를 구현한 공격자 식별 정보를 부여한 파일 분석 결과를 생성할 수 있다. 사이버 보안 위협 정보 처리 장치의 파일 분석 동작은 도 1 내지 도 36에서 설명한 바와 동일하므로 구체적인 설명은 생략한다.After extracting and vectorizing the ASM code, 2-gram data can be extracted to create a file analysis result with an attack identifier and attacker identification information that implemented the attack identifier. Since the file analysis operation of the cyber security threat information processing device is the same as that described in FIGS. 1 to 36, a detailed description thereof will be omitted.
실시예들에 따른 사이버 보안 위협 정보 처리 장치는 파일 분석 결과에 대하여 클러스터링을 수행한다(3730). 예를 들어 사이버 보안 위협 정보 처리 장치는 파일 분석 결과에 대하여 파일 분석을 요청한 사용자(예를 들면 사용자 아이디, 사용자 식별자)를 부여하는 라벨링을 통해 클러스터링 데이터를 생성할 수 있다. 클러스터링 데이터 생성 방법은 도 35 내지 도 36에서 설명한 바와 동일하므로 구체적인 설명은 생략한다.The cyber security threat information processing apparatus according to the embodiments performs clustering on the file analysis result (3730). For example, the cyber security threat information processing device may generate clustering data through labeling that assigns a user who requested file analysis (eg, user ID, user identifier) to the file analysis result. Since the method for generating clustering data is the same as that described in FIGS. 35 and 36, a detailed description thereof will be omitted.
실시예들에 따른 사이버 보안 위협 정보 처리 장치는 클러스터링 데이터의 사용자와 기존 사용자 별 클러스터링 데이터를 저장하는 데이터 베이스(DB)의 사용자가 다른지 판단한다(3740). 사용자가 동일한 경우, 클러스터링 데이터는 해당 사용자의 클러스터링 데이터 베이스에 저장된다(3751). 사용자가 다른 경우, 사이버 보안 위협 정보 처리 장치는 클러스터링 데이터와 해당 사용자와 다른 사용자의 클러스터링 데이터 베이스에 저장된 데이터간의 유사도를 비교한다(3752). 실시예들에 따른 유사도 비교동작은 클러스터링 데이터를 해당 사용자의 클러스터링 데이터 베이스에 저장하는 동작과 동시에 또는 순차적으로 수행될 수 있다.The apparatus for processing cyber security threat information according to embodiments determines whether a user of clustering data and a user of a database (DB) storing clustering data for each existing user are different (3740). If the user is the same, the clustering data is stored in the clustering database of the corresponding user (3751). If the user is different, the cyber security threat information processing device compares the similarity between the clustering data and data stored in the clustering database of the corresponding user and other users (3752). The similarity comparison operation according to embodiments may be performed concurrently or sequentially with an operation of storing clustering data in a clustering database of a corresponding user.
실시예들에 따른 사이버 보안 위협 정보 처리 장치는 유사도가 기설정된 값보다 높은지 판단한다(3760). 기설정된 값은 사이버 보안 위협 정보 처리 장치의 관리자 또는 사용자에 의해 설정 및 변경 가능하다. The cyber security threat information processing device according to the embodiments determines whether the similarity is higher than a preset value (3760). The preset value can be set and changed by a manager or user of the cyber security threat information processing device.
유사도가 기설정된 값보다 높은 경우, 사이버 보안 위협 정보 처리 장치는 비교 대상인 클러스터링 데이터 베이스의 사용자에게 유사도와 관련된 정보를 제공한다(3770). 실시예들에 따른 유사도와 관련된 정보는 신규 파일 분석 결과 및 유사도를 포함하며 알람 메시지 등의 형태로 사용자에게 제공될 수 있다. 또한 유사도와 관련된 정보의 제공 방법, 형태, 제공 정보 등은 본 예시에 국한되지 않는다. 사이버 보안 위협 정보 처리 장치는 사용자의 요청 및/또는 설정, 또는 사용자의 요청 및/또는 설정과 관계없이 해당 사용자의 클러스터링 데이터 베이스에 유사도와 관련된 정보를 저장할 수 있다. If the similarity is higher than the predetermined value, the cyber security threat information processing device provides information related to the similarity to the user of the clustering database to be compared (3770). Information related to similarity according to embodiments includes a new file analysis result and similarity, and may be provided to a user in the form of an alarm message or the like. In addition, the method, form, and provision of information related to similarity are not limited to this example. The cyber security threat information processing device may store similarity-related information in the user's clustering database regardless of the user's request and/or setting or the user's request and/or setting.
유사도가 기설정된 값보다 낮은 경우, 사이버 보안 위협 정보 처리 장치는 비교 대상인 클러스터링 데이터 베이스의 사용자에게 유사도와 관련된 정보를 제공하지 않는다(3780). 실시예들에 따른 사이버 보안 위협 정보 처리 장치는 사용자의 요청 또는 설정에 따라 유사도가 기설정된 값보다 낮은 경우에도 유사도와 관련된 정보를 제공할 수 있다. When the similarity is lower than the predetermined value, the cyber security threat information processing device does not provide information related to the similarity to the user of the clustering database to be compared (3780). According to a user's request or setting, the cyber security threat information processing apparatus according to embodiments may provide similarity-related information even when the similarity is lower than a preset value.
도 37에 도시된 플로우 다이어그램은 예시에 불과하며, 플로우 다이어그램을 구성하는 엘레멘트들의 순서등은 본 예시에 국한되지 않는다.The flow diagram shown in FIG. 37 is only an example, and the order of elements constituting the flow diagram is not limited to this example.
도 38은 실시예들에 따른 사이버 보안 위협 정보 처리 장치의 예시이다.38 is an example of a cyber security threat information processing device according to embodiments.
도 38의 예시(3800)는 도 1 내지 도 37에서 설명한 사이버 보안 위협 정보 처리 장치의 블록도이다. 실시예들에 따른 사이버 보안 위협 정보 처리 장치는 입력부(3810), 물리 장치인 프로세서(3820)와 데이터베이스(3830) 및 물리장치상에서 구동되는 응용 프로그래밍 인터페이스 Application Programming Interface, API) 포함하는 플랫폼(3840)를 포함할 수 있다. 도 38은 사이버 보안 위협 정보 처리 장치의 예시로서 사이버 보안 위협 정보 처리 장치는 본 예시에 국한되지 않는다 따라서 사이버 보안 위협 정보 처리 장치는 도 1 내지 도 37에서 설명한 동작 및/또는 방법을 수행하기 위하여 도면에 도시되지 않은 하나 또는 그 이상의 엘레멘트들을 더 포함할 수 있다.An example 3800 of FIG. 38 is a block diagram of the cyber security threat information processing device described in FIGS. 1 to 37 . An apparatus for processing cyber security threat information according to embodiments includes an
실시예들에 따른 입력부(3810)는 사용자로부터 입력 신호(예를 들면 파일 분석 요청 신호)를 입력받는다. 실시예들에 따른 프로세서(3820)는 데이터베이스(3830)에 데이터를 저장하거나 읽을 수 있다. 또한 실시예들에 따른 프로세서(3820)는 도 1 내지 도 37에서 설명한 서버(예를 들면 도 10의 서버(2100)) 입력부(3810)를 통해 입력된 파일 분석 요청 신호를 기반으로 플랫폼(3840)에 포함된 하나 또는 그 이상의 모듈들을 수행할 수 있다. 또한 프로세서(3820)는 사용자 입력 신호에 따라, 또는 사용자 입력 신호와 관계없이 사이버 보안 위협 정보 처리 장치에서 생성된 정보(예를 들면 도 1 내지 도 37에서 설명한 파일 분석 결과, 클러스터링된 데이터, 유사도와 관련된 정보 등)를 사용자에게 전달할 수 있다. 상술한 바와 같이 사이버 보안 위협 정보 처리 장치에서 생성된 정보의 포맷, 종류 등은 예시에 국한되지 않는다. 실시예들에 따른 프로세서(3820)는 하나의 블록으로 도시되어 있으나, 중앙연산장치(central processing unit, CPU) 와 같은 연산장치, 데이터 입력을 위한 네트워크 장치나 네트워크의 보안 장치 등을 포함하는 하나 또는 그 이상의 프로세스들을 나타낼 수 있다. 프로세서(3820)에 대한 설명은 도 1 내지 도 37에서 설명한 바와 동일하므로 생략한다.The
실시예들에 따른 데이터 베이스(3830)는 프로세서(3820)의 제어에 따라 사이버 보안 위협 정보 처리 장치에서 생성된 데이터(예를 들면 도 1 내지 도 37에서 설명한 파일 분석 결과, 클러스터링된 데이터, 유사도와 관련된 정보 등)를 저장할 수 있다. 실시예들에 따른 데이터 베이스(3830)는 하나의 블록으로 도시되어 있으나, 상술한 바와 같이 하나 또는 그 이상의 사용자 별 데이터 베이스들을 나타낼 수 있다.The database 3830 according to the embodiments includes data generated by the cyber security threat information processing device under the control of the processor 3820 (eg, file analysis results described in FIGS. 1 to 37, clustered data, similarity and related information, etc.) Although the database 3830 according to embodiments is shown as one block, it may represent one or more user-specific databases as described above.
실시예들에 따른 플랫폼(3840)(예를 들면 도 10에서 설명한 인텔리전스 플랫폼(10000))은 사이버 위협 정보의 처리를 위한 응용 프로그래밍 인터페이스(API)를 제공할 수 있다. 실시예들에 따른 플랫폼(3840)은 프로세서(3820)에 의해 수행되는 파일분석 모듈(3841), 클러스터링 생성 모듈(3842) 및 유사도 비교 모듈(3843)을 포함한다. 파일분석 모듈(3841)은 도 35에서 설명한 파일 분석 동작(3520)을 수행할 수 있다. 파일분석 모듈(3841)은 하나의 블록으로 도시되어 있으나 도 1 내지 도 37에서 설명한 다양한 모듈들(예를 들면 전처리부(미도시), 분석 프레임 워크(1210)와 예측 프레임 워크(1220) 및 AI 엔진 (1230) 및 후처리부(미도시)에 포함된 모듈들)을 포함할 수 있다. 클러스터링 생성 모듈(3842)은 파일분석 모듈(3841)에서 생성된 파일 분석 결과에 대하여 클러스터링을 수행하여 클러스터링 데이터를 생성할 수 있다(예를 들면 도 36에서 설명한 클러스터링 생성(3620), 도 37의 클러스터링 수행 (3730)). 클러스터링 데이터를 생성하는 방법은 도 35 내지 도 37에서 설명한 바와 동일하므로 생략한다. 실시예들에 따른 유사도 비교 모듈(3843)은 파일 분석 결과와 파일 분석 결과를 요청한 사용자와 다른 사용자의 클러스터링 DB에 저장된 데이터간의 유사도를 비교한다(예를 들면 도 36에서 설명한 유사도 비교 (3630, 3631), 도 37에서 설명한 유사도 비교(3760)). 유사도 비교 방법은 도 35 내지 도 37에서 설명한 바와 동일하므로 생략한다. 실시예들에 따른 프로세서(3820)는 유사도가 기설정된 값보다 높은 경우, 유사도와 관련된 정보를 생성하고 해당 사용자에게 유사도와 관련된 정보를 제공한다.The
도 39는 실시예들에 따른 사이버 보안 위협 정보 처리 방법의 플로우 다이어그램이다. 39 is a flow diagram of a cyber security threat information processing method according to embodiments.
도 39의 플로우 다이어그램(3900)은 도 1 내지 도 38에서 설명한 사이버 보안 위협 정보 처리 장치의 사이버 보안 위협 정보 처리 방법 또는 저장매체에 저장된 사이버 보안 위협 정보를 처리하는 프로그램이 수행하는 사이버 보안 위협 정보 처리 방법의 예시를 나타낸다. The flow diagram 3900 of FIG. 39 shows the cyber security threat information processing performed by the cyber security threat information processing method of the cyber security threat information processing device described in FIGS. 1 to 38 or a program that processes cyber security threat information stored in a storage medium. An example of the method is shown.
사이버 보안 위협 정보 처리 장치(예를 들면 도 38의 입력부(3810))는 실행 파일 분석을 위한 제 1 사용자 실행 파일 분석 요청 신호(예를 들면 도 36에서 설명한 사용자 A로부터 입력받은 신규 파일 ABC.exe 분석 요청 신호)를 입력받는다(3910).The cyber security threat information processing device (for example, the
사이버 보안 위협 정보 처리 장치(예를 들면 도 38의 프로세서(3820) 및 파일분석 모듈(3841))는 제 1 사용자 실행 파일 분석 요청 신호에 따라 실행 파일을 디스어셈블링(disassembling)하여 디스어셈블된 코드를 얻고 상기 디스어셈블된 코드를 재구성하여 재구성된 디스어셈블드 코드를 얻는다(3920). 실시예들에 따른 디스어셈블된 코드는, 실행 파일에 포함된 함수에 대응하는 OP-CODE와 함수의 피연산자인 어셈블리 코드를 포함할 수 있다. 디스어셈블링 및 디스어셈블된 코드에 대한 에 대한 설명은 도 1 내지 도 38에서 설명한 바와 동일하므로 생략한다.The cyber security threat information processing device (for example, the
사이버 보안 위협 정보 처리 장치(예를 들면 도 38의 프로세서(3820) 및 파일분석 모듈(3841))는 재구성된 디스어셈블드 코드를 처리하여 해쉬 함수로 변환하고 해쉬 함수를 N 그램(N-gram, N은 자연수) 데이터로 변환한다(3930). 사이버 보안 위협 정보 처리 장치(예를 들면 도 38의 프로세서(3820) 및 파일분석 모듈(3841))는 해쉬 함수를 바이트 데이터로 변환하고, 바이트 데이터를 2-gram 데이터로 변환할 수 있다. 실시예들에 따른 N 그램 데이터 변환에 대한 설명은 도 1 내지 도 38에서 설명한 바와 동일하므로 생략한다.The cyber security threat information processing device (for example, the
사이버 보안 위협 정보 처리 장치(예를 들면 도 38의 프로세서(3820) 및 파일분석 모듈(3841))는 변환된 N 그램(N-gram) 데이터의 블록 단위의 코드에 대해 앙상블 머신 러닝을 수행하여 블록 단위의 코드를 블록 단위의 코드가 수행하는 공격 기법의 식별자 및 상기 블록 단위의 코드를 생성한 공격자의 식별자로 프로파일링하여 실행 파일 분석 결과를 생성한다(3940). 사이버 보안 위협 정보 처리 장치(예를 들면 도 38의 프로세서(3820) 및 파일분석 모듈(3841))는 블록 단위의 코드와 저장된 악성 코드의 유사 패턴을 찾고, 유사 패턴인 블록 단위의 코드에 대해 적어도 하나의 노드를 가지는 디시전 트리를 이용하여 공격 기법의 식별자와 공격자의 식별자를 분류할 수 있다. 실시예들에 따른 프로파일링에 대한 설명은 도 1 내지 도 38에서 설명한 바와 동일하므로 생략한다. 사이버 보안 위협 정보 처리 장치(예를 들면 도 38의 프로세서(3820) 및 파일분석 모듈(3841))는 변환된 N 그램(N-gram) 데이터의 블록 단위의 코드에 대해블록 단위의 코드가 사이버 공격 행위가 포함된 코드인지 판단할 경우, 블록 단위의 코드를 자연어 처리 방식에 따라 저장된 악성 코드와 유사도를 판단할 수 있다. 악성 코드와 유사도를 판단하는 방법에 대한 설명은 도 1 내지 도 38에서 설명한 바와 동일하므로 생략한다.The cyber security threat information processing device (for example, the
사이버 보안 위협 정보 처리 장치(예를 들면 도 38의 프로세서(3820), 클러스터링 생성 모듈(3842) 및 유사도 비교 모듈(3843))는 실행 파일 분석 결과를 기반으로 제 1 사용자(예를 들면 도 35 내지 도 38에서 설명한 사용자 A) 클러스터링 데이터를 생성하고, 제 1 사용자와 다른 제 2 사용자(예를 들면 도 35 내지 도 38에서 설명한 사용자 B)의 클러스터링 데이터와 실행 파일 분석 결과간의 유사도를 비교한다(3940). 실시예들에 따른 제 1 사용자 클러스터링 데이터는 실행 파일 분석 결과에 제 1 사용자를 나타내는 정보를 부여하는 라벨링을 수행하여 생성될 수 있다. 클러스터링 데이터 생성 방법에 대한 설명은 도 1 내지 도 38에서 설명한 바와 동일하므로 생략한다.The cyber security threat information processing device (for example, the
사이버 보안 위협 정보 처리 장치(예를 들면 도 38의 프로세서(3820))는 유사도가 기설정된 값보다 높은 경우, 제 2 사용자에게 유사도와 관련된 정보를 제공한다(3950). 실시예들에 따른 유사도와 관련된 정보는 파일 분석 결과 및 유사도를 포함할 수 있다. 사이버 보안 위협 정보 처리 장치(예를 들면 도 38의 프로세서(3820))는 유사도가 기설정된 값보다 낮은 경우, 제 2 사용자에게 유사도와 관련된 정보를 제공하지 않는다. 유사도와 관련된 정보에 대한 설명은 도 1 내지 도 38에서 설명한 바와 동일하므로 생략한다. When the similarity is higher than a predetermined value, the cyber security threat information processing device (for example, the
설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시예들을 병합하여 새로운 실시예를 구현하도록 설계하는 것도 가능하다. 그리고, 통상의 기술자의 필요에 따라, 이전에 설명된 실시예들을 실행하기 위한 프로그램이 기록되어 있는 컴퓨터에서 판독 가능한 기록 매체를 설계하는 것도 실시예들의 권리범위에 속한다. 실시예들에 따른 장치 및 방법은 상술한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다. 바람직한 예시에 대하여 도시하고 설명하였지만, 실시예들은 상술한 특정의 예시에 한정되지 아니하며, 청구범위에서 청구하는 실시예들의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 실시예들의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다. 실시예들에 따른 장치 및 방법에 대한 설명은 서로 보완하여 적용될 수 있다.For convenience of description, each drawing has been divided and described, but it is also possible to design to implement a new embodiment by merging the embodiments described in each drawing. And, according to the needs of those skilled in the art, designing a computer-readable recording medium in which programs for executing the previously described embodiments are recorded falls within the scope of the embodiments. The apparatus and method according to the embodiments are not limited to the configuration and method of the embodiments described above, but all or part of each embodiment is selectively combined so that various modifications can be made. may be configured. Although illustrated and described with respect to a preferred example, the embodiments are not limited to the specific examples described above, and without departing from the gist of the embodiments claimed in the claims, by those of ordinary skill in the art to which the invention pertains. Of course, various modified implementations are possible, and these modified implementations should not be individually understood from the technical spirit or perspective of the embodiments. Descriptions of the device and method according to the embodiments may be applied complementary to each other.
실시예들에 따른 장치의 다양한 구성요소들은 하드웨어, 소프트웨어, 펌웨어 또는 그것들의 조합에 의해 구성될 수 있다. 실시예들의 다양한 구성요소들은 하나의 칩, 예를 들면 하나의 하드웨어 서킷으로 구현될 수 있다 실시예들에 따라, 실시예들에 따른 구성요소들은 각각 별도의 칩들로 구현될 수 있다. 실시예들에 따른 장치의 구성요소들 중 적어도 하나 이상은 하나 또는 그 이상의 프로그램들을 실행 할 수 있는 하나 또는 그 이상의 프로세서들로 구성될 수 있으며, 하나 또는 그 이상의 프로그램들은 실시예들에 따른 동작/방법들 중 어느 하나 또는 그 이상의 동작/방법들을 수행시키거나, 수행시키기 위한 인스트럭션들을 포함할 수 있다. 실시예들에 따른 장치의 방법/동작들을 수행하기 위한 실행 가능한 인스트럭션들은 하나 또는 그 이상의 프로세서들에 의해 실행되기 위해 구성된 일시적이지 않은 CRM 또는 다른 컴퓨터 프로그램 제품들에 저장될 수 있거나, 하나 또는 그 이상의 프로세서들에 의해 실행되기 위해 구성된 일시적인 CRM 또는 다른 컴퓨터 프로그램 제품들에 저장될 수 있다. 또한 실시예들에 따른 저장매체(또는 메모리)는 휘발성 메모리(예를 들면 RAM 등)뿐 만 아니라 비휘발성 메모리, 플래쉬 메모리, PROM등을 전부 포함하는 개념으로 사용될 수 있다. 또한, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함될 수 있다. 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Various components of the device according to embodiments may be configured by hardware, software, firmware, or a combination thereof. Various components of the embodiments may be implemented as one chip, for example, as one hardware circuit. According to embodiments, components according to the embodiments may be implemented as separate chips. At least one or more of the components of the device according to the embodiments may be composed of one or more processors capable of executing one or more programs, and the one or more programs may operate / operate according to the embodiments. Any one or more operations/methods of the methods may be performed, or instructions for performing them may be included. Executable instructions for performing methods/operations of an apparatus according to embodiments may be stored in a non-transitory CRM or other computer program products configured for execution by one or more processors, or may be stored in one or more may be stored in transitory CRM or other computer program products configured for execution by processors. In addition, the storage medium (or memory) according to the embodiments may be used as a concept including not only volatile memory (eg, RAM, etc.) but also non-volatile memory, flash memory, PROM, and the like. Also, those implemented in the form of a carrier wave such as transmission through the Internet may be included. In addition, the processor-readable recording medium is distributed in computer systems connected through a network, so that the processor-readable code can be stored and executed in a distributed manner.
이 문서에서 “/”와 “,”는 “및/또는”으로 해석된다. 예를 들어, “A/B”는 “A 및/또는 B”로 해석되고, “A, B”는 “A 및/또는 B”로 해석된다. 추가적으로, “A/B/C”는 “A, B 및/또는 C 중 적어도 하나”를 의미한다. 또한, “A, B, C”도 “A, B 및/또는 C 중 적어도 하나”를 의미한다. 추가적으로, 이 문서에서 “또는”는 “및/또는”으로 해석된다. 예를 들어, “A 또는 B”은, 1) “A”만을 의미하거나, 2) “B”만을 의미하거나, 3) “A 및 B”를 의미할 수 있다. 달리 표현하면, 본 문서의 “또는”은 “추가적으로 또는 대체적으로(additionally or alternatively)”를 의미할 수 있다. In this document, “/” and “,” shall be interpreted as “and/or”. For example, “A/B” is interpreted as “A and/or B” and “A, B” is interpreted as “A and/or B”. Additionally, "A/B/C" means "at least one of A, B and/or C". Also, “A, B, C” means “at least one of A, B and/or C”. Additionally, “or” shall be construed as “and/or” in this document. For example, "A or B" could mean 1) only "A", 2) only "B", or 3) "A and B". In other words, “or” in this document may mean “additionally or alternatively”.
제1, 제2 등과 같은 용어는 실시예들의 다양한 구성요소들을 설명하기 위해 사용될 수 있다. 하지만 실시예들에 따른 다양한 구성요소들은 위 용어들에 의해 해석이 제한되어서는 안된다. 이러한 용어는 하나의 구성요소를 다른 구성요소와 구별하기 위해 사용되는 것에 불과하다. 것에 불과하다. 예를 들어, 제 1 사용자 인풋 시그널은 제 2 사용자 인풋 시그널로 지칭될 수 있다. 이와 유사하게, 제 2 사용자 인풋 시그널은 제 1사용자 인풋시그널로 지칭될 수 있다. 이러한 용어의 사용은 다양한 실시예들의 범위 내에서 벗어나지 않는 것으로 해석되어야만 한다. 제 1 사용자 인풋 시그널 및 제2 사용자 인풋 시그널은 모두 사용자 인풋 시그널들이지만, 문맥상 명확하게 설명되지 않는 한 동일한 사용자 인풋 시그널들을 의미하지 않는다.Terms such as first, second, etc. may be used to describe various components of the embodiments. However, interpretation of various components according to embodiments should not be limited by the above terms. These terms are only used to distinguish one component from another. only thing For example, a first user input signal may be referred to as a second user input signal. Similarly, the second user input signal may be referred to as the first user input signal. Use of these terms should be construed as not departing from the scope of the various embodiments. Although both the first user input signal and the second user input signal are user input signals, they do not mean the same user input signals unless clearly explained in context.
실시예들을 설명하기 위해 사용된 용어는 특정 실시예들을 설명하기 위한 목적으로 사용되고, 실시예들을 제한하기 위해서 의도되지 않는다. 실시예들의 설명 및 청구항에서 사용된 바와 같이, 문맥 상 명확하게 지칭하지 않는 한 단수는 복수를 포함하는 것으로 의도된다. 및/또는 표현은 용어 간의 모든 가능한 결합을 포함하는 의미로 사용된다. 포함한다 표현은 특징들, 수들, 단계들, 엘리먼트들, 및/또는 컴포넌트들이 존재하는 것을 설명하고, 추가적인 특징들, 수들, 단계들, 엘리먼트들, 및/또는 컴포넌트들을 포함하지 않는 것을 의미하지 않는다. 실시예들을 설명하기 위해 사용되는, ~인 경우, ~때 등의 조건 표현은 선택적인 경우로만 제한 해석되지 않는다. 특정 조건을 만족하는 때, 특정 조건에 대응하여 관련 동작을 수행하거나, 관련 정의가 해석되도록 의도되었다.Terms used to describe the embodiments are used for the purpose of describing specific embodiments and are not intended to limit the embodiments. As used in the description of the embodiments and in the claims, the singular is intended to include the plural unless the context clearly dictates otherwise. and/or expressions are used in a sense that includes all possible combinations between the terms. The phrase includes describes that there are features, numbers, steps, elements, and/or components, and does not imply that additional features, numbers, steps, elements, and/or components are not included. . Conditional expressions such as when ~, when ~, etc. used to describe the embodiments are not construed as being limited to optional cases. When a specific condition is satisfied, a related action is performed in response to the specific condition, or a related definition is intended to be interpreted.
1010, 1020, 1030: 클라이언트
1100: 응용 프로그래밍 인터페이스
1210, 150000: 분석프레임워크
1211, 15100: 정적분석모듈
1213, 15200: 동적분석모듈
1215, 15300: 심층분석모듈
1217,15400: 연관관계분석모듈
1220,17000: 예측프레임워크
1221: 제 1예측정보생성모듈
1223: 제 2예측정보생성모듈
1230: AI 엔진
2000: 물리장치
2200: 데이터베이스
2100: 서버
2510, 2520, 2530,2540, 2610, 2620,2630 디시전 트리의 노드
10000: 인텔리전스 플랫폼
15101: 파일구조분석모듈
15103: 파일패턴분석모듈
15105: 파일제작정보분석모듈
15107: 파일환경분석모듈
15109: 파일관련분석모듈
15201: 환경준비모듈
15203: 파일실행모듈
15205: 행위수집모듈
15207: 분석결과취합모듈
15209: 분석환경복구모듈
15301: 디스어셈블링모듈
15303: 기계언어코드추출모듈
15309: 공격기법식별모듈
15307: 공격자식별모듈
15309: 테인트분석모듈
15401: 제1연관관계모듈
15403: 제2연관관계모듈
15409: 제3연관관계모듈
15407: 제4연관관계모듈
15409: 제5연관관계모듈
17100: 예측정보생성모듈
17101: 제1정보예측모듈
17103: 제2정보예측모듈
17105: 제3정보예측모듈
17107: 제4정보예측모듈
17109: 제5정보예측모듈
18000: 프레임워크
18100: 분석및예측모듈
18101, 18103, 18105: 제 1 모듈, 제 2 모듈, 제 3 모듈1010, 1020, 1030: Client
1100: application programming interface
1210, 150000: Analysis framework
1211, 15100: static analysis module
1213, 15200: dynamic analysis module
1215, 15300: In-depth analysis module
1217, 15400: correlation analysis module
1220,17000: prediction framework
1221: first prediction information generating module
1223: second prediction information generating module
1230: AI engine
2000: Physics
2200: database
2100: server
2510, 2520, 2530,2540, 2610, 2620,2630 Nodes in decision tree
10000: Intelligence Platform
15101: file structure analysis module
15103: file pattern analysis module
15105: file production information analysis module
15107: file environment analysis module
15109: File related analysis module
15201: Environment preparation module
15203: file execution module
15205: behavior collection module
15207: Analysis result collection module
15209: analysis environment recovery module
15301: disassembly module
15303: machine language code extraction module
15309: attack technique identification module
15307: Attacker Identification Module
15309: taint analysis module
15401: first association module
15403: second association module
15409: 3rd association module
15407: 4th correlation module
15409: 5th association module
17100: prediction information generation module
17101: first information prediction module
17103: second information prediction module
17105: third information prediction module
17107: 4th information prediction module
17109: Fifth information prediction module
18000: framework
18100: Analysis and prediction module
18101, 18103, 18105: first module, second module, third module
Claims (15)
상기 제 1 사용자 실행 파일 분석 요청 신호에 따라 상기 실행 파일을 디스어셈블링(disassembling)하여 디스어셈블된 코드를 얻고 상기 디스어셈블된 코드를 재구성하여 재구성된 디스어셈블드 코드를 얻는 단계;
상기 재구성된 디스어셈블드 코드를 처리하여 해쉬 함수로 변환하고 상기 해쉬 함수를 N 그램(N-gram, N은 자연수) 데이터로 변환하는 단계;
상기 변환된 N 그램(N-gram) 데이터의 블록 단위의 코드에 대해 앙상블 머신 러닝을 수행하여 상기 블록 단위의 코드를 상기 블록 단위의 코드가 수행하는 공격 기법의 식별자 및 상기 블록 단위의 코드를 생성한 공격자의 식별자로 프로파일링하여 실행 파일 분석 결과를 생성하는 단계;
상기 실행 파일 분석 결과를 기반으로 제 1 사용자 클러스터링 데이터를 생성하고, 상기 제 1 사용자와 다른 제 2 사용자의 클러스터링 데이터와 상기 실행 파일 분석 결과간의 유사도를 비교하는 단계; 및
상기 유사도가 기설정된 값보다 높은 경우, 상기 제 2 사용자에게 상기 유사도와 관련된 정보를 제공하는 단계를 포함하는 사이버 보안 위협 정보 처리 방법.receiving a first user executable file analysis request signal for analyzing an executable file;
disassembling the executable file according to the first user execution file analysis request signal to obtain a disassembled code and reconstructing the disassembled code to obtain a reconstructed disassembled code;
converting the reconstructed disassembled code into a hash function and converting the hash function into N-gram (N is a natural number) data;
Ensemble machine learning is performed on the block-unit code of the converted N-gram data to generate an identifier of an attack technique performed by the block-unit code and the block-unit code Profiling with an attacker's identifier to generate an executable file analysis result;
generating first user clustering data based on a result of analyzing the executable file, and comparing a similarity between the clustering data of a second user different from the first user and the result of analyzing the executable file; and
and providing information related to the similarity to the second user when the similarity is higher than a predetermined value.
상기 유사도와 관련된 정보는 상기 파일 분석 결과 및 상기 유사도를 포함하는, 사이버 보안 위협 정보 처리 방법.According to claim 1,
The method of processing cyber security threat information, wherein the information related to the degree of similarity includes a result of analyzing the file and the degree of similarity.
상기 제 1 사용자 클러스터링 데이터는 상기 실행 파일 분석 결과에 상기 제 1 사용자를 나타내는 정보를 부여하는 라벨링을 수행하여 생성되는, 사이버 보안 위협 정보 처리 방법.According to claim 1,
Wherein the first user clustering data is generated by performing labeling that assigns information indicating the first user to the execution file analysis result.
상기 디스어셈블된 코드는, 상기 실행 파일에 포함된 함수에 대응하는 OP-CODE와 상기 함수의 피연산자인 어셈블리 코드를 포함하는 사이버 보안 위협 정보 처리 방법.According to claim 1,
The disassembled code includes an OP-CODE corresponding to a function included in the executable file and an assembly code that is an operand of the function.
상기 프로파일링하는 단계는,
상기 블록 단위의 코드와 저장된 악성 코드의 유사 패턴을 찾는 단계; 및
상기 유사 패턴인 블록 단위의 코드에 대해 적어도 하나의 노드를 가지는 디시전 트리를 이용하여 상기 공격 기법의 식별자와 공격자의 식별자를 분류하는 단계;를 포함하는 사이버 보안 위협 정보 처리 방법.According to claim 1
The profiling step is
finding a similar pattern between the block unit code and the stored malicious code; and
and classifying the identifier of the attack technique and the identifier of the attacker using a decision tree having at least one node for the similar pattern code in block units.
상기 해쉬 함수를 N 그램(N-gram) 데이터로 변환하는 단계는,
상기 해쉬 함수를 바이트 데이터로 변환하는 단계; 및
상기 바이트 데이터를 2-gram 데이터로 변환하는 단계;를 포함하는 사이버 보안 위협 정보 처리 방법.According to claim 1,
Converting the hash function into N-gram data,
converting the hash function into byte data; and
A cyber security threat information processing method comprising converting the byte data into 2-gram data.
상기 변환된 N 그램(N-gram) 데이터의 블록 단위의 코드에 대해 상기 블록 단위의 코드가 사이버 공격 행위가 포함된 코드인지 판단할 경우,
상기 블록 단위의 코드를 자연어 처리 방식에 따라 저장된 악성 코드와 유사도를 판단하는 단계;를 포함하는 사이버 보안 위협 정보 처리 방법.According to claim 1,
When it is determined whether the block-unit code of the converted N-gram data is a code containing a cyber attack,
and determining the degree of similarity between the block-based code and the stored malicious code according to a natural language processing method.
실행 파일 분석을 위한 제 1 사용자 실행 파일 분석 요청 신호를 입력받는 입력부; 및
상기 실행 파일을 처리하는 프로세서를 포함하는 사이버 보안 위협 정보 처리 장치로서,
상기 프로세서는 상기 제 1 사용자 실행 파일 분석 요청 신호에 따라 응용 프로그램 인터페이스(Application Programming Interface; API)를 통해 상기 실행 파일을 디스어셈블링(disassmebling)하여 디스어셈블된 코드를 얻고 상기 디스어셈블된 코드를 재구성하여 재구성된 디스어셈블드 코드를 얻는 디스어셈블링 모듈을 수행하고,
상기 재구성된 디스어셈블드 코드를 처리하여 해쉬 함수로 변환하고 상기 해쉬 함수를 N 그램(N-gram,N은 자연수) 데이터로 변환하는 데이터 변환 모듈을 수행하고,
상기 변환된 N 그램(N-gram) 데이터의 블록 단위의 코드에 대해 앙상블 머신 러닝을 수행하여 상기 블록 단위의 코드를 상기 블록 단위의 코드가 수행하는 공격 기법의 식별자 및 상기 블록 단위의 코드를 생성한 공격자의 식별자로 프로파일링하여 실행 파일 분석 결과를 생성하는 프로파일링 모듈을 수행하고,
상기 실행 파일 분석 결과를 기반으로 제 1 사용자 클러스터링 데이터를 생성하고, 상기 제 1 사용자와 다른 제 2 사용자의 클러스터링 데이터와 상기 실행 파일 분석 결과 간의 유사도를 비교하는 유사도 비교 모듈을 수행하고,
상기 유사도가 기설정된 값보다 높은 경우, 상기 제 2 사용자에게 상기 유사도와 관련된 정보를 제공하는, 사이버 보안 위협 정보 처리 장치.one or more user-specific databases that store clustering data for each user;
an input unit for receiving a first user executable file analysis request signal for analyzing an executable file; and
A cyber security threat information processing device including a processor for processing the executable file,
The processor disassembles the executable file through an application programming interface (API) according to the first user executable file analysis request signal to obtain a disassembled code and reconstructs the disassembled code to perform a disassembly module to obtain a reconstructed disassembled code;
Performing a data conversion module that processes the reconstructed disassembled code to convert it into a hash function and converts the hash function into N-gram (N-gram, where N is a natural number) data;
Ensemble machine learning is performed on the block-unit code of the converted N-gram data to generate an identifier of an attack technique performed by the block-unit code and the block-unit code Performs a profiling module that generates an executable file analysis result by profiling with an attacker's identifier,
Generating first user clustering data based on the execution file analysis result, and performing a similarity comparison module for comparing the similarity between the clustering data of a second user different from the first user and the execution file analysis result,
and providing information related to the similarity to the second user when the similarity is higher than a predetermined value.
상기 유사도와 관련된 정보는 상기 파일 분석 결과 및 상기 유사도를 포함하는, 사이버 보안 위협 정보 처리 장치.According to claim 8,
The information related to the similarity includes the file analysis result and the similarity, the cyber security threat information processing device.
상기 제 1 사용자 클러스터링 데이터는 상기 실행 파일 분석 결과에 상기 제 1 사용자를 나타내는 정보를 부여하는 라벨링을 수행하여 생성되는, 사이버 보안 위협 정보 처리 장치.According to claim 8,
The first user clustering data is generated by performing labeling to assign information indicating the first user to the execution file analysis result, the cyber security threat information processing device.
상기 디스어셈블된 코드는, 상기 실행 파일에 포함된 함수에 대응하는 OP-CODE와 상기 함수의 피연산자인 어셈블리 코드를 포함하는 사이버 보안 위협 정보 처리 장치.According to claim 8,
The disassembled code includes an OP-CODE corresponding to a function included in the executable file and an assembly code that is an operand of the function.
상기 프로파일링 모듈은,
상기 블록 단위의 코드와 저장된 악성 코드의 유사 패턴을 찾고,
상기 유사 패턴인 블록 단위의 코드에 대해 적어도 하나의 노드를 가지는 디시전 트리를 이용하여 상기 공격 기법의 식별자와 공격자의 식별자를 분류하는 사이버 보안 위협 정보 처리 장치.According to claim 8,
The profiling module,
Find similar patterns between the code in block units and the stored malicious code;
The cyber security threat information processing device for classifying the identifier of the attack technique and the identifier of the attacker using a decision tree having at least one node for the block unit code that is the similar pattern.
상기 데이터 변환 모듈은;
상기 해쉬 함수를 바이트 데이터로 변환하고 상기 바이트 데이터를 2-gram 데이터로 변환하는 사이버 보안 위협 정보 처리 장치.According to claim 8,
The data conversion module;
A cyber security threat information processing device that converts the hash function into byte data and converts the byte data into 2-gram data.
상기 프로파일링 모듈은, 상기 변환된 N 그램(N-gram) 데이터의 블록 단위의 코드에 대해 상기 블록 단위의 코드가 사이버 공격 행위가 포함된 코드인지 판단할 경우, 상기 블록 단위의 코드의 자연어 처리 방식에 따라 저장된 악성 코드와 유사도를 판단하는 사이버 보안 위협 정보 처리 장치.According to claim 8,
The profiling module, when determining whether the block-unit code of the converted N-gram data contains a cyber attack, natural language processing of the block-unit code A cyber security threat information processing device that determines the degree of similarity with stored malicious codes according to the method.
상기 재구성된 디스어셈블드 코드를 처리하여 해쉬 함수로 변환하고 상기 해쉬 함수를 N 그램(N-gram, N은 자연수) 데이터로 변환하고;
상기 변환된 N 그램(N-gram) 데이터의 블록 단위의 코드에 대해 앙상블 머신 러닝을 수행하여 상기 블록 단위의 코드를 상기 블록 단위의 코드가 수행하는 공격 기법의 식별자 및 상기 블록 단위의 코드를 생성한 공격자의 식별자로 프로파일링하여 실행 파일 분석 결과를 생성하고;
상기 실행 파일 분석 결과를 기반으로 제 1 사용자 클러스터링 데이터를 생성하고, 상기 제 1 사용자와 다른 제 2 사용자의 클러스터링 데이터와 상기 실행 파일 분석 결과간의 유사도를 비교하고; 및
상기 유사도가 기설정된 값보다 높은 경우, 상기 제 2 사용자에게 상기 유사도와 관련된 정보를 제공하는; 사이버 보안 위협 정보를 처리하는 프로그램을 저장하는 저장 매체.disassembling the executable file to obtain a disassembled code and reconstructing the disassembled code to obtain a reconstructed disassembled code according to a first user executable file analysis request signal for analyzing the executable file;
processing the reconstructed disassembled code to convert it into a hash function and convert the hash function into N-gram (N is a natural number) data;
Ensemble machine learning is performed on the block-unit code of the converted N-gram data to generate an identifier of an attack technique performed by the block-unit code and the block-unit code Profiling with an attacker's identifier to generate an executable file analysis result;
generating first user clustering data based on a result of analyzing the executable file, and comparing a similarity between clustering data of a second user different from the first user and a result of analyzing the executable file; and
providing information related to the similarity to the second user when the similarity is higher than a preset value; A storage medium that stores a program that processes cyber security threat information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210194045A KR20230103275A (en) | 2021-12-31 | 2021-12-31 | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210194045A KR20230103275A (en) | 2021-12-31 | 2021-12-31 | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230103275A true KR20230103275A (en) | 2023-07-07 |
Family
ID=87153898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210194045A KR20230103275A (en) | 2021-12-31 | 2021-12-31 | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230103275A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117792801A (en) * | 2024-02-28 | 2024-03-29 | 贵州华谊联盛科技有限公司 | Network security threat identification method and system based on multivariate event analysis |
CN117909978A (en) * | 2024-03-14 | 2024-04-19 | 福建银数信息技术有限公司 | Analysis management method and system based on big data security |
KR102694536B1 (en) * | 2023-10-11 | 2024-08-12 | 주식회사 엔텀 | System for providing software bill of materials |
-
2021
- 2021-12-31 KR KR1020210194045A patent/KR20230103275A/en unknown
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102694536B1 (en) * | 2023-10-11 | 2024-08-12 | 주식회사 엔텀 | System for providing software bill of materials |
CN117792801A (en) * | 2024-02-28 | 2024-03-29 | 贵州华谊联盛科技有限公司 | Network security threat identification method and system based on multivariate event analysis |
CN117792801B (en) * | 2024-02-28 | 2024-05-14 | 贵州华谊联盛科技有限公司 | Network security threat identification method and system based on multivariate event analysis |
CN117909978A (en) * | 2024-03-14 | 2024-04-19 | 福建银数信息技术有限公司 | Analysis management method and system based on big data security |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9781144B1 (en) | Determining duplicate objects for malware analysis using environmental/context information | |
KR102362516B1 (en) | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information | |
KR102424014B1 (en) | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information | |
JP2023506168A (en) | Automatic semantic modeling of system events | |
KR102396237B1 (en) | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information | |
KR20230103275A (en) | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information | |
US20240054210A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
US20230252144A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
KR102420884B1 (en) | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information | |
KR102411383B1 (en) | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information | |
KR102447279B1 (en) | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information | |
KR102396236B1 (en) | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information | |
US20240054215A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
US20230048076A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
KR102437376B1 (en) | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information | |
KR102396238B1 (en) | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information | |
KR102447280B1 (en) | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information | |
KR102447278B1 (en) | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information | |
US20240211595A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
US20240214406A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
US20240214396A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
US20240348639A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
KR20240017644A (en) | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a software processing cyber threat information | |
US20240346140A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
KR20240021676A (en) | Apparatus for processing cyber threat information, method for processing cyber threat information, and medium for storing a program processing cyber threat information |