KR20120126665A - Malicious program blocking apparatus and method - Google Patents

Malicious program blocking apparatus and method Download PDF

Info

Publication number
KR20120126665A
KR20120126665A KR1020110044652A KR20110044652A KR20120126665A KR 20120126665 A KR20120126665 A KR 20120126665A KR 1020110044652 A KR1020110044652 A KR 1020110044652A KR 20110044652 A KR20110044652 A KR 20110044652A KR 20120126665 A KR20120126665 A KR 20120126665A
Authority
KR
South Korea
Prior art keywords
termination
thread
request
unit
operating system
Prior art date
Application number
KR1020110044652A
Other languages
Korean (ko)
Other versions
KR101217677B1 (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 KR1020110044652A priority Critical patent/KR101217677B1/en
Publication of KR20120126665A publication Critical patent/KR20120126665A/en
Application granted granted Critical
Publication of KR101217677B1 publication Critical patent/KR101217677B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)

Abstract

PURPOSE: A malicious program blocking device and a method thereof are provided to protect a system from malicious programs forcibly terminating a protection target process by interrupting a call of a hooking handler for preventing the forced termination. CONSTITUTION: When a termination of a process in execution is requested, a termination permission determining unit(211) confirms a protection target process. If the process is the protection target process, the termination permission determining unit determines whether the request for the termination is permitted or not. If the request is permitted, the termination permission determining unit registers the process in a termination permission list. A termination monitoring thread generating unit(212) generates a termination monitoring thread for the process. When an OS(Operating System) calls a termination notice for the thread, an attack detection unit(213) confirms the thread having the called notice. [Reference numerals] (211) Termination permission determining unit; (212) Termination monitoring thread generating unit; (213) Attack detection unit; (214) Termination blocking unit; (215) Scheduling stopping unit; (216) APC removal unit; (217) Hooking information removal unit

Description

악성 프로그램 방어 장치 및 방법{MALICIOUS PROGRAM BLOCKING APPARATUS AND METHOD}Malware defense device and method {MALICIOUS PROGRAM BLOCKING APPARATUS AND METHOD}

악성 프로그램 방어 장치 및 방법이 개시된다. 특히, 본 발명의 실시예들은 보호 대상 프로그램을 강제 종료 시키는 악성 프로그램들로부터 시스템을 방어하기 위한 기술에 대한 것이다. An apparatus and method for defending against malicious programs is disclosed. In particular, embodiments of the present invention are directed to a technique for defending a system from malicious programs forcibly terminating a protected program.

근래의 악성 프로그램들은 보안 프로그램의 프로세스를 강제 종료시키기 위해서 다양한 시도를 하고 있다.Recently, malicious programs make various attempts to kill the security program's process.

이와 관련하여 보안 프로그램들은 운영체제(Operation System)의 특정 함수 내에서 자체 보호 기능의 실행 명령을 후킹(hooking)함으로써, 악성 프로그램들로부터 보호 대상 프로세스의 강제 종료를 방어하고 있다.In this regard, security programs protect the forced termination of a protected process from malicious programs by hooking execution instructions of self-protection functions within a specific function of an operating system.

다시 말해서, 상기 보안 프로그램들은 상기 자체 보호 기능을 위한 후킹을 통해 악성 프로그램에 의해 강제 종료되는 프로세스를 감지하고, 종료가 허용되지 않은 프로세스가 강제 종료되는 경우, 상기 운영체제에 종료 불가를 통보함으로써, 상기 보호 대상 프로세스의 강제 종료를 방지하고 있다.In other words, the security programs detect a process forcibly terminated by a malicious program through hooking for the self-protection function, and notify the operating system that the operating system cannot terminate when the process that is not allowed to terminate is forcibly terminated. This prevents forced termination of the protected process.

하지만, 최근에 등장하고 있는 악성 프로그램들은 상기 자체 보호 기능을 위한 후킹 핸들러가 호출되기 전에 상기 보호 대상 프로세스가 강제 종료되도록 하기 위해 상기 후킹 핸들러가 호출되지 않도록 운영체제의 실행 명령을 구성하는 기법을 사용하고 있다.Recently, however, malicious programs use a technique of constructing an operating command of an operating system such that the hooking handler is not called to force the protected process to be terminated before the hooking handler for the self-protection function is called. have.

이러한 악성 프로그램들은 상기 자체 보호 기능이 실행되기 전에 상기 보호 대상 프로세스를 강제 종료시키기 때문에 실질적으로 상기 악성 프로그램들로부터 상기 보호 대상 프로세스를 보호하는 것이 매우 어려운 실정이다.Since these malicious programs forcibly terminate the protected process before the self-protection function is executed, it is very difficult to substantially protect the protected process from the malicious programs.

따라서, 이러한 악성 프로그램들로부터 보호 대상 프로세스의 강제 종료를 방어할 수 있는 기법에 대한 연구가 필요하다.Therefore, there is a need for a study on a technique that can protect against forced termination of a protected process from such malicious programs.

본 발명의 실시예들은 운영체제의 프로세스 종료 함수의 실행명령을 후킹(hooking)하여 악성 프로그램들에 의한 보호 대상 프로세스의 강제 종료를 방지하되, 상기 보호 대상 프로세스에 대한 소정의 종료 감시 스레드(thread)를 생성한 후 상기 종료 감시 스레드에 대한 종료 요청이 있는 경우, 상기 보호 대상 프로세스가 강제 종료 방지를 위한 후킹 핸들러에 의해 종료가 허용된 프로세스인 것으로 판단된 경우에만 프로세스 종료를 허용함으로써, 상기 강제 종료 방지를 위한 후킹 핸들러의 호출을 방해하여 상기 보호 대상 프로세스를 강제 종료 시키는 악성 프로그램들로부터 시스템을 보호할 수 있도록 한다.Embodiments of the present invention hook a command to execute a process termination function of an operating system to prevent forced termination of a protected process by malicious programs, and to terminate a predetermined termination monitoring thread for the protected process. If there is a termination request for the termination monitoring thread after creation, the process termination is allowed by allowing the process termination only when it is determined that the protected target process is a process allowed to terminate by the hooking handler for preventing termination. It prevents the hooking handler from calling and protects the system from malicious programs forcibly terminating the protected process.

본 발명의 일실시예에 따른 악성 프로그램 방어 장치는 실행 중인 프로세스에 대해 종료가 요청된 경우, 상기 프로세스가 보호 대상 프로세스인지 여부를 확인하고, 상기 프로세스가 보호 대상 프로세스인 경우, 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단하여 상기 종료 요청이 허용된 종료 요청인 경우, 상기 프로세스를 종료 허용 목록에 등록하는 종료 허용 여부 판단부, 상기 프로세스에 대해 적어도 하나의 종료 감시 스레드를 생성하는 종료 감시 스레드 생성부, 운영체제에 의해 스레드에 대한 종료 알림이 호출된 경우, 상기 종료 알림이 호출된 스레드가 상기 적어도 하나의 종료 감시 스레드인지 여부를 확인하고, 상기 종료 알림이 호출된 스레드가 상기 적어도 하나의 종료 감시 스레드인 경우, 상기 프로세스가 상기 종료 허용 목록에 등록된 프로세스인지 여부를 판단하는 공격 감지 검출부 및 상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 프로세스인 경우, 상기 프로세스를 구성하는 적어도 하나의 스레드에 대한 종료를 차단하는 종료 차단부를 포함한다.The malicious program defense apparatus according to an embodiment of the present invention checks whether the process is a protected process when a termination is requested for a running process, and terminates the process if the process is a protected process. Determining whether the request is an allowed termination request, and when the termination request is an allowed termination request, an termination allowance determining unit that registers the process in the termination allow list, and generating at least one termination monitoring thread for the process; When the termination notification thread generation unit, the termination notification for the thread is called by the operating system, it is determined whether the thread called the termination notification is the at least one termination monitoring thread, and the thread called the termination notification is the at least In the case of one shutdown watchdog thread, the process Attack detection detection unit for determining whether or not the process is registered in the termination allow list and termination block for blocking termination of at least one thread constituting the process, if the process is not registered in the termination allow list Include.

본 발명의 일실시예에 따른 악성 프로그램 방어 방법은 실행 중인 프로세스에 대해 종료가 요청된 경우, 상기 프로세스가 보호 대상 프로세스인지 여부를 확인하는 단계, 상기 프로세스가 보호 대상 프로세스인 경우, 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단하는 단계, 상기 종료 요청이 허용된 종료 요청인 경우, 상기 프로세스를 종료 허용 목록에 등록하는 단계, 상기 프로세스에 대해 적어도 하나의 종료 감시 스레드를 생성하는 단계, 운영체제에 의해 스레드에 대한 종료 알림이 호출된 경우, 상기 종료 알림이 호출된 스레드가 상기 적어도 하나의 종료 감시 스레드인지 여부를 확인하는 단계, 상기 종료 알림이 호출된 스레드가 상기 적어도 하나의 종료 감시 스레드인 경우, 상기 프로세스가 상기 종료 허용 목록에 등록된 프로세스인지 여부를 판단하는 단계 및 상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 프로세스인 경우, 상기 프로세스를 구성하는 적어도 하나의 스레드에 대한 종료를 차단하는 단계를 포함한다.In the malicious program defense method according to an embodiment of the present invention, if termination is requested for a running process, checking whether the process is a protected process; if the process is a protected process, Determining whether the termination request is an allowed termination request, if the termination request is an allowed termination request, registering the process on a termination whitelist, and creating at least one termination watchdog thread for the process Checking whether the thread in which the termination notification is called is the at least one termination monitoring thread when the termination notification for a thread is called by an operating system; and monitoring the at least one termination by the thread in which the termination notification is called. If it is a thread, the process is If the process steps and the process of determining whether or not the process has not been registered in the whitelist end, and a step of blocking the end of at least one of the threads constituting the process.

본 발명의 실시예들은 운영체제의 프로세스 종료 함수의 실행명령을 후킹(hooking)하여 악성 프로그램들에 의한 보호 대상 프로세스의 강제 종료를 방지하되, 상기 보호 대상 프로세스에 대한 소정의 종료 감시 스레드(thread)를 생성한 후 상기 종료 감시 스레드에 대한 종료 요청이 있는 경우, 상기 보호 대상 프로세스가 강제 종료 방지를 위한 후킹 핸들러에 의해 종료가 허용된 프로세스인 것으로 판단된 경우에만 프로세스 종료를 허용함으로써, 상기 강제 종료 방지를 위한 후킹 핸들러의 호출을 방해하여 상기 보호 대상 프로세스를 강제 종료 시키는 악성 프로그램들로부터 시스템을 보호할 수 있다.Embodiments of the present invention hook a command to execute the process termination function of the operating system to prevent forced termination of a protected process by malicious programs, and to terminate a predetermined termination monitoring thread for the protected process. If there is a termination request for the termination monitoring thread after creation, the process termination is allowed by allowing the process termination only when it is determined that the protected target process is a process allowed to terminate by the hooking handler for preventing termination. By interfering with the call of the hooking handler for to protect the system from malicious programs forcibly terminating the protected process.

도 1은 운영체제의 프로세스 종료 함수의 실행 명령 일부를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 악성 프로그램 방어 장치의 구조를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 종료 감시 스레드 생성부의 동작을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따른 APC 제거부의 동작을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 악성 프로그램 방어 방법을 도시한 순서도이다.
1 is a diagram illustrating a part of an execution command of a process termination function of an operating system.
2 is a diagram showing the structure of a malicious program defense apparatus according to an embodiment of the present invention.
3 is a view for explaining the operation of the termination monitoring thread generating unit according to an embodiment of the present invention.
4 is a view for explaining the operation of the APC removal unit according to an embodiment of the present invention.
5 is a flowchart illustrating a malicious program defense method according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.

이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 운영체제의 프로세스 종료 함수의 실행 명령 일부를 도시한 도면이다.1 is a diagram illustrating a part of an execution command of a process termination function of an operating system.

전술한 바와 같이, 보안 프로그램들은 악성 프로그램에 의한 보호 대상 프로세스의 강제 종료를 방지하기 위해 운영체제(Operation System)의 특정 함수 내에서 자체 보호 기능의 실행 명령을 후킹(hooking)한다.As described above, security programs hook a command for executing a self-protection function within a specific function of an operating system to prevent forced termination of a protected process by a malicious program.

관련하여 도면부호 110에는 운영체제의 프로세스 종료 함수의 실행 명령 일부가 도시되어 있다.Related reference numeral 110 shows a part of the execution command of the process termination function of the operating system.

상기 보안 프로그램들은 도면부호 110에 도시된 운영체제의 프로세스 종료 함수의 실행 명령 일부를 후킹하여 악성 프로그램에 의한 보호 대상 프로세스의 강제 종료를 방지한다.The security programs hook a part of an execution command of the process termination function of the operating system shown at 110 to prevent forced termination of the protected process by the malicious program.

좀 더 상세히 설명하면, 상기 보안 프로그램들은 도면부호 120에 도시된 바와 같이, 운영체제의 프로세스 종료 함수의 실행 명령 일부를 후킹하여 상기 프로세스 종료 함수에 의해 상기 보호 대상 프로세스가 종료되기 전에 상기 보호 대상 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단(121)할 수 있다.In more detail, as shown by reference numeral 120, the security programs hook a portion of an execution command of a process termination function of an operating system to the protected process before the process to be protected is terminated by the process termination function. It may be determined 121 whether the request for termination is an allowed termination request.

만약, 상기 보호 대상 프로세스에 대한 종료 요청이 허용된 종료 요청인 것으로 판단되면, 상기 보안 프로그램들은 원본 함수를 호출(122)하여 상기 보호 대상 프로세스를 종료시킨다.If it is determined that the termination request for the protected process is an allowed termination request, the security programs call 122 an original function to terminate the protected process.

하지만, 최근 등장하고 있는 악성 프로그램들은 이러한 보안 프로그램들의 후킹 핸들러가 호출되기 전에 상기 보호 대상 프로세스가 종료될 수 있도록 하기 위해 상기 운영체제의 프로세스 종료 함수의 실행 명령을 후킹한다.However, recently emerging malicious programs hook the execution instructions of the process termination function of the operating system in order to allow the protected process to terminate before the hooking handlers of these security programs are called.

관련하여 도면부호 130에는 악성 프로그램에 의해 보안 프로그램들의 후킹 핸들러가 호출되기 전에 상기 보호 대상 프로세스가 종료되도록 상기 프로세스 종료 함수의 실행 명령이 후킹된 예가 도시되어 있다.Related example 130 is an example in which the execution command of the process termination function is hooked so that the protected process is terminated before the hooking handler of security programs by a malicious program.

도면부호 130을 참조하면, 악성 프로그램들은 후킹된 악성프로그램 함수(131)가 상기 보안 프로그램들의 후킹 핸들러(133)보다 먼저 호출되어 상기 보호 대상 프로세스의 종료 절차를 수행(132)하도록 한 후 상기 보안 프로그램의 후킹 핸들러(133) 다음의 실행 명령이 호출되도록 함으로써, 결론적으로 상기 보안 프로그램의 후킹 핸들러(133) 자체가 호출되지 않도록 할 수 있다.Referring to 130, malicious programs are called after the hooked malicious program function 131 is called before the hooking handler 133 of the security programs to perform the termination procedure of the protected process (132). By causing the execution command following the hooking handler 133 to be called, it can be concluded that the hooking handler 133 itself of the security program is not called.

결국, 이러한 악성 프로그램들에 대해 기존의 운영체제의 프로세스 종료 함수의 실행명령에 대한 후킹만으로는 보호 대상 프로세스의 강제 종료를 방어할 수 없다.As a result, the hooking of the execution command of the process termination function of the existing operating system for such malicious programs cannot prevent the forced termination of the protected process.

따라서, 본 발명의 실시예들은 상기 프로세스 종료 함수의 실행명령을 후킹하여 상기 악성 프로그램들에 의한 보호 대상 프로세스의 강제 종료를 방어하되, 상기 보호 대상 프로세스에 대해 소정의 종료 감시 스레드(thread)를 생성한 후 상기 종료 감시 스레드에 대한 종료 요청이 있는 경우, 상기 보호 대상 프로세스가 강제 종료 방지를 위한 후킹 핸들러에 의해 종료가 허용된 프로세스인 것으로 판단된 경우에만 프로세스 종료를 허용함으로써, 상기 강제 종료 방지를 위한 후킹 핸들러의 호출을 방해하여 상기 보호 대상 프로세스를 강제 종료 시키는 악성 프로그램들로부터 시스템을 보호할 수 있도록 한다.Accordingly, embodiments of the present invention prevent the forced termination of the protected process by the malicious programs by hooking an execution command of the process termination function, but create a predetermined termination monitoring thread for the protected process. If there is a termination request for the termination monitoring thread, the forced termination prevention is prevented by allowing the termination of the process only when the protected target process is determined to be the process allowed to be terminated by the hooking handler for preventing the termination. It prevents the hooking handler from calling and protects the system from malicious programs forcibly terminating the protected process.

도 2는 본 발명의 일실시예에 따른 악성 프로그램 방어 장치의 구조를 도시한 도면이다.2 is a diagram showing the structure of a malicious program defense apparatus according to an embodiment of the present invention.

도 2를 참조하면, 악성 프로그램 방어 장치(210)는 종료 허용 여부 판단부(211), 종료 감시 스레드 생성부(212), 공격 감지 검출부(213) 및 종료 차단부(214)를 포함한다.Referring to FIG. 2, the malicious program defense apparatus 210 includes a termination allowance determination unit 211, a termination monitoring thread generator 212, an attack detection detector 213, and a termination blocking unit 214.

종료 허용 여부 판단부(211)는 실행 중인 프로세스에 대해 종료가 요청된 경우, 상기 프로세스가 보호 대상 프로세스인지 여부를 확인하고, 상기 프로세스가 보호 대상 프로세스인 경우, 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단한다.When the termination request determination unit 211 is requested to terminate the running process, the process checks whether the process is a protected process, and if the process is a protected process, the termination request for the process is allowed Determine whether the request is terminated.

이때, 본 발명의 일실시예에 따르면, 종료 허용 여부 판단부(211)는 운영체제의 프로세스 종료 함수의 실행명령을 후킹하여 상기 프로세스 종료 함수가 상기 프로세스를 종료하기 이전에, 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단할 수 있다.At this time, according to an embodiment of the present invention, whether to terminate the determination unit 211 hooks the execution command of the process termination function of the operating system before the process termination function terminates the process, the end request for the process It can be determined whether this is an allowed termination request.

이와 관련하여 종료 허용 여부 판단부(211)는 도 1의 도면부호 120에 도시된 바와 같이, 상기 프로세스 종료 함수의 실행명령을 후킹하여 상기 프로세스 종료 함수가 상기 프로세스를 종료하기 이전에, 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단(121)할 수 있다.In this regard, as shown in reference numeral 120 of FIG. 1, the end allowance determining unit 211 hooks an execution command of the process termination function to allow the process termination function to terminate the process before the process termination function terminates the process. It may be determined 121 whether the request for termination is an allowed termination request.

상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단한 결과, 상기 종료 요청이 허용된 종료 요청인 것으로 판단된 경우, 종료 허용 여부 판단부(211)는 상기 프로세스를 종료 허용 목록에 등록한다.As a result of determining whether the termination request for the process is an allowed termination request, when it is determined that the termination request is an allowed termination request, the termination allowance determination unit 211 registers the process on the termination allow list.

이때, 본 발명의 일실시예에 따르면, 종료 허용 여부 판단부(211)는 상기 종료 요청이 허용된 종료 요청이 아닌 것으로 판단된 경우, 상기 운영체제에 대해 상기 종료 요청이 잘못된 종료 요청임을 알리는 오류 신호를 반환할 수 있다.In this case, according to an embodiment of the present invention, if it is determined that the termination permission determination unit 211 is not the termination request that is allowed, the error signal indicating that the termination request is an invalid termination request to the operating system. Can return.

이를 통해 운영체제는 상기 오류 신호를 기초로 상기 프로세스를 종료시키지 않음으로써, 보호 대상 프로세스가 강제 종료되는 것을 방지할 수 있다.In this way, the operating system does not terminate the process based on the error signal, thereby preventing the protected process from being forcibly terminated.

종료 감시 스레드 생성부(212)는 상기 프로세스에 대해 적어도 하나의 종료 감시 스레드를 생성한다.The termination watch thread generator 212 generates at least one termination watch thread for the process.

이때, 본 발명의 일실시예에 따르면, 종료 감시 스레드 생성부(212)는 상기 생성된 적어도 하나의 종료 감시 스레드를 상기 프로세스를 구성하는 적어도 하나의 스레드에 대한 스레드 목록의 첫 번째 위치로 이동시킬 수 있다.In this case, according to an embodiment of the present invention, the termination monitoring thread generator 212 moves the generated at least one termination monitoring thread to a first position of a thread list for at least one thread constituting the process. Can be.

이와 관련하여 종료 감시 스레드 생성부(212)의 동작에 대해 도 3을 참조하여 상세히 설명한다.In this regard, the operation of the termination monitoring thread generator 212 will be described in detail with reference to FIG. 3.

도 3은 본 발명의 일실시예에 따른 종료 감시 스레드 생성부(212)의 동작을 설명하기 위한 도면이다.3 is a view for explaining the operation of the termination monitoring thread generating unit 212 according to an embodiment of the present invention.

종료 감시 스레드 생성부(212)가 상기 적어도 하나의 종료 감시 스레드를 생성하면, 상기 생성된 적어도 하나의 종료 감시 스레드는 상기 프로세스를 구성하는 상기 적어도 하나의 스레드의 마지막 부분에 위치한다.When the termination watch thread generating unit 212 generates the at least one termination watch thread, the generated at least one termination watch thread is located at the end of the at least one thread constituting the process.

예컨대, 도 3에 도시된 바와 같이 상기 프로세스를 구성하는 상기 적어도 하나의 스레드가 스레드 1(320), 스레드 2(330)라고 가정하는 경우, 상기 생성된 적어도 하나의 종료 감시 스레드(310)는 스레드 1(320), 스레드 2(330) 다음에 위치한다.For example, assuming that the at least one thread constituting the process is thread 1 320, thread 2 330, as shown in FIG. 3, the generated at least one shutdown watchdog thread 310 is a thread. 1 320, after thread 2 330.

이때, 종료 감시 스레드 생성부(212)는 상기 생성된 적어도 하나의 종료 감시 스레드(310)를 스레드 1(320), 스레드 2(330)보다 먼저 실행되도록 도 3에 도시된 바와 같이, 상기 프로세스의 스레드 목록의 가장 앞부분으로 이동시킬 수 있다.At this time, the termination monitoring thread generating unit 212 is to execute the at least one generated termination monitoring thread 310 before the thread 1 (320), thread 2 (330), as shown in FIG. You can move it to the front of the thread list.

공격 감지 검출부(213)는 운영체제에 의해 스레드에 대한 종료 알림이 호출된 경우, 상기 종료 알림이 호출된 스레드가 상기 적어도 하나의 종료 감시 스레드인지 여부를 확인하고, 상기 종료 알림이 호출된 스레드가 상기 적어도 하나의 종료 감시 스레드인 경우, 상기 프로세스가 상기 종료 허용 목록에 등록된 프로세스인지 여부를 판단한다.When the termination notification for the thread is called by the operating system, the attack detection detection unit 213 determines whether the thread called the termination notification is the at least one termination monitoring thread, and the thread on which the termination notification is called is In the case of at least one termination monitoring thread, it is determined whether the process is a process registered in the termination allow list.

만약, 상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 프로세스인 경우, 종료 차단부(214)는 상기 프로세스를 구성하는 상기 적어도 하나의 스레드에 대한 종료를 차단한다.If the process is not registered in the termination allow list, the termination blocking unit 214 blocks termination of the at least one thread constituting the process.

본 발명의 일실시예에 따르면, 종료 차단부(214)는 스케줄링 중지부(215) 및 APC(Asynchronous Procedure Call) 제거부(216)를 포함할 수 있다.According to an embodiment of the present invention, the termination blocking unit 214 may include a scheduling stop unit 215 and an asynchronous procedure call (APC) removal unit 216.

스케줄링 중지부(215)는 상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 프로세스인 경우, 상기 운영체제의 스레드 스케줄링을 중지시킨다.The scheduling stop unit 215 stops thread scheduling of the operating system when the process is not registered in the termination allow list.

APC 제거부(216)는 상기 적어도 하나의 스레드에 등록된 종료 APC를 제거한다.The APC removal unit 216 removes the termination APC registered in the at least one thread.

이하에서는 APC 제거부(216)의 동작을 도 4를 참조하여 좀 더 상세히 설명한다.Hereinafter, the operation of the APC removal unit 216 will be described in more detail with reference to FIG. 4.

도 4는 본 발명의 일실시예에 따른 APC 제거부(216)의 동작을 설명하기 위한 도면이다.4 is a view for explaining the operation of the APC removal unit 216 according to an embodiment of the present invention.

만약, 상기 적어도 하나의 스레드가 스레드 1(410), 스레드 2(420)라고 가정하는 경우, APC 제거부(216)는 스레드 1(410)과 스레드 2(420)에 각각 등록된 종료 APC를 제거함으로써, 스레드 1(410), 스레드 2(420)가 종료되는 것을 차단할 수 있다.If the at least one thread is assumed to be thread 1 410 and thread 2 420, the APC removal unit 216 removes the end APCs registered in thread 1 410 and thread 2 420, respectively. As a result, the termination of the thread 1 410 and the thread 2 420 may be prevented.

결국, 본 발명의 일실시예에 따른 악성 프로그램 방어 장치(210)는 종료 허용 여부 판단부(211)가 운영체제의 프로세스 종료 함수의 실행 명령을 후킹하여 보호 대상 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단한 후 상기 종료 요청이 허용된 종료 요청인 것으로 판단된 경우, 종료 허용 목록에 상기 프로세스를 등록하고, 종료 감시 스레드 생성부(212)가 상기 프로세스에 대해 소정의 종료 감시 스레드를 생성한 이후 운영체제에 의해 상기 종료 감시 스레드에 대한 종료 알림이 호출되면, 공격 감지 검출부(213)가 상기 프로세스가 상기 종료 허용 목록에 등록되어 있는 프로세스인지 여부를 판단하고, 상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 것으로 판단되면, 종료 차단부(214)가 상기 프로세스에 대한 종료를 차단함으로써, 악성 프로그램들로부터 보호 대상 프로세스의 강제 종료를 방어할 수 있다.As a result, the malicious program defense device 210 according to an embodiment of the present invention, the termination request determination unit 211 hooks the execution command of the process termination function of the operating system to terminate the request to allow the termination request for the protected process If it is determined that the termination request is an allowed termination request, the process registers the process in the termination allow list, and the termination monitoring thread generator 212 generates a predetermined termination monitoring thread for the process. After the termination notification is called for the termination monitoring thread by the operating system, the attack detection detection unit 213 determines whether the process is registered in the termination allow list, and the process is registered in the termination allow list. If not determined, the termination block 214 blocks the termination of the process. As it can defend a forced shutdown of the protected process from malicious programs.

특히, 본 발명의 일실시예에 따른 악성 프로그램 방어 장치(210)는 공격 감지 검출부(213)가 상기 생성된 종료 감시 스레드에 대한 종료 알림이 호출되면, 상기 종료 감시 스레드에 대한 프로세스가 종료 허용 목록에 등록되어 있는 프로세스인지 여부를 판단하고, 상기 종료 허용 목록에 상기 프로세스가 등록되어 있지 않은 경우, 종료 차단부(214)가 상기 프로세스의 종료를 차단함으로써, 종료 허용 여부 판단부(211)의 후킹 핸들러가 호출되지 않아 보호 대상 프로세스가 강제 종료되는 경우에도 적절한 방어가 가능하다.In particular, the malicious program defense device 210 according to an embodiment of the present invention, when the attack detection detection unit 213 is called termination notification for the generated termination monitoring thread, the process for the termination monitoring thread termination list If it is determined that the process is registered in the process, and the process is not registered in the end allow list, the end blocking unit 214 blocks the end of the process, so that the hooking of the end allowance determination unit 211 Proper defense is possible even if the protected process is killed because no handler is called.

이와 관련하여 좀 더 상세히 설명하면, 만약 악성 프로그램에 의해 종료 허용 여부 판단부(211)의 후킹 핸들러가 호출되지 않아 도 1의 도면부호 130과 같이, 보호 대상 프로세스가 강제 종료되는 경우에는 종료 허용 여부 판단부(211)에 의해 상기 보호 대상 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부에 대한 판단 자체가 수행되지 않으므로, 상기 종료 허용 목록에 상기 보호 대상 프로세스가 등록되지 않는다.In more detail in this regard, if the hooking handler of the allowability determination unit 211 is not called by the malicious program, as shown by reference numeral 130 of FIG. Since the determination unit 211 does not determine whether the termination request for the protected process is an allowed termination request, the protected process is not registered in the termination allow list.

이때, 종료 감시 스레드 생성부(212)가 상기 보호 대상 프로세스에 대해 종료 감시 스레드를 생성한 이후 운영체제에 의해 상기 종료 감시 스레드에 대한 종료 알림이 호출되면, 공격 감지 검출부(213)는 상기 보호 대상 프로세스가 상기 종료 허용 목록에 등록되어 있는 프로세스인지 여부를 판단한다.In this case, when the termination notification thread is called by the operating system after the termination monitoring thread generator 212 generates the termination monitoring thread for the protected process, the attack detection detection unit 213 may execute the protection target process. It is determined whether is a process registered in the termination allow list.

앞서, 종료 허용 여부 판단부(211)의 후킹 핸들러가 호출되지 않아 상기 종료 허용 목록에 상기 보호 대상 프로세스가 등록되지 않았으므로, 종료 차단부(214)는 악성 프로그램에 의해 상기 보호 대상 프로세스가 강제 종료되는 것으로 판단하고, 상기 보호 대상 프로세스를 구성하는 스레드들에 대한 종료를 차단한다.Since the hooking handler of the termination allowance determination unit 211 is not called and the protected process is not registered in the termination allow list, the termination blocking unit 214 may forcibly terminate the protected process by a malicious program. It determines that it is, and blocks the termination of the threads constituting the protected process.

따라서, 본 발명의 일실시예에 따른 악성 프로그램 방어 장치(210)는 종료 허용 여부 판단부(211)의 후킹 핸들러 호출을 방해하는 악성 프로그램에 대해서도 적절한 방어가 가능하다.Therefore, the malicious program defense device 210 according to an embodiment of the present invention can be appropriately defended against malicious programs that interfere with the hooking handler call of the determination whether to allow termination.

본 발명의 일실시예에 따르면, 악성 프로그램 방어 장치(210)는 후킹 정보 제거부(217)를 더 포함할 수 있다.According to an embodiment of the present invention, the malicious program defense device 210 may further include a hooking information removal unit 217.

후킹 정보 제거부(217)는 종료 차단부(214)에 의해 상기 적어도 하나의 스레드에 대한 종료가 차단되면, 상기 운영체제의 프로세스 종료 함수로부터 종료 허용 여부 판단부(211)를 우회하여 상기 프로세스의 강제 종료를 요청하는 악성 프로그램의 후킹 정보를 제거한다.When the termination of the at least one thread is blocked by the termination blocking unit 214, the hooking information removing unit 217 bypasses the termination allowance determination unit 211 from the process termination function of the operating system to force the process. It removes hooking information of malicious program requesting termination.

또한, 본 발명의 일실시예에 따르면, 종료 감시 스레드 생성부(212)는 종료 차단부(214)에 의해 상기 적어도 하나의 스레드에 대한 종료가 차단되면, 악성 프로그램의 다음 공격을 대비하기 위해 상기 프로세스에 대해 상기 적어도 하나의 종료 감시 스레드를 재생성할 수 있다.In addition, according to an embodiment of the present invention, when the termination monitoring thread generating unit 212 is terminated for the at least one thread is blocked by the termination blocking unit 214, in order to prepare for the next attack of the malicious program The at least one shutdown watchdog thread can be recreated for the process.

도 5는 본 발명의 일실시예에 따른 악성 프로그램 방어 방법을 도시한 순서도이다.5 is a flowchart illustrating a malicious program defense method according to an embodiment of the present invention.

단계(S510)에서는 실행 중인 프로세스에 대해 종료가 요청된 경우, 상기 프로세스가 보호 대상 프로세스인지 여부를 판단한다.In step S510, when termination of the running process is requested, it is determined whether the process is a process to be protected.

단계(S520)에서는 상기 프로세스가 보호 대상 프로세스인 경우, 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단한다.In step S520, when the process is a protected process, it is determined whether the termination request for the process is an allowed termination request.

이때, 본 발명의 일실시예에 따르면, 단계(S520)에서는 운영체제의 프로세스 종료 함수의 실행명령을 후킹하여 상기 프로세스 종료 함수가 상기 프로세스를 종료하기 이전에, 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단할 수 있다.In this case, according to an embodiment of the present invention, in step S520, before the process termination function terminates the process by hooking an execution command of the process termination function of the operating system, the termination request for the process is allowed. It can be determined whether or not the request.

단계(S530)에서는 상기 종료 요청이 허용된 종료 요청인 경우, 상기 프로세스를 종료 허용 목록에 등록한다.In step S530, if the termination request is an allowed termination request, the process is registered in the termination allow list.

이때, 본 발명의 일실시예에 따르면, 상기 악성 프로그램 방어 방법은 상기 종료 요청이 허용된 종료 요청이 아닌 경우, 상기 운영체제에 대해 상기 종료 요청이 잘못된 종료 요청임을 알리는 오류 신호를 반환하는 단계를 더 포함할 수 있다.In this case, according to an embodiment of the present invention, the malicious program defense method further comprises the step of returning an error signal indicating that the termination request is an invalid termination request to the operating system when the termination request is not an allowed termination request. It may include.

단계(S540)에서는 상기 프로세스에 대해 적어도 하나의 종료 감시 스레드를 생성한다.In step S540, at least one shutdown watchdog thread is created for the process.

이때, 본 발명의 일실시예에 따르면, 상기 악성 프로그램 방어 방법은 단계(S540)이후에 상기 생성된 적어도 하나의 종료 감시 스레드를 상기 프로세스를 구성하는 상기 적어도 하나의 스레드에 대한 스레드 목록의 첫 번째 위치로 이동시키는 단계를 더 포함할 수 있다.At this time, according to an embodiment of the present invention, the malicious program defense method is the first of the thread list for the at least one thread constituting the process after the generated at least one shutdown monitoring thread (S540) The method may further include moving to a position.

단계(S550)에서는 운영체제에 의해 스레드에 대한 종료 알림이 호출된 경우, 상기 종료 알림이 호출된 스레드가 상기 적어도 하나의 종료 감시 스레드인지 여부를 확인한다.In operation S550, when the termination notification for the thread is called by the operating system, it is checked whether the thread for which the termination notification is called is the at least one termination monitoring thread.

단계(S560)에서는 상기 종료 알림이 호출된 스레드가 상기 적어도 하나의 종료 감시 스레드인 경우, 상기 프로세스가 상기 종료 허용 목록에 등록된 프로세스인지 여부를 판단한다.In step S560, when the thread for which the termination notification is called is the at least one termination monitoring thread, it is determined whether the process is a process registered in the termination allow list.

단계(S570)에서는 상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 프로세스인 경우, 상기 프로세스를 구성하는 적어도 하나의 스레드에 대한 종료를 차단한다.In step S570, when the process is not registered in the termination allow list, termination of at least one thread constituting the process is blocked.

이때, 본 발명의 일실시예에 따르면, 단계(S570)에서는 상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 프로세스인 경우, 상기 운영체제의 스레드 스케줄링을 중지시키는 단계 및 상기 적어도 하나의 스레드에 등록된 종료 APC를 제거하는 단계를 포함할 수 있다.At this time, according to an embodiment of the present invention, in step S570, if the process is not registered in the termination allow list, stopping the thread scheduling of the operating system and registered in the at least one thread. Removing the ending APC.

또한, 본 발명의 일실시예에 따르면, 상기 악성 프로그램 방어 방법은 단계(S570)이후에 상기 적어도 하나의 스레드에 대한 종료가 차단되면, 상기 프로세스에 대해 상기 적어도 하나의 종료 감시 스레드를 재생성하는 단계를 더 포함할 수 있다.In addition, according to an embodiment of the present invention, if the termination of the at least one thread is blocked after step S570, regenerating the at least one termination monitoring thread for the process. It may further include.

이상, 도 5를 참조하여 본 발명의 일실시예에 따른 악성 프로그램 방어 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 악성 프로그램 방어 방법은 도 2를 이용하여 설명한 악성 프로그램 방어 장치(210)의 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.The malware protection method according to an embodiment of the present invention has been described above with reference to FIG. 5. Here, since the malicious program defense method according to an embodiment of the present invention may correspond to the configuration of the malicious program defense device 210 described with reference to FIG. 2, a detailed description thereof will be omitted.

본 발명의 일실시예에 따른 악성 프로그램 방어 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Malicious program defense method according to an embodiment of the present invention is implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. In the present invention as described above has been described by the specific embodiments, such as specific components and limited embodiments and drawings, but this is provided to help a more general understanding of the present invention, the present invention is not limited to the above embodiments. For those skilled in the art, various modifications and variations are possible from these descriptions.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be construed as being limited to the embodiments described, and all of the equivalents or equivalents of the claims, as well as the following claims, belong to the scope of the present invention .

210: 악성 프로그램 방어 장치
211: 종료 허용 여부 판단부
212: 종료 감시 스레드 생성부
213: 공격 감지 검출부
214: 종료 차단부
215: 스케줄링 중지부
216: APC 제거부
217: 후킹 정보 제거부
210: malware defense
211: decision whether to allow termination
212: shutdown watchdog thread generator
213: attack detection detector
214: termination block
215: scheduling stop
216: APC removal unit
217: hooking information removal unit

Claims (14)

실행 중인 프로세스에 대해 종료가 요청된 경우, 상기 프로세스가 보호 대상 프로세스인지 여부를 확인하고, 상기 프로세스가 보호 대상 프로세스인 경우, 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단하여 상기 종료 요청이 허용된 종료 요청인 경우, 상기 프로세스를 종료 허용 목록에 등록하는 종료 허용 여부 판단부;
상기 프로세스에 대해 적어도 하나의 종료 감시 스레드를 생성하는 종료 감시 스레드 생성부;
운영체제에 의해 스레드에 대한 종료 알림이 호출된 경우, 상기 종료 알림이 호출된 스레드가 상기 적어도 하나의 종료 감시 스레드인지 여부를 확인하고, 상기 종료 알림이 호출된 스레드가 상기 상기 적어도 하나의 종료 감시 스레드인 경우, 상기 프로세스가 상기 종료 허용 목록에 등록된 프로세스인지 여부를 판단하는 공격 감지 검출부; 및
상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 프로세스인 경우, 상기 프로세스를 구성하는 적어도 하나의 스레드에 대한 종료를 차단하는 종료 차단부
를 포함하는 악성 프로그램 방어 장치.
When termination is requested for a running process, the process checks whether the process is a protected process, and if the process is a protected process, determines whether the termination request for the process is an allowed termination request. A termination allowance determining unit that registers the process in a termination allow list when the request is an allowed termination request;
An end monitoring thread generation unit configured to generate at least one end monitoring thread for the process;
When a termination notification is called for a thread by an operating system, it is determined whether the thread in which the termination notification is called is the at least one termination monitoring thread, and the thread in which the termination notification is called is the at least one termination monitoring thread. Is an attack detection detection unit determining whether the process is a process registered in the termination allow list; And
Termination blocker for blocking termination of at least one thread constituting the process, if the process is not registered in the termination allow list
Malware defense device comprising a.
제1항에 있어서,
상기 종료 허용 여부 판단부는
상기 운영체제의 프로세스 종료 함수의 실행명령을 후킹하여 상기 프로세스 종료 함수가 상기 프로세스를 종료하기 이전에 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단하는 악성 프로그램 방어 장치.
The method of claim 1,
The termination allowance determination unit
Hooking an execution command of the process termination function of the operating system to determine whether the termination request for the process is a permitted termination request before the process termination function terminates the process.
제1항에 있어서,
상기 종료 허용 여부 판단부는
상기 프로세스에 대한 종료 요청이 허용된 종료 요청이 아닌 경우, 상기 운영체제에 대해 상기 종료 요청이 잘못된 종료 요청임을 알리는 오류 신호를 반환하는 악성 프로그램 방어 장치.
The method of claim 1,
The termination allowance determination unit
And when the termination request for the process is not an allowed termination request, returning an error signal to the operating system indicating that the termination request is an invalid termination request.
제1항에 있어서,
상기 종료 감시 스레드 생성부는
상기 생성된 적어도 하나의 종료 감시 스레드를 상기 프로세스를 구성하는 상기 적어도 하나의 스레드에 대한 스레드 목록의 첫 번째 위치로 이동시키는 악성 프로그램 방어 장치.
The method of claim 1,
The termination monitoring thread generator
And move the created at least one shutdown watchdog thread to a first position in a thread list for the at least one thread constituting the process.
제1항에 있어서,
상기 종료 차단부는
상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 프로세스인 경우, 상기 운영체제의 스레드 스케줄링을 중지시키는 스케줄링 중지부; 및
상기 적어도 하나의 스레드에 등록된 종료 APC(Asynchronous Procedure Call)를 제거하는 APC 제거부
를 포함하는 악성 프로그램 방어 장치.
The method of claim 1,
The termination blocking unit
A scheduling stop unit for stopping thread scheduling of the operating system when the process is not registered in the termination allow list; And
APC removal unit for removing the termination APC (Asynchronous Procedure Call) registered in the at least one thread
Malware defense device comprising a.
제2항에 있어서,
상기 적어도 하나의 스레드에 대한 종료가 차단되면, 상기 운영체제의 프로세스 종료 함수로부터 상기 종료 허용 여부 판단부를 우회하여 상기 프로세스의 강제 종료를 요청하는 악성 프로그램의 후킹 정보를 제거하는 후킹 정보 제거부
를 더 포함하는 악성 프로그램 방어 장치.
The method of claim 2,
When the termination of the at least one thread is blocked, the hooking information removal unit removes the hooking information of the malicious program requesting the forced termination of the process by bypassing the termination allowance determination unit from the process termination function of the operating system.
Malware defense device further comprising.
제1항에 있어서,
상기 종료 감시 스레드 생성부는
상기 적어도 하나의 스레드에 대한 종료가 차단되면, 상기 프로세스에 대해 상기 적어도 하나의 종료 감시 스레드를 재생성하는 악성 프로그램 방어 장치.
The method of claim 1,
The termination monitoring thread generator
And if termination of the at least one thread is blocked, regenerate the at least one termination watchdog thread for the process.
실행 중인 프로세스에 대해 종료가 요청된 경우, 상기 프로세스가 보호 대상 프로세스인지 여부를 확인하는 단계;
상기 프로세스가 보호 대상 프로세스인 경우, 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단하는 단계;
상기 종료 요청이 허용된 종료 요청인 경우, 상기 프로세스를 종료 허용 목록에 등록하는 단계;
상기 프로세스에 대해 적어도 하나의 종료 감시 스레드를 생성하는 단계;
운영체제에 의해 스레드에 대한 종료 알림이 호출된 경우, 상기 종료 알림이 호출된 스레드가 상기 적어도 하나의 종료 감시 스레드인지 여부를 확인하는 단계;
상기 종료 알림이 호출된 스레드가 상기 적어도 하나의 종료 감시 스레드인 경우, 상기 프로세스가 상기 종료 허용 목록에 등록된 프로세스인지 여부를 판단하는 단계; 및
상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 프로세스인 경우, 상기 프로세스를 구성하는 적어도 하나의 스레드에 대한 종료를 차단하는 단계
를 포함하는 악성 프로그램 방어 방법.
If termination is requested for a running process, checking whether the process is a protected process;
If the process is a protected process, determining whether the termination request for the process is an allowed termination request;
If the termination request is an allowed termination request, registering the process on a termination allow list;
Creating at least one shutdown watchdog thread for the process;
When an end notification for a thread is called by an operating system, checking whether the thread for which the end notification is called is the at least one end monitoring thread;
Determining whether the process is a process registered in the termination allow list when the thread in which the termination notification is called is the at least one termination monitoring thread; And
Blocking termination of at least one thread constituting the process if the process is not registered in the termination allow list
Malware defense method comprising a.
제8항에 있어서,
상기 허용된 종료 요청인지 여부를 판단하는 단계는
상기 운영체제의 프로세스 종료 함수의 실행명령을 후킹하여 상기 프로세스 종료 함수가 상기 프로세스를 종료하기 이전에 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단하는 악성 프로그램 방어 방법.
9. The method of claim 8,
Determining whether or not the allowed termination request is
Hooking an execution command of a process termination function of the operating system to determine whether the termination request for the process is a permitted termination request before the process termination function terminates the process.
제8항에 있어서,
상기 프로세스에 대한 종료 요청이 허용된 종료 요청이 아닌 경우, 상기 운영체제에 대해 상기 종료 요청이 잘못된 종료 요청임을 알리는 오류 신호를 반환하는 단계
를 더 포함하는 악성 프로그램 방어 방법.
9. The method of claim 8,
If the termination request for the process is not an allowed termination request, returning an error signal to the operating system indicating that the termination request is an invalid termination request.
Malware defense method comprising more.
제8항에 있어서,
상기 생성된 적어도 하나의 종료 감시 스레드를 상기 프로세스를 구성하는 상기 적어도 하나의 스레드에 대한 스레드 목록의 첫 번째 위치로 이동시키는 단계
를 더 포함하는 악성 프로그램 방어 방법.
9. The method of claim 8,
Moving the generated at least one shutdown watchdog thread to a first position in a thread list for the at least one thread constituting the process
Malware defense method comprising more.
제8항에 있어서,
상기 적어도 하나의 스레드에 대한 종료를 차단하는 단계는
상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 프로세스인 경우, 상기 운영체제의 스레드 스케줄링을 중지시키는 단계; 및
상기 적어도 하나의 스레드에 등록된 종료 APC(Asynchronous Procedure Call)를 제거하는 단계
를 포함하는 악성 프로그램 방어 방법.
9. The method of claim 8,
Blocking termination of the at least one thread
If the process is a process not registered in the termination allow list, stopping thread scheduling of the operating system; And
Removing a terminating Asynchronous Procedure Call (APC) registered with the at least one thread.
Malware defense method comprising a.
제8항에 있어서,
상기 적어도 하나의 스레드에 대한 종료가 차단되면, 상기 프로세스에 대해 상기 적어도 하나의 종료 감시 스레드를 재생성하는 단계
를 더 포함하는 악성 프로그램 방어 방법.
9. The method of claim 8,
Regenerating the at least one termination watchdog thread for the process if termination for the at least one thread is blocked;
Malware defense method comprising more.
제8항 내지 제13항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium having recorded thereon a program for performing the method of any one of claims 8 to 13.
KR1020110044652A 2011-05-12 2011-05-12 Malicious program blocking apparatus and method KR101217677B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110044652A KR101217677B1 (en) 2011-05-12 2011-05-12 Malicious program blocking apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110044652A KR101217677B1 (en) 2011-05-12 2011-05-12 Malicious program blocking apparatus and method

Publications (2)

Publication Number Publication Date
KR20120126665A true KR20120126665A (en) 2012-11-21
KR101217677B1 KR101217677B1 (en) 2013-01-02

Family

ID=47511947

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110044652A KR101217677B1 (en) 2011-05-12 2011-05-12 Malicious program blocking apparatus and method

Country Status (1)

Country Link
KR (1) KR101217677B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180060140A (en) * 2016-11-28 2018-06-07 (주) 세인트 시큐리티 Method for Treating and Deleting Malware Having Self-Protection Function

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100594019B1 (en) * 1999-10-05 2006-06-28 삼성전자주식회사 Process Management Method in Distributed Environment
KR100351953B1 (en) * 2000-11-24 2002-09-12 엘지전자 주식회사 System and Method of Protecting Process
KR100953732B1 (en) * 2008-12-29 2010-04-19 주식회사 포스코아이씨티 Apparatus for managing a task
KR101069814B1 (en) * 2009-11-11 2011-10-04 김상경 Data Transferring System and Data Transferring Method for the Same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180060140A (en) * 2016-11-28 2018-06-07 (주) 세인트 시큐리티 Method for Treating and Deleting Malware Having Self-Protection Function

Also Published As

Publication number Publication date
KR101217677B1 (en) 2013-01-02

Similar Documents

Publication Publication Date Title
RU2522019C1 (en) System and method of detecting threat in code executed by virtual machine
US8272059B2 (en) System and method for identification and blocking of malicious code for web browser script engines
CN105408911A (en) Hardware and software execution profiling
KR101710928B1 (en) Method for protecting malignant code in mobile platform, recording medium and device for performing the system
US20070266435A1 (en) System and method for intrusion detection in a computer system
US11120106B2 (en) Hardware—assisted system and method for detecting and analyzing system calls made to an operating system kernel
KR101995944B1 (en) Method for preventing randomware
WO2021046811A1 (en) Attack behavior determination method and apparatus, and computer storage medium
TW202044079A (en) Kernel security check method, apparatus, and device, and storage medium
JP5326063B1 (en) Malicious shellcode detection apparatus and method using debug events
KR101097590B1 (en) Method for defending against dll injection without hooking
KR100666562B1 (en) Method for protecting kernel driver and process
JP2007072969A (en) Operation history protection device and operation history protection program
KR20070019191A (en) Method for protecting kernel memory and apparatus thereof
KR20070019190A (en) Method for protecting file system and registry and apparatus thereof
KR101217677B1 (en) Malicious program blocking apparatus and method
CN109583206B (en) Method, device, equipment and storage medium for monitoring access process of application program
KR101375656B1 (en) Program protection apparatus and program protection method
KR101723623B1 (en) System and method for detecting malicious code
KR102034678B1 (en) Malware preventing system anf method based on access controlling for data file
US20190080094A1 (en) Automated Information Technology Substantive Testing of Security Compliance within a User's Context
KR20110057297A (en) Dynamic analyzing system for malicious bot and methods therefore
KR101375658B1 (en) Program data change protecting apparatus and program data change protecting method
KR101489142B1 (en) Client system and control method thereof
KR101986638B1 (en) Malware preventing system and method for object file to protect

Legal Events

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

Payment date: 20151228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161226

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171226

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20191226

Year of fee payment: 8