KR100954356B1 - Detection system for malicious program considering code protection method and method thereof - Google Patents
Detection system for malicious program considering code protection method and method thereof Download PDFInfo
- Publication number
- KR100954356B1 KR100954356B1 KR1020080021881A KR20080021881A KR100954356B1 KR 100954356 B1 KR100954356 B1 KR 100954356B1 KR 1020080021881 A KR1020080021881 A KR 1020080021881A KR 20080021881 A KR20080021881 A KR 20080021881A KR 100954356 B1 KR100954356 B1 KR 100954356B1
- Authority
- KR
- South Korea
- Prior art keywords
- program
- code
- detection
- memory
- malicious
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000001514 detection method Methods 0.000 title claims abstract description 59
- 230000008569 process Effects 0.000 claims description 43
- 230000000903 blocking effect Effects 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 230000006835 compression Effects 0.000 abstract description 6
- 238000007906 compression Methods 0.000 abstract description 6
- 238000007689 inspection Methods 0.000 description 9
- 241000700605 Viruses Species 0.000 description 5
- 238000003745 diagnosis Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 229960005486 vaccine Drugs 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- Bioethics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Human Computer Interaction (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 코드 보호 기법을 고려한 악성 프로그램 감지 시스템 및 그 방법을 개시한다. 즉, 임의의 프로그램이 실행된 기설정 시점에서 상기 임의의 프로그램이 실행된 메모리 상에서의 악성 코드 감지 동작 개시를 위한 제어신호를 출력하는 감지 제어 모듈; 및 상기 악성 코드에 의해 호출되는 특정 API(Application Program Interface) 그룹에 대한 목록을 저장하며, 상기 제어신호에 따라 상기 실행중인 임의의 프로그램에 의해 호출되는 API를 상기 저장된 API 그룹 목록과 비교하여 상기 악성 코드를 감지하는 감지 모듈을 포함함으로써, 원본이 동일한 상황에서 실행압축, 암호화, 단순 암호화 등에 의해 단순한 방법으로 다량 변형되는 경우에 메모리 상에서 원본이 복원된 시점에서 검사를 수행하여 하나의 시그너쳐로 다수의 변형 파일에 대응할 수 있다.The present invention discloses a malicious program detection system and method thereof considering a code protection technique. That is, the detection control module outputs a control signal for starting a malicious code detection operation on a memory in which the arbitrary program is executed at a preset time point when the arbitrary program is executed; And a list of a specific API (Application Program Interface) group called by the malicious code, and comparing the stored API group list with an API called by any of the executing programs according to the control signal. By including a detection module that detects code, if the original is largely transformed in a simple way by execution compression, encryption, simple encryption, etc., in the same situation, it is possible to perform a check at the point of time when the original is restored in memory, and then use multiple signatures as one signature. Corresponds to the transform file.
코드 보호 기법, 프로그램 감지 Code protection technique, program detection
Description
본 발명은 악성 프로그램 감지 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는, 프로그램이 실행된 직후 해당 프로그램이 실행된 메모리 상에서 악성 코드 존재 유무를 확인하며, 아울러 프로그램 실행중 악성 코드가 수행하는 중요 API 그룹에 대한 모니터링을 통해 악성 프로그램을 감지하는 코드 보호 기법을 고려한 악성 프로그램 감지 시스템 및 그 방법에 관한 것이다.The present invention relates to a malicious program detection system and a method thereof, and more particularly, an important API that checks the presence or absence of malicious code on a memory in which the program is executed immediately after the program is executed, and executes the malicious code while executing the program. The present invention relates to a malicious program detection system and method considering a code protection technique for detecting a malicious program through monitoring a group.
현재의 악성 코드 동향은 제작자 우위에 있어 악성 코드 제작자는 단순 코드 변형이나 암호화를 도입할 경우 단시간 내에 단순하게 다량의 변형을 만들어 낼 수 있는데 반해, 진단하는 측면에서는 대량의 샘플을 입수하여 처리하거나 변형 알고리즘을 구현해 변형 여부를 파악하는 등 수십 수 백배의 노력이 필요하게 된다. Current malware trends are in the author's superiority, while malware authors can generate a large amount of variations in a short time by introducing simple code modifications or encryption, whereas in terms of diagnosis, a large number of samples are obtained and processed or modified. Implementing algorithms to determine whether they are modified requires dozens or hundreds of times.
이와 관련한 현재의 시스템 감시기들은 행위를 하는 주체(실행한 프로그램) 를 검사하는 것이 아니라 행위 목적물 예컨대, 실행할 프로그램, 또는 파일 열기할 파일을 검사하는 방식을 적용하고 있다.The current system monitors in this regard apply a method of checking the action object, such as a program to be executed, or a file to be opened, rather than checking the performing agent (the executed program).
이때, 해당 목적물이 실행 압축되거나 코드 변형된 파일에 대해서는 원본의 난이도와 상관없이 변형 코드에 대한 분석 및 대응을 실시하여야 하며, 이런 경우 변형 코드의 난이도가 높아 대응에 오랜 시간이 걸리게 되며, 지속적으로 변형이 일어나는 변형 코드에 대해서는 대책을 세우기 어렵게 된다.At this time, for the file whose target object is executed or compressed or modified, the modified code should be analyzed and responded regardless of the difficulty of the original. In this case, the difficulty of the modified code is high and the response takes a long time. It is difficult to take countermeasures against the variant code where the transformation occurs.
보다 구체적으로, 현행 시스템 감시기들의 특성은 파일 시스템의 후킹 함수에 의해 실행하려고 파일 오픈되어지는 A 파일을 검사하도록 하는 것과 B라는 프로그램에 의해 A라는 프로그램이 실행을 위해 파일 오픈될 경우 A파일을 검사하도록 하는 등 수동적인 검사 형태를 가진다.More specifically, the characteristics of current system monitors are to check file A to be opened for execution by the file system hooking function, and to check file A when program A is opened for execution by program B. It has a passive inspection form.
더욱이, 기존의 방법에서는 A라는 파일의 내용이 보호되는 형태의 실행압축이나 암호화 등에 의해 변형된 경우라면 진단이 어렵고 게다가, 1:1로 매칭해서 진단을 해야 하는 등 비효율적 진단을 실시해야만 한다.In addition, in the conventional method, if the contents of the file A are modified by a protected execution compression or encryption, the diagnosis is difficult, and the diagnosis must be performed in an inefficient manner such as 1: 1 matching.
이상 살펴본 바와 같이 현재 단순 변형에 의한 변형 코드의 다량 생산이 현실화되어 있는 상황에서 목적물을 검사하는 것은 비효율적이며, 특히 코드 보호 기법 해제를 수행해야 하는 기술적 어려움이 가증됨에 따라 상기 목적물에 대한 코드 변형 및 암호화와 같은 코드 보호 기법을 극복하는 기술이 시급한 실정이다.As described above, it is inefficient to inspect an object in a situation where a large amount of modified code is realized by a simple deformation, and in particular, as the technical difficulty to perform the code protection technique is exacerbated, the code modification and There is an urgent need for techniques to overcome code protection techniques such as encryption.
본 발명은 상기한 바와 같이 선행 기술에 내재되었던 문제점을 해결하기 위해 창작된 것으로, 본 발명의 목적은, 프로그램이 실행된 직후 기설정된 시점에서 해당 프로그램이 실행된 메모리 상의 악성 코드 존재 유무를 확인하는 시간차 검사 방안을 적용한 코드 악성 프로그램 감지 시스템 및 그 방법을 제공함에 있다. The present invention was created to solve the problems inherent in the prior art as described above, and an object of the present invention is to identify the presence or absence of malicious code on the memory in which the program is executed at a predetermined time point immediately after the program is executed. An object of the present invention is to provide a system for detecting code malware and a method using the time difference inspection method.
본 발명의 또 다른 목적은, 프로그램 실행중 악성 코드가 수행하는 중요 API 그룹에 대한 모니터링을 통해 API가 호출될 시점에 API를 호출한 프로그램을 메모리 상에서 진단하는 행위 시점 감지 방안을 적용한 코드 악성 프로그램 감지 시스템 및 그 방법을 제공함에 있다.Another object of the present invention is to detect a malicious code code applying an action point detection method of diagnosing a program calling an API on a memory at the point of time when the API is called by monitoring an important API group performed by a malicious code during program execution. A system and method are provided.
상술한 목적을 달성하기 위한 본 발명의 일면에 따라, 코드 보호 기법을 고려한 악성 프로그램 감지 시스템이 제공되며: 이 시스템은, 임의의 프로그램이 실행된 기설정 시점에서 상기 임의의 프로그램이 실행된 메모리 상에서의 악성 코드 감지 동작 개시를 위한 제어신호를 출력하는 감지 제어 모듈; 및 상기 악성 코드에 의해 호출되는 특정 API(Application Program Interface) 그룹에 대한 목록을 저장하며, 상기 제어신호에 따라 상기 실행중인 임의의 프로그램에 의해 호출되는 API를 상기 저장된 API 그룹 목록과 비교하여 상기 악성 코드를 감지하는 감지 모듈을 포함하는 것을 특징으로 한다.According to an aspect of the present invention for achieving the above object, there is provided a malicious program detection system in consideration of a code protection technique: the system on a memory in which the arbitrary program is executed at a predetermined time point when any program is executed; A detection control module that outputs a control signal for starting a malicious code detection operation of the device; And a list of a specific API (Application Program Interface) group called by the malicious code, and comparing the stored API group list with an API called by any of the executing programs according to the control signal. And a sensing module for detecting a code.
바람직하게는, 상기 시스템은, 상기 감지 모듈에 의해 악성 코드가 감지될 경우, 해당 프로세스를 차단 목록에 저장하고 상기 저장된 해당 프로세스를 차단하는 프로세스 차단 모듈을 더 포함하는 것을 특징으로 한다.Preferably, when the malicious code is detected by the detection module, the system further comprises a process blocking module for storing the process in the block list and block the stored process.
바람직하게는, 상기 감지 제어 모듈은, 상기 임의의 프로그램이 실행된 직후, 상기 메모리 상의 악성 코드에 대한 코드 보호 기법이 해제된 시점에 상기 제어신호를 출력하는 것을 특징으로 한다.Preferably, the sensing control module outputs the control signal immediately after the arbitrary program is executed and at the time when the code protection scheme for the malicious code on the memory is released.
바람직하게는, 상기 감지 모듈은, 상기 임의의 프로그램의 실행에 따른 현재 실행중인 프로세스가 리모트 쓰레드(Remote Thread)를 구현하는 형태 또는 타 프로세스의 메모리를 할당하는 경우, 해당 메모리 상에서 악성 코드를 감지하는 것을 특징으로 한다.Preferably, the detection module detects malicious code on the memory when the currently running process according to the execution of the arbitrary program allocates a memory of a form or another process that implements a remote thread. It is characterized by.
바람직하게는, 상기 감지 모듈은, 상기 실행중인 임의의 프로그램에 의해 호출되는 API에 대한 호출 회수 및 중요도를 포함하는 기설정된 제한 요소를 토대로 상기 감지 동작을 제한하는 것을 특징으로 한다.Preferably, the sensing module is configured to limit the sensing operation based on a predetermined limiting factor including the number of calls and the importance of the API called by any executing program.
바람직하게는, 상기 감지 모듈은, 상기 실행중인 임의의 프로그램에 대한 검사 캐싱 정보를 저장하여 중복 검사를 방지하는 것을 특징으로 한다.Preferably, the detection module is characterized in that to store the inspection caching information for any of the running program to prevent duplicate inspection.
바람직하게는, 상기 프로세스 차단 모듈은, 상기 차단 목록에 저장된 해당 프로세스에 대한 실행 및 접근을 금지하며, 실행에 따른 우선순위를 최하위로 설정하는 것을 특징으로 하는 코드 보호 기법을 고려한 악성 프로그램 감지 시스템.Advantageously, the process blocking module prohibits execution and access to a corresponding process stored in the block list, and sets a priority according to execution to a malware protection system in consideration of a code protection technique.
본 발명의 또 다른 일면에 따라, 코드 보호 기법을 고려한 악성 프로그램 감지 방법이 제공되며: 이 방법은, a) 임의의 프로그램이 실행된 기설정 시점에서 상기 임의의 프로그램이 실행된 메모리 상에서의 악성 코드 감지 동작을 개시하는 단계; b) 상기 실행중인 임의의 프로그램에 의해 호출되는 API(Application Program Interface)를 모니터링하는 단계; 및 c) 상기 실행중인 프로그램에 의해 호출되는 API를 상기 악성 코드에 의해 호출되는 특정 API 그룹에 대한 기저장된 목록과 비교하여 상기 메모리 상의 악성 코드를 감지하는 단계를 포함하는 것을 특징으로 한다.According to yet another aspect of the present invention, there is provided a malicious program detection method in consideration of a code protection scheme: a) malicious code on a memory in which the arbitrary program is executed at a predetermined point in time when any program is executed; Initiating a sensing operation; b) monitoring an application program interface (API) called by any of the running programs; And c) detecting malicious code in the memory by comparing the API called by the executing program with a pre-stored list of a specific API group called by the malicious code.
바람직하게는, 상기 방법은, d) 상기 'c) 단계'통해 악성 코드가 감지될 경우 해당 프로세스를 차단 목록에 저장하고 상기 저장된 해당 프로세스를 차단하는 단계를 더 포함하는 것을 특징으로 한다.Preferably, the method further comprises d) storing the process in a block list and blocking the stored process when malicious code is detected through step 'c)'.
바람직하게는, 상기 a) 단계는, 상기 임의의 프로그램이 실행된 직후, 상기 메모리 상의 악성 코드에 대한 코드 보호 기법이 해제된 시점에 상기 감지 동작을 개시하는 것을 특징으로 한다.Preferably, the step a) is characterized in that the detection operation is started immediately after the execution of the arbitrary program, when the code protection scheme for the malicious code on the memory is released.
바람직하게는, 상기 c) 단계는, 상기 임의의 프로그램의 실행에 따른 현재 실행중인 프로세스가 리모트 쓰레드(Remote Thread)를 구현하는 형태 또는 타 프로세스의 메모리를 할당하는 경우, 해당 메모리 상에서 악성 코드를 감지하는 것을 특징으로 한다.Preferably, the step c), when the currently running process according to the execution of the arbitrary program forms a remote thread or allocates memory of another process, detecting malicious code on the memory Characterized in that.
바람직하게는, 상기 c) 단계는, 상기 실행중인 임의의 프로그램에 의해 호출되는 API에 대한 호출 회수 및 중요도를 포함하는 기설정된 제한 요소를 토대로 상기 감지 동작을 제한하는 것을 특징으로 한다.Preferably, the step c) is characterized in that the sensing operation is limited based on a predetermined limiting factor including the number of calls and the importance for the API called by any executing program.
바람직하게는, 상기 c) 단계는, 상기 실행중인 임의의 프로그램에 대한 검사 캐싱 정보를 저장하여 중복 검사를 방지하는 것을 특징으로 한다.Preferably, the step c) is characterized in that to prevent the inspection of the duplicate by storing the check caching information for any of the running program.
바람직하게는, 상기 d) 단계는, 상기 차단 목록에 저장된 해당 프로세스에 대한 실행 및 접근을 금지하며, 실행에 따른 우선순위를 최하위로 설정하는 것을 특징으로 한다.Preferably, step d) is to prohibit execution and access to the corresponding process stored in the block list, and to set the priority according to the lowest.
본 발명에 따른 코드 보호 기법을 고려한 악성 프로그램 감지 시스템 및 그 방법은 원본이 동일한 상황에서 실행압축, 암호화, 단순 암호화 등에 의해 단순한 방법으로 다량 변형되는 경우에 메모리 상에서 원본이 복원된 시점에서 검사를 수행하여 하나의 시그너쳐로 다수의 변형 파일에 대응할 수 있다.The malware detection system and its method considering the code protection technique according to the present invention perform the inspection at the point of time when the original is restored in memory when the original is largely modified in a simple manner by execution compression, encryption, simple encryption, etc. in the same situation. Thus, one signature can correspond to multiple transform files.
또한, 본 발명은 코드가 원본으로 복원되어 있으므로 난이도가 높은 실행 압축 해제, 및 암호화 해제 등에 소요되는 시간을 대폭 절감할 수 있다.In addition, according to the present invention, since the code is restored to the original, it is possible to drastically reduce the time required for execution decompression and decryption with high difficulty.
또한, 본 발명은 메모리 상에서 실행 시점에 압축이 해제되는 것으로 사용자가 느끼지 못할 만큼 짧은 시간 내에 검사가 이루어짐에 따라 검사 소요 시간에 따른 사용자 불편을 해소할 수 있다.In addition, the present invention can solve the user inconvenience according to the time required for the test as the test is performed within a short time so that the user does not feel that the compression is released at the time of execution on the memory.
또한, 본 발명은 다수의 파일이 아닌 실행한 프로그램에 대해서만 검사를 함으로 백신의 효율을 증대시킬 수 있다.In addition, the present invention can increase the efficiency of the vaccine by checking only the executed program, not a plurality of files.
또한, 본 발명은 검사시 원본이 복원되어 있으므로 메모리 시그너쳐 진단 외에 알고리즘을 통한 변형 진단 루틴 등에 적용 가능함에 따라 그 효용가치를 더 증대시킬 수 있다.In addition, since the present invention is restored during inspection, the present invention can further increase its useful value as it can be applied to modification diagnosis routines through algorithms in addition to memory signature diagnosis.
이하에서는 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 상술하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1에는 본 발명의 실시예에 따른 코드 보호 기법을 고려한 악성 프로그램 감지 시스템의 개략적인 구성도를 도시한다.1 is a schematic block diagram of a malicious program detection system considering a code protection scheme according to an embodiment of the present invention.
도 1에 도시한 바와 같이, 상기 시스템은 악성 코드 감지 동작 개시를 위한 제어신호를 출력하는 감지 제어 모듈(100); 상기 제어신호에 따라 임의의 프로그램이 실행된 메모리 상의 악성 코드를 감지하는 감지 모듈(200); 및 상기 감지 모듈에 의해 악성 코드가 감지될 경우, 해당 프로세스를 차단하는 프로세스 차단 모듈(300)을 포함하는 구성을 갖는다.As shown in FIG. 1, the system includes a
상기 감지 제어 모듈(100)은 임의의 프로그램이 실행된 기설정 시점에서 임의의 프로그램이 실행된 메모리 상에서의 악성 코드 감지 동작 개시를 위한 제어신호를 출력한다. 보다 구체적으로, 감지 제어 모듈(100)은 임의의 프로그램이 실행된 메모리 상의 악성 코드에 대한 코드 보호 기법이 해제된 시점 예컨대, 실행압축, 암호화, PE-PATCH된 악성코드, 다형성 바이러스, 및 암호화 바이러스 등에서 변형된 코드가 복원되는 시점에 상기 제어신호를 출력한다.The
상기 감지 모듈(200)은 감지 제어 모듈(100)로부터 출력되는 제어신호에 따라 임의의 프로그램이 실행된 메모리 상에서의 악성 코드를 감지하기 위해 상기 악성 코드에 의해 호출되는 특정 API 그룹에 대한 목록을 저장한다. 여기서, 상기 API 그룹에 대한 목록은, 예컨대, 감염 대상 파일 오픈과 쓰기를 동반하는 일반적인 바이러스 그룹; 웜 파일을 저장하기 위한 파일 작성과 쓰기, 네트워크 소켓, 패킷 전송 등의 API, 그리고 레지스트리 등록을 위한 쓰기, 다른 프로세스에 메모리를 할당하고 리모트 쓰레드를 생성하는 행위 등을 포함하는 웜; 지속적 실행을 위한 레지스트리 쓰기와 네트워크 소켓, 패킷 전송 등을 수행하는 트로이 목마;등을 포함하는 악성 코드들에 의해 수행되는 특정 기능을 고려하여 목록이 작성된다.The
이를 토대로 감지 모듈(200)은 감지 제어 모듈(100)로부터 출력되는 제어신호에 따라 상기 실행중인 임의의 프로그램에 의해 호출되는 API를 상기 저장된 API 그룹 목록과 비교하고, 일치 여부에 따라 메모리 상의 악성 코드 존재 유무를 확인한다.Based on this, the
또한, 감지 모듈(200)은 실행중인 임의의 프로그램에 의해 호출되는 API에 대한 호출 회수 및 중요도를 포함하는 기설정된 제한 요소를 토대로 상기 감지 동작을 제한함으로써 검사 제한이나 전면 허용 등을 결정할 수 있도록 한다.In addition, the
아울러, 감지 모듈(200)은 실행중인 임의의 프로그램에 대한 검사 캐싱 정보를 저장 중복 검사를 방지하도록 구성됨이 바람직하다.In addition, the
한편, 감지 모듈(200)은 임의의 프로그램의 실행에 따른 현재 실행중인 프로세스가 리모트 쓰레드(Remote Thread)를 구현하는 형태 또는 타 프로세스의 메모리를 할당하는 경우, 해당 메모리 상에서 상술한 구성을 통해 악성 코드를 감지하도록 한다.On the other hand, the
상기 프로세스 차단 모듈(300)은 감지 모듈(200)에 의해 악성 코드가 감지될 경우, 해당 프로세스를 차단 목록에 저장하고 상기 저장된 해당 프로세스를 차단한다. 즉, 프로세스 차단 모듈(300)은 감지 모듈(200)에 의해 악성 코드가 감지될 경우, 상기 차단 목록에 저장된 해당 프로세스에 대한 실행 및 접근을 금지하며, 실행에 따른 우선순위를 최하위로 설정함으로써 실행을 중지시킨다.When the malicious code is detected by the
이하에서는, 도 2를 참조하여 본 발명의 실시예에 따른 코드 보호 기법을 고려한 악성 프로그램 감지 방법을 설명하기로 한다. 여기서, 도 2는 본 발명의 실시예에 따른 코드 보호 기법을 고려한 악성 프로그램 감지 방법을 설명하기 위한 개략적인 순서도이다.Hereinafter, a malicious program detection method considering a code protection technique according to an embodiment of the present invention will be described with reference to FIG. 2. 2 is a schematic flowchart illustrating a malicious program detection method considering a code protection technique according to an embodiment of the present invention.
먼저, 임의의 프로그램이 실행된 기설정 시점에서 상기 임의의 프로그램이 실행된 메모리 상에서의 악성 코드 감지 동작을 개시한다(S110-S120). 바람직하게는, 감지 제어 모듈(100)이 임의의 프로그램이 실행된 기설정 시점에서 임의의 프로그램이 실행된 메모리 상에서의 악성 코드 감지 동작 개시를 위한 제어신호를 출력한다. 보다 구체적으로, 감지 제어 모듈(100)은 임의의 프로그램이 실행된 메모리 상의 악성 코드에 대한 코드 보호 기법이 해제된 시점 예컨대, 실행압축, 암호화, PE-PATCH된 악성코드, 다형성 바이러스, 및 암호화 바이러스 등에서 변형된 코드가 복원되는 시점을 감지하고, 이에 따라 감지 동작 개시를 위한 상기 제어신호를 출력한다.First, a malicious code detection operation is started on a memory in which the arbitrary program is executed at a preset time point when the arbitrary program is executed (S110-S120). Preferably, the
이후, 상기 실행중인 임의의 프로그램에 의해 호출되는 API를 모니터링한다(S130). 바람직하게는, 감지 모듈(200)이 제어 모듈(100)로부터 출력되는 제어 신호에 따라 실행중인 임의의 프로그램에 의해 호출되는 API를 모니터링한다.Thereafter, the API called by any program being executed is monitored (S130). Preferably, the
그런 다음, 임의의 프로그램이 실행된 메모리 상의 악성 코드를 감지한다(S140-S150). 바람직하게는, 감지 모듈(200)이 실행중인 임의의 프로그램에 의해 호출되는 API를 악성 코드에 의해 호출되는 특정 API 그룹에 대한 기저장된 목록과 비교하고, 일치 여부에 따라 메모리 상의 악성 코드 존재 유무를 확인한다. 이때, 감지 모듈(200)은 실행중인 임의의 프로그램에 의해 호출되는 API에 대한 호출 회수 및 중요도를 포함하는 기설정된 제한 요소를 토대로 상기 감지 동작을 제한함으로써 검사 제한이나 전면 허용 등을 결정할 수 있도록 한다. 아울러, 감지 모듈(200)은 실행중인 임의의 프로그램에 대한 검사 캐싱 정보를 저장 중복 검사를 방지하도록 구성됨이 바람직하다. 한편, 감지 모듈(200)은 임의의 프로그램의 실행에 따른 현재 실행중인 프로세스가 리모트 쓰레드(Remote Thread)를 구현하는 형태 또는 타 프로세스의 메모리를 할당하는 경우, 해당 메모리 상에서 상술한 구성을 통해 악성 코드를 감지하도록 한다.Then, malicious code on the memory in which any program is executed is detected (S140-S150). Preferably, the
이후, 악성 코드가 감지될 경우, 해당 프로세스를 차단한다(S160-S170). 바람직하게는, 프로세스 차단 모듈(300)이 감지 모듈(200)에 의해 악성 코드가 감지될 경우, 해당 프로세스를 차단 목록에 저장하고 상기 저장된 해당 프로세스를 차단한다. 즉, 프로세스 차단 모듈(300)은 감지 모듈(200)에 의해 악성 코드가 감지될 경우, 상기 차단 목록에 저장된 해당 프로세스에 대한 실행 및 접근을 금지하며, 실행에 따른 우선순위를 최하위로 설정함으로써 실행을 중지시킨다.After that, if a malicious code is detected, the process is blocked (S160-S170). Preferably, when the malicious code is detected by the
지금까지 본 발명을 바람직한 실시예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.Although the present invention has been described in detail with reference to the preferred embodiments, the present invention is not limited to the above-described embodiments, and the present invention belongs to the present invention without departing from the gist of the present invention as claimed in the following claims. Anyone skilled in the art will have the technical idea of the present invention to the extent that various modifications or changes are possible.
본 발명에 따른 코드 보호 기법을 고려한 악성 프로그램 감지 시스템 및 그 방법은 변형 코드의 난이도에 상관없이 원본 코드에 대한 분석 및 대응이 용이하여 코드 보호 기법에 의해 취약할 수밖에 없는 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.Malware detection system and method considering the code protection technique according to the present invention is easy to analyze and respond to the original code irrespective of the difficulty of the modified code to overcome the limitations of the existing technology that can only be vulnerable by the code protection technique According to the present invention, there is not only the use of the related technology but also the possibility of marketing or sales of the applied device as well as the degree to which it can be clearly realized in reality.
본 명세서에서 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술하는 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니된다.The following drawings, which are attached in this specification, illustrate preferred embodiments of the present invention, and together with the detailed description of the present invention, serve to further understand the technical spirit of the present invention. It should not be construed as limited to.
도 1은 본 발명의 실시예에 따른 코드 보호 기법을 고려한 악성 프로그램 감지 시스템의 개략적인 구성도.1 is a schematic configuration diagram of a malicious program detection system considering a code protection technique according to an embodiment of the present invention.
도 2는 본 발명의 실시예에 따른 코드 보호 기법을 고려한 악성 프로그램 감지 방법을 설명하기 위한 개략적인 순서도.2 is a schematic flowchart illustrating a malicious program detection method considering a code protection technique according to an embodiment of the present invention.
*도면의 주요 부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *
100: 감지 제어 모듈100: detection control module
200: 감지 모듈200: detection module
300: 프로세스 차단 모듈300: process blocking module
Claims (14)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080021881A KR100954356B1 (en) | 2008-03-10 | 2008-03-10 | Detection system for malicious program considering code protection method and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080021881A KR100954356B1 (en) | 2008-03-10 | 2008-03-10 | Detection system for malicious program considering code protection method and method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090096823A KR20090096823A (en) | 2009-09-15 |
KR100954356B1 true KR100954356B1 (en) | 2010-04-21 |
Family
ID=41356366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080021881A KR100954356B1 (en) | 2008-03-10 | 2008-03-10 | Detection system for malicious program considering code protection method and method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100954356B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101044651B1 (en) | 2010-12-21 | 2011-06-29 | 주식회사 미라지웍스 | System for file security and providing method thereof |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101044274B1 (en) * | 2009-11-03 | 2011-06-28 | 주식회사 안철수연구소 | Exploit site filtering APPARATUS, METHOD, AND RECORDING MEDIUM HAVING COMPUTER PROGRAM RECORDED |
KR101397666B1 (en) * | 2011-09-30 | 2014-05-26 | 주식회사 케이티 | Method for controlling access right of application, and user device |
KR101324691B1 (en) * | 2011-12-08 | 2013-11-04 | 한국인터넷진흥원 | System and method for detecting malicious mobile applications |
KR101341328B1 (en) * | 2012-12-18 | 2013-12-13 | 주식회사 잉카인터넷 | User definition api function creation |
KR101480244B1 (en) * | 2013-08-23 | 2015-01-12 | 한양대학교 산학협력단 | Method for detecting malicious application using signature on class basis and device enabling the method |
KR101982734B1 (en) * | 2015-10-26 | 2019-05-27 | 삼성에스디에스 주식회사 | Apparatus and method for detecting malicious code |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030212913A1 (en) | 2002-05-08 | 2003-11-13 | David Vella | System and method for detecting a potentially malicious executable file |
KR20070049511A (en) * | 2005-11-08 | 2007-05-11 | 한국정보보호진흥원 | Analysis system for malicious code and method thereof |
KR20070121195A (en) * | 2006-06-21 | 2007-12-27 | 한국전자통신연구원 | A system and method for detection of a hidden process using system event |
-
2008
- 2008-03-10 KR KR1020080021881A patent/KR100954356B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030212913A1 (en) | 2002-05-08 | 2003-11-13 | David Vella | System and method for detecting a potentially malicious executable file |
KR20070049511A (en) * | 2005-11-08 | 2007-05-11 | 한국정보보호진흥원 | Analysis system for malicious code and method thereof |
KR20070121195A (en) * | 2006-06-21 | 2007-12-27 | 한국전자통신연구원 | A system and method for detection of a hidden process using system event |
Non-Patent Citations (1)
Title |
---|
정보보호학회논문지 제 17권, 제 6호, 2007. 12 "API Call의 단계별 복합분석을 통한 악성코드 탐지" |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101044651B1 (en) | 2010-12-21 | 2011-06-29 | 주식회사 미라지웍스 | System for file security and providing method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20090096823A (en) | 2009-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9152821B2 (en) | Data leakage prevention system, method, and computer program product for preventing a predefined type of operation on predetermined data | |
KR100954356B1 (en) | Detection system for malicious program considering code protection method and method thereof | |
US10055585B2 (en) | Hardware and software execution profiling | |
JP5908132B2 (en) | Apparatus and method for detecting attack using vulnerability of program | |
US8272059B2 (en) | System and method for identification and blocking of malicious code for web browser script engines | |
US9418227B2 (en) | Detecting malicious software | |
US8627478B2 (en) | Method and apparatus for inspecting non-portable executable files | |
US8782615B2 (en) | System, method, and computer program product for simulating at least one of a virtual environment and a debugging environment to prevent unwanted code from executing | |
JP5265061B1 (en) | Malicious file inspection apparatus and method | |
US10264002B2 (en) | Program, information processing device, and information processing method | |
US20130247190A1 (en) | System, method, and computer program product for utilizing a data structure including event relationships to detect unwanted activity | |
TWI396995B (en) | Method and system for cleaning malicious software and computer program product and storage medium | |
US20190147163A1 (en) | Inferential exploit attempt detection | |
US11055168B2 (en) | Unexpected event detection during execution of an application | |
US9104860B2 (en) | Systems, methods and media for managing process image hijacks | |
KR20090067569A (en) | Windows kernel protection system using virtualization | |
US8370941B1 (en) | Rootkit scanning system, method, and computer program product | |
JP2023534502A (en) | Advanced ransomware detection | |
JP5326063B1 (en) | Malicious shellcode detection apparatus and method using debug events | |
US20180341770A1 (en) | Anomaly detection method and anomaly detection apparatus | |
US20080028462A1 (en) | System and method for loading and analyzing files | |
KR101097590B1 (en) | Method for defending against dll injection without hooking | |
US8578495B2 (en) | System and method for analyzing packed files | |
CN103514402A (en) | Intrusion detection method and device | |
JP2010182020A (en) | Illegality detector and program |
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: 20130415 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140415 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170417 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20180416 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20190415 Year of fee payment: 10 |