KR20120126665A - Malicious program blocking apparatus and method - Google Patents
Malicious program blocking apparatus and method Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting 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
Description
악성 프로그램 방어 장치 및 방법이 개시된다. 특히, 본 발명의 실시예들은 보호 대상 프로그램을 강제 종료 시키는 악성 프로그램들로부터 시스템을 방어하기 위한 기술에 대한 것이다. 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에는 운영체제의 프로세스 종료 함수의 실행 명령 일부가 도시되어 있다.
상기 보안 프로그램들은 도면부호 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
만약, 상기 보호 대상 프로세스에 대한 종료 요청이 허용된 종료 요청인 것으로 판단되면, 상기 보안 프로그램들은 원본 함수를 호출(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
결국, 이러한 악성 프로그램들에 대해 기존의 운영체제의 프로세스 종료 함수의 실행명령에 대한 후킹만으로는 보호 대상 프로세스의 강제 종료를 방어할 수 없다.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
종료 허용 여부 판단부(211)는 실행 중인 프로세스에 대해 종료가 요청된 경우, 상기 프로세스가 보호 대상 프로세스인지 여부를 확인하고, 상기 프로세스가 보호 대상 프로세스인 경우, 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단한다.When the termination
이때, 본 발명의 일실시예에 따르면, 종료 허용 여부 판단부(211)는 운영체제의 프로세스 종료 함수의 실행명령을 후킹하여 상기 프로세스 종료 함수가 상기 프로세스를 종료하기 이전에, 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단할 수 있다.At this time, according to an embodiment of the present invention, whether to terminate the
이와 관련하여 종료 허용 여부 판단부(211)는 도 1의 도면부호 120에 도시된 바와 같이, 상기 프로세스 종료 함수의 실행명령을 후킹하여 상기 프로세스 종료 함수가 상기 프로세스를 종료하기 이전에, 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단(121)할 수 있다.In this regard, as shown in
상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단한 결과, 상기 종료 요청이 허용된 종료 요청인 것으로 판단된 경우, 종료 허용 여부 판단부(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
이때, 본 발명의 일실시예에 따르면, 종료 허용 여부 판단부(211)는 상기 종료 요청이 허용된 종료 요청이 아닌 것으로 판단된 경우, 상기 운영체제에 대해 상기 종료 요청이 잘못된 종료 요청임을 알리는 오류 신호를 반환할 수 있다.In this case, according to an embodiment of the present invention, if it is determined that the termination
이를 통해 운영체제는 상기 오류 신호를 기초로 상기 프로세스를 종료시키지 않음으로써, 보호 대상 프로세스가 강제 종료되는 것을 방지할 수 있다.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
이때, 본 발명의 일실시예에 따르면, 종료 감시 스레드 생성부(212)는 상기 생성된 적어도 하나의 종료 감시 스레드를 상기 프로세스를 구성하는 적어도 하나의 스레드에 대한 스레드 목록의 첫 번째 위치로 이동시킬 수 있다.In this case, according to an embodiment of the present invention, the termination
이와 관련하여 종료 감시 스레드 생성부(212)의 동작에 대해 도 3을 참조하여 상세히 설명한다.In this regard, the operation of the termination
도 3은 본 발명의 일실시예에 따른 종료 감시 스레드 생성부(212)의 동작을 설명하기 위한 도면이다.3 is a view for explaining the operation of the termination monitoring
종료 감시 스레드 생성부(212)가 상기 적어도 하나의 종료 감시 스레드를 생성하면, 상기 생성된 적어도 하나의 종료 감시 스레드는 상기 프로세스를 구성하는 상기 적어도 하나의 스레드의 마지막 부분에 위치한다.When the termination watch
예컨대, 도 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
이때, 종료 감시 스레드 생성부(212)는 상기 생성된 적어도 하나의 종료 감시 스레드(310)를 스레드 1(320), 스레드 2(330)보다 먼저 실행되도록 도 3에 도시된 바와 같이, 상기 프로세스의 스레드 목록의 가장 앞부분으로 이동시킬 수 있다.At this time, the termination monitoring
공격 감지 검출부(213)는 운영체제에 의해 스레드에 대한 종료 알림이 호출된 경우, 상기 종료 알림이 호출된 스레드가 상기 적어도 하나의 종료 감시 스레드인지 여부를 확인하고, 상기 종료 알림이 호출된 스레드가 상기 적어도 하나의 종료 감시 스레드인 경우, 상기 프로세스가 상기 종료 허용 목록에 등록된 프로세스인지 여부를 판단한다.When the termination notification for the thread is called by the operating system, the attack
만약, 상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 프로세스인 경우, 종료 차단부(214)는 상기 프로세스를 구성하는 상기 적어도 하나의 스레드에 대한 종료를 차단한다.If the process is not registered in the termination allow list, the
본 발명의 일실시예에 따르면, 종료 차단부(214)는 스케줄링 중지부(215) 및 APC(Asynchronous Procedure Call) 제거부(216)를 포함할 수 있다.According to an embodiment of the present invention, the
스케줄링 중지부(215)는 상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 프로세스인 경우, 상기 운영체제의 스레드 스케줄링을 중지시킨다.The
APC 제거부(216)는 상기 적어도 하나의 스레드에 등록된 종료 APC를 제거한다.The
이하에서는 APC 제거부(216)의 동작을 도 4를 참조하여 좀 더 상세히 설명한다.Hereinafter, the operation of the
도 4는 본 발명의 일실시예에 따른 APC 제거부(216)의 동작을 설명하기 위한 도면이다.4 is a view for explaining the operation of the
만약, 상기 적어도 하나의 스레드가 스레드 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
결국, 본 발명의 일실시예에 따른 악성 프로그램 방어 장치(210)는 종료 허용 여부 판단부(211)가 운영체제의 프로세스 종료 함수의 실행 명령을 후킹하여 보호 대상 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단한 후 상기 종료 요청이 허용된 종료 요청인 것으로 판단된 경우, 종료 허용 목록에 상기 프로세스를 등록하고, 종료 감시 스레드 생성부(212)가 상기 프로세스에 대해 소정의 종료 감시 스레드를 생성한 이후 운영체제에 의해 상기 종료 감시 스레드에 대한 종료 알림이 호출되면, 공격 감지 검출부(213)가 상기 프로세스가 상기 종료 허용 목록에 등록되어 있는 프로세스인지 여부를 판단하고, 상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 것으로 판단되면, 종료 차단부(214)가 상기 프로세스에 대한 종료를 차단함으로써, 악성 프로그램들로부터 보호 대상 프로세스의 강제 종료를 방어할 수 있다.As a result, the malicious
특히, 본 발명의 일실시예에 따른 악성 프로그램 방어 장치(210)는 공격 감지 검출부(213)가 상기 생성된 종료 감시 스레드에 대한 종료 알림이 호출되면, 상기 종료 감시 스레드에 대한 프로세스가 종료 허용 목록에 등록되어 있는 프로세스인지 여부를 판단하고, 상기 종료 허용 목록에 상기 프로세스가 등록되어 있지 않은 경우, 종료 차단부(214)가 상기 프로세스의 종료를 차단함으로써, 종료 허용 여부 판단부(211)의 후킹 핸들러가 호출되지 않아 보호 대상 프로세스가 강제 종료되는 경우에도 적절한 방어가 가능하다.In particular, the malicious
이와 관련하여 좀 더 상세히 설명하면, 만약 악성 프로그램에 의해 종료 허용 여부 판단부(211)의 후킹 핸들러가 호출되지 않아 도 1의 도면부호 130과 같이, 보호 대상 프로세스가 강제 종료되는 경우에는 종료 허용 여부 판단부(211)에 의해 상기 보호 대상 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부에 대한 판단 자체가 수행되지 않으므로, 상기 종료 허용 목록에 상기 보호 대상 프로세스가 등록되지 않는다.In more detail in this regard, if the hooking handler of the
이때, 종료 감시 스레드 생성부(212)가 상기 보호 대상 프로세스에 대해 종료 감시 스레드를 생성한 이후 운영체제에 의해 상기 종료 감시 스레드에 대한 종료 알림이 호출되면, 공격 감지 검출부(213)는 상기 보호 대상 프로세스가 상기 종료 허용 목록에 등록되어 있는 프로세스인지 여부를 판단한다.In this case, when the termination notification thread is called by the operating system after the termination
앞서, 종료 허용 여부 판단부(211)의 후킹 핸들러가 호출되지 않아 상기 종료 허용 목록에 상기 보호 대상 프로세스가 등록되지 않았으므로, 종료 차단부(214)는 악성 프로그램에 의해 상기 보호 대상 프로세스가 강제 종료되는 것으로 판단하고, 상기 보호 대상 프로세스를 구성하는 스레드들에 대한 종료를 차단한다.Since the hooking handler of the termination
따라서, 본 발명의 일실시예에 따른 악성 프로그램 방어 장치(210)는 종료 허용 여부 판단부(211)의 후킹 핸들러 호출을 방해하는 악성 프로그램에 대해서도 적절한 방어가 가능하다.Therefore, the malicious
본 발명의 일실시예에 따르면, 악성 프로그램 방어 장치(210)는 후킹 정보 제거부(217)를 더 포함할 수 있다.According to an embodiment of the present invention, the malicious
후킹 정보 제거부(217)는 종료 차단부(214)에 의해 상기 적어도 하나의 스레드에 대한 종료가 차단되면, 상기 운영체제의 프로세스 종료 함수로부터 종료 허용 여부 판단부(211)를 우회하여 상기 프로세스의 강제 종료를 요청하는 악성 프로그램의 후킹 정보를 제거한다.When the termination of the at least one thread is blocked by the
또한, 본 발명의 일실시예에 따르면, 종료 감시 스레드 생성부(212)는 종료 차단부(214)에 의해 상기 적어도 하나의 스레드에 대한 종료가 차단되면, 악성 프로그램의 다음 공격을 대비하기 위해 상기 프로세스에 대해 상기 적어도 하나의 종료 감시 스레드를 재생성할 수 있다.In addition, according to an embodiment of the present invention, when the termination monitoring
도 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
본 발명의 일실시예에 따른 악성 프로그램 방어 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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.
상기 종료 허용 여부 판단부는
상기 운영체제의 프로세스 종료 함수의 실행명령을 후킹하여 상기 프로세스 종료 함수가 상기 프로세스를 종료하기 이전에 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단하는 악성 프로그램 방어 장치.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.
상기 종료 허용 여부 판단부는
상기 프로세스에 대한 종료 요청이 허용된 종료 요청이 아닌 경우, 상기 운영체제에 대해 상기 종료 요청이 잘못된 종료 요청임을 알리는 오류 신호를 반환하는 악성 프로그램 방어 장치.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.
상기 종료 감시 스레드 생성부는
상기 생성된 적어도 하나의 종료 감시 스레드를 상기 프로세스를 구성하는 상기 적어도 하나의 스레드에 대한 스레드 목록의 첫 번째 위치로 이동시키는 악성 프로그램 방어 장치.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.
상기 종료 차단부는
상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 프로세스인 경우, 상기 운영체제의 스레드 스케줄링을 중지시키는 스케줄링 중지부; 및
상기 적어도 하나의 스레드에 등록된 종료 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.
상기 적어도 하나의 스레드에 대한 종료가 차단되면, 상기 운영체제의 프로세스 종료 함수로부터 상기 종료 허용 여부 판단부를 우회하여 상기 프로세스의 강제 종료를 요청하는 악성 프로그램의 후킹 정보를 제거하는 후킹 정보 제거부
를 더 포함하는 악성 프로그램 방어 장치.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.
상기 종료 감시 스레드 생성부는
상기 적어도 하나의 스레드에 대한 종료가 차단되면, 상기 프로세스에 대해 상기 적어도 하나의 종료 감시 스레드를 재생성하는 악성 프로그램 방어 장치.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.
상기 허용된 종료 요청인지 여부를 판단하는 단계는
상기 운영체제의 프로세스 종료 함수의 실행명령을 후킹하여 상기 프로세스 종료 함수가 상기 프로세스를 종료하기 이전에 상기 프로세스에 대한 종료 요청이 허용된 종료 요청인지 여부를 판단하는 악성 프로그램 방어 방법.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.
상기 프로세스에 대한 종료 요청이 허용된 종료 요청이 아닌 경우, 상기 운영체제에 대해 상기 종료 요청이 잘못된 종료 요청임을 알리는 오류 신호를 반환하는 단계
를 더 포함하는 악성 프로그램 방어 방법.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.
상기 생성된 적어도 하나의 종료 감시 스레드를 상기 프로세스를 구성하는 상기 적어도 하나의 스레드에 대한 스레드 목록의 첫 번째 위치로 이동시키는 단계
를 더 포함하는 악성 프로그램 방어 방법.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.
상기 적어도 하나의 스레드에 대한 종료를 차단하는 단계는
상기 프로세스가 상기 종료 허용 목록에 등록되어 있지 않은 프로세스인 경우, 상기 운영체제의 스레드 스케줄링을 중지시키는 단계; 및
상기 적어도 하나의 스레드에 등록된 종료 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.
상기 적어도 하나의 스레드에 대한 종료가 차단되면, 상기 프로세스에 대해 상기 적어도 하나의 종료 감시 스레드를 재생성하는 단계
를 더 포함하는 악성 프로그램 방어 방법.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.
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)
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)
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 |
-
2011
- 2011-05-12 KR KR1020110044652A patent/KR101217677B1/en active IP Right Grant
Cited By (1)
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 |