KR100991807B1 - System and method for detecting and managing malicious code in computer systems using microsoft windows operating systems - Google Patents

System and method for detecting and managing malicious code in computer systems using microsoft windows operating systems Download PDF

Info

Publication number
KR100991807B1
KR100991807B1 KR1020080046659A KR20080046659A KR100991807B1 KR 100991807 B1 KR100991807 B1 KR 100991807B1 KR 1020080046659 A KR1020080046659 A KR 1020080046659A KR 20080046659 A KR20080046659 A KR 20080046659A KR 100991807 B1 KR100991807 B1 KR 100991807B1
Authority
KR
South Korea
Prior art keywords
win32 api
malicious code
file
win32
malware
Prior art date
Application number
KR1020080046659A
Other languages
Korean (ko)
Other versions
KR20090120717A (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 KR1020080046659A priority Critical patent/KR100991807B1/en
Publication of KR20090120717A publication Critical patent/KR20090120717A/en
Application granted granted Critical
Publication of KR100991807B1 publication Critical patent/KR100991807B1/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/562Static detection
    • G06F21/565Static detection by checking file integrity

Landscapes

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

Abstract

본 발명은 마이크로소프트 윈도우 운영체제를 사용하는 컴퓨터 시스템에서의 악성코드 탐지 및 처리 시스템 및 방법에 관한 것으로, 보다 상세하게는 악성코드들이 주로 호출하는 Win32 Subsystem API 분석 정보에 대한 데이터베이스를 구축한 후, 컴퓨터 시스템상에서 실행되는 실행파일 또는 파일 시스템에 저장된 파일이 사용하는 Win32 API를 추출하여 상기 추출한 Win32 API를 상기 데이터베이스에 저장된 정보와 비교함으로써, 해당 파일이 악성코드인지 여부를 탐지하여 이를 처리하는 시스템 및 방법에 관한 것이다. 본 발명에 의하면, 이미 발견된 악성코드뿐만 아니라 아직까지 발견되지 않은 악성코드나 기 발견된 악성코드가 변형된 코드도 탐지할 수 있게 되어, 악의적 행위의 가능성이 있는 알려지지 않은 악성코드에도 효과적으로 대응할 수 있다.The present invention relates to a system and method for detecting and processing malware in a computer system using a Microsoft Windows operating system. More specifically, after a database for Win32 Subsystem API analysis information called by malicious codes is established, A system and method for detecting and processing whether a file is malicious by extracting a Win32 API used by an executable file executed on a system or a file stored in a file system and comparing the extracted Win32 API with information stored in the database. It is about. According to the present invention, it is possible to detect not only malicious code that has already been found, but also malware that has not yet been found or modified code that has already been found, and can effectively cope with unknown malware that may have malicious behavior. have.

악성코드, 치트코드, 보안, 해킹, 온라인게임, Win32 Subsystem API Malware, Cheat code, Security, Hacking, Online Game, Win32 Subsystem API

Description

마이크로소프트 윈도우 운영체제를 사용하는 컴퓨터 시스템에서의 악성코드 탐지 및 처리 시스템 및 방법 {SYSTEM AND METHOD FOR DETECTING AND MANAGING MALICIOUS CODE IN COMPUTER SYSTEMS USING MICROSOFT WINDOWS OPERATING SYSTEMS}System and method for detecting and processing malware on computer systems using Microsoft Windows operating system {SYSTEM AND METHOD FOR DETECTING AND MANAGING MALICIOUS CODE IN COMPUTER SYSTEMS USING MICROSOFT WINDOWS OPERATING SYSTEMS}

본 발명은 마이크로소프트 윈도우 운영체제를 사용하는 컴퓨터 시스템에서의 악성코드 탐지 및 처리 시스템 및 방법에 관한 것으로, 보다 상세하게는 악성코드들이 주로 호출하는 Win32 Subsystem API (이하, "Win32 API"라 함) 분석 정보에 대한 데이터베이스를 구축한 후, 컴퓨터 시스템상에서 실행되는 실행파일 또는 파일 시스템에 저장된 파일이 사용하는 Win32 API 추출하여 상기 추출한 Win32 API를 상기 데이터베이스에 저장된 정보와 비교함으로써, 해당 파일이 악성코드인지 여부를 탐지하여 이를 처리하는 시스템 및 방법에 관한 것이다. The present invention relates to a system and method for detecting and processing malware in a computer system using a Microsoft Windows operating system. More particularly, the present invention analyzes a Win32 Subsystem API (hereinafter, referred to as a "Win32 API") mainly called by malicious codes. After establishing a database of information, extracting the Win32 API used by an executable file executed on a computer system or a file stored in the file system and comparing the extracted Win32 API with the information stored in the database, whether the file is malicious code The present invention relates to a system and method for detecting and processing the same.

최근 인터넷 서비스가 다양화됨에 따라 인터넷 사용률이 증가하고 있으며, 이에 따라 컴퓨터 바이러스나 인터넷 웜 등과 같은 악성코드들이 인터넷을 통해 널리 확산되어 사용자들에게 많은 피해를 야기시키고 있다. 특히, 온라인 게임의 경 우, 온라인 게임의 공정성을 방해하는 치트코드(cheat code)들이 인터넷을 통해 유통되어 많은 선의의 온라인 게임 사용자들에게 피해를 야기시키고 있다. 따라서, 마이크로소프트 윈도우 운영체제를 사용하는 컴퓨터로의 악성코드 유입을 방지하기 위한 몇몇 보안 솔루션들이 개발되어 판매되고 있다.Recently, as internet service is diversified, the internet usage rate is increasing. As a result, malicious codes such as computer viruses and internet worms are widely spread through the internet, causing a lot of damage to users. In particular, in the case of online games, cheat codes that interfere with the fairness of online games are distributed through the Internet, causing damage to many well-intentioned online game users. Therefore, several security solutions have been developed and sold to prevent the introduction of malware into computers using the Microsoft Windows operating system.

도 1은 종래의 악성코드 탐지 및 처리 시스템의 구성도로서, 종래의 악성코드 탐지 및 처리 시스템(100)은, 악성코드 검사가 필요한 프로세스 또는 파일(10, 20) 내의 특정 바이너리 패턴을 기 구축된 악성코드의 바이너리 패턴 데이터베이스(140)와 비교하는 바이너리 패턴 비교부(110), 바이너리 패턴 비교 결과에 따라 해당 프로세스나 프로그램 파일, 드라이버의 악성코드 해당 여부를 판단하는 악성코드 판단부(120), 및 악성코드에 해당한다고 판단된 프로세스를 정지시키고 파일을 삭제하는 악성코드 처리부(130)로 구성된다. 1 is a block diagram of a conventional malware detection and processing system, the conventional malware detection and processing system 100 is a pre-built specific binary pattern in the process or file (10, 20) that requires malware inspection The binary pattern comparison unit 110 to compare the binary pattern database 140 of the malicious code, the malicious code determination unit 120 to determine whether the malicious code of the process or program file, the driver according to the binary pattern comparison result, and It consists of a malicious code processing unit 130 for stopping the process determined to correspond to the malicious code and delete the file.

이처럼, 종래의 악성코드 탐지 및 처리 시스템(100)은 악성코드 해당 여부에 대한 판단을 바이너리 패턴 비교에 의존하므로, 이미 알려져서 악성코드의 바이너리 패턴 데이터베이스에 등록되어 있는 악성코드에 대해서는 확실한 진단율을 기대할 수 있지만, 아직 알려지지 않은 악성코드에 대해서는 진단 자체가 불가능하다는 단점이 있다. 또한, 보안 솔루션 업체에서는 끊임없이 새로운 악성코드의 샘플을 수집하고 분석하여 자사의 악성코드 바이너리 패턴 데이터베이스에 반영하여야 하고, 인터넷 사용자는 새로운 악성코드의 바이너리 패턴이 반영된 최신의 악성코드 바이너리 패턴 데이터베이스로 업데이트하여야 하는 불편함이 있다. As such, the conventional malware detection and processing system 100 relies on binary pattern comparison to determine whether the malicious code is appropriate, and thus, a certain diagnosis rate can be expected for the malicious code already known and registered in the binary pattern database of the malicious code. However, there is a disadvantage that the diagnosis itself is impossible for the unknown malware. In addition, security solution companies must constantly collect and analyze samples of new malware and reflect them in their malware binary pattern database. Internet users should update to the latest malware binary pattern database that reflects the binary pattern of new malware. There is discomfort.

한편, 악성코드의 탐지 및 처리를 위해 특정 Win32 API를 후킹 (hooking)하 여 악성코드의 동작을 차단하는 방법도 사용되고 있다. 그러나 이 방법은 특정 Win32 API만을 대상으로 하여 사용 여부를 후킹함으로써 악성코드 해당 여부를 판단하는 것이므로, 악성코드의 탐지 효과가 떨어지고, 커널 계층에서 후킹을 이용할 경우 시스템 오동작에 따른 심각한 장애를 유발할 수도 있다.Meanwhile, a method of blocking the operation of malicious code by hooking a specific Win32 API to detect and process malicious code is also used. However, this method is to determine whether malicious code is applicable by hooking specific Win32 API only. Therefore, detection effect of malicious code is inferior, and if hooking is used in kernel layer, it may cause serious failure due to system malfunction. .

따라서 본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위한 것으로, 악성코드들이 주로 호출하는 Win32 API 분석 정보에 대한 데이터베이스를 구축한 후, 컴퓨터 시스템상에서 실행되는 실행파일 또는 파일 시스템에 저장된 파일이 사용하는 Win32 API를 추출하여 상기 추출한 Win32 API를 상기 데이터베이스에 저장된 정보와 비교함으로써, 해당 파일이 악성코드인지 여부를 탐지하여 이를 처리하는 시스템 및 방법을 제공하는 것을 목적으로 한다. Therefore, the present invention is to solve the above problems of the prior art, and after building a database for Win32 API analysis information that is mainly called by malicious codes, an executable file or a file stored in a file system used on a computer system is used. It is an object of the present invention to provide a system and method for detecting whether a file is malicious code by processing the extracted Win32 API and comparing the extracted Win32 API with information stored in the database.

상기한 목적을 달성하기 위한 본 발명의 일 측면에 의한 마이크로소프트 윈도우 운영체제를 사용하는 컴퓨터 시스템에서의 악성코드 탐지 및 처리 시스템은, 악성코드 검사 대상인 프로세스 또는 파일이 사용하는 Win32 API를 추출하는 Win32 API 추출부; 상기 Win32 API 추출부에 의해 추출된 Win32 API를 분석하여 Win32 API 분석 정보를 추출하는 Win32 API 분석부; 상기 Win32 API 분석부에 의해 추출된 Win32 API 분석 정보를 기반으로 상기 검사 대상 프로세스 또는 파일의 악성코드 해당 여부를 판단하는 악성코드 판단부; 및 상기 악성코드 판단부에 의해 악성코드로 판단된 검사 대상 프로세스 또는 파일을 처리하는 악성코드 처리부를 포함한다. Malware detection and processing system in a computer system using the Microsoft Windows operating system according to an aspect of the present invention for achieving the above object, Win32 API for extracting the Win32 API used by the process or file that is the target of malware inspection Extraction unit; A Win32 API analyzer for extracting Win32 API analysis information by analyzing the Win32 API extracted by the Win32 API extractor; A malicious code determination unit determining whether a malicious code of the process or file to be inspected is based on the Win32 API analysis information extracted by the Win32 API analysis unit; And a malicious code processor configured to process a test target process or file determined as malicious code by the malicious code determiner.

바람직하게는, 상기 시스템은, 기 알려진 악성코드들이 호출하는 Win32 API 정보를 수집 및 분석하여 구축한 Win32 API 데이터베이스를 더 포함하며, 상기 악성코드 판단부는 상기 Win32 API 분석부에 의해 추출된 Win32 API 분석 정보를 상기 Win32 API 데이터베이스에 저장된 정보와 비교하여 상기 검사 대상 프로세스 또는 파일의 악성코드 해당 여부를 판단한다.Preferably, the system further includes a Win32 API database that is built by collecting and analyzing Win32 API information called by known malicious codes, wherein the malicious code determination unit analyzes the Win32 API extracted by the Win32 API analysis unit. The information is compared with the information stored in the Win32 API database to determine whether the inspection target process or file is malicious code.

구체적으로, 상기 악성코드 판단부는 상기 Win32 API 분석 정보를 상기 Win32 API 데이터베이스에 저장된 정보와 비교한 유사도가 미리 정해진 임계치를 초과하는 경우, 상기 검사 대상 프로세스 또는 파일을 악성코드로 판단한다.Specifically, when the similarity degree comparing the Win32 API analysis information with the information stored in the Win32 API database exceeds a predetermined threshold, the malicious code determination unit determines the inspection process or file as malicious code.

한편, 상기 Win32 API 분석부에 의해 추출되는 Win32 API 분석 정보는, 호출된 Win32 API의 종류, Win32 API 호출 순서, Win32 API 호출 방식 및 Win32 API 호출 인자 중 하나 이상으로 이루어진다. 또한, 상기 악성코드 처리부는, 악성코드 검사 대상이 실행 중인 프로세스인 경우 해당 프로세스를 중지시키고, 악성코드 검사 대상이 파일 시스템에 저장된 파일인 경우 해당 파일을 삭제한다.Meanwhile, the Win32 API analysis information extracted by the Win32 API analyzer comprises one or more of the type of the called Win32 API, the Win32 API call sequence, the Win32 API call method, and the Win32 API call argument. In addition, the malicious code processing unit stops the process when the malicious code scan target is a running process, and deletes the file when the malicious code scan target is a file stored in the file system.

또한, 본 발명의 다른 측면에 의한 마이크로소프트 윈도우 운영체제를 사용하는 컴퓨터 시스템에서의 악성코드 탐지 및 처리 방법은, 악성코드 검사 대상인 프로세스 또는 파일이 사용하는 Win32 API를 추출하는 단계 (a); 상기 추출된 Win32 API를 분석하는 단계 (b); 상기 단계 (b)에 의한 Win32 API 분석 정보를 기반으로 상기 검사 대상 프로세스 또는 파일의 악성코드 해당 여부를 판단하는 단계 (c); 및 상기 단계 (c)에 의해 악성코드로 판단된 검사 대상 프로세스 또는 파일을 처리하는 단계 (d)를 포함한다.In addition, the method for detecting and processing malware in a computer system using the Microsoft Windows operating system according to another aspect of the present invention includes the steps of: (a) extracting a Win32 API used by a process or file that is a target of malware inspection; Analyzing (b) the extracted Win32 API; (C) determining whether the inspection target process or file is malicious code based on the Win32 API analysis information of step (b); And (d) processing the inspection target process or file determined as malicious code by step (c).

바람직하게는, 상기 단계 (c)는, 상기 Win32 API 분석 정보를, 기 알려진 악성코드들이 호출하는 Win32 API 정보를 수집 및 분석하여 구축한 Win32 API 데이터베이스에 저장된 정보와 비교함으로써 상기 검사 대상 프로세스 또는 파일의 악성코드 해당 여부를 판단하며, 구체적으로, 상기 Win32 API 분석 정보를 상기 Win32 API 데이터베이스에 저장된 정보와 비교한 유사도가 미리 정해진 임계치를 초과하는 경우, 상기 검사 대상 프로세스 또는 파일을 악성코드로 판단한다.Preferably, the step (c) comprises comparing the Win32 API analysis information with information stored in a Win32 API database that is constructed by collecting and analyzing Win32 API information called by known malicious codes. If the similarity of comparing the Win32 API analysis information with the information stored in the Win32 API database exceeds a predetermined threshold, determine the process or file to be scanned as malicious code .

또한, 상기 단계 (b)는, 상기 추출된 Win32 API를 분석하여 호출된 Win32 API의 종류, Win32 API 호출 순서, Win32 API 호출 방식 및 Win32 API 호출 인자 정보를 추출하며, 상기 단계 (d)는, 악성코드 검사 대상이 실행 중인 프로세스인 경우 해당 프로세스를 중지시키고, 악성코드 검사 대상이 파일 시스템에 저장된 파일인 경우 해당 파일을 삭제한다.In addition, the step (b), by analyzing the extracted Win32 API, extracts the type of Win32 API, Win32 API call order, Win32 API call method and Win32 API call argument information, and the step (d), If the malicious code scan target is a running process, stop the process. If the malicious code scan target is a file stored in the file system, delete the file.

한편, 상기 단계 (a)는, 프로그램 실행 파일 내에서 정적으로 사용되는 함수들의 주소가 기록되어 있는 IAT(Import Address Table)를 분석하는 단계; 함수의 문자열을 검색하는 단계; 및 메모리에 로딩된 파일을 디스어셈블링하여 사용되는 함수를 확인하는 단계를 포함할 수 있다.On the other hand, step (a), the step of analyzing the import address table (IAT) in which the addresses of the functions used statically in the program executable file is recorded; Retrieving a string of functions; And disassembling the file loaded into the memory to identify a function to be used.

본 발명에 의한 악성코드 탐지 및 처리 시스템 및 방법을 이용하면, 이미 발견된 악성코드뿐만 아니라 아직까지 발견되지 않은 악성코드나 기 발견된 악성코드가 변형된 코드도 탐지할 수 있게 되어, 악의적 행위의 가능성이 있는 알려지지 않 은 악성코드에도 효과적으로 대응할 수 있다.By using the malicious code detection and processing system and method according to the present invention, it is possible to detect not only the malicious code that has already been found, but also the malicious code that has not yet been discovered or the modified code of the previously discovered malicious code. It can also respond effectively to potentially unknown malware.

이하, 본 발명의 바람직한 실시형태가 첨부된 도면들을 참조하여 본 발명을 보다 상세히 설명한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. Hereinafter, the present invention will be described in more detail with reference to the accompanying drawings. In the following description of the present invention, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.

API(Application Programming Interface)는, 응용 프로그램이 운영체제가 제공하는 기능을 사용할 수 있도록 하는 인터페이스로서, Win32 API는 응용 프로그램에서 마이크로소프트 윈도우 운영체제가 제공하는 수천개의 함수를 사용할 수 있도록 한다. 이러한 함수들을 용도 및 사용방법 등에 따라 분류하면, 악성코드에서 주로 사용되는 Win32 API는 몇몇 함수에 편향되며, 악성코드에서 사용되는 Win32 API의 실행순서도 소정 규칙을 갖는 것을 알 수 있다. 따라서, 본 발명에서는, 악성코드가 주로 사용하는 Win32 API의 종류, 호출 순서, 호출 방식 및 인자 등과 같은 악성코드들이 주로 호출하는 Win32 API 분석 정보를 기반으로 하여 악성코드를 탐지하고자 한다. The Application Programming Interface (API) is an interface that allows applications to use the functionality provided by the operating system. The Win32 API allows applications to use the thousands of functions provided by the Microsoft Windows operating system. If these functions are classified according to their use and usage method, it can be seen that the Win32 API mainly used in malicious code is biased to some functions, and the order of execution of the Win32 API used in malicious code also has a predetermined rule. Therefore, in the present invention, the malicious code to detect the malicious code based on the Win32 API analysis information mainly called by the malicious code, such as the type, call order, call method and arguments of the Win32 API mainly used.

도 2는 본 발명에 의한 악성코드 탐지 및 처리 시스템의 구성도이다.2 is a block diagram of a malicious code detection and processing system according to the present invention.

본 발명에 의한 악성코드 탐지 및 처리 시스템(200)은 Win32 API 추출 부(210), Win32 API 분석부(220), 악성코드 판단부(230), 악성코드 처리부(240) 및 기 구축된 악성코드의 Win32 API 데이터베이스(250)를 포함한다.The malicious code detection and processing system 200 according to the present invention includes a Win32 API extraction unit 210, a Win32 API analysis unit 220, a malicious code determination unit 230, a malicious code processing unit 240, and pre-built malicious code. The Win32 API database 250.

Win32 API 추출부(210)는 악성코드 검사의 대상이 되는 프로세스 또는 파일, 즉 정상 프로세스 또는 파일(10) 또는 악성코드(20)가 사용하는 Win32 API를 추출한다.The Win32 API extractor 210 extracts a Win32 API used by a process or file that is a target of malware inspection, that is, a normal process or file 10 or malicious code 20.

Win32 API 분석부(220)는 Win32 API 추출부(210)에 의해 추출된 Win32 API로부터 Win32 API 분석 정보를 추출한다. 구체적으로, Win32 API 분석부(220)는 Win32 API 추출부(210)로부터 수신한 Win32 API를 분석하여 Win32 API의 종류, 호출 순서, 호출 방식 및 인자 등의 정보를 추출하는데, 이는 추출된 Win32 API를 기 구축된 악성코드의 Win32 API 데이터베이스(250)에 저장된 정보와 비교하기 위한 것이다.The Win32 API analyzer 220 extracts Win32 API analysis information from the Win32 API extracted by the Win32 API extractor 210. In detail, the Win32 API analyzer 220 analyzes the Win32 API received from the Win32 API extractor 210 and extracts information such as the type, call order, calling method, and arguments of the Win32 API, which is extracted Win32 API. To compare with the information stored in the Win32 API database 250 of the pre-built malicious code.

악성코드 판단부(230)는 Win32 API 분석부(220)에 의해 추출된 Win32 API 분석 정보를 악성코드의 Win32 API 데이터베이스(250)에 저장된 정보와 비교하여 검사 대상 프로세스 또는 파일(10, 20)이 악성코드에 해당하는지 여부를 판단한다. 구체적으로, 악성코드 판단부(230)는 Win32 API 분석 정보를 악성코드의 Win32 API 데이터베이스(250)에 저장된 정보와 비교하여 그 유사도가 미리 정해진 임계치를 초과하는 경우, 검사 대상 프로세스 또는 파일(20)을 악성코드로 판단한다. The malicious code determiner 230 compares the Win32 API analysis information extracted by the Win32 API analyzer 220 with the information stored in the Win32 API database 250 of the malicious code to determine whether the process or file 10 or 20 to be scanned is determined. Determine whether it corresponds to malicious code. In detail, the malicious code determiner 230 compares the Win32 API analysis information with the information stored in the Win32 API database 250 of the malicious code, and when the similarity exceeds the predetermined threshold, the process or file 20 to be scanned. Is considered to be malicious code.

악성코드 처리부(240)는 악성코드 판단부(230)에 의해 악성코드로 판단된 검사 대상 프로세스 또는 파일(20)을 처리하는데, 구체적으로, 검사 대상이 실행 중인 프로세스인 경우 해당 프로세스를 중지시키고, 검사 대상이 파일 시스템에 저장 된 파일인 경우 해당 파일을 삭제한다. The malicious code processing unit 240 processes the scan target process or file 20 determined by the malicious code determination unit 230 to be malicious, specifically, when the scan target is a running process, the corresponding process is stopped. If the scan target is a file saved in the file system, delete the file.

악성코드의 Win32 API 데이터베이스(250)는 이미 알려진 악성코드들이 주로 호출하는 Win32 API 정보를 수집하고 이를 분석하여 구축한 데이터베이스로서, 검사 대상 프로세스 또는 파일이 악성코드에 해당하는지 여부를 판단하는 기준이 된다.Win32 API database 250 of malicious codes is a database that collects and analyzes Win32 API information mainly known by known malicious codes and builds them, and serves as a criterion for determining whether a process or file to be scanned corresponds to malicious code. .

현재까지 알려진 악성코드들이 주로 사용하는 Win32 API 함수 분류 및 이에 포함되는 함수로는 다음과 같은 것들이 있다. The Win32 API function classifications and functions included in the malware are known and used as follows.

프로세스 탐색 (Process navigation ( PSPS ClassClass ))

- 현재 수행 중인 프로세스를 구하기 위한 Toolhelp32 계열의 함수Toolhelp32 family of functions to get the currently running process

- 현재 수행 중인 프로세스와 해당 프로세스에 연결된 모듈을 구하기 위한 PSAPI(Process Status API) 계열의 함수PSAPI family of functions to get the currently running process and the modules associated with it

- 특정 윈도우나 해당 윈도우를 생성한 프로세스 ID를 찾아내기 위한 FindWindow 및 FindWindowEx 계열의 함수FindWindow and FindWindowEx family of functions to find a window or the process ID that created it

- 기타 윈도우 생성과 관련된 자세한 정보를 알기 위한 EnumWindow 및 GetWindow 함수EnumWindow and GetWindow functions for getting more information about creating other windows

프로세스 핸들 획득 (Process handle acquisition ( PAPA ClassClass ))

- 프로세스 ID(PID)로부터 프로세스 핸들을 구하기 위한 OpenProcess 및 NtOpenProcess 함수OpenProcess and NtOpenProcess functions to get the process handle from the process ID (PID)

메모리 위/변조 (Memory forgery / modulation ( MMMM ClassClass ))

- 자신이 아닌 프로세스의 메모리 영역에 데이터를 읽고 쓰는 기능을 하는 ReadProcessMemory 및 WriteProcessMemory 함수ReadProcessMemory and WriteProcessMemory functions for reading and writing data to memory areas of processes other than themselves

- 다른 프로세스에서 코드를 실행시키기 위한 CreateRemoteThread 함수CreateRemoteThread function to run code in another process

- 특정 쓰레드의 정보를 가져오거나 변경하기 위한 GetThreadContext 및 SetThreadContext 함수GetThreadContext and SetThreadContext functions to get or change information for a specific thread.

- 특정 쓰레드의 주소 공간을 자신과 연결하여 해당 메모리 공간을 자유롭게 읽고 쓰기 위한 KeStackAttachProcess 함수KeStackAttachProcess function to freely read and write the memory space by concatenating the address space of a specific thread with itself

특정 certain APIAPI 후킹Hooking ( ( HKHK ClassClass ))

- 다른 프로세스의 메시지를 가로채거나 해당 프로세스로 DLL을 인젝션하기 위한 SetWindowsHookEx 함수SetWindowsHookEx function to intercept a message from another process or inject a DLL into that process

- 커널 네이티브 함수를 후킹하기 위한 KeServiceDescriptorTable 함수KeServiceDescriptorTable function for hooking kernel native functions

키보드 및 마우스 임의 조작 (Keyboard and mouse random operation ( MCMC ClassClass ))

- 키보드 및 마우스 이벤트를 발생시키기 위한 Keybd_event, mouse_event 및 SendInput 함수Keybd_event, mouse_event, and SendInput functions to raise keyboard and mouse events

- 마우스의 이동 영역을 제한하거나 마우스 움직임을 가로채기 위한 ClipCursor 및 SetCapture 함수ClipCursor and SetCapture functions to limit mouse movement or to intercept mouse movement

- 현재 키보드 상태를 구하거나 설정하기 위한 GetKeyboardState 및 SetKeyboardState 함수GetKeyboardState and SetKeyboardState functions for getting or setting the current keyboard state.

화면탐지 (Screen Detection ( SCSC ClassClass ))

화면상 특정 위치의 색상을 읽어내기 위한 GetPixel 함수GetPixel function to read the color of a specific location on the screen

상술한 Win32 API 는 현재까지 알려진 악성코드들이 주로 사용하는 Win32 API 함수를 열거한 것으로서, 예시적인 것이며, Win32 API 데이터베이스(250)에 저장되는 Win32 API 정보가 이로 한정되는 것은 아니다.The above-mentioned Win32 API is an enumeration of Win32 API functions mainly used by malicious codes known to date, which are exemplary, and Win32 API information stored in the Win32 API database 250 is not limited thereto.

도 3은 본 발명에 의한 악성코드 검사 과정을 도시하는 순서도이다.3 is a flowchart illustrating a malicious code inspection process according to the present invention.

일단 본 발명에 의한 악성코드 탐지 및 처리 시스템을 시작하면, 악성코드 탐지 및 처리 시스템이 메모리에 로딩되어(S310) 악성코드 검사 대기 상태가 된다. 이 후, 악성코드 검사 명령을 수신하면(S320) 악성코드 검사를 실행하는데, 악성코드 검사 대상이 실행 중인 프로세스일 경우(S330), 실행 중인 프로세스를 가져와서(S340) 이를 대상으로 악성코드 탐지 및 처리(S370)를 수행한다. 반면, 악성코드 검사 대상이 파일 시스템에 저장된 파일일 경우(S350), 해당 파일을 가져와서(S360) 이를 대상으로 악성코드 탐지 및 처리를 수행한다(S370).Once the malicious code detection and processing system according to the present invention is started, the malicious code detection and processing system is loaded into the memory (S310) and becomes a waiting state for malicious code inspection. Thereafter, when receiving a malicious code scan command (S320), the malicious code scan is executed. If the malicious code scan target is a running process (S330), the running process is imported (S340), and the malware is detected and targeted. Processing (S370) is performed. On the other hand, if the malicious code scan target is a file stored in the file system (S350), the corresponding file is imported (S360) and the malicious code is detected and processed (S370).

도 4는 악성코드 탐지 및 처리의 상세 과정을 도시하는 순서도이다.4 is a flowchart illustrating a detailed process of malware detection and processing.

상술한 악성코드 검사 과정에서, 실행 중인 프로세스 또는 파일 시스템에 저장된 파일을 대상으로 하는 악성코드 탐지 및 처리 과정이 개시되면, 본 발명에 의한 악성코드 탐지 및 처리 시스템은 상기 프로세스 또는 파일이 사용하는 Win32 API를 추출하고(S410), 추출된 Win32 API를 분석하여(S420) 악성코드 해당 여부를 판단한다. 검사 대상 프로세스 또는 파일이 악성코드에 해당한다고 판단된 경우(S430), 검사 대상이 실행 중인 프로세스인지 아니면 파일 시스템에 저장된 파일인지 여부를 판단하여(S440), 검사 대상이 실행 중인 프로세스이면 해당 프로세스를 중지시키고(S450), 검사 대상이 파일 시스템에 저장된 파일이면 해당 파일을 삭제한다(S460).In the above-described malicious code inspection process, if a malicious code detection and processing process for a file stored in a running process or a file system is started, the malware detection and processing system according to the present invention is a Win32 used by the process or file. The API is extracted (S410) and the extracted Win32 API is analyzed (S420) to determine whether malicious code is applicable. If it is determined that the scan target process or file corresponds to the malicious code (S430), it is determined whether the scan target is a running process or a file stored in the file system (S440). In operation S450, if the inspection target is a file stored in the file system, the corresponding file is deleted in operation S460.

도 5는 프로그램에서 사용 중인 Win32 API 추출의 상세 과정을 도시하는 순서도이다.5 is a flowchart showing the detailed process of extracting Win32 API in use by the program.

프로그램에서 사용 중인 Win32 API를 추출하기 위해서, 우선, IAT(Import Address Table)를 분석한다(S510). 이 때, IAT는 프로그램 실행 파일 내에서 정적으로 사용되는 함수들의 주소가 기록되어 있는 테이블이다. In order to extract the Win32 API being used in the program, first, an IAT (Import Address Table) is analyzed (S510). At this time, IAT is a table that records the addresses of functions used statically in the program executable file.

IAT 분석을 통해 Win32 API 추출이 불가능한 경우, 함수의 문자열을 검색한다(S520). 이는, 프로그램 실행 파일이 GetProcAddress 등과 같은 함수를 사용하여 함수를 동적으로 호출하기 때문에 IAT 분석을 통해 추출이 불가능한 경우, 함수의 문자열로부터 직접 Win32 API를 추출하기 위한 것이다. If Win32 API extraction is not possible through IAT analysis, search for a string of the function (S520). This is to extract the Win32 API directly from the function's string if it is not possible to extract it through IAT analysis because the program executable dynamically calls the function using a function such as GetProcAddress.

함수의 문자열 검색을 통해서도 Win32 API 추출이 불가능한 경우, 디스어셈 블링을 수행한다(S530). 이는, 검사 대상이 실행 압축 등의 방법으로 보호된 프로그램 실행 파일인 경우, 메모리에 로딩된 파일을 직접 디스어셈블링하여 사용 함수를 확인하기 위한 것이다. If Win32 API extraction is not possible even through a function string search, disassembly is performed (S530). This is to check the use function by directly disassembling a file loaded in a memory when the test target is a program executable file protected by a method such as execution compression.

상기의 IAT 분석(S510), 함수의 문자열 검색(S520) 및 디스어셈블링(S530) 중 어느 하나의 방법에 의해 Win32 API 추출에 성공한 경우(S540) 또는 상기한 어느 방법에 의해서도 Win32 API를 추출하지 못한 경우, 그 결과를 각각 리턴한다.If Win32 API extraction is successful by any one of the above IAT analysis (S510), function string search (S520) and disassembly (S530), or the Win32 API is not extracted by any of the above methods. If not, return the result.

도 6은 본 발명에 의한 악성코드 검사 과정을 도시하는 개념도이다.6 is a conceptual diagram illustrating a malicious code inspection process according to the present invention.

악성코드 검사는 크게 두 영역에서 이루어진다. 첫 번째는 애플리케이션 계층의 검사이고 두 번째는 커널 계층의 검사로서, 애플리케이션 계층에서는 현재 실행 중인 일반 프로세스들(640, 650, 660)의 악성코드 해당 여부를 검사하며, 커널 계층에서는 현재 동작 중인 드라이버(680, 690)의 악성코드 해당 여부를 검사한다.Malware scanning is largely done in two areas. The first is a check of the application layer and the second is a check of the kernel layer. The application layer checks whether the general processes (640, 650, 660) currently running are malicious, and the kernel layer checks the currently running driver ( 680, 690) malware is checked.

구체적으로 설명하면, 통상 윈도우 환경에서 프로그램의 동작 환경은 크게 애플리케이션 계층과 커널 계층으로 구분된다. 애플리케이션 계층에는 동작 프로그램의 이미지인 하나 이상의 프로세스(640, 650, 660) 및 프로세스가 운영체제의 함수를 사용하기 위해 필요한 Win32 API(630)가 있고, 커널 계층에는 윈도우 커널(670) 및 하나 이상의 커널 드라이버(680, 690)가 있다. 일반적으로, Win32 API(630)과 윈도우 커널(670)이 안전하다고 전제하면, 악성코드 해당 여부를 검사해야 하는 대상은 프로세스와 드라이버이다. 따라서, 본 발명에 의한 악성코드 탐지 및 처리 시스템은 프로세스의 악성코드 해당 여부를 검사하기 위한 API 검사 모 듈(610)과 드라이버의 악성코드 해당 여부를 검사하기 위한 커널 검사 모듈(620)로 나누어 질 수 있으며, API 검사 모듈(610)은 커널 검사 모듈(620)의 도움을 받아 현재 실행 중인 프로세스와 드라이버에 대한 악성코드 검사를 수행한다.Specifically, the operating environment of a program in a general Windows environment is largely divided into an application layer and a kernel layer. The application layer contains one or more processes (640, 650, 660), which are images of the operating program, and the Win32 API (630), which are necessary for the process to use the functions of the operating system. The kernel layer contains the Windows kernel 670 and one or more kernel drivers. (680, 690). In general, assuming that the Win32 API 630 and the Windows kernel 670 are safe, the targets to be checked for malicious code are processes and drivers. Therefore, the malware detection and processing system according to the present invention may be divided into an API checking module 610 for checking whether a malicious code of a process is applicable and a kernel checking module 620 for checking whether a malicious code of a driver is applicable. The API inspection module 610 may perform malware inspection on a currently running process and a driver with the help of the kernel inspection module 620.

도 7은 실행 중인 악성코드 검사 과정을 도시하는 개념도이다.7 is a conceptual diagram showing a malicious code inspection process being executed.

일반적으로, 프로그램은 프로그램 자체 이미지(641)와 하나 이상의 동적 라이브러리(dynamic link library; DLL)(642, 643, 644)로 구성된다. 이 때, 동적 라이브러리(642, 643, 644)는 복수의 프로그램에 의해 공유될 수 있고, 프로그램(641)과 동적 라이브러리(642, 643, 644)는 Win32 API(630)를 통해 윈도우 커널이 제공하는 함수를 호출하여 사용한다. API 검사 모듈(610)은, 프로그램(640)과 동적 라이브러리(642, 643, 644)가 호출하는 Win32 API(630)의 호출 형태를 분석하여 상술한 과정에 따라 해당 프로그램(640)과 동적 라이브러리(642, 643, 644)의 악의적인 행위나 속임수 사용 가능성을 판단한다.Generally, a program consists of a program itself image 641 and one or more dynamic link libraries (DLLs) 642, 643, 644. In this case, the dynamic libraries 642, 643, and 644 may be shared by a plurality of programs, and the program 641 and the dynamic libraries 642, 643 and 644 may be provided by the Windows kernel through the Win32 API 630. Call and use a function. The API inspection module 610 analyzes a call type of the Win32 API 630 called by the program 640 and the dynamic libraries 642, 643, and 644, and according to the above-described process, the corresponding program 640 and the dynamic library ( 642, 643, 644) to determine the possibility of malicious conduct or deception.

도 8은 파일 시스템 내의 악성코드 검사 과정을 도시하는 개념도이다.8 is a conceptual diagram illustrating a malicious code inspection process in a file system.

일반적으로, 컴퓨터 하드디스크는 파일 시스템(800)이라 불리는 기반 구조에 의해 파일 및 폴더를 관리한다. 파일 시스템(800) 내에는 복수의 파일과 폴더가 존재하는데, 파일은 그 용도에 따라 실행 가능한 프로그램 파일(810, 820, 830), 장치 관리를 위한 드라이버 파일(840, 850, 860) 및 데이터 파일 등으로 구분된다. 이 때, Win32 API 호출 형태를 분석하여 악성코드 해당 여부를 판단할 수 있는 파 일은 프로그램 파일(810, 820, 830)과 드라이버 파일(840, 850, 860)이다. API 검사 모듈(610)은 프로그램 파일(810, 820, 830)과 드라이버 파일(840, 850, 860)이 사용하는 Win32 API 호출 형태를 분석하여 해당 프로그램 파일과 드라이버 파일의 악의적인 행위나 속임수 사용 가능성을 판단한다.Generally, computer hard disks manage files and folders by an infrastructure called file system 800. There are a plurality of files and folders in the file system 800. The files are executable program files 810, 820, and 830 according to their purpose, driver files 840, 850, and 860 for device management, and data files. And the like. At this time, the files that can determine the malicious code by analyzing the Win32 API call forms are the program files (810, 820, 830) and the driver files (840, 850, 860). The API inspection module 610 analyzes the Win32 API call types used by the program files 810, 820, and 830 and the driver files 840, 850, and 860 to enable malicious behavior or deception of the program and driver files. Judge.

상술한 바에 따라 Win32 API 사용 형태를 기반으로 하여 이미 알려진 악성코드 및 정상코드의 악성코드 해당 여부를 분석하면 다음의 표와 같은 결과를 얻을 수 있다. (A: 80% 이상 빈도, B: 60% ~ 80% 빈도, C: 40% ~ 60% 빈도, a: 0.1% 이하 빈도, b: 1.0% ~ 0.1% 빈도, c: 2.0% ~ 1.0% 빈도)As described above, based on the Win32 API usage form, analyzing the known malicious code and normal code malicious code can obtain the results as shown in the following table. (A: frequency above 80%, B: 60% to 80% frequency, C: 40% to 60% frequency, a: frequency below 0.1%, b: 1.0% to 0.1% frequency, c: 2.0% to 1.0% frequency )

PSPS PAPA MMMM HKHK MCMC SCSC 악성코드Malware 정상코드Normal code CC aa -- -- -- BB bb -- -- -- -- BB cc -- -- -- -- CC cc -- -- -- BB bb -- -- -- -- AA bb TotalTotal AA cc

상기 표에서 나타난 바와 같이, PA 클래스와 HK 클래스만으로도 80% 이상의 악성코드 탐지율을 얻을 수 있으며, 이 때 오진율은 0.83%로 매우 낮다. 상기 분석 결과는 제한된 샘플로부터 얻어진 본 발명의 한 적용 예이다. 따라서, 각각의 클래스를 다양한 방법으로 조합하여 사용함으로써, 보다 높은 진단율과 보다 낮은 오진율을 얻을 수 있다. As shown in the above table, the PA class and the HK class alone can obtain a malicious code detection rate of 80% or more, and the false positive rate is 0.83%, which is very low. The analytical results are one application of the invention obtained from a limited sample. Therefore, by using each class in various ways, a higher diagnosis rate and a lower error rate can be obtained.

이상에서 설명한 상세한 설명 및 도면의 내용은, 본 발명의 바람직한 실시예 에 한정하여 설명한 것이며, 본 발명이 이에 한정되는 것은 아니다. 본 발명의 기술적 사상 범위 내에서 본 발명에 따른 구성요소를 치환, 변경 또는 삭제가 가능할 것이다. The details of the detailed description and the drawings described above are only limited to the preferred embodiments of the present invention, but the present invention is not limited thereto. It will be possible to substitute, change or delete the components according to the present invention within the technical scope of the present invention.

따라서 본 발명의 권리범위는 상기한 설명 및 도면에 의해 결정되는 것이 아니라 첨부된 특허청구범위에 의해 결정되어져야 한다.Therefore, the scope of the present invention should be determined by the appended claims rather than by the foregoing description and drawings.

도 1은 종래의 악성코드 탐지 및 처리 시스템의 구성도,1 is a block diagram of a conventional malware detection and processing system,

도 2는 본 발명에 의한 악성코드 탐지 및 처리 시스템의 구성도,2 is a block diagram of a system for detecting and processing malware according to the present invention;

도 3은 본 발명에 의한 악성코드 검사 과정을 도시하는 순서도,3 is a flowchart illustrating a malicious code inspection process according to the present invention;

도 4는 악성코드 탐지 및 처리의 상세 과정을 도시하는 순서도,4 is a flowchart showing a detailed process of malware detection and processing;

도 5는 프로그램에서 사용 중인 Win32 API 추출의 상세 과정을 도시하는 순서도, 5 is a flowchart showing the detailed procedure of the Win32 API extraction being used in the program;

도 6은 본 발명에 의한 악성코드 검사 과정을 도시하는 개념도,6 is a conceptual diagram showing a malware inspection process according to the present invention;

도 7은 실행 중인 악성코드 검사 과정을 도시하는 개념도, 그리고7 is a conceptual diagram showing a malware inspection process being executed; and

도 8은 파일 시스템 내의 악성코드 검사 과정을 도시하는 개념도이다.8 is a conceptual diagram illustrating a malicious code inspection process in a file system.

Claims (11)

악성코드 검사 대상인 프로세스 또는 파일이 사용하는 Win32 API를 추출하는 Win32 API 추출부;A Win32 API extracting unit which extracts a Win32 API used by a process or a file to be scanned for malware; 상기 Win32 API 추출부에 의해 추출된 Win32 API를 분석하여, 호출된 Win32 API의 종류, Win32 API 호출 순서, Win32 API 호출 방식 및 Win32 API 호출 인자로 이루어진 그룹으로부터 선택되는 하나 이상을 포함하는 Win32 API 분석 정보를 추출하는 Win32 API 분석부;Analyze the Win32 API extracted by the Win32 API extraction unit, Win32 API analysis including one or more selected from the group consisting of the type of Win32 API, Win32 API call order, Win32 API call method and Win32 API call argument Win32 API analysis unit for extracting information; 상기 Win32 API 분석부에 의해 추출된 Win32 API 분석 정보를 기반으로 상기 검사 대상 프로세스 또는 파일의 악성코드 해당 여부를 판단하는 악성코드 판단부; 및A malicious code determination unit determining whether a malicious code of the process or file to be inspected is based on the Win32 API analysis information extracted by the Win32 API analysis unit; And 상기 악성코드 판단부에 의해 악성코드로 판단된 검사 대상 프로세스 또는 파일을 처리하는 악성코드 처리부를 포함하는 것을 특징으로 하는 악성코드 탐지 및 처리 시스템.Malicious code detection and processing system comprising a malicious code processing unit for processing the inspection target process or file determined as malicious code by the malicious code determination unit. 제 1 항에 있어서,The method of claim 1, 기 알려진 악성코드들이 호출하는 Win32 API 정보를 수집 및 분석하여 구축한 Win32 API 데이터베이스를 더 포함하며, It further includes a Win32 API database built by collecting and analyzing Win32 API information called by known malware. 상기 악성코드 판단부는 상기 Win32 API 분석부에 의해 추출된 Win32 API 분석 정보를 상기 Win32 API 데이터베이스에 저장된 정보와 비교하여 상기 검사 대상 프로세스 또는 파일의 악성코드 해당 여부를 판단하는 것을 특징으로 하는 악성코 드 탐지 및 처리 시스템.The malicious code determination unit compares the Win32 API analysis information extracted by the Win32 API analysis unit with the information stored in the Win32 API database to determine whether the malicious code corresponding to the process or file to be scanned is determined. Detection and processing system. 제 2 항에 있어서,The method of claim 2, 상기 악성코드 판단부는 상기 Win32 API 분석 정보를 상기 Win32 API 데이터베이스에 저장된 정보와 비교한 유사도가 미리 정해진 임계치를 초과하는 경우, 상기 검사 대상 프로세스 또는 파일을 악성코드로 판단하는 것을 특징으로 하는 악성코드 탐지 및 처리 시스템.The malware detection unit detects the malicious code, characterized in that if the similarity comparing the Win32 API analysis information with the information stored in the Win32 API database exceeds a predetermined threshold, the process or file to be inspected as a malicious code And processing system. 삭제delete 제 1 항에 있어서,The method of claim 1, 상기 악성코드 처리부는, 악성코드 검사 대상이 실행 중인 프로세스인 경우 해당 프로세스를 중지시키고, 악성코드 검사 대상이 파일 시스템에 저장된 파일인 경우 해당 파일을 삭제하는 것을 특징으로 하는 악성코드 탐지 및 처리 시스템.The malicious code processing unit stops the process when the malicious code scanning target is a running process, and deletes the corresponding file when the malicious code scanning target is a file stored in the file system. 악성코드 검사 대상인 프로세스 또는 파일이 사용하는 Win32 API를 추출하는 단계 (a);(A) extracting a Win32 API used by a process or file that is the target of malware inspection; 상기 추출된 Win32 API를 분석하여, 호출된 Win32 API의 종류, Win32 API 호출 순서, Win32 API 호출 방식 및 Win32 API 호출 인자로 이루어진 그룹으로부터 선택되는 하나 이상을 포함하는 Win32 API 분석 정보를 추출하는 단계 (b);Analyzing the extracted Win32 API, extracting Win32 API analysis information including one or more selected from the group consisting of called Win32 API types, Win32 API call order, Win32 API call method, and Win32 API call argument; b); 상기 단계 (b)에 의해 추출된 상기 Win32 API 분석 정보를 기반으로 상기 검사 대상 프로세스 또는 파일의 악성코드 해당 여부를 판단하는 단계 (c); 및(C) determining whether the inspection target process or file is a malicious code based on the Win32 API analysis information extracted by step (b); And 상기 단계 (c)에 의해 악성코드로 판단된 검사 대상 프로세스 또는 파일을 처리하는 단계 (d)를 포함하는 것을 특징으로 하는 악성코드 탐지 및 처리 방법.And (d) processing the inspection target process or file determined as malicious code by step (c). 제 6 항에 있어서,The method of claim 6, 상기 단계 (c)는, 상기 Win32 API 분석 정보를, 기 알려진 악성코드들이 호출하는 Win32 API 정보를 수집 및 분석하여 구축한 Win32 API 데이터베이스에 저장된 정보와 비교함으로써 상기 검사 대상 프로세스 또는 파일의 악성코드 해당 여부를 판단하는 것을 특징으로 하는 악성코드 탐지 및 처리 방법.In the step (c), the Win32 API analysis information is compared with information stored in a Win32 API database that collects and analyzes Win32 API information called by known malicious codes and establishes the malware corresponding to the process or file to be scanned. Malware detection and processing method characterized in that it determines whether or not. 제 7 항에 있어서,The method of claim 7, wherein 상기 단계 (c)는, 상기 Win32 API 분석 정보를 상기 Win32 API 데이터베이스에 저장된 정보와 비교한 유사도가 미리 정해진 임계치를 초과하는 경우, 상기 검사 대상 프로세스 또는 파일을 악성코드로 판단하는 것을 특징으로 하는 악성코드 탐지 및 처리 방법.In the step (c), when the similarity of comparing the Win32 API analysis information with the information stored in the Win32 API database exceeds a predetermined threshold, the malicious process may be determined to determine the process or file to be scanned as malicious code. How to detect and handle code. 삭제delete 제 6 항에 있어서,The method of claim 6, 상기 단계 (d)는, 악성코드 검사 대상이 실행 중인 프로세스인 경우 해당 프로세스를 중지시키고, 악성코드 검사 대상이 파일 시스템에 저장된 파일인 경우 해당 파일을 삭제하는 것을 특징으로 하는 악성코드 탐지 및 처리 방법.In the step (d), if the malicious code scan target is a running process, the process is stopped, and if the malicious code scan target is a file stored in the file system, the malware is detected and processed. . 제 6 항에 있어서,The method of claim 6, 상기 단계 (a)는, Step (a) is, 프로그램 실행 파일 내에서 정적으로 사용되는 함수들의 주소가 기록되어 있는 IAT(Import Address Table)를 분석하는 단계;Analyzing an import address table (IAT) in which addresses of functions that are statically used in a program executable file are recorded; 함수의 문자열을 검색하는 단계; 및Retrieving a string of functions; And 메모리에 로딩된 파일을 디스어셈블링하여 사용되는 함수를 확인하는 단계를 포함하는 것을 특징으로 하는 악성코드 탐지 및 처리 방법.And disassembling the file loaded in the memory to identify a function to be used.
KR1020080046659A 2008-05-20 2008-05-20 System and method for detecting and managing malicious code in computer systems using microsoft windows operating systems KR100991807B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080046659A KR100991807B1 (en) 2008-05-20 2008-05-20 System and method for detecting and managing malicious code in computer systems using microsoft windows operating systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080046659A KR100991807B1 (en) 2008-05-20 2008-05-20 System and method for detecting and managing malicious code in computer systems using microsoft windows operating systems

Publications (2)

Publication Number Publication Date
KR20090120717A KR20090120717A (en) 2009-11-25
KR100991807B1 true KR100991807B1 (en) 2010-11-04

Family

ID=41603918

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080046659A KR100991807B1 (en) 2008-05-20 2008-05-20 System and method for detecting and managing malicious code in computer systems using microsoft windows operating systems

Country Status (1)

Country Link
KR (1) KR100991807B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101143999B1 (en) 2011-11-22 2012-05-09 주식회사 안철수연구소 Apparatus and method for analyzing application based on application programming interface
KR101212553B1 (en) 2012-05-11 2012-12-14 주식회사 안랩 Apparatus and method for detecting malicious files
JP5326063B1 (en) * 2012-09-11 2013-10-30 アンラブ,インコーポレイテッド Malicious shellcode detection apparatus and method using debug events

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101324691B1 (en) * 2011-12-08 2013-11-04 한국인터넷진흥원 System and method for detecting malicious mobile applications
KR101341328B1 (en) * 2012-12-18 2013-12-13 주식회사 잉카인터넷 User definition api function creation
KR101421631B1 (en) * 2013-03-19 2014-07-22 주식회사 잉카인터넷 Malware Treatment Script Generator
KR101589652B1 (en) * 2015-01-19 2016-01-28 한국인터넷진흥원 System and method for detecting and inquiring metamorphic malignant code based on action
CN114428957A (en) * 2021-12-21 2022-05-03 哈尔滨理工大学 High-accuracy Linux shared memory malicious code detection method
EP4246351A1 (en) * 2022-03-17 2023-09-20 AO Kaspersky Lab Detecting a harmful file using a database of vulnerable drivers

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
강태우, 조재익, 정만현, 문종섭, "API call의 단계별 복합분석을 통한 악성코드 탐지,"정보보호학회논문집 제17권 제6호 pp. 89-98 (2007.12)*

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101143999B1 (en) 2011-11-22 2012-05-09 주식회사 안철수연구소 Apparatus and method for analyzing application based on application programming interface
WO2013077538A1 (en) * 2011-11-22 2013-05-30 주식회사 안랩 Device and method for analyzing api-based application
KR101212553B1 (en) 2012-05-11 2012-12-14 주식회사 안랩 Apparatus and method for detecting malicious files
JP5326063B1 (en) * 2012-09-11 2013-10-30 アンラブ,インコーポレイテッド Malicious shellcode detection apparatus and method using debug events

Also Published As

Publication number Publication date
KR20090120717A (en) 2009-11-25

Similar Documents

Publication Publication Date Title
KR100991807B1 (en) System and method for detecting and managing malicious code in computer systems using microsoft windows operating systems
KR101122650B1 (en) Apparatus, system and method for detecting malicious code injected with fraud into normal process
US8434151B1 (en) Detecting malicious software
EP2893447B1 (en) Systems and methods for automated memory and thread execution anomaly detection in a computer network
US8627478B2 (en) Method and apparatus for inspecting non-portable executable files
US20090313699A1 (en) Apparatus and method for preventing anomaly of application program
US8381296B2 (en) Method and system for detecting and removing hidden pestware files
JP5265061B1 (en) Malicious file inspection apparatus and method
CN109586282B (en) Power grid unknown threat detection system and method
US20100169973A1 (en) System and Method For Detecting Unknown Malicious Code By Analyzing Kernel Based System Actions
CN107004088B (en) Determining device, determining method and recording medium
Pagani et al. Introducing the temporal dimension to memory forensics
KR101132197B1 (en) Apparatus and Method for Automatically Discriminating Malicious Code
JP2009129451A (en) Apparatus and method for detecting dynamic link library inserted by malicious code
US7565695B2 (en) System and method for directly accessing data from a data storage medium
US10262139B2 (en) System and method for detection and prevention of data breach and ransomware attacks
CN103428212A (en) Malicious code detection and defense method
JP2006330864A (en) Control method for server computer system
US8646076B1 (en) Method and apparatus for detecting malicious shell codes using debugging events
JP2010134536A (en) Pattern file update system, pattern file update method, and pattern file update program
US20230315855A1 (en) Exact restoration of a computing system to the state prior to infection
US11574049B2 (en) Security system and method for software to be input to a closed internal network
KR102201268B1 (en) System and method for detecting metamorphic malignant code based on log
US20070124267A1 (en) System and method for managing access to storage media
CN110610086B (en) Illegal code identification method, system, device and storage medium

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

Payment date: 20131017

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141028

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151016

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160926

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170926

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180814

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20191014

Year of fee payment: 10