KR100762973B1 - Method and apparatus for detecting and deleting a virus code, and information storage medium storing a program thereof - Google Patents

Method and apparatus for detecting and deleting a virus code, and information storage medium storing a program thereof Download PDF

Info

Publication number
KR100762973B1
KR100762973B1 KR1020070012895A KR20070012895A KR100762973B1 KR 100762973 B1 KR100762973 B1 KR 100762973B1 KR 1020070012895 A KR1020070012895 A KR 1020070012895A KR 20070012895 A KR20070012895 A KR 20070012895A KR 100762973 B1 KR100762973 B1 KR 100762973B1
Authority
KR
South Korea
Prior art keywords
code
program
driver
removal
information
Prior art date
Application number
KR1020070012895A
Other languages
Korean (ko)
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 KR1020070012895A priority Critical patent/KR100762973B1/en
Application granted granted Critical
Publication of KR100762973B1 publication Critical patent/KR100762973B1/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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Abstract

A method and an apparatus for detecting and deleting a virus code of a computer, and a recording medium recording a program for executing the method in the computer are provided to detect and delete even the virus code using a rootkit which can not be detected through a general application program and infects a DLL(Dynamic Link Library) or an SSDT(System Service Dispatcher Table) of a kernel mode. A driver selectively storing information only about codes required for performing system control necessary for detecting and deleting a virus code in an SSDT(System Service Dispatcher Table) of a window operating system is loaded prior to the other driver during system booting(S420). The virus code is detected and cured according as an application program which uses the loaded driver and detects and deletes the virus code(S430,S440).

Description

컴퓨터의 악성코드 탐지 및 제거 방법과 그 장치, 그 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드를 기록한 기록매체 {Method and apparatus for detecting and deleting a virus code, and information storage medium storing a program thereof}Method and apparatus for detecting and deleting a virus code, and information storage medium storing a program

도 1은 악성 프로그램 감염전 일반 프로그램의 실행과정과, 악성코드에 감염된 경우 일반 프로그램 실행과정을 설명하기 위한 참조도,1 is a reference diagram for explaining a process of executing a general program before a malicious program infection and a process of executing a general program when infected with a malicious code;

도 2는 본 발명의 일실시예에 따른 악성코드 탐지 및 제거 프로그램의 실행과정을 설명하기 위한 참조도,2 is a reference diagram for explaining a process of executing a malware detection and removal program according to an embodiment of the present invention;

도 3은 본 발명의 일실시예에 따른 악성코드 탐지 및 제거장치의 구성도,3 is a block diagram of an apparatus for detecting and removing malicious codes according to an embodiment of the present invention;

도 4는 본 발명의 일실시예에 따른 악성코드 탐지 및 제거방법의 흐름도이다.4 is a flowchart illustrating a method for detecting and removing malware according to an embodiment of the present invention.

* 도면의 주요 부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings

110 : 일반 프로그램 120 : DLL110: general program 120: DLL

130 : 시스템 서비스 실행 테이블 140 : 실행함수코드 저장부130: system service execution table 140: execution function code storage unit

150 : 악성코드 210 : 악성코드탐지 및 제거 프로그램150: malware 210: malware detection and removal program

220 : 악성코드탐지 및 제거 드라이버220: malware detection and removal driver

본 발명은 컴퓨터에 감염된 악성 코드의 탐지 및 제거에 관한 것으로, 보다 상세하게는 시스템 서비스 실행 테이블과 별개로 컴퓨터 시스템의 제어에 필요한 필수 실행코드에 관한 정보를 기록한 드라이버를 만들고 이를 이용하여 악성 코드를 탐지하고 제거하는 악성 코드 탐지 및 제거방법과 그 장치, 그 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드를 기록한 기록매체에 관한 것이다.The present invention relates to the detection and removal of malicious code infected with a computer, and more particularly, to create a driver that records information about essential executable code necessary for control of a computer system separately from a system service execution table and to use the malware The present invention relates to a method for detecting and removing malicious code and a device thereof, and a recording medium having recorded thereon program code for executing the method on a computer.

일반적으로 악성 코드란, 불법적인 방법으로 사용자 컴퓨터에 설치되어 상업적인 용도로 활용되는 것으로, 각종 팝업광고, 키워드/URL(Uniform Resource Locator) 가로채기, 시작 페이지 강제 고정, 사용자 컴퓨터를 통한 스팸메일 발송 등 각종 불법적인 활동을 자행하여 사용자들에게 피해를 주는 프로그램을 말한다. 한편 애드웨어(adware)는, 악성코드와 달리 불법적이지는 않지만 광고 프로그램을 사용자 컴퓨터에 설치하여 각종 광고를 사용자 의사와 무관하게 전송하여 사용자 시스템에 영향을 주거나 사용자 권리를 제한하는 프로그램을 말한다.In general, malicious codes are illegally installed on a user's computer and used for commercial purposes. They include various pop-up advertisements, hijacking keyword / URL (Uniform Resource Locator), compulsory start page, and sending spam mail through the user's computer. It refers to a program that harms users by performing various illegal activities. On the other hand, adware, unlike malicious code, refers to a program that installs an advertisement program on a user's computer and transmits various advertisements irrespective of the user's intention, thereby affecting the user system or restricting user rights.

또한 루트킷(rootkit)은 시스템에 칩입한 후 백도어(backdoor)나 트로이 목마를 심거나 칩입흔적을 숨기기 위한 도구 모음이다. 따라서 본 발명에서 탐지되고 제거되는 악성 코드는 본래 의미의 악성 코드뿐만 아니라 애드웨어 및 루트킷까지도 포함된다.Rootkits are also a collection of tools for planting backdoors or Trojan horses or hiding traces of chips after they have been inserted into the system. Therefore, the malicious code detected and removed in the present invention includes not only malicious code in its original meaning, but also adware and rootkits.

한편, 컴퓨터의 부팅시 메모리에 먼저 커널(kernel)이 로딩되고 이후 여러 가지 드라이버(driver)와 애플리케이션 프로그램이 로딩된다. 커널은 운영체제의 가장 중요한 핵심으로서, 운영체제의 다른 모든 부분에 여러 가지 기본적인 서비스를 제공한다. 일반적으로, 커널에는 종료된 입출력 연산 등, 커널의 서비스를 경쟁적으로 요구하는 모든 요청들을 처리하는 인터럽트 처리기와, 어떤 프로그램들이 어떤 순서로 커널의 처리시간을 공유할 것인지를 결정하는 스케줄러, 그리고 스케줄이 끝나면 실제로 각 프로세스들에게 컴퓨터의 사용권을 부여하는 수퍼바이저 등이 포함되어 있다. Meanwhile, when a computer boots, a kernel is first loaded into memory, and then various drivers and application programs are loaded. The kernel is the most important core of the operating system, providing several basic services to all other parts of the operating system. In general, the kernel has an interrupt handler that handles all requests that competitively require the services of the kernel, such as terminated I / O operations, a scheduler that determines which programs share the kernel's processing time, and in what order. After that, it actually includes a supervisor that gives each process a license to the computer.

커널은 또한, 메모리나 저장장치 내에서 운영체제의 주소공간을 관리하고, 이들을 모든 주변장치들과 커널의 서비스들을 사용하는 다른 사용자들에게 고루 나누어주는 메모리 관리자를 가지고 있다. 커널의 서비스는 운영체제의 다른 부분이나, 흔히 시스템 호출이라고 알려진 일련의 프로그램 인터페이스들을 통해 요청된다. 커널 레벨에서 접근되고 실행되는 모드를 커널 모드(kernel mode)라고 하고 응용 프로그램과 같이 사용자 응용 프로그램이 실행되는 모드를 유저 모드(user mode)라고 한다.The kernel also has a memory manager that manages the operating system's address space in memory or storage and distributes it to all peripherals and other users of the kernel's services. Kernel services are requested through other parts of the operating system, or through a series of programmatic interfaces, commonly known as system calls. The mode accessed and executed at the kernel level is called kernel mode, and the mode in which user applications are executed, such as applications, is called user mode.

일반적인 응용 프로그램은 그 프로그램의 실행에 필요한 여러가지 DLL(Dynamic Link Library)을 불러오고, 이 DLL은 커널 모드에서 접근되는 시스템 서비스 실행 테이블(System Service Dispatcher Table, SSDT)을 참조하여 실제 실행 함수들의 코드가 기록되어 있는 위치를 알아내 원하는 기능을 수행한다. A typical application loads a number of DLLs (Dynamic Link Library) needed to execute the program. The DLL refers to the System Service Dispatcher Table (SSDT) accessed in kernel mode, and the code of the actual execution functions is loaded. Find the recorded location and perform the desired function.

따라서 전술한 악성코드가 이러한 DLL이나 시스템 서비스 실행 테이블을 감염시킨 경우에는, 악성코드 탐지 프로그램을 실행하여도 악성코드의 저장위치를 숨기거나 왜곡된 결과를 사용자에게 보여주기 때문에 일반적인 악성코드 탐지 프로그 램으로는 악성코드의 존재 유무의 확인, 실행 중지 및 제거가 매우 어렵다.Therefore, when the above-mentioned malicious code infects such DLL or system service execution table, even if the malware detection program is executed, it hides the storage location of the malicious code or shows the distorted result to the general malware detection program. As a result, it is very difficult to identify, stop, and remove the presence of malicious code.

따라서, 본 발명이 이루고자 하는 기술적 과제는 DLL이나 시스템 서비스 실행 테이블(SSDT)을 감염시키는 악성코드를 탐지하고 제거하기 위하여, 시스템 서비스 실행 테이블과 별개로 컴퓨터 시스템의 제어에 필요한 필수 실행코드에 관한 정보를 기록한 드라이버를 만들고 이를 이용하여 악성 코드를 탐지하고 제거하는 악성 코드 탐지 및 제거방법과 그 장치, 그 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드를 기록한 기록매체를 제공하는 것이다.Accordingly, the technical problem to be achieved by the present invention is to provide information on the necessary execution code necessary for controlling the computer system separately from the system service execution table in order to detect and remove malicious codes infecting the DLL or the system service execution table (SSDT). It provides a method of detecting and removing malicious code that detects and removes malicious code by using a driver that records and uses the device, and a recording medium that records the device and program code for executing the method on a computer.

상기 기술적 과제는 본 발명에 따라, 악성코드 탐지 및 제거에 필요한 시스템 제어를 수행하는 코드에 관한 정보가 기록되어 있는 테이블을 가지고 있는 드라이버를 시스템 부팅시 타 드라이버보다 먼저 로딩하는 단계; 및 상기 로딩된 드라이버를 사용하는 악성코드 탐지 및 제거용 응용 프로그램을 실행시켜 악성코드를 탐지하고 치료하는 단계를 포함하는 것을 특징으로 하는 악성코드 탐지 및 제거방법에 의해서 달성된다.According to an aspect of the present invention, there is provided a method including loading a driver having a table in which information about code for performing system control for malware detection and removal is recorded before other drivers at system booting; And detecting and treating the malicious code by executing an application for detecting and removing the malware using the loaded driver.

상기 드라이버는, 윈도우즈 운영체제의 시스템 서비스 디스패치 테이블(SSDT)에서 시스템 제어를 수행하는데 필요한 코드에 관한 정보만을 선택적으로 저장하고 있는 것이 바람직하다.Preferably, the driver selectively stores only information about a code necessary to perform system control in the system service dispatch table (SSDT) of the Windows operating system.

상기 시스템 제어를 수행하는데 필요한 코드는 디스크 읽고 쓰기를 수행하는 함수, 레지스트리 읽고 쓰기를 수행하는 함수 또는 실행프로그램의 관리 및 제어를 수행하는 함수를 포함하는 것이 바람직하다.The code required to perform the system control preferably includes a function for performing disk reads and writes, a function for performing registry reads and writes, or a function for managing and controlling an executable program.

한편, 본 발명의 다른 분야에 따르면, 상기 기술적 과제는 악성코드 탐지 및 제거에 필요한 시스템 제어를 수행하는 코드에 관한 정보가 기록되어 있는 테이블을 가지고 있고, 시스템 부팅시 타 드라이버보다 먼저 로딩되는 악성코드 탐지 및 제거 드라이버; 및 상기 로딩된 악성코드 관련 드라이버를 사용하여 악성코드를 탐지하고 치료하는 악성코드 탐지 및 제거용 응용 프로그램을 실행시키는 프로그램 실행부를 포함하는 것을 특징으로 하는 악성코드 탐지 및 제거장치에 의해서도 달성된다.On the other hand, according to another field of the present invention, the technical problem has a table that records information on the code for performing the system control necessary for malicious code detection and removal, and the malicious code that is loaded before other drivers at system boot Detection and removal drivers; And a program execution unit that executes an application for detecting and removing malicious codes for detecting and treating malicious codes using the loaded malicious code-related driver.

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

도 1은 악성 프로그램 감염전 일반 프로그램의 실행과정과, 악성코드에 감염된 경우 일반 프로그램 실행과정을 설명하기 위한 참조도이다.1 is a reference diagram for explaining a process of executing a general program before a malicious program infection and a process of executing a general program when infected with a malicious code.

유저 모드(user mode)에서 실행되는 일반적인 응용 프로그램(110)들은 그 실행에 필요한 여러가지 기능을 구현한 프로그램 모듈인 DLL(120)들을 연결하여 실행하게 된다. 유저 모드에서 일반적으로 실행되는 악성코드 탐지 및 제거 프로그램의 경우도 마찬가지로 DLL과 같은 커널 모드의 라이브러리를 사용한다.The general application programs 110 running in the user mode are executed by connecting DLLs 120, which are program modules that implement various functions required for the execution. Malware detection and removal programs that normally run in user mode use the same kernel mode libraries as DLLs.

이렇게 프로그램이 실행되는 과정에서 디스크 읽기 또는 쓰기, 실행중인 프로그램의 관리 또는 제어 등과 같은 시스템 서비스의 접근이 필요한 경우에는, 이러한 기능을 실행하는 실제 함수 코드가 저장되어 있는 저장부(140)에서 그 함수 코드의 저장위치를 알아야 한다. 시스템 서비스 실행 테이블(SSDT)(130)은 이러한 실제 함수 코드가 저장되어 있는 저장 위치를 기록하고 있다.If a program service is required to access a system service such as reading or writing a disk or managing or controlling a running program, the storage unit 140 stores the actual function code for executing the function. You need to know where the code is stored. The system service execution table (SSDT) 130 records a storage location where such actual function code is stored.

즉, 일반 프로그램(110)의 실행과정을 보다 상세하게 설명하면, 일반 프로그램(110)이 실행되면서 그와 관련된 모듈의 DLL(120)을 연결하여 함께 실행하고, DLL(120)은 이러한 기능을 실행하는데 필요한 기본적인 실제 함수가 실행함수코드 저장부(140) 내에서 어느 위치에 기록되어 있는지 알아내기 위해 시스템 서비스 실행 테이블(SSDT)(130)을 참조한다.That is, when the general program 110 is described in more detail, the general program 110 is executed while the DLL 120 of the module associated with it is connected and executed together, and the DLL 120 executes such a function. Reference is made to the System Service Execution Table (SSDT) 130 to find out where the basic actual functions needed to do so are recorded in the execution function code storage 140.

한편 악성코드(150)는 일반 프로그램(110)의 실행 도중에 여러가지 방법으로 시스템 감염을 시도한다. 예를 들어, 일반 프로그램(110)의 실행에 필요한 여러 DLL(120)로 위장하여 일반 프로그램에 붙는 경우가 있고, 여러 DLL(120) 중에서 특히 시스템 제어에 필요한 모듈인 NTDLL.DLL 내의 주요 함수들의 주소를 가로채 악성코드 자체의 코드가 실행되도록 하거나 악성 코드의 존재를 숨기는 경우가 있으며, 시스템 서비스 실행 테이블(SSDT)(130)에 저장된 값을 수정하여 본래 목적의 코드를 실행하기 전에 악성코드 자체를 실행하거나 악성코드의 존재를 숨기는 경우 등이 있다.Meanwhile, the malicious code 150 attempts to infect the system in various ways during the execution of the general program 110. For example, it may be disguised as a number of DLLs 120 necessary for execution of the general program 110 and attached to the general program, and among the various DLLs 120, in particular, the addresses of main functions in NTDLL.DLL, a module required for system control. Intercepts the code of the malicious code itself to be executed or hides the existence of the malicious code, and modifies the value stored in the System Service Execution Table (SSDT) 130 to prevent the malware itself from executing before the original purpose code is executed. Running or hiding the presence of malware.

이와 같은 방법으로 악성코드가 감염된 경우 일반 프로그램(110)의 실행 중에 사용자도 모르게 악성 프로그램이 실행되기도 하며, 시스템 서비스 실행 테이블(SSDT)(130)과 같이 시스템 제어에 필요한 정보를 조작하여 악성코드가 현재 시행되고 있다는 사실을 숨기거나 악성코드의 저장위치를 숨기는 등의 루트킷이 행해지기도 한다. 따라서 윈도우 탐색기나 다른 프로그램을 이용하여 악성코드의 존재를 찾으려고 해서 이미 감염된 DLL(120) 이나 시스템 서비스 실행 테이 블(SSDT)(130)로 인해 악성코드의 존재가 숨겨지며 악성코드의 의도에 따라 조작된 결과가 사용자에게 제공된다.When malware is infected in this way, the malicious program may be executed without the user's knowledge during the execution of the general program 110, and the malware may be manipulated by manipulating information required for system control such as the system service execution table (SSDT) 130. Rootkits can also be used to hide the fact that they are currently being implemented or to hide the location of malicious code. Therefore, when trying to find the existence of malicious code using Windows Explorer or other programs, the existence of the malicious code is hidden by the DLL 120 or the system service execution table (SSDT) 130 that is already infected and manipulated according to the intention of the malicious code. Results are provided to the user.

도 2는 본 발명의 일실시예에 따른 악성코드 탐지 및 제거 프로그램의 실행과정을 설명하기 위한 참조도이다.2 is a reference diagram for explaining a process of executing a malicious code detection and removal program according to an embodiment of the present invention.

본 발명의 악성코드탐지 및 제거 프로그램(210)은 일반 프로그램들과는 달리 시스템 서비스 실행 테이블(130)을 참조하여 실제 실행 함수의 코드가 저장되어 있는 위치를 알아내는 것이 아니라, 시스템 서비스 실행 테이블(130)과는 별도로 만들어진 악성코드탐지 및 제거 드라이버(220)를 참조하여 실제 실행 함수의 코드가 저장되어 있는 위치를 알아낸다. 따라서, 악성코드(150)가 DLL(120) 또는 시스템 서비스 실행 테이블(130)을 감염시킨다 하더라도 실행 함수의 코드(140)가 저장되어 있는 정확한 위치를 알아낼 수 있다.Unlike general programs, the malware detection and removal program 210 of the present invention does not find out the location where the code of the actual execution function is stored by referring to the system service execution table 130, but the system service execution table 130. With reference to the malware detection and removal driver 220, which is made separately, the location of the actual execution function code is stored. Therefore, even if the malicious code 150 infects the DLL 120 or the system service execution table 130, the exact location where the code 140 of the execution function is stored can be determined.

이러한 드라이버(220)는 운영 체제의 부팅시 다른 드라이버보다 먼저 로딩되어 시스템의 주요 서비스의 실행함수 주소를 가져온다. 따라서 악성 코드에 감염된 다른 시스템 드라이버보다 먼저 로딩되어 실제 함수들의 코드가 저장되어 있는 주소를 확보했기 때문에 시스템 서비스 실행 테이블(SSDT)의 값을 참조하지 않고 직접 시스템 관련 함수들의 실행이 가능하다. 한편, 외부적인 요인에 의하여 드라이버(220)가 부팅 이후에 로딩 되는 경우에는 운영체제 및 버전 별로 미리 준비된 실행함수 주소를 이용한다. 즉, 본 발명에서는 감염된 DLL 이나 시스템 서비스 실행 테이블(SSDT)을 참조하지 않고 별도의 드라이버(220)를 참조하기 때문에 악성 코드의 직접 탐지가 가능하다.These drivers 220 are loaded before other drivers at boot of the operating system to get the address of the execution function of the main service of the system. Therefore, since it is loaded before other system drivers infected with malicious code and secures the address where the codes of actual functions are stored, system related functions can be executed directly without referring to the value of the system service execution table (SSDT). On the other hand, when the driver 220 is loaded after booting due to external factors, an execution function address prepared in advance for each OS and version is used. That is, in the present invention, since a separate driver 220 is referred to without referring to an infected DLL or a system service execution table (SSDT), malicious code can be directly detected.

드라이버(220)가 시스템 주요 서비스의 실행함수 주소를 확보하는 과정을 정리하면, 운영체제의 부팅시 드라이버(220)가 타 드라이버보다 먼저 로딩되는 경우에는 타 드라이버보다 먼저 로드되어 아직 감염되지 않은 상태의 시스템 서비스 실행 테이블(SSDT)을 참조하여 확보한다. 한편 드라이브버(220)가 운영체제의 부팅 이후에 로딩되는 경우에는 시스템 운영체제 및 버전 정보에 따라 미리 알려진 실행 함수 주소를 이용한다. 다시 말하면, 실행 함수 주소는 같은 버전의 운영체제의 경우 거의 동일하다는 점을 이용하여 실행 함수 주소를 미리 확보할 수 있다.When the driver 220 arranges the process of obtaining the execution function address of the system main service, when the driver 220 is loaded before other drivers when the operating system is booted, the system is loaded before other drivers and is not yet infected. Obtain by referring to service execution table (SSDT). On the other hand, when the drive server 220 is loaded after the boot of the operating system uses a known execution function address according to the system operating system and version information. In other words, the execution function address can be secured in advance by using the fact that the execution function address is almost the same for the same version of the operating system.

도 3은 본 발명의 일실시예에 따른 악성코드 탐지 및 제거장치의 구성도이다.3 is a block diagram of an apparatus for detecting and removing malicious codes according to an embodiment of the present invention.

악성코드 탐지 및 제거장치는, 악성코드 탐지 및 제거 드라이버(220)와 프로그램 실행부(300)를 포함한다. 악성코드 탐지 및 제거 드라이버(220)는 전술한 바와 같이 악성코드 탐지 및 제거에 필요한 시스템 제어를 수행하는 코드에 관한 정보가 기록되어 있는 테이블을 가지고 있고, 시스템 부팅시 타 드라이버보다 먼저 로딩된다. 즉, 악성코드 탐지 및 제거 드라이버(220)는 윈도우즈 운영체제의 시스템 서비스 디스패치 테이블(SSDT)에서 시스템 제어를 수행하는데 필요한 코드에 관한 정보만을 선택적으로 저장하고 있다. 이러한 코드의 일예로, 디스크 읽고 쓰기를 수행하는 함수, 레지스트리 읽고 쓰기를 수행하는 함수, 또는 실행프로그램의 관리 및 제어를 수행하는 함수 등을 들 수 있다.The malware detection and removal apparatus includes a malware detection and removal driver 220 and a program execution unit 300. As described above, the malware detection and removal driver 220 has a table in which information on code for performing system control for malware detection and removal is recorded, and is loaded before other drivers at system boot. In other words, the malware detection and removal driver 220 selectively stores only information about a code necessary to perform system control in the system service dispatch table (SSDT) of the Windows operating system. Examples of such code include functions for performing disk reads and writes, functions for performing registry reads and writes, or functions for managing and controlling executable programs.

프로그램 실행부(300)는 이렇게 로딩된 악성코드 관련 드라이버(220)를 사용하여 악성코드를 탐지하고 치료하는 악성코드 탐지 및 제거용 응용 프로그램을 실 행시킨다.The program execution unit 300 executes an application for detecting and removing malicious codes that detects and treats malicious codes using the malware-related driver 220 loaded as described above.

프로그램 실행부(300)는 악성코드 탐지부(310), 드라이버 로딩부(320) 및 악성코드 제거부(330)를 포함한다. 악성코드 탐지부(310)는 악성코드 정보 DB(340)를 참조하여 시스템의 메모리나 저장장치에 감염되어 있는 악성코드를 찾아낸다. 이를 위하여 드라이버 로딩부(320)는 악성코드 탐지 및 제거 드라이버(220)를 다른 드라이버보다 먼저 로딩한다. 악성코드 제거부(330)는 악성코드 탐지부(310)에서 탐지한 악성코드를 제거한다. 악성코드의 제거는 악성코드 탐지 및 제거 드라이버에 의해 수행되며, 여러가지 악성 코드 제거 알고리즘이 사용될 수 있다. 한편 악성코드 정보 DB(340)는 현재까지 발견된 악성코드에 관한 데이터를 저장하고 있으며 수시로 업데이트될 수 있다.The program execution unit 300 includes a malware detection unit 310, a driver loading unit 320, and a malicious code removal unit 330. The malicious code detection unit 310 refers to the malicious code information DB 340 and finds malicious codes infected with a memory or a storage device of the system. To this end, the driver loading unit 320 loads the malware detection and removal driver 220 before other drivers. The malicious code removal unit 330 removes the malicious code detected by the malicious code detection unit 310. Malware removal is performed by malware detection and removal drivers, and various malware removal algorithms can be used. Meanwhile, the malicious code information DB 340 stores data related to the malware found so far and may be updated from time to time.

도 4는 본 발명의 일실시예에 따른 악성코드 탐지 및 제거방법의 흐름도이다.4 is a flowchart illustrating a method for detecting and removing malware according to an embodiment of the present invention.

먼저 악성코드탐지 및 제거에 필요한 시스템 제어를 수행하는 코드에 관한 정보를 기록한 드라이버를 준비한다(S410). 그리고 이 드라이버를 시스템 부팅시 타 드라이버보다 먼저 로딩한다(S420). 한편, 이 드라이버는 윈도우즈 운영체제의 시스템 서비스 디스패치 테이블(SSDT)에서 시스템 제어를 수행하는데 필요한 코드에 관한 정보만을 선택적으로 저장하고 있다. 다음으로 이렇게 로딩된 드라이버를 사용하는 악성코드 탐지 및 제거용 응용 프로그램을 실행시켜(S430), 악성코드를 탐지하고 치료한다(S440).First, prepare a driver that records information on code for performing system control necessary for malware detection and removal (S410). The driver loads the driver before other drivers at system boot (S420). On the other hand, the driver selectively stores only the information about the code necessary to perform system control in the system service dispatch table (SSDT) of the Windows operating system. Next, by executing an application for detecting and removing malware using the loaded driver (S430), the malware is detected and cured (S440).

한편, 악성코드탐지 및 제거방법은 컴퓨터 프로그램으로 작성 가능하다. 상 기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 악성코드탐지 및 제거방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체, 및 캐리어 웨이브 매체를 포함한다.On the other hand, malicious code detection and removal method can be written by a computer program. Codes and code segments constituting the program can be easily inferred by a computer programmer in the art. In addition, the program is stored in a computer readable media, and read and executed by a computer to implement a method for detecting and removing malware. The information storage medium includes a magnetic recording medium, an optical recording medium, and a carrier wave medium.

이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

전술한 바와 같이 본 발명에 따르면, DLL이나 커널 모드의 시스템 서비스 실행 테이블(SSDT)을 감염시켜 일반적인 응용 프로그램으로는 탐지할 수 없는 루트킷을 이용한 악성코드까지도 탐지하고 제거할 수 있다.As described above, according to the present invention, a DLL or a kernel mode system service execution table (SSDT) can be infected to detect and remove malicious code using a rootkit that cannot be detected by a general application program.

Claims (9)

삭제delete 윈도우 운영체제의 시스템 서비스 디스패치 테이블(SSDT)에서 악성코드 탐지 및 제거에 필요한 시스템 제어를 수행하는데 필요한 코드에 관한 정보만을 선택적으로 저장하고 있는 드라이버를 시스템 부팅시 타 드라이버보다 먼저 로딩하는 단계; 및Loading a driver that selectively stores only information on a code required to perform system control for malware detection and removal in a system service dispatch table (SSDT) of a Windows operating system before other drivers at system boot time; And 상기 로딩된 드라이버를 사용하는 악성코드 탐지 및 제거용 응용 프로그램을 실행시켜 악성코드를 탐지하고 치료하는 단계를 포함하는 것을 특징으로 하는 악성코드 탐지 및 제거방법.The malware detection and removal method comprising the step of detecting and treating malware by executing a malware detection and removal application using the loaded driver. 제2항에 있어서,The method of claim 2, 상기 시스템 제어를 수행하는데 필요한 코드는 디스크 읽고 쓰기를 수행하는 함수, 레지스트리 읽고 쓰기를 수행하는 함수 또는 실행프로그램의 관리 및 제어를 수행하는 함수를 포함하는 것을 특징으로 하는 악성코드 탐지 및 제거방법.The code necessary to perform the system control includes a function for performing disk read and write, a function for performing registry read and write, or a function for managing and controlling an executing program. 제2항 또는 제3항에 있어서,The method according to claim 2 or 3, 상기 시스템 제어를 수행하는데 필요한 코드에 관한 정보는 상기 코드가 기록되어 있는 위치에 관한 정보인 것을 특징으로 하는 악성코드 탐지 및 제거방법.And information about a code necessary to perform the system control is information about a location where the code is recorded. 삭제delete 윈도우 운영체제의 시스템 서비스 디스패치 테이블(SSDT)에서 악성코드 탐지 및 제거에 필요한 시스템 제어를 수행하는데 필요한 코드에 관한 정보만을 선택적으로 저장하고 있고, 시스템 부팅시 타 드라이버보다 먼저 로딩되는 악성코드 탐지 및 제거 드라이버; 및In the system service dispatch table (SSDT) of the Windows operating system, it selectively stores only the information on the code needed to perform system control for malware detection and removal, and it detects and removes malwares that are loaded before other drivers at system boot time. ; And 상기 로딩된 악성코드 관련 드라이버를 사용하여 악성코드를 탐지하고 치료하는 악성코드 탐지 및 제거용 응용 프로그램을 실행시키는 프로그램 실행부를 포함하는 것을 특징으로 하는 악성코드 탐지 및 제거장치.And a program execution unit that executes an application for detecting and removing malicious codes for detecting and treating malicious codes using the loaded malware related driver. 제6항에 있어서,The method of claim 6, 상기 시스템 제어를 수행하는데 필요한 코드는 디스크 읽고 쓰기를 수행하는 함수, 레지스트리 읽고 쓰기를 수행하는 함수 또는 실행프로그램의 관리 및 제어를 수행하는 함수를 포함하는 것을 특징으로 하는 악성코드 탐지 및 제거장치.The code necessary to perform the system control includes a function for performing disk read and write, a function for performing registry read and write, or a function for managing and controlling an executing program. 제6항 또는 제7항에 있어서,The method according to claim 6 or 7, 상기 시스템 제어를 수행하는데 필요한 코드에 관한 정보는 상기 코드가 기록되어 있는 위치에 관한 정보인 것을 특징으로 하는 악성코드 탐지 및 제거장치.And information about a code required to perform the system control is information about a location where the code is recorded. 윈도우 운영체제의 시스템 서비스 디스패치 테이블(SSDT)에서 악성코드 탐지 및 제거에 필요한 시스템 제어를 수행하는데 필요한 코드에 관한 정보만을 선택적으로 저장하고 있는 드라이버를 시스템 부팅시 타 드라이버보다 먼저 로딩하는 단계; 및Loading a driver that selectively stores only information on a code required to perform system control for malware detection and removal in a system service dispatch table (SSDT) of a Windows operating system before other drivers at system boot time; And 상기 로딩된 드라이버를 사용하는 악성코드 탐지 및 제거용 응용 프로그램을 실행시켜 악성코드를 탐지하고 치료하는 단계를 포함하는 것을 특징으로 하는 악성코드 탐지 및 제거방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.By executing a malicious code detection and removal application using the loaded driver to detect and remove the malicious code to a computer recording a program for executing the malware detection and removal method, characterized in that the computer Readable record carrier.
KR1020070012895A 2007-02-07 2007-02-07 Method and apparatus for detecting and deleting a virus code, and information storage medium storing a program thereof KR100762973B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070012895A KR100762973B1 (en) 2007-02-07 2007-02-07 Method and apparatus for detecting and deleting a virus code, and information storage medium storing a program thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070012895A KR100762973B1 (en) 2007-02-07 2007-02-07 Method and apparatus for detecting and deleting a virus code, and information storage medium storing a program thereof

Publications (1)

Publication Number Publication Date
KR100762973B1 true KR100762973B1 (en) 2007-10-02

Family

ID=39418997

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070012895A KR100762973B1 (en) 2007-02-07 2007-02-07 Method and apparatus for detecting and deleting a virus code, and information storage medium storing a program thereof

Country Status (1)

Country Link
KR (1) KR100762973B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011037321A2 (en) * 2009-09-24 2011-03-31 (주)잉카인터넷 Windows kernel alteration searching method
KR101043299B1 (en) 2009-07-21 2011-06-22 (주) 세인트 시큐리티 Method, system and computer readable recording medium for detecting exploit code
WO2012005565A1 (en) * 2010-07-06 2012-01-12 Mimos Berhad A method for rootkit resistance based on a trusted chip
KR101688632B1 (en) * 2015-07-31 2016-12-22 한국전자통신연구원 Method and apparatus for detecting loading of library
CN107357667A (en) * 2017-06-26 2017-11-17 北京金山安全管理系统技术有限公司 Application layer and the means of communication and device of driving layer

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100613126B1 (en) 2005-07-29 2006-08-17 (주)해피바이러스 Method and apparatus for deleting virus code, and information storage medium storing a program thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100613126B1 (en) 2005-07-29 2006-08-17 (주)해피바이러스 Method and apparatus for deleting virus code, and information storage medium storing a program thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
고흥환, "루트킷(rootkit)을 이용하는 악성코드", Monthly 사이버 시큐리티, 국가사이버안전센터, 2005년 11월호

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101043299B1 (en) 2009-07-21 2011-06-22 (주) 세인트 시큐리티 Method, system and computer readable recording medium for detecting exploit code
WO2011037321A2 (en) * 2009-09-24 2011-03-31 (주)잉카인터넷 Windows kernel alteration searching method
WO2011037321A3 (en) * 2009-09-24 2011-05-12 (주)잉카인터넷 Windows kernel alteration searching method
KR101042858B1 (en) 2009-09-24 2011-06-20 주식회사 잉카인터넷 detecting method whether Windows kernel is modulated or not
WO2012005565A1 (en) * 2010-07-06 2012-01-12 Mimos Berhad A method for rootkit resistance based on a trusted chip
KR101688632B1 (en) * 2015-07-31 2016-12-22 한국전자통신연구원 Method and apparatus for detecting loading of library
CN107357667A (en) * 2017-06-26 2017-11-17 北京金山安全管理系统技术有限公司 Application layer and the means of communication and device of driving layer

Similar Documents

Publication Publication Date Title
EP3123311B1 (en) Malicious code protection for computer systems based on process modification
US8904537B2 (en) Malware detection
US7418729B2 (en) Heuristic detection of malicious computer code by page tracking
US11822654B2 (en) System and method for runtime detection, analysis and signature determination of obfuscated malicious code
US9178900B1 (en) Detection of advanced persistent threat having evasion technology
US7437759B1 (en) Kernel mode overflow attack prevention system and method
US8495741B1 (en) Remediating malware infections through obfuscation
US9015840B2 (en) Portable media system with virus blocker and method of operation thereof
US7251735B2 (en) Buffer overflow protection and prevention
US8079032B2 (en) Method and system for rendering harmless a locked pestware executable object
US7284276B2 (en) Return-to-LIBC attack detection using branch trace records system and method
JP2006134307A (en) System and method for aggregating knowledge base of antivirus software applications
US6907524B1 (en) Extensible firmware interface virus scan
KR100762973B1 (en) Method and apparatus for detecting and deleting a virus code, and information storage medium storing a program thereof
US20070261117A1 (en) Method and system for detecting a compressed pestware executable object
US8898591B2 (en) Program removal
US7484239B1 (en) Detecting heap and stack execution in the operating system using regions
US7281271B1 (en) Exception handling validation system and method
EP3769247B1 (en) System and method for preventing unwanted bundled software installation
US7926106B1 (en) Utilizing early exclusive volume access and direct volume manipulation to remove protected files
US8572742B1 (en) Detecting and repairing master boot record infections
US20060080518A1 (en) Method for securing computers from malicious code attacks
KR100613126B1 (en) Method and apparatus for deleting virus code, and information storage medium storing a program thereof
Erdélyi Hide’n’seek? anatomy of stealth malware
US20110213809A1 (en) Method, a system and a computer program product for protecting a data-storing device

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Publication of correction
LAPS Lapse due to unpaid annual fee
FPAY Annual fee payment

Payment date: 20140611

Year of fee payment: 7

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20150130

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150911

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160901

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180320

Year of fee payment: 11