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

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

Info

Publication number
KR100613126B1
KR100613126B1 KR1020050069216A KR20050069216A KR100613126B1 KR 100613126 B1 KR100613126 B1 KR 100613126B1 KR 1020050069216 A KR1020050069216 A KR 1020050069216A KR 20050069216 A KR20050069216 A KR 20050069216A KR 100613126 B1 KR100613126 B1 KR 100613126B1
Authority
KR
South Korea
Prior art keywords
malicious code
computer
level
malware
kernel
Prior art date
Application number
KR1020050069216A
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 KR1020050069216A priority Critical patent/KR100613126B1/en
Application granted granted Critical
Publication of KR100613126B1 publication Critical patent/KR100613126B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

컴퓨터의 주 메모리, 데이터 또는 프로그램에서 악성 코드를 찾아 제거하는 방법 및 그 장치, 그 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드를 기록한 기록매체가 개시된다. 본 발명에 따라, 컴퓨터에서의 악성 코드 제거 방법에 있어서, 상기 컴퓨터의 애플리케이션 레벨에서 프로그램을 실행시켜 악성 코드를 탐지하여 치료하는 단계; 상기 애플리케이션 레벨에서 치료되지 않는 악성 코드의 존재여부를 판단하는 단계; 상기 애플리케이션 레벨에서 치료되지 않는 악성 코드가 존재하면, 커널 레벨에서의 악성 코드 치료 엔진이, 상기 컴퓨터의 부팅시 타 드라이버나 애플리케이션보다 우선적으로 주 메모리에 로딩되도록 로딩 순서를 조작하고 상기 컴퓨터의 재부팅 명령을 내리는 단계; 및 상기 재부팅에 의해 상기 악성 코드 치료 엔진이 로딩되어 커널 레벨에서 악성 코드를 찾아 치료 또는 삭제하는 단계를 포함하는 것을 특징으로 한다. 이에 의해, 애플리케이션 레벨과 커널 레벨에서 각각 악성 코드를 탐지하여 치료함으로써 보다 많은 종류의 악성 코드를 찾아 제거할 수 있다.Disclosed are a method for finding and removing malicious code from a main memory, data, or program of a computer, and a device and a recording medium recording program code for executing the method on a computer. According to the present invention, a method of removing malicious code in a computer, the method comprising: detecting and treating malicious code by executing a program at an application level of the computer; Determining the existence of malicious code that is not treated at the application level; If there is malicious code that is not cleaned at the application level, the malware cleaning engine at the kernel level manipulates the loading order so that it loads into main memory preferentially over other drivers or applications when the computer boots up and reboots the computer. Unloading; And loading the malicious code treatment engine by the reboot to find and treat or delete malicious code at a kernel level. Thus, by detecting and treating malicious code at the application level and the kernel level, more types of malicious code can be found and removed.

Description

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

도 1은 본 발명의 바람직한 실시예에 따른 악성 코드 제거 방법을 설명하기 위한 참조도,1 is a reference diagram for explaining a malicious code removal method according to a preferred embodiment of the present invention,

도 2는 본 발명의 바람직한 실시예에 따른 악성 코드 제거 장치의 소프트웨어 구성도,2 is a software configuration diagram of an apparatus for removing malicious code according to a preferred embodiment of the present invention;

도 3은 본 발명의 바람직한 실시예에 따른 악성 코드 제거 방법의 플로우차트이다.3 is a flowchart of a malicious code removal method according to a preferred embodiment of the present invention.

본 발명은 컴퓨터에 감염된 악성 코드의 제거에 관한 것으로, 보다 상세하게는 컴퓨터의 주 메모리, 데이터 또는 프로그램에서 악성 코드를 찾아 제거하는 방법 및 그 장치, 그 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드를 기록한 기록매체에 관한 것이다.The present invention relates to the removal of malicious code infected with a computer, and more particularly, to a method for finding and removing malicious code from a main memory, data or a program of the computer, and a device and a program code for executing the method on the computer. It relates to a recording medium.

일반적으로 악성 코드란, 불법적인 방법으로 사용자 컴퓨터에 설치되어 상업적인 용도로 활용되는 것으로, 각종 팝업광고, 키워드/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. Therefore, the malicious code detected and removed in the present invention includes not only malicious code in its original meaning, but also adware.

한편, 컴퓨터의 부팅시 메모리에 먼저 커널(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. 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 set of program interfaces, commonly known as system calls.

전술한 악성 코드는 일반적으로 애플리케이션 레이어에서 실행되므로 이를 체크하고 제거하는 프로그램도 애플리케이션 레벨에서 실행시켜 악성 코드의 제거가 가능하였으나, 최근에는 이러한 애플리케이션 레벨의 프로그램이 제거하지 못하는 악성 코드가 등장하였다. 이러한 악성 코드는 악성 코드 제거 프로그램에 의해 삭제되지 않도록 데이터를 조작하거나 다른 정상적인 프로그램이나 데이터에 붙어 숨어 있다가 컴퓨터의 전원을 오프하는 등의 특정한 이벤트 발생시에 자신을 영구 메모리로 복제하여 악성 코드의 퇴치를 어렵게 한다.Since the above-mentioned malicious code is generally executed at the application layer, a program for checking and removing the malware can also be executed at the application level to remove the malicious code. Recently, malicious code that cannot be removed by such an application level program has appeared. These malware can be used to combat malicious code by copying itself to permanent memory when certain events occur, such as manipulating the data so that it is not deleted by the malware removal program, hiding it from other normal programs or data, and turning off the computer. Makes it difficult.

따라서, 본 발명이 이루고자 하는 기술적 과제는 커널 레벨에서 실행되는 프로그램으로만 완전히 치료될 수 있는 악성코드를 제거하기 위하여, 악성 코드 제거 프로그램을 상기 악성 코드보다 먼저 메모리에 로딩되도록 하여 악성 코드를 제거하는 악성 코드 제거 방법 및 그 장치, 그 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드를 기록한 기록매체를 제공하는 것이다.Accordingly, the technical problem to be achieved by the present invention is to remove malicious code by loading the malicious code removal program into the memory before the malicious code in order to remove the malicious code that can be completely cured only by the program running at the kernel level. A method of removing malicious code, a device thereof, and a recording medium having recorded thereon program code for executing the method on a computer are provided.

상기 기술적 과제는 본 발명에 따라, 컴퓨터에서의 악성 코드 제거 방법에 있어서, 상기 컴퓨터의 애플리케이션 레벨에서 프로그램을 실행시켜 악성 코드를 탐지하여 치료하는 단계; 상기 애플리케이션 레벨에서 치료되지 않는 악성 코드의 존재여부를 판단하는 단계; 상기 애플리케이션 레벨에서 치료되지 않는 악성 코드가 존재하면, 커널 레벨에서의 악성 코드 치료 엔진이, 상기 컴퓨터의 부팅시 타 드라이버나 애플리케이션보다 우선적으로 주 메모리에 로딩되도록 로딩 순서를 조작하고 상기 컴퓨터의 재부팅 명령을 내리는 단계; 및 상기 재부팅에 의해 상기 악성 코드 치료 엔진이 로딩되어 커널 레벨에서 악성 코드를 찾아 치료 또는 삭제하는 단계를 포함하는 것을 특징으로 하는 악성 코드 제거 방법에 의해 달성된다.According to an aspect of the present invention, there is provided a method of removing malicious code from a computer, the method comprising: detecting and treating malicious code by executing a program at an application level of the computer; Determining the existence of malicious code that is not treated at the application level; If there is malicious code that is not cleaned at the application level, the malware cleaning engine at the kernel level manipulates the loading order so that it loads into main memory preferentially over other drivers or applications when the computer boots up and reboots the computer. Unloading; And loading the malicious code treatment engine by the reboot to find and treat or delete malicious code at a kernel level.

상기 악성 코드 제거 방법은, 상기 컴퓨터의 부팅시 드라이버의 로딩 순서를 원래대로 복원하는 단계를 더 포함하는 것이 바람직하다.The malicious code removal method may further include restoring the loading order of the driver when the computer boots.

상기 치료 또는 삭제 단계는, 커널 레벨에서 제거될 악성 코드 관련 정보만을 읽어와, 커널 레벨에서 악성 코드를 찾아 치료 또는 삭제하는 것이 더욱 바람직하다.In the treating or deleting step, it is more preferable to read only the malicious code related information to be removed at the kernel level and to find and treat or delete the malicious code at the kernel level.

한편, 본 발명의 다른 분야에 따르면, 상기 기술적 과제는 컴퓨터에서의 악성 코드 제거 장치에 있어서, 상기 컴퓨터의 애플리케이션 레벨에서 실행되어 악성 코드를 탐지하는 악성 코드 탐지부; 상기 탐지된 악성 코드를 치료하거나 삭제하는 악성코드 치료부; 상기 애플리케이션 레벨에서 치료되지 않는 악성 코드의 존재여부를 판단하는 판단부; 상기 애플리케이션 레벨에서 치료되지 않는 악성 코드가 존재하면, 커널 레벨에서의 악성 코드 치료 엔진이 상기 컴퓨터의 부팅시 타 드라이버나 애플리케이션보다 우선적으로 주 메모리에 로딩되도록 로딩 순서를 조작하고 상기 컴퓨터의 재부팅 명령을 내리는 로딩 순서 조작부; 및 상기 컴퓨터의 재부팅 후 커널 레벨에서 악성 코드를 찾아 치료 또는 제거하는 커널 레벨 악성 코드 치료 엔진을 포함하는 것을 특징으로 하는 악성 코드 제거 장치에 의해서도 달성된다.On the other hand, according to another field of the present invention, the technical problem is a malicious code removal device in a computer, the malicious code detection unit for executing malicious code to be executed at the application level of the computer; A malicious code treatment unit for treating or deleting the detected malicious code; Determination unit for determining the existence of malicious code that is not treated at the application level; If there is malicious code that is not cleaned at the application level, the malware cleaning engine at the kernel level manipulates the loading sequence to load the main memory in preference to other drivers or applications when the computer boots, and to reboot the computer. Unloading loading sequence control unit; And it is also achieved by the malware removal apparatus comprising a kernel-level malware treatment engine that finds and repairs or removes malicious code at the kernel level after rebooting the computer.

한편, 본 발명의 다른 분야에 따르면, 상기 기술적 과제는 컴퓨터에서의 악 성 코드 제거 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 있어서, 상기 컴퓨터의 운영체계(OS) 위에서 실행되며, 악성 코드를 찾아 치료 또는 제거하고, 제거되지 않는 악성 코드가 존재하면 커널 레벨에서의 악성 코드 치료 엔진이 상기 컴퓨터의 부팅시에 타 드라이버보다 주 메모리에 먼저 로딩되도록 로딩 순서를 조정한 후 상기 컴퓨터를 재부팅시키는 제1프로그램 코드; 및 상기 컴퓨터의 재부팅 후 커널 레벨에서 악성 코드를 찾아 치료 또는 제거하는 상기 커널 레벨에서의 악성 코드 치료 엔진을 갖고 있는 제2프로그램 코드를 포함하는 것을 특징으로 하는 기록매체에 의해서도 달성된다.On the other hand, according to another field of the present invention, the technical problem is a computer-readable recording medium that records a program for executing the malicious code removal method in a computer, on the operating system (OS) of the computer Finds, cleans, or removes malicious code, and if there is malware that cannot be removed, it adjusts the loading order so that the malware-cleaning engine at kernel level loads into main memory before other drivers at boot time of the computer. First program code for rebooting the computer; And a second program code having a malicious code treatment engine at the kernel level for finding, treating or removing malicious code at the kernel level after rebooting the computer.

이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대해 상세히 설명한다.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 malicious code removal method according to a preferred embodiment of the present invention.

악성 코드 탐지 및 치료용 애플리케이션 프로그램(110)이 실행되면, 악성 코드 정보 데이터베이스(130)를 참조하여 데이터 저장부(120) 내에 악성 코드가 존재하는지 판단한다. 악성 코드 정보 데이터베이스(130)에 저장된 악성 코드 정보는 악성 코드 탐지 및 치료용 애플리케이션 프로그램(110)에 의해 갱신될 수 있다. 즉, 악성 코드 탐지 및 치료용 애플리케이션 프로그램(110)에서 탐지된 특정 악성 코드가 커널 레벨에서 치료될 필요가 있다고 하면, 이 악성 코드 정보를 별도의 비휘발성 메모리에 기록한다. 커널 레벨에서 치료되어야 하는 악성 코드 정보는 악성 코드 정보 데이터베이스(130) 안에 포함된 저장부에 저장되거나, 이와는 별도의 비 휘발성 저장부에 저장될 수 있다. 이 정보들은 다음번 부팅시 커널 레벨 악성 코드 치료 엔진(140)에 의해 이용된 후 제거된다. 따라서 새로운 악성 코드가 만들어지더라도 그에 관한 정보가 추가되므로 새로운 악성 코드를 탐지하고 제거할 수 있다.When the application program 110 for detecting and treating malicious code is executed, the malicious code information database 130 is referred to to determine whether malicious code exists in the data storage unit 120. The malicious code information stored in the malicious code information database 130 may be updated by the application program 110 for malicious code detection and treatment. That is, if the specific malicious code detected by the application program 110 for malware detection and treatment needs to be cleaned at the kernel level, the malicious code information is recorded in a separate nonvolatile memory. The malicious code information to be repaired at the kernel level may be stored in a storage included in the malicious code information database 130 or may be stored in a separate nonvolatile storage. This information is then used by the kernel level malware treatment engine 140 at the next boot and then removed. So even if new malicious code is created, information about it is added so that new malicious code can be detected and removed.

악성 코드 탐지 및 치료용 애플리케이션 프로그램(110)은 일예로, 악성 코드 정보 데이터베이스(130)에 저장된 악성 코드 정보와 데이터 저장부(120)에 저장된 데이터를 비교하여 일치하는 데이터 패턴이 존재하면 해당 악성 코드가 존재하는 것으로 판단한다.For example, the malicious code detection and treatment application program 110 compares the malicious code information stored in the malicious code information database 130 with the data stored in the data storage unit 120, and if there is a matching data pattern, the malicious code corresponds to the malicious code. I think that exists.

이렇게 악성 코드가 존재하면 악성 코드 탐지 및 치료용 애플리케이션 프로그램(110)은 해당 악성 코드를 치료하거나 삭제한다. 만일 치료나 삭제가 되지 않으면 컴퓨터의 부팅에 의한 커널 로딩시 주 메모리에 로딩되는 드라이버의 로딩 순서를 조정한다. 즉, 커널 레벨 악성 코드 치료 엔진(140)이 타 드라이버나 프로그램보다 먼저 로딩되도록 로딩 순서를 조정하고 컴퓨터를 재부팅시킨다. 다시 말하면 커널 레벨 악성 코드 치료 엔진(140)은 장치 드라이버(device driver)의 형태로 구현되고, 이 장치 드라이버가 다른 장치 드라이버보다 먼저 로딩되도록 한다.If the malicious code is present, the malicious code detection and treatment application program 110 treats or deletes the malicious code. If it is not cleaned or deleted, it adjusts the loading order of drivers loaded in main memory when the kernel is loaded by the computer booting. That is, the kernel-level malicious code cleaning engine 140 adjusts the loading order to reboot before other drivers or programs and reboots the computer. In other words, the kernel-level malicious code cleaning engine 140 is implemented in the form of a device driver so that the device driver is loaded before other device drivers.

그러면 커널 레벨 악성코드 치료 엔진(140)은 컴퓨터의 동작에 필요한 기본적인 드라이버가 로딩된 후 타 드라이버보다 먼저 로딩되어 악성 코드를 탐지한다. 이 과정에서는 악성 코드 정보 데이터베이스(130)에 저장된 모든 악성 코드 정보를 읽어 오는 것이 아니라, 커널 레벨에서 활동하는 악성 코드의 탐지 및 치료에 필요한 데이터만을 전달받아 데이터 저장부(120)를 읽어 치료한다. 이하 도 2를 참조하 여, 악성 코드 탐지 및 제거에 대하여 상세히 설명한다.The kernel level malware treatment engine 140 then loads the basic drivers necessary for the operation of the computer and then loads them before other drivers to detect malicious code. In this process, instead of reading all the malicious code information stored in the malicious code information database 130, only data necessary for the detection and treatment of the malicious code operating at the kernel level is received and the data storage 120 is read and treated. Hereinafter, referring to FIG. 2, malicious code detection and removal will be described in detail.

도 2는 본 발명의 바람직한 실시예에 따른 악성 코드 제거 장치의 소프트웨어 구성도이다.2 is a software configuration diagram of a malicious code removal apparatus according to a preferred embodiment of the present invention.

악성 코드 제거 장치는 악성 코드 탐지부(210), 판단부(220), 악성 코드 치료부(230), 로딩 순서 조작부(240) 및 커널 레벨 악성 코드 치료 엔진(250)을 포함한다.The malicious code removal apparatus includes a malicious code detection unit 210, a determination unit 220, a malicious code treatment unit 230, a loading order manipulation unit 240, and a kernel level malicious code treatment engine 250.

악성 코드 탐지부(210)는 컴퓨터의 운영체계(OS) 위에서 실행되어 악성 코드를 탐지한다. 즉 악성 코드 정보 데이터베이스(130)에 저장된 악성 코드 패턴과 데이터 저장부(120)에 저장된 데이터를 매칭시켜 악성 코드가 존재하는가를 탐지한다. 악성 코드가 탐지되면 이를 판단부(230)에 알리고, 판단부(230)는 현재 로딩된 프로그램을 사용하여 이 악성 코드를 치료 또는 제거하도록 악성코드 치료부(220)로 명령을 내리면 악성코드 치료부(220)는 악성 코드를 치료하거나 삭제한다.Malware detection unit 210 is executed on the operating system (OS) of the computer to detect malicious code. That is, the malicious code pattern stored in the malicious code information database 130 and the data stored in the data storage unit 120 are matched to detect whether the malicious code exists. When the malicious code is detected, it is notified to the determination unit 230, and the determination unit 230 instructs the malicious code treatment unit 220 to clean or remove the malicious code using a currently loaded program. 220 repairs or deletes the malicious code.

만일 악성코드 치료부(220)에서 악성 코드가 치료되거나 삭제되지 않으면 판단부(230)는 해당 악성 코드에 대한 정보를 악성 코드 정보 데이터베이스(130) 내 또는 별도의 비휘발성 메모리에 기록하고, 로딩 순서 조작부(240)에 컴퓨터의 부팅시 로딩되는 드라이버나 프로그램의 로딩 순서 정보를 조작하도록 한다. 커널 레벨 악성 코드 치료 엔진(250)은 장치 드라이버의 형태로 구현되며, 로딩 순서 조작부(240)는 악성 코드 및 치료를 위한 커널 레벨 악성 코드 치료 엔진(250)이 컴퓨터의 부팅시 타 드라이버보다 먼저 로딩되도록 로딩 순서를 조작한 후 컴퓨터의 재부팅 명령을 내린다. 로딩 순서 조작부(240)는, 일예로 컴퓨터의 운영체계(OS)에 포 함되어 있는 서비스 그룹 오더(Service Group Order, SGO)을 조작한다. 서비스 그룹 오더(SGO)를 조작한 후 컴퓨터가 재부팅되면 커널 레벨 악성 코드 치료 엔진(250)은 악성 코드를 치료한다. 이때 커널 레벨 악성 코드 치료 엔진(250)은, 판단부(230)에서 기록한 커널 레벨에서 제거될 악성 코드 정보를 상술한 비휘발성 메모리에서 읽어와 커널 레벨에서 악성 코드를 찾아 치료 또는 삭제한다.If the malicious code is not cleaned or deleted in the malicious code treatment unit 220, the determination unit 230 records information about the malicious code in the malicious code information database 130 or in a separate nonvolatile memory, and the loading order thereof. The operation unit 240 manipulates loading order information of a driver or a program loaded when the computer is booted. The kernel-level malicious code cleaning engine 250 is implemented in the form of a device driver, and the loading order manipulation unit 240 loads the kernel-level malicious code cleaning engine 250 for malicious code and cleaning before other drivers when the computer boots. Run the loading sequence as much as possible and issue a reboot command. The loading order operation unit 240 manipulates, for example, a service group order (SGO) included in an operating system (OS) of a computer. When the computer is rebooted after manipulating the service group order (SGO), the kernel level malware treatment engine 250 repairs the malicious code. At this time, the kernel-level malicious code treatment engine 250 reads malicious code information to be removed at the kernel level recorded by the determination unit 230 from the above-described nonvolatile memory to find and repair or delete malicious code at the kernel level.

도 3은 본 발명의 바람직한 실시예에 따른 악성 코드 제거 방법의 플로우차트이다.3 is a flowchart of a malicious code removal method according to a preferred embodiment of the present invention.

먼저 애플리케이션 레벨에서 악성 코드 탐지 및 치료 프로그램을 실행시켜, 악성 코드를 찾아 치료한다(S310). 악성 코드의 탐지 및 치료는 종래의 여러 가지 방법들 중 어느 것이나 이용 가능하다. 이러한 애플리케이션 레벨에서 치료되지 않는 악성 코드가 있는지 판단하여(S320), 치료되지 않는 악성 코드가 존재하면, 이에 관한 정보를 별도의 비휘발성 메모리에 기록하고, 커널 레벨에서 실행시킬 악성 코드 탐지 및 치료 엔진이 컴퓨터의 부팅시 타 드라이버나 프로그램보다 먼저 로딩되도록 조작하고(S330), 컴퓨터의 재부팅 명령을 내린다(S340). 이러한 재부팅에 의해 악성 코드 및 치료 엔진이 로딩되면, 커널 레벨에서 악성 코드를 찾아 치료 또는 삭제한다(S350). 그리고, 컴퓨터의 부팅시 드라이버의 로딩 순서를 원래대로 복원한다(S360).First, a malicious code detection and treatment program is executed at the application level to find and repair malicious code (S310). Detection and treatment of malicious code can be used in any of a variety of conventional methods. It is determined whether there is malicious code that is not cleaned at such an application level (S320), and if there is malicious code that is not cleaned, information about this is recorded in a separate nonvolatile memory, and a malicious code detection and treatment engine to be executed at the kernel level When the computer is booted, it is manipulated to be loaded before other drivers or programs (S330), and a reboot command of the computer is issued (S340). When the malicious code and the treatment engine are loaded by such a reboot, the malicious code is found and cleaned or deleted at the kernel level (S350). Then, when the computer boots, the loading order of the driver is restored to its original state (S360).

이때, 치료 또는 삭제 단계(S350)에서는 로딩 순서 조작 단계(S330)에서 생성한 커널 레벨에서 제거될 악성 코드 관련 정보를 별도의 비휘발성 메모리에서 읽어와, 커널 레벨에서 악성 코드를 찾아 치료 또는 삭제한다. 그리고, 로딩 순서의 조작은 컴퓨터의 운영 체계(OS)에 포함되어 있는 서비스 그룹 오더(Service Group Order)의 조작에 의해 수행된다.At this time, in the treatment or deletion step (S350), the malicious code-related information to be removed at the kernel level generated in the loading order manipulation step (S330) is read in a separate nonvolatile memory, and the malicious code is found and cleaned or deleted at the kernel level. . The operation of the loading order is performed by the operation of a service group order included in the operating system (OS) of the computer.

한편, 전술한 악성 코드 탐지 및 제거 방법은 컴퓨터 프로그램으로 작성 가능하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 악성 코드 탐지 및 제거 방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체, 및 캐리어 웨이브 매체를 포함한다.Meanwhile, the above-described malicious code detection and removal method can be created 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, thereby implementing a malicious code detection and removal method. 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.

전술한 바와 같이 본 발명에 따르면, 애플리케이션 레벨과 커널 레벨에서 각각 악성 코드를 탐지하여 치료함으로써 보다 많은 종류의 악성 코드를 찾아 제거할 수 있다.As described above, according to the present invention, by detecting and treating malicious code at the application level and the kernel level, more types of malicious code can be found and removed.

또한 커널 레벨에의 악성 코드를 탐지하여 제거하는데 있어서 모든 악성 코드 정보를 참조하지 않고 현 상태에서 탐지되어 커널 레벨에서의 치료가 필요한 악성 코드의 정보만을 참조함으로, 커널 레벨 악성 코드 제거 속도를 높일 수 있다.Also, in detecting and removing malware at the kernel level, it is possible to speed up kernel-level malware removal by referencing only the information of malicious code that is detected in the current state and needs to be cleaned at the kernel level. have.

Claims (10)

컴퓨터에서의 악성 코드 제거 방법에 있어서,In the malicious code removal method on a computer, 상기 컴퓨터의 애플리케이션 레벨에서 프로그램을 실행시켜 악성 코드를 탐지하여 치료하는 단계;Detecting and treating malicious code by executing a program at an application level of the computer; 상기 프로그램이, 상기 애플리케이션 레벨에서 치료되지 않는 악성 코드의 존재여부를 판단하는 단계;Determining, by the program, whether or not malicious code exists at the application level; 상기 애플리케이션 레벨에서 치료되지 않는 악성 코드가 존재하면, 상기 프로그램이, 상기 컴퓨터의 부팅시 타 드라이버나 애플리케이션보다 우선적으로 주 메모리에 커널 레벨에서의 악성 코드 치료 엔진이 로딩되도록 로딩 순서를 조작하고 상기 컴퓨터의 재부팅 명령을 내리는 단계; 및If there is malicious code that is not cleaned at the application level, the program manipulates the loading order so that the malware treatment engine at the kernel level is loaded in main memory in preference to other drivers or applications when the computer boots. Giving a reboot command; And 상기 재부팅에 의해 상기 커널 레벨 악성 코드 치료 엔진이 로딩되어 커널 레벨에서 악성 코드를 찾아 치료 또는 삭제하는 단계를 포함하는 것을 특징으로 하는 악성 코드 제거 방법.The kernel-level malicious code treatment engine is loaded by the reboot, and the malware removal method comprising the step of finding, treating or deleting malicious code at the kernel level. 제1항에 있어서, The method of claim 1, 상기 커널 레벨에서 악성 코드를 찾아 치료 또는 삭제하는 단계 이후에, 상기 프로그램이 상기 컴퓨터의 부팅시 드라이버의 로딩 순서를 원래대로 복원하는 단계를 더 포함하는 것을 특징으로 하는 악성 코드 제거 방법.And after the step of finding, treating, or deleting the malicious code at the kernel level, the program may further restore the loading order of the driver when the computer boots. 제1항 또는 제2항에 있어서, 상기 치료 또는 삭제 단계는The method of claim 1 or 2, wherein the treating or deleting step 상기 커널 레벨 악성 코드 치료 엔진은, 커널 레벨에서 제거될 악성 코드 관련 정보만을 읽어와, 커널 레벨에서 악성 코드를 찾아 치료 또는 삭제하는 것을 특징으로 하는 악성 코드 제거 방법.The kernel-level malicious code cleaning engine reads only malicious code-related information to be removed at the kernel level, and finds, repairs, or deletes the malicious code at the kernel level. 제1항 또는 제2항에 있어서, The method according to claim 1 or 2, 상기 커널 레벨에서의 악성 코드 치료 엔진은 장치 드라이버의 형태로 구현되며, 상기 로딩 순서의 조작은 상기 컴퓨터의 운영체계(OS)에 포함되어 있는 서비스 그룹 오더(Service Group Order)의 조작인 것을 특징으로 하는 악성 코드 제거 방법.The malware repair engine at the kernel level is implemented in the form of a device driver, and the manipulation of the loading order is manipulation of a service group order included in an operating system (OS) of the computer. How to get rid of malware. 컴퓨터에서의 악성 코드 제거 장치에 있어서,In the device for removing malware from a computer, 상기 컴퓨터의 애플리케이션 레벨에서 실행되어 악성 코드를 탐지하는 악성 코드 탐지부;A malicious code detector configured to execute at an application level of the computer to detect malicious code; 상기 탐지된 악성 코드를 치료하거나 삭제하는 악성코드 치료부;A malicious code treatment unit for treating or deleting the detected malicious code; 상기 애플리케이션 레벨에서 치료되지 않는 악성 코드의 존재여부를 판단하는 판단부;Determination unit for determining the existence of malicious code that is not treated at the application level; 상기 애플리케이션 레벨에서 치료되지 않는 악성 코드가 존재하면, 커널 레벨에서의 악성 코드 치료 엔진이 상기 컴퓨터의 부팅시 타 드라이버나 애플리케이션보다 우선적으로 주 메모리에 로딩되도록 로딩 순서를 조작하고 상기 컴퓨터의 재부팅 명령을 내리는 로딩 순서 조작부; 및If there is malicious code that is not cleaned at the application level, the malware cleaning engine at the kernel level manipulates the loading sequence to load the main memory in preference to other drivers or applications when the computer boots, and to reboot the computer. Unloading loading sequence control unit; And 상기 컴퓨터의 재부팅 후 커널 레벨에서 악성 코드를 찾아 치료 또는 제거하 는 커널 레벨 악성 코드 치료 엔진을 포함하는 것을 특징으로 하는 악성 코드 제거 장치.And a kernel level malicious code cleaning engine configured to find and repair or remove malicious code at kernel level after the computer is rebooted. 제5항에 있어서, 상기 로딩 순서 조작부는The method of claim 5, wherein the loading order operation unit 상기 커널 레벨에서 악성 코드 치료 또는 제거 후에, 상기 컴퓨터의 부팅시 드라이버의 로딩 순서를 원래대로 복원하는 것을 특징으로 하는 악성 코드 제거 장치.And after the malware is cleaned or removed at the kernel level, a device for removing a malware, the booting order of a driver being restored when the computer boots. 제5항 또는 제6항에 있어서, 상기 악성 코드 치료 엔진은The method of claim 5 or 6, wherein the malware treatment engine 장치 드라이버의 형태로 구현되며, 커널 레벨에서 제거될 악성 코드 관련 정보만을 읽어와, 커널 레벨에서 악성 코드를 찾아 치료 또는 삭제하는 것을 특징으로 하는 악성 코드 제거 장치.Implemented in the form of a device driver, malicious code removal device, characterized in that to read only the malware-related information to be removed at the kernel level, to find and repair or delete malicious code at the kernel level. 컴퓨터에서의 악성 코드 제거 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 있어서,A computer-readable recording medium having recorded thereon a program for executing a malicious code removal method on a computer, 상기 컴퓨터의 운영체계(OS) 위에서 실행되며, 악성 코드를 찾아 치료 또는 제거하고, 제거되지 않는 악성 코드가 존재하면 커널 레벨에서의 악성 코드 치료 엔진이 상기 컴퓨터의 부팅시에 타 드라이버보다 주 메모리에 먼저 로딩되도록 로딩 순서를 조정한 후 상기 컴퓨터를 재부팅시키는 로딩순서 조작수단; 및Runs on the computer's operating system (OS), locates and cleans or removes malicious code, and if malware is present that cannot be removed, the malware-cleaning engine at the kernel level is located in main memory at boot time than other drivers. A loading sequence manipulation means for adjusting the loading sequence to be loaded first and then rebooting the computer; And 상기 컴퓨터의 재부팅 후 커널 레벨에서 악성 코드를 찾아 치료 또는 제거하는 상기 커널 레벨에서의 악성 코드 치료 엔진을 갖고 있는 커널레벨 치료수단으로 기능시키기 위한 프로그램을 기록한 컴퓨터 판독가능한 기록매체.A computer-readable recording medium having recorded thereon a program for functioning as a kernel level treatment means having a malware treatment engine at the kernel level that finds and repairs or removes malicious code at kernel level after rebooting the computer. 제8항에 있어서, 상기 제2프로그램 코드는The method of claim 8, wherein the second program code is 커널 레벨에서 제거될 악성 코드 관련 정보만을 읽어와, 커널 레벨에서 악성 코드를 찾아 치료 또는 삭제하는 것을 특징으로 하는 기록매체.Read only the malicious code related information to be removed at the kernel level, the recording medium characterized in that the malicious code at the kernel level to find, repair or delete. 제1항에 기재된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for executing the method of claim 1 on a computer.
KR1020050069216A 2005-07-29 2005-07-29 Method and apparatus for deleting virus code, and information storage medium storing a program thereof KR100613126B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050069216A KR100613126B1 (en) 2005-07-29 2005-07-29 Method and apparatus for deleting virus code, and information storage medium storing a program thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050069216A KR100613126B1 (en) 2005-07-29 2005-07-29 Method and apparatus for deleting virus code, and information storage medium storing a program thereof

Publications (1)

Publication Number Publication Date
KR100613126B1 true KR100613126B1 (en) 2006-08-17

Family

ID=37602715

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050069216A KR100613126B1 (en) 2005-07-29 2005-07-29 Method and apparatus for deleting virus code, and information storage medium storing a program thereof

Country Status (1)

Country Link
KR (1) KR100613126B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100666562B1 (en) 2005-08-11 2007-01-09 주식회사 웨어플러스 Method for protecting kernel driver and process
KR100762973B1 (en) 2007-02-07 2007-10-02 (주)노애드 Method and apparatus for detecting and deleting a virus code, and information storage medium storing a program thereof
KR101398852B1 (en) 2013-02-13 2014-06-27 주식회사 잉카인터넷 Malware Treatment System and Method using a script

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09288577A (en) * 1996-04-24 1997-11-04 Nec Shizuoka Ltd Method and device for monitoring computer virus infection
JPH1040097A (en) 1996-07-18 1998-02-13 Toshiba Corp Computer with virus checking function
JPH1185503A (en) 1997-09-05 1999-03-30 Fujitsu Ltd Virus exterminating method, information processor and computer readable record medium recording virus extermination program
KR20010109069A (en) * 2000-05-29 2001-12-08 정재한 Method and system for diagnosing remote computer system through internet
KR20040083409A (en) * 2004-09-10 2004-10-01 (주) 세이프아이 method for computer protection with real-time monitoring and thereby computer and thereby system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09288577A (en) * 1996-04-24 1997-11-04 Nec Shizuoka Ltd Method and device for monitoring computer virus infection
JPH1040097A (en) 1996-07-18 1998-02-13 Toshiba Corp Computer with virus checking function
JPH1185503A (en) 1997-09-05 1999-03-30 Fujitsu Ltd Virus exterminating method, information processor and computer readable record medium recording virus extermination program
KR20010109069A (en) * 2000-05-29 2001-12-08 정재한 Method and system for diagnosing remote computer system through internet
KR20040083409A (en) * 2004-09-10 2004-10-01 (주) 세이프아이 method for computer protection with real-time monitoring and thereby computer and thereby system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
1020010109069 *
11085503 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100666562B1 (en) 2005-08-11 2007-01-09 주식회사 웨어플러스 Method for protecting kernel driver and process
KR100762973B1 (en) 2007-02-07 2007-10-02 (주)노애드 Method and apparatus for detecting and deleting a virus code, and information storage medium storing a program thereof
KR101398852B1 (en) 2013-02-13 2014-06-27 주식회사 잉카인터넷 Malware Treatment System and Method using a script

Similar Documents

Publication Publication Date Title
US7114184B2 (en) System and method for restoring computer systems damaged by a malicious computer program
US8607342B1 (en) Evaluation of incremental backup copies for presence of malicious codes in computer systems
US8220053B1 (en) Shadow copy-based malware scanning
US20120017276A1 (en) System and method of identifying and removing malware on a computer system
US8099785B1 (en) Method and system for treatment of cure-resistant computer malware
US8677491B2 (en) Malware detection
US8495741B1 (en) Remediating malware infections through obfuscation
CN102867141B (en) The method that Main Boot Record rogue program is processed and device
AU2002250453A1 (en) System and method for restoring computer systems damaged by a malicious computer program
US20120030766A1 (en) Method and system for defining a safe storage area for use in recovering a computer system
US8776233B2 (en) System, method, and computer program product for removing malware from a system while the system is offline
US20130290949A1 (en) System reset
CN102930201B (en) The method that Main Boot Record rogue program is processed and device
KR20120027880A (en) Computing apparatus having function of recovering system and method for recovering system
US8079032B2 (en) Method and system for rendering harmless a locked pestware executable object
US20070056039A1 (en) Memory filters to aid system remediation
WO2014044187A2 (en) A method and device for checking and removing computer viruses
KR100613126B1 (en) Method and apparatus for deleting virus code, and information storage medium storing a program thereof
KR100762973B1 (en) Method and apparatus for detecting and deleting a virus code, and information storage medium storing a program thereof
US8572742B1 (en) Detecting and repairing master boot record infections
US20090217378A1 (en) Boot Time Remediation of Malware
US7926106B1 (en) Utilizing early exclusive volume access and direct volume manipulation to remove protected files
CN104834861B (en) The checking and killing method and device of wooden horse
US7917952B1 (en) Replace malicious driver at boot time
KR100937010B1 (en) Malwareuseless process dectect/blocking and prevent recrudescence method

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
FPAY Annual fee payment

Payment date: 20130812

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140611

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150911

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160901

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180503

Year of fee payment: 12

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20180809

Year of fee payment: 13