KR101306656B1 - Apparatus and method for providing dynamic analysis information of malignant code - Google Patents

Apparatus and method for providing dynamic analysis information of malignant code Download PDF

Info

Publication number
KR101306656B1
KR101306656B1 KR1020110146432A KR20110146432A KR101306656B1 KR 101306656 B1 KR101306656 B1 KR 101306656B1 KR 1020110146432 A KR1020110146432 A KR 1020110146432A KR 20110146432 A KR20110146432 A KR 20110146432A KR 101306656 B1 KR101306656 B1 KR 101306656B1
Authority
KR
South Korea
Prior art keywords
dynamic analysis
malware
code
analysis information
malicious code
Prior art date
Application number
KR1020110146432A
Other languages
Korean (ko)
Other versions
KR20130077621A (en
Inventor
황규범
Original Assignee
주식회사 안랩
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 안랩 filed Critical 주식회사 안랩
Priority to KR1020110146432A priority Critical patent/KR101306656B1/en
Publication of KR20130077621A publication Critical patent/KR20130077621A/en
Application granted granted Critical
Publication of KR101306656B1 publication Critical patent/KR101306656B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Abstract

종래의 동적 분석은, 디버깅 검출 및 안티 디버깅 기법 등이 코드에 포함되는 경우에 분석가의 판단에 의해 코드를 스킵(skip)하는 노력이 필요하다. 즉, 디버깅 유틸리티 등을 통해 코드를 하나씩 실행시키면서 실행압축 해제 또는 안티 디버깅 코드를 확인하면서 디버깅을 할 수밖에 없다. 따라서, 분석가 입장에서 안티 디버깅 기법 및 디버깅 검출 기법을 모른다면 어려움에 처할 수 있다. 이에 본 발명의 실시예에서는, 악성코드 동작의 호출 지점을 기반으로 악성코드의 동적 분석을 수행함으로써, 디버깅을 수행하지 않은 상황에서 악성코드 발생을 모니터링하고, 악성코드가 발생된 프로그램의 코드를 확인할 수 있게 하여 분석가가 원하는 시점에 디버깅을 수행할 수 있도록 하는 악성코드 동적 분석 기술을 제안하고자 한다.Conventional dynamic analysis requires an effort to skip code at the analyst's discretion when debugging detection, anti-debugging techniques, etc. are included in the code. In other words, debugging is executed while checking the execution decompression or anti-debugging code while executing the code one by one through a debugging utility. As a result, analysts may face difficulties if they do not know anti-debugging techniques and debugging-detection techniques. Accordingly, in the embodiment of the present invention, by performing the dynamic analysis of the malicious code based on the call point of the malicious code operation, monitor the occurrence of the malicious code in the absence of debugging, and check the code of the program that generated the malicious code In this paper, we propose a dynamic analysis technique for malware that enables the analyst to perform debugging at the desired time.

Description

악성코드 동적 분석정보 제공 장치 및 방법{APPARATUS AND METHOD FOR PROVIDING DYNAMIC ANALYSIS INFORMATION OF MALIGNANT CODE}Apparatus and method for providing malware dynamic analysis information {APPARATUS AND METHOD FOR PROVIDING DYNAMIC ANALYSIS INFORMATION OF MALIGNANT CODE}

본 발명은 악성코드 동적 분석정보 제공 기술에 관한 것으로, 특히 안티 디버깅(anti-debugging) 기법이나 코드 난독화 기법 등으로 인하여 동적 분석이 어려운 경우에도 시스템 모니터링을 통해 악성코드의 동작을 찾고 동작 발생 시점의 코드를 확인하는데 적합한 악성코드 동적 분석정보 제공 방법 및 장치에 관한 것이다.
The present invention relates to a technique for providing malicious code dynamic analysis information, in particular, even when dynamic analysis is difficult due to an anti-debugging technique or a code obfuscation technique. The present invention relates to a method and apparatus for providing dynamic analysis information suitable for identifying a code of a computer.

예를 들어, 윈도우(Windows) 등의 운영체제를 갖는 PC(Personal Computer) 환경에서 악성코드를 분석하기 위해서는 별도의 분석 프로그램을 실행시켜 그 결과 또는 그 과정을 확인해야만 한다.For example, in order to analyze malicious codes in a personal computer (PC) environment having an operating system such as Windows, a separate analysis program must be executed to check the result or the process thereof.

이러한 악성코드 분석은 크게 정적 분석과 동적 분석으로 구분될 수 있는데, 정적 분석은 프로그램 코드를 있는 그대로 분석하는 것이고, 동적 분석은 코드를 일부 실행시키거나 코드 실행 도중에 악성코드를 분석하는 과정을 의미한다.Malware analysis can be divided into static analysis and dynamic analysis. Static analysis is the analysis of program code as it is, and dynamic analysis is the process of executing some code or analyzing malware during code execution. .

정적 분석의 경우에는 디버깅 검출이나 가상환경 검출 등으로 분석을 방해하는 경우에는 대응할 수 있으나, 코드 변형이나 실행 압축된 경우, 암호화된 경우 등에는 보호전 코드를 복원해야 한다.In the case of static analysis, it is possible to cope with the case where the analysis is interrupted by debugging detection or virtual environment detection, but the code before protection should be restored in case of code modification, execution compression or encryption.

한편, 실행압축이나 코드 변형 문제로 인해 동적 분석을 수행하는 경우에는, 코드를 실행해 복원 코드를 만들어 코드를 확인하고, 악의적 기능을 확인하기 위해 추가적으로 실행하여 그 결과 및 코드를 보고 판단하게 된다. 즉, 분석을 방해할 목적으로 실행 압축되었거나 암호화된 경우, 그리고 디버깅 감지 코드 등이 포함된 악성코드의 경우에는 분석을 방해하는 코드를 별도로 분석해야만 한다.On the other hand, when dynamic analysis is performed due to execution compression or code modification problem, the code is executed to generate the restored code to check the code, and additionally executed to confirm the malicious function, and the result and the code are judged. In other words, if the code is executed or compressed for the purpose of interfering with the analysis, and in the case of the malicious code including the debugging detection code, the code for the analysis must be analyzed separately.

이러한 동적 분석은, 디버깅 검출 및 안티 디버깅 기법 등이 코드에 포함되는 경우에 분석가의 판단에 의해 코드를 스킵(skip)하는 노력이 필요하다. 즉, 디버깅 유틸리티 등을 통해 코드를 하나씩 실행시키면서 실행압축 해제 또는 안티 디버깅 코드를 확인하면서 디버깅을 할 수밖에 없다. 따라서, 분석가 입장에서 안티 디버깅 기법 및 디버깅 검출 기법을 모른다면 어려움에 처할 수 있다.Such dynamic analysis requires an effort to skip code at the analyst's discretion when debugging detection and anti-debugging techniques are included in the code. In other words, debugging is executed while checking the execution decompression or anti-debugging code while executing the code one by one through a debugging utility. As a result, analysts may face difficulties if they do not know anti-debugging techniques and debugging-detection techniques.

또한, 특정 프로그램(애플리케이션)의 기능 수행 과정을 모니터링할 필요가 있는데, 이때 악성코드 내에서 해당 프로그램을 호출하는 코드를 찾는 경우에는 코드 전체를 확인해야 하는 번거로움이 있으며, 특정 함수가 비동기적으로 수행되는 시점을 확인해야 할 뿐만 아니라, 윈도우즈 등의 운영체제에서 DLL(Dynamic Linking Library)을 동적으로 로드하는 경우에 DLL 내에 포함된 API(Application Programming Interface)를 후킹(hooking)하여 분석하는 과정들이 필요하다.
In addition, it is necessary to monitor the function performance of a specific program (application). In this case, when finding the code that calls the program in the malicious code, it is cumbersome to check the entire code. In addition to checking the timing of execution, in the case of dynamically loading a DLL (Dynamic Linking Library) in an operating system such as Windows, a process of hooking and analyzing an API (Application Programming Interface) included in the DLL is necessary. .

한국등록특허 10-1083311호, 악성 스크립트 분석 시스템 및 그를 이용한 악성 스크립트 분석 방법, 2011년11월8일 등록Korea Patent Registration 10-1083311, Malicious script analysis system and malicious script analysis method using the same, November 8, 2011 registration 한국등록특허 10-0926115호, 특정 이벤트/조건에서 동작하는 윈도우용 악성 코드탐지를 위한 프로그램 자동 분석 장치 및 방법, 2009년11월3일 등록Korea Patent Registration No. 10-0926115, Apparatus and method for automatic analysis of program for detecting malicious code for Windows operating under specific events / conditions, registered November 3, 2009 한국공개특허 2011-0057297호, 악성 봇 동적 분석 시스템 및 방법, 2011년6월1일 공개Korean Patent Publication No. 2011-0057297, Malicious Bot Dynamic Analysis System and Method, published June 1, 2011

이에 본 발명의 실시예에서는, 악성코드 동작의 호출 지점을 기반으로 악성코드의 동적 분석을 수행함으로써, 디버깅을 수행하지 않은 상황에서 악성코드 발생을 모니터링하고, 악성코드가 발생된 프로그램의 코드를 확인할 수 있게 하여 분석가가 원하는 시점에 디버깅을 수행할 수 있도록 하는 악성코드 동적 분석정보 제공 기술을 제안하고자 한다.
Accordingly, in the embodiment of the present invention, by performing the dynamic analysis of the malicious code based on the call point of the malicious code operation, monitor the occurrence of the malicious code in the absence of debugging, and check the code of the program that generated the malicious code This paper proposes a technique for providing dynamic analysis information on malicious code that enables an analyst to perform debugging at a desired time.

본 발명의 실시예에 따른 악성코드 동적 분석정보 제공 장치는, 악성코드 또는 네트워크의 동작을 스레드(thread) 단위로 모니터링하는 모니터링부와, 상기 모니터링부의 특정 API(Application Programming Interface) 또는 기 설치된 이벤트 핸들러(event handler)로부터의 호출지점을 검출하는 호출지점 검출부와, 상기 호출지점 검출부를 통해 검출되는 호출지점에 따른 악성코드 동적 분석 결과를 디스플레이 제어하는 제어부를 포함할 수 있다.The apparatus for providing dynamic analysis information for malicious code according to an embodiment of the present invention includes a monitoring unit for monitoring the operation of a malicious code or a network in units of threads, a specific API (Application Programming Interface) or an event handler installed in the monitoring unit. and a call point detection unit for detecting a call point from an event handler, and a controller for displaying and controlling a result of dynamic analysis of malicious code according to the call point detected through the call point detection unit.

여기서, 상기 모니터링부는, 악성코드에 의해 사용되는 API를 모니터링하는 시스템 모니터링부와, 악성코드에 의해 발생되는 네트워크 관련 I/O(Input/Output)를 모니터링하는 네트워크 모니터링부를 포함할 수 있다.Here, the monitoring unit may include a system monitoring unit for monitoring an API used by the malicious code, and a network monitoring unit for monitoring network-related input / output (I / O) generated by the malicious code.

또한, 상기 악성코드 동적 분석 결과는, 악성코드 동작 시점의 코드 정보, 또는 스택(stack) 정보, 또는 참조 데이터 중 적어도 하나를 포함할 수 있다.In addition, the malicious code dynamic analysis result may include at least one of code information, a stack information, or reference data at the time of the malicious code operation.

또한, 상기 참조 데이터는, API 입출력 데이터 또는 네트워크 송수신 데이터 중 적어도 하나를 포함할 수 있다.In addition, the reference data may include at least one of API input / output data or network transmission / reception data.

또한, 상기 제어부는, 상기 악성코드 동적 분석 결과를 저장부에 임시 저장하되, 악성코드 동작 발생시의 스레드의 크기에 따른 스레드 주소 공간을 상기 저장부에 기록할 수 있다.The controller may temporarily store the result of the dynamic analysis of the malicious code in a storage unit, and record a thread address space according to the thread size when the malicious code operation occurs in the storage unit.

또한, 상기 제어부는, 악성코드의 호출시점별 상황 정보를 포함하는 악성코드 동적 분석 결과를 기 설정된 시간 간격으로 상기 저장부에 저장할 수 있다.In addition, the controller may store the malicious code dynamic analysis result including the status information for each call point of the malicious code in the storage unit at predetermined time intervals.

또한, 상기 제어부는, 상기 악성코드 동적 분석 결과에 따라 코드의 변경된 영역을 체크하여 디스플레이 제어할 수 있다.The controller may control display by checking a changed region of the code according to the malicious code dynamic analysis result.

또한, 상기 제어부는, 특정 동작의 시점으로부터 디버깅을 연동할 수 있게 디버깅 화면을 디스플레이 제어할 수 있다.In addition, the controller may control the display of the debugging screen so that debugging can be linked from a time point of a specific operation.

또한, 상기 특정 동작은, 파일의 생성 후 실행, 또는 자동 실행 레지스터리 생성, 또는 원격 스레드 생성, 또는 네트워크 연결 시도 중 적어도 하나를 포함할 수 있다.In addition, the specific operation may include at least one of execution after generation of a file, automatic execution registry generation, remote thread generation, or network connection attempt.

본 발명의 실시예에 따른 악성코드 동적 분석정보 제공 방법은, 검색 엔진이 활성화되면 악성코드의 시스템 동작 및 네트워크의 동작을 스레드 단위로 모니터링하는 과정과, 상기 모니터링하는 과정에서 호출지점이 검출되면 상기 호출지점이 포함된 동작시점의 악성코드 동적 분석 결과를 디스플레이하는 과정을 포함할 수 있다.In the method for providing dynamic analysis information for malicious code according to an embodiment of the present invention, when a search engine is activated, a process of monitoring a system operation and a network operation of the malicious code in units of threads, and when a call point is detected in the monitoring process, And displaying a result of the dynamic analysis of the malicious code at the time of operation including the call point.

여기서, 상기 모니터링하는 과정은, 악성코드에 의해 사용되는 API를 모니터링하는 과정과, 악성코드에 의해 발생되는 네트워크 관련 I/O를 모니터링하는 과정을 포함할 수 있다.Here, the monitoring may include monitoring an API used by the malicious code, and monitoring a network-related I / O generated by the malicious code.

또한, 상기 호출지점은, 상기 모니터링하는 과정의 특정 API로부터의 호출지점인 것을 특징으로 할 수 있다.The call point may be a call point from a specific API of the monitoring process.

또한, 상기 악성코드 동적 분석 결과는, 호출지점이 포함된 동작시점의 코드 영역, 또는 스택 영역, 또는 참조 데이터 영역 중 어느 하나를 포함할 수 있다.In addition, the result of the dynamic analysis of the malicious code may include any one of a code region, a stack region, or a reference data region at the point of operation including a call point.

또한, 상기 참조 데이터 영역은, API 입출력 데이터 또는 네트워크 송수신 데이터 중 적어도 하나를 포함할 수 있다.The reference data area may include at least one of API input / output data or network transmission / reception data.

또한, 상기 악성코드 동적 분석정보 제공 방법은, 특정 동작이 발생될 때 상기 특정 동작의 시점의 코드 영역, 또는 스택 영역, 또는 참조 데이터 영역 중 적어도 하나를 표시하는 과정과, 상기 특정 동작을 지연 또는 중지시키는 과정을 더 포함할 수 있다.The malicious code dynamic analysis information providing method may further include displaying at least one of a code region, a stack region, or a reference data region at the time of the specific operation when a specific operation occurs, and delaying or delaying the specific operation. The process may further include stopping.

또한, 상기 악성코드 동적 분석정보 제공 방법은, 상기 특정 동작의 시점으로부터 디버깅 연동이 가능한 화면 정보를 제공하는 과정을 더 포함할 수 있다.The malicious code dynamic analysis information providing method may further include providing screen information capable of interlocking with debugging from a time point of the specific operation.

또한, 상기 특정 동작은, 파일의 생성 후 실행, 또는 자동 실행 레지스터리 생성, 또는 원격 스레드 생성, 또는 네트워크 연결 시도 중 적어도 하나를 포함할 수 있다.In addition, the specific operation may include at least one of execution after generation of a file, automatic execution registry generation, remote thread generation, or network connection attempt.

또한, 본 발명의 실시예에 따른 악성코드 동적 분석정보 제공 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 포함할 수 있다.
The computer readable recording medium may also include a computer readable program for executing the method for providing malicious code dynamic analysis information according to an exemplary embodiment of the present invention.

본 발명에 의하면, 시스템 모니터링을 통해 악성코드의 동작을 찾고 동작 발생 시점의 코드를 확인할 수 있기 때문에 동작 발생 시점에서의 디버깅이 가능한 효과가 있다. 또한, 악성코드 동작이 발생한 이후 동작 상황에 대한 입출력 데이터 등을 체크하여 분석시 동작으로만 판단하기 어려운 사항들을 명확히 파악할 수 있다.
According to the present invention, since the operation of the malicious code can be found through the system monitoring and the code at the time of the operation occurrence can be debugged at the time of the operation occurrence. In addition, by checking the input and output data of the operation status after the malicious code operation occurs, it is possible to clearly identify the items that are difficult to determine only by the operation during the analysis.

도 1은 본 발명의 실시예에 따른 악성코드 동적 분석정보 제공 장치에 대한 구성 블록도,
도 2는 본 발명의 실시예에 따른 악성코드 동적 분석정보 제공 과정을 예시적으로 설명하는 흐름도,
도 3은 본 발명의 실시예에 따른 악성코드 동적 분석정보 제공 장치의 모니터링 결과 출력 화면을 예시한 도면,
도 4 및 도 5는 본 발명의 실시예에 따른 악성코드 동적 분석정보 제공 장치에서 호출지점 코드 영역을 파악할 수 있는 출력 화면 예시도,
도 6은 본 발명의 실시예에 따른 악성코드 동적 분석정보 제공 장치에서 코드 표시 화면을 예시한 도면.
1 is a block diagram illustrating an apparatus for providing malware dynamic analysis information according to an embodiment of the present invention;
2 is a flowchart illustrating a process of providing malicious code dynamic analysis information according to an embodiment of the present invention;
3 is a diagram illustrating a monitoring result output screen of the apparatus for providing malicious code dynamic analysis information according to an embodiment of the present invention;
4 and 5 are examples of the output screen to grasp the call point code region in the apparatus for providing dynamic analysis information of malicious code according to an embodiment of the present invention;
6 is a diagram illustrating a code display screen in the apparatus for providing dynamic analysis information for malicious code according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 도면부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like numbers refer to like elements throughout.

본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions in the embodiments of the present invention, which may vary depending on the intention of the user, the intention or the custom of the operator. Therefore, the definition should be based on the contents throughout this specification.

첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.Each block of the accompanying block diagrams and combinations of steps of the flowchart may be performed by computer program instructions. These computer program instructions may be loaded into a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus so that the instructions, which may be executed by a processor of a computer or other programmable data processing apparatus, And means for performing the functions described in each step are created. These computer program instructions may be stored in a computer usable or computer readable memory that can be directed to a computer or other programmable data processing equipment to implement functionality in a particular manner, and thus the computer usable or computer readable memory. It is also possible for the instructions stored in to produce an article of manufacture containing instruction means for performing the functions described in each block or flowchart of each step of the block diagram. Computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operating steps may be performed on the computer or other programmable data processing equipment to create a computer-implemented process to create a computer or other programmable data. Instructions that perform processing equipment may also provide steps for performing the functions described in each block of the block diagram and in each step of the flowchart.

또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
Also, each block or each step may represent a module, segment, or portion of code that includes one or more executable instructions for executing the specified logical function (s). It should also be noted that in some alternative embodiments, the functions mentioned in the blocks or steps may occur out of order. For example, two blocks or steps shown in succession may in fact be performed substantially concurrently, or the blocks or steps may sometimes be performed in reverse order according to the corresponding function.

실시예의 설명에 앞서, 본 발명은 악성코드 동작의 호출 지점을 기반으로 악성코드의 동적 분석을 수행함으로써, 디버깅을 수행하지 않은 상황에서 악성코드 발생을 모니터링하고, 악성코드가 발생된 동작 호출 시점의 프로그램 코드를 확인할 수 있게 하여 분석가가 원하는 시점에 디버깅을 수행할 수 있도록 한다는 것으로, 이러한 기술 사상으로부터 본 발명의 목적으로 하는 바를 용이하게 달성할 수 있을 것이다.
Prior to the description of the embodiment, the present invention performs the dynamic analysis of the malware based on the call point of the malicious code operation, thereby monitoring the occurrence of the malicious code in the absence of debugging, and at the time of invoking the operation in which the malicious code is generated. By allowing the program code to be checked so that the analyst can perform debugging at the desired time, it is easy to achieve the object of the present invention from this technical idea.

이하, 본 발명의 실시예에 대해 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 악성코드 동적 분석정보 제공 장치에 대한 구성 블록도로서, 시스템 모니터링부(100), 네트워크 모니터링부(102), 호출지점 검출부(104), 제어부(106), 저장부(108), 표시부(110) 등을 포함할 수 있다.1 is a block diagram illustrating a malicious code dynamic analysis information providing apparatus according to an embodiment of the present invention, the system monitoring unit 100, the network monitoring unit 102, the call point detection unit 104, the control unit 106, The storage unit 108 and the display unit 110 may be included.

도 1에 도시한 바와 같이, 시스템 모니터링부(100)는 악성코드의 동작, 예컨대 악성코드에 의해 사용되는 API를 모니터링하는 역할을 수행할 수 있다. 이러한 모니터링을 위해, 예를 들면 파일, 레지스터리, 메모리 등과 관련된 API들을 후킹할 수 있다.As shown in FIG. 1, the system monitoring unit 100 may serve to monitor an operation of a malicious code, for example, an API used by the malicious code. For such monitoring, it is possible to hook APIs related to files, registries, memory, etc., for example.

네트워크 모니터링부(102)는 네트워크 동작, 예컨대 악성코드에 의해 발생되는 네트워크 관련 I/O(Input/Output)를 모니터링하는 역할을 수행할 수 있다.The network monitoring unit 102 may perform a role of monitoring network operation, for example, network related input / output (I / O) generated by malicious code.

이와 같은 시스템 모니터링부(100) 및 네트워크 모니터링부(102)는, 본 발명의 실시예에 따라 프로세스, 파일 등의 실행 및 동작을 스레드(thread) 단위로 모니터링하는 것을 특징으로 한다. 본 발명의 실시예와 같이, 스레드 단위로 모니터링할 경우, 프로세스 단위로 모니터링하는 경우와 비교하여 원격 스레드(remote thread)에 대한 효율적인 대처가 가능하다.Such a system monitoring unit 100 and the network monitoring unit 102 is characterized in that for monitoring the execution and operation of processes, files, etc. in units of threads according to an embodiment of the present invention. As in the embodiment of the present invention, when monitoring in units of threads, it is possible to efficiently deal with a remote thread as compared to the case of monitoring in units of processes.

호출지점 검출부(104)는 시스템 모니터링부(100) 또는 네트워크 모니터링부(102)의 특정 API 또는 기 설치된 이벤트 핸들러(event handler)로부터 호출지점을 검출하고, 검출되는 호출지점을 제어부(106)로 제공할 수 있다.The call point detector 104 detects a call point from a specific API or an event handler installed in the system monitoring unit 100 or the network monitoring unit 102 and provides the detected call point to the controller 106. can do.

제어부(106)는 호출지점 검출부(104)를 통해 검출되는 호출지점에 따른 악성코드 동적 분석 결과를 저장부(108)에 임시 저장하고, 해당 동적 분석 결과를 외부로 표시하도록 표시부(110)를 제어할 수 있다. 여기서, 동적 분석 결과는, 예컨대 악성코드 동작 시점의 코드 정보, 스택(stack) 정보, 참조 데이터 등을 포함할 수 있다. 참조 데이터는, 예를 들어 송신 데이터 또는 수신 데이터를 포함할 수 있다.The controller 106 temporarily stores the malware dynamic analysis result according to the call point detected by the call point detector 104 in the storage unit 108 and controls the display unit 110 to display the dynamic analysis result to the outside. can do. Here, the dynamic analysis result may include, for example, code information, stack information, reference data, etc. at the time of the malicious code operation. The reference data may include, for example, transmission data or reception data.

한편, 제어부(106)는 모듈의 이름을, 예를 들어 CRC(Cyclic Redundancy Check)32로 축약하고 로드된 주소만 기록할 수 있다. API 위치는 파일에서 쉽게 파악 가능하지만, 로드되는 주소는 프로세스마다 변경될 수 있기 때문이다. API를 모두 기록할 필요 없이 모듈과 로드된 주소만 알 수 있다면 분석 시점의 주소를 해석하는데 크게 문제는 없다.Meanwhile, the controller 106 may shorten the name of the module to, for example, a cyclic redundancy check (CRC) 32 and record only the loaded address. The location of the API is easy to see in the file, but the address being loaded can change from process to process. If you only need to know the module and the loaded address without having to record all the APIs, then there is no problem in interpreting the address at the time of analysis.

또한, 제어부(106)는 악성코드 동작 발생시 스레드의 크기를 파악한 후 스레드 주소 공간을 기록할 수 있다. 스레드의 크기는 일정 크기로 제한할 수 있으며, 코드 영역인 경우에는 메모리 복사 없이 주소만 제공할 수 있다.In addition, the controller 106 may determine the thread size when the malicious code operation occurs, and then record the thread address space. The size of a thread can be limited to a certain size, and in the case of code areas, only addresses can be provided without copying memory.

또한, 제어부(106)는 스레드 호출 주소와 코드 전후의 메모리 참조 코드에 대해서 저장부(108)를 판독하여 그 값을 같이 저장할 수 있다.In addition, the control unit 106 may read the storage unit 108 with respect to the thread call address and the memory reference codes before and after the code, and store the values together.

저장부(108)에는 제어부(106)의 제어에 따라 임의의 호출지점에서의 동적 분석 결과가 저장될 수 있는데, 예컨대 저장부(108)에는 각 분석 대상 동작이 발생할 경우에 기 설정된 시간 간격, 예를 들어 2~3초 간격으로 호출 시점의 상황 정보를 포함하는 동적 분석 결과가 저장될 수 있다. 이에 따라, 악성코드 동작 시점의 코드와 스택, 모듈상황 등을 관리자가 파악할 수 있게 된다.The storage unit 108 may store the results of dynamic analysis at any call point under the control of the control unit 106. For example, the storage unit 108 may store a predetermined time interval when each analysis target operation occurs, for example. For example, the dynamic analysis result including the situation information at the time of the call may be stored at intervals of 2 to 3 seconds. As a result, the administrator can grasp the code, stack, and module status at the time of the malicious code operation.

표시부(110)는 제어부(106)의 제어에 의거하여 시스템 모니터링부(100) 및 네트워크 모니터링부(102)를 통해 모니터링된 결과, 예컨대 악성코드 동작 정보, 호출지점 정보 등을 표시할 수 있다.The display unit 110 may display a result of monitoring through the system monitoring unit 100 and the network monitoring unit 102 under the control of the control unit 106, for example, malicious code operation information, call point information, and the like.

또한, 표시부(110)는 제어부(106)에 의해 분석되는 호출지점 코드를 표시할 수 있으며, 특정 동작 시점으로부터 디버깅을 연동할 수 있게 디버깅 화면을 제공할 수 있다. 이에 따라, 모니터링 도중에 특정 동작 발생시 관리자가 특정 동작을 지연 또는 중지시키고 디버깅 작업을 수행할 수 있다. 여기서의 특정 동작이라 함은, 예를 들어 파일의 생성 후 실행, 자동 실행 레지스터리 생성, 원격 스레드 생성, 네트워크 연결 시도 등 일반 프로그램에서는 제한적으로 수행되는 동작들을 포함할 수 있다.In addition, the display unit 110 may display the call point code analyzed by the control unit 106 and provide a debugging screen for interlocking debugging from a specific operation time point. Accordingly, when a specific operation occurs during monitoring, the administrator may delay or stop the specific operation and perform debugging. Herein, the specific operations may include operations that are limited in general programs such as execution after creation of a file, automatic execution registry generation, remote thread creation, and network connection attempt.

한편, 코드는 주요 동작이 발생할 경우 변경된 영역으로 체크되어 해당 부분만 표시되도록 한다. 이때, 기존에 표시했던 코드 영역이 존재한다면, 코드 영역 전체에 대해 블록 단위로 CRC32 값을 비교한 후 일치하지 않을 경우에만 해당 코드를 표시할 수 있다.
On the other hand, when the main operation occurs, the code is checked as the changed area so that only the corresponding part is displayed. In this case, if there is a code region previously displayed, the code may be displayed only when the CRC32 values are compared in units of blocks with respect to the entire code region.

이하, 상술한 구성과 함께, 본 발명의 실시예에 따른 악성코드 동적 분석정보 제공 과정을 첨부한 도 2의 흐름도를 참조하여 구체적으로 설명하기로 한다.Hereinafter, with reference to the above-described configuration, with reference to the flowchart of Figure 2 attached to the process of providing malicious code dynamic analysis information according to an embodiment of the present invention will be described in detail.

도 2에 도시한 바와 같이, 도시 생략된 검색 엔진이 활성화되면(S200), 시스템 모니터링부(100)는 임의의 악성코드의 동작, 예컨대 임의의 악성코드에 의해 사용되는 API를 모니터링할 수 있으며, 네트워크 모니터링부(102)는 네트워크 동작, 예컨대 악성코드에 의해 발생되는 네트워크 관련 I/O를 모니터링할 수 있다(S202).As shown in FIG. 2, when the search engine (not shown) is activated (S200), the system monitoring unit 100 may monitor an operation of any malicious code, for example, an API used by any malicious code. The network monitoring unit 102 may monitor network operation, for example, network related I / O generated by malware (S202).

이와 같은 시스템 모니터링부(100) 및 네트워크 모니터링부(102)는, 본 발명의 실시예에 따라 프로세스, 파일 등의 실행 및 동작을 스레드 단위로 모니터링할 수 있다. 본 발명의 실시예에서는, 프로세스 단위로 모니터링하는 종래의 기술과 비교하여 원격 스레드에 대한 대처를 효율적으로 수행할 수 있다.The system monitoring unit 100 and the network monitoring unit 102 may monitor execution and operation of a process, a file, etc. in units of threads according to an exemplary embodiment of the present invention. In an embodiment of the present invention, a countermeasure for a remote thread can be efficiently performed as compared with the conventional technique of monitoring in a process unit.

도 3은 이러한 시스템 모니터링부(100)와 네트워크 모니터링부(102)를 통해 모니터링되는 결과 출력 화면을 예시적으로 도시한 것이다. 모니터링 결과 출력 화면은 제어부(106)의 제어 하에 표시부(110) 등을 통해 디스플레이 처리될 수 있으며, 이러한 사실은 본 발명의 기술 분야에서 통상의 지식을 가진 자는 용이하게 이해할 수 있을 것이다.3 exemplarily illustrates a result output screen monitored through the system monitoring unit 100 and the network monitoring unit 102. The monitoring result output screen may be processed by the display unit 110 or the like under the control of the controller 106, and this fact will be easily understood by those skilled in the art.

먼저, 시스템 모니터링부(100)와 네트워크 모니터링부(102)는 최초 실행할 악성코드로 추정되는 파일, 예를 들어 "drivefix.exe" 등의 파일 이름으로 실행되는 프로세스들을 모니터링할 수 있다.First, the system monitoring unit 100 and the network monitoring unit 102 may monitor processes executed by a file name, for example, "drivefix.exe", which is assumed to be the first malicious code to be executed.

예를 들어, 도 3의 하이라이트 처리된 부분과 같이, "drivefix"가 실행될 때 "explorer.exe"에 메모리를 강제 할당한 후 코드를 기록하며, 이를 "CThread(Createthread)"를 통해 실행하게 된다. "explorer.exe"에 코드 인젝션(code injection)되고 스레드가 생성되며, 인젝션된 스레드에 의해 실행되는 동작들을 모니터링 할 수 있다.For example, as shown in the highlighted portion of FIG. 3, when "drivefix" is executed, memory is forcibly allocated to "explorer.exe" and the code is recorded and executed through "CThread (Createthread)". You can code injection into "explorer.exe", create a thread, and monitor the actions executed by the injected thread.

이때, 제어부(106)는 호출지점 검출부(104)를 통해 시스템 모니터링부(100)와 네트워크 모니터링부(102)의 모니터링 결과에 의한 호출지점이 검출되는지를 판단하고(S204), 호출지점이 검출되면 제어부(106)는 악성코드의 상황별 호출 지점이 포함된 동작 시점의 스택 영역, 참조 데이터(송수신 데이터) 영역 등이 디스플레이 되도록 표시부(110)를 제어할 수 있다(S206).At this time, the control unit 106 determines whether the call point is detected by the monitoring result of the system monitoring unit 100 and the network monitoring unit 102 through the call point detection unit 104 (S204), and if the call point is detected The controller 106 may control the display unit 110 to display a stack region, a reference data (transmit / receive data) region, etc., at the time of operation including the call point for each situation of the malicious code (S206).

이는 도 4 및 도 5의 예시 화면에 도시한 바와 같다.This is as shown in the example screens of FIGS. 4 and 5.

또한, 확인이 필요한 코드의 경우, 제어부(106)는 도 6에 예시한 바와 같이, 호출 후 리턴되는 주소를 알 수 있는 코드 영역이 디스플레이 되도록 표시부(110)를 제어할 수 있다.In addition, in the case of a code requiring confirmation, the control unit 106 may control the display unit 110 to display a code area for knowing the address returned after the call, as illustrated in FIG. 6.

이에 따라, 관리자는 각각의 상황에서의 호출지점을 파악할 수 있으며, 호출지점이 포함된 코드 영역도 파악할 수 있게 된다.Accordingly, the administrator can identify the call point in each situation, and can also identify the code area including the call point.

한편, 제어부(106)는 특정 동작이 발생되는지를 판단하고(S208), 특정 동작이 발생되면 상술한 바와 같이 특정 동작 시점의 코드 영역, 스택 영역, 참조 데이터 영역 등을 표시하되, 해당 특정 동작을 지연 또는 중지시킬 수 있다(S210). 이때의 특정 동작은, 예를 들어 파일의 생성 후 실행, 자동 실행 레지스터리 생성, 원격 스레드 생성, 네트워크 연결 시도 등과 같은 일반 프로그램에서는 제한적으로 수행되는 동작들을 포함할 수 있다.Meanwhile, the controller 106 determines whether a specific operation occurs (S208), and when a specific operation occurs, displays the code region, the stack region, the reference data region, etc. at the specific operation point as described above, and displays the specific operation. It may be delayed or stopped (S210). At this time, the specific operation may include operations that are limited in general programs such as execution after creation of a file, automatic execution registry generation, remote thread creation, network connection attempt, and the like.

이후, 제어부(106)는 특정 동작 시점으로부터 디버깅을 연동할 수 있게 디버깅 화면을 제공할 수 있으며, 이에 따라 모니터링 도중에 특정 동작 발생시 관리자가 특정 동작을 지연 또는 중지시키고 디버깅 작업을 수행할 수 있다.
Thereafter, the controller 106 may provide a debugging screen for interlocking debugging from a specific operation time point. Accordingly, when a specific operation occurs during monitoring, an administrator may delay or stop a specific operation and perform debugging.

다른 한편, 상술한 바와 같이 다양한 실시예를 제시하고 있는 본 발명의 악성코드 동적 분석정보 제공 방법은, 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 실행할 수 있는 프로그램으로 구현할 수 있는데, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함할 수 있다. 이러한 컴퓨터가 읽을 수 있는 기록매체는, 예를 들어 ROM, 플래시 메모리, 자기 기억 장치 등과 같은 비휘발성 메모리(non-volatile memory)와, RAM과 같은 휘발성 메모리(volatile memory) 등을 포함할 수 있으며, 컴퓨터로 실행할 수 있는 코드 또는 프로그램은 본 발명의 실시예에 따른 악성코드 동적 분석을 위한 클라이언트 장치 내에 저장되거나, 네트워크로 연결된 컴퓨터 시스템에 분산 저장될 수 있을 것이다.On the other hand, as described above, the method for providing dynamic analysis information for malicious code according to the present invention, which provides various embodiments, may be implemented as a computer executable program on a computer readable recording medium. The recording medium may include any kind of recording device that stores data that can be read by a computer system. Such computer-readable recording media may include, for example, non-volatile memory such as ROM, flash memory, magnetic storage, and the like, volatile memory such as RAM, and the like. Computer-executable code or program may be stored in a client device for malware dynamic analysis according to an embodiment of the present invention or distributedly stored in a networked computer system.

또한, 본 발명의 실시예에 따른 악성코드 동적 분석정보 제공 서비스를 수행할 수 있는 프로그램은 클라이언트 단말 장치 내의 기록매체에 저장되는 것으로 설명하였으나, 이는 실시예의 설명을 위해 예시한 것일 뿐, 본 발명의 권리범위를 한정하는 것은 아니다. 예컨대, 네트워크 상의 가상화 장치(또는 서버)에 상술한 정보들이 영구적으로 저장되고, 클라이언트 장치에는 상술한 정보들이 일시적으로 보관되는 클라우드 컴퓨팅(cloud computing) 환경을 포함할 수 있을 것이다. 즉, 상술한 정보들을 네트워크 상의 가상화 장치에 저장하고, 이 정보들을 클라이언트 장치를 통해 언제 어디서든 이용할 수도 있음을 주지할 필요가 있다.
In addition, the program capable of performing the malicious code dynamic analysis information providing service according to an embodiment of the present invention has been described as being stored in a recording medium in the client terminal device, but this is only illustrative for the description of the present invention. It does not limit the scope of rights. For example, the above-mentioned information may be permanently stored in the virtualization device (or server) on the network, and the client device may include a cloud computing environment in which the above-mentioned information is temporarily stored. In other words, it is necessary to store the above-described information in the virtualization device on the network, and that the information may be available anytime and anywhere through the client device.

이상 설명한 바와 같이, 본 발명의 실시예에 의하면, 악성코드 동작의 호출 지점을 기반으로 악성코드의 동적 분석을 수행함으로써, 디버깅을 수행하지 않은 상황에서 악성코드 발생을 모니터링하고, 악성코드가 발생된 프로그램의 코드를 확인할 수 있게 하여 분석가가 원하는 시점에 디버깅을 수행할 수 있도록 하는 악성코드 동적 분석 기술을 구현한 것이다.
As described above, according to an embodiment of the present invention, by performing the dynamic analysis of the malware based on the call point of the malware operation, by monitoring the occurrence of the malware in the absence of debugging, the malware is generated It is an implementation of dynamic malware analysis technology that enables the programmers to check the code of the program so that the analyst can debug when desired.

100: 시스템 모니터링부
102: 네트워크 모니터링부
104: 호출지점 검출부
106: 제어부
108: 저장부
110: 표시부
100: system monitoring unit
102: network monitoring unit
104: call point detector
106: control unit
108:
110:

Claims (18)

악성코드 또는 네트워크의 동작을 스레드(thread) 단위로 모니터링하는 모니터링부와,
상기 모니터링부의 특정 API(Application Programming Interface) 또는 기 설치된 이벤트 핸들러(event handler)로부터의 호출지점을 검출하는 호출지점 검출부와,
상기 호출지점 검출부를 통해 검출되는 호출지점에 따른 악성코드 동적 분석 결과를 디스플레이 제어하고, 특정 동작의 시점으로부터 디버깅을 연동할 수 있게 디버깅 화면을 디스플레이 제어하는 제어부를 포함하는
악성코드 동적 분석정보 제공 장치.
Monitoring unit for monitoring the operation of malware or network in units of threads,
A call point detection unit for detecting a call point from a specific API (Application Programming Interface) or a pre-installed event handler of the monitoring unit;
And a control unit configured to display and control a malicious code dynamic analysis result according to a call point detected through the call point detection unit, and to display and control a debugging screen so that debugging can be linked from a time point of a specific operation.
Malware dynamic analysis information providing device.
제 1 항에 있어서,
상기 모니터링부는,
악성코드에 의해 사용되는 API를 모니터링하는 시스템 모니터링부와,
악성코드에 의해 발생되는 네트워크 관련 I/O(Input/Output)를 모니터링하는 네트워크 모니터링부를 포함하는
악성코드 동적 분석정보 제공 장치.
The method of claim 1,
The monitoring unit,
System monitoring unit for monitoring the API used by the malware,
Network monitoring unit for monitoring the network-related input / output (I / O) caused by malware
Malware dynamic analysis information providing device.
제 1 항에 있어서,
상기 악성코드 동적 분석 결과는,
악성코드 동작 시점의 코드 정보, 또는 스택(stack) 정보, 또는 참조 데이터 중 적어도 하나를 포함하는
악성코드 동적 분석정보 제공 장치.
The method of claim 1,
The malware dynamic analysis results,
At least one of code information, stack information, or reference data at the time of malware operation.
Malware dynamic analysis information providing device.
제 3 항에 있어서,
상기 참조 데이터는,
API 입출력 데이터 또는 네트워크 송수신 데이터 중 적어도 하나를 포함하는
악성코드 동적 분석정보 제공 장치.
The method of claim 3, wherein
The reference data includes:
At least one of API input / output data or network transmission / reception data
Malware dynamic analysis information providing device.
제 1 항에 있어서,
상기 제어부는,
상기 악성코드 동적 분석 결과를 저장부에 임시 저장하되, 악성코드 동작 발생시의 스레드의 크기에 따른 스레드 주소 공간을 상기 저장부에 기록하는
악성코드 동적 분석정보 제공 장치.
The method of claim 1,
The control unit,
While temporarily storing the result of the dynamic analysis of the malicious code in a storage unit, writing the thread address space according to the size of the thread when the malicious code operation occurs in the storage unit
Malware dynamic analysis information providing device.
제 5 항에 있어서,
상기 제어부는,
악성코드의 호출시점별 상황 정보를 포함하는 악성코드 동적 분석 결과를 기 설정된 시간 간격으로 상기 저장부에 저장하는
악성코드 동적 분석정보 제공 장치.
The method of claim 5, wherein
The control unit,
Storing the dynamic analysis result of the malicious code including the status information for each time point of the malicious code is stored in the storage unit at a predetermined time interval.
Malware dynamic analysis information providing device.
제 6 항에 있어서,
상기 제어부는, 상기 악성코드 동적 분석 결과에 따라 코드의 변경된 영역을 체크하여 디스플레이 제어하는
악성코드 동적 분석정보 제공 장치.
The method according to claim 6,
The controller checks and displays the changed area of the code according to the malicious code dynamic analysis result to control the display.
Malware dynamic analysis information providing device.
삭제delete 제 1 항에 있어서,
상기 특정 동작은,
파일의 생성 후 실행, 또는 자동 실행 레지스터리 생성, 또는 원격 스레드 생성, 또는 네트워크 연결 시도 중 적어도 하나를 포함하는
악성코드 동적 분석정보 제공 장치.
The method of claim 1,
In the specific operation,
At least one of the creation and execution of a file, or an automatic execution registry creation, a remote thread creation, or a network connection attempt.
Malware dynamic analysis information providing device.
검색 엔진이 활성화되면 악성코드의 시스템 동작 및 네트워크의 동작을 스레드 단위로 모니터링하는 과정과,
상기 모니터링하는 과정에서 호출지점이 검출되면 상기 호출지점이 포함된 동작시점의 악성코드 동적 분석 결과를 디스플레이하는 과정과,
특정 동작이 발생될 때 상기 특정 동작의 시점의 코드 영역, 또는 스택 영역, 또는 참조 데이터 영역 중 적어도 하나를 표시하는 과정과,
상기 특정 동작을 지연 또는 중지시키는 과정을 포함하는
악성코드 동적 분석정보 제공 방법.
When the search engine is activated, the process of monitoring the system behavior of the malware and the behavior of the network on a per-thread basis,
If a call point is detected in the monitoring process, displaying a result of dynamic analysis of malicious code at an operation point including the call point;
Displaying at least one of a code region, a stack region, or a reference data region at the time of the specific operation when a specific operation occurs;
Delaying or stopping the specific operation;
How to provide malware dynamic analysis information.
제 10 항에 있어서,
상기 모니터링하는 과정은,
악성코드에 의해 사용되는 API를 모니터링하는 과정과,
악성코드에 의해 발생되는 네트워크 관련 I/O를 모니터링하는 과정을 포함하는
악성코드 동적 분석정보 제공 방법.
11. The method of claim 10,
The monitoring process,
Monitoring the APIs used by malware,
Monitoring network-related I / O caused by malware
How to provide malware dynamic analysis information.
제 10 항에 있어서,
상기 호출지점은,
상기 모니터링하는 과정의 특정 API로부터의 호출지점인 것을 특징으로 하는
악성코드 동적 분석정보 제공 방법.
11. The method of claim 10,
The call point is
Call point from a specific API of the monitoring process, characterized in that
How to provide malware dynamic analysis information.
제 10 항에 있어서,
상기 악성코드 동적 분석 결과는,
호출지점이 포함된 동작시점의 코드 영역, 또는 스택 영역, 또는 참조 데이터 영역 중 어느 하나를 포함하는
악성코드 동적 분석정보 제공 방법.
11. The method of claim 10,
The malware dynamic analysis results,
A code area of the operation point including a call point, a stack area, or a reference data area
How to provide malware dynamic analysis information.
제 13 항에 있어서,
상기 참조 데이터 영역은,
API 입출력 데이터 또는 네트워크 송수신 데이터 중 적어도 하나를 포함하는
악성코드 동적 분석정보 제공 방법.
The method of claim 13,
The reference data area is
At least one of API input / output data or network transmission / reception data
How to provide malware dynamic analysis information.
삭제delete 제 10 항에 있어서,
상기 악성코드 동적 분석정보 제공 방법은,
상기 특정 동작의 시점으로부터 디버깅 연동이 가능한 화면 정보를 제공하는 과정을 더 포함하는
악성코드 동적 분석정보 제공 방법.
11. The method of claim 10,
The malicious code dynamic analysis information providing method,
The method may further include providing screen information that enables debugging interoperation from the time point of the specific operation.
How to provide malware dynamic analysis information.
제 16 항에 있어서,
상기 특정 동작은,
파일의 생성 후 실행, 또는 자동 실행 레지스터리 생성, 또는 원격 스레드 생성, 또는 네트워크 연결 시도 중 적어도 하나를 포함하는
악성코드 동적 분석정보 제공 방법.
17. The method of claim 16,
In the specific operation,
At least one of the creation and execution of a file, or an automatic execution registry creation, a remote thread creation, or a network connection attempt.
How to provide malware dynamic analysis information.
제 10 항 또는 제 11 항 또는 제 12 항 또는 제 13 항 또는 제 14 항 또는 제 16 항 또는 제 17 항의 악성코드 동적 분석정보 제공 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.A computer-readable recording medium having recorded thereon a program for executing the method for providing the dynamic analysis information of the malicious code according to claim 10, 11, 12, 13, 14, 14, 16, or 17.
KR1020110146432A 2011-12-29 2011-12-29 Apparatus and method for providing dynamic analysis information of malignant code KR101306656B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110146432A KR101306656B1 (en) 2011-12-29 2011-12-29 Apparatus and method for providing dynamic analysis information of malignant code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110146432A KR101306656B1 (en) 2011-12-29 2011-12-29 Apparatus and method for providing dynamic analysis information of malignant code

Publications (2)

Publication Number Publication Date
KR20130077621A KR20130077621A (en) 2013-07-09
KR101306656B1 true KR101306656B1 (en) 2013-09-10

Family

ID=48990826

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110146432A KR101306656B1 (en) 2011-12-29 2011-12-29 Apparatus and method for providing dynamic analysis information of malignant code

Country Status (1)

Country Link
KR (1) KR101306656B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101880375B1 (en) * 2013-12-27 2018-07-19 맥아피, 엘엘씨 Segregating executable files exhibiting network activity
KR101982734B1 (en) * 2015-10-26 2019-05-27 삼성에스디에스 주식회사 Apparatus and method for detecting malicious code

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070049511A (en) * 2005-11-08 2007-05-11 한국정보보호진흥원 Analysis system for malicious code and method thereof
KR20110057297A (en) * 2009-11-24 2011-06-01 한국인터넷진흥원 Dynamic analyzing system for malicious bot and methods therefore
KR101051641B1 (en) 2010-03-30 2011-07-26 주식회사 안철수연구소 Mobile communication terminal and behavior based checking virus program method using the same
KR20110088042A (en) * 2010-01-28 2011-08-03 주식회사 안철수연구소 Apparatus and method for automatically discriminating malicious code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070049511A (en) * 2005-11-08 2007-05-11 한국정보보호진흥원 Analysis system for malicious code and method thereof
KR20110057297A (en) * 2009-11-24 2011-06-01 한국인터넷진흥원 Dynamic analyzing system for malicious bot and methods therefore
KR20110088042A (en) * 2010-01-28 2011-08-03 주식회사 안철수연구소 Apparatus and method for automatically discriminating malicious code
KR101051641B1 (en) 2010-03-30 2011-07-26 주식회사 안철수연구소 Mobile communication terminal and behavior based checking virus program method using the same

Also Published As

Publication number Publication date
KR20130077621A (en) 2013-07-09

Similar Documents

Publication Publication Date Title
US11003764B2 (en) System and method for exploiting attack detection by validating application stack at runtime
US10372444B2 (en) Android dynamic loading file extraction method, recording medium and system for performing the method
US8752182B2 (en) Pinpointing security vulnerabilities in computer software applications
JP5908132B2 (en) Apparatus and method for detecting attack using vulnerability of program
EP3039608B1 (en) Hardware and software execution profiling
US10839077B2 (en) Detecting malicious software
US20180373876A1 (en) Software security
JP2009129451A (en) Apparatus and method for detecting dynamic link library inserted by malicious code
US10599558B1 (en) System and method for identifying inputs to trigger software bugs
US11055168B2 (en) Unexpected event detection during execution of an application
JP2019502197A (en) System and method for detection of malicious code in runtime generated code
US20160224791A1 (en) Process testing apparatus, process testing program, and process testing method
EP2988242B1 (en) Information processing device, and information processing method
CN108319850B (en) Sandbox detection method, sandbox system and sandbox equipment
US10318731B2 (en) Detection system and detection method
KR101306656B1 (en) Apparatus and method for providing dynamic analysis information of malignant code
US8291389B2 (en) Automatically detecting non-modifying transforms when profiling source code
WO2016126206A1 (en) Method for obfuscation of code using return oriented programming
EP2819055B1 (en) System and method for detecting malicious software using malware trigger scenarios
EP3394786B1 (en) Software security
US11314855B2 (en) Detecting stack pivots using stack artifact verification
US9122551B2 (en) Methods and systems for generating read-only operating systems
US20170091066A1 (en) Debugger write interceptor
CN117744082A (en) Method and device for detecting malicious software in operating system and storage medium
Yoon et al. A Hidden File Extraction Scheme Defeating Malware Using Android Dynamic Loading

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160905

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170904

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180904

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190904

Year of fee payment: 7