KR100745639B1 - Method for protecting file system and registry and apparatus thereof - Google Patents

Method for protecting file system and registry and apparatus thereof Download PDF

Info

Publication number
KR100745639B1
KR100745639B1 KR1020050073905A KR20050073905A KR100745639B1 KR 100745639 B1 KR100745639 B1 KR 100745639B1 KR 1020050073905 A KR1020050073905 A KR 1020050073905A KR 20050073905 A KR20050073905 A KR 20050073905A KR 100745639 B1 KR100745639 B1 KR 100745639B1
Authority
KR
South Korea
Prior art keywords
registry
value
file system
database
hash value
Prior art date
Application number
KR1020050073905A
Other languages
Korean (ko)
Other versions
KR20070019190A (en
Inventor
곽남영
김봉환
김기수
송중구
김재열
이종후
김재명
류재철
Original Assignee
주식회사 웨어플러스
주식회사 윈아이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 웨어플러스, 주식회사 윈아이티 filed Critical 주식회사 웨어플러스
Priority to KR1020050073905A priority Critical patent/KR100745639B1/en
Publication of KR20070019190A publication Critical patent/KR20070019190A/en
Application granted granted Critical
Publication of KR100745639B1 publication Critical patent/KR100745639B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Abstract

본 발명은 악성코드를 탐지하여 제거하는 파일 시스템 및 레지스트리 보호 방법 및 그 장치에 관한 것이다. 본 발명은 응용 수준에서 공격 시그너처 정보를 주기적으로 수집하는 단계와, 상기 수집된 공격 시그너처 정보를 데이터베이스에 기록하는 단계와, 상기 파일 시스템을 검색하는 단계와, (1) 상기 데이터베이스에 기록된 값과 동일한 값이 상기 파일 시스템에 대한 검색 결과에 포함된 경우, 악성코드에 의한 공격을 탐지하여 해당 정보를 제거하는 단계를 포함하고, (2) 상기 데이터베이스에 기록된 값과 동일한 값이 상기 파일 시스템에 대한 검색 결과에 포함되지 않은 경우, 상기 레지스트리를 검색하는 단계 및 상기 데이터베이스에 기록된 값과 동일한 값이 상기 레지스트리에 대한 검색 결과에 포함된 경우, 악성코드에 의한 공격을 탐지하여 해당 정보를 제거하는 단계를 포함하는 것을 특징으로 하는 파일 시스템 및 레지스트리 보호 방법을 제공한다. 본 발명에 의하면, 파일 시스템 및 레지스트리에 대한 악성코드를 탐지하여 제거함으로써 시스템에서 수행 가능한 악성행위를 사전에 방지할 수 있기 때문에 클라이언트/서버 환경에서 서버 및 클라이언트 시스템에 설치되어 서버 및 인트라넷, 클라이언트 운영 환경의 안정성을 향상시킬 수 있다.The present invention relates to a file system and a registry protection method and apparatus for detecting and removing malware. The present invention includes the steps of periodically collecting attack signature information at an application level, recording the collected attack signature information in a database, searching the file system, (1) a value recorded in the database and If the same value is included in the search result for the file system, detecting the attack by the malware and removing the corresponding information, and (2) a value equal to the value recorded in the database is stored in the file system. Searching for the registry when the search result is not included in the search result and when the search result for the registry includes the same value as the value recorded in the database, detecting the attack by malware and removing the information. Providing a file system and registry protection method comprising the steps of: All. According to the present invention, by detecting and removing malicious codes for the file system and the registry, it is possible to prevent malicious behavior that can be performed in the system in advance, so that the server, the intranet, and the client are installed in the server and the client system in the client / server environment. Improve the stability of the environment.

파일 시스템, 레지스트리, 악성코드, 탐지, 제거, 복원  File system, registry, malware, detection, removal, restore

Description

파일 시스템 및 레지스트리를 보호하는 방법 및 그 장치{METHOD FOR PROTECTING FILE SYSTEM AND REGISTRY AND APPARATUS THEREOF}METHOD FOR PROTECTING FILE SYSTEM AND REGISTRY AND APPARATUS THEREOF}

도 1은 본 발명에 따른 윈도우 커널 기반의 악성코드를 제거하는 시스템의 구성을 나타내는 도면이다.1 is a diagram showing the configuration of a system for removing malicious code based on the Windows kernel according to the present invention.

도 2는 본 발명에 따른 파일 시스템 및 레지스트리 보호 방법에 있어서, 파일 시스템 및 레지스트리의 악성코드를 검색하는 과정을 나타내는 도면이다.2 is a diagram illustrating a process of searching for malicious codes in a file system and a registry in the file system and registry protection method according to the present invention.

도 3은 본 발명의 일실시예에 따른 파일 시스템 및 레지스트리 보호 방법의 흐름을 나타내는 도면이다.3 is a diagram illustrating a flow of a file system and a registry protection method according to an embodiment of the present invention.

도 4는 본 발명의 일실시예에 따른 파일 시스템 및 레지스트리 보호 장치를 나타내는 도면이다.4 is a diagram illustrating a file system and a registry protection device according to an embodiment of the present invention.

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

110: 악성코드 제거 시스템110: Malware Removal System

111: 파일 및 레지스트리 검사 모듈 112: 커널 메모리 검사 모듈111: File and Registry Check Module 112: Kernel Memory Check Module

113: 커널 드라이버 검사 모듈 114: 프로세스 검사 모듈113: kernel driver check module 114: process check module

120: 사용자 모드120: user mode

121: 파일 시스템 122: 레지스트리121: File system 122: Registry

130: 커널 모드130: kernel mode

131: 커널 메모리 132: 커널 드라이버131: kernel memory 132: kernel driver

400: 파일 시스템 및 레지스트리 보호 장치400: file system and registry protection device

410: 수집부 420: 데이터베이스410: collector 420: database

430: 검색부 440: 비교부430: search unit 440: comparison unit

450: 처리부 460: 저장부450: processing unit 460: storage unit

본 발명은 파일 시스템 및 레지스트리를 보호하는 방법 및 그 장치에 관한 것으로, 더욱 상세하게는 악성코드를 탐지하여 제거하는 파일 시스템 및 레지스트리 보호 방법 및 그 장치에 관한 것이다.The present invention relates to a method and apparatus for protecting a file system and a registry, and more particularly, to a method and apparatus for protecting a file system and a registry for detecting and removing malware.

통상적으로 악성코드(Malicious code)는 시스템 파괴, 정보 유출 및 위변조 등의 악의적인 목적을 위해 제작된 프로그램을 총칭한다. 이러한 악성코드는 바이러스(virus), 웜(worm), 악성 모바일코드(예를 들면, applet, activeX) 등으로 분류될 수 있다. 또한, 악성코드는 컴퓨터 시스템 계층(computer system layer)에 따라 응용 계층의 악성코드와 커널 기반의 악성코드로 분류될 수도 있다. Typically, malicious code refers to programs designed for malicious purposes such as system destruction, information leakage, and forgery. Such malicious code can be classified into viruses, worms, malicious mobile codes (eg, applet, activeX), and the like. In addition, malicious code may be classified into malware of an application layer and malware based on a kernel according to a computer system layer.

상기 응용 계층의 악성코드는 바이러스 백신 등의 기존의 정보 보호 시스템으로 탐지 및 제거가 가능하며, 이는 시스템 내의 공격 시그너처(Attack Signature)의 존재를 기반으로 한다. The malware of the application layer can be detected and removed by an existing information protection system such as an antivirus, which is based on the presence of an attack signature in the system.

이처럼 알려진 공격 시그너처를 기반으로 하는 공격 기법에 관한 연구는 보 안 라이프-사이클의 사후 대응(response)을 중요시하는 개념이고, 알려지지 않은 커널 공격 기법에 관한 연구는 사전 예방(prevention)에 집중된 개념이다. 최신의 정보 보호기술 동향이 능동적(proactive) 경향을 갖는 것에 비추어 볼 때 사후 대응의 접근 보다는 사전 예방의 접근이 더 중요하다. The study of attack techniques based on such known attack signatures is a concept that emphasizes the security life-cycle response, and the study of unknown kernel attack techniques is a concept focused on prevention. In the light of the latest trends in information protection technology, proactive approaches are more important than proactive approaches.

윈도우 환경과 관련된 커널 공격 기법은 크게 시스템 객체 및 주체 정보 은폐 기법, 시스템 제어 흐름 변경 및 악성코드 추가 기법, 커널 드라이버 조작 기법으로 분류할 수 있다. 공격 기법에 대한 대응 기법 수준은 각 개별 기법에 대해 한정된 플랫폼에서만 연구되고 있으며, 이의 통합 보안 관리 및 지능형 아키텍처, 프레임워크에 관한 연구는 전무한 실정이다.Kernel attack techniques related to the Windows environment can be broadly classified into system object and subject information hiding techniques, system control flow changes and malware addition techniques, and kernel driver manipulation techniques. The level of countermeasures against attack techniques is studied only on a limited platform for each individual technique, and there are no studies on integrated security management, intelligent architecture, and framework.

이와 같이 관련 연구가 부진한 이유는 윈도우 커널 관련 정보의 부재, 운영 체제 커널 프로그래밍 기술의 어려움, 시스템의 안정성 확보 등과 같은 다양한 문제점에 의해 기인된 것이다. 하지만 다변화, 고도화되어 가는 커널 공격에 대한 대응 기법 연구는 다가오는 유비쿼터스 시대에 적극적인 대안이 될 수 밖에 없는 상황이다. This lack of relevant research is due to various problems, such as the lack of Windows kernel-related information, the difficulty of operating system kernel programming techniques, and the stability of the system. However, research on countermeasures against diversified and advanced kernel attacks is an active alternative in the coming ubiquitous era.

운영 체제 시스템에서 커널 기반의 악성코드에 대한 전형적인 동작 방식을 설명하면 다음과 같다. 먼저 악성코드는 운영 체제 시스템의 취약점을 이용하여 네트워크를 통해 상기 운영 체제 시스템에 접근하고, 상기 운영 체제 시스템에 커널 백도어(kernel backdoor)를 설치한 후 상기 커널 백도어를 이용하여 상기 운영 체제 시스템에서 인지 없이 접근한 후 은밀하게 악의적인 활동을 수행할 수 있다. 즉, 상기 커널 기반의 악성코드는 먼저 자신의 존재를 감추기 위해 커널 백도어를 통해 자신과 관련된 개체와 주체 정보를 은폐함으로써 운영 체제 시스템의 인지 없이 언제든지 자신이 의도한 악의적인 기능을 수행할 수 있도록 한다. The following describes the typical operation of kernel-based malware in the operating system. First, the malicious code accesses the operating system system through a network using a vulnerability of an operating system system, installs a kernel backdoor on the operating system system, and then recognizes the operating system system using the kernel backdoor. Without access, you can secretly perform malicious activities. In other words, the kernel-based malicious code first conceals the object and subject information related to itself through the kernel backdoor to conceal its existence so that it can perform its intended malicious function at any time without the knowledge of the operating system. .

일반적인 운영 체제 시스템의 제어 흐름은 상기 운영 체제 시스템에서 윈도우 응용 프로그램이 시스템 서비스를 요청하게 되면, 커널을 통해 인터럽트 호출을 발생시키며, 해당 요청에 대한 서비스 기계어 코드를 수행하게 된다. The control flow of a general operating system system generates an interrupt call through a kernel when a Windows application program requests a system service in the operating system system, and executes a service machine code for the request.

커널 기반 악성코드는 윈도우 운영체제의 정상적인 시스템 제어 흐름을 변경하여 자신의 존재를 은폐하는 공격코드를 삽입시킨다. 이와 같은 커널 함수 제어 흐름을 변경하는 작업은 함수 포인터를 변경하는 과정으로 원래의 커널 함수와 변경된 커널 함수의 입력 인자(input parameter) 및 출력 인자(output parameter)가 정확히 맞아야 한다. 하지만, 원래 커널 함수 제어 흐름을 변경하는 작업은 함수 포인터를 변경하는 과정으로 커널 내부에 데이터 타입이 정확히 일치하지 않으면 시스템 크래쉬(system crash)가 발생한다. Kernel-based malware alters the normal system control flow of the Windows operating system, inserting attack code that hides its existence. This operation of changing the kernel function control flow is a process of changing a function pointer, in which the input parameters and output parameters of the original kernel function and the changed kernel function are exactly matched. However, changing the original kernel function control flow is the process of changing the function pointer. If the data types do not match exactly inside the kernel, a system crash occurs.

윈도우의 서비스 테이블에서 서비스 디스크립터(service descriptor)를 변경하여 공격자 코드로 명령어 수행번지를 지정하는 공격 기법이다. 상기 악의적인 코드는 커널 수준에서 수행되기 때문에 시스템 수행 권한을 장학하게 되어 어떠한 악의적인 행위도 가능하다. This is an attack technique that specifies the command execution address in the attacker code by changing the service descriptor in the Windows service table. Since the malicious code is executed at the kernel level, any malicious behavior can be performed by studying the authority to execute the system.

커널 기반 악성코드의 대표적 기능인 커널 정보 은폐 기법은 운영체제 커널 정보인 이중 링크 구조의 프로세스 목록(double-linked lists)에서 공격코드 프로세스인 자신의 정보를 링크에서 해제하는 것이다. 상기 공격코드 프로세스 정보는 상기 링크가 해제된 이후부터 시스템 내에 사라지게 되어 공격코드의 존재가 은폐 된다. 즉, 커널 기반 악성코드는 윈도우 운영 체제의 정상적인 시스템 제어 흐름을 변경하고, 시스템 제어 경로의 중간 과정의 공격 코드를 삽입하여 자신의 존재를 은폐한다. The kernel information hiding technique, which is a representative function of kernel-based malware, is to release information of an attack code process from a link in a double-linked list, which is operating system kernel information. The attack code process information disappears from the system after the link is released, thereby concealing the existence of the attack code. In other words, the kernel-based malware changes the normal system control flow of the Windows operating system and inserts attack code in the middle of the system control path to conceal its existence.

이와 같이 커널 기반의 악성코드의 시스템 정보가 은폐되고, 커널 공격 기법에 대한 패턴이 존재하지 않기 때문에 기존의 정보 보호 시스템에 의해 탐지 및 제거하기가 매우 어렵다. As such, the system information of the kernel-based malicious code is concealed, and since there is no pattern for the kernel attack technique, it is very difficult to detect and remove by the existing information protection system.

윈도우 운영 체계 수준에서 수행되는 코드는 커널 모드(kernel mode)에서 실행되는 것이며, win32 API를 사용하는 어플리케이션 프로그램의 경우는 사용자 모드(user mode)에서 수행되는 프로그램이다. 상기 커널 모드와 상기 사용자 모드는 세그먼트 디스크립터의 수행 권한 수준(Descriptor Privilege Level: 이하 DPL이라고 함), 필드에서 결정된다. Code executed at the Windows operating system level is executed in kernel mode, and an application program using the win32 API is a program executed in user mode. The kernel mode and the user mode are determined in the Descriptor Privilege Level (DPL) field of the segment descriptor.

인텔 마이크로프로세서(intel microprocessor)의 세그먼트 디스크립터에는 해당 스크립터가 가지는 수행 권한 값을 나타내는 DPL 필드를 가지고 있으며, 이러한 디스크립터 가운데 현재 실행 중에 있는 코드 세그먼트(Code Segment: CS) 디스크립터가 가지는 DPL 값을 특별히 CPL(Current Privilege Level)이라 하며, 이 값이 현재 실행되고 있는 코드의 수행 권한이 된다.The segment descriptor of the Intel microprocessor has a DPL field indicating the execution permission value of the script. Among these descriptors, the DPL value of the currently executing code segment (CS) descriptor is specifically designated as a CPL ( Current Privilege Level) and this value is the authority to execute the currently executing code.

현재 실행되고 있는 코드 세그먼트 디스크립터의 DPL 값이 '0'일 경우 이 코는 커널 모드에서 실행되고 있는 코드로서 프로세서가 가지는 모든 명령어와 모든 메모리 참조가 가능하다. 커널 기반의 악성코드는 이와 같이 DPL 값이 '0'인 상태에서 동작하는 악성코드를 말한다. If the DPL value of the currently executing code segment descriptor is '0', this code is executed in kernel mode and can refer to all instructions and all memory references of the processor. Kernel-based malware refers to malware that operates while the DPL value is '0'.

응용 계층의 악성코드와 비교하여 커널 기반의 악성코드의 특징으로 살펴보면 다음과 같다. 응용 계층 코드는 일반 사용자 수준의 응용 프로그램을 변경시키거나 프로세스의 메모리를 변경시켜 공격자의 흔적을 은폐하는 기능을 제공한다. 하지만, 커널 기반 악성코드는 윈도우 운영 체제의 커널 수준인 Windows Native API(ntdll.dll, kernel32.dll, user32.dll) 커널 드라이브와 WIN32 응용 프로그램 간의 데이터를 중간에서 조작함으로써 공격자의 흔적을 은폐한다. The characteristics of the kernel-based malware compared to the malware of the application layer are as follows. Application layer code provides the ability to hide the attacker's traces by altering applications at the end user level or by changing the process's memory. However, kernel-based malware hides traces of attackers by manipulating data between the Windows Native API (ntdll.dll, kernel32.dll, user32.dll) kernel drive, which is the kernel level of the Windows operating system, and WIN32 applications.

따라서, 파일 내의 특정 위치에서의 매직 넘버(file magic number), 시스템 레지시트리 값, 프로세스 이름, 드라이버 이름 등을 검색하여 악성코드를 탐지하는 기존 응용 계층의 악성코드 탐지 시스템은 커널 기반의 악성코드를 탐지할 수 없는 문제점이 있다. Therefore, the malware detection system of the existing application layer that detects malware by searching file magic number, system registry value, process name, driver name, etc. in a specific location in the file is a kernel-based malware. There is a problem that cannot be detected.

이러한 악성코드에 의한 악의적인 공격으로 인해 금전적 손실 또한 막대해지고 있다. 특히 개인용 컴퓨터 보안의 경우 현재의 바이러스에 대한 대처에서 벗어나 슈퍼웜이라고 불리우는 능동적인 특성을 지니고 있는 악성코드를 어떻게 탐지하느냐가 매우 중요한 이슈로 대두되고 있다.Due to malicious attacks by such malware, financial losses are also enormous. In particular, in the case of personal computer security, how to detect malicious code that has an active characteristic called superworm has emerged as a very important issue away from coping with current viruses.

이와 같은 악성코드와 관련된 정보 침해 사고는 대부분 마이크로소프트(Micro-soft)의 윈도우(Windows)에서 발생하고 있으며, 사고가 발생하는 빈도가 해마다 증가하는 추세에 있다. 미국의 컴퓨터 범죄수사국(CSI: Computer Security Institute) 보고에 따르면, 2003년 전 세계적으로 전체 침해 사고의 78퍼센트가 윈도우에서 발생하였다. 국내의 경우에는 2003년 전체 침해 사고의 68퍼센트가 윈도우에서 발생하였으며, 2004년 8월 전체 침해 사고의 73퍼센트가 윈도우에서 발생하 였다.Most of the information breach related to such malware occurs in Microsoft's Windows, and the frequency of incidents is increasing year by year. In 2003, 78 percent of all breaches worldwide occurred in Windows, according to a report by the Computer Security Institute (CSI) in the United States. In Korea, 68 percent of all breaches occurred in Windows in 2003, and 73 percent of all breaches occurred in Windows in August 2004.

이처럼 윈도우 커널 수준에서 빈번하게 발생되는 악성코드를 탐지하고 제거하는 방법이 절실히 요청되어 오고 있다.As such, there is an urgent need for a method for detecting and removing malicious codes frequently occurring at the Windows kernel level.

본 발명은 상기와 같은 종래기술을 개선하기 위해 안출된 것으로서, 파일 시스템 및 레지스트리를 검사하여 커널 수준에서 작성된 악성코드를 탐지하여 제거하는 방법을 제공하는 것을 목적으로 한다.The present invention has been made to improve the prior art as described above, and an object of the present invention is to provide a method for detecting and removing malicious code written at the kernel level by inspecting the file system and the registry.

상기의 목적을 이루고 종래기술의 문제점을 해결하기 위하여, 본 발명은 응용 수준에서 공격 시그너처 정보를 주기적으로 수집하는 단계와, 상기 수집된 공격 시그너처 정보를 데이터베이스에 기록하는 단계와, 상기 파일 시스템을 검색하는 단계와, (1) 상기 데이터베이스에 기록된 값과 동일한 값이 상기 파일 시스템에 대한 검색 결과에 포함된 경우, 악성코드에 의한 공격을 탐지하여 해당 정보를 제거하는 단계를 포함하고, (2) 상기 데이터베이스에 기록된 값과 동일한 값이 상기 파일 시스템에 대한 검색 결과에 포함되지 않은 경우, 상기 레지스트리를 검색하는 단계 및 상기 데이터베이스에 기록된 값과 동일한 값이 상기 레지스트리에 대한 검색 결과에 포함된 경우, 악성코드에 의한 공격을 탐지하여 해당 정보를 제거하는 단계를 포함하는 것을 특징으로 하는 파일 시스템 및 레지스트리 보호 방법을 제공한다.In order to achieve the above object and to solve the problems of the prior art, the present invention includes the steps of periodically collecting attack signature information at the application level, recording the collected attack signature information in a database, and searching the file system And (1) if the same value as the value recorded in the database is included in the search result for the file system, detecting the attack by the malware and removing the corresponding information; (2) Searching for the registry if the same value as the value recorded in the database is not included in the search result for the file system, and if the search result for the registry includes the same value as the value recorded in the database. Detecting the attack by the malware and removing the information. Provides file system and registry protection methods.

본 발명의 다른 일측에 따르는 파일 시스템 및 레지스트리를 보호하는 장치 는 공격 시그너처를 주기적으로 수집하는 수집부와, 상기 수집된 공격 시그너처 정보를 기록하는 데이터베이스와, 상기 파일 시스템 또는 상기 레지스트리를 검색하는 검색부와, 상기 데이터베이스에 기록된 값과 상기 파일 시스템 또는 상기 레지스트리를 검색한 결과 값을 비교하는 비교부, 및 상기 데이터베이스에 기록된 값과 동일한 값이 상기 파일 시스템에 대한 검색 결과에 포함된 경우 또는 상기 데이터베이스에 기록된 값과 동일한 값이 상기 레지스트리에 대한 검색 결과에 포함된 경우, 악성코드를 탐지하여 제거하는 처리부를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, an apparatus for protecting a file system and a registry may include a collecting unit that periodically collects attack signatures, a database that records the collected attack signature information, and a search unit that searches the file system or the registry. And a comparison unit for comparing a value recorded in the database with a result obtained by searching the file system or the registry, and a value equal to a value recorded in the database is included in the search result for the file system or the When the same value as the value recorded in the database is included in the search results for the registry, characterized in that it comprises a processing unit for detecting and removing malicious code.

이하에서는 첨부된 도면들을 참조하여 본 발명에 따른 파일 시스템 및 레지스트리 보호 방법 및 그 장치를 상세히 설명한다.Hereinafter, a method and a device for protecting a file system and a registry according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 윈도우 커널 기반 악성코드를 탐지 및 제거하는 시스템의 구성을 나타내는 도면이다.1 is a diagram showing the configuration of a system for detecting and removing Windows kernel-based malware according to the present invention.

도 1을 참조하면, 악성코드 제거 시스템(110)은 파일 및 레지스트리 검사 모듈(111), 커널 메모리 검사 모듈(112), 커널 드라이버 감사 모듈(113), 및 프로세스 검사 모듈(114)을 포함한다. Referring to FIG. 1, the malware removal system 110 includes a file and registry check module 111, a kernel memory check module 112, a kernel driver audit module 113, and a process check module 114.

파일 및 레지스트리 검사 모듈(111)은 사용자 모드(120)의 파일 시스템(121)과 레지스트리(122)를 검사하여 사용자 수준에서 악성코드를 탐지하여 제거한다. 파일 및 레지스트리 검사 모듈(111)은 커널 기반의 악성코드라도 최소한의 흔적인 공격 시그너처를 남기기 때문에 상기 공격 시그너처를 주기적으로 수집한다. 파일 및 레지스트리 검사 모듈(111)은 상기 수집된 공격 시그너처 정보를 데이터베이스에 기록하고, 파일 시스템 및 레지스트리를 검색한다. 파일 및 레지스트리 검 사 모듈(111)은 상기 파일 시스템 및 상기 레지스트리에 대한 검색 결과를 상기 수집된 공격 시그너처 정보와 비교하여 일치하는 경우 공격 탐지로 간주하여 해당 정보를 제거한다. The file and registry checking module 111 detects and removes malicious code at the user level by inspecting the file system 121 and the registry 122 of the user mode 120. The file and registry check module 111 periodically collects the attack signatures, even if the kernel-based malicious code leaves an attack signature that is the minimum trace. The file and registry checking module 111 records the collected attack signature information in a database and searches the file system and the registry. The file and registry inspection module 111 compares the search results of the file system and the registry with the collected attack signature information, and removes the information by considering it as an attack detection.

또한, 파일 및 레지스트리 검사 모듈(111)은 안전 상태(clean state)의 파일 시스템 정보를 현재의 파일 시스템 정보와 주기적으로 비교하여 악성코드에 대한 침입을 탐지하여 차단한다. 상기 안전 상태는 악성코드에 대한 침입을 받지 않은 상태 또는 시스템이 설치되는 초기 상태를 포함할 수 있다. 즉, 파일 및 레지스트리 검사 모듈(111)은 상기 안전 상태의 파일 시스템 및 레지스트리에 대한 원본 해쉬 값과 상기 현재의 파일 시스템 및 레지스트리에 대한 현재 해쉬 값을 비교하여 동일하지 않는 경우, 상기 현재 해쉬 값을 상기 원본 해쉬 값으로 대체할 수 있다. In addition, the file and registry checking module 111 detects and blocks intrusions to malicious code by periodically comparing file system information in a clean state with current file system information. The safe state may include an initial state in which a system is not installed or an intrusion into a malicious code. That is, the file and registry checking module 111 compares the original hash value for the file system and the registry in the safe state with the current hash value for the current file system and the registry, and compares the current hash value with the current hash value. Can be replaced with the original hash value.

파일 시스템(121) 및 레지스트리(122)는 커널 기반의 악성코드를 포함하여 대부분의 악성코드 공격에 있어서 집중 공략의 대상이 된다. 상기 악성코드는 파일 시스템(121)에 접근하여 백도어를 설치하고, 차후에 자동 실행을 위하여 레지스트리(122)에 등록 정보를 저장한다. 따라서, 악성코드 제거 시스템(110)은 커널 기반 악성코드를 커널 수준에서 탐지 및 제거하기 이전에 파일 시스템(121) 및 레지스트리(122)에서 악성코드를 검사한다.The file system 121 and the registry 122 are targeted for most of the attacks, including kernel-based malware. The malicious code accesses the file system 121, installs a back door, and stores registration information in the registry 122 for automatic execution later. Therefore, the malware removal system 110 checks the malware in the file system 121 and the registry 122 before detecting and removing the kernel-based malware at the kernel level.

커널 메모리 검사 모듈(112)은 커널 메모리(131)에 적재된 운영 체제 커널 함수 및 변수들이 조작 또는 변경되는 것을 방지하기 위하여 안전한 상태의 커널 메모리 값과 현재 커널 메모리 값을 비교하여 공격 행위를 탐지하여 차단한다. 즉 , 커널 메모리 검사 모듈(112)은 인터럽트 호출 게이트 IDTR(Interrupt Descriptor Table Register)와 IDT(Interrupt Descriptor Table), 시스템 호출 서비스 디스크립터 SDT(Service Descriptor Table), 프로세스 및 쓰레드 구조체 ETHREAD를 포함한 커널 메모리(131)의 변경 여부를 탐지하고, 변경되었을 경우 안전한 상태로 복원시킨다. In order to prevent the operating system kernel functions and variables loaded in the kernel memory 131 from being manipulated or changed, the kernel memory check module 112 detects an attack behavior by comparing a kernel memory value in a safe state with a current kernel memory value. Block it. That is, the kernel memory check module 112 includes a kernel memory 131 including an interrupt call gate Interrupt Descriptor Table Register (IDTR) and an Interrupt Descriptor Table (IDT), a system call service descriptor Service Descriptor Table (SDT), and a process and thread structure ETHREAD. ) Is detected and if it is changed, it is restored to a safe state.

커널 메모리 검사 모듈(112)은 사용자 입력 또는 사용자의 설정에 의해서 자동으로 커널 메모리(131)에 대한 영역 검사를 수행한다. 커널 메모리 검사 모듈(112)은 현재의 커널 메모리 값을 덤프(dump)하고, 상기 덤프한 결과를 미리 저장하고 있는 안전한 커널 메모리 값과 비교한다. 커널 메모리 검사 모듈(112)은 상기 비교 결과가 동일한 경우, 현재 커널 메모리 덤프가 안전한 상태인 것으로 간주한다. 또한, 커널 메모리 검사 모듈(112)은 상기 비교 결과가 동일하지 않은 경우, 현재 커널 메모리를 복원하기 위해 상기 저장된 안전한 커널 메모리 값으로 대체한다. 상기 커널 메모리를 복원하는 작업은 시스템 명령어의 제어 흐름을 변경하는 작업으로 시스템 크래쉬 발생 가능성이 매우 높기 때문에 커널 정보를 정확하고 안전하게 복원하기 위해 임계 영역(critical section)을 피해 운영 체제 수준의 상호 배제(mutual exclusion) 방식을 사용한다.The kernel memory check module 112 automatically performs a region check on the kernel memory 131 according to a user input or a user's setting. The kernel memory check module 112 dumps the current kernel memory value and compares the dumped result with a safe kernel memory value previously stored. If the comparison result is the same, the kernel memory check module 112 considers that the current kernel memory dump is in a safe state. In addition, if the comparison result is not the same, the kernel memory check module 112 replaces the stored secure kernel memory value to restore the current kernel memory. Restoring the kernel memory is a process that changes the control flow of the system instructions, which is very likely to cause a system crash. Therefore, it is necessary to avoid operating system-level mutual exclusion from critical sections to restore kernel information accurately and safely. The mutual exclusion method is used.

커널 드라이버 검사 모듈(113)은 커널 기반 악성코드가 커널 드라이버로 제작되기 때문에 신뢰성 있는 커널 드라이버 목록을 생성하고, 의심되는 커널 드라이버를 탐지하여 삭제 또는 차단한다. 커널 드라이버 검사 모듈(113)은 사용자 모드에서 API를 이용하여 검색 가능한 커널 드라이버 목록과 커널 구조체를 통하여 검 색 가능한 드라이버 목록을 비교하여 동일하지 않은 경우, 은폐된 커널 드라이버를 탐지하여 제거한다. 커널 드라이버 검사 모듈(113)은 사용자 입력 또는 사용자 설정에 의해 자동으로 은폐된 드라이버 탐지를 시작하며, Win32 ToolHelp API를 호출하여 실시간으로 제1 커널 드라이버 목록을 검색한다. 또한, 커널 드라이버 검사 모듈(113)은 커널 모드의 PsLoadModulelist를 호출하여 커널 구조체를 통하여 제2 커널 드라이버 목록을 검색한다. 커널 드라이버 검사 모듈(113)은 상기 제1 커널 드라이버 목록과 상기 제2 커널 드라이버 목록을 비교하여 동일하지 않은 경우, 은폐된 커널 드라이버를 탐지하여 제거한다. Since kernel-based malware is produced as a kernel driver, the kernel driver checking module 113 generates a reliable kernel driver list and detects and deletes or blocks a suspected kernel driver. The kernel driver checking module 113 compares the searchable driver list through the kernel structure with the searchable kernel driver list using the API in the user mode, and detects and removes the hidden kernel driver when it is not the same. The kernel driver checking module 113 automatically detects a driver hidden by user input or user setting, and calls the Win32 ToolHelp API to retrieve the first kernel driver list in real time. In addition, the kernel driver checking module 113 calls the PsLoadModulelist in kernel mode to retrieve the second kernel driver list through the kernel structure. The kernel driver checking module 113 compares the first kernel driver list with the second kernel driver list, and detects and removes the hidden kernel driver when it is not the same.

커널 드라이버 검사 모듈(113)은 프로그램에 의한 커널 드라이버 적재 요청에 따라 미리 작성된 접근제어목록을 검색하여 상기 적재될 경로가 신뢰구간에 해당하지 않은 경우, 비정상적인 커널 드라이버가 적재되지 못하도록 한다. The kernel driver checking module 113 searches for a previously created access control list according to a kernel driver loading request by a program so that an abnormal kernel driver cannot be loaded when the path to be loaded does not correspond to a confidence interval.

커널 드라이버 검사 모듈(113)은 커널 드라이버에 대한 신뢰 구간과 비신뢰 구간에 대한 접근통제목록을 구성한다. 커널 드라이버 검사 모듈(113)은 상기 접근통제목록을 참조하여 적재될 커널 드라이버가 신뢰 구간의 드라이버인 경우, 상기 커널 드라이버를 정상적으로 커널 영역에 적재한다. 커널 드라이버 검사 모듈(113)은 상기 접근통제목록을 참조하여 상기 커널 드라이버가 비신뢰 구간의 드라이버인 경우, 상기 커널 드라이버가 상기 커널 영역에 적재되지 못하도록 처리한다. The kernel driver check module 113 constructs an access control list for a trusted interval and an untrusted interval for the kernel driver. The kernel driver checking module 113 loads the kernel driver normally in the kernel region when the kernel driver to be loaded is a driver of a confidence interval with reference to the access control list. The kernel driver checking module 113 processes the kernel driver from being loaded in the kernel region when the kernel driver is a driver of an untrusted interval with reference to the access control list.

프로세스 검사 모듈(114)은 운영 체제 수준에서 은폐된 프로세스 및 관련 정보를 검색하여 의심되는 악성 프로세스 및 관련 정보를 제거하고, 프로세스 수행 권을 제어 관리한다. The process inspection module 114 searches for concealed processes and related information at the operating system level, removes suspected malicious processes and related information, and controls and manages the right to execute the process.

프로세스 검사 모듈(114)은 실시간으로 검색된 제1 프로세스 목록과 커널 구조체를 통해 검색된 제2 프로세스 목록을 비교하여 동일하지 않은 경우, 은폐된 프로세스를 탐지하여 제거한다. The process inspecting module 114 compares the first process list searched in real time with the second process list searched through the kernel structure, and detects and removes a hidden process if it is not the same.

또한, 프로세스 검사 모듈(114)은 ActiveProcessLinks를 통해서 검색된 제3 프로세스 목록과 ETHREAD를 순회하여 검색된 제4 프로세스 목록을 비교하여 동일하지 않은 경우, 은폐된 프로세스를 탐지하여 제거한다.In addition, the process checking module 114 detects and removes the concealed process if it is not the same by comparing the third process list searched through ActiveProcessLinks and the searched fourth process list by searching ETHREAD.

도 2는 본 발명의 일실시예에 따른 공격 시그너처를 기반으로 파일 시스템 및 레지스트리의 악성코드를 검색하는 과정을 나타내는 도면이다.2 is a diagram illustrating a process of searching for malicious codes in a file system and a registry based on an attack signature according to an embodiment of the present invention.

도 2를 참조하면, 단계(210)에서 악성코드 제거 시스템은 응용 수준에서 공격 시그너처 정보를 주기적으로 수집한다. Referring to FIG. 2, in operation 210, the malware removal system periodically collects attack signature information at an application level.

단계(220)에서 상기 악성코드 제거 시스템은 상기 수집된 공격 시그너처 정보를 데이터베이스에 기록한다. 상기 공격 시그너처 정보는 파일 경로, 파일 이름, 레지스트리 이름, 레지스트리 버전 및 레지스트리 값 중 적어도 하나를 포함할 수 있다. In step 220, the malware removal system records the collected attack signature information in a database. The attack signature information may include at least one of a file path, a file name, a registry name, a registry version, and a registry value.

단계(230)에서 상기 악성코드 제거 시스템은 사용자의 입력 또는 사용자의 설정에 따라 파일 시스템을 검색한다. In step 230, the malware removal system searches for a file system according to a user input or a user's setting.

단계(240)에서 상기 악성코드 제거 시스템은 상기 파일 시스템을 검색한 결과가 상기 데이터베이스에 기록된 공격 시그너처 정보와 일치하는지를 판단한다. 즉, 상기 악성코드 제거 시스템은 상기 데이터베이스에 기록된 값과 동일한 값이 상기 파일 시스템을 검색한 결과에 포함되는지를 판단할 수 있다. In step 240, the malicious code removal system determines whether the result of searching the file system matches the attack signature information recorded in the database. That is, the malicious code removal system may determine whether a value equal to the value recorded in the database is included in the search result of the file system.

상기 파일 시스템을 검색한 결과가 상기 데이터베이스에 기록된 공격 시그너처 정보와 일치하는 경우, 단계(241)에서 상기 악성코드 제거 시스템은 상기 일치하는 공격 시그너처 정보에 의한 공격으로 탐지한다. 즉, 상기 악성코드 제거 시스템은 상기 데이터베이스에 기록된 값과 동일한 값이 상기 파일 시스템을 검색한 결과에 포함되는 경우, 이를 공격 탐지로 간주한다.If the search result of the file system matches the attack signature information recorded in the database, in step 241, the malware removal system detects an attack by the matching attack signature information. That is, when the malware removal system includes a value equal to the value recorded in the database in the search result of the file system, it is regarded as an attack detection.

단계(242)에서 상기 악성코드 제거 시스템은 상기 공격 탐지에 따라 해당되는 정보를 제거한 후 상기 파일 시스템에 대한 검색을 계속 진행한다.In step 242, the malicious code removal system removes the corresponding information according to the attack detection, and continues searching for the file system.

상기 파일 시스템을 검색한 결과가 상기 데이터베이스에 기록된 공격 시그너처 정보와 일치하는 않는 경우, 단계(250)에서 상기 악성코드 제거 시스템은 레지스트리를 검색한다. 즉, 상기 악성코드 제거 시스템은 상기 데이터베이스에 기록된 값과 동일한 값이 상기 파일 시스템에 대한 검색 결과에 포함되지 않은 경우, 상기 파일 시스템에 대한 검색을 완료한 후 상기 레지스트리에 대한 검색을 다시 수행한다. If the search result of the file system does not match the attack signature information recorded in the database, in step 250, the malware removal system searches the registry. That is, if the same value as the value recorded in the database is not included in the search result for the file system, the malware removal system performs a search for the registry again after completing the search for the file system. .

단계(260)에서 상기 악성코드 제거 시스템은 상기 레지스트리를 검색한 결과가 상기 데이터베이스에 기록된 공격 시그너처 정보와 일치하는지를 판단한다. 즉, 상기 악성코드 제거 시스템은 상기 데이터베이스에 기록된 값과 동일한 값이 상기 파일 시스템에 대한 검색 결과에 포함되는지를 판단한다. In step 260, the malicious code removal system determines whether the result of searching the registry matches the attack signature information recorded in the database. That is, the malware removal system determines whether a value equal to the value recorded in the database is included in the search result for the file system.

상기 레지스트리를 검색한 결과가 상기 데이터베이스에 기록된 공격 시그너처 정보와 일치하는 경우, 단계(261)에서 상기 악성코드 제거 시스템은 상기 일치 하는 공격 시그너처에 의한 공격을 탐지한다. 즉, 상기 악성코드 제거 시스템은 상기 데이터베이스에 기록된 값과 동일한 값이 상기 레지스트리를 검색한 결과에 포함되는 경우, 이를 공격 탐지로 간주한다.If the result of searching the registry matches the attack signature information recorded in the database, in step 261, the malware removal system detects an attack by the matching attack signature. That is, when the malware removal system includes a value identical to the value recorded in the database in the search result of the registry, it is regarded as an attack detection.

단계(262)에서 상기 악성코드 제거 시스템은 상기 탐지된 공격에 따라 해당되는 정보를 제거한 후 상기 레지스트리에 대한 검색을 다시 수행한다. In step 262, the malware removal system removes the corresponding information according to the detected attack, and then performs a search for the registry again.

상기 레지스트리를 검색한 결과가 상기 데이터베이스에 기록된 공격 시그너처 정보와 일치하지 않는 경우, 상기 악성코드 제거 시스템은 상기 레지스트리에 대한 악성코드가 존재하지 않는 것으로 간주한다. 즉, 상기 악성코드 제거 시스템은 상기 데이터베이스에 기록된 값과 동일한 값이 상기 레지스트리를 검색한 결과에 포함되지 않는 경우, 상기 레지스트리에 대한 악성코드가 존재하지 않으므로 상기 레지스트리에 대한 검색을 종료한다. If the result of searching the registry does not match the attack signature information recorded in the database, the malware removal system considers that there is no malicious code for the registry. That is, when the value identical to the value recorded in the database is not included in the result of searching the registry, the malicious code removal system terminates the search for the registry because there is no malicious code for the registry.

도 3은 본 발명의 일실시예에 따른 파일 시스템 및 레지스트리의 무결성을 검사하는 과정을 나타내는 도면이다.3 is a diagram illustrating a process of checking the integrity of a file system and a registry according to an embodiment of the present invention.

도 3을 참조하면, 단계(310)에서 악성코드 제거 시스템은 도 2에 도시된 것과 같은 과정을 통해 공격 시그너처에 의한 악성코드 탐지를 수행한다. Referring to FIG. 3, in step 310, the malware removal system detects malware by an attack signature through a process as illustrated in FIG. 2.

단계(320)에서 상기 악성코드 제거 시스템은 상기 악성코드 탐지를 수행한 결과에 따라 상기 파일 시스템 및 상기 레지스트리에 대해 안전 상태인지를 판단한다. In operation 320, the malicious code removal system determines whether the file system and the registry are in a safe state according to a result of performing the malicious code detection.

상기 파일 시스템 및 상기 레지스트리에 대해 안전 상태가 아닌 경우, 단계(325)에서 상기 파일 시스템 및 상기 레지스트리에 대한 악성코드를 제거한다.If the file system and the registry are not in a safe state, step 325 removes malware for the file system and the registry.

상기 파일 시스템 및 상기 레지스트리에 대해 안전 상태인 경우, 단계(330)에서 상기 악성코드 제거 시스템은 상기 안전 상태의 파일 시스템 및 레지스트리를 덤프한다.If the file system and the registry are in a safe state, in step 330 the malware removal system dumps the safe file system and the registry.

단계(340)에서 상기 악성코드 제거 시스템은 상기 덤프된 안전 상태의 파일 시스템 및 레지스트리를 일방향 해쉬 함수(hash function)에 입력하고, 상기 해쉬 함수로부터 출력된 결과인 해쉬 값을 상기 안전 상태의 파일 시스템 및 레지스트리에 대한 원본 해쉬 값으로 저장한다. 상기 악성코드 제거 시스템은 상기 데이터베이스에 기록된 값과 동일한 값이 상기 레지스트리에 대한 검색 결과에 포함되지 않은 경우 안전 상태로 간주하고, 상기 안전 상태의 파일 시스템 및 상기 레지스트리에 대한 해쉬 함수를 적용하여 출력된 상기 원본 해쉬 값을 저장할 수 있다. In step 340, the malware removal system inputs the dumped safe file system and the registry into a one-way hash function, and inputs a hash value that is a result output from the hash function to the file system of the safe state. And store it as the original hash value for the registry. The malware removal system considers a safe state if a value identical to a value recorded in the database is not included in a search result for the registry, and outputs the file system in the safe state and a hash function for the registry. The stored original hash value.

단계(350)에서 상기 악성코드 제거 시스템은 현재의 파일 시스템 및 레지스트리를 덤프한다.In step 350, the malware removal system dumps the current file system and registry.

단계(360)에서 상기 악성코드 제거 시스템은 상기 덤프된 현재의 파일 시스템 및 상기 레지스트리에 대한 해쉬 함수를 적용하여 출력된 현재 해쉬 값을 저장한다. In step 360, the malware removal system stores the current hash value output by applying a hash function for the dumped current file system and the registry.

단계(370)에서 상기 악성코드 제거 시스템은 상기 원본 해쉬 값과 상기 현재 해쉬 값이 동일한지를 판단한다. 즉, 상기 악성코드 제거 시스템은 상기 원본 해쉬 값과 상기 현재 해쉬 값을 주기적으로 비교한 결과 상기 원본 해쉬 값과 상기 현재 해쉬 값이 일치하는지를 판단한다. In step 370, the malware removal system determines whether the original hash value and the current hash value are the same. That is, the malware removal system periodically compares the original hash value with the current hash value and determines whether the original hash value and the current hash value match.

상기 원본 해쉬 값과 상기 현재 해쉬 값이 동일하지 않는 경우, 단계(380) 에서 상기 악성코드 제거 시스템은 현재 해쉬 값을 상기 원본 해쉬 값으로 대체한다. If the original hash value and the current hash value are not the same, the malware removal system replaces the current hash value with the original hash value in step 380.

상기 원본 해쉬 값과 상기 현재 해쉬 값이 동일한 경우, 상기 악성코드 제거 시스템은 상기 파일 시스템 및 상기 레지스트리에 대한 위조 또는 변조가 없는 것으로 간주하여 시스템 상태 검사를 종료한다. If the original hash value and the current hash value are the same, the malware removal system considers that there is no forgery or tampering with the file system and the registry and ends the system state check.

도 4는 본 발명의 일실시예에 따른 파일 시스템 및 레지스트리 보호 장치를 나타내는 도면으로서, 파일 시스템 및 레지스트리 보호 장치(400)는 수집부(410), 데이터베이스(420), 검색부(430), 비교부(440), 처리부(450), 및 저장부(460)를 포함한다.4 is a diagram illustrating a file system and a registry protection device according to an embodiment of the present invention. The file system and registry protection device 400 includes a collection unit 410, a database 420, a search unit 430, and a comparison. The unit 440, the processing unit 450, and the storage unit 460 are included.

도 4를 참조하면, 수집부(410)는 파일 시스템 및 레지스트리에 대한 공격 시그너처 정보를 주기적으로 수집한다. 상기 공격 시그너처 정보는 파일 경로, 파일 이름, 레지스트리 이름, 레지스트리 버전, 및 레지스트리 값 중 적어도 하나를 포함할 수 있다. Referring to FIG. 4, the collecting unit 410 periodically collects attack signature information on the file system and the registry. The attack signature information may include at least one of a file path, a file name, a registry name, a registry version, and a registry value.

데이터베이스(420)는 상기 수집된 공격 시그너처 정보를 기록한다.Database 420 records the collected attack signature information.

검색부(430)는 상기 파일 시스템 및 상기 레지스트리를 검색한다.The search unit 430 searches the file system and the registry.

비교부(440)는 데이터베이스(420)에 기록된 값과 상기 파일 시스템 및 상기 레지스트리를 검색한 결과 값을 비교한다. 또한, 비교부(440)는 안전 상태의 파일 시스템 및 레지스트리에 대한 원본 해쉬 값과 현재 상태의 파일 시스템 및 레지스트리에 대한 현재 해쉬 값을 비교한다. The comparison unit 440 compares the value recorded in the database 420 with the result of searching the file system and the registry. In addition, the comparison unit 440 compares the original hash value for the file system and the registry in the safe state with the current hash value for the file system and the registry in the current state.

처리부(450)는 비교부(440)의 비교 결과에 따라 데이터베이스(420)에 기록 된 값과 동일한 값이 상기 파일 시스템에 대한 검색 결과에 포함된 경우 또는 데이터베이스(420)에 기록된 값과 동일한 값이 상기 레지스트리에 대한 검색 결과에 포함된 경우 악성코드를 탐지하여 제거한다. 또한, 처리부(450)는 비교부(440)의 비교 결과에 따라 상기 원본 해쉬 값과 상기 현재 해쉬 값이 일치하지 않는 경우 상기 현재 해쉬 값을 상기 원본 해쉬 값으로 대체한다.The processor 450 determines whether the same value as the value recorded in the database 420 is included in the search result for the file system or the same value as the value recorded in the database 420 according to the comparison result of the comparator 440. The malware is detected and removed when it is included in the search results for the registry. In addition, the processor 450 replaces the current hash value with the original hash value when the original hash value and the current hash value do not match according to the comparison result of the comparator 440.

저장부(460)는 데이터베이스(420)에 기록된 값과 동일한 값이 상기 레지스트리에 대한 검색 결과가 포함되지 않는 경우, 상기 파일 시스템 및 상기 레지스트리에 해쉬 함수를 적용하여 출력된 상기 원본 해쉬 값을 저장한다. 또한, 저장부(460)는 상기 현재 파일 시스템 및 레지스트리에 해쉬 함수를 적용하여 출력된 상기 현재 해쉬 값을 저장한다. The storage unit 460 stores the original hash value output by applying a hash function to the file system and the registry when a value identical to a value recorded in the database 420 does not include a search result for the registry. do. In addition, the storage unit 460 stores the current hash value output by applying a hash function to the current file system and the registry.

또한 본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.Embodiments of the invention also include computer-readable media containing program instructions for performing various computer-implemented operations. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The medium or program instructions may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. 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. The medium may be a transmission medium such as an optical or metal wire, a waveguide, or the like including a carrier wave for transmitting a signal specifying a program command, a data structure, or 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.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above-described embodiments, which can be variously modified and modified by those skilled in the art to which the present invention pertains. Modifications are possible. Accordingly, the spirit of the present invention should be understood only by the claims set forth below, and all equivalent or equivalent modifications thereof will belong to the scope of the present invention.

본 발명에 따르면, 공격 시그너처 정보를 수집하여 파일 시스템 및 레지스트리에 대한 악성코드의 공격을 탐지함으로써 알려지지 않은 악성코드를 손쉽게 제거할 수 있다.According to the present invention, unknown signatures can be easily removed by detecting attack signatures on file systems and registries by collecting attack signature information.

또한 본 발명에 따르면, 파일 시스템 및 레지스트리에 대한 악성코드를 탐지하여 제거함으로써 시스템에서 수행 가능한 악성행위를 사전에 방지할 수 있기 때문에 클라이언트/서버 환경에서 서버 및 클라이언트 시스템에 설치되어 서버 및 인트라넷, 클라이언트 운영 환경의 안전성을 향상시킬 수 있다.In addition, according to the present invention, by detecting and removing malicious codes for the file system and the registry, it is possible to prevent malicious behavior that can be performed in the system in advance, so that the server, the intranet, the client are installed in the server and the client system in the client / server environment Improve the safety of the operating environment.

Claims (6)

삭제delete 파일 시스템 및 레지스트리를 보호하는 방법에 있어서,In the method of protecting file system and registry, 응용 수준의 공격 시그너처 정보를 수집하고 데이터베이스에 기록하는 단계;Collecting application-level attack signature information and recording it in a database; 상기 파일 시스템을 검색하는 단계;Searching the file system; 상기 데이터베이스에 기록된 값과 동일한 값이 상기 파일 시스템에 대한 검색 결과에 포함된 경우, 악성코드에 의한 공격을 탐지하여 해당 정보를 제거하는 단계를 포함하고,If the same value as the value recorded in the database is included in the search result for the file system, detecting the attack by the malware and removing the information; 상기 데이터베이스에 기록된 값과 동일한 값이 상기 파일 시스템에 대한 검색 결과에 포함되지 않은 경우, If a value equal to the value recorded in the database is not included in the search results for the file system, (1) 상기 레지스트리를 검색하여 상기 데이터베이스에 기록된 값과 동일한 값이 상기 레지스트리에 대한 검색 결과에 포함된 경우, 악성코드에 의한 공격을 탐지하여 해당 정보를 제거하는 단계를 포함하고,(1) detecting the attack by the malicious code and removing the information when the registry includes the same value as the value recorded in the database by searching the registry; (2) 상기 레지스트리를 검색하여 상기 데이터베이스에 기록된 값과 동일한 값이 상기 레지스트리에 대한 검색 결과에 포함되지 않은 경우, 상기 파일 시스템 및 상기 레지스트리에 해쉬 함수를 적용하여 출력된 원본 해쉬 값을 저장하는 단계와, 현재 파일 시스템 및 레지스트리에 대한 현재 해쉬 값을 상기 원본 해쉬 값과 주기적으로 비교하는 단계와, 상기 비교 결과 상기 원본 해쉬 값과 상기 현재 해쉬 값이 일치하지 않는 경우 상기 현재 해쉬 값을 상기 원본 해쉬 값으로 대체하는 단계를 포함하는 것을 특징으로 하는 파일 시스템 및 레지스트리 보호 방법.(2) storing the original hash value output by applying a hash function to the file system and the registry when a value identical to a value recorded in the database is not included in the registry by searching the registry; Periodically comparing the current hash value for the current file system and the registry with the original hash value; and if the original hash value and the current hash value do not match, comparing the current hash value with the original hash value. And replacing with a hash value. 제2항에 있어서, The method of claim 2, 상기 공격 시그너처 정보는 파일 경로, 파일 이름, 레지스트리 이름, 레지스트리 버전 및 레지스트리 값 중 적어도 하나를 포함하는 것을 특징으로 하는 파일 시스템 및 레지스트리 보호 방법.The attack signature information includes at least one of a file path, a file name, a registry name, a registry version, and a registry value. 제2항 또는 제3항의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록하는 컴퓨터 판독 가능한 기록매체.A computer-readable recording medium for recording a program for executing the method of claim 2 or 3 on a computer. 삭제delete 파일 시스템 및 레지스트리를 보호하는 장치에 있어서,A device for protecting file systems and registries, 공격 시그너처를 주기적으로 수집하는 수집부;A collecting unit periodically collecting attack signatures; 상기 수집된 공격 시그너처 정보를 기록하는 데이터베이스;A database for recording the collected attack signature information; 상기 파일 시스템 또는 상기 레지스트리를 검색하는 검색부;A search unit for searching the file system or the registry; 상기 데이터베이스에 기록된 값과 상기 파일 시스템 또는 상기 레지스트리를 검색한 결과 값을 비교하는 비교부;A comparison unit comparing a value recorded in the database with a result value of searching the file system or the registry; 상기 데이터베이스에 기록된 값과 동일한 값이 상기 파일 시스템에 대한 검색 결과에 포함된 경우 또는 상기 데이터베이스에 기록된 값과 동일한 값이 상기 레지스트리에 대한 검색 결과에 포함된 경우, 악성코드를 탐지하여 제거하는 처리부; 및When a value equal to a value recorded in the database is included in a search result for the file system or a value equal to a value recorded in the database is included in a search result for the registry, the malware is detected and removed. Processing unit; And 상기 데이터베이스에 기록된 값과 동일한 값이 상기 레지스트리에 대한 검색 결과에 포함되지 않은 경우, 상기 파일 시스템 및 상기 레지스트리에 해쉬 함수를 적용하여 출력된 원본 해쉬 값을 저장하고, 현재 파일 시스템 및 레지스트리에 대한 현재 해쉬 값을 저장하는 저장부를 포함하고,If a value identical to the value recorded in the database is not included in the search result for the registry, the original hash value output by applying a hash function to the file system and the registry is stored, and the current file system and the registry are stored. A storage for storing a current hash value, 상기 처리부는 상기 원본 해쉬 값과 현재 파일 시스템 및 레지스트리에 대한 현재 해쉬 값을 비교하여 일치하지 않는 경우, 상기 현재 해쉬 값을 상기 원본 해쉬 값으로 대체하는 것을 특징으로 하는 파일 시스템 및 레지스트리 보호 장치.And the processor compares the original hash value with a current hash value for the current file system and the registry, and replaces the current hash value with the original hash value if there is a mismatch.
KR1020050073905A 2005-08-11 2005-08-11 Method for protecting file system and registry and apparatus thereof KR100745639B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050073905A KR100745639B1 (en) 2005-08-11 2005-08-11 Method for protecting file system and registry and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050073905A KR100745639B1 (en) 2005-08-11 2005-08-11 Method for protecting file system and registry and apparatus thereof

Publications (2)

Publication Number Publication Date
KR20070019190A KR20070019190A (en) 2007-02-15
KR100745639B1 true KR100745639B1 (en) 2007-08-02

Family

ID=41631100

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050073905A KR100745639B1 (en) 2005-08-11 2005-08-11 Method for protecting file system and registry and apparatus thereof

Country Status (1)

Country Link
KR (1) KR100745639B1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100870140B1 (en) * 2006-11-13 2008-11-24 한국전자통신연구원 Detection Apparatus and Method of Embedded Malicious Code in File
US8359647B1 (en) * 2007-07-19 2013-01-22 Salesforce.Com, Inc. System, method and computer program product for rendering data of an on-demand database service safe
KR100915202B1 (en) * 2007-11-27 2009-09-02 유디코스모 주식회사 Method and apparatus for collecting malicious codes
KR100977179B1 (en) * 2008-03-19 2010-08-23 엔에이치엔비즈니스플랫폼 주식회사 Method and System for Searching malicious code
KR101039551B1 (en) * 2008-10-15 2011-06-09 (주)씨디네트웍스 Method and system for monitoring hidden process
KR101210258B1 (en) * 2010-05-25 2012-12-10 주식회사 잉카인터넷 method for displaying information about hack tool usage in online game
KR101861952B1 (en) * 2017-01-25 2018-05-28 한양대학교 에리카산학협력단 Anti-debugging method for preventing software break point and apparatus therefor

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004533041A (en) * 2001-03-30 2004-10-28 コンピュータ アソシエイツ シンク,インコーポレイテッド System and method for recovering a computer system damaged by a malicious computer program
US6873988B2 (en) 2001-07-06 2005-03-29 Check Point Software Technologies, Inc. System and methods providing anti-virus cooperative enforcement

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004533041A (en) * 2001-03-30 2004-10-28 コンピュータ アソシエイツ シンク,インコーポレイテッド System and method for recovering a computer system damaged by a malicious computer program
US6873988B2 (en) 2001-07-06 2005-03-29 Check Point Software Technologies, Inc. System and methods providing anti-virus cooperative enforcement

Also Published As

Publication number Publication date
KR20070019190A (en) 2007-02-15

Similar Documents

Publication Publication Date Title
US10984097B2 (en) Methods and apparatus for control and detection of malicious content using a sandbox environment
McIntosh et al. Ransomware mitigation in the modern era: A comprehensive review, research challenges, and future directions
KR102307534B1 (en) Systems and methods for tracking malicious behavior across multiple software entities
JP5326062B1 (en) Non-executable file inspection apparatus and method
EP3039608B1 (en) Hardware and software execution profiling
US8261344B2 (en) Method and system for classification of software using characteristics and combinations of such characteristics
US7934261B1 (en) On-demand cleanup system
US8056134B1 (en) Malware detection and identification via malware spoofing
US8434151B1 (en) Detecting malicious software
JP5265061B1 (en) Malicious file inspection apparatus and method
US20140053267A1 (en) Method for identifying malicious executables
US11494491B2 (en) Systems and methods for protecting against malware code injections in trusted processes by a multi-target injector
KR100745639B1 (en) Method for protecting file system and registry and apparatus thereof
RU2697954C2 (en) System and method of creating antivirus record
KR100745640B1 (en) Method for protecting kernel memory and apparatus thereof
Ramilli et al. Multi-stage delivery of malware
KR100666562B1 (en) Method for protecting kernel driver and process
JP5326063B1 (en) Malicious shellcode detection apparatus and method using debug events
Rohith et al. A comprehensive study on malware detection and prevention techniques used by anti-virus
US7620983B1 (en) Behavior profiling
KR101311367B1 (en) Method and apparatus for diagnosing attack that bypass the memory protection
US10880316B2 (en) Method and system for determining initial execution of an attack
WO2020007249A1 (en) Operating system security active defense method and operating system
Xie et al. Lightweight examination of dll environments in virtual machines to detect malware
Saleh Malware detection model based on classifying system calls and code attributes: a proof of concept

Legal Events

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