KR101625643B1 - Apparatus and method for detecting malicious code based on volatile virtual file - Google Patents
Apparatus and method for detecting malicious code based on volatile virtual file Download PDFInfo
- Publication number
- KR101625643B1 KR101625643B1 KR1020160050792A KR20160050792A KR101625643B1 KR 101625643 B1 KR101625643 B1 KR 101625643B1 KR 1020160050792 A KR1020160050792 A KR 1020160050792A KR 20160050792 A KR20160050792 A KR 20160050792A KR 101625643 B1 KR101625643 B1 KR 101625643B1
- Authority
- KR
- South Korea
- Prior art keywords
- file
- virtual
- storage medium
- callback event
- detection agent
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
-
- G06F17/30218—
-
- G06F17/30233—
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
Description
본 발명은 컴퓨팅 시스템에서의 악성 코드 탐지 기술에 관한 것으로, 보다 구체적으로 휘발성 가상 파일 기반의 악성 코드 탐지 장치 및 방법에 관한 것이다.The present invention relates to a malicious code detection technique in a computing system, and more particularly, to a malicious code detection apparatus and method based on a volatile virtual file.
악성 코드의 수가 기하급수적으로 늘어남에 따라 악성 코드를 탐지하고 차단하는 다양한 기술들이 개발되고 있다. 종래의 악성 코드 탐지 기술은, 기존에 발생한 악성 코드의 샘플을 수집하여 악성 코드의 특징이 되는 일정한 문자열을 추출하고, 문자열이 특정 컴퓨터의 파일 등에 존재하는지 여부를 이용하여 악성 코드에 감염되었는지 여부를 판단한다.As the number of malicious codes increases exponentially, various technologies are being developed to detect and block malicious codes. The conventional malicious code detection technology collects a sample of malicious codes generated in the past, extracts a certain string that is a characteristic of the malicious code, and determines whether or not the malicious code is infected .
이러한 악성 코드 탐지 기술에서는 새로운 악성 코드와 관련된 정보가 악성 코드 탐지 프로그램에 추가되기 전에는 새로운 악성 코드에 대한 대비가 불가능하여 새로운 악성 코드에 대한 피해를 막을 수 없는 문제점이 있다. 또한, 악성 코드의 종류가 증가함에 따라서 악성 코드의 특징이 되는 문자열의 종류도 비례하여 증가하고, 많은 수의 악성 코드를 검사하기 위해서는 각각의 문자열을 구비해야 하는 단점이 있었다.Such malicious code detection technology has a problem that it can not prevent new malicious codes from being damaged before new malicious code related information is added to the malicious code detection program. In addition, as the type of malicious code increases, the type of the character string that characterizes the malicious code also increases proportionally, and in order to inspect a large number of malicious codes, each character string must be provided.
이러한 점을 개선하기 위해 국내등록특허 제10-0945247호와 국내등록특허 제10-1327740호가 제안되고 있다.To improve this point, Korean Patent No. 10-0945247 and Korean Patent No. 10-1327740 have been proposed.
국내등록특허 제10-0945247호는 가상 환경을 이용한 비실행 파일 내의 악성 코드 분석 방법 및 장치를 제안하고 있다. 이러한 국내등록특허 제10-0945247호는 가상 환경에서 악성 코드를 분석해야 하기 때문에 가상 환경을 동작시켜야 하는 번거로움이 있어 악성 코드 탐지에 많은 시간이 소요될 수 있고 프로세서에 과도한 로드를 줄 수 있다. Korean Patent No. 10-0945247 proposes a malicious code analysis method and apparatus in a non-executable file using a virtual environment. Such a domestic registered patent No. 10-0945247 requires malicious code to be analyzed in a virtual environment, so that it is troublesome to operate a virtual environment, so it may take a lot of time to detect malicious codes and excessively load the processor.
국내등록특허 제10-1327740호는 악성 코드의 행동 패턴 수집 장치 및 방법에 관한 것으로, 악성 코드로부터 보호 대상 폴더 또는 보호 대상 파일에 대한 접근이 이루어지면, 더미 파일을 생성하여 해당 더미 파일로 접근하도록 유도하여 보호 대상 폴더 또는 보호 대상 파일을 보호한다. 그러나 이 방법에 따르면 컴퓨터 시스템의 비휘발성 저장 매체인 하드디스크에 더미 파일이 생성되어 사용자가 더미 파일을 알지 못하는 파일, 즉 악성 코드로 오인하게 만들고 사용자가 더미 파일을 삭제해야 하는 문제가 있다.Korean Patent No. 10-1327740 relates to an apparatus and method for collecting malicious code behavior patterns. When a protected folder or a protected file is accessed from malicious code, a dummy file is created and accessed by the corresponding dummy file To protect the protected folder or the protected file. However, according to this method, there is a problem that a dummy file is generated on a hard disk, which is a non-volatile storage medium of a computer system, to make a user mistaken for a file that does not know the dummy file, that is, a malicious code, and the user has to delete the dummy file.
본 발명은 상술한 문제점을 해결하기 위해 제안된 것으로, 하드디스크와 같은 비휘발성 저장 매체의 저장 공간을 과도하게 점유하지 않으면서 악성 코드를 유인하여 탐지할 수 있도록 하는 악성 코드 탐지 장치 및 방법을 제공하는데 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been proposed in order to solve the above-described problems, and provides a malicious code detection apparatus and method that can detect and detect a malicious code without excessively occupying a storage space of a nonvolatile storage medium such as a hard disk It has its purpose.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른, 휘발성 저장 매체 및 비휘발성 저장 매체를 포함하는 악성 코드 탐지 장치는, 특정 프로세스로부터 파일 호출 수신시, 상기 파일 호출에 대한 콜백 이벤트를 생성하고, 상기 콜백 이벤트에 대한 콜백 이벤트 응답에 기초한 파일 처리 결과를 상기 특정 프로세스로 전달하는 파일 필터 드라이버 모듈; 및 가상 파일을 생성하여 상기 휘발성 저장 매체에 저장하고, 상기 콜백 이벤트가 상기 가상 파일에 대한 이벤트인 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 생성하는 탐지 에이전트를 포함하고, 상기 탐지 에이전트는, 상기 콜백 이벤트가 상기 가상 파일에 대한 쓰기 또는 삭제인 경우 상기 특정 프로세스의 동작을 중단한다.According to an aspect of the present invention, there is provided a malicious code detection device including a volatile storage medium and a nonvolatile storage medium, the malicious code detection device generating a callback event for the file call upon receiving a file call from a specific process, A file filter driver module for delivering a file processing result based on a callback event response to the callback event to the specific process; And a detection agent that generates and stores the virtual file in the volatile storage medium, and generates the callback event response including the information of the virtual file when the callback event is an event for the virtual file, Stops the operation of the specific process when the callback event is a write or delete to the virtual file.
상기 탐지 에이전트는, 상기 비휘발성 저장 매체에 저장되어 있는 사용자에 의해 만들어진 실제 파일을 이용하여 상기 가상 파일을 생성할 수 있다.The detection agent may generate the virtual file using an actual file created by a user stored in the non-volatile storage medium.
상기 탐지 에이전트는, 상기 실제 파일에서 샘플링하여 발췌한 데이터와 상기 실제 파일의 헤드 값을 이용하여 상기 가상 파일을 생성할 수 있다.The detection agent may generate the virtual file using data sampled and extracted from the physical file and a head value of the physical file.
상기 탐지 에이전트는, 상기 가상 파일의 상기 비휘발성 저장 매체에서의 가상의 저장 경로를 상기 휘발성 저장 매체에 저장하고, 상기 콜백 이벤트가 상기 가상 파일에 대한 이벤트이면서 상기 콜백 이벤트에 포함된 경로 정보에 대응하는 상기 가상의 저장 경로가 존재하는 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 생성할 수 있다.Wherein the detection agent stores a virtual storage path of the virtual file in the nonvolatile storage medium in the volatile storage medium, and the callback event is an event for the virtual file and corresponds to the path information included in the callback event If the virtual storage path exists, generates the callback event response including the information of the virtual file.
상기 탐지 에이전트는, 상기 가상 파일에 대해 서로 다른 복수의 가상의 저장 경로를 상기 휘발성 저장 매체에 저장할 수 있다.The detection agent may store a plurality of different virtual storage paths for the virtual file on the volatile storage medium.
상기 파일 필터 드라이버 모듈은, 상기 특정 프로세스로부터 파일 호출 수신시, 상기 파일 호출에 대한 콜백 이벤트를 생성하고, 콜백 이벤트 응답에 기초한 파일 처리 결과를 상기 특정 프로세스로 전달하는 커널 모드 파일 필터 드라이버; 및 상기 커널 모드 파일 필터 드라이버로부터 상기 콜백 이벤트를 수신하여 상기 탐지 에이전트로 전달하고, 상기 탐지 에이전트로부터 상기 콜백 이벤트 응답을 수신하여 상기 커널 모드 파일 필터 드라이버로 전달하는 사용자 모드 파일 필터 드라이버를 포함할 수 있다.Wherein the file filter driver module comprises: a kernel mode file filter driver for generating a callback event for the file call upon receiving a file call from the specific process, and for transferring a file processing result based on a callback event response to the specific process; And a user mode file filter driver that receives the callback event from the kernel mode file filter driver and forwards the callback event to the detection agent, and receives the callback event response from the detection agent and passes the response to the kernel mode file filter driver have.
상기 탐지 에이전트는, 허용된 프로세스들의 리스트인 화이트 리스트를 구비하고, 상기 특정 프로세스가 상기 화이트 리스트에 속하지 않는 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 생성하고, 상기 특정 프로세스가 상기 화이트 리스트에 속하는 경우 패스 응답의 상기 콜백 이벤트 응답을 생성할 수 있다. Wherein the detection agent has a whitelist that is a list of allowed processes and generates the callback event response that includes information of the virtual file if the particular process does not belong to the whitelist, List, it can generate the callback event response of the path response.
상기 탐지 에이전트는, 사용자에게 상기 중단한 상기 특정 프로세스의 허용 여부를 질의하고, 허용 응답의 수신시 상기 중단한 상기 특정 프로세스를 상기 화이트 리스트에 등록할 수 있다.The detection agent may inquire the user whether the suspended process is allowed or not, and register the suspended process in the whitelist upon receiving the permission response.
상기 목적을 달성하기 위한 본 발명의 다른 측면에 따른, 휘발성 저장 매체, 비휘발성 저장 매체, 파일 필터 드라이버 모듈 및 탐지 에이전트를 포함하는 악성 코드 탐지 장치에서 악성 코드를 탐지하는 방법은, 상기 탐지 에이전트가, 가상 파일을 생성하여 상기 휘발성 저장 매체에 저장하는 단계; 상기 탐지 에이전트가, 특정 프로세스로부터 파일 호출을 수신한 상기 파일 필터 드라이버 모듈로부터 상기 파일 호출에 대한 콜백 이벤트를 수신하는 단계; 상기 탐지 에이전트가, 상기 콜백 이벤트가 상기 가상 파일에 대한 이벤트인 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 상기 파일 필터 드라이버 모듈로 전달하는 단계; 및 상기 탐지 에이전트가, 상기 콜백 이벤트가 상기 가상 파일에 대한 쓰기 또는 삭제인 경우 상기 특정 프로세스의 동작을 중단하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method for detecting malicious code in a malicious code detection apparatus including a volatile storage medium, a nonvolatile storage medium, a file filter driver module, and a detection agent, Generating a virtual file and storing the virtual file in the volatile storage medium; Receiving, by the detection agent, a callback event for the file call from the file filter driver module that has received the file call from the specific process; Forwarding the callback event response including the information of the virtual file to the file filter driver module if the callback event is an event for the virtual file; And stopping the operation of the specific process when the detection agent is the write or erase of the callback event to the virtual file.
상기 저장하는 단계는, 상기 탐지 에이전트가, 상기 비휘발성 저장 매체에 저장되어 있는 사용자에 의해 만들어진 실제 파일을 이용하여 상기 가상 파일을 생성할 수 있다. The storing agent may generate the virtual file using an actual file created by a user stored in the nonvolatile storage medium.
상기 저장하는 단계는, 상기 탐지 에이전트가, 상기 실제 파일에서 샘플링하여 발췌한 데이터와 상기 실제 파일의 헤드 값을 이용하여 상기 가상 파일을 생성할 수 있다. The storing agent may generate the virtual file by using the data sampled and extracted from the physical file and the head value of the physical file.
상기 저장하는 단계는, 상기 탐지 에이전트가, 상기 가상 파일의 상기 비휘발성 저장 매체에서의 가상의 저장 경로를 상기 휘발성 저장 매체에 저장하는 단계를 포함하고, 상기 전달하는 단계에서, 상기 탐지 에이전트는, 상기 콜백 이벤트가 상기 가상 파일에 대한 이벤트이면서 상기 콜백 이벤트에 포함된 경로 정보에 대응하는 상기 가상의 저장 경로가 존재하는 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 생성할 수 있다. Wherein the storing step includes storing the virtual storage path of the virtual file in the nonvolatile storage medium in the volatile storage medium, and in the transmitting step, And generate the callback event response including information of the virtual file when the callback event is an event for the virtual file and the virtual storage path corresponding to the path information included in the callback event exists.
상기 저장하는 단계는, 상기 탐지 에이전트가, 상기 가상 파일에 대해 서로 다른 복수의 가상의 저장 경로를 상기 휘발성 저장 매체에 저장할 수 있다. The storing agent may store a plurality of virtual storage paths different for the virtual file on the volatile storage medium.
상기 전달하는 단계에서, 상기 탐지 에이전트는, 허용된 프로세스들의 리스트인 화이트 리스트를 구비하고, 상기 특정 프로세스가 상기 화이트 리스트에 속하지 않는 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 생성하고, 상기 특정 프로세스가 상기 화이트 리스트에 속하는 경우 패스 응답의 상기 콜백 이벤트 응답을 생성할 수 있다. Wherein the detection agent has a whitelist that is a list of allowed processes and generates the callback event response including information of the virtual file if the specific process does not belong to the whitelist, And generate the callback event response of the path response if the particular process belongs to the whitelist.
상기 방법은, 상기 탐지 에이전트가, 사용자에게 상기 중단한 상기 특정 프로세스의 허용 여부를 질의하고, 허용 응답의 수신시 상기 중단한 상기 특정 프로세스를 상기 화이트 리스트에 등록하는 단계를 더 포함할 수 있다. The method may further include a step in which the detection agent inquires of the user whether or not the specific process has been suspended, and registering the suspended process in the whitelist upon receiving the permission response.
본 발명의 실시예에 따르면 악성 코드를 탐지하기 위한 휘발성 가상 파일을 생성하여 휘발성 저장 매체에 저장하여 이용함으로써 비휘발성 저장 매체에 실제 파일을 저장하여 이용할 때보다 파일을 손쉽게 정리할 수 있도록 한다. According to an embodiment of the present invention, a volatile virtual file for detecting a malicious code is generated and stored in a volatile storage medium, so that a file can be more easily organized than when a physical file is stored in a nonvolatile storage medium.
본 발명의 실시예에 따르면 비휘발성 저장 매체에 실제 저장된 사용자가 만든 파일을 이용하여 가상 파일을 생성함으로써 악성 코드가 가상 파일을 실제 파일로 인식하게 하여 악성 코드의 탐지율을 높일 수 있다. According to an embodiment of the present invention, a virtual file is created by using a file created by a user actually stored in a nonvolatile storage medium, thereby allowing a malicious code to recognize a virtual file as an actual file, thereby increasing the detection rate of malicious code.
또한, 본 발명의 실시예에 따르면 실제 파일을 여러 개 만들어 비휘발성 저장 매체에 저장하지 않고 가상 저장 경로 정보를 휘발성 저장 매체에 가상 파일과 함께 저장하여 이용함으로써 비휘발성 저장 매체의 저장 공간을 점유하지 않으면서 악성 코드의 탐지율을 높일 수 있다. According to the embodiment of the present invention, virtual storage path information is stored in a volatile storage medium together with a virtual file without occupying a storage space of the nonvolatile storage medium, instead of storing a plurality of actual files in a nonvolatile storage medium The detection rate of malicious code can be increased.
또한, 본 발명의 실시예에 따르면 화이트 리스트를 이용하여 안전한 프로세스에 대해서는 가상 파일의 처리 응답을 전송하지 않도록 하여 탐지 에이전트의 동작 로드를 줄이면서 사용자의 혼란을 줄일 수 있다. Also, according to the embodiment of the present invention, it is possible to reduce the operation load of the detection agent and reduce the confusion of the user by not transmitting the processing response of the virtual file to the secure process using the whitelist.
도 1은 본 발명의 일 실시예에 따른 악성 코드 탐지 장치의 구성을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 악성 코드 탐지 장치에서 악성 코드를 탐지하는 방법을 설명하는 흐름도이다.1 is a block diagram of a malicious code detection apparatus according to an embodiment of the present invention.
2 is a flowchart illustrating a malicious code detection method in a malicious code detection apparatus according to an exemplary embodiment of the present invention.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.The foregoing and other objects, features and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings, in which: There will be. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. Hereinafter, a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시예에 따른 악성 코드 탐지 장치의 구성을 나타낸 도면이다. 본 실시예에 따른 악성 코드 탐지 장치는 중앙 처리 장치(CPU), 휘발성 저장 매체, 비휘발성 저장 매체, 네트워크 인터페이스 장치, 입출력 장치 등으로 구성될 수 있고, 도 1에서는 하드웨어 요소로서 휘발성 저장 매체(110) 및 비휘발성 저장 매체(120)를 도시하고, 소프트웨어 요소로서 비휘발성 저장 매체(120)에 설치되는 운영 체제(OS)(100)를 도시한다. 이러한 악성 코드 탐지 장치는, 퍼스널 컴퓨터, 또는 스마트폰 등과 같은 휴대용 통신 단말, 또는 서버 등의 컴퓨팅 시스템을 포함할 수 있으나 여기에 제한되지 않는다. 1 is a block diagram of a malicious code detection apparatus according to an embodiment of the present invention. The malicious code detection apparatus according to the present embodiment may include a central processing unit (CPU), a volatile storage medium, a nonvolatile storage medium, a network interface device, and an input / output device. In FIG. 1, ) And
중앙 처리 장치는 휘발성 저장 매체(110) 또는 비휘발성 저장 매체(120)에 저장된 명령어들을 수행하도록 구성된 프로세서로서, 예를 들어, 검색된 명령어들을 이용하여, 컴포넌트 간의 입력 및 출력 데이터의 수신과 조작을 제어할 수 있다. 네트워크 인터페이스 장치는 이더넷 통신 회로 및 RF 회로를 포함할 수 있다. 이더넷 통신 회로는 유선 통신을 수행하고, RF 회로는 전자파를 송수신한다. 입출력 장치는, 마우스, 키보드, 디스플레이, 터치 디스플레이 등을 포함하여 사용자의 명령을 입력받고 데이터를 출력한다. The central processing unit is a processor configured to execute instructions stored in the
운영 체제(100)는 파일 시스템에 대한 정보를 가지고 있으면서 각종 응용 프로그램(130)들이 요청하는 파일에 대한 각종 처리들을 보조하며 응용 프로그램(130)이 요청한 파일에 대해 시스템 상태에 따라 사용을 허가하는 역할을 하고 있다. 여기서 파일은 폴더를 포함하는 것으로 이해될 수 있다. 모든 응용 프로그램(130)은 이러한 운영 체제의 파일 정책에 따라 파일을 제어하고 동작하는 구조를 가진다. 응용 프로그램(130)은 사용자 명령 또는 필요에 따라 파일 처리에 관한 함수를 호출한다. 파일 처리는 대표적으로 파일 접근(open), 파일 읽기(read), 파일 쓰기(write), 파일 닫기(close), 파일 삭제(delete) 등을 포함한다. 읽기/쓰기/닫기/삭제 등은 파일 접근(open)을 기본으로 하여 이루어진다. 응용 프로그램(130)의 파일 처리에 의해 발생된 함수는 운영 체제(100)의 커널 모드 영역에서 처리된다. 운영 체제(100)는 일반적인 컴퓨터 프로그램이 실행되는 사용자 모드(User mode) 영역과, 하드웨어 제어와 같이 제한적이고 특수한 작업을 수행하는 커널 모드(Kernel) 영역으로 구분된다. The
사용자 모드 영역에서는 탐색기나 워드 등과 같은 적어도 하나 이상의 응용 프로그램(130)과 본 발명에 따른 악성 코드를 탐지하는 탐지 에이전트(140)가 실행된다. 그리고 사용자 모드 영역에는 파일 필터 드라이버 모듈(150)에 포함된 필터 드라이버 중 사용자 모드 파일 필터 드라이버(151)가 설치된다. 사용자 모드 파일 필터 드라이버(151)는 탐지 에이전트(140)의 설치시 함께 설치되는 것이 바람직하다. 사용자 모드 파일 필터 드라이버(151)는, 응용 프로그램(130)에서 파일 처리를 위한 함수가 호출될 때 커널 모드 영역의 커널 모드 파일 필터 드라이버(152)로부터 콜백 이벤트를 수신한다. 여기서 콜백 이벤트에는 파일을 호출한 프로세스, 즉 응용 프로그램(130)의 정보와 호출 대상 파일의 정보 그리고 파일 처리의 정보를 포함한다. 파일의 정보는 예컨대 해당 파일이 저장되어 있는 저장 경로일 수 있고, 또는 해당 파일의 파일명일 수도 있고, 또는 특정 확장자의 정보일 수도 있다. 그리고 파일 처리의 정보는, 파일 접근(open), 파일 읽기(read), 파일 쓰기(write), 파일 닫기(close), 파일 삭제(delete) 등을 포함한다.In the user mode area, at least one
커널 모드 영역에서는, 응용 프로그램(130)에서 파일 처리를 위한 함수가 호출되면 상기 사용자 모드 영역에 있는 상기 사용자 모드 파일 필터 드라이버(151)로 콜백 이벤트를 전달하고 이에 대한 콜백 이벤트 응답을 수신하며 그 수신된 콜백 이벤트 응답에 기초하여 파일 처리 결과를 응용 프로그램(130)에 전달하는 상기 커널 모드 파일 필터 드라이버(152)가 설치된다. 상기 커널 모드 파일 필터 드라이버(152)는 상기 콜백 이벤트 응답이 패스(pass) 응답인 경우 일반적인 파일 처리 과정에 따라 파일 시스템(160)으로 파일 요청을 전달하고 파일 시스템(160)으로부터 처리 결과를 받아 응용 프로그램(130)으로 전달한다. 커널 모드 영역의 파일 시스템(160)은 비휘발성 저장 매체(120)에 저장된 파일을 총괄 관리한다. 예컨대 파일 생성, 파일 접근, 파일 읽기, 파일 쓰기, 파일 닫기, 파일 삭제 등을 관리한다.In the kernel mode area, when a function for file processing is called in the
비휘발성 저장 매체(120)는 전원이 끊어진 상태에서도 데이터를 유지하고 있어 전원이 공급되면 다시 저장된 데이터를 사용할 수 있는 저장 매체로서, 예컨대 CD, 읽기용 기억 장치(ROM), 하드디스크와 플래쉬 디스크(flash disks) 등을 포함한다. 휘발성 저장 매체(110)는, 지속적인 전력 공급을 요구하지 않는 상기 비휘발성 저장 매체(120)와는 달리 저장된 데이터를 유지하기 위해 전원을 요구하는 메모리로서, 임시 메모리라고도 하고, 동적 램(DRAM), 정적 램(SRAM)을 포함한 랜덤 액세스 메모리(RAM)가 대표적이다. The
본 실시예에 있어서, 탐지 에이전트(140)는, 악성 코드를 탐지하기 위해, 실행시에 휘발성의 가상 파일(virtual file)을 생성하여 비휘발성 저장 매체(120)에 저장하지 않고 휘발성 저장 매체(110)에 저장한다. 즉, 가상 파일은 하드디스크와 같은 비휘발성 저장 매체(120)에 물리적으로 실제 존재하지 않게 된다. 따라서 악성 코드 탐지 장치가 컴퓨터라고 할 때 사용자들은 탐색기나 워드와 같은 응용 프로그램(130)을 통해 해당 가상 파일이 있다는 것을 인지할 수 없다. 가상 파일을 휘발성 저장 매체(110)에 생성한 탐지 에이전트(140)는, 가상 파일에 대한 모든 응답 권한(open/read/write/close/delete 등)을 가지며, 사용자 모드 파일 필터 드라이버(151)와 연동하여 해당 가상 파일에 접근하는 다른 프로세스, 즉 응용 프로그램(130)들의 요청(open/read/write/close/delete 등)에 대한 응답 제어를 하며 악성 코드를 탐지한다. 가상 파일은 복수 개로 생성될 수 있고 각 가상 파일은 서로 다른 파일명, 또는 파일 데이터를 가질 수 있다. In this embodiment, the
탐지 에이전트(140)는 가상 파일을 생성할 때 악성 코드 탐지 장치의 비휘발성 저장 매체(120)에 실제 저장된 사용자가 작성하고 만들어 낸 파일, 예를 들어 오피스 파일(dox, docx, xls, ppt 등) 등의 문서 파일이나 그래픽 파일, 또는 이미지 파일(jpeg, png 등) 혹은 압축 파일(zip, rar 등) 등을 이용하여 가상 파일을 생성한다. 예컨대 탐지 에이전트(140)는 실제 저장된 사용자가 작성하고 만들어 낸 파일에서 데이터를 샘플링하여 발췌한 후 해당 파일의 헤드 값을 가지고 와서 가상 파일을 생성할 수 있다. 이와 같이 하는 이유는, 악성 코드가 가상 파일을 실제 사용자가 만들어 낸 실제 파일인 것처럼 위장하기 위한 것이다. 그리고 휘발성의 가상 파일을 생성하여 휘발성 저장 매체(110)에 저장하는 이유는, 실제 파일을 만들어 비휘발성 저장 매체(120)에 저장하면 실제 파일은 비휘발성 저장 매체(120)의 I/O(input/output)에 무리를 주며 그 실제 파일을 일일이 찾아서 삭제하여 정리해야 하는 문제가 있기 때문이다.The
탐지 에이전트(140)는 가상 파일을 생성하여 휘발성 저장 매체(110)에 저장하며 해당 가상 파일의 가상 저장 경로 정보도 함께 저장한다. 여기서 가상 저장 경로 정보는, 비휘발성 저장 매체(120)에서의 파일 위치 정보로서, 비휘발성 저장 매체(120)에 실제로 저장되지 않는 가상 파일이 비휘발성 저장 매체(120)의 특정 경로(예, 폴더)에 저장되어 있는 것으로 가정한 저장 경로 정보를 의미한다. 이러한 가상 저장 경로 정보는 적어도 하나 이상일 수 있다. 예를 들어, C 드라이브의 Program Files 폴더와, C 드라이브의 Windows 폴더 등과 같이 해당 가상 파일의 가상 저장 경로 정보를 복수 개 저장할 수 있다. 가상 저장 경로 정보를 많이 설정할수록 악성 코드의 탐지 확률이 높아진다. 악성 코드가 어느 저장 경로로 접근하여 파일을 변조, 삭제 등을 할지 모르기 때문에 최대한 여러 곳에 가상 파일이 저장되어 있는 것처럼 설정할 필요가 있다.The
탐지 에이전트(140)는 안전한 프로세스(즉 응용 프로그램(130))의 리스트인 화이트 리스트를 저장하고 관리한다. 탐지 에이전트(140)는 입출력 장치를 통해 사용자로부터 화이트 리스트를 설정받을 수 있고, 또는 관리 서버와 통신을 하여 관리 서버로부터 화이트 리스트를 수신하여 저장하고 주기적으로 업데이트할 수 있다. 임의의 프로세스, 예컨대 응용 프로그램(130)에서 파일 처리를 위한 함수가 호출될 때, 탐지 에이전트(140)는 사용자 모드 파일 필터 드라이버(151)로부터 콜백 이벤트를 수신한다. 콜백 이벤트는 파일을 호출한 프로세스, 호출 대상 파일의 정보 그리고 파일 처리의 정보를 포함한다. The
탐지 에이전트(140)는, 파일을 호출한 프로세스가 화이트 리스트에 속하는 경우 가상 파일에 대한 처리 응답을 하지 않고 패스 응답을 회신한다. 패스 응답은 무시하는 것으로 가상 파일이 존재하지 않는 것처럼 처리하는 것이다. 탐지 에이전트(140)는, 파일을 호출한 프로세스가 화이트 리스트에 속하지 않는 경우 해당 가상 파일에 대한 처리 응답을 회신한다. 여기서 처리는, 파일 접근(open), 파일 읽기(read), 파일 쓰기(write), 파일 닫기(close), 파일 삭제(delete) 등을 포함한다. 예컨대, 임의의 프로세스가 가상 파일이 저장된 폴더를 오픈하는 경우, 탐지 에이전트(140)는 가상 파일의 파일명을 해당 임의의 프로세스로 전달한다. 또는 임의의 프로세스가 가상 파일에 접근(open)하여 읽기(read)하는 경우, 탐지 에이전트(140)는 가상 파일의 내용을 해당 임의의 프로세스로 전달한다.The
탐지 에이전트(140)는, 임의의 프로세스가 가상 파일에 접근하여 변조(즉, 쓰기)하거나 삭제(delete)하는 경우, 해당 프로세스는 악성 코드인 것으로 의심하고 입출력 장치를 통해 사용자에게 사용자가 허용한 프로세스인지 확인하는 질의를 표시하고, 사용자로부터 미허용 프로세스라는 응답이 수신되면 해당 프로세스의 동작을 중단시키거나 해당 프로세스를 삭제하고, 사용자로부터 허용 프로세스라는 응답이 수신되면 해당 프로세스를 화이트 리스트에 등록한다. 탐지 에이전트(140)는 사용자로부터 미허용 프로세스라는 응답이 수신된 프로세스를 블랙 리스트로 관리하여 블랙 리스트에 등록된 프로세스로부터 가상 파일에 대한 접근이 있는 경우 해당 프로세스의 동작을 중단시키거나 삭제할 수 있다.When a certain process accesses a virtual file and modulates (i.e., writes) or deletes an arbitrary process, the
도 1을 참조한 실시예에서 탐지 에이전트(140)와 사용자 모드 파일 필터 드라이버(151)는 사용자 모드 영역에 설치되어 동작하는 것으로 설명하지만 여기에 제한되는 것은 아니고 탐지 에이전트(140) 및 사용자 모드 파일 필터 드라이버(151)는 미니 필터의 형태로 구현되어 커널 모드 영역에 설치되어 전술한 동작할 수도 있다. 1, the
도 2는 본 발명의 일 실시예에 따른 악성 코드 탐지 장치에서 악성 코드를 탐지하는 방법을 설명하는 흐름도이다.2 is a flowchart illustrating a malicious code detection method in a malicious code detection apparatus according to an exemplary embodiment of the present invention.
도 2를 참조하면, 악성 코드 탐지 장치의 탐지 에이전트(140)는 사용자의 입력에 따라 또는 자동으로 실행된다(S201). 자동 실행의 경우 악성 코드 탐지 장치에 전원이 인가되어 부팅될 때 자동 실행되는 것을 예로 들 수 있다. 탐지 에이전트(140)는 안전한 프로세스들의 리스트인 화이트 리스트를 저장한다(S203). 예컨대, 탐지 에이전트(140)는 악성 코드 탐지 장치의 네트워크 인터페이스 장치를 통해 관리 서버에 접속하여 관리 서버로부터 화이트 리스트를 수신할 수 있다. 또는 탐지 에이전트(140)는 사용자로부터 안전한 프로세스를 선택받아 화이트 리스트를 저장할 수도 있다. Referring to FIG. 2, the
탐지 에이전트(140)는 휘발성의 가상 파일(virtual file)을 생성하고(S205),그 생성한 가상 파일의 가상 저장 경로를 결정한다(S207). 그리고 탐지 에이전트(140)는 가상 파일과 가상 저장 경로 정보를 휘발성 저장 매체(110)에 저장한다(S209). 따라서, 가상 파일은 하드디스크와 같은 비휘발성 저장 매체(120)에 물리적으로 실제 존재하지 않게 되고, 악성 코드 탐지 장치가 컴퓨터라고 할 때 사용자들은 탐색기나 워드와 같은 응용 프로그램(130)을 통해 해당 가상 파일이 있다는 것을 인지할 수 없다. The
탐지 에이전트(140)는 가상 파일을 생성할 때 악성 코드 탐지 장치의 비휘발성 저장 매체(120)에 실제 저장된 사용자가 작성하고 만들어 낸 파일, 예를 들어 오피스 파일(dox, docx, xls, ppt 등) 등의 문서 파일이나 그래픽 파일, 또는 이미지 파일(jpeg, png 등) 혹은 압축 파일(zip, rar 등) 등을 이용하여 가상 파일을 생성한다. 예컨대 탐지 에이전트(140)는 실제 저장된 사용자가 작성하고 만들어 낸 파일에서 데이터를 샘플링하여 발췌한 후 해당 파일의 헤드 값을 가지고 와서 가상 파일을 생성할 수 있다. 가상 저장 경로 정보는, 비휘발성 저장 매체(120)에서의 파일 위치 정보로서, 비휘발성 저장 매체(120)에 실제로 저장되지 않는 가상 파일이 비휘발성 저장 매체(120)의 특정 경로(예, 폴더)에 저장되어 있는 것으로 가정한 저장 경로 정보를 의미한다. 이러한 가상 저장 경로 정보는 적어도 하나 이상일 수 있다. 예를 들어, C 드라이브의 Program Files 폴더와, C 드라이브의 Windows 폴더 등과 같이 해당 가상 파일의 가상 저장 경로 정보를 복수 개 저장할 수 있다. 가상 저장 경로 정보를 많이 설정할수록 악성 코드의 탐지 확률이 높아진다. 악성 코드가 어느 저장 경로로 접근하여 파일을 변조, 삭제 등을 할지 모르기 때문에 최대한 여러 곳에 가상 파일이 저장되어 있는 것처럼 설정할 필요가 있다. 그리고 탐지 에이전트(140)는 가상 파일을 복수 개 생성할 수 있고 각 가상 파일은 서로 다른 파일명, 또는 파일 데이터를 가질 수 있으며, 각 가상 파일마다 적어도 하나 이상의 가상 경로 정보를 설정할 수 있다. The
이와 같이 가상 파일 및 가상 저장 경로 정보를 저장한 후, 특정 프로세스, 즉 응용 프로그램(130)에서 파일 필터 드라이버 모듈(150) 내의 커널 모드 영역의 커널 모드 파일 필터 드라이버(152)로 특정 파일을 호출한다(S211). 여기서 특정 파일의 호출은, 특정 폴더 내에서 파일에 접근하여 읽는 동작, 또는 특정 폴더를 오픈하는 동작, 또는 파일에 쓰기하는 동작, 또는 파일 삭제 동작 등을 의미한다. 이에 따라 상기 커널 모드 파일 필터 드라이버(152)는 사용자 모드 영역의 사용자 모드 파일 필터 드라이버(151)로 콜백 이벤트를 전달한다(S213). 여기서 콜백 이벤트에는 파일을 호출한 프로세스, 즉 응용 프로그램(130)의 정보와 호출 대상 파일의 정보 그리고 파일 처리의 정보를 포함한다. 파일의 정보는 예컨대 해당 파일이 위치하는 폴더 경로일 수 있고, 또는 해당 파일의 파일명일 수도 있고, 또는 특정 확장자의 정보일 수도 있다. 그리고 파일 처리의 정보는, 파일 접근(open), 파일 읽기(read), 파일 쓰기(write), 파일 닫기(close), 파일 삭제(delete) 등을 포함한다.After storing the virtual file and the virtual storage path information, the specific file is called from the
상기 사용자 모드 파일 필터 드라이버(151)는 콜백 이벤트를 탐지 에이전트(140)로 전달한다(S215). 탐지 에이전트(140)는 콜백 이벤트에 포함된 정보와 휘발성 저장 매체(110)에 저장된 가상 파일 및 가상 저장 경로 정보를 비교하여 파일 호출이 가상 파일에 대한 호출인지 확인한다(S217). 가상 파일에 대한 호출인 경우, 탐지 에이전트(140)는 파일 호출을 한 프로세스가 화이트 리스트에 속하는 프로세스인지 확인한다(S219). The user mode
탐지 에이전트(140)는 가상 파일에 대한 호출이 아닌 경우, 또는 가상 파일에 대한 호출이지만 화이트 리스트에 속하는 프로세스에 의한 가상 파일 호출인 경우, 사용자 모드 파일 필터 드라이버(151)로 패스 응답의 콜백 이벤트 응답을 전달하고, 사용자 모드 파일 필터 드라이버(151)는 커널 모드 파일 필터 드라이버(152)로 패스 응답의 콜백 이벤트 응답을 전달한다(S221, S223). 이에 따라 커널 모드 파일 필터 드라이버(152)는, 일반적인 파일 처리 과정에 따라 파일 시스템(160)으로 파일 요청을 전달하고 파일 시스템(160)으로부터 처리 결과를 받아 응용 프로그램(130)으로 전달한다(S225).If the
한편, 탐지 에이전트(140)는, 파일 호출이 가상 파일에 대한 호출이면서 화이트 리스트에 속하지 않은 프로세스에 의한 가상 파일 호출인 경우, 해당 호출이 가상 파일에 대한 변조(예컨대, 쓰기) 또는 파일 삭제인지 확인한다(S227). 파일 변조 또는 삭제가 아닌 경우, 탐지 에이전트(140)는 그 파일 호출에 대한 처리 응답의 콜백 이벤트 응답을 사용자 모드 파일 필터 드라이버(151)로 전달한다(S229). 그러면 사용자 모드 파일 필터 드라이버(151)는 처리 응답의 콜백 이벤트 응답을 커널 모드 파일 필터 드라이버(152)로 전달하고, 커널 모드 파일 필터 드라이버(152)는 파일을 호출한 프로세스, 즉 응용 프로그램(130)으로 처리 응답을 전달한다(S231, S233). 예를 들어, 프로세스가 가상 파일이 가상으로 매칭되어 있는 비휘발성 저장 매체(120)의 폴더를 열기(open)한 경우 탐지 에이전트(140)는 가상 파일의 파일명을 전달하고, 또는 프로세스가 가상 파일에 접근하여 열기(open)를 한 경우 탐지 에이전트(140)는 가상 파일의 데이터를 전달한다. 이와 같이 하는 이유는 악성 코드가 가상 파일을 실제 파일로 인식하여 파일 변조나 삭제를 할 수 있도록 유도하기 위한 것이다.On the other hand, when the file call is a call to a virtual file and a virtual file call by a process not belonging to the whitelist, the
한편, 상기 단계 S227에서 확인한 결과, 파일 호출이 가상 파일에 대한 변조 또는 삭제인 경우, 탐지 에이전트(140)는 해당 가상 파일을 호출한 프로세스가 악성 코드인 것으로 의심하고 해당 프로세스를 중단한다(S235). 그리고 탐지 에이전트(140)는 입출력 장치를 통해 사용자에게 사용자가 허용한 프로세스인지 확인하는 질의를 표시하고, 사용자로부터 미허용 프로세스라는 응답이 수신되면 해당 프로세스의 동작을 종료시키거나 해당 프로세스를 삭제하고, 사용자로부터 허용 프로세스라는 응답이 수신되면 해당 프로세스를 화이트 리스트에 등록한다(S237). 탐지 에이전트(140)는 사용자로부터 미허용 프로세스라는 응답이 수신된 프로세스를 블랙 리스트로 관리하여 블랙 리스트에 등록된 프로세스로부터 가상 파일에 대한 접근이 있는 경우 해당 프로세스의 동작을 중단시키거나 삭제할 수 있다.Meanwhile, if it is determined in step S227 that the file call is a modification or deletion of a virtual file, the
이상에서 설명한 바와 같이 본 발명의 실시예에 따르면 악성 코드를 탐지하기 위한 휘발성 가상 파일을 생성하여 휘발성 저장 매체(110)에 저장하여 이용함으로써 비휘발성 저장 매체(120)에 실제 파일을 저장하여 이용할 때보다 파일을 손쉽게 정리할 수 있도록 한다. 휘발성 가상 파일의 경우 탐지 에이전트(140)가 종료되는 경우 휘발성 저장 매체(110)에서 함께 삭제됨으로써 사용자가 일일이 직접 파일을 삭제하여 정리할 필요가 없다.As described above, according to the embodiment of the present invention, when a volatile virtual file for detecting a malicious code is generated and stored in the
특히, 본 발명의 실시예에 따르면 비휘발성 저장 매체(120)에 실제 저장된 사용자가 만든 파일을 이용하여 가상 파일을 생성함으로써 악성 코드가 가상 파일을 실제 파일로 인식하게 하여 악성 코드의 탐지율을 높일 수 있다. In particular, according to the embodiment of the present invention, a virtual file is created using a file created by a user actually stored in the
또한, 본 발명의 실시예에 따르면 실제 파일을 여러 개 만들어 비휘발성 저장 매체(120)에 저장하지 않고 가상 저장 경로 정보를 휘발성 저장 매체(110)에 가상 파일과 함께 저장하여 이용함으로써 비휘발성 저장 매체(120)의 저장 공간을 점유하지 않으면서 악성 코드의 탐지율을 높일 수 있다. According to the embodiment of the present invention, virtual storage path information is stored in the
또한, 본 발명의 실시예에 따르면 화이트 리스트를 이용하여 안전한 프로세스에 대해서는 가상 파일의 처리 응답을 전송하지 않도록 하여 탐지 에이전트(140)의 동작 로드를 줄이면서 사용자의 혼란을 줄일 수 있다. In addition, according to the embodiment of the present invention, it is possible to reduce the operation load of the
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.While the specification contains many features, such features should not be construed as limiting the scope of the invention or the scope of the claims. In addition, the features described in the individual embodiments herein may be combined and implemented in a single embodiment. Conversely, various features described in the singular < Desc / Clms Page number 5 > embodiments herein may be implemented in various embodiments individually or in combination as appropriate.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.Although the operations have been described in a particular order in the figures, it should be understood that such operations are performed in a particular order as shown, or that all described operations are performed to obtain a sequence of sequential orders, or a desired result . In certain circumstances, multitasking and parallel processing may be advantageous. It should also be understood that the division of various system components in the above embodiments does not require such distinction in all embodiments. The above-described program components and systems can generally be implemented as a single software product or as a package in multiple software products.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.The method of the present invention as described above can be implemented by a program and stored in a computer-readable recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto optical disk, etc.). Such a process can be easily carried out by those skilled in the art and will not be described in detail.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention. The present invention is not limited to the drawings.
110 : 휘발성 저장 매체
120 : 비휘발성 저장 매체
130 : 응용 프로그램
140 : 탐지 에이전트
150 : 파일 필터 드라이버 모듈
151 : 사용자 모드 파일 필터 드라이버
152 : 커널 모드 파일 필터 드라이버
160 : 파일 시스템110: Volatile storage medium
120: Nonvolatile storage medium
130: Application
140: detection agent
150: File filter driver module
151: User Mode File Filter Driver
152: kernel mode file filter driver
160: File system
Claims (16)
특정 프로세스로부터 파일 호출 수신시, 상기 파일 호출에 대한 콜백 이벤트를 생성하고, 상기 콜백 이벤트에 대한 콜백 이벤트 응답에 기초한 파일 처리 결과를 상기 특정 프로세스로 전달하는 파일 필터 드라이버 모듈; 및
가상 파일을 생성하여 상기 휘발성 저장 매체에 저장하고, 상기 콜백 이벤트가 상기 가상 파일에 대한 이벤트인 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 생성하는 탐지 에이전트를 포함하고,
상기 탐지 에이전트는, 상기 콜백 이벤트가 상기 가상 파일에 대한 쓰기 또는 삭제인 경우 상기 특정 프로세스의 동작을 중단하는, 악성 코드 탐지 장치.A malicious code detection device comprising a volatile storage medium and a non-volatile storage medium,
A file filter driver module for generating a callback event for the file call upon receiving a file call from a specific process and delivering a file processing result based on a callback event response to the callback event to the specific process; And
And a detection agent that generates a virtual file and stores the virtual file in the volatile storage medium, and generates the callback event response including the information of the virtual file when the callback event is an event for the virtual file,
Wherein the detection agent stops the operation of the specific process when the callback event is a write or delete to the virtual file.
상기 탐지 에이전트는,
상기 비휘발성 저장 매체에 저장되어 있는 사용자에 의해 만들어진 실제 파일을 이용하여 상기 가상 파일을 생성하는, 악성 코드 탐지 장치.The method according to claim 1,
Wherein the detection agent comprises:
Wherein the virtual file is created using an actual file created by a user stored in the non-volatile storage medium.
상기 탐지 에이전트는,
상기 실제 파일에서 샘플링하여 발췌한 데이터와 상기 실제 파일의 헤드 값을 이용하여 상기 가상 파일을 생성하는, 악성 코드 탐지 장치.3. The method of claim 2,
Wherein the detection agent comprises:
And generates the virtual file using data extracted from the actual file and extracted from the actual file and the head value of the actual file.
상기 탐지 에이전트는,
상기 가상 파일의 상기 비휘발성 저장 매체에서의 가상의 저장 경로를 상기 휘발성 저장 매체에 저장하고,
상기 콜백 이벤트가 상기 가상 파일에 대한 이벤트이면서 상기 콜백 이벤트에 포함된 경로 정보에 대응하는 상기 가상의 저장 경로가 존재하는 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 생성하는, 악성 코드 탐지 장치.The method according to claim 1,
Wherein the detection agent comprises:
Storing a virtual storage path of the virtual file in the nonvolatile storage medium in the volatile storage medium,
Generating a callback event response including information of the virtual file when the callback event is an event for the virtual file and the virtual storage path corresponding to the path information included in the callback event exists, Device.
상기 탐지 에이전트는,
상기 가상 파일에 대해 서로 다른 복수의 가상의 저장 경로를 상기 휘발성 저장 매체에 저장하는, 악성 코드 탐지 장치.5. The method of claim 4,
Wherein the detection agent comprises:
And stores a plurality of virtual storage paths different for the virtual file in the volatile storage medium.
상기 파일 필터 드라이버 모듈은,
상기 특정 프로세스로부터 파일 호출 수신시, 상기 파일 호출에 대한 콜백 이벤트를 생성하고, 콜백 이벤트 응답에 기초한 파일 처리 결과를 상기 특정 프로세스로 전달하는 커널 모드 파일 필터 드라이버; 및
상기 커널 모드 파일 필터 드라이버로부터 상기 콜백 이벤트를 수신하여 상기 탐지 에이전트로 전달하고, 상기 탐지 에이전트로부터 상기 콜백 이벤트 응답을 수신하여 상기 커널 모드 파일 필터 드라이버로 전달하는 사용자 모드 파일 필터 드라이버를 포함하는, 악성 코드 탐지 장치.The method according to claim 1,
Wherein the file filter driver module comprises:
A kernel mode file filter driver that generates a callback event for the file call upon receiving a file call from the specific process and forwards the file processing result based on the callback event response to the specific process; And
And a user mode file filter driver that receives the callback event from the kernel mode file filter driver and forwards the callback event to the detection agent and receives the callback event response from the detection agent and forwards the response to the kernel mode file filter driver. Code detection device.
상기 탐지 에이전트는,
허용된 프로세스들의 리스트인 화이트 리스트를 구비하고, 상기 특정 프로세스가 상기 화이트 리스트에 속하지 않는 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 생성하고, 상기 특정 프로세스가 상기 화이트 리스트에 속하는 경우 패스 응답의 상기 콜백 이벤트 응답을 생성하는, 악성 코드 탐지 장치.7. The method according to any one of claims 1 to 6,
Wherein the detection agent comprises:
A whitelist that is a list of allowed processes and generates the callback event response including information of the virtual file if the specific process does not belong to the whitelist, And generates the callback event response of the response.
상기 탐지 에이전트는,
사용자에게 상기 중단한 상기 특정 프로세스의 허용 여부를 질의하고, 허용 응답의 수신시 상기 중단한 상기 특정 프로세스를 상기 화이트 리스트에 등록하는, 악성 코드 탐지 장치.8. The method of claim 7,
Wherein the detection agent comprises:
Inquires the user whether or not the specific process has been suspended, and registers the suspended process in the whitelist upon receiving the permission response.
상기 탐지 에이전트가, 가상 파일을 생성하여 상기 휘발성 저장 매체에 저장하는 단계;
상기 탐지 에이전트가, 특정 프로세스로부터 파일 호출을 수신한 상기 파일 필터 드라이버 모듈로부터 상기 파일 호출에 대한 콜백 이벤트를 수신하는 단계;
상기 탐지 에이전트가, 상기 콜백 이벤트가 상기 가상 파일에 대한 이벤트인 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 상기 파일 필터 드라이버 모듈로 전달하는 단계; 및
상기 탐지 에이전트가, 상기 콜백 이벤트가 상기 가상 파일에 대한 쓰기 또는 삭제인 경우 상기 특정 프로세스의 동작을 중단하는 단계를 포함하는 방법.A method for detecting malicious code in a malicious code detection device including a volatile storage medium, a non-volatile storage medium, a file filter driver module, and a detection agent,
The detection agent generating a virtual file and storing the virtual file in the volatile storage medium;
Receiving, by the detection agent, a callback event for the file call from the file filter driver module that has received the file call from the specific process;
Forwarding the callback event response including the information of the virtual file to the file filter driver module if the callback event is an event for the virtual file; And
And stopping the operation of the specific process if the callback event is a write or delete to the virtual file.
상기 저장하는 단계는,
상기 탐지 에이전트가, 상기 비휘발성 저장 매체에 저장되어 있는 사용자에 의해 만들어진 실제 파일을 이용하여 상기 가상 파일을 생성하는, 방법.10. The method of claim 9,
Wherein the storing step comprises:
Wherein the detection agent generates the virtual file using a physical file created by a user stored on the non-volatile storage medium.
상기 저장하는 단계는,
상기 탐지 에이전트가, 상기 실제 파일에서 샘플링하여 발췌한 데이터와 상기 실제 파일의 헤드 값을 이용하여 상기 가상 파일을 생성하는, 방법.11. The method of claim 10,
Wherein the storing step comprises:
Wherein the detection agent generates the virtual file using data sampled and extracted from the physical file and a head value of the physical file.
상기 저장하는 단계는,
상기 탐지 에이전트가, 상기 가상 파일의 상기 비휘발성 저장 매체에서의 가상의 저장 경로를 상기 휘발성 저장 매체에 저장하는 단계를 포함하고,
상기 전달하는 단계에서,
상기 탐지 에이전트는, 상기 콜백 이벤트가 상기 가상 파일에 대한 이벤트이면서 상기 콜백 이벤트에 포함된 경로 정보에 대응하는 상기 가상의 저장 경로가 존재하는 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 생성하는, 방법.10. The method of claim 9,
Wherein the storing step comprises:
Wherein the detection agent includes storing a virtual storage path of the virtual file in the non-volatile storage medium in the volatile storage medium,
In the delivering step,
The detection agent generates the callback event response including the information of the virtual file when the callback event is an event for the virtual file and the virtual storage path corresponding to the path information included in the callback event exists How to.
상기 저장하는 단계는,
상기 탐지 에이전트가, 상기 가상 파일에 대해 서로 다른 복수의 가상의 저장 경로를 상기 휘발성 저장 매체에 저장하는, 방법.13. The method of claim 12,
Wherein the storing step comprises:
Wherein the detection agent stores a plurality of different virtual storage paths for the virtual file on the volatile storage medium.
상기 전달하는 단계에서,
상기 탐지 에이전트는, 허용된 프로세스들의 리스트인 화이트 리스트를 구비하고, 상기 특정 프로세스가 상기 화이트 리스트에 속하지 않는 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 생성하고, 상기 특정 프로세스가 상기 화이트 리스트에 속하는 경우 패스 응답의 상기 콜백 이벤트 응답을 생성하는, 방법.14. The method according to any one of claims 9 to 13,
In the delivering step,
Wherein the detection agent has a whitelist that is a list of allowed processes and generates the callback event response that includes information of the virtual file if the particular process does not belong to the whitelist, List, the callback event response of the path response.
상기 탐지 에이전트가, 사용자에게 상기 중단한 상기 특정 프로세스의 허용 여부를 질의하고, 허용 응답의 수신시 상기 중단한 상기 특정 프로세스를 상기 화이트 리스트에 등록하는 단계를 더 포함하는, 방법.15. The method of claim 14,
Wherein the detection agent further comprises the step of querying the user whether the suspended process is permitted or not and registering the suspended process on the whitelist upon receipt of the grant response.
가상 파일을 생성하여 상기 휘발성 저장 매체에 저장하는 단계;
특정 프로세스로부터 파일 호출을 수신한 상기 파일 필터 드라이버 모듈로부터 상기 파일 호출에 대한 콜백 이벤트를 수신하는 단계;
상기 콜백 이벤트가 상기 가상 파일에 대한 이벤트인 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 상기 파일 필터 드라이버 모듈로 전달하는 단계; 및
상기 콜백 이벤트가 상기 가상 파일에 대한 쓰기 또는 삭제인 경우 상기 특정 프로세스의 동작을 중단하는 단계를 실행시키기 위하여 매체에 저장된 컴퓨터프로그램.Volatile storage medium, a non-volatile storage medium, and a file filter driver module,
Generating a virtual file and storing the virtual file in the volatile storage medium;
Receiving a callback event for the file call from the file filter driver module that has received the file call from the specific process;
Forwarding the callback event response including information of the virtual file to the file filter driver module if the callback event is an event for the virtual file; And
And stopping the operation of the specific process when the callback event is a write or delete to the virtual file.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160050792A KR101625643B1 (en) | 2016-04-26 | 2016-04-26 | Apparatus and method for detecting malicious code based on volatile virtual file |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160050792A KR101625643B1 (en) | 2016-04-26 | 2016-04-26 | Apparatus and method for detecting malicious code based on volatile virtual file |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101625643B1 true KR101625643B1 (en) | 2016-05-30 |
Family
ID=57124822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160050792A KR101625643B1 (en) | 2016-04-26 | 2016-04-26 | Apparatus and method for detecting malicious code based on volatile virtual file |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101625643B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018043885A1 (en) * | 2016-09-02 | 2018-03-08 | 주식회사 안랩 | System for detecting malicious code and method for detecting malicious code |
KR102322408B1 (en) * | 2020-12-07 | 2021-11-05 | 주식회사 샌즈랩 | IoT Device Where Server Resource Detects and Removes Malware |
-
2016
- 2016-04-26 KR KR1020160050792A patent/KR101625643B1/en active IP Right Grant
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018043885A1 (en) * | 2016-09-02 | 2018-03-08 | 주식회사 안랩 | System for detecting malicious code and method for detecting malicious code |
KR101857575B1 (en) * | 2016-09-02 | 2018-05-14 | 주식회사 안랩 | Malicious code detection system and malicious code detecting method |
KR102322408B1 (en) * | 2020-12-07 | 2021-11-05 | 주식회사 샌즈랩 | IoT Device Where Server Resource Detects and Removes Malware |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8224796B1 (en) | Systems and methods for preventing data loss on external devices | |
US9773102B2 (en) | Selective file access for applications | |
JP7027425B2 (en) | Systems and methods for detecting cryptoware | |
JP4629796B2 (en) | File conversion in a limited process | |
US9697375B2 (en) | Fast data protection using dual file systems | |
JP4931255B2 (en) | Virtualized file system | |
EP2811404B1 (en) | Virtual desktop implementation method, device and system | |
US10509905B2 (en) | Ransomware mitigation system | |
US8281410B1 (en) | Methods and systems for providing resource-access information | |
US8650166B1 (en) | Systems and methods for classifying files | |
US20190354705A1 (en) | Multiple containers assigned to an application | |
US9418232B1 (en) | Providing data loss prevention for copying data to unauthorized media | |
JP2006134307A (en) | System and method for aggregating knowledge base of antivirus software applications | |
JP2012133620A (en) | Information processing apparatus, data duplication method, program, and recording medium | |
US10678917B1 (en) | Systems and methods for evaluating unfamiliar executables | |
KR101625643B1 (en) | Apparatus and method for detecting malicious code based on volatile virtual file | |
US20070113045A1 (en) | System and method for tracking changed LBAs on disk drive | |
US20210133316A1 (en) | Providing security features in write filter environments | |
US9021389B1 (en) | Systems and methods for end-user initiated data-loss-prevention content analysis | |
US9646157B1 (en) | Systems and methods for identifying repackaged files | |
CN116611066B (en) | Lesovirus identification method, device, equipment and storage medium | |
US20200349269A1 (en) | Computer-implemented methods and system for preventing unauthorized file modification by malicious software and the like | |
CN110750162B (en) | Input method and device | |
JP5539833B2 (en) | Information processing apparatus and control method therefor, computer program, and computer-readable storage medium | |
US9191279B1 (en) | Systems and methods for data loss prevention |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190522 Year of fee payment: 4 |