KR102045772B1 - Electronic system and method for detecting malicious code - Google Patents
Electronic system and method for detecting malicious code Download PDFInfo
- Publication number
- KR102045772B1 KR102045772B1 KR1020150020976A KR20150020976A KR102045772B1 KR 102045772 B1 KR102045772 B1 KR 102045772B1 KR 1020150020976 A KR1020150020976 A KR 1020150020976A KR 20150020976 A KR20150020976 A KR 20150020976A KR 102045772 B1 KR102045772 B1 KR 102045772B1
- Authority
- KR
- South Korea
- Prior art keywords
- code
- malicious
- models
- normal
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 사용자 장치에서 발생하는 시스템 호출들 각각이 속하는 분류에 관한 분류 정보를 저장하는 분류 정보 스토리지, 각각이 정상 코드가 실행될 때 발생하는 시스템 호출들에 기초하여 생성된 하나 이상의 정상 호출 모델들 및 각각이 악성 코드가 실행될 때 발생하는 시스템 호출들에 기초하여 생성된 하나 이상의 악성 호출 모델들에 관한 정보를 저장하는 모델 정보 스토리지, 사용자 장치에서 실행된 어플리케이션에 의해 발생한 시스템 호출들을 포함하는 탐지 대상 호출 패턴의 데이터를 제공받는 데이터 수신기, 분류 정보를 참조하여 탐지 대상 호출 패턴에 포함되는 시스템 호출들에 관한 특성을 추출하는 어플리케이션 특성 추출기, 및 정상 호출 모델들 및 악성 호출 모델들 중 적어도 하나와 추출된 특성을 비교하여 어플리케이션의 실행 코드가 악성인지 여부를 탐지하는 코드 탐지기를 포함하는 전자 시스템을 제공한다. 본 발명에 따르면, 이미 알려진 악성 코드뿐만 아니라, 변종 악성 코드 또는 알려지지 않은 악성 코드가 탐지될 수 있다.The present invention provides a classification information storage for storing classification information regarding a classification to which each of the system calls occurring in a user device belongs, one or more normal call models generated based on system calls each occurring when a normal code is executed; Model-informed storage, each of which stores information about one or more malicious invocation models generated based on system calls that occur when malicious code is executed, and a detection target call that includes system calls made by an application executed on a user device. A data receiver receiving the data of the pattern, an application feature extractor extracting a feature on system calls included in the detected call pattern by referring to classification information, and extracted with at least one of normal call models and malicious call models Compare the characteristics of the application An electronic system is provided that includes a code detector for detecting whether a row code is malicious. According to the present invention, not only known malicious code but also variant malicious code or unknown malicious code can be detected.
Description
본 발명은 악성 코드(Malicious Code)의 탐지에 관한 것으로, 좀 더 구체적으로는 악성 코드를 탐지하기 위한 전자 시스템 및 방법에 관한 것이다.The present invention relates to the detection of malicious code, and more particularly to an electronic system and method for detecting malicious code.
악성 코드는 특정 목표 또는 불특정 목표들을 공격하기 위해 이용된다. 악성 코드에 의한 공격은, 예로서, 악성 코드에 감염된 파일을 실행(Execution)함으로써 시작된다. 전자 시스템의 사용자는 자신도 모르게 악성 코드에 감염된 파일을 실행하거나 악성 코드에 감염된 파일을 인터넷을 통해 다운로드 한다. 악성 코드는 개인 정보 유출, 시스템 파괴, 서비스 거부 등과 같은 다양한 문제를 일으킨다. 따라서, 악성 코드를 탐지하는 것은 근래 중요한 이슈로서 강조되고 있다.Malicious code is used to attack specific or unspecific targets. An attack by malicious code is initiated, for example, by executing a file infected with malicious code. Users of electronic systems unknowingly run files infected with malware or download files infected with malware over the Internet. Malicious code causes various problems such as personal information leakage, system destruction, denial of service, and so on. Therefore, detecting malicious code has been highlighted as an important issue in recent years.
악성 코드를 탐지하기 위해, 정적(Static) 분석 및 동적(Dynamic) 분석이 수행된다. 정적 분석은 악성 코드에 감염된 것으로 의심되는 파일의 코드를 역으로(Reversely) 분석하기 위해 이용된다. 정적 분석을 통해, 악성 코드에 감염된 것으로 의심되는 파일의 동작이 예측된다. 동적 분석은 악성 코드에 감염된 것으로 의심되는 파일을 실행시킴으로써 악성 코드에 감염된 것으로 의심되는 파일의 동작을 직접 확인하기 위해 이용된다.In order to detect malicious code, static analysis and dynamic analysis are performed. Static analysis is used to reversely analyze the code of files suspected of being infected with malicious code. Static analysis predicts the behavior of files suspected of being infected with malicious code. Dynamic analysis is used to directly check the behavior of files suspected of being infected with malicious code by executing files suspected of being infected with malware.
정적 분석 및 동적 분석을 통해, 악성 코드에 감염된 것으로 의심되는 파일이 분석될 수 있고 악성 코드가 탐지될 수 있다. 정적 분석 및 동적 분석에 따르면, 이미 알려진 악성 코드가 정확히 탐지될 수 있다. 그러나, 변종(Mutant) 악성 코드 또는 알려지지 않은 악성 코드는 탐지되기 어렵다.Through static and dynamic analysis, files suspected of being infected with malicious code can be analyzed and malicious code can be detected. Static and dynamic analysis can accurately detect known malicious code. However, Mutant malware or unknown malware is difficult to detect.
정적 분석 및 동적 분석을 보완하기 위해, 휴리스틱(Heuristic) 기법이 이용된다. 휴리스틱 기법은 알려진 악성 코드와 유사한 코드 패턴을 포함하는 변종 악성 코드 또는 알려지지 않은 악성 코드를 탐지하기 위해 이용된다. 예로서, 변종 악성 코드 또는 알려지지 않은 악성 코드를 탐지하기 위해, 이미 알려진 시나리오에 기초하여 프로세스의 행동이 감시될 수 있다. 그러나, 시나리오에 포함되지 않은 비정상 행동은 탐지되기 어렵다. 또한, 악성 코드에 감염된 것으로 의심되는 파일이 장시간 동안 실행된 경우, 의심 행위를 추적하는 것이 어렵다.To complement static and dynamic analysis, heuristic techniques are used. Heuristic techniques are used to detect variant or unknown malicious code that includes code patterns similar to known malicious code. For example, to detect variant malware or unknown malware, the behavior of the process may be monitored based on known scenarios. However, abnormal behavior not included in the scenario is difficult to detect. In addition, if a file suspected of being infected with malicious code has been executed for a long time, it is difficult to track suspicious activity.
악성 코드는 다양한 경로(Route)를 통해 공격 목표에 은밀하게 침투하고, 장시간 동안 잠복한다. 게다가, 악성 코드의 공격 패턴은 점점 다양해지고 있고 진화하고 있다. 이런 이유 때문에, 악성 코드를 미리 탐지하고 악성 코드의 공격에 미리 대비하는 것은 어렵다. 따라서, 이미 알려진 악성 코드뿐만 아니라, 변종 악성 코드 또는 알려지지 않은 악성 코드를 정확히 탐지하기 위한 방법이 필요하다.Malicious code penetrates into attack targets through various routes and hides for a long time. In addition, malicious code attack patterns are becoming more diverse and evolving. For this reason, it is difficult to detect malicious code in advance and prepare for attack in advance. Therefore, there is a need for a method for accurately detecting not only known malicious code but also variant malicious code or unknown malicious code.
이미 알려진 악성 코드뿐만 아니라, 변종 악성 코드 또는 알려지지 않은 악성 코드를 탐지하기 위한 전자 시스템 및 방법이 제공된다. 본 발명의 실시 예에서, 전자 시스템은 악성 코드를 탐지하기 위해, 어플리케이션(Application)에 의해 발생한 시스템 호출(System Call)들에 관한 특성(Feature)을 추출하고 호출 모델(Call Model)을 생성할 수 있다. 특히, 본 발명의 실시 예에 따른 전자 시스템은 악성 코드가 실행될 때 발생하는 시스템 호출들에 기초하여 생성된 악성 호출 모델뿐만 아니라, 정상(Normal) 코드가 실행될 때 발생하는 시스템 호출들에 기초하여 생성된 정상 호출 모델을 참조할 수 있다.In addition to known malware, electronic systems and methods are provided for detecting variant or unknown malware. In an embodiment of the present invention, the electronic system may extract a feature regarding system calls generated by an application and generate a call model to detect malicious code. have. In particular, the electronic system according to an embodiment of the present invention generates not only a malicious call model generated based on system calls generated when malicious code is executed, but also based on system calls generated when normal code is executed. Can refer to the normal call model.
본 발명의 일 실시 예에 따른 전자 시스템은 사용자 장치에서 발생하는 시스템 호출들 각각이 속하는 분류에 관한 분류 정보를 저장하도록 구성되는 분류 정보 스토리지; 각각이 사용자 장치에서 정상 코드가 실행될 때 발생하는 시스템 호출들에 기초하여 생성된 하나 이상의 정상 호출 모델들, 및 각각이 사용자 장치에서 악성 코드가 실행될 때 발생하는 시스템 호출들에 기초하여 생성된 하나 이상의 악성 호출 모델들에 관한 정보를 저장하도록 구성되는 모델 정보 스토리지; 사용자 장치에서 실행된 어플리케이션에 의해 발생한 시스템 호출들을 포함하는 탐지 대상 호출 패턴의 데이터를 제공받도록 구성되는 데이터 수신기; 제공받은 데이터 및 분류 정보를 참조하여 탐지 대상 호출 패턴에 포함되는 시스템 호출들에 관한 특성을 추출하도록 구성되는 어플리케이션 특성 추출기; 및 하나 이상의 정상 호출 모델들 및 하나 이상의 악성 호출 모델들 중 적어도 하나와 추출된 특성을 비교하여 어플리케이션의 실행 코드가 악성인지 여부를 탐지하도록 구성되는 코드 탐지기를 포함할 수 있다.According to an embodiment of the present disclosure, an electronic system includes: classification information storage configured to store classification information regarding a classification to which each of system calls occurring in a user device belongs; One or more normal call models, each generated based on system calls that occur when the normal code executes on the user device, and one or more generated based on system calls, each generated when the malicious code executes on the user device. Model information storage configured to store information regarding malicious call models; A data receiver configured to be provided with data of a detection target call pattern including system calls made by an application executed on a user device; An application feature extractor configured to extract a feature relating to system calls included in the detected call pattern by referring to the provided data and classification information; And a code detector configured to detect whether the executable code of the application is malicious by comparing the extracted characteristic with at least one of the one or more normal calling models and the one or more malicious calling models.
본 발명의 일 실시 예에서, 분류 정보는 프로세스, 쓰레드, 메모리, 파일, 레지스트리, 네트워크, 서비스, 및 기타 분류들 중 적어도 하나와 사용자 장치에서 발생하는 시스템 호출들 사이의 대응 관계에 관한 정보를 포함할 수 있다.In one embodiment of the invention, the categorization information includes information about a correspondence between at least one of a process, thread, memory, file, registry, network, service, and other categorizations and system calls occurring in the user device. can do.
본 발명의 일 실시 예에 따른 전자 시스템은 탐지 대상 호출 패턴의 데이터가 제공되기 전에 미리 분류 정보를 참조하여 하나 이상의 정상 호출 모델들 및 하나 이상의 악성 호출 모델들을 생성하도록 구성되는 모델 생성기를 더 포함할 수 있다.According to an embodiment of the present disclosure, the electronic system may further include a model generator configured to generate one or more normal call models and one or more malicious call models with reference to classification information in advance before data of the detected call pattern is provided. Can be.
본 발명의 일 실시 예에서, 모델 생성기는 추출된 특성 및 코드 탐지기의 탐지 결과에 기초하여 하나 이상의 정상 호출 모델들 및 하나 이상의 악성 호출 모델들 중 적어도 하나를 갱신할 수 있다.In one embodiment of the present invention, the model generator may update at least one of one or more normal call models and one or more malicious call models based on the extracted feature and the detection result of the code detector.
본 발명의 일 실시 예에서, 하나 이상의 정상 호출 모델들 각각은 정상 코드가 실행될 때 발생하는 시스템 호출들 각각의 분류, 및 정상 코드가 실행될 때 접근되는 메모리의 위치, 정상 코드가 실행될 때 접근되는 시스템 파일의 종류, 정상 코드가 실행될 때 접근되는 레지스트리의 종류, 정상 코드가 실행될 때 접근되는 네트워크의 특성, 및 정상 코드가 실행될 때 동작하는 서비스의 유형 중 적어도 하나에 기초하여 생성될 수 있다. 나아가, 하나 이상의 악성 호출 모델들 각각은 악성 코드가 실행될 때 발생하는 시스템 호출들 각각의 분류, 및 악성 코드가 실행될 때 접근되는 메모리의 위치, 악성 코드가 실행될 때 접근되는 시스템 파일의 종류, 악성 코드가 실행될 때 접근되는 레지스트리의 종류, 악성 코드가 실행될 때 접근되는 네트워크의 특성, 및 악성 코드가 실행될 때 동작하는 서비스의 유형 중 적어도 하나에 기초하여 생성될 수 있다.In one embodiment of the invention, each of the one or more normal call models is a classification of each of the system calls that occur when normal code is executed, and the location of memory accessed when normal code is executed, the system accessed when normal code is executed. The file may be generated based on at least one of a kind of a file, a kind of a registry accessed when the normal code is executed, a characteristic of a network accessed when the normal code is executed, and a type of a service operating when the normal code is executed. Furthermore, each of the one or more malicious calling models may be classified into a class of each of the system calls occurring when the malicious code is executed, the location of the memory accessed when the malicious code is executed, the type of system file accessed when the malicious code is executed, and the malicious code. May be generated based on at least one of a kind of a registry accessed when the program is executed, a characteristic of a network accessed when the malicious code is executed, and a type of a service that operates when the malicious code is executed.
본 발명의 일 실시 예에서, 어플리케이션 특성 추출기는 탐지 대상 호출 패턴에 포함되는 시스템 호출들이 속하는 분류들, 탐지 대상 호출 패턴에 포함되는 시스템 호출들의 발생 순서, 및 탐지 대상 호출 패턴에 포함되는 시스템 호출들 각각의 호출 횟수 중 적어도 하나를 추출할 수 있다.In an embodiment of the present invention, the application feature extractor includes classifications to which system calls included in the detected call pattern belong, order of occurrence of system calls included in the detected call pattern, and system calls included in the detected call pattern. At least one of each call count may be extracted.
본 발명의 다른 실시 예에 따른 전자 시스템은 각각이 어플리케이션을 실행하도록 구성되고, 어플리케이션이 실행될 때 발생하는 시스템 호출들을 후킹하도록 구성되는 이벤트 후커를 포함하고, 후킹된 시스템 호출들에 관한 이벤트 로그를 생성하도록 구성되는 복수의 컴퓨팅 장치; 복수의 컴퓨팅 장치에서 발생하는 시스템 호출들 각각이 속하는 분류에 관한 분류 정보를 저장하도록 구성되는 분류 정보 스토리지; 각각이 복수의 컴퓨팅 장치에서 정상 코드가 실행될 때 발생하는 시스템 호출들에 기초하여 생성된 하나 이상의 정상 호출 모델들, 및 각각이 복수의 컴퓨팅 장치에서 악성 코드가 실행될 때 발생하는 시스템 호출들에 기초하여 생성된 하나 이상의 악성 호출 모델들에 관한 정보를 저장하도록 구성되는 모델 정보 스토리지; 이벤트 로그 및 분류 정보를 참조하여 후킹된 시스템 호출들에 관한 특성을 추출하도록 구성되는 어플리케이션 특성 추출기; 및 하나 이상의 정상 호출 모델들 및 하나 이상의 악성 호출 모델들 중 적어도 하나와 추출된 특성을 비교하여 어플리케이션의 실행 코드가 악성 코드, 변종 악성 코드, 및 의심 코드 중 적어도 하나를 포함하는지 여부를 탐지하도록 구성되는 코드 탐지기를 포함할 수 있다.According to another embodiment of the present invention, an electronic system includes an event hooker, each configured to execute an application, and configured to hook system calls occurring when the application is executed, and generate an event log regarding the hooked system calls. A plurality of computing devices configured to; A classification information storage configured to store classification information regarding a classification to which each of the system calls occurring in the plurality of computing devices belongs; One or more normal call models, each generated based on system calls that occur when normal code is executed on a plurality of computing devices, and each based on system calls that occur when malicious code is executed on a plurality of computing devices. Model information storage configured to store information about the generated one or more malicious invocation models; An application feature extractor configured to extract a feature about hooked system calls with reference to the event log and classification information; And comparing the extracted characteristic with at least one of the one or more normal calling models and the one or more malicious calling models to detect whether the executable code of the application includes at least one of malicious code, variant malicious code, and suspicious code. It may include a code detector.
본 발명의 다른 실시 예에서, 후킹된 시스템 호출들에 관한 특성은 후킹된 시스템 호출들이 속하는 분류들, 후킹된 시스템 호출들의 발생 순서, 및 후킹된 시스템 호출들 각각의 호출 횟수 중 적어도 하나를 포함할 수 있다.In another embodiment of the present invention, a characteristic relating to hooked system calls may include at least one of the categories to which the hooked system calls belong, the order in which the hooked system calls occur, and the number of calls of each of the hooked system calls. Can be.
본 발명의 다른 실시 예에 따른 전자 시스템은 코드 탐지기의 탐지 결과에 기초하여 어플리케이션의 실행 코드에 포함되는 악성 코드, 변종 악성 코드, 및 의심 코드 중 적어도 하나에 관한 정보를 데이터베이스에 저장하도록 구성되는 탐지 결과 처리기를 더 포함할 수 있다.According to another embodiment of the present invention, an electronic system is configured to store information on at least one of malicious code, variant malicious code, and suspect code included in an execution code of an application based on a detection result of a code detector in a database. It may further include a result processor.
본 발명의 또 다른 실시 예에 따라 전자 시스템을 이용하여 악성 코드를 탐지하는 방법은: 컴퓨팅 장치에서 정상 코드가 실행될 때 발생하는 시스템 호출들에 관한 정상 호출 패턴 정보, 및 컴퓨팅 장치에서 악성 코드가 실행될 때 발생하는 시스템 호출들에 관한 악성 호출 패턴 정보를 수집하는 단계; 정상 호출 패턴 정보 및 악성 호출 패턴 정보에 각각 기초하여 하나 이상의 정상 호출 모델들 및 하나 이상의 악성 호출 모델들을 생성하는 단계; 하나 이상의 사용자 장치들에서 실행된 어플리케이션에 의해 발생한 시스템 호출들을 포함하는 탐지 대상 호출 패턴의 데이터를 제공받는 단계; 컴퓨팅 장치에서 발생하는 시스템 호출들 각각이 속하는 분류에 관한 분류 정보를 참조하여 탐지 대상 호출 패턴에 포함되는 시스템 호출들에 관한 특성을 추출하는 단계; 및 하나 이상의 정상 호출 모델들 및 하나 이상의 악성 호출 모델들 중 적어도 하나와 추출된 특성을 비교하여 어플리케이션의 실행 코드가 악성인지 여부를 탐지하는 단계를 포함할 수 있다.According to another embodiment of the present invention, a method for detecting malicious code using an electronic system includes: normal call pattern information about system calls occurring when normal code is executed on a computing device, and malicious code to be executed on a computing device. Collecting malicious call pattern information regarding system calls that occur when; Generating one or more normal call models and one or more malicious call models based on the normal call pattern information and the malicious call pattern information, respectively; Receiving data of a detection target call pattern including system calls made by an application executed on one or more user devices; Extracting a characteristic about system calls included in a call pattern to be detected by referring to classification information regarding a classification to which each of the system calls occurring in the computing device belongs; And comparing the extracted characteristic with at least one of one or more normal call models and one or more malicious call models to detect whether the execution code of the application is malicious.
본 발명의 또 다른 실시 예에서, 탐지하는 단계는: 하나 이상의 정상 호출 모델들 중 적어도 하나와 추출된 특성을 비교하는 단계; 및 하나 이상의 정상 호출 모델들 중에서 추출된 특성과 비교된 대상 정상 호출 모델과 추출된 특성 사이의 유사도가 제 1 기준 값 이상인 경우, 어플리케이션의 실행 코드가 정상임을 판별하는 단계를 포함할 수 있다.In another embodiment of the invention, the detecting step comprises: comparing the extracted characteristic with at least one of the one or more normal call models; And when the similarity between the target normal call model compared with the extracted feature and the extracted feature among the one or more normal call models is equal to or greater than the first reference value, determining that the execution code of the application is normal.
본 발명의 또 다른 실시 예에 따른 방법은 대상 정상 호출 모델과 추출된 특성 사이의 유사도가 제 1 기준 값 이상이고 대상 정상 호출 모델과 추출된 특성 사이의 차이가 제 2 기준 값 이상인 경우, 추출된 특성을 참조하여 대상 정상 호출 모델을 갱신하는 단계를 더 포함할 수 있다.According to another embodiment of the present invention, if the similarity between the target normal call model and the extracted feature is greater than or equal to the first reference value and the difference between the target normal call model and the extracted feature is greater than or equal to the second reference value, the extracted method is extracted. The method may further include updating the target normal call model by referring to the property.
본 발명의 또 다른 실시 예에서, 탐지하는 단계는: 하나 이상의 정상 호출 모델들 각각과 추출된 특성 사이의 유사도가 제 1 기준 값보다 작은 경우, 하나 이상의 악성 호출 모델들 중 적어도 하나와 추출된 특성을 비교하는 단계; 및 하나 이상의 악성 호출 모델들 중 적어도 하나와 추출된 특성 사이의 유사도가 제 3 기준 값 이상인 경우, 어플리케이션의 실행 코드가 악성 코드를 포함함을 판별하는 단계를 더 포함할 수 있다.In another embodiment of the present invention, the detecting step comprises: when the similarity between each of the one or more normal call models and the extracted feature is less than the first reference value, at least one of the one or more malicious call models and the extracted feature Comparing the; And when the similarity between at least one of the one or more malicious calling models and the extracted characteristic is equal to or greater than a third reference value, determining that the execution code of the application includes malicious code.
본 발명의 또 다른 실시 예에서, 탐지하는 단계는: 하나 이상의 악성 호출 모델들 중 적어도 하나와 추출된 특성 사이의 유사도가 제 3 기준 값보다 작고 제 4 기준 값 이상인 경우, 어플리케이션의 실행 코드가 변종 악성 코드를 포함함을 판별하는 단계를 더 포함할 수 있다.In another embodiment of the invention, the detecting step comprises: if the similarity between the extracted characteristic and at least one of the one or more malicious invocation models is less than the third reference value and is greater than or equal to the fourth reference value, the executable code of the application is modified. The method may further include determining that the malicious code is included.
본 발명의 또 다른 실시 예에서, 탐지하는 단계는: 하나 이상의 악성 호출 모델들 각각과 추출된 특성 사이의 유사도가 제 4 기준 값보다 작은 경우, 어플리케이션의 실행 코드를 의심 코드로서 관리하는 단계를 더 포함할 수 있다.In another embodiment of the invention, the detecting step further comprises: managing the executable code of the application as suspect code when the similarity between each of the one or more malicious invocation models and the extracted characteristic is less than the fourth reference value. It may include.
본 발명의 또 다른 실시 예에서, 관리하는 단계는: 하나 이상의 정상 호출 모델들 각각과 추출된 특성 사이의 유사도가 제 5 기준 값 이하인 경우, 어플리케이션의 실행 코드가 새로운 악성 코드를 포함함을 판별하는 단계; 및 추출된 특성을 참조하여 새로운 악성 코드에 대응하는 새로운 악성 호출 모델을 생성하는 단계를 포함할 수 있다.In another embodiment of the present invention, the managing step may include: determining that the executable code of the application includes new malicious code when the similarity between each of the one or more normal call models and the extracted feature is equal to or less than a fifth reference value; step; And generating a new malicious calling model corresponding to the new malicious code with reference to the extracted characteristic.
본 발명의 또 다른 실시 예에서, 관리하는 단계는: 하나 이상의 정상 호출 모델들 중 적어도 하나와 추출된 특성 사이의 유사도가 제 5 기준 값보다 큰 경우, 어플리케이션의 실행 코드를 관심 코드로서 저장하는 단계; 및 관심 코드를 포함하는 다른 실행 코드가 탐지된 경우, 추출된 특성을 참조하여 관심 코드에 대응하는 새로운 악성 호출 모델을 생성하는 단계를 더 포함할 수 있다.In another embodiment of the present invention, the managing includes: storing the execution code of the application as the interest code when the similarity between the extracted characteristic and at least one of the one or more normal call models is greater than the fifth reference value ; And when another executable code including the code of interest is detected, generating a new malicious calling model corresponding to the code of interest with reference to the extracted feature.
본 발명의 실시 예에 따르면, 이미 알려진 악성 코드뿐만 아니라, 변종 악성 코드 또는 알려지지 않은 악성 코드가 탐지될 수 있다. 나아가, 탐지 결과와 유사한 공격 패턴에 관한 히스토리(History)가 있는 경우, 탐지 결과는 공격 경로 및 근원지를 찾기 위해 이용될 수 있다. 따라서, 새로운 유형의 공격이 대비될 수 있다. 뿐만 아니라, 본 발명의 실시 예에 따르면, 호출 모델에 기초하여 어플리케이션이 효율적으로 분류될 수 있다.According to an embodiment of the present invention, not only the known malicious code but also the modified malicious code or unknown malicious code may be detected. Furthermore, if there is a history of attack patterns similar to the detection results, the detection results can be used to find the attack path and source. Thus, new types of attacks can be prepared. In addition, according to an embodiment of the present invention, an application may be efficiently classified based on a call model.
도 1은 본 발명의 실시 예에 따른 전자 시스템을 보여주는 블록도이다.
도 2는 도 1의 전자 시스템에 포함되는 컴퓨팅 장치를 보여주는 블록도이다.
도 3은 도 2의 컴퓨팅 장치에서 발생하는 시스템 호출들이 속하는 분류들의 예시를 보여주는 표이다.
도 4는 도 1의 전자 시스템에 포함되는 악성 코드 탐지 시스템 및 도 2의 컴퓨팅 장치에 포함되는 이벤트 후커(Event Hooker)를 보여주는 블록도이다.
도 5는 도 4의 악성 코드 탐지 시스템을 이용하여 악성 코드를 탐지하는 과정을 설명하기 위한 개념도이다.
도 6은 도 1의 전자 시스템에 포함되는 악성 코드 탐지 시스템을 보여주는 블록도이다.
도 7은 도 1의 전자 시스템에 포함되는 악성 코드 탐지 시스템을 보여주는 블록도이다.
도 8a 및 도 8b는 본 발명의 실시 예에 따른 악성 코드 탐지 시스템의 동작을 설명하는 흐름도이다.
도 9는 도 8b의 악성 코드를 탐지하는 단계를 더 자세히 설명하는 흐름도이다.
도 10은 도 9의 의심 코드를 관리하는 단계를 더 자세히 설명하는 흐름도이다.1 is a block diagram illustrating an electronic system according to an exemplary embodiment of the present disclosure.
FIG. 2 is a block diagram illustrating a computing device included in the electronic system of FIG. 1.
3 is a table showing examples of classifications to which system calls occurring in the computing device of FIG. 2 belong.
4 is a block diagram illustrating a malicious code detection system included in the electronic system of FIG. 1 and an event hooker included in the computing device of FIG. 2.
5 is a conceptual diagram illustrating a process of detecting malicious code by using the malicious code detection system of FIG. 4.
6 is a block diagram illustrating a malicious code detection system included in the electronic system of FIG. 1.
7 is a block diagram illustrating a malicious code detection system included in the electronic system of FIG. 1.
8A and 8B are flowcharts illustrating an operation of a malicious code detection system according to an embodiment of the present invention.
9 is a flow chart that describes in more detail the step of detecting malicious code of FIG. 8B.
10 is a flow chart that describes in more detail the steps of managing the suspicious code of FIG.
전술한 특성 및 이하 상세한 설명은 모두 본 발명의 설명 및 이해를 돕기 위한 예시적인 사항이다. 즉, 본 발명은 이와 같은 실시 예에 한정되지 않고 다른 형태로 구체화될 수 있다. 다음 실시 형태들은 단지 본 발명을 완전히 개시하기 위한 예시이며, 본 발명이 속하는 기술 분야의 통상의 기술자들에게 본 발명을 전달하기 위한 설명이다. 따라서, 본 발명의 구성 요소들을 구현하기 위한 방법이 여럿 있는 경우에는, 이들 방법 중 특정한 것 또는 이와 동일성 있는 것 가운데 어떠한 것으로든 본 발명의 구현이 가능함을 분명히 할 필요가 있다.The foregoing characteristics and the following detailed description are all illustrative for ease of explanation and understanding of the invention. That is, the present invention is not limited to this embodiment and may be embodied in other forms. The following embodiments are merely examples to fully disclose the present invention, and are descriptions for conveying the present invention to those skilled in the art to which the present invention pertains. Thus, where there are several methods for implementing the components of the present invention, it is necessary to clarify that the implementation of the present invention is possible in any of these methods or any of the same.
본 명세서에서 어떤 구성이 특정 요소들을 포함한다는 언급이 있는 경우, 또는 어떤 과정이 특정 단계들을 포함한다는 언급이 있는 경우는, 그 외 다른 요소 또는 다른 단계들이 더 포함될 수 있음을 의미한다. 즉, 본 명세서에서 사용되는 용어들은 특정 실시 형태를 설명하기 위한 것일 뿐이고, 본 발명의 개념을 한정하기 위한 것이 아니다. 나아가, 발명의 이해를 돕기 위해 설명한 예시들은 그것의 상보적인 실시 예도 포함한다.In the present specification, when there is a statement that a configuration includes specific elements, or when a process includes specific steps, it means that other elements or other steps may be further included. That is, the terms used in the present specification are only for describing specific embodiments and are not intended to limit the concept of the present invention. Furthermore, the described examples to aid the understanding of the invention also include their complementary embodiments.
본 명세서에서 사용되는 용어들은 본 발명이 속하는 기술 분야의 통상의 기술자들이 일반적으로 이해하는 의미를 갖는다. 보편적으로 사용되는 용어들은 본 명세서의 맥락에 따라 일관적인 의미로 해석되어야 한다. 또한, 본 명세서에서 사용되는 용어들은, 그 의미가 명확히 정의된 경우가 아니라면, 지나치게 이상적이거나 형식적인 의미로 해석되지 않아야 한다. 이하 첨부된 도면을 통하여 본 발명의 실시 예가 설명된다.The terms used herein have the meanings that are commonly understood by those skilled in the art. Terms commonly used should be interpreted in a consistent sense in the context of the present specification. In addition, terms used in the present specification should not be interpreted in an idealistic or formal sense unless the meaning is clearly defined. Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.
도 1은 본 발명의 실시 예에 따른 전자 시스템을 보여주는 블록도이다. 전자 시스템(1000)은 악성 코드(Malicious Code) 탐지 시스템(100), 하나 이상의 컴퓨팅 장치들(210, 220, 230), 유선 네트워크(310), 및 무선 네트워크(320)를 포함할 수 있다.1 is a block diagram illustrating an electronic system according to an exemplary embodiment of the present disclosure. The
예로서, 악성 코드 탐지 시스템(100)은 서버(Server) 시스템의 형태로 구현될 수 있다. 이를 위해, 악성 코드 탐지 시스템(100)은 하나 이상의 컴퓨팅 장치들을 포함할 수 있다. 예로서, 악성 코드 탐지 시스템(100)에 포함되는 컴퓨팅 장치는 범용 컴퓨터, 워크스테이션(Workstation) 등과 같은 전자 장치일 수 있다. 예로서, 악성 코드 탐지 시스템(100)에 포함되는 컴퓨팅 장치는 하나 이상의 프로세서들을 포함할 수 있다.For example, the malicious
악성 코드 탐지 시스템(100)은 하나 이상의 프로세서들의 동작에 따라 고유의 기능을 수행할 수 있다. 악성 코드 탐지 시스템(100)은 컴퓨팅 장치들(210, 220, 230)을 공격하는 악성 코드를 탐지할 수 있다. 악성 코드 탐지 시스템(100)의 구성 및 동작은 도 4 내지 도 10에 대한 참조와 함께 설명된다.The malicious
예로서, 컴퓨팅 장치들(210, 220, 230) 각각은 사용자 장치일 수 있다. 예로서, 컴퓨팅 장치들(210, 220, 230) 각각은 개인용 컴퓨터, 노트북, 스마트폰, 태블릿, 웨어러블(Wearable) 장치 등과 같은 전자 장치일 수 있으나, 본 발명은 이 예에 의해 제한되지 않는다. 컴퓨팅 장치들(210, 220, 230) 각각은 하나 이상의 프로세서들을 포함할 수 있다. 예로서, 컴퓨팅 장치들(210, 220, 230) 각각은 범용 프로세서, 워크스테이션 프로세서, 어플리케이션(Application) 프로세서 등과 같은 프로세서를 포함할 수 있다.By way of example, each of the
컴퓨팅 장치들(210, 220, 230)은 프로세서의 동작에 따라 고유의 기능을 수행할 수 있다. 예로서, 컴퓨팅 장치들(210, 220, 230)은 어플리케이션을 실행하고, 사용자에게 서비스를 제공할 수 있다. 몇몇 경우, 컴퓨팅 장치들(210, 220, 230)에 의해 실행되는 어플리케이션의 실행 코드(Execution Code)는 악성 코드를 포함할 수 있다. 또는, 컴퓨팅 장치들(210, 220, 230)에 의해 실행되는 어플리케이션의 실행 코드는 변종(Mutant) 악성 코드 또는 알려지지 않은 악성 코드를 포함할 수 있다. 본 발명의 실시 예에 따른 전자 시스템(1000)은 어플리케이션의 실행 코드에 포함되는 악성 코드, 변종 악성 코드, 또는 알려지지 않은 악성 코드를 탐지할 수 있다.The
컴퓨팅 장치들(210, 220, 230)은 단독으로 고유의 기능을 수행할 수 있다. 또는, 컴퓨팅 장치들(210, 220, 230)은 네트워크를 통해 다른 컴퓨팅 장치와 통신함으로써 고유의 기능을 수행할 수 있다. 예로서, 컴퓨팅 장치들(210, 220, 230)은 유선 네트워크(310) 및 무선 네트워크(320) 중 적어도 하나를 통해 다른 컴퓨팅 장치와 통신할 수 있다.The
예로서, 유선 네트워크(310)는 USB(Universal Serial Bus), PCIe(Peripheral Component Interconnect Express), SATA(Serial Advanced Technology Attachment) 등과 같은 인터페이스 규약을 지원하거나, TCP/IP(Transmission Control Protocol/Internet Protocol) 등과 같은 통신 규약을 지원할 수 있다. 예로서, 무선 네트워크(320)는 LTE(Long Term Evolution), WiMax(Worldwide Interoperability for Microwave Access), GSM(Global System for Mobile communication), CDMA(Code Division Multiple Access), Bluetooth, NFC(Near Field Communication), WiFi(Wireless Fidelity), RFID(Radio Frequency Identification) 등과 같은 통신 규약을 지원할 수 있다. 그러나, 위 예들은 본 발명의 이해를 돕기 위한 것이고, 본 발명을 제한하기 위한 것은 아니다.For example, the
컴퓨팅 장치들(210, 220, 230)은 유선 네트워크(310) 및 무선 네트워크(320) 중 적어도 하나를 통해 악성 코드 탐지 시스템(100)과 통신할 수 있다. 컴퓨팅 장치들(210, 220, 230)은 유선 네트워크(310) 및 무선 네트워크(320) 중 적어도 하나를 통해 악성 코드 탐지 시스템(100)으로 데이터를 전송할 수 있다. 컴퓨팅 장치(210)의 구성 및 동작은 도 2에 대한 참조와 함께 설명된다.The
도 1에서, 전자 시스템(1000)이 세 개의 컴퓨팅 장치들(210, 220, 230)을 포함하는 것으로 도시되었다. 그러나, 컴퓨팅 장치들(210, 220, 230)의 개수는 도 1에 의해 제한되지 않는다. 전자 시스템(1000)은 한 개, 두 개, 또는 네 개 이상의 컴퓨팅 장치들을 포함할 수 있다. 전자 시스템(1000)에 포함되는 컴퓨팅 장치들의 개수는 다양하게 변경 또는 수정될 수 있다.In FIG. 1, the
도 2는 도 1의 전자 시스템에 포함되는 컴퓨팅 장치를 보여주는 블록도이다. 예로서, 도 2는 도 1의 컴퓨팅 장치(210)를 보여준다. 도 1의 전자 시스템(1000)에 포함되는 다른 컴퓨팅 장치들(220, 230) 각각은 컴퓨팅 장치(210)와 유사하게 구성되고 유사하게 동작할 수 있다. 따라서, 도 1의 전자 시스템(1000)에 포함되는 다른 컴퓨팅 장치들(220, 230)에 관한 중복되는 설명들은 설명의 편의를 위해 생략된다.FIG. 2 is a block diagram illustrating a computing device included in the electronic system of FIG. 1. As an example, FIG. 2 shows the
예로서, 컴퓨팅 장치(210)는 프로세서(211), 메모리(213), 스토리지(Storage; 215), 이벤트 후커(Event Hooker; 217), 및 버스(Bus; 219)를 포함할 수 있다. 그러나, 도 2에 나타낸 컴퓨팅 장치(210)의 구성은 본 발명의 이해를 돕기 위한 예시일 뿐이다. 컴퓨팅 장치(210)는 도 2에 나타내지 않은 다른 구성 요소들(예컨대, 통신 모듈, 유저 인터페이스(User Interface) 등)을 더 포함할 수 있다. 또는, 컴퓨팅 장치(210)는 도 2에 나타낸 구성 요소들 중 하나 이상을 포함하지 않을 수 있다. 본 발명은 도 2에 나타낸 구성에 의해 제한되지 않는다.For example, the
프로세서(211)는 컴퓨팅 장치(210)에서 수행되는 연산들을 처리할 수 있다. 예로서, 프로세서(211)는 하나 이상의 프로세서 코어들을 포함할 수 있다. 예로서, 프로세서(211)는 범용 프로세서, 워크스테이션 프로세서, 또는 어플리케이션 프로세서일 수 있다.The
메모리(213)는 프로세서(211)에 의해 처리된 또는 처리될 데이터를 임시로 저장할 수 있다. 예로서, 메모리(213)는 SRAM(Static Random Access Memory), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등과 같은 휘발성 메모리, 또는 플래시(Flash) 메모리, PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다. The
스토리지(215)는 전원 공급과 관계없이 데이터를 저장할 수 있다. 예로서, 스토리지(215)는 운영체제(Operating System)를 구동하기 위해 이용되는 파일들, 어플리케이션의 실행 파일들, 및 사용자 데이터를 저장할 수 있다. 예로서, 스토리지(215)는 HDD(Hard Disk Drive), SSD(Solid State Drive), SD(Secure Digital) 카드 등과 같이 불휘발성 메모리를 포함하는 장치일 수 있다.The
컴퓨팅 장치(210)는 어플리케이션을 실행할 수 있다. 예로서, 어플리케이션의 실행 파일들은 스토리지(215)에 저장될 수 있다. 어플리케이션의 실행 요청이 컴퓨팅 장치(210)의 사용자로부터 제공된 경우, 프로세서(211)는 어플리케이션을 실행하기 위해 필요한 데이터를 스토리지(215)로부터 메모리(213)로 로드할 수 있다. 프로세서(211)는 메모리(213)에 로드된 데이터를 이용하여 어플리케이션의 실행에 필요한 연산들을 처리할 수 있다.The
컴퓨팅 장치(210)에서 어플리케이션이 실행될 때, 다양한 유형의 시스템 호출들이 발생할 수 있고 시스템 호출들은 운영체제에 의해 처리될 수 있다. 이에 따라, 어플리케이션은 컴퓨팅 장치(210)의 자원(Resource)들을 이용하여 컴퓨팅 장치(210)의 사용자에게 서비스를 제공할 수 있다. 컴퓨팅 장치(210)에서 발생하는 시스템 호출들은 도 3에 대한 참조와 함께 설명된다.When an application is run on
이벤트 후커(217)는 어플리케이션이 실행될 때 발생하는 시스템 호출들을 후킹(Hooking)할 수 있다. 후킹은 함수 호출(Function Call), 시스템 메시지, 또는 이벤트를 가로채는 행위를 의미한다. 이벤트 후커(217)의 동작에 따라, 컴퓨팅 장치(210)에서 어플리케이션이 실행될 때 발생하는 시스템 호출들이 파악될 수 있다.The
실시 예로서, 컴퓨팅 장치(210)는 이벤트 후커(217)에 의해 후킹된 시스템 호출들에 관한 이벤트 로그(Event Log)를 생성할 수 있다. 즉, 컴퓨팅 장치(210)는 어플리케이션이 실행될 때 발생한 시스템 호출들에 관한 데이터를 생성할 수 있다. 실시 예로서, 이벤트 로그는 메모리(213) 또는 스토리지(215)에 저장될 수 있다. 저장된 이벤트 로그는 도 1의 유선 네트워크(310) 또는 무선 네트워크(320)를 통해 도 1의 악성 코드 탐지 시스템(100)으로 전송될 수 있다. 악성 코드 탐지 시스템(100)은 이벤트 로그를 참조하여 어플리케이션의 실행 코드가 악성인지 여부를 탐지할 수 있다. 악성 코드의 탐지는 도 4 내지 도 10에 대한 참조와 함께 설명된다.In an embodiment,
예로서, 저장된 이벤트 로그는 주기적으로(예컨대, 매 1분마다) 악성 코드 탐지 시스템(100)으로 전송될 수 있다. 또는, 저장된 이벤트 로그는 특정 조건이 충족될 때(예컨대, 전송 요청이 발생한 때) 악성 코드 탐지 시스템(100)으로 전송될 수 있다. 그러나, 본 발명은 위 실시 예 및 예시들에 의해 제한되지 않는다. 다른 예로서, 이벤트 후커(217)에 의해 후킹된 시스템 호출들에 관한 데이터는 실시간으로 악성 코드 탐지 시스템(100)으로 전송될 수 있다. 본 발명의 실시 예는 필요에 따라 다양하게 변경 또는 수정될 수 있다.As an example, the stored event log may be sent to the
버스(219)는 컴퓨팅 장치(210)의 구성 요소들 사이에서 통신 경로를 제공할 수 있다. 예로서, 프로세서(211), 메모리(213), 스토리지(215), 및 이벤트 후커(217)는 버스(219)를 통해 서로 데이터를 교환할 수 있다. 버스(219)는 컴퓨팅 장치(210)에서 이용되는 다양한 유형의 통신 포맷을 지원하도록 구성될 수 있다.The
도 3은 도 2의 컴퓨팅 장치에서 발생하는 시스템 호출들이 속하는 분류들의 예시를 보여주는 표이다.3 is a table showing examples of classifications to which system calls occurring in the computing device of FIG. 2 belong.
실시 예로서, 어플리케이션이 실행될 때 발생하는 시스템 호출들 각각은 프로세스, 쓰레드(Thread), 메모리, 파일, 레지스트리(Registry), 네트워크, 서비스, 및 기타(Others) 분류(Classification)들 중 하나와 관련될 수 있다. 예로서, "CreateProcess" 시스템 호출은 프로세스 분류에 속할 수 있고, "ReadFile" 시스템 호출은 파일 분류에 속할 수 있다. 예로서, 어플리케이션이 실행될 때 "ReadFile" 시스템 호출이 발생하는 경우, 시스템 파일에 관한 처리(예컨대, 읽기 동작)가 수행될 수 있다. 예로서, 윈도우즈(Windows) 운영체제의 "NtOpenThread" API 함수 호출은 쓰레드 분류의 "OpenThread" 시스템 호출에 대응할 수 있다.As an example, each of the system calls that occur when an application is executed may be associated with one of a process, a thread, a memory, a file, a registry, a network, a service, and other classifications. Can be. For example, the "CreateProcess" system call may belong to a process classification, and the "ReadFile" system call may belong to a file classification. For example, when a "ReadFile" system call occurs when an application is executed, processing (eg, a read operation) on a system file may be performed. As an example, the "NtOpenThread" API function call of the Windows operating system may correspond to the "OpenThread" system call of the thread classification.
어플리케이션이 실행될 때, 사용자에게 서비스를 제공하기 위해 하나 이상의 시스템 호출들이 발생할 수 있다. 도 2에 나타낸 이벤트 후커(217)는 어플리케이션이 실행될 때 발생하는 시스템 호출들을 후킹할 수 있다. 따라서, 이벤트 후커(217)의 동작에 따라, 어플리케이션이 실행될 때 발생하는 시스템 호출들이 파악될 수 있다.When an application runs, one or more system calls may occur to provide a service to a user. The
그런데, 어플리케이션의 정상 실행 코드가 실행될 때 발생하는 시스템 호출들은 악성 코드가 실행될 때 발생하는 시스템 호출들과 다를 수 있다. 예로서, 어플리케이션이 악성 코드에 감염되면, 정상 실행 코드가 실행될 때 발생하는 시스템 호출들과는 다른 시스템 호출들이 발생할 수 있다. 따라서, 특정 어플리케이션이 실행될 때 발생하는 시스템 호출들을 검사함으로써, 그 특정 어플리케이션의 실행 코드가 악성인지 여부가 탐지될 수 있다. 악성 코드의 탐지는 도 4 내지 도 10에 대한 참조와 함께 설명된다.However, system calls that occur when the application's normal execution code is executed may be different from system calls that occur when the malicious code is executed. For example, if an application is infected with malicious code, system calls may occur that are different from system calls that occur when normal executable code is executed. Thus, by examining system calls that occur when a particular application is executed, it may be detected whether the executable code of that particular application is malicious. Detection of malicious code is described with reference to FIGS. 4-10.
다만, 도 3은 본 발명의 이해를 돕기 위한 예시이다. 도 3은 시스템 호출들 각각이 속하는 분류로서 프로세스, 쓰레드, 메모리, 파일, 레지스트리, 네트워크, 서비스, 및 기타 분류들을 보여주고 있다. 그러나, 시스템 호출들이 속하는 분류들은 필요에 따라 다양하게 변경 또는 수정될 수 있다. 예로서, 도 2의 컴퓨팅 장치(210)에서 이용되는 운영체제의 종류에 따라, 시스템 호출들이 속하는 분류들이 변경 또는 수정될 수 있다.3 is an example to help understanding of the present invention. 3 shows a process, thread, memory, file, registry, network, service, and other classifications as a classification to which each of the system calls belongs. However, the classifications to which the system calls belong can be variously changed or modified as necessary. For example, depending on the type of operating system used in the
나아가, 각각의 분류에 속하는 시스템 호출들의 유형 및 개수 역시 다양하게 변경 또는 수정될 수 있다. 도 3에서, 시스템 호출들에 각각 할당된 번호들은 설명의 편의를 위해 제공된 것이다.Furthermore, the type and number of system calls belonging to each category may also be variously changed or modified. In Figure 3, the numbers assigned to the system calls, respectively, are provided for convenience of explanation.
예로서, 시스템 호출들이 속하는 분류들은 도 3에 나타낸 것보다 세부적으로 또는 개략적으로 설계될 수 있다. 즉, 시스템 호출들이 속하는 분류들의 개수는 8개를 초과하거나 8개 미만일 수 있다. 예로서, 시스템 호출들이 속하는 분류들은 고유하게 선택될 수 있다. 또는, 시스템 호출들이 속하는 분류들은 환경에 따라 동적으로 변하도록 설계될 수 있다. 본 발명의 실시 예는 필요에 따라 다양하게 변경 또는 수정될 수 있다.By way of example, the classifications to which the system calls belong may be designed in more detail or schematically than shown in FIG. 3. That is, the number of classifications to which system calls belong may be more than eight or less than eight. As an example, the classes to which the system calls belong may be uniquely selected. Alternatively, the classifications to which the system calls belong may be designed to change dynamically depending on the environment. Embodiments of the invention may be variously changed or modified as necessary.
도 4는 도 1의 전자 시스템에 포함되는 악성 코드 탐지 시스템 및 도 2의 컴퓨팅 장치에 포함되는 이벤트 후커를 보여주는 블록도이다. 실시 예로서, 악성 코드 탐지 시스템(100)은 분류 정보 스토리지(110), 데이터 수신기(120), 어플리케이션 특성(Feature) 추출기(130), 모델 정보 스토리지(140), 및 코드 탐지기(150)를 포함할 수 있다.4 is a block diagram illustrating a malicious code detection system included in the electronic system of FIG. 1 and an event hooker included in the computing device of FIG. 2. In an embodiment, the malicious
분류 정보 스토리지(110)는 분류 정보를 저장할 수 있다. 분류 정보는 컴퓨팅 장치(예컨대, 사용자 장치)에서 발생하는 시스템 호출들이 속하는 분류들에 관한 정보이다. 예로서, 분류 정보 스토리지(110)는 도 3에 나타낸 표에 대응하는 분류 정보를 저장할 수 있다. 즉, 분류 정보 스토리지(110)는 프로세스, 쓰레드, 메모리, 파일, 레지스트리, 네트워크, 서비스, 및 기타 분류들 중 적어도 하나와 컴퓨팅 장치에서 발생하는 시스템 호출들 사이의 대응 관계에 관한 정보를 저장할 수 있다.The
도 2 및 도 3에 대한 참조와 함께 설명된 것과 같이, 이벤트 후커(217)는 컴퓨팅 장치에서 어플리케이션이 실행될 때 발생하는 시스템 호출들을 후킹할 수 있다. 이벤트 후커(217)의 동작에 따라, 후킹된 시스템 호출들에 관한 이벤트 로그가 생성될 수 있다. 어플리케이션의 실행 코드가 악성인지 여부를 탐지하기 위해, 이벤트 로그가 참조될 수 있다. 어플리케이션의 실행에 의해 발생한 일련의 시스템 호출들은 "탐지 대상 호출 패턴"에 포함되는 것으로 취급될 수 있다.As described with reference to FIGS. 2 and 3,
데이터 수신기(120)는 탐지 대상 호출 패턴의 데이터를 제공받을 수 있다. 탐지 대상 호출 패턴의 데이터는 이벤트 로그에 기초하여 생성될 수 있다. 즉, 데이터 수신기(120)는 어플리케이션이 실행될 때 이벤트 후커(217)에 의해 후킹된 시스템 호출들에 관한 데이터를 제공받을 수 있다. 예로서, 데이터 수신기(120)는 도 1의 유선 네트워크(310) 또는 무선 네트워크(320)를 통해 탐지 대상 호출 패턴의 데이터를 제공받을 수 있다.The
어플리케이션 특성 추출기(130)는 탐지 대상 호출 패턴에 포함되는 시스템 호출들에 관한 특성을 추출할 수 있다. 즉, 어플리케이션 특성 추출기(130)는 어플리케이션이 실행될 때 이벤트 후커(217)에 의해 후킹된 시스템 호출들에 관한 특성을 추출할 수 있다. 어플리케이션 특성 추출기(130)는 특성을 추출하기 위해, 데이터 수신기(120)를 통해 제공받은 데이터 및 분류 정보 스토리지(110)에 저장된 분류 정보를 참조할 수 있다.The
도 3을 함께 참조하여, 어플리케이션 특성 추출기(130)에 의해 추출된 특성이 설명된다. 설명의 편의를 위해, N번째 시스템 호출이 T번 발생하는 경우를 "(N/T)"로 표시하기로 한다. 예로서, 도 3의 "ReadProcessMemory" 시스템 호출이 5번 발생하는 경우는 "(15/5)"로 표시될 수 있다.With reference to FIG. 3, the features extracted by the
예로서, 대상 어플리케이션이 실행될 때, "ExitThread" 시스템 호출이 1번 발생하고 "TerminateThread" 시스템 호출이 1번 발생할 수 있다. 이벤트 후커(217)의 동작에 따라, "ExitThread" 시스템 호출이 1번 발생하고 "TerminateThread" 시스템 호출이 1번 발생했음을 알리는 정보를 포함하는 이벤트 로그가 생성될 수 있다. 악성 코드 탐지 시스템(100)은 이벤트 로그에 기초하여 생성된 탐지 대상 호출 패턴의 데이터를 제공받을 수 있다. 어플리케이션 특성 추출기(130)는 제공받은 데이터 및 분류 정보를 참조하여 "(10/1)(11/1)"의 특성을 추출할 수 있다.For example, when the target application is executed, the "ExitThread" system call may occur once and the "TerminateThread" system call may occur once. According to the operation of the
위에서 언급된 것과 같이, 예로서, 어플리케이션 특성 추출기(130)는 탐지 대상 호출 패턴에 포함되는 시스템 호출들(즉, 이벤트 후커(217)에 의해 후킹된 시스템 호출들)이 속하는 분류들, 탐지 대상 호출 패턴에 포함되는 시스템 호출들의 발생 순서, 및 탐지 대상 호출 패턴에 포함되는 시스템 호출들 각각의 호출 횟수 중 적어도 하나를 추출할 수 있다. 각 어플리케이션은 서비스를 제공하기 위해 고유한 시스템 호출 패턴을 발생시킬 수 있다. 이에 따라, 어플리케이션 특성 추출기(130)에 의해 추출된 특성은 어플리케이션의 종류를 식별하기 위해 또는 어플리케이션의 실행 코드가 악성인지 여부를 탐지하기 위해 이용될 수 있다.As mentioned above, by way of example, the
모델 정보 스토리지(140)는 하나 이상의 정상 호출 모델들 및 하나 이상의 악성 호출 모델들에 관한 정보를 저장할 수 있다. 정상 호출 모델들 각각은 컴퓨팅 장치(예컨대, 사용자 장치)에서 정상 코드가 실행될 때 발생하는 시스템 호출들에 기초하여 생성될 수 있다. 예로서, 악성 코드에 감염되지 않은 어플리케이션의 실행에 의해 발생하는 시스템 호출들에 기초하여 정상 호출 모델이 생성될 수 있다. 반면, 악성 호출 모델들 각각은 컴퓨팅 장치에서 악성 코드가 실행될 때 발생하는 시스템 호출들에 기초하여 생성될 수 있다.
실시 예로서, 이벤트 후커(217)가 동작하기 전에, 악성 코드에 감염되지 않은 제 1 어플리케이션이 미리 실행될 수 있다. 제 1 어플리케이션의 실행에 의해 "(10/1)(11/1)"의 특성에 대응하는 시스템 호출들이 발생한 경우, "(10/1)(11/1)"의 특성에 기초하여 제 1 어플리케이션에 대응하는 정상 호출 모델이 생성될 수 있다. 악성 코드에 감염되지 않은 제 1 어플리케이션에 대응하는 정상 호출 모델은 악성 코드에 감염되지 않은 제 2 어플리케이션에 대응하는 정상 호출 모델과 다를 수 있다. 따라서, 정상 호출 모델들에 기초하여, 제 1 어플리케이션이 제 2 어플리케이션과 구별될 수 있다.In an embodiment, before the
유사하게, 이벤트 후커(217)가 동작하기 전에, 제 1 악성 코드가 미리 실행될 수 있다. 제 1 악성 코드의 실행에 따라 "(10/1)(31/1)"의 특성에 대응하는 시스템 호출들이 발생한 경우, "(10/1)(31/1)"의 특성에 기초하여 제 1 악성 코드에 대응하는 악성 호출 모델이 생성될 수 있다. 제 1 악성 코드에 대응하는 악성 호출 모델은 제 2 악성 코드에 대응하는 악성 호출 모델과 다를 수 있다. 나아가, 악성 호출 모델은 정상 호출 모델과 다를 수 있다. 따라서, 정상 호출 모델들 및 악성 호출 모델들에 기초하여, 악성 코드가 탐지될 수 있다.Similarly, before the
위 예에서, "이벤트 후커(217)가 동작하기 전"은 악성 코드 검출 시스템(100)의 학습 과정(Learning Proces)을 의미할 수 있다. 악성 코드 검출 시스템(100)은 이벤트 후커(217)의 동작에 따라 악성 코드를 검출하기 전에, 학습 과정을 통해 정상 호출 모델들 및 악성 호출 모델들을 미리 학습할 수 있다. 악성 코드 검출 시스템(100)의 학습 과정은 도 8a에 대한 참조와 함께 더 설명된다.In the above example, “before the
정상 호출 모델 또는 악성 호출 모델에 대응하는 특성은 시스템 호출이 속하는 분류, 시스템 호출들의 발생 순서, 시스템 호출의 호출 횟수 등과 같은 정보를 나타낼 수 있다. 따라서, 정상 호출 모델 또는 악성 호출 모델에 대응하는 특성에 기초하여, 어플리케이션 또는 악성 코드의 특성이 식별될 수 있다. 이하, "(10/1)(11/1)", "(10/1)(31/1)"과 같은 고유한 특성을 "특성 체인(Feature Chain)"으로 부르기로 한다.The characteristic corresponding to the normal call model or the malicious call model may indicate information such as a classification to which the system call belongs, an order of occurrence of system calls, a call count of the system call, and the like. Thus, based on the characteristics corresponding to the normal calling model or the malicious calling model, the characteristics of the application or the malicious code can be identified. Hereinafter, unique characteristics such as "(10/1) (11/1)" and "(10/1) (31/1)" will be referred to as "feature chains".
위에서, 정상 호출 모델 또는 악성 호출 모델이 시스템 호출들의 특성에 기초하여 생성되는 것으로 설명되었다. 그러나, 정상 호출 모델 또는 악성 호출 모델은 단순히 시스템 호출들의 특성 그 자체뿐만 아니라, 시스템 호출에 의해 접근되는 메모리의 위치, 시스템 호출에 의해 접근되는 시스템 파일의 종류, 시스템 호출에 의해 접근되는 레지스트리의 종류, 시스템 호출에 의해 접근되는 네트워크의 특성, 시스템 호출에 의해 동작하는 서비스의 유형, 시스템 호출들의 특성을 해석함으로써 부여된 의미 등과 같은 다른 요인을 더 참조하여 생성될 수 있다. 위 예는 본 발명의 이해를 돕고 설명의 편의를 위해 제공된 것이고, 본 발명을 제한하기 위한 것은 아니다.Above, it has been described that a normal call model or a malicious call model is generated based on the characteristics of system calls. However, the normal call model or malicious call model is not only the characteristics of the system calls themselves, but also the location of the memory accessed by the system call, the type of system file accessed by the system call, the type of registry accessed by the system call. , The nature of the network accessed by the system call, the type of service operating by the system call, the meaning imposed by interpreting the nature of the system calls, and the like. The above examples are provided to aid the understanding of the present invention and for convenience of description, and are not intended to limit the present invention.
코드 탐지기(150)는 어플리케이션 특성 추출기(130)에 의해 추출된 특성 및 모델 정보 스토리지(140)에 저장된 정상 호출 모델들 및 악성 호출 모델들을 참조할 수 있다. 예로서, 코드 탐지기(150)는 정상 호출 모델들 및 악성 호출 모델들 중 적어도 하나와 추출된 특성을 비교할 수 있다.The
코드 탐지기(150)는 비교 결과에 기초하여 어플리케이션의 실행 코드가 악성인지 여부를 탐지할 수 있다. 예로서, 코드 탐지기(150)는 비교 결과에 기초하여 어플리케이션의 실행 코드가 악성 코드, 변종 악성 코드, 및 의심(Suspicious) 코드 중 적어도 하나를 포함하는지 여부를 탐지할 수 있다. 코드 탐지기(150)는 탐지 결과(DR)를 생성할 수 있다.The
예로서, 추출된 특성이 악성 코드에 감염되지 않은 제 1 어플리케이션에 대응하는 정상 호출 모델과 동일하거나 유사한 경우, 어플리케이션의 실행 코드는 정상인 것으로 판별될 수 있다. 반면, 추출된 특성이 제 1 악성 코드에 대응하는 악성 호출 모델과 동일하거나 유사한 경우, 어플리케이션의 실행 코드는 악성인 것으로 판별될 수 있다. 악성 코드의 탐지는 도 8b 내지 도 10에 대한 참조와 함께 더 자세히 설명된다.For example, if the extracted characteristic is the same as or similar to the normal calling model corresponding to the first application not infected with the malicious code, the execution code of the application may be determined to be normal. On the other hand, if the extracted characteristic is the same as or similar to the malicious calling model corresponding to the first malicious code, the execution code of the application may be determined to be malicious. Detection of malicious code is described in more detail with reference to FIGS. 8B-10.
도 5는 도 4의 악성 코드 탐지 시스템을 이용하여 악성 코드를 탐지하는 과정을 설명하기 위한 개념도이다. 도 5에는, 도 4의 악성 코드 탐지 시스템(100)에 포함되는 어플리케이션 특성 추출기(130), 모델 정보 스토리지(140), 및 코드 탐지기(150)만이 나타나 있다. 그러나, 도 5에 나타낸 구성은 설명의 편의를 위한 것이고, 본 발명을 제한하기 위한 것은 아니다. 위에서 언급된 것과 같이, 악성 코드 탐지 시스템(100)은 도 5에 나타내지 않은 다른 구성 요소들을 더 포함할 수 있다.5 is a conceptual diagram illustrating a process of detecting malicious code by using the malicious code detection system of FIG. 4. In FIG. 5, only the
어플리케이션 특성 추출기(130)는 탐지 대상 호출 패턴의 데이터를 제공받을 수 있다. 탐지 대상 호출 패턴의 데이터는 컴퓨팅 장치(예컨대, 사용자 장치)에서 대상 어플리케이션이 실행될 때 발생하는 시스템 호출들에 관한 이벤트 로그에 기초하여 생성될 수 있다. 어플리케이션 특성 추출기(130)는 대상 어플리케이션의 실행 코드가 악성인지 여부를 탐지하기 위해 그 대상 어플리케이션에 의해 발생한 탐지 대상 호출 패턴의 데이터를 제공받을 수 있다.The application
어플리케이션 특성 추출기(130)는 도 4의 분류 정보 스토리지(110)에 저장된 분류 정보(예컨대, 도 3의 표에 대응하는 정보)를 참조하여 탐지 대상 호출 패턴에 포함되는 시스템 호출들(즉, 대상 어플리케이션이 실행될 때 발생하고 도 2의 이벤트 후커(217)에 의해 후킹된 시스템 호출들)에 관한 특성을 추출할 수 있다. 예로서, 어플리케이션 특성 추출기(130)는 "(10/1)(11/1)(31/1)(29/1)(31/1)(15/5)"의 특성을 추출할 수 있다. 이 추출된 특성은 10번째 시스템 호출이 1번 발생하고, 11번째 시스템 호출이 1번 발생하고, 31번째 시스템 호출이 1번 발생하고, 29번째 시스템 호출이 1번 발생하고, 31번째 시스템 호출이 다시 1번 발생하고, 15번째 시스템 호출이 5번 발생하였음을 의미할 수 있다.The application
코드 탐지기(150)는 모델 정보 스토리지(140)에 저장된 정상 호출 모델들 및 악성 호출 모델들 중 적어도 하나와 어플리케이션 특성 추출기(130)에 의해 추출된 특성을 비교할 수 있다. 예로서, 코드 탐지기(150)는 모델 정보 스토리지(140)에 저장된 특성 체인 "(10/1)(11/1)(31/1)(29/1)(30/1)(31/1)(15/5)(18/1)"과 어플리케이션 특성 추출기(130)에 의해 추출된 "(10/1)(11/1)(31/1)(29/1)(31/1)(15/5)"의 특성을 비교할 수 있다.The
본 발명의 실시 예에서, 유사도 판별을 위한 기준 값이 설정될 수 있다. 예로서, 기준 값이 80%인 경우, 저장된 특성 체인과 추출된 특성 사이의 유사도가 80% 이상인지 여부가 판별될 수 있다. 유사도가 80% 이상인 경우, 추출된 특성이 저장된 특성 체인과 유사한 것으로 판별될 수 있다.In an embodiment of the present disclosure, a reference value for determining similarity may be set. For example, when the reference value is 80%, it may be determined whether the similarity between the stored feature chain and the extracted feature is 80% or more. If the similarity is 80% or more, it may be determined that the extracted feature is similar to the stored feature chain.
코드 탐지기(150)는 비교 결과에 기초하여 대상 어플리케이션의 실행 코드가 악성인지 여부를 탐지할 수 있다. 추출된 특성과 비교된 특성 체인이 정상 호출 모델에 대응하는 경우, 대상 어플리케이션의 실행 코드는 정상인 것으로 판별될 수 있다. 반면, 추출된 특성과 비교된 특성 체인이 악성 호출 모델에 대응하는 경우, 대상 어플리케이션의 실행 코드는 악성인 것으로 판별될 수 있다. 코드 탐지기(150)는 판별 결과에 대응하는 탐지 결과(DR)를 생성할 수 있다.The
유사도 판별을 위한 기준 값은 필요에 따라 다양하게 선택될 수 있다. 몇몇 실시 예에서, 여러 개의 기준 값이 이용될 수 있다. 본 발명의 실시 예에 따른 비교 및 판단의 처리들은 도 8b 내지 도 10에 대한 참조와 함께 더 자세히 설명된다.The reference value for the similarity determination may be variously selected as necessary. In some embodiments, multiple reference values may be used. Processing of comparison and determination according to an embodiment of the present invention is described in more detail with reference to FIGS. 8B to 10.
도 6은 도 1의 전자 시스템에 포함되는 악성 코드 탐지 시스템을 보여주는 블록도이다. 실시 예로서, 도 1의 전자 시스템(1000)에 포함되는 악성 코드 탐지 시스템(100)은 도 6의 악성 코드 탐지 시스템(100a)을 포함할 수 있다. 실시 예로서, 악성 코드 탐지 시스템(100a)은 분류 정보 스토리지(110), 데이터 수신기(120), 어플리케이션 특성 추출기(130), 모델 정보 스토리지(140), 코드 탐지기(150), 및 모델 생성기(160)를 포함할 수 있다.6 is a block diagram illustrating a malicious code detection system included in the electronic system of FIG. 1. In an embodiment, the malicious
어플리케이션 특성 추출기(130)는 컴퓨팅 장치(예컨대, 사용자 장치)에서 어플리케이션이 실행될 때 발생한 시스템 호출들의 특성을 추출할 수 있다. 이를 위해, 어플리케이션 특성 추출기(130)는 분류 정보 스토리지(110)에 저장된 분류 정보 및 데이터 수신기(120)를 통해 제공받은 탐지 대상 호출 패턴의 데이터(DAT)를 참조할 수 있다.The application
코드 탐지기(150)는 컴퓨팅 장치에서 실행된 어플리케이션의 실행 코드가 악성인지 여부를 탐지할 수 있다. 이를 위해, 코드 탐지기(150)는 어플리케이션 특성 추출기(130)에 의해 추출된 특성 및 모델 정보 스토리지(140)에 저장된 특성 체인들을 참조할 수 있다.The
도 6의 분류 정보 스토리지(110), 데이터 수신기(120), 어플리케이션 특성 추출기(130), 모델 정보 스토리지(140), 및 코드 탐지기(150)의 구성들 및 기능들은 각각 도 4의 분류 정보 스토리지(110), 데이터 수신기(120), 어플리케이션 특성 추출기(130), 모델 정보 스토리지(140), 및 코드 탐지기(150)의 구성들 및 기능들을 포함할 수 있다. 분류 정보 스토리지(110), 데이터 수신기(120), 어플리케이션 특성 추출기(130), 모델 정보 스토리지(140), 및 코드 탐지기(150)에 관한 중복되는 설명들은 설명의 편의를 위해 이하 생략된다.The configurations and functions of the
실시 예로서, 탐지 대상 호출 패턴의 데이터(DAT)가 제공되기 전에, 컴퓨팅 장치(예컨대, 사용자 장치)는 정상 코드 및 악성 코드를 미리 실행할 수 있다. 모델 생성기(160)는 미리 실행된 정상 코드 및 악성 코드에 의해 발생한 시스템 호출들에 관한 정보를 수집할 수 있다. 모델 생성기(160)는 분류 정보 스토리지(110)에 저장된 분류 정보 및 미리 수집된 정보에 기초하여 하나 이상의 정상 호출 모델들 및 하나 이상의 악성 호출 모델들을 생성할 수 있다. 모델 생성기(160)에 의해 미리 생성된 정상 호출 모델들 및 악성 호출 모델들은 탐지 대상 호출 패턴을 발생시킨 어플리케이션의 실행 코드가 악성인지 여부를 탐지하기 위해 이용될 수 있다.In an embodiment, before the data DAT of the detection target call pattern is provided, the computing device (eg, the user device) may execute normal code and malicious code in advance. The
위 실시 예에서, "탐지 대상 호출 패턴의 데이터(DAT)가 제공되기 전"은 악성 코드 검출 시스템(100a)의 학습 과정을 의미할 수 있다. 악성 코드 검출 시스템(100)은 탐지 대상 호출 패턴의 데이터(DAT)를 검사하기 전에, 학습 과정을 통해 정상 호출 모델들 및 악성 호출 모델들을 미리 학습할 수 있다. 악성 코드 검출 시스템(100a)의 학습 과정은 도 8a에 대한 참조와 함께 더 설명된다.In the above embodiment, "before the data DAT of the detection target call pattern is provided" may mean a learning process of the malicious
실시 예로서, 모델 생성기(160)는 정상 호출 모델들 및 악성 호출 모델들을 갱신할 수 있다. 예로서, 어플리케이션의 버전이 갱신되는 경우, 그 어플리케이션의 실행 코드가 변경되고 그 어플리케이션에 의해 발생하는 시스템 호출들의 특성이 변경될 수 있다. 이 경우, 그 어플리케이션에 대응하는 정상 호출 모델은 갱신될 필요가 있다. 모델 생성기(160)는 어플리케이션 특성 추출기(130)에 의해 추출된 특성 및 코드 탐지기(150)의 탐지 결과(DR)에 기초하여 정상 호출 모델들 및 악성 호출 모델들 중 적어도 하나를 갱신할 수 있다.In an embodiment, the
위에서 언급된 것과 같이, 악성 코드 검출 시스템(100a)은 학습 과정을 통해 정상 호출 모델들 및 악성 호출 모델들을 미리 학습할 수 있다. 나아가, 악성 코드 검출 시스템(100a)은 학습된 정상 호출 모델들 및 학습된 악성 호출 모델들을 갱신할 수 있다. 즉, 악성 코드 검출 시스템(100a)은 탐지 결과(DR)에 기초하여 반복적인 학습을 수행할 수 있다. 반복되는 학습을 통해, 가장 적절한 특성 체인을 갖는 정상 호출 모델 또는 악성 호출 모델이 생성될 수 있다.As mentioned above, the malicious
위에서 언급된 것과 같이, 정상 호출 모델들 각각은 정상 코드가 실행될 때 발생하는 시스템 호출들의 특성에 기초하여 생성될 수 있다. 예로서, 정상 호출 모델은 시스템 호출들이 속하는 분류들, 시스템 호출들의 발생 순서, 시스템 호출들 각각의 호출 횟수 중 적어도 하나에 기초하여 생성될 수 있다. 나아가, 정상 호출 모델은 정상 코드가 실행될 때 접근되는 메모리의 위치, 정상 코드가 실행될 때 접근되는 시스템 파일의 종류, 정상 코드가 실행될 때 접근되는 레지스트리의 종류, 정상 코드가 실행될 때 접근되는 네트워크의 특성, 및 정상 코드가 실행될 때 동작하는 서비스의 유형 중 적어도 하나에 기초하여 생성될 수 있다.As mentioned above, each of the normal call models may be generated based on the nature of the system calls that occur when normal code is executed. For example, the normal call model may be generated based on at least one of the classifications to which the system calls belong, the order in which the system calls occur, and the number of calls of each of the system calls. Furthermore, the normal call model is characterized by the location of the memory accessed when the normal code is executed, the type of system file accessed when the normal code is executed, the type of registry accessed when the normal code is executed, and the characteristics of the network accessed when the normal code is executed. And based on at least one of a type of service operating when the normal code is executed.
그리고, 악성 호출 모델들 각각은 악성 코드가 실행될 때 발생하는 시스템 호출들의 특성에 기초하여 생성될 수 있다. 예로서, 악성 호출 모델은 시스템 호출들이 속하는 분류들, 시스템 호출들의 발생 순서, 시스템 호출들 각각의 호출 횟수 중 적어도 하나에 기초하여 생성될 수 있다. 나아가, 악성 호출 모델은 악성 코드가 실행될 때 접근되는 메모리의 위치, 악성 코드가 실행될 때 접근되는 시스템 파일의 종류, 악성 코드가 실행될 때 접근되는 레지스트리의 종류, 악성 코드가 실행될 때 접근되는 네트워크의 특성, 및 악성 코드가 실행될 때 동작하는 서비스의 유형 중 적어도 하나에 기초하여 생성될 수 있다.And, each of the malicious call models may be generated based on the characteristics of system calls that occur when the malicious code is executed. For example, the malicious call model may be generated based on at least one of the classifications to which the system calls belong, the order in which the system calls occur, and the number of calls of each of the system calls. Furthermore, the malicious calling model is characterized by the location of the memory accessed when the malicious code is executed, the type of system file accessed when the malicious code is executed, the type of registry accessed when the malicious code is executed, and the characteristics of the network accessed when the malicious code is executed. , And may be generated based on at least one of the types of services operating when the malicious code is executed.
다만, 위에서 언급된 예시들 및 실시 예들은 본 발명의 이해를 돕기 위해 제공된 것이다. 본 발명은 위에서 언급된 예시들 및 실시 예들에 의해 제한되지 않는다. 본 발명은 필요에 따라 다양한 형태로 구현될 수 있다.However, the examples and embodiments mentioned above are provided to help the understanding of the present invention. The invention is not limited by the examples and embodiments mentioned above. The present invention can be implemented in various forms as necessary.
도 7은 도 1의 전자 시스템에 포함되는 악성 코드 탐지 시스템을 보여주는 블록도이다. 실시 예로서, 도 1의 전자 시스템(1000)에 포함되는 악성 코드 탐지 시스템(100)은 도 7의 악성 코드 탐지 시스템(100b)을 포함할 수 있다. 실시 예로서, 악성 코드 탐지 시스템(100b)은 분류 정보 스토리지(110), 데이터 수신기(120), 어플리케이션 특성 추출기(130), 모델 정보 스토리지(140), 코드 탐지기(150), 탐지 결과 처리기(170), 및 데이터베이스(175)를 포함할 수 있다.7 is a block diagram illustrating a malicious code detection system included in the electronic system of FIG. 1. In an embodiment, the malicious
어플리케이션 특성 추출기(130)는 컴퓨팅 장치(예컨대, 사용자 장치)에서 어플리케이션이 실행될 때 발생한 시스템 호출들의 특성을 추출할 수 있다. 이를 위해, 어플리케이션 특성 추출기(130)는 분류 정보 스토리지(110)에 저장된 분류 정보 및 데이터 수신기(120)를 통해 제공받은 탐지 대상 호출 패턴의 데이터(DAT)를 참조할 수 있다.The application
코드 탐지기(150)는 컴퓨팅 장치에서 실행된 어플리케이션의 실행 코드가 악성인지 여부를 탐지할 수 있다. 이를 위해, 코드 탐지기(150)는 어플리케이션 특성 추출기(130)에 의해 추출된 특성 및 모델 정보 스토리지(140)에 저장된 특성 체인들을 참조할 수 있다.The
도 7의 분류 정보 스토리지(110), 데이터 수신기(120), 어플리케이션 특성 추출기(130), 모델 정보 스토리지(140), 및 코드 탐지기(150)의 구성들 및 기능들은 각각 도 4의 분류 정보 스토리지(110), 데이터 수신기(120), 어플리케이션 특성 추출기(130), 모델 정보 스토리지(140), 및 코드 탐지기(150)의 구성들 및 기능들을 포함할 수 있다. 분류 정보 스토리지(110), 데이터 수신기(120), 어플리케이션 특성 추출기(130), 모델 정보 스토리지(140), 및 코드 탐지기(150)에 관한 중복되는 설명들은 설명의 편의를 위해 이하 생략된다.The configurations and functions of the
실시 예로서, 탐지 결과 처리기(170)는 코드 탐지기(150)의 탐지 결과를 제공받을 수 있다. 탐지 결과 처리기(170)는 탐지 결과에 대응하는 정보를 데이터베이스(175)에 저장할 수 있다. 특히, 탐지 결과 처리기(170)는 컴퓨팅 장치(예컨대, 사용자 장치)에서 실행된 어플리케이션의 실행 코드에 포함되는 악성 코드, 변종 악성 코드, 및 의심 코드 중 적어도 하나에 관한 정보를 데이터베이스(175)에 저장할 수 있다.In an embodiment, the
예로서, 데이터베이스(175)는 악성 코드의 특성 체인, 악성 코드를 포함하는 어플리케이션의 종류, 악성 코드에 의해 실행되는 연산들 등과 같은 다양한 정보를 저장할 수 있다. 데이터베이스(175)에 저장된 정보는 악성 코드를 탐지하고 악성 코드의 공격에 대비하기 위해 이용될 수 있다. 예로서, 데이터베이스(175)에 저장된 정보에 기초하여, 전자 시스템(1000)은 동작 정책을 관리할 수 있고, 악성 코드의 공격을 방어하기 위한 방어 절차를 수행할 수 있다.For example, the
도 8a 및 도 8b는 본 발명의 실시 예에 따른 악성 코드 탐지 시스템의 동작을 설명하는 흐름도이다. 예로서, 본 발명의 실시 예에 따른 악성 코드 탐지 시스템은 도 8a에 설명된 방법에 따라 정상 호출 모델들 및 악성 호출 모델들에 관한 학습을 수행할 수 있다. 나아가, 본 발명의 실시 예에 따른 악성 코드 탐지 시스템은 도 8b에 설명된 방법에 따라 악성 코드를 탐지할 수 있다. 본 발명의 이해를 돕기 위해, 도 8a 및 도 8b가 함께 참조된다.8A and 8B are flowcharts illustrating an operation of a malicious code detection system according to an embodiment of the present invention. For example, the malicious code detection system according to an embodiment of the present invention may perform learning about normal call models and malicious call models according to the method described with reference to FIG. 8A. Furthermore, the malicious code detection system according to an embodiment of the present invention may detect malicious code according to the method described in FIG. 8B. To aid in the understanding of the present invention, FIGS. 8A and 8B are referred to together.
S1100 단계에서, 정상 호출 패턴 정보 및 악성 호출 패턴 정보가 수집될 수 있다. 정상 호출 패턴 정보는 컴퓨팅 장치(예컨대, 사용자 장치)에서 정상 코드가 실행될 때 발생하는 시스템 호출들에 관한 정보이다. 악성 호출 패턴 정보는 컴퓨팅 장치에서 악성 코드가 실행될 때 발생하는 시스템 호출들에 관한 정보이다. 예로서, 도 6의 모델 생성기(160)는 정상 호출 패턴 정보 및 악성 호출 패턴 정보를 미리 수집할 수 있다. 예로서, 도 6의 모델 생성기(160)는 정보를 수집하기 위해 도 2의 이벤트 후커(217)를 동작시킬 수 있으나, 본 발명은 이 예에 의해 제한되지 않는다.In operation S1100, normal call pattern information and malicious call pattern information may be collected. Normal call pattern information is information about system calls that occur when normal code is executed on a computing device (eg, a user device). Malicious call pattern information is information about system calls that occur when malicious code is executed on a computing device. For example, the
S1200 단계에서, 하나 이상의 정상 호출 모델들 및 하나 이상의 악성 호출 모델들이 생성될 수 있다. 정상 호출 모델들은 S1100 단계에서 수집된 정상 호출 패턴 정보에 기초하여 생성될 수 있다. 정상 호출 모델은 악성 코드에 감염되지 않은 어플리케이션의 특성 체인을 포함할 수 있다. 악성 호출 모델들은 S1100 단계에서 수집된 악성 호출 패턴 정보에 기초하여 생성될 수 있다. 악성 호출 모델은 악성 코드의 특성 체인을 포함할 수 있다. 예로서, 도 6의 모델 생성기(160)는 S1100 단계에서 수집된 정보에 기초하여 정상 호출 모델들 및 악성 호출 모델들을 미리 생성할 수 있다.In step S1200, one or more normal call models and one or more malicious call models may be generated. The normal call models may be generated based on the normal call pattern information collected in step S1100. The normal invocation model may include a characteristic chain of applications that are not infected with malicious code. The malicious call models may be generated based on the malicious call pattern information collected in step S1100. Malicious invocation models can include a characteristic chain of malicious code. For example, the
본 발명의 실시 예에 따른 악성 코드 탐지 시스템은 S1100 및 S1200 단계들을 통해 학습을 수행할 수 있다. S1100 및 S1200 단계들은 반복적으로 수행될 수 있다. 이로써, 본 발명의 실시 예에 따른 악성 코드 탐지 시스템은 하나 이상의 정상 호출 모델들 및 하나 이상의 악성 호출 모델들을 생성 및 수집할 수 있다. 본 발명의 실시 예에 따른 악성 코드 탐지 시스템은 학습 결과에 기초하여 도 8b에 설명된 방법에 따라 악성 코드를 탐지할 수 있다.The malicious code detection system according to an embodiment of the present invention may perform learning through steps S1100 and S1200. Steps S1100 and S1200 may be performed repeatedly. Thus, the malicious code detection system according to an embodiment of the present invention may generate and collect one or more normal call models and one or more malicious call models. The malicious code detection system according to an embodiment of the present invention may detect malicious code according to the method described in FIG. 8B based on the learning result.
S1300 단계에서, 탐지 대상 호출 패턴의 데이터가 제공될 수 있다. 위에서 언급된 것과 같이, 탐지 대상 호출 패턴은 하나 이상의 사용자 장치들에서 실행된 어플리케이션에 의해 발생한 시스템 호출들을 포함할 수 있다. 예로서, 어플리케이션에 의해 발생한 시스템 호출들은 도 2의 이벤트 후커(217)에 의해 후킹될 수 있다. 예로서, 도 4의 어플리케이션 특성 추출기(130)는 도 4의 데이터 수신기(120)를 통해 탐지 대상 호출 패턴의 데이터를 제공받을 수 있다. 탐지 대상 호출 패턴은 어플리케이션의 실행 코드가 악성인지 여부를 탐지하기 위해 참조될 수 있다.In operation S1300, data of a detection target call pattern may be provided. As mentioned above, the detection target call pattern may include system calls made by an application executed on one or more user devices. As an example, system calls made by an application may be hooked by the
S1400 단계에서, 탐지 대상 호출 패턴에 포함되는 시스템 호출들에 관한 특성이 추출될 수 있다. 예로서, 도 4의 어플리케이션 특성 추출기(130)는 분류 정보를 참조하여 탐지 대상 호출 패턴에 포함되는 시스템 호출들에 관한 특성을 추출할 수 있다. 위에서 언급된 것과 같이, 분류 정보는 컴퓨팅 장치에서 발생하는 시스템 호출들 각각이 속하는 분류에 관한 정보이다.In operation S1400, properties regarding system calls included in a detection target call pattern may be extracted. For example, the application
S1500 단계에서, 어플리케이션의 실행 코드가 악성인지 여부가 탐지될 수 있다. 예로서, 도 4의 코드 탐지기(150)는 S1200 단계에서 생성된 정상 호출 모델들 및 악성 호출 모델들 중 적어도 하나와 S1400 단계에서 추출된 특성을 비교할 수 있다. 코드 탐지기(150)는 비교 결과에 기초하여 어플리케이션의 실행 코드가 악성인지 여부를 탐지할 수 있다. S1500 단계는 도 9에 대한 참조와 함께 더 자세히 설명된다.In step S1500, it may be detected whether the execution code of the application is malicious. For example, the
도 9는 도 8b의 악성 코드를 탐지하는 단계를 더 자세히 설명하는 흐름도이다. 실시 예로서, 도 8b의 S1500 단계는 도 9의 S1510 내지 S1580 단계들을 포함할 수 있다. 예로서, S1500 단계는 도 4의 코드 탐지기(150)에 의해 처리될 수 있다.9 is a flow chart that describes in more detail the step of detecting malicious code of FIG. 8B. In an embodiment, step S1500 of FIG. 8B may include steps S1510 to S1580 of FIG. 9. For example, step S1500 may be processed by the
S1510 단계에서, 도 8b의 S1400 단계에서 추출된 특성은 도 8a의 S1200 단계에서 생성된 하나 이상의 정상 호출 모델들 중 적어도 하나와 비교될 수 있다. 예로서, 코드 탐지기(150)는 어플리케이션의 실행 코드가 정상인지 여부를 판별하기 위해 정상 호출 모델들 중 적어도 하나와 도 4의 어플리케이션 특성 추출기(130)에 의해 추출된 특성을 비교할 수 있다.In operation S1510, the feature extracted in operation S1400 of FIG. 8B may be compared with at least one of the one or more normal call models generated in operation S1200 of FIG. 8A. For example, the
S1520 단계에서, 추출된 특성과 정상 호출 모델들 사이의 유사도가 판별될 수 있다. 예로서, 정상 호출 모델들 중에서 추출된 특성과 비교된 대상 정상 호출 모델과 추출된 특성 사이의 유사도가 제 1 기준 값 이상인 경우, 유사도가 높은 것으로 판별될 수 있다. 유사도가 높은 것으로 판별된 경우, S1530 단계가 수행될 수 있다. 반면, 유사도가 제 1 기준 값보다 작은 경우, 유사도가 낮은 것으로 판별될 수 있다. 유사도가 낮은 것으로 판별된 경우, S1540 단계가 수행될 수 있다.In step S1520, the similarity between the extracted feature and the normal call models may be determined. For example, when the similarity between the target normal call model and the extracted feature compared to the extracted feature among the normal call models is greater than or equal to the first reference value, it may be determined that the similarity is high. If it is determined that the similarity is high, step S1530 may be performed. On the other hand, when the similarity is smaller than the first reference value, it may be determined that the similarity is low. If it is determined that the similarity is low, step S1540 may be performed.
S1530 단계에서, 어플리케이션의 실행 코드가 정상인 것으로 판별될 수 있다. 추출된 특성과 대상 정상 호출 모델 사이의 유사도가 제 1 기준 값 이상인 경우, 코드 탐지기(150)는 어플리케이션의 실행 코드가 정상인 것으로 판별할 수 있다.In operation S1530, the execution code of the application may be determined to be normal. If the similarity between the extracted feature and the target normal call model is equal to or greater than the first reference value, the
실시 예로서, 어플리케이션의 실행 코드가 정상인 경우, S1535 단계가 수행될 수 있다. S1535 단계에서, 대상 정상 호출 모델이 갱신될 수 있다. 예로서, 어플리케이션의 버전이 갱신되는 경우, 어플리케이션의 실행 코드가 변경되고 어플리케이션에 의해 발생하는 시스템 호출들의 특성이 변경될 수 있다. 이 경우, 어플리케이션에 대응하는 정상 호출 모델(즉, 대상 정상 호출 모델)이 갱신될 필요가 있다. 예로서, 추출된 특성과 대상 정상 호출 모델 사이의 차이가 제 2 기준 값 이상인 경우, 도 6의 모델 생성기(160)는 추출된 특성을 참조하여 대상 정상 호출 모델을 갱신할 수 있다. 반복되는 학습을 통해, 가장 적절한 특성 체인을 갖는 대상 정상 호출 모델이 생성될 수 있다.In an embodiment, when the execution code of the application is normal, step S1535 may be performed. In operation S1535, the target normal call model may be updated. For example, when the version of the application is updated, the executable code of the application may change and the nature of system calls made by the application may change. In this case, the normal call model (that is, the target normal call model) corresponding to the application needs to be updated. For example, if the difference between the extracted feature and the target normal call model is greater than or equal to the second reference value, the
S1540 단계에서, 추출된 특성은 도 8a의 S1200 단계에서 생성된 하나 이상의 악성 호출 모델들 중 적어도 하나와 비교될 수 있다. 예로서, 코드 탐지기(150)는 어플리케이션의 실행 코드가 악성인지 여부를 판별하기 위해 악성 호출 모델들 중 적어도 하나와 추출된 특성을 비교할 수 있다.In operation S1540, the extracted characteristic may be compared with at least one of the one or more malicious calling models generated in operation S1200 of FIG. 8A. For example, the
S1550 단계에서, 추출된 특성과 악성 호출 모델들 사이의 유사도가 판별될 수 있다. 예로서, 악성 호출 모델들 중 적어도 하나와 추출된 특성 사이의 유사도가 제 3 기준 값 이상인 경우, 유사도가 높은 것으로 판별될 수 있다. 유사도가 높은 것으로 판별된 경우, S1560 단계가 수행될 수 있다. 나아가, 유사도가 제 3 기준 값보다 작고 제 4 기준 값 이상인 경우, 유사도가 중상(Mid-high)인 것으로 판별될 수 있다. 유사도가 중상인 것으로 판별된 경우, S1570 단계가 수행될 수 있다. 반면, 유사도가 제 4 기준 값보다 작은 경우, 유사도가 낮은 것으로 판별될 수 있다. 유사도가 낮은 것으로 판별된 경우, S1580 단계가 수행될 수 있다.In operation S1550, the similarity between the extracted feature and the malicious call model may be determined. For example, when the similarity between at least one of the malicious call models and the extracted characteristic is equal to or greater than a third reference value, it may be determined that the similarity is high. If it is determined that the similarity is high, step S1560 may be performed. Furthermore, when the similarity is smaller than the third reference value and is equal to or greater than the fourth reference value, it may be determined that the similarity is mid-high. If it is determined that the similarity is a serious injury, step S1570 may be performed. On the other hand, when the similarity is smaller than the fourth reference value, it may be determined that the similarity is low. If it is determined that the similarity is low, step S1580 may be performed.
S1560 단계에서, 어플리케이션의 실행 코드가 악성 코드를 포함하는 것으로 판별될 수 있다. 악성 호출 모델들 중 적어도 하나와 추출된 특성 사이의 유사도가 제 3 기준 값 이상인 경우, 코드 탐지기(150)는 어플리케이션의 실행 코드가 악성 코드를 포함함을 판별할 수 있다.In operation S1560, the execution code of the application may be determined to include malicious code. If the similarity between at least one of the malicious call models and the extracted feature is equal to or greater than a third reference value, the
S1570 단계에서, 어플리케이션의 실행 코드가 변종 악성 코드를 포함하는 것으로 판별될 수 있다. 악성 호출 모델들 중 적어도 하나와 추출된 특성 사이의 유사도가 제 3 기준 값보다 작고 제 4 기준 값 이상인 경우, 코드 탐지기(150)는 어플리케이션의 실행 코드가 변종 악성 코드를 포함함을 판별할 수 있다.In operation S1570, the execution code of the application may be determined to include variant malicious code. If the similarity between at least one of the malicious invocation models and the extracted characteristic is smaller than the third reference value and is greater than or equal to the fourth reference value, the
S1580 단계에서, 어플리케이션의 실행 코드가 의심 코드를 포함하는 것으로 판별될 수 있다. 악성 호출 모델들 각각과 추출된 특성 사이의 유사도가 제 4 기준 값보다 작은 경우, 어플리케이션의 실행 코드는 의심 코드로서 관리될 수 있다. S1580 단계는 도 10에 대한 참조와 함께 더 자세히 설명된다.In operation S1580, it may be determined that the execution code of the application includes the suspect code. If the similarity between each of the malicious invocation models and the extracted characteristic is smaller than the fourth reference value, the execution code of the application may be managed as suspicious code. Step S1580 is described in more detail with reference to FIG. 10.
실시 예로서, 도 7의 데이터베이스(175)는 악성 코드의 특성 체인, 악성 코드를 포함하는 어플리케이션의 종류, 악성 코드에 의해 실행되는 연산들 등과 같은 다양한 정보를 저장할 수 있다. 나아가, 데이터베이스(175)는 탐지된 악성 코드가 알려진 악성 코드인지, 변종 악성 코드인지, 또는 의심 코드인지 여부에 관한 태그(Tag) 정보를 더 저장할 수 있다. 데이터베이스(175)에 저장된 정보는 악성 코드를 탐지하고 악성 코드의 공격에 대비하기 위해 이용될 수 있다.In an embodiment, the
도 10은 도 9의 의심 코드를 관리하는 단계를 더 자세히 설명하는 흐름도이다. 실시 예로서, 도 9의 S1580 단계는 도 10의 S1581 내지 S1585 단계들을 포함할 수 있다. 예로서, S1580 단계는 도 4의 코드 탐지기(150)에 의해 처리될 수 있다.10 is a flow chart that describes in more detail the steps of managing the suspicious code of FIG. In an embodiment, step S1580 of FIG. 9 may include steps S1581 to S1585 of FIG. 10. For example, step S1580 may be processed by the
도 9에 대한 참조와 함께 설명된 것과 같이, 악성 호출 모델들 각각과 추출된 특성 사이의 유사도가 제 4 기준 값보다 작은 경우, S1580 단계에서 어플리케이션의 실행 코드가 의심 코드로서 관리될 수 있다. 즉, 추출된 특성과 정상 호출 모델 사이의 유사도가 낮고 추출된 특성과 악성 호출 모델 사이의 유사도도 낮은 경우, 어플리케이션의 실행 코드는 의심 코드로서 관리될 수 있다.As described with reference to FIG. 9, when the similarity between each of the malicious invocation models and the extracted feature is smaller than the fourth reference value, the execution code of the application may be managed as the suspect code in step S1580. That is, when the similarity between the extracted feature and the normal call model is low and the similarity between the extracted feature and the malicious call model is low, the execution code of the application may be managed as suspicious code.
S1581 단계에서, 추출된 특성과 정상 호출 모델들 사이의 유사도가 한 번 더 판별될 수 있다. S1581 단계는 도 9의 S1520 단계와 별개로 다시 수행될 수 있다. 또는, S1581 단계는 S1520 단계에서 얻어진 결과를 참조함으로써 수행될 수 있다.In step S1581, the similarity between the extracted feature and the normal call models may be determined once more. Operation S1581 may be performed again separately from operation S1520 of FIG. 9. Alternatively, step S1581 may be performed by referring to the result obtained in step S1520.
예로서, 정상 호출 모델들 각각과 추출된 특성 사이의 유사도가 제 5 기준 값 이하인 경우, 유사도가 매우 낮은 것으로 판별될 수 있다. 유사도가 매우 낮은 것으로 판별된 경우, S1583 단계가 수행될 수 있다. 반면, 유사도가 제 5 기준 값보다 큰 경우, 유사도가 매우 낮지는 않은 것으로 판별될 수 있다. 유사도가 매우 낮지 않은 것으로 판별된 경우, S1585 단계가 수행될 수 있다.For example, if the similarity between each of the normal call models and the extracted characteristic is equal to or less than the fifth reference value, it may be determined that the similarity is very low. If it is determined that the similarity is very low, step S1583 may be performed. On the other hand, when the similarity is greater than the fifth reference value, it may be determined that the similarity is not very low. If it is determined that the similarity is not very low, step S1585 may be performed.
S1583 단계에서, 새로운 악성 호출 모델이 생성될 수 있다. 추출된 특성과 악성 호출 모델 사이의 유사도가 낮음에도, 추출된 특성과 정상 호출 모델 사이의 유사도가 매우 낮은 경우, 어플리케이션의 실행 코드는 아직 알려지지 않은 새로운 악성 코드를 포함할 수 있다. 따라서, 정상 호출 모델들 각각과 추출된 특성 사이의 유사도가 제 5 기준 값 이하인 경우, 코드 탐지기(150)는 어플리케이션의 실행 코드가 새로운 악성 코드를 포함함을 판별할 수 있다. 나아가, 추출된 특성을 참조하여, 새로운 악성 코드의 특성 체인이 정의될 수 있다. 새로 정의된 특성 체인은 새로운 악성 호출 모델로서 도 4의 모델 정보 스토리지(140)에 저장될 수 있다.In step S1583, a new malicious call model may be generated. Even if the similarity between the extracted feature and the malicious calling model is low, if the similarity between the extracted feature and the normal calling model is very low, the executable code of the application may include new malicious code that is not yet known. Therefore, when the similarity between each of the normal call models and the extracted feature is equal to or less than the fifth reference value, the
S1585 단계에서, 어플리케이션의 실행 코드가 관심(Interest) 코드로서 저장될 수 있다. 추출된 특성과 악성 호출 모델 사이의 유사도가 낮고 추출된 특성과 정상 호출 모델 사이의 유사도가 매우 낮지는 않은 경우, 어플리케이션의 실행 코드가 악성인지 여부는 확신하기 어렵다. 따라서, 정상 호출 모델들 중 적어도 하나와 추출된 특성 사이의 유사도가 제 5 기준 값보다 큰 경우, 어플리케이션의 실행 코드는 관심 코드로서 저장될 수 있다. 예로서, 도 7의 데이터베이스(175)는 관심 코드를 저장할 수 있다.In operation S1585, the execution code of the application may be stored as interest code. If the similarity between the extracted feature and the malicious invocation model is low and the similarity between the extracted feature and the normal invocation model is not very low, it is difficult to determine whether the application's executable code is malicious. Thus, if the similarity between at least one of the normal call models and the extracted feature is greater than the fifth reference value, the executable code of the application may be stored as the code of interest. As an example, the
저장된 관심 코드는 악성 코드를 탐지하고 악성 코드의 공격에 대비하기 위해 이용될 수 있다. 예로서, 저장된 관심 코드를 포함하는 다른 실행 코드가 탐지된 경우, 그 저장된 관심 코드는 악성일 수 있다. 따라서, 저장된 관심 코드를 포함하는 다른 실행 코드가 탐지된 경우, 그 저장된 관심 코드에 대응하는 새로운 악성 호출 모델이 생성될 수 있다. 새로운 악성 호출 모델은 추출된 특성에 기초하여 새로운 악성 코드의 특성 체인을 정의함으로써 생성될 수 있다.The stored code of interest can be used to detect malicious code and prepare for attack by malicious code. For example, if other executable code is detected that includes a stored code of interest, the stored code of interest may be malicious. Thus, when other executable code containing a stored code of interest is detected, a new malicious invocation model corresponding to the stored code of interest may be generated. A new malicious call model can be created by defining a characteristic chain of new malicious code based on the extracted characteristics.
각각의 개념도에 나타낸 구성은 단지 개념적인 관점에서 이해되어야 한다. 본 발명의 이해를 돕기 위해, 개념도에 나타낸 구성 요소 각각의 형태, 구조, 크기 등은 과장 또는 축소되어 표현되었다. 실제로 구현되는 구성은 각각의 개념도에 나타낸 것과 다른 물리적 형상을 가질 수 있다. 각각의 개념도는 구성 요소의 물리적 형상을 제한하기 위한 것이 아니다.The construction shown in each conceptual diagram should only be understood from a conceptual point of view. In order to help the understanding of the present invention, the shape, structure, size, etc. of each component shown in the conceptual diagram are exaggerated or reduced. The actual implementation may have a different physical shape than shown in the respective conceptual diagrams. Each conceptual diagram is not intended to limit the physical shape of the components.
각각의 블록도에 나타낸 장치 구성은 발명의 이해를 돕기 위한 것이다. 각각의 블록은 기능에 따라 더 작은 단위의 블록들로 형성될 수 있다. 또는, 복수의 블록들은 기능에 따라 더 큰 단위의 블록을 형성할 수 있다. 즉, 본 발명의 기술 사상은 블록도에 도시된 구성에 의해 한정되지 않는다.The device configuration shown in each block diagram is to assist in understanding the invention. Each block may be formed of smaller units of blocks depending on the function. Alternatively, the plurality of blocks may form a larger unit block according to a function. That is, the technical idea of the present invention is not limited by the configuration shown in the block diagram.
이상에서 본 발명에 대한 실시 예를 중심으로 본 발명이 설명되었다. 다만, 본 발명이 속하는 기술 분야의 특성상, 본 발명이 이루고자 하는 목적은 본 발명의 요지를 포함하면서도 위 실시 예들과 다른 형태로 달성될 수 있다. 따라서, 위 실시 예들은 한정적인 것이 아니라 설명적인 측면에서 이해되어야 한다. 즉, 본 발명의 요지를 포함하면서 본 발명과 같은 목적을 달성할 수 있는 기술 사상은 본 발명의 기술 사상에 포함되는 것으로 해석되어야 한다.The present invention has been described above with reference to the embodiments of the present invention. However, in view of the characteristics of the technical field to which the present invention belongs, the object of the present invention may be achieved in a form different from the above embodiments while including the gist of the present invention. Therefore, the above embodiments are to be understood in terms of description rather than limitation. That is, the technical idea which can achieve the same objective as this invention, including the summary of this invention, should be interpreted as being included in the technical idea of this invention.
따라서, 본 발명의 본질적인 특성을 벗어나지 않는 범위 내에서 수정 또는 변형된 기술 사상은 본 발명이 청구하는 보호 범위에 포함되는 것이다. 또한, 본 발명의 보호 범위는 위 실시 예들로 한정되는 것이 아니다.Therefore, modifications or variations of the technical spirit within the scope not departing from the essential characteristics of the present invention are included in the protection scope claimed by the present invention. In addition, the protection scope of the present invention is not limited to the above embodiments.
100, 100a, 100b : 악성 코드 탐지 시스템
110 : 분류 정보 스토리지 120 : 데이터 수신기
130 : 어플리케이션 특성 추출기 140 : 모델 정보 스토리지
150 : 코드 탐지기 160 : 모델 생성기
170 : 탐지 결과 처리기 175 : 데이터베이스
210, 220, 230 : 컴퓨팅 장치 211 : 프로세서
213 : 메모리 215 : 스토리지
217 : 이벤트 후커 219 : 버스
310 : 유선 네트워크 320 : 무선 네트워크
1000 : 전자 시스템100, 100a, 100b: Malware Detection System
110: classification information storage 120: data receiver
130: application property extractor 140: model information storage
150: code detector 160: model generator
170: detection result handler 175: database
210, 220, 230: computing device 211: processor
213: Memory 215: Storage
217: Event Hooker 219: Bus
310: wired network 320: wireless network
1000: electronic system
Claims (17)
각각이 상기 사용자 장치에서 정상 코드가 실행될 때 발생하는 시스템 호출들에 기초하여 생성된 하나 이상의 정상 호출 모델들, 및 각각이 상기 사용자 장치에서 악성 코드가 실행될 때 발생하는 시스템 호출들에 기초하여 생성된 하나 이상의 악성 호출 모델들에 관한 정보를 저장하도록 구성되는 모델 정보 스토리지;
상기 사용자 장치에서 실행된 어플리케이션에 의해 발생한 시스템 호출들을 포함하는 탐지 대상 호출 패턴의 데이터를 제공받도록 구성되는 데이터 수신기;
상기 제공받은 데이터 및 상기 분류 정보를 참조하여 상기 탐지 대상 호출 패턴에 포함되는 시스템 호출들에 관한 특성을 추출하도록 구성되는 어플리케이션 특성 추출기;
상기 하나 이상의 정상 호출 모델들 및 상기 하나 이상의 악성 호출 모델들 중 적어도 하나와 상기 추출된 특성을 비교하여 상기 어플리케이션의 실행 코드가 악성 코드, 변종 악성 코드, 및 의심 코드 중 적어도 하나를 포함하는지 여부를 탐지하도록 구성되는 코드 탐지기; 및
상기 코드 탐지기의 탐지 결과에 기초하여 상기 어플리케이션의 상기 실행 코드에 포함되는 상기 악성 코드, 상기 변종 악성 코드, 및 상기 의심 코드 중 적어도 하나에 관한 정보를 저장하도록 구성되는 데이터베이스를 포함하되,
상기 코드 탐지기는 상기 탐지 결과를 획득하기 위하여 상기 데이터베이스에 저장된 정보를 이용하는 전자 시스템.A classification information storage configured to store classification information regarding a classification to which each of the system calls occurring in the user device belongs;
One or more normal call models, each generated based on system calls that occur when normal code is executed on the user device, and each generated based on system calls that occur when malicious code is executed on the user device. Model information storage configured to store information about one or more malicious invocation models;
A data receiver configured to be provided with data of a detection target call pattern including system calls made by an application executed in the user device;
An application feature extractor configured to extract a feature relating to system calls included in the detected call pattern by referring to the provided data and the classification information;
Compare the extracted characteristic with at least one of the one or more normal calling models and the one or more malicious calling models to determine whether the executable code of the application includes at least one of malicious code, variant malicious code, and suspicious code. A code detector configured to detect; And
A database configured to store information regarding at least one of the malicious code, the modified malicious code, and the suspect code included in the executable code of the application based on a detection result of the code detector,
The code detector uses the information stored in the database to obtain the detection result.
상기 분류 정보는 프로세스, 쓰레드, 메모리, 파일, 레지스트리, 네트워크, 서비스, 및 기타 분류들 중 적어도 하나와 상기 사용자 장치에서 발생하는 시스템 호출들 사이의 대응 관계에 관한 정보를 포함하는 전자 시스템.The method of claim 1,
The categorization information includes information regarding a correspondence between at least one of a process, thread, memory, file, registry, network, service, and other categorizations and system calls occurring in the user device.
상기 탐지 대상 호출 패턴의 데이터가 제공되기 전에 미리 상기 분류 정보를 참조하여 상기 하나 이상의 정상 호출 모델들 및 상기 하나 이상의 악성 호출 모델들을 생성하고, 그리고 상기 추출된 특성 및 상기 코드 탐지기의 상기 탐지 결과에 기초하여 상기 하나 이상의 정상 호출 모델들 및 상기 하나 이상의 악성 호출 모델들 중 적어도 하나를 갱신하도록 구성되는 모델 생성기를 더 포함하는 전자 시스템.The method of claim 1,
Before the data of the detection target call pattern is provided, the one or more normal call models and the one or more malicious call models are generated with reference to the classification information in advance, and the extracted characteristics and the detection result of the code detector are generated. And a model generator configured to update at least one of the one or more normal call models and the one or more malicious call models based.
상기 코드 탐지기는:
상기 하나 이상의 정상 호출 모델들 각각과 상기 추출된 특성 사이의 유사도가 제 1 기준 값 이상인 경우, 상기 어플리케이션의 상기 실행 코드가 정상임을 판별하고,
상기 하나 이상의 악성 호출 모델들 중 적어도 하나와 상기 추출된 특성 사이의 유사도가 상기 제 1 기준 값보다 작고 제 3 기준 값 이상인 경우, 상기 어플리케이션의 상기 실행 코드가 상기 악성 코드를 포함함을 판별하고,
상기 하나 이상의 악성 호출 모델들 중 적어도 하나와 상기 추출된 특성 사이의 유사도가 상기 제 3 기준 값보다 작고 제 4 기준 값 이상인 경우, 상기 어플리케이션의 상기 실행 코드가 상기 변종 악성 코드를 포함함을 판별하고, 그리고
상기 하나 이상의 악성 호출 모델들 각각과 상기 추출된 특성 사이의 유사도가 상기 제 4 기준 값보다 작은 경우, 상기 어플리케이션의 상기 실행 코드를 상기 의심 코드로서 관리하되,
상기 하나 이상의 정상 호출 모델들 각각과 상기 추출된 특성 사이의 유사도가 상기 제 4 기준 값보다 작고 제 5 기준 값 이하인 경우, 상기 어플리케이션의 상기 실행 코드가 새로운 악성 코드를 포함함을 판별하고, 그리고
상기 하나 이상의 정상 호출 모델들 중 적어도 하나와 상기 추출된 특성 사이의 유사도가 상기 제 4 기준 값보다 작고 상기 제 5 기준 값보다 큰 경우, 상기 어플리케이션의 상기 실행 코드를 상기 데이터베이스에 관심 코드로서 저장하도록 더 구성되는 전자 시스템.The method of claim 1,
The code detector is:
If the similarity between each of the one or more normal call models and the extracted characteristic is equal to or greater than a first reference value, determine that the execution code of the application is normal,
If the similarity between at least one of the one or more malicious invocation models and the extracted feature is less than the first reference value and is greater than or equal to a third reference value, determine that the executable code of the application includes the malicious code,
If the similarity between at least one of the one or more malicious invocation models and the extracted feature is less than the third reference value and is greater than or equal to a fourth reference value, determine that the executable code of the application includes the variant malicious code; , And
If the similarity between each of the one or more malicious invocation models and the extracted characteristic is less than the fourth reference value, the execution code of the application is managed as the suspect code,
If the similarity between each of the one or more normal invocation models and the extracted feature is less than the fourth reference value and less than or equal to a fifth reference value, determine that the executable code of the application includes new malicious code, and
If the similarity between at least one of the one or more normal call models and the extracted characteristic is less than the fourth reference value and greater than the fifth reference value, store the executable code of the application as an interest code in the database. Electronic system further configured.
상기 하나 이상의 정상 호출 모델들 각각은 상기 정상 코드가 실행될 때 발생하는 시스템 호출들 각각의 분류, 및 상기 정상 코드가 실행될 때 접근되는 메모리의 위치, 상기 정상 코드가 실행될 때 접근되는 시스템 파일의 종류, 상기 정상 코드가 실행될 때 접근되는 레지스트리의 종류, 상기 정상 코드가 실행될 때 접근되는 네트워크의 특성, 및 상기 정상 코드가 실행될 때 동작하는 서비스의 유형 중 적어도 하나에 기초하여 생성되고,
상기 하나 이상의 악성 호출 모델들 각각은 상기 악성 코드가 실행될 때 발생하는 시스템 호출들 각각의 분류, 및 상기 악성 코드가 실행될 때 접근되는 메모리의 위치, 상기 악성 코드가 실행될 때 접근되는 시스템 파일의 종류, 상기 악성 코드가 실행될 때 접근되는 레지스트리의 종류, 상기 악성 코드가 실행될 때 접근되는 네트워크의 특성, 및 상기 악성 코드가 실행될 때 동작하는 서비스의 유형 중 적어도 하나에 기초하여 생성되는 전자 시스템.The method of claim 1,
Each of the one or more normal call models includes a classification of each of the system calls that occur when the normal code is executed, a location of memory accessed when the normal code is executed, a type of system file accessed when the normal code is executed, Generated based on at least one of a type of a registry accessed when the normal code is executed, a characteristic of a network accessed when the normal code is executed, and a type of service operating when the normal code is executed,
Each of the one or more malicious calling models may include a classification of each of the system calls occurring when the malicious code is executed, a location of a memory accessed when the malicious code is executed, a type of system file accessed when the malicious code is executed, And an electronic system generated based on at least one of a type of a registry accessed when the malicious code is executed, a characteristic of a network accessed when the malicious code is executed, and a type of a service operating when the malicious code is executed.
상기 어플리케이션 특성 추출기는 상기 탐지 대상 호출 패턴에 포함되는 시스템 호출들이 속하는 분류들, 상기 탐지 대상 호출 패턴에 포함되는 시스템 호출들의 발생 순서, 및 상기 탐지 대상 호출 패턴에 포함되는 시스템 호출들 각각의 호출 횟수 중 적어도 하나를 추출하도록 구성되는 전자 시스템.The method of claim 1,
The application feature extractor includes classifications to which system calls included in the detection target call pattern belongs, an order of occurrence of system calls included in the detection target call pattern, and a number of calls of each of the system calls included in the detection target call pattern. And to extract at least one of the electronic systems.
상기 복수의 컴퓨팅 장치에서 발생하는 시스템 호출들 각각이 속하는 분류에 관한 분류 정보를 저장하도록 구성되는 분류 정보 스토리지;
각각이 상기 복수의 컴퓨팅 장치에서 정상 코드가 실행될 때 발생하는 시스템 호출들에 기초하여 생성된 하나 이상의 정상 호출 모델들, 및 각각이 상기 복수의 컴퓨팅 장치에서 악성 코드가 실행될 때 발생하는 시스템 호출들에 기초하여 생성된 하나 이상의 악성 호출 모델들에 관한 정보를 저장하도록 구성되는 모델 정보 스토리지;
상기 이벤트 로그 및 상기 분류 정보를 참조하여 상기 후킹된 시스템 호출들에 관한 특성을 추출하도록 구성되는 어플리케이션 특성 추출기;
상기 하나 이상의 정상 호출 모델들 및 상기 하나 이상의 악성 호출 모델들 중 적어도 하나와 상기 추출된 특성을 비교하여 상기 어플리케이션의 실행 코드가 악성 코드, 변종 악성 코드, 및 의심 코드 중 적어도 하나를 포함하는지 여부를 탐지하도록 구성되는 코드 탐지기; 및
상기 코드 탐지기의 탐지 결과에 기초하여 상기 어플리케이션의 상기 실행 코드에 포함되는 상기 악성 코드, 상기 변종 악성 코드, 및 상기 의심 코드 중 적어도 하나에 관한 정보를 저장하도록 구성되는 데이터베이스를 포함하되,
상기 코드 탐지기는 상기 탐지 결과를 획득하기 위하여 상기 데이터베이스에 저장된 정보를 이용하는 전자 시스템.A plurality of computing devices, each configured to execute an application, comprising an event hooker configured to hook system calls that occur when the application is executed, and configured to generate an event log regarding the hooked system calls;
A classification information storage configured to store classification information regarding a classification to which each of the system calls occurring in the plurality of computing devices belong;
One or more normal call models generated based on system calls that occur when normal code executes on the plurality of computing devices, and system calls that occur when malicious code executes on the plurality of computing devices, respectively. Model information storage configured to store information about one or more malicious invocation models generated based on the information;
An application feature extractor configured to extract a feature relating to the hooked system calls with reference to the event log and the classification information;
Compare the extracted characteristic with at least one of the one or more normal calling models and the one or more malicious calling models to determine whether the executable code of the application includes at least one of malicious code, variant malicious code, and suspicious code. A code detector configured to detect; And
A database configured to store information regarding at least one of the malicious code, the modified malicious code, and the suspect code included in the executable code of the application based on a detection result of the code detector,
The code detector uses the information stored in the database to obtain the detection result.
상기 후킹된 시스템 호출들에 관한 특성은 상기 후킹된 시스템 호출들이 속하는 분류들, 상기 후킹된 시스템 호출들의 발생 순서, 및 상기 후킹된 시스템 호출들 각각의 호출 횟수 중 적어도 하나를 포함하는 전자 시스템.The method of claim 7, wherein
And the characteristic with respect to the hooked system calls comprises at least one of a classification to which the hooked system calls belong, an order of occurrence of the hooked system calls, and a number of calls of each of the hooked system calls.
상기 코드 탐지기는:
상기 하나 이상의 정상 호출 모델들 각각과 상기 추출된 특성 사이의 유사도가 제 1 기준 값 이상인 경우, 상기 어플리케이션의 상기 실행 코드가 정상임을 판별하고,
상기 하나 이상의 악성 호출 모델들 중 적어도 하나와 상기 추출된 특성 사이의 유사도가 상기 제 1 기준 값보다 작고 제 3 기준 값 이상인 경우, 상기 어플리케이션의 상기 실행 코드가 상기 악성 코드를 포함함을 판별하고,
상기 하나 이상의 악성 호출 모델들 중 적어도 하나와 상기 추출된 특성 사이의 유사도가 상기 제 3 기준 값보다 작고 제 4 기준 값 이상인 경우, 상기 어플리케이션의 상기 실행 코드가 상기 변종 악성 코드를 포함함을 판별하고, 그리고
상기 하나 이상의 악성 호출 모델들 각각과 상기 추출된 특성 사이의 유사도가 상기 제 4 기준 값보다 작은 경우, 상기 어플리케이션의 상기 실행 코드를 상기 의심 코드로서 관리하되,
상기 하나 이상의 정상 호출 모델들 각각과 상기 추출된 특성 사이의 유사도가 상기 제 4 기준 값보다 작고 제 5 기준 값 이하인 경우, 상기 어플리케이션의 상기 실행 코드가 새로운 악성 코드를 포함함을 판별하고, 그리고
상기 하나 이상의 정상 호출 모델들 중 적어도 하나와 상기 추출된 특성 사이의 유사도가 상기 제 4 기준 값보다 작고 상기 제 5 기준 값보다 큰 경우, 상기 어플리케이션의 상기 실행 코드를 상기 데이터베이스에 관심 코드로서 저장하도록 더 구성되는 전자 시스템.The method of claim 7, wherein
The code detector is:
If the similarity between each of the one or more normal call models and the extracted characteristic is equal to or greater than a first reference value, determine that the execution code of the application is normal,
If the similarity between at least one of the one or more malicious invocation models and the extracted feature is less than the first reference value and is greater than or equal to a third reference value, determine that the executable code of the application includes the malicious code,
If the similarity between at least one of the one or more malicious invocation models and the extracted feature is less than the third reference value and is greater than or equal to a fourth reference value, determine that the executable code of the application includes the variant malicious code; , And
If the similarity between each of the one or more malicious invocation models and the extracted characteristic is less than the fourth reference value, the execution code of the application is managed as the suspect code,
If the similarity between each of the one or more normal invocation models and the extracted feature is less than the fourth reference value and less than or equal to a fifth reference value, determine that the executable code of the application includes new malicious code, and
If the similarity between at least one of the one or more normal call models and the extracted characteristic is less than the fourth reference value and greater than the fifth reference value, store the executable code of the application as an interest code in the database. Electronic system further configured.
컴퓨팅 장치에서 정상 코드가 실행될 때 발생하는 시스템 호출들에 관한 정상 호출 패턴 정보, 및 상기 컴퓨팅 장치에서 악성 코드가 실행될 때 발생하는 시스템 호출들에 관한 악성 호출 패턴 정보를 수집하는 단계;
상기 정상 호출 패턴 정보 및 상기 악성 호출 패턴 정보에 각각 기초하여 하나 이상의 정상 호출 모델들 및 하나 이상의 악성 호출 모델들을 생성하는 단계;
하나 이상의 사용자 장치들에서 실행된 어플리케이션에 의해 발생한 시스템 호출들을 포함하는 탐지 대상 호출 패턴의 데이터를 제공받는 단계;
상기 컴퓨팅 장치에서 발생하는 시스템 호출들 각각이 속하는 분류에 관한 분류 정보를 참조하여 상기 탐지 대상 호출 패턴에 포함되는 시스템 호출들에 관한 특성을 추출하는 단계;
상기 하나 이상의 정상 호출 모델들 및 상기 하나 이상의 악성 호출 모델들 중 적어도 하나와 상기 추출된 특성을 비교하여 상기 어플리케이션의 실행 코드가 악성 코드, 변종 악성 코드, 및 의심 코드 중 적어도 하나를 포함하는지 여부를 탐지하는 단계; 및
코드 탐지기의 탐지 결과에 기초하여 상기 어플리케이션의 상기 실행 코드에 포함되는 상기 악성 코드, 상기 변종 악성 코드, 및 상기 의심 코드 중 적어도 하나에 관한 정보를 데이터베이스에 저장하는 단계를 포함하되,
상기 탐지 결과는 상기 데이터베이스에 저장된 정보를 이용하여 획득되는 방법.In a method for detecting malicious code using an electronic system,
Collecting normal call pattern information about system calls that occur when normal code is executed on a computing device, and malicious call pattern information about system calls that occur when malicious code is executed on the computing device;
Generating one or more normal call models and one or more malicious call models based on the normal call pattern information and the malicious call pattern information, respectively;
Receiving data of a detection target call pattern including system calls made by an application executed on one or more user devices;
Extracting a characteristic of system calls included in the detected call pattern by referring to classification information regarding a classification to which each of the system calls generated by the computing device belongs;
Compare the extracted characteristic with at least one of the one or more normal calling models and the one or more malicious calling models to determine whether the executable code of the application includes at least one of malicious code, variant malicious code, and suspicious code. Detecting; And
Storing information about at least one of the malicious code, the modified malicious code, and the suspected code included in the executable code of the application based on a detection result of a code detector, in a database;
The detection result is obtained using the information stored in the database.
상기 탐지하는 단계는:
상기 하나 이상의 정상 호출 모델들 중 적어도 하나와 상기 추출된 특성을 비교하는 단계; 및
상기 하나 이상의 정상 호출 모델들 중에서 상기 추출된 특성과 비교된 대상 정상 호출 모델과 상기 추출된 특성 사이의 유사도가 제 1 기준 값 이상인 경우, 상기 어플리케이션의 상기 실행 코드가 정상임을 판별하는 단계를 포함하는 방법.The method of claim 10,
The detecting step is:
Comparing the extracted feature with at least one of the one or more normal call models; And
Determining that the execution code of the application is normal when the similarity between the target normal call model compared with the extracted feature and the extracted feature among the one or more normal call models is equal to or greater than a first reference value; Way.
상기 대상 정상 호출 모델과 상기 추출된 특성 사이의 유사도가 상기 제 1 기준 값 이상이고 상기 대상 정상 호출 모델과 상기 추출된 특성 사이의 차이가 제 2 기준 값 이상인 경우, 상기 추출된 특성을 참조하여 상기 대상 정상 호출 모델을 갱신하는 단계를 더 포함하는 방법.The method of claim 11,
If the similarity between the target normal call model and the extracted feature is equal to or greater than the first reference value and the difference between the target normal call model and the extracted feature is equal to or greater than a second reference value, Updating the target normal invocation model.
상기 탐지하는 단계는:
상기 하나 이상의 정상 호출 모델들 각각과 상기 추출된 특성 사이의 유사도가 상기 제 1 기준 값보다 작은 경우, 상기 하나 이상의 악성 호출 모델들 중 적어도 하나와 상기 추출된 특성을 비교하는 단계; 및
상기 하나 이상의 악성 호출 모델들 중 적어도 하나와 상기 추출된 특성 사이의 유사도가 제 3 기준 값 이상인 경우, 상기 어플리케이션의 상기 실행 코드가 상기 악성 코드를 포함함을 판별하는 단계를 더 포함하는 방법.The method of claim 11,
The detecting step is:
Comparing the extracted feature with at least one of the one or more malicious call models when the similarity between each of the one or more normal call models and the extracted feature is less than the first reference value; And
If the similarity between at least one of the one or more malicious invocation models and the extracted feature is greater than or equal to a third reference value, determining that the executable code of the application includes the malicious code.
상기 탐지하는 단계는:
상기 하나 이상의 악성 호출 모델들 중 적어도 하나와 상기 추출된 특성 사이의 유사도가 상기 제 3 기준 값보다 작고 제 4 기준 값 이상인 경우, 상기 어플리케이션의 상기 실행 코드가 상기 변종 악성 코드를 포함함을 판별하는 단계를 더 포함하는 방법.The method of claim 13,
The detecting step is:
Determining that the executable code of the application includes the variant malicious code when the similarity between at least one of the one or more malicious invocation models and the extracted feature is less than the third reference value and equal to or greater than a fourth reference value The method further comprises a step.
상기 탐지하는 단계는:
상기 하나 이상의 악성 호출 모델들 각각과 상기 추출된 특성 사이의 유사도가 상기 제 4 기준 값보다 작은 경우, 상기 어플리케이션의 상기 실행 코드를 상기 의심 코드로서 관리하는 단계를 더 포함하는 방법.The method of claim 14,
The detecting step is:
If the similarity between each of the one or more malicious invocation models and the extracted feature is less than the fourth reference value, managing the executable code of the application as the suspect code.
상기 관리하는 단계는:
상기 하나 이상의 정상 호출 모델들 각각과 상기 추출된 특성 사이의 유사도가 제 5 기준 값 이하인 경우, 상기 어플리케이션의 상기 실행 코드가 새로운 악성 코드를 포함함을 판별하는 단계; 및
상기 추출된 특성을 참조하여 상기 새로운 악성 코드에 대응하는 새로운 악성 호출 모델을 생성하는 단계를 포함하는 방법.The method of claim 15,
The managing step is:
If the similarity between each of the one or more normal call models and the extracted feature is less than or equal to a fifth reference value, determining that the executable code of the application includes new malicious code; And
Generating a new malicious calling model corresponding to the new malicious code by referring to the extracted characteristic.
상기 관리하는 단계는:
상기 하나 이상의 정상 호출 모델들 중 적어도 하나와 상기 추출된 특성 사이의 유사도가 상기 제 5 기준 값보다 큰 경우, 상기 어플리케이션의 상기 실행 코드를 상기 데이터베이스에 관심 코드로서 저장하는 단계; 및
상기 관심 코드를 포함하는 다른 실행 코드가 탐지된 경우, 상기 추출된 특성을 참조하여 상기 관심 코드에 대응하는 새로운 악성 호출 모델을 생성하는 단계를 더 포함하는 방법.The method of claim 16,
The managing step is:
If the similarity between at least one of the one or more normal call models and the extracted feature is greater than the fifth reference value, storing the executable code of the application as an interest code in the database; And
And when another executable code including the code of interest is detected, generating a new malicious calling model corresponding to the code of interest with reference to the extracted characteristic.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150020976A KR102045772B1 (en) | 2015-02-11 | 2015-02-11 | Electronic system and method for detecting malicious code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150020976A KR102045772B1 (en) | 2015-02-11 | 2015-02-11 | Electronic system and method for detecting malicious code |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160099159A KR20160099159A (en) | 2016-08-22 |
KR102045772B1 true KR102045772B1 (en) | 2019-11-19 |
Family
ID=56854694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150020976A Expired - Fee Related KR102045772B1 (en) | 2015-02-11 | 2015-02-11 | Electronic system and method for detecting malicious code |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102045772B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102211846B1 (en) | 2020-07-21 | 2021-02-03 | 국방과학연구소 | Ransomware detection system and operating method thereof |
KR20210110074A (en) | 2020-02-28 | 2021-09-07 | 국방과학연구소 | Method and apparatus for analysing function of malicious code |
US11853421B2 (en) | 2020-02-25 | 2023-12-26 | Agency For Defense Development | Method and apparatus for analyzing malicious code |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002710B (en) * | 2017-06-07 | 2021-06-22 | 中国移动通信有限公司研究院 | Detection method, detection device and computer readable storage medium |
WO2019004503A1 (en) * | 2017-06-29 | 2019-01-03 | 라인 가부시키가이샤 | Application vulnerability detection method and system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101421136B1 (en) * | 2007-07-10 | 2014-07-21 | 더 리젠츠 오브 더 유니버시티 오브 미시건 | A method and apparatus for modeling the behavior of a computer program for testing malicious programs |
KR101003510B1 (en) * | 2009-01-20 | 2010-12-29 | 한남대학교 산학협력단 | Malicious process blocking and execution prevention system |
KR101230271B1 (en) * | 2010-12-24 | 2013-02-06 | 고려대학교 산학협력단 | System and method for detecting malicious code |
KR101410233B1 (en) * | 2012-11-01 | 2014-06-20 | 주식회사 윈스 | Network session behavioral pattern modeling detection method and modeling detection system |
-
2015
- 2015-02-11 KR KR1020150020976A patent/KR102045772B1/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11853421B2 (en) | 2020-02-25 | 2023-12-26 | Agency For Defense Development | Method and apparatus for analyzing malicious code |
KR20210110074A (en) | 2020-02-28 | 2021-09-07 | 국방과학연구소 | Method and apparatus for analysing function of malicious code |
KR102211846B1 (en) | 2020-07-21 | 2021-02-03 | 국방과학연구소 | Ransomware detection system and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20160099159A (en) | 2016-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10791133B2 (en) | System and method for detecting and mitigating ransomware threats | |
US10216934B2 (en) | Inferential exploit attempt detection | |
US9679136B2 (en) | Method and system for discrete stateful behavioral analysis | |
CN103955645B (en) | The detection method of malicious process behavior, apparatus and system | |
EP3055808B1 (en) | Event model for correlating system component states | |
US8307434B2 (en) | Method and system for discrete stateful behavioral analysis | |
US11356467B2 (en) | Log analysis device, log analysis method, and log analysis program | |
CN107992751B (en) | A real-time threat detection method based on branch behavior model | |
KR102045772B1 (en) | Electronic system and method for detecting malicious code | |
Zakeri et al. | A static heuristic approach to detecting malware targets | |
US8775607B2 (en) | Identifying stray assets in a computing enviroment and responsively taking resolution actions | |
US9787699B2 (en) | Malware detection | |
EP3692695B1 (en) | Intrusion investigation | |
CN105095759A (en) | File detection method and device | |
EP3531324A1 (en) | Identification process for suspicious activity patterns based on ancestry relationship | |
US9456001B2 (en) | Attack notification | |
EP3232358B1 (en) | Correlation-based detection of exploit activity | |
KR20160099160A (en) | Method of modelling behavior pattern of instruction set in n-gram manner, computing device operating with the method, and program stored in storage medium configured to execute the method in computing device | |
US9646157B1 (en) | Systems and methods for identifying repackaged files | |
US11763004B1 (en) | System and method for bootkit detection | |
CN117914582A (en) | Method, device, equipment and storage medium for detecting process hollowing attack | |
CN109472138B (en) | Method, device and storage medium for detecting snort rule conflict | |
US20250193213A1 (en) | Rapid identification of malicious cyber activity and contextualization of indicators of compromise | |
Reid et al. | Comparative Study of Malware Detection Techniques for Industrial Control Systems | |
Qiu et al. | Keep calm and know where to focus: Measuring and predicting the impact of android malware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
A201 | Request for examination | ||
PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
P22-X000 | Classification modified |
St.27 status event code: A-2-2-P10-P22-nap-X000 |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
E90F | Notification of reason for final refusal | ||
PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |
|
PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20241113 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20241113 |