KR101031786B1 - Malicious code prevention apparatus and method using level classification of suspicious behavior and isolated execution, and computer-readable medium storing program for method thereof - Google Patents

Malicious code prevention apparatus and method using level classification of suspicious behavior and isolated execution, and computer-readable medium storing program for method thereof Download PDF

Info

Publication number
KR101031786B1
KR101031786B1 KR1020090008410A KR20090008410A KR101031786B1 KR 101031786 B1 KR101031786 B1 KR 101031786B1 KR 1020090008410 A KR1020090008410 A KR 1020090008410A KR 20090008410 A KR20090008410 A KR 20090008410A KR 101031786 B1 KR101031786 B1 KR 101031786B1
Authority
KR
South Korea
Prior art keywords
malicious code
program
code
action
behavior
Prior art date
Application number
KR1020090008410A
Other languages
Korean (ko)
Other versions
KR20100089245A (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 KR1020090008410A priority Critical patent/KR101031786B1/en
Publication of KR20100089245A publication Critical patent/KR20100089245A/en
Application granted granted Critical
Publication of KR101031786B1 publication Critical patent/KR101031786B1/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/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
    • G06F21/53Monitoring 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 by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 프로그램이 수행하는 의심스러운 행위를 수준별로 분류하고, 분류 결과에 따라 격리 공간에서 실행함으로써 시스템을 보호하는 악성 코드 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다. 본 발명의 일 측면은 프로그램이 시스템 내에서 수행하는 행위를 모니터링하고, 악성 코드 및 정상 코드의 특성에 기반하여 상기 행위를 수준별로 분류하며, 상기 수준별 분류 결과 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위로 분류된 행위를 상기 시스템과 격리하여 실행하는 악성 코드 사전 대응 방법을 제공한다. 본 발명에 의하면, 사용자의 사후 신고 없이 행위 기반으로 제로 데이 공격을 무력화하고, 사용자에 대한 질의가 필요 없이 의심 행위를 수준별로 분류하여 처리함으로써 실시간으로 실행하며, 격리 공간에서의 실행으로 시스템을 안전하게 보호할 수 있게 되는 효과가 있다.The present invention relates to a malicious code countermeasure apparatus and method for protecting a system by classifying suspicious actions performed by a program according to levels, and executing the malicious code in an isolation space according to a classification result, and a computer readable computer readable medium storing a program for executing the method To a recording medium. One aspect of the present invention monitors the actions performed by the program in the system, classifies the actions according to the characteristics of the malicious code and the normal code, classifies the malicious code and the malicious code, And a malicious code preliminary countermeasure method of isolating an action classified as an action to be executed from the system. According to the present invention, zero-day attacks are disabled on the basis of an action without user's reporting afterwards, and the suspicious actions are classified and processed at the level without requiring a query to the user, It is possible to protect the user.

악성 코드, 사전 대응, 행위 기반, 수준별 분류, 격리 실행 Malicious code, proactive, behavior based, level classification, quarantine execution

Description

의심스러운 행위의 수준별 분류 및 격리 실행을 통한 악성 코드 사전 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체{Malicious code prevention apparatus and method using level classification of suspicious behavior and isolated execution, and computer-readable medium storing program for method thereof}[0001] The present invention relates to a malicious code pre-coping apparatus, method and system for classifying suspicious behavior and performing quarantine, and a computer-readable recording medium on which a program for executing the method is recorded. isolated execution, and computer-readable medium storing program for the < RTI ID = 0.0 >

본 발명은 의심스러운 행위의 수준별 분류 및 격리 실행을 통한 악성 코드 사전 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다. 구체적으로 본 발명은, 프로그램이 수행하는 의심스러운 행위를 수준별로 분류하고, 분류 결과에 따라 격리 공간에서 실행함으로써 시스템을 보호하는 악성 코드 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.The present invention relates to a device, a method, and a computer-readable recording medium on which a program for executing the method is classified. Specifically, the present invention relates to a malicious code countermeasure apparatus and method for protecting a system by classifying suspicious actions performed by a program according to levels, and executing the malicious code in an isolation space according to classification results, and a computer The present invention relates to a recording medium readable by a computer.

오늘날 수많은 웹 사이트가 악성 코드(malicious code)에 의한 공격에 노출되어 있다. 악성 코드는 웹 사이트 자체뿐만 아니라 자신이 공격한 웹 사이트를 방문하는 다른 사용자에 대하여도 피싱(phishing) 또는 드라이브-바이-다운로드(drive-by-download) 등 다양한 형태의 공격을 실행하고 있다.Today, many websites are exposed to malicious code attacks. Malicious code is performing various forms of attacks, such as phishing or drive-by-download, against not only the Web site itself, but also other users who visit the Web site they attack.

악성 코드로 인한 사용자의 피해를 막기 위하여 보안 프로그램 및 시스템이 개발되고 있다. 현재 널리 사용되는 드라이브-바이-다운로드 형태의 공격 차단 기술은, 시그니처(signature) 기반의 대응 방법과 사전 방역 방법 등 여러 가지가 있다.Security programs and systems are being developed to prevent users from harming malicious code. At present, widely used drive-by-download type attack prevention techniques have various methods such as signature-based countermeasures and proactive prevention methods.

시그니처 기반의 대응 방법은 사용자가 신고한 웹 사이트를 차단하거나 다운로드 되는 파일을 AV엔진(Anti-Virus engine) 등으로 검사하여 악성 코드를 배포하는 웹 사이트를 식별해 내는 기술이다. 이 방법은 악성 코드의 공격으로 피해를 입은 피해자들의 사후 신고에 의하여 샘플을 수집하거나 허니 팟(honey pot)을 통하여 악성 코드를 식별할 수 있는 시그니처를 추출한다. 따라서 시그니처 기반의 악성 코드 대응 방법은 사용자의 사후 신고에 이르기까지 일정한 수의 피해자가 발생할 수 밖에 없다는 문제점이 있다. 시스템 상의 보안 문제점의 존재가 공표되기 전에 이루어지는 제로 데이 공격(zero-day attack)에 대한 방어가 불가능한 것이다.The signature-based countermeasure is a technology that identifies websites that distribute malicious code by blocking Web sites reported by users or by examining downloaded files with AV engine (Anti-Virus engine). This method collects samples by post-notification of victims victimized by malicious code attacks or extracts signatures that can identify malicious code through honey pot. Therefore, a signature-based malicious code countermeasure has a problem in that a certain number of victims can not be avoided until after the user's report is made. It is impossible to defend against the zero-day attack that occurs before the existence of a security problem on the system is announced.

사전 방역 방법은 프로그램이 수행하는 행위에 기반하여 악성 코드 여부를 판단한다. 이 방법은 탐지된 행위가 의심스럽지만 정상 코드도 그러한 행위를 수행할 수 있는 경우가 많기 때문에 악성 코드 여부를 100% 확실하게 판단할 수는 없다. 따라서 이 방법은 의심스러운 행위를 발견했을 때 그 코드를 계속 실행할 것인지 여부를 알림 창 등을 통하여 사용자에게 묻는다. 사전 방역 방법으로 보호되는 시스템에서는 이러한 알림 창이 빈번하게 생성되므로 사용자는 불편함을 느끼게 된다. 또한 알림 창이 의심스러운 행위의 실행을 경고하더라도, 컴퓨터 보안 전문 가가 아닌 일반 사용자들이 악성 코드 여부를 판단하여 의심스러운 행위의 계속 실행 여부를 결정하는 것은 사실상 어렵다.The proactive prevention method judges whether or not the malicious code is based on the action performed by the program. This method can not be 100% sure whether the malicious code is detected because the detected behavior is suspicious, but the normal code can often perform such an operation. Therefore, this method asks the user through the notification window whether or not to continue executing the code when a suspicious behavior is found. In a system protected by the proactive prevention method, such a notification window is frequently generated, and the user feels inconvenience. Even if the notification window warns the execution of suspicious behavior, it is practically difficult for ordinary users other than the computer security specialist to judge whether or not malicious code is being executed and to continue execution of suspicious behavior.

상기 문제점을 해결하기 위하여 본 발명은, 사용자의 사후 신고에 의한 취약점 정보 수집 없이 행위에 기반하여 악성 코드를 처리함으로써 제로 데이 공격에 대한 방어가 가능하게 하는 것을 목적으로 한다.In order to solve the above problems, it is an object of the present invention to enable a defense against a zero-day attack by processing a malicious code based on an action without collecting vulnerability information by a user's post-notification.

또한, 악성 코드 및 정상 코드의 특성에 기반하여 의심스러운 행위를 수준별로 분류하여 처리함으로써, 알림 창 등을 통한 사용자에 대한 질의가 필요 없는 실시간 방어를 제공하는 것을 목적으로 한다.In addition, it aims to provide real-time protection that does not require a query to the user through a notification window by sorting suspicious behavior based on the characteristics of malicious code and normal code.

또한, 제한된 격리 공간에서 의심스러운 행위를 실행하여 시스템을 보호함으로써, 악성 코드의 공격을 무력화하는 것을 목적으로 한다.It also aims to disable malicious code attacks by protecting the system by executing suspicious actions in a limited isolation space.

상기 목적을 달성하기 위하여 본 발명의 제 1 측면은, 프로그램이 시스템 내에서 수행하는 행위를 모니터링하는 행위 모니터링부와, 악성 코드 및 정상 코드의 특성에 기반하여 상기 행위를 수준별로 분류하는 행위 분류부, 및 상기 수준별 분류 결과 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위로 분류된 행위를 상기 시스템과 격리하여 실행하는 격리 실행부를 포함하는 악성 코드 사전 대응 장치를 제공한다.According to a first aspect of the present invention, there is provided a program for causing a computer to function as: a behavior monitoring unit for monitoring an action performed by a program in a system; a behavior classifying unit for classifying the behavior into levels based on characteristics of malicious code and normal code; And a quarantine executor for isolating an activity classified as an activity occasionally used in malicious code but also occasionally in normal code from the system.

또한, 상기 프로그램의 행위 정보를 로그 기록으로 저장하는 로그 기록 저 장부를 더 포함하는 악성 코드 사전 대응 장치를 제공한다.Further, the present invention provides a malicious code proactive device, further comprising a log recorder for storing the behavior information of the program as log records.

또한, 상기 프로그램이 악성 행위를 수행할 경우 상기 로그 기록에 기반하여 상기 악성 행위 이전의 상태를 복원하는 행위 복원부를 더 포함하는 악성 코드 사전 대응 장치를 제공한다.Further, the malicious code pro- viding apparatus may further include a behavior restoration unit restoring the pre-malicious behavior state based on the log record when the program performs a malicious act.

또한, 안전한 프로그램의 목록을 화이트리스트로 저장하는 화이트리스트 저장부를 더 포함하는 악성 코드 사전 대응 장치를 제공한다.Further, the present invention provides a malicious code proactive device further comprising a whitelist storage unit for storing a list of safe programs in a whitelist.

또한, 상기 프로그램의 샘플을 저장하는 샘플 저장부와, 상기 화이트리스트에 등록되지 않은 프로그램의 샘플을 전송 받아 악성 코드인지 여부를 분석하는 악성 코드 분석 시스템, 및 상기 악성 코드 분석 시스템의 분석 결과를 반영하여 상기 화이트리스트를 업데이트하는 화이트리스트 관리부를 더 포함하는 악성 코드 사전 대응 장치를 제공한다.A malicious code analysis system for analyzing whether a malicious code is received by receiving a sample of a program not registered in the whitelist; and a malicious code analysis system And a white list management unit for updating the whitelist.

또한, 상기 격리 실행부에서 실행되는 행위가 접근하는 데이터의 복사본을 상기 시스템과 격리하여 저장하는 접근 대상 복사본 저장부를 더 포함하는 악성 코드 사전 대응 장치를 제공한다.The access control apparatus may further include an access destination copy storage unit for storing a copy of data accessed by an action executed by the isolation execution unit in a state isolated from the system.

또한, 상기 수준별 분류 결과는, 정상 코드에서만 사용되는 제 1 수준 행위와, 정상 코드에서 주로 사용되지만 악성 코드에서도 가끔 사용되는 제 2 수준 행위와, 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 제 3 수준 행위, 및 악성 코드에서만 사용되는 제 4 수준 행위 중 어느 하나 이상을 포함하는 악성 코드 사전 대응 장치를 제공한다.In addition, the above-mentioned classification result is classified into a first-level action used only in the normal code, a second-level action mainly used in the normal code but occasionally used in the malicious code, and a second level action used mainly in the malicious code, 3-level behavior, and 4-level behavior used only in malicious code.

또한, 상기 제 1 수준 행위 및 상기 제 2 수준 행위에 대하여 통상의 실행 을 허용하고, 상기 제 4 수준 행위의 실행을 보류 또는 차단하는 제어부를 더 포함하는 악성 코드 사전 대응 장치를 제공한다.Further, the present invention provides a malicious code proactive device further including a control unit that permits normal execution of the first level action and the second level action, and suspends or blocks execution of the fourth level action.

또한, 상기 격리 실행부는 상기 분류된 행위의 실행에 사용되는 연동 프로그램을 상기 시스템과 격리하여 실행하는 악성 코드 사전 대응 장치를 제공한다.In addition, the isolation execution unit provides a malicious code proactive device that isolates and executes an interlocking program used for executing the classified action from the system.

또한, 의심스러운 행위를 전혀 하지 않는 것으로 확인된 정상 검증 코드를 저장하는 정상 검증 코드 저장부를 더 포함하고, 상기 격리 실행부는 상기 정상 검증 코드가 악성 코드에서 가끔이라도 사용되는 행위를 실행할 경우에 해당 행위를 상기 시스템과 격리하여 실행하거나 차단하는 악성 코드 사전 대응 장치를 제공한다.The normal verification code storage unit may further include a normal verification code storage unit for storing a normal verification code that has been confirmed not to perform any suspicious activity at all. A malicious code pre-countermeasure apparatus that isolates and blocks or isolates the malicious code from the system.

상기 목적을 달성하기 위하여 본 발명의 제 2 측면은, 프로그램이 시스템 내에서 수행하는 행위를 모니터링하고, 악성 코드 및 정상 코드의 특성에 기반하여 상기 행위를 수준별로 분류하며, 상기 수준별 분류 결과 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위로 분류된 행위를 상기 시스템과 격리하여 실행하는 악성 코드 사전 대응 방법을 제공한다.According to a second aspect of the present invention, there is provided a program for causing a computer to function as: monitoring an action performed by a program in a system; classifying the actions according to a level of malicious code and normal code; The malicious code preliminary countermeasure method is provided which isolates an action classified as an action occasionally used even in normal code but isolates it from the system.

또한, 상기 프로그램의 행위 정보를 로그 기록으로 저장하는 악성 코드 사전 대응 방법을 제공한다.In addition, the present invention provides a malicious code advance response method of storing behavior information of the program as log records.

또한, 상기 프로그램이 악성 행위를 수행할 경우 상기 로그 기록에 기반하여 상기 악성 행위 이전의 상태를 복원하는 악성 코드 사전 대응 방법을 제공한다.In addition, when the program performs a malicious action, the malicious code preliminary response method for restoring the pre-malicious behavior state based on the log record is provided.

또한, 안전한 프로그램의 목록을 화이트리스트로 저장하는 악성 코드 사전 대응 방법을 제공한다.It also provides a malicious code proactive method to store a list of safe programs in a white list.

또한, 상기 프로그램의 샘플을 저장하고, 상기 화이트리스트에 등록되지 않은 프로그램의 샘플을 전송 받아 악성 코드인지 여부를 분석하며, 상기 분석 결과를 반영하여 상기 화이트리스트를 업데이트하는 악성 코드 사전 대응 방법을 제공한다.Also, a malicious code preliminary response method of storing a sample of the program, analyzing whether or not the sample of the program not registered in the whitelist is received, and analyzing the result of the analysis to update the whitelist do.

또한, 상기 격리하여 실행되는 행위가 접근하는 데이터의 복사본을 상기 시스템과 격리하여 저장하는 악성 코드 사전 대응 방법을 제공한다.In addition, the present invention provides a malicious code preliminary countermeasure method of isolating a copy of data accessed by an isolated and executed operation from the system.

또한, 상기 수준별 분류 결과는, 정상 코드에서만 사용되는 제 1 수준 행위와, 정상 코드에서 주로 사용되지만 악성 코드에서도 가끔 사용되는 제 2 수준 행위와, 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 제 3 수준 행위, 및 악성 코드에서만 사용되는 제 4 수준 행위 중 어느 하나 이상을 포함하는 악성 코드 사전 대응 방법을 제공한다.In addition, the above-mentioned classification result is classified into a first-level action used only in the normal code, a second-level action mainly used in the normal code but occasionally used in the malicious code, and a second level action used mainly in the malicious code, 3-level behavior, and 4-level behavior used only in malicious code.

또한, 상기 제 1 수준 행위 및 상기 제 2 수준 행위에 대하여 통상의 실행을 허용하고, 상기 제 4 수준 행위의 실행을 보류 또는 차단하는 악성 코드 사전 대응 방법을 제공한다.Further, the present invention provides a malicious code proactive method that permits normal execution of the first level behavior and the second level behavior and suspends or blocks the execution of the fourth level behavior.

또한, 상기 분류된 행위의 실행에 사용되는 연동 프로그램을 상기 시스템과 격리하여 실행하는 악성 코드 사전 대응 방법을 제공한다.Further, the present invention provides a malicious code advance handling method that isolates and executes an interlocking program used for executing the classified action from the system.

또한, 의심스러운 행위를 전혀 하지 않는 것으로 확인된 정상 검증 코드가 악성 코드에서 가끔이라도 사용되는 행위를 실행할 경우에 해당 행위를 상기 시스템과 격리하여 실행하거나 차단하는 악성 코드 사전 대응 방법을 제공한다.It also provides a malicious code proactive response method that isolates and blocks the action from the system when the normal verification code that has been confirmed as not doing any suspicious activity performs an action sometimes used in malicious code.

또한, 상기 정상 검증 코드에 속하는 프로그램이 상기 악성 코드에서 가끔 이라도 사용되는 행위를 실행할 경우 상기 프로그램의 행위 정보를 조사하고, 상기 조사 결과로부터 악성 행위를 수행한 코드를 검출하며, 상기 검출된 코드의 샘플을 분석 시스템으로 보고하는 악성 코드 사전 대응 방법을 제공한다.In addition, when the program belonging to the normal verification code performs an action sometimes used in the malicious code, the program checks the behavior information of the program, detects a malicious code executed from the detection result, Provides a malicious code proactive method to report samples to the analysis system.

상기 목적을 달성하기 위하여 본 발명의 제 3 측면은, 상기 어느 하나의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체를 제공한다.According to a third aspect of the present invention, there is provided a computer-readable recording medium having recorded thereon a program for executing any one of the above methods.

본 발명에 의하면, 사용자의 사후 신고 없이 행위 기반으로 제로 데이 공격을 무력화할 수 있게 되는 효과가 있다.According to the present invention, it is possible to disable the zero-day attack based on an action without reporting the user's post.

또한, 사용자에 대한 질의가 필요 없이 의심 행위를 수준별로 분류하여 처리함으로써 실시간 실행을 보장할 수 있게 되는 효과가 있다.In addition, there is an effect that real-time execution can be guaranteed by classifying suspicious actions according to levels without inquiring about users and processing them.

또한, 격리 공간에서의 실행으로 시스템을 안전하게 보호할 수 있게 되는 효과가 있다.Further, the system can be safely protected by the execution in the isolation space.

이하 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, 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 of the present invention, and these may be changed according to the intention of the user, the operator, or the like. Therefore, the definition should be based on the contents throughout this specification.

도 1은 본 발명의 악성 코드 사전 대응 장치의 개략적인 구성을 도시한 블록도이다.1 is a block diagram showing a schematic configuration of a malicious code proactive device of the present invention.

행위 모니터링부(110)는 사용자 PC(Personal Computer)에서 발생하는 각종 행위 정보를 감시(monitoring)한다. 실시예에 따라 행위 모니터링 도구 설치부가 설치한 모니터링 도구에 의하여 구현되거나, 감시되는 각종 행위 정보를 저장하는 로그 기록 저장부(130)와 연동하도록 구현될 수도 있다. 모니터링 도구는 운영 체제의 각 부분에 설치되는 훅(hook), 또는 필터 드라이버(filter driver) 등이 될 수 있다. 모니터링되는 행위 정보는 행위 분류부(120)로 전달되어 분류된다.The behavior monitoring unit 110 monitors various kinds of behavior information generated by a user PC (personal computer). May be implemented by a monitoring tool installed in the behavior monitoring tool installer according to the embodiment, or may be implemented to be interlocked with the log record storing unit 130 that stores various behavior information to be monitored. The monitoring tool can be a hook, or a filter driver, installed in each part of the operating system. The action information to be monitored is transmitted to the action classifying unit 120 and classified.

행위 분류부(120)는 모니터링된 행위 정보를 악성 코드 및 정상 코드의 특성에 기반하여 수준별로 분류한다. 이러한 수준별 분류 결과는 정상 코드에서만 사용되는 제 1 수준 행위와, 정상 코드에서 주로 사용되지만 악성 코드에서도 가끔 사용되는 제 2 수준 행위와, 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 제 3 수준 행위, 및 악성 코드에서만 사용되는 제 4 수준 행위 중 어느 하나 이상을 포함하도록 구현될 수 있다. 본 실시예에서는 4개의 수준으로 분류하였지만, 악성 코드가 수행하는 행위와 정상 코드가 수행하는 행위 사이의 중간 수준은 전혀 존재하지 않을 수도 있고 반대로 매우 자세하게 나뉠 수도 있다. 또한 일견 의심스러운 행위처럼 보이지만 실제로는 안전하다고 증명된 정상 코드의 목록을 별도의 화이트리스트로 관리하는 경우, 행위 분류부(120)가 화이트리스트를 검색하고 그 결과 화이트리스트에 존재하는 경우에는 행위 기반 분류에 의한 결과보다 낮은 수준으로 처리하도록 구현할 수도 있다. 행위 분류부(120)에서의 분류 과 정은 뒤에서 자세히 살핀다.The action classifying unit 120 classifies the monitored action information into levels according to characteristics of the malicious code and normal code. The result of classification by level shows the first level behavior that is used only in normal code and the second level behavior which is mainly used in normal code but is sometimes used even in malicious code and the third level behavior which is mainly used in malicious code, , And a fourth level behavior used only in malicious code. In this embodiment, although classified into four levels, there is no intermediate level between the malicious code and the normal code, and conversely, the malicious code may be divided into a very detailed one. Also, when a list of normal codes that seem to be suspicious but actually proven to be safe is managed as a separate whitelist, when the behavior classifier 120 searches the whitelist and, as a result, It may be implemented to be processed at a level lower than the result of the classification. The category classification in the behavior classifying unit 120 will be described in detail later.

로그 기록 저장부(130)는 사용자 PC에서 발생하는 각종 행위 정보를 로그(log) 기록으로 저장한다. 실시예에 따라 행위를 발생시킨 모듈을 쓰레드(thread) 정보와 스택 역추적(stack back tracing) 등의 방법으로 식별하여 각 프로그램 내지 모듈(module)별로 관리하도록 구현할 수 있다. 이렇게 관리되는 행위 정보는 모듈이 나중에 악성 행위를 수행할 경우, 모듈에 의하여 수행된 모든 행위를 롤백(rollback)하는 데 사용된다.The log recorder 130 stores various kinds of behavior information generated in the user PC as a log record. According to the embodiment, the module generating the action can be implemented by managing each program or module by identifying the thread information and the stack back tracing method. This managed behavior information is used to roll back any actions performed by the module if the module later performs a malicious action.

행위 복원부(135)는 로그 기록 저장부(130)에 저장된 로그 기록을 바탕으로 하여, 이미 실행된 특정 모듈의 의심스러운 행위가 악성 행위임이 판명된 후 그 모듈에 의하여 수행된 모든 행위를 롤백 내지 복원한다.Based on the log record stored in the log record storage unit 130, the behavior restoration unit 135 restores all actions performed by the module after the suspicious action of the already executed specific module is found to be a malicious action, Restore.

격리 실행부(140)는 행위 분류부(120)에 의하여 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 제 3 수준 행위로 분류된 행위를 격리하여 실행한다. 실행된 행위가 실제 악성 코드에 의한 행위라고 판명되더라도, 그것은 격리 공간에서 실행된 것에 불과하므로 메인 시스템은 악성 코드로부터 이론상 완전하게 보호된다. 격리 실행부(140)가 수행하는 행위는 뒤에서 더 자세히 살핀다.The isolation execution unit 140 isolates and executes an action classified as a third level action that is mainly used in malicious code but is often used even in normal code by the action classifying unit 120. [ Even if an executed action proves to be an actual malicious code, the main system is completely theoretically protected from malicious code, since it is only executed in isolation. The action performed by the isolation execution unit 140 will be described later in more detail.

접근 대상 복사본 저장부(145)는 제 3 수준 행위를 수행하는 모듈이 시스템 파일 등 중요한 데이터에 접근하는 경우 그 파일의 복사본이 저장되는 공간이다. 격리 실행부(140)는 접근 대상 파일의 복사본을 리다이렉션 폴더(redirection folder) 등에 저장하고 의심스러운 행위가 복사본만으로 수행되도록 한다. 접근 대상 복사본 저장부(145)는 메인 시스템과 물리적 또는 논리적으로 분리되거나 가 상화 기술 등에 의하여 격리되는 공간으로 구현될 수 있다. 접근 대상 복사본 저장부(145)는 내부의 리다이렉션 폴더에 접근 대상을 저장할 수 있다. 접근 대상의 형태에 따라 리다이렉션 키, 리다이렉션 경로, 또는 IP 및 포트(port) 번호 등 다양한 데이터의 복사본가 저장될 수 있다.The access object copy storage unit 145 is a space in which a copy of the file is stored when a module performing a third level action accesses important data such as a system file. The isolation execution unit 140 stores a copy of the access target file in a redirection folder or the like, and causes the suspicious action to be performed only on the copy. The access target copy storage unit 145 may be implemented as a space physically or logically separated from the main system or isolated by a virtualization technique or the like. The access target copy storage unit 145 may store an access target in an internal redirection folder. A copy of various data such as a redirection key, a redirection path, or an IP and a port number may be stored according to the type of the access object.

화이트리스트 관리부(150)는 이러한 행위 기반 사전 대응 후 악성 코드 분석 시스템(170)의 샘플 분석을 통하여 안전한 프로그램을 화이트리스트 저장부(155)에 저장할 수 있도록 한다. 샘플 분석 결과에 따라 화이트리스트를 업데이트하도록 처리하는 것이다.The whitelist management unit 150 allows a safe program to be stored in the whitelist storage unit 155 through a sample analysis of the malicious code analysis system 170 after the action-based dictionary response. And the white list is updated in accordance with the result of the sample analysis.

화이트리스트 저장부(155)는 안전한 프로그램의 실행을 허용하기 위하여 그 목록을 화이트리스트로 저장한다.The whitelist storage unit 155 stores the list in a whitelist so as to allow execution of a secure program.

샘플 저장부(160)는 시스템의 취약점 정보 또는 의심스러운 행위를 수행하는 프로그램 내지 모듈의 샘플을 저장한다. 이러한 샘플은 악성 코드 분석 시스템(170) 등으로 전송될 수 있다.The sample storage unit 160 stores vulnerability information of the system or samples of a program or module that performs suspicious actions. Such a sample may be transmitted to the malicious code analysis system 170 or the like.

악성 코드 분석 시스템(170)은 화이트리스트에 등록되지 않은 프로그램의 샘플을 전송 받아 악성 코드인지 여부를 분석한다. 사용자 PC의 의뢰를 통하여 악성 코드 여부의 분석이 시작되며, 그 분석 결과는 사용자 PC로 피드백(feedback)된다. 악성 코드 분석 시스템(170)은 실시예에 따라 사용자 PC의 내부 또는 외부에 구현될 수 있다.The malicious code analysis system 170 receives a sample of the program not registered in the whitelist and analyzes whether or not the malicious code is malicious code. Through the request of the user PC, the analysis of the malicious code is started and the analysis result is fed back to the user PC. The malicious code analysis system 170 may be implemented inside or outside the user PC according to an embodiment.

정상 검증 코드 저장부(180)는 의심스러운 행위를 전혀 하지 않는 것으로 사전에 검증된 모듈(verified module)인 정상 검증 코드의 전부, 일부 또는 그 목록을 저장한다. 정상 검증 코드 저장부(180)에 저장되어 있는 코드는 오직 정상 코드만이 수행하는 제 1 수준의 행위만으로 구성된 안전한 프로그램으로 간주된다. 예컨대 정상 검증 코드 저장부(180)에는 오피스 프로그램, 운영체제 서비스, 워드 프로세서(word processor) 프로그램 등, 널리 알려진 소프트웨어로서 제 1 수준의 행위만을 수행하는 프로그램의 목록이 저장될 수 있다. 정상 검증 코드로 분류된 프로그램이 악성 코드가 가끔이라도 수행하는 행위를 실행하는 경우는 오직 해킹을 당한 경우뿐이다. 따라서 정상 검증 코드로 분류된 코드가 조금이라도 의심스러운 행위를 실행하는 경우에는, 다시 말해 제 1 수준이 아닌 제 2 수준 이상의 행위를 수행하는 경우에는, 격리 실행부(140)가 해당 프로그램을 격리 실행한다. 예컨대 악성 코드가 포함된 워드 프로세서 문서 파일, 인젝션(injection) 된 DLL 등이 이러한 경우에 해당할 수 있다. 격리 실행부(140)가 수행하는 행위는 뒤에서 더 자세히 살핀다.The normal verification code storage unit 180 stores all or part of the normal verification code, which is a verified module that does not have any suspicious behavior at all. The code stored in the normal verification code storage unit 180 is regarded as a secure program consisting of only the first level actions performed by only the normal code. For example, the normal verification code storage unit 180 may store a list of programs that perform only first-level behavior as well-known software such as an office program, an operating system service, a word processor program, and the like. If a program classified as a normal verification code executes an action that is sometimes performed by malicious code, it is only the case that it is hacked. Therefore, when the code classified by the normal verification code executes a little suspicious activity, that is, when performing the action of the second level or more other than the first level, the quarantine execution unit 140 executes the quarantine execution do. For example, a word processor document file containing malicious code, an injected DLL, and the like may correspond to such a case. The action performed by the isolation execution unit 140 will be described later in more detail.

도 2는 본 발명의 악성 코드 사전 대응 방법이 수행되는 과정을 도시한 흐름도이다.FIG. 2 is a flowchart illustrating a process in which a malicious code advance response method of the present invention is performed.

본 발명의 악성 코드 사전 대응 방법은 먼저 사용자 PC에 행위 모니터링 도구를 설치할 수 있다(S210). 그 후 사용자 PC에서 이루어지는 각종 행위 정보가 모니터링된다(S220).The malicious code advance response method of the present invention may first install an action monitoring tool in the user PC (S210). Thereafter, various pieces of action information performed in the user PC are monitored (S220).

모니터링이 진행되면서 악성 코드 및 정상 코드의 특성에 기반하여 수준별로 행위가 분류된다(S230). 본 실시예에서는 정상 코드의 행위로 분류되는 제 1 수준으로부터 악성 코드의 행위로 분류되는 제 4 수준까지 총 4개의 수준으로 분류하였지만, 중간 수준의 다양한 분류 및 처리가 가능하다. 가장 안전한 제 1 수준의 행위는 통상의 실행을 허용(S248)하도록 한다. 다소 의심스러우나 오판의 가능성을 배제할 수 없는 제 2 수준의 행위는 통상의 실행을 허용(S246)한 후 화이트리스트 존재 여부 판단(S250)을 거쳐 화이트 리스트 처리(S260)을 거치도록 한다. 상당히 의심스러우나 오판의 가능성을 배제할 수 없는 제 3 수준의 행위는 격리 공간에서 제한적으로 실행을 허용(S244)한 후 화이트리스트 존재 여부 판단(S250)을 거쳐 화이트 리스트 처리(260)을 거치도록 한다. 가장 의심스러운 제 4 수준의 행위는 실행 자체를 보류 또는 차단(S242)한 후 화이트리스트 존재 여부 판단(S250)을 거쳐 화이트 리스트 처리(260)을 거치도록 한다.As the monitoring progresses, the actions are classified according to the level of the malicious code and the normal code (S230). In the present embodiment, the first level classified as the normal code behavior to the fourth level classified as the malicious code behavior is classified into four levels, but various classification and processing at the middle level are possible. The most secure first level behavior allows normal execution (S248). The second level of action, which is somewhat suspicious but can not rule out the possibility of misjudging, permits normal execution (S246) and then white list processing (S260) is performed through the white list existence judgment (S250). A third level of action that is highly suspect but can not rule out the possibility of misjudging is limited to allow execution in the isolation space (S244) and then white list processing is performed (S250) . The most suspicious behavior of the fourth level is to suspend or block the execution itself (S242), to determine whether the whitelist exists (S250), and to pass through the whitelist process (260).

도 3은 수준별로 행위를 분류하여 처리하는 과정을 도시한 흐름도이다.FIG. 3 is a flowchart showing a process of sorting and processing an action by level.

먼저 악성 코드에서만 사용되는 행위인지 여부를 판단한다(S232). 악성 코드에서만 사용되는 행위인 경우(Y), 이것은 제 4 수준 행위이므로, 실행을 보류 또는 차단한다(S242). 악성 코드에서만 사용되는 행위는 아닌 경우(N), 다음 단계(S234)를 처리한다.First, it is determined whether the action is used only in malicious code (S232). (Y), this is a fourth level action, so execution is suspended or blocked (S242). If it is not an action that is used only in malicious code (N), the next step S234 is processed.

다음으로 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위인지 여부를 판단한다(S234). 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위인 경우(Y), 이것은 제 3 수준 행위이므로, 격리 공간에서 제한적으로 실행을 허용한다(S244). 격리 실행 과정은 뒤에서 자세히 살핀다. 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위는 아닌 경우(N), 다음 단계(S236)를 처리한다.Next, it is judged whether it is an action occasionally used in malicious code, but in normal code (S234). (Y), which is mainly used in malicious code but is occasionally used even in normal code. This is a third-level action, and thus allows limited execution in the isolation space (S244). The isolation process is reviewed in detail. If it is not an occasionally used action in the malicious code but is also used in the normal code (N), the next step S236 is performed.

다음으로 정상 코드에서 주로 사용되지만 악성 코드에서도 가끔 사용되는 행위인지 여부를 판단한다(S236). 정상 코드에서 주로 사용되지만 악성 코드에서도 가끔 사용되는 행위인 경우(Y), 이것은 제 2 수준 행위이므로, 일단 통상의 실행을 허용한다(S246). 정상 코드에서 주로 사용되지만 악성 코드에서도 가끔 사용되는 행위는 아닌 경우(N), 이것은 제 1 수준 행위이므로, 통상의 실행을 허용한다(S248).Next, it is determined whether the malicious code is used occasionally (S236) although it is mainly used in the normal code. If it is an action that is mainly used in normal code but is sometimes used even in malicious code (Y), this is a second level action, and therefore, normal execution is allowed once (S246). If it is not used occasionally in the malicious code (N), this is a first-level malicious code, so normal execution is allowed (S248).

본 실시예에서 사용된 제 1 수준 내지 제 4 수준의 행위의 특성을 조금 더 살펴 보면, 아래와 같이 정리할 수 있다.The behavior characteristics of the first to fourth levels used in the present embodiment can be summarized as follows.

제 1 수준 행위는 전혀 의심스럽지 않은 행위이므로, 일반적인 정상 코드와 동일하게 그대로 통상의 실행을 허용하도록 처리할 수 있다.Since the first-level action is not a question at all, it can be processed to allow normal execution as it is with normal normal code.

제 2 수준 행위는 다소 의심스러운 행위이므로 실행을 허용하되, 로그를 남기고 샘플을 수집하도록 처리할 수 있다. 제 2 수준 행위의 예시로는 워드 파일(확장자 doc, docx), 엑셀 파일(확장자 xls, xlsx), 파워포인트 파일(확장자 ppt, pptx) 등 오피스 파일(office file)에의 접근, 또는 메시지 후킹(message hooking) 등이 있다.Level 2 behavior is a somewhat suspicious activity, allowing it to run, but it can be processed to log and collect samples. Examples of second level behaviors include access to an office file, such as a Word file (extension doc, docx), an Excel file (extension xls, xlsx), a PowerPoint file (extension ppt, pptx) hooking).

제 3 수준 행위는 상당히 의심스러운 행위이므로, 실행 자체는 허용하되 의심 행위의 대상(target)을 리다이렉션(redirection)하여 격리 공간에서만 제한적으로 실행하면서 로그를 남기고 샘플을 수집하도록 처리할 수 있다. 악성 코드임이 의심되지만 오판의 가능성이 있기 때문에 메인 시스템에 대한 복구 가능성을 확보한 후 제한적으로만 실행을 허용하는 것이다. 제 3 수준 행위의 예시로는 자동 실 행 레지스트리(registry) 쓰기 등이 있다.Third-level behavior is a fairly suspicious activity, so you can redirect the target of the suspicious activity, allowing it to run itself, but restrict it to run in isolation space and process it to collect logs and collect samples. It is suspected that it is malicious code, but there is a possibility of misjudging, so it is possible to restore only the limited amount of time after securing the possibility of recovery to the main system. Examples of third-level behaviors include automatic run registry writes.

제 4 수준 행위는 악의적인 목적이 아닌 이상 필요하지 않은 행위이므로, 실행을 보류(pending) 또는 차단하며 로그를 남기고 샘플을 수집하도록 처리할 수 있다. 일반적인 경우 다른 처리 방법이 있음에도 불구하고 굳이 악의적인 행위를 수행하는 프로그램 내지 모듈은 악성 코드로 간주하여도 무방하기 때문이다. 제 4 수준 행위의 예시로는 svhost.exe 등의 서비스 프로그램에 의한 하드 디스크(hard disk) 또는 물리 메모리(physical memory)의 로 억세스(raw access), 사용자의 개입 없는 드라이버(driver) 설치, 또는 주소록 등 개인 정보의 외부 전송 등이 있다.Level 4 behavior is not necessary unless it is a malicious purpose, so you can pause or block execution, process the logs, and collect samples. In general, a program or module that performs malicious acts in spite of the existence of other processing methods may be regarded as malicious code. Examples of level 4 behaviors include raw access to a hard disk or physical memory by a service program such as svhost.exe, installation of a driver without user intervention, And external transmission of personal information such as.

이 중 제 3 수준 행위의 격리 실행은 아래와 같은 과정을 통하여 이루어진다. 먼저 의심 행위의 대상의 위치를 변경함으로써 해당 타겟을 리다이렉션한다. 파일의 경우, 별도의 위치에 리다이렉션 폴더를 생성하고, 대상의 경로(path)를 리다이렉션 폴더의 하위로 변경한다. 레지스트리의 경우, 별도의 위치에 리다이렉션 키(key)를 준비하고, 대상의 경로를 리다이렉션 키의 하위로 지정한다. 커널 오브젝트(kernel object)의 경우, 별도의 위치에 리다이렉션 경로를 생성하고, 대상의 경로를 리다이렉션 경로의 하위로 변경한다. 네트워크의 경우에도, 이와 유사하게 IP 및 포트(port) 번호가 재할당된다.The isolation of the third level behavior is accomplished through the following process. First, the target is redirected by changing the location of the subject of the suspicious activity. For files, create a redirection folder in a separate location and change the destination path to a subdirectory of the redirection folder. In the case of the registry, prepare a redirection key at a separate location, and designate the path of the destination as a subordinate of the redirection key. For a kernel object, create a redirection path in a separate location, and change the destination path to a subordinate of the redirection path. In the case of a network, IP and port numbers are similarly reallocated.

이 때 제 3 수준 행위로 분류된 의심스러운 행위가 시스템 파일(system file) 등 보안 상 중요한 데이터에 접근하는 경우, 이 파일을 접근 대상 복사본 저장부(145)의 리다이렉션 폴더 등의 하위 또는 내부에 복사하여 격리 공간을 생성한 다. 격리 실행부(140)는 의심스러운 행위가 격리 공간 내의 복사본을 열고 실행하도록 그 실행 환경을 제한한다. 이에 따라 원래 접근 대상인 메인 시스템 내의 데이터는 열리지도, 실행되지도 않으므로 안전하게 보호된다. 이러한 방법으로 의심스러운 행위의 시스템의 자원에 대한 접근을 방어하여 중요한 데이터의 유출 가능성을 줄일 수 있다.At this time, when a suspicious activity classified as a third-level action accesses data important for security such as a system file, it copies this file to the subordinate or inside of the redirection folder of the access destination copy storage unit 145 To create isolation space. The isolation execution unit 140 limits the execution environment so that the suspicious action opens and executes the copy in the isolation space. As a result, the data in the main system, which is the original access target, is not protected from being opened or executed. In this way, it is possible to reduce the possibility of leakage of important data by defending the system's access to suspicious activity.

격리 실행부(140)는 제 3 수준 행위로 분류된 의심스러운 행위를 수행하는 모듈이 실행 파일(확장자 exe 등)이 아닐 경우, 실행에 사용되는 연동 프로그램을 시스템과 격리하여 실행하도록 구현될 수 있다. 예컨대 의심스러운 행위를 하는 주체가 dll 파일인 경우 연동되는 rundll을, 액티브 X(Active X) 파일인 경우 해당 연동 프로그램 및 웹 브라우저를, 오피스 파일(doc, xls, ppt 등)인 경우 연동되는 워드(doc), 엑셀(xls), 파워포인트(ppt) 등 오피스 프로그램을 격리 공간으로 불러 오고, 해당 연동 프로그램에 해당 파일을 로드하여 실행하도록 할 수 있다. 배치 파일(batch file), 레지스트리 파일(registry file), 각종 스크립트 파일(script file)의 경우도 해당 엔진 등을 사용하여 유사한 방법으로 검증할 수 있다.The isolation execution unit 140 may be implemented to isolate an interworking program used for execution from the system when the module performing the suspicious activity classified as the third level action is not an execution file (such as an extension exe) . For example, if the subject who is suspicious is a dll file, the linked rundll is used. If the file is an ActiveX (Active X) file, the linked program and the web browser are used. If the file is an office file (doc, xls, ppt, doc), Excel (xls), and PowerPoint (ppt) into an isolated space, and load the corresponding file in the interlocking program. A batch file, a registry file, and a script file can be verified in a similar manner using a corresponding engine.

한편, 정상 검증 코드로 분류된 코드가 조금이라도 의심스러운 행위를 실행하는 경우에는, 앞서 설명한 바와 같이 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위로 처리하여, 해당 프로그램을 격리 실행한다(S244). 이러한 경우, 해당 프로그램의 행위 정보 기록을 바탕으로 악성 행위를 수행한 코드를 찾고 그것을 내부 또는 외부의 분석 시스템으로 보고하도록 구현할 수 있다. 이러한 행위 정보에는 해당 프로그램이 열기(open)를 한 파일, 불러오기(load)를 한 모듈 등이 기록될 수 있다. 이러한 기록에 기반하여 악성 행위를 수행한 코드를 찾아내는 것이다.On the other hand, when the code classified by the normal verification code executes a little suspicious activity, the program is mainly executed in the malicious code but is occasionally used in the normal code as described above, and executes the program in isolation (S244 ). In this case, based on the program's action information record, it is possible to find the code that performed the malicious action and to report it to the internal or external analysis system. Such action information may include a file in which the program is opened, a module in which the program is loaded, and the like. Based on these records, it is to find the code that performed the malicious act.

도 4는 화이트리스트에 존재하지 않는 경우의 처리 과정을 도시한 흐름도이다.FIG. 4 is a flowchart showing a processing procedure when it is not present in the whitelist.

먼저 추후 롤백에 사용될 로그 기록을 남기고(S262), 악성 코드 여부 분석에 사용할 샘플을 저장한다(S264). 그리고 샘플을 내부 또는 외부의 악성 코드 분석 시스템에 전송하여 악성 코드 여부를 분석하도록 한다(S266). 분석 결과, 안전한 프로그램으로 판단된 경우 화이트리스트를 업데이트한다(S268).First, a log record to be used for a later rollback is left (S262), and a sample to be used for malicious code analysis is stored (S264). Then, the sample is transmitted to an internal or external malicious code analysis system to analyze malicious code (S266). If it is determined as a safe program, the white list is updated (S268).

본 실시형태의 모듈, 기능 블록들 또는 수단들은 전자 회로, 집적 회로, ASIC (Application Specific Integrated Circuit) 등 공지된 다양한 소자들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수 있다.The modules, functional blocks or means of the present embodiment may be implemented by various known devices such as an electronic circuit, an integrated circuit, and an ASIC (Application Specific Integrated Circuit), and they may be implemented separately or two or more may be integrated into one .

이상과 같이 본 발명의 이해를 위하여 그 실시예를 기술하였으나, 당업자라면 알 수 있듯이, 본 발명은 본 명세서에서 기술된 특정 실시예에 한정되는 것이 아니라, 본 발명의 범주를 벗어나지 않는 범위 내에서 다양하게 변형, 변경 및 대체될 수 있다. 예를 들어, 문자 대신 기타 LCD 등 디스플레이에 의해 표시될 수 있는 그림, 영상 등에도 본 발명의 기술이 적용될 수 있다. 따라서, 본 발명의 진정한 사상 및 범주에 속하는 모든 변형 및 변경을 특허청구범위에 의하여 모두 포괄하고자 한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be construed as limited to the specific embodiments set forth herein; And can be replaced, modified and replaced. For example, the technique of the present invention can be applied to pictures, images, etc., which can be displayed by a display such as other LCDs instead of characters. Accordingly, it is intended to cover in the appended claims all such changes and modifications that fall within the true spirit and scope of the invention.

도 1은 본 발명의 악성 코드 사전 대응 장치의 개략적인 구성을 도시한 블록도이다.1 is a block diagram showing a schematic configuration of a malicious code proactive device of the present invention.

도 2는 본 발명의 악성 코드 사전 대응 방법이 수행되는 과정을 도시한 흐름도이다.FIG. 2 is a flowchart illustrating a process in which a malicious code advance response method of the present invention is performed.

도 3은 수준별로 행위를 분류하여 처리하는 과정을 도시한 흐름도이다.FIG. 3 is a flowchart showing a process of sorting and processing an action by level.

도 4는 화이트리스트에 존재하지 않는 경우의 처리 과정을 도시한 흐름도이다.FIG. 4 is a flowchart showing a processing procedure when it is not present in the whitelist.

Claims (22)

시스템에서 실행되는 프로그램의 행위를 모니터링하는 행위 모니터링부와,An activity monitoring unit for monitoring an activity of a program executed in the system, 악성 코드 및 정상 코드가 실행될 때의 행위에 기반하여 상기 프로그램의 행위를 수준별로 분류하는 행위 분류부, 및A behavior classifying unit classifying the behavior of the program according to the level based on the behavior when the malicious code and the normal code are executed, 상기 수준별 분류 결과 상기 프로그램의 행위가 정상 코드보다 악성 코드에서 상대적으로 많이 사용되는 경우 상기 프로그램의 행위를 상기 시스템과 격리하여 실행하는 격리 실행부An isolation execution unit for isolating an action of the program from the system when the action of the program is relatively more used in malicious code than a normal code, 를 포함하는 악성 코드 사전 대응 장치.A malicious code advance device. 제 1항에 있어서,The method according to claim 1, 상기 프로그램의 행위 정보를 로그 기록으로 저장하는 로그 기록 저장부A log recorder for storing the behavior information of the program as a log record, 를 더 포함하는 악성 코드 사전 대응 장치.Further comprising: a malicious code precompliant device. 제 2항에 있어서,3. The method of claim 2, 상기 프로그램이 악성 행위를 수행할 경우 상기 로그 기록에 기반하여 상기 악성 행위 이전의 상태를 복원하는 행위 복원부When the program performs a malicious action, restoring the malicious behavior state based on the log record, 를 더 포함하는 악성 코드 사전 대응 장치.Further comprising: a malicious code precompliant device. 제 1항에 있어서,The method according to claim 1, 안전한 프로그램의 목록을 화이트리스트로 저장하는 화이트리스트 저장부A white list storage unit for storing a list of safe programs in a white list; 를 더 포함하는 악성 코드 사전 대응 장치.Further comprising: a malicious code precompliant device. 제 4항에 있어서,5. The method of claim 4, 상기 프로그램의 샘플을 저장하는 샘플 저장부와,A sample storage unit for storing a sample of the program; 상기 화이트리스트에 등록되지 않은 프로그램의 샘플을 전송 받아 악성 코드인지 여부를 분석하는 악성 코드 분석 시스템, 및A malicious code analysis system for analyzing whether or not a sample of a program not registered in the whitelist is malicious code, and 상기 악성 코드 분석 시스템의 분석 결과를 반영하여 상기 화이트리스트를 업데이트하는 화이트리스트 관리부A white list management unit for updating the white list by reflecting an analysis result of the malicious code analysis system, 를 더 포함하는 악성 코드 사전 대응 장치.Further comprising: a malicious code precompliant device. 제 1항에 있어서,The method according to claim 1, 상기 격리 실행부에서 실행되는 행위가 접근하는 데이터의 복사본을 상기 시스템과 격리하여 저장하는 접근 대상 복사본 저장부An access destination copy storage unit which stores a copy of data accessed by an action executed by the isolation execution unit in a state isolated from the system, 를 더 포함하는 악성 코드 사전 대응 장치.Further comprising: a malicious code precompliant device. 제 1항에 있어서,The method according to claim 1, 상기 수준별 분류 결과는, 정상 코드에서만 사용되는 제 1 수준 행위와, 악성 코드보다 정상 코드에서 상대적으로 많이 사용되는 제 2 수준 행위와, 정상 코드보다 악성 코드에서 상대적으로 많이 사용되는 제 3 수준 행위, 및 악성 코드에서만 사용되는 제 4 수준 행위 중 어느 하나 이상을 포함하는The result of the classification by level includes a first level action used only in the normal code, a second level action used relatively more in the normal code than the malicious code, a third level action used relatively more in the malicious code than the normal code, And a fourth level behavior used only in malicious code 악성 코드 사전 대응 장치.Malicious code proactive device. 제 7항에 있어서,8. The method of claim 7, 상기 프로그램의 행위가 상기 제 1 수준 행위 및 상기 제 2 수준 행위인 경우 상기 프로그램의 실행을 허용하고, 상기 프로그램의 행위가 상기 제 4 수준 행위인 경우 상기 프로그램의 실행을 보류 또는 차단하는 제어부A control unit that permits the execution of the program when the action of the program is the first level action and the second level action and suspends or blocks the execution of the program when the action of the program is the fourth level action; 를 더 포함하는 악성 코드 사전 대응 장치.Further comprising: a malicious code precompliant device. 제 1항에 있어서,The method according to claim 1, 상기 격리 실행부는 상기 분류된 행위의 실행에 사용되는 연동 프로그램을 상기 시스템과 격리하여 실행하는Wherein the isolation execution unit isolates and executes an interlocking program used for executing the classified action from the system 악성 코드 사전 대응 장치.Malicious code proactive device. 제 1항에 있어서,The method according to claim 1, 정상 검증 코드를 저장하는 정상 검증 코드 저장부를 더 포함하고,And a normal verification code storage unit for storing a normal verification code, 상기 격리 실행부는 상기 정상 검증 코드를 갖는 프로그램이 악성 코드에서 사용되는 행위를 실행하고자할 경우에 상기 실행하고자 하는 행위를 상기 시스템과 격리하여 실행하거나 차단하는Wherein the quarantine execution unit isolates and executes the action to be executed from the system when the program having the normal verification code desires to execute an action used in the malicious code 악성 코드 사전 대응 장치.Malicious code proactive device. 시스템에서 실행되는 프로그램의 행위를 모니터링하는 장치의 악성 코드 사전 대응 방법으로서,A malicious code advance response method of a device for monitoring an action of a program executed in a system, 상기 시스템에서 실행되는 프로그램의 행위를 모니터링하고,Monitoring the behavior of a program running on the system, 악성 코드 및 정상 코드가 실행될 때의 행위 특성에 기반하여 상기 프로그램의 행위를 수준별로 분류하며,Classifying the behavior of the program according to the level of malicious code and the behavior characteristic when the normal code is executed, 상기 수준별 분류 결과 상기 프로그램의 행위가 정상 코드보다 악성 코드에서 상대적으로 많이 사용되는 행위인 경우 상기 프로그램의 행위를 상기 시스템과 격리하여 실행하는And if the behavior of the program is an action that is relatively more frequently used in the malicious code than the normal code, the behavior of the program is isolated from the system and executed 악성 코드 사전 대응 방법.How to respond to malicious code. 제 11항에 있어서,12. The method of claim 11, 상기 프로그램의 행위 정보를 로그 기록으로 저장하는Storing the behavior information of the program as a log record 악성 코드 사전 대응 방법.How to respond to malicious code. 제 12항에 있어서,13. The method of claim 12, 상기 프로그램이 악성 행위를 수행할 경우 상기 로그 기록에 기반하여 상기 악성 행위 이전의 상태를 복원하는When the program performs a malicious action, restores the pre-malicious behavior based on the log record 악성 코드 사전 대응 방법.How to respond to malicious code. 제 11항에 있어서,12. The method of claim 11, 안전한 프로그램의 목록을 화이트리스트로 저장하는To whitelist a list of safe programs 악성 코드 사전 대응 방법.How to respond to malicious code. 제 14항에 있어서,15. The method of claim 14, 상기 프로그램의 샘플을 저장하고,Storing a sample of the program, 상기 화이트리스트에 등록되지 않은 프로그램의 샘플을 전송 받아 악성 코드인지 여부를 분석하며,A sample of a program not registered in the whitelist is received and analyzed to determine whether it is a malicious code, 상기 분석 결과를 반영하여 상기 화이트리스트를 업데이트하는The white list is updated by reflecting the analysis result 악성 코드 사전 대응 방법.How to respond to malicious code. 제 11항에 있어서,12. The method of claim 11, 상기 격리하여 실행되는 행위가 접근하는 데이터의 복사본을 상기 시스템과 격리하여 저장하는A copy of the data accessed by the isolated and executed action is isolated from the system and stored 악성 코드 사전 대응 방법.How to respond to malicious code. 제 11항에 있어서,12. The method of claim 11, 상기 수준별 분류 결과는, 정상 코드에서만 사용되는 제 1 수준 행위와, 악성 코드보다 정상 코드에서 상대적으로 많이 사용되는 제 2 수준 행위와, 정상 코드보다 악성 코드에서 상대적으로 많이 사용되는 제 3 수준 행위, 및 악성 코드에서만 사용되는 제 4 수준 행위 중 어느 하나 이상을 포함하는The result of the classification by level includes a first level action used only in the normal code, a second level action used relatively more in the normal code than the malicious code, a third level action used relatively more in the malicious code than the normal code, And a fourth level behavior used only in malicious code 악성 코드 사전 대응 방법.How to respond to malicious code. 제 17항에 있어서,18. The method of claim 17, 상기 프로그램의 행위가 상기 제 1 수준 행위 및 상기 제 2 수준 행위인 경우 상기 프로그램의 실행을 허용하고, 상기 프로그램의 행위가 상기 제 4 수준 행위인 경우 상기 프로그램의 실행을 보류 또는 차단하는Allowing execution of the program when the behavior of the program is the first level behavior and the second level behavior and suspending or blocking execution of the program if the behavior of the program is the fourth level behavior 악성 코드 사전 대응 방법.How to respond to malicious code. 제 11항에 있어서,12. The method of claim 11, 상기 분류된 행위의 실행에 사용되는 연동 프로그램을 상기 시스템과 격리하여 실행하는And executing an interlocking program used for executing the classified action from the system 악성 코드 사전 대응 방법.How to respond to malicious code. 제 11항에 있어서,12. The method of claim 11, 기 정의된 정상 검증 코드를 갖는 프로그램이 악성 코드에서 동작하는 행위를 실행할 경우에 상기 프로그램의 실행하고자 하는 행위를 상기 시스템과 격리하여 실행하거나 차단하는When a program having a previously defined normal verification code executes an action that operates in malicious code, isolates the action to be executed by the program from the system and executes or blocks the program 악성 코드 사전 대응 방법.How to respond to malicious code. 제 20항에 있어서,21. The method of claim 20, 상기 정상 검증 코드를 갖는 프로그램이 상기 악성 코드에서 동작하는 행위를 실행할 경우 상기 프로그램의 행위 정보를 조사하고,Wherein when the program having the normal verification code executes an action that operates in the malicious code, 상기 조사 결과로부터 악성 행위를 수행한 코드를 검출하며,Detecting a malicious code executed from the result of the investigation, 상기 검출된 코드의 샘플을 분석 시스템으로 보고하는Reporting the sample of the detected code to the analysis system 악성 코드 사전 대응 방법.How to respond to malicious code. 제 11항 내지 제 21항 중 어느 한 항에 기재된 방법을 실행하기 위한 프로그램이 기록된A program for executing the method according to any one of claims 11 to 21 is recorded 컴퓨터로 읽을 수 있는 기록매체.A computer readable recording medium.
KR1020090008410A 2009-02-03 2009-02-03 Malicious code prevention apparatus and method using level classification of suspicious behavior and isolated execution, and computer-readable medium storing program for method thereof KR101031786B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090008410A KR101031786B1 (en) 2009-02-03 2009-02-03 Malicious code prevention apparatus and method using level classification of suspicious behavior and isolated execution, and computer-readable medium storing program for method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090008410A KR101031786B1 (en) 2009-02-03 2009-02-03 Malicious code prevention apparatus and method using level classification of suspicious behavior and isolated execution, and computer-readable medium storing program for method thereof

Publications (2)

Publication Number Publication Date
KR20100089245A KR20100089245A (en) 2010-08-12
KR101031786B1 true KR101031786B1 (en) 2011-04-29

Family

ID=42755160

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090008410A KR101031786B1 (en) 2009-02-03 2009-02-03 Malicious code prevention apparatus and method using level classification of suspicious behavior and isolated execution, and computer-readable medium storing program for method thereof

Country Status (1)

Country Link
KR (1) KR101031786B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279707A (en) * 2013-06-08 2013-09-04 北京奇虎科技有限公司 Method, device and system for actively defending against malicious programs
KR101427566B1 (en) 2013-02-05 2014-09-23 주식회사 잉카인터넷 system and method for reducing the danger of misdiagnosis

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101463873B1 (en) * 2011-09-30 2014-11-20 주식회사 엔피코어 Method and apparatus for preventing data loss
KR101899589B1 (en) 2017-03-29 2018-09-17 최승환 System and method for authentication about safety software
KR102017016B1 (en) * 2017-08-22 2019-09-06 주식회사 하우리 Apparatus and method for malware
KR101880686B1 (en) * 2018-02-28 2018-07-20 에스지에이솔루션즈 주식회사 A malware code detecting system based on AI(Artificial Intelligence) deep learning
WO2020189823A1 (en) * 2019-03-20 2020-09-24 주식회사 하우리 Device and method for dealing with malicious programs by using technique of checking validity of redirection file
KR102409507B1 (en) 2020-06-04 2022-06-16 류영근 Booster device and vehicle with the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060051379A (en) * 2004-10-29 2006-05-19 마이크로소프트 코포레이션 Efficient white listing of user-modifiable files
KR20070081362A (en) * 2006-02-10 2007-08-16 삼성전자주식회사 Apparatus and method for using information of malicious application's behavior across devices
JP2007334536A (en) 2006-06-14 2007-12-27 Securebrain Corp Behavior analysis system for malware
KR20080047261A (en) * 2006-11-23 2008-05-28 한국전자통신연구원 Anomaly malicious code detection method using process behavior prediction technique

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060051379A (en) * 2004-10-29 2006-05-19 마이크로소프트 코포레이션 Efficient white listing of user-modifiable files
KR20070081362A (en) * 2006-02-10 2007-08-16 삼성전자주식회사 Apparatus and method for using information of malicious application's behavior across devices
JP2007334536A (en) 2006-06-14 2007-12-27 Securebrain Corp Behavior analysis system for malware
KR20080047261A (en) * 2006-11-23 2008-05-28 한국전자통신연구원 Anomaly malicious code detection method using process behavior prediction technique

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101427566B1 (en) 2013-02-05 2014-09-23 주식회사 잉카인터넷 system and method for reducing the danger of misdiagnosis
CN103279707A (en) * 2013-06-08 2013-09-04 北京奇虎科技有限公司 Method, device and system for actively defending against malicious programs
CN103279707B (en) * 2013-06-08 2016-07-13 北京奇虎科技有限公司 A kind of for the method for Initiative Defense rogue program, equipment

Also Published As

Publication number Publication date
KR20100089245A (en) 2010-08-12

Similar Documents

Publication Publication Date Title
US12019734B2 (en) Methods and apparatus for control and detection of malicious content using a sandbox environment
CN113661693B (en) Detecting sensitive data exposure via log
KR101031786B1 (en) Malicious code prevention apparatus and method using level classification of suspicious behavior and isolated execution, and computer-readable medium storing program for method thereof
US8065728B2 (en) Malware prevention system monitoring kernel events
US8434151B1 (en) Detecting malicious software
US9372989B2 (en) Robust malware detector
JP6909770B2 (en) Systems and methods for creating antivirus records
WO2014103115A1 (en) Illicit intrusion sensing device, illicit intrusion sensing method, illicit intrusion sensing program, and recording medium
RU2708355C1 (en) Method of detecting malicious files that counteract analysis in isolated environment
Kardile Crypto ransomware analysis and detection using process monitor
KR100745640B1 (en) Method for protecting kernel memory and apparatus thereof
KR100745639B1 (en) Method for protecting file system and registry and apparatus thereof
EP2306356B1 (en) Asynchronous processing of events for malware detection
KR100666562B1 (en) Method for protecting kernel driver and process
Supriya et al. Malware detection techniques: a survey
US9075991B1 (en) Looting detection and remediation
Xie et al. Lightweight examination of dll environments in virtual machines to detect malware
Helmer et al. Anomalous intrusion detection system for hostile Java applets
Yan et al. MOSKG: countering kernel rootkits with a secure paging mechanism
WO2008079899A1 (en) Anti-virus signature footprint
Gielen Prioritizing computer forensics using triage techniques
JP7544738B2 (en) Detecting Sensitive Data Exposure Through Logging
Gilchrist Solitary Confinement: Using Artificial Cells to Protect Computer Systems
Jayarathna et al. Hypervisor-based Security Architecture to Protect Web Applications.
Saleh Malware detection model based on classifying system calls and code attributes: a proof of concept

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: 20140421

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150421

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160421

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170421

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180423

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190422

Year of fee payment: 9