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 PDF

Info

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
Application number
KR1020160050792A
Other languages
Korean (ko)
Inventor
오순근
김성완
이형택
Original Assignee
주식회사 이노티움
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 이노티움 filed Critical 주식회사 이노티움
Priority to KR1020160050792A priority Critical patent/KR101625643B1/en
Application granted granted Critical
Publication of KR101625643B1 publication Critical patent/KR101625643B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual 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

Disclosed are an apparatus and a method for detecting a malicious code, capable of detecting the malicious code by attracting the code while not excessively occupying a storage space of a nonvolatile storage medium such as a hard disk. The malicious code detection apparatus having a volatile storage medium and the nonvolatile storage medium according to an aspect of the present invention includes: a file filter driver module for generating, when an file invocation is received from a particular process, a callback event with respect to the file invocation, and transmitting a file processing result based on a callback event response in accordance with the callback event to the particular process; and a detection agent for generating and storing a virtual file in the volatile storage medium, and for generating the callback event response having information of the virtual file in a case that the callback event is an event for the virtual file, wherein the detection agent aborts operation of the particular process in the case that the callback event is writing or deletion with respect to the virtual file.

Description

휘발성 가상 파일 기반의 악성 코드 탐지 장치 및 방법{APPARATUS AND METHOD FOR DETECTING MALICIOUS CODE BASED ON VOLATILE VIRTUAL FILE}[0001] APPARATUS AND METHOD FOR DETECTING MALICIOUS CODE BASED ON VOLATILE VIRTUAL FILE [0002]

본 발명은 컴퓨팅 시스템에서의 악성 코드 탐지 기술에 관한 것으로, 보다 구체적으로 휘발성 가상 파일 기반의 악성 코드 탐지 장치 및 방법에 관한 것이다.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.

국내등록특허 제10-0945247호(2010.03.03. 공고)Korean Registered Patent No. 10-0945247 (Announcement of Mar. 3, 2010) 국내등록특허 제10-1327740호(2013.11.11. 공고)Korean Registered Patent No. 10-1327740 (issued November 11, 2013)

본 발명은 상술한 문제점을 해결하기 위해 제안된 것으로, 하드디스크와 같은 비휘발성 저장 매체의 저장 공간을 과도하게 점유하지 않으면서 악성 코드를 유인하여 탐지할 수 있도록 하는 악성 코드 탐지 장치 및 방법을 제공하는데 그 목적이 있다.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 non-volatile storage medium 120, and an operating system (OS) 100 installed in non-volatile storage medium 120 as a software component. Such a malicious code detection device may include, but is not limited to, a personal computer, a portable communication terminal such as a smart phone, or a computing system such as a server.

중앙 처리 장치는 휘발성 저장 매체(110) 또는 비휘발성 저장 매체(120)에 저장된 명령어들을 수행하도록 구성된 프로세서로서, 예를 들어, 검색된 명령어들을 이용하여, 컴포넌트 간의 입력 및 출력 데이터의 수신과 조작을 제어할 수 있다. 네트워크 인터페이스 장치는 이더넷 통신 회로 및 RF 회로를 포함할 수 있다. 이더넷 통신 회로는 유선 통신을 수행하고, RF 회로는 전자파를 송수신한다. 입출력 장치는, 마우스, 키보드, 디스플레이, 터치 디스플레이 등을 포함하여 사용자의 명령을 입력받고 데이터를 출력한다. The central processing unit is a processor configured to execute instructions stored in the volatile storage medium 110 or the non-volatile storage medium 120 and may be configured to control the reception and manipulation of input and output data between components, for example, using retrieved instructions can do. The network interface device may include an Ethernet communication circuit and an RF circuit. The Ethernet communication circuit performs wired communication, and the RF circuit transmits and receives electromagnetic waves. The input / output device receives a command of a user, including a mouse, a keyboard, a display, a touch display, and the like, and outputs data.

운영 체제(100)는 파일 시스템에 대한 정보를 가지고 있으면서 각종 응용 프로그램(130)들이 요청하는 파일에 대한 각종 처리들을 보조하며 응용 프로그램(130)이 요청한 파일에 대해 시스템 상태에 따라 사용을 허가하는 역할을 하고 있다. 여기서 파일은 폴더를 포함하는 것으로 이해될 수 있다. 모든 응용 프로그램(130)은 이러한 운영 체제의 파일 정책에 따라 파일을 제어하고 동작하는 구조를 가진다. 응용 프로그램(130)은 사용자 명령 또는 필요에 따라 파일 처리에 관한 함수를 호출한다. 파일 처리는 대표적으로 파일 접근(open), 파일 읽기(read), 파일 쓰기(write), 파일 닫기(close), 파일 삭제(delete) 등을 포함한다. 읽기/쓰기/닫기/삭제 등은 파일 접근(open)을 기본으로 하여 이루어진다. 응용 프로그램(130)의 파일 처리에 의해 발생된 함수는 운영 체제(100)의 커널 모드 영역에서 처리된다. 운영 체제(100)는 일반적인 컴퓨터 프로그램이 실행되는 사용자 모드(User mode) 영역과, 하드웨어 제어와 같이 제한적이고 특수한 작업을 수행하는 커널 모드(Kernel) 영역으로 구분된다. The operating system 100 has information on the file system, assists various processes for the files requested by the application programs 130, and permits the use of the files requested by the application programs 130 according to the system state . Here, the file can be understood to include a folder. All application programs 130 have a structure to control and operate files according to the file policy of such operating system. The application program 130 calls a function related to file processing according to a user command or a necessity. File processing typically includes file open, file read, file write, close, delete, etc. Read / write / close / delete are done based on file access (open). The function generated by the file processing of the application program 130 is processed in the kernel mode area of the operating system 100. The operating system 100 is divided into a user mode area in which a general computer program is executed and a kernel area in which a limited and specific operation is performed such as hardware control.

사용자 모드 영역에서는 탐색기나 워드 등과 같은 적어도 하나 이상의 응용 프로그램(130)과 본 발명에 따른 악성 코드를 탐지하는 탐지 에이전트(140)가 실행된다. 그리고 사용자 모드 영역에는 파일 필터 드라이버 모듈(150)에 포함된 필터 드라이버 중 사용자 모드 파일 필터 드라이버(151)가 설치된다. 사용자 모드 파일 필터 드라이버(151)는 탐지 에이전트(140)의 설치시 함께 설치되는 것이 바람직하다. 사용자 모드 파일 필터 드라이버(151)는, 응용 프로그램(130)에서 파일 처리를 위한 함수가 호출될 때 커널 모드 영역의 커널 모드 파일 필터 드라이버(152)로부터 콜백 이벤트를 수신한다. 여기서 콜백 이벤트에는 파일을 호출한 프로세스, 즉 응용 프로그램(130)의 정보와 호출 대상 파일의 정보 그리고 파일 처리의 정보를 포함한다. 파일의 정보는 예컨대 해당 파일이 저장되어 있는 저장 경로일 수 있고, 또는 해당 파일의 파일명일 수도 있고, 또는 특정 확장자의 정보일 수도 있다. 그리고 파일 처리의 정보는, 파일 접근(open), 파일 읽기(read), 파일 쓰기(write), 파일 닫기(close), 파일 삭제(delete) 등을 포함한다.In the user mode area, at least one application program 130 such as a searcher, a word or the like and a detection agent 140 for detecting a malicious code according to the present invention are executed. In the user mode area, a user mode file filter driver 151 among the filter drivers included in the file filter driver module 150 is installed. The user mode file filter driver 151 is preferably installed at the time of installation of the detection agent 140. The user mode file filter driver 151 receives a callback event from the kernel mode file filter driver 152 in the kernel mode area when a function for file processing is called in the application program 130. [ Here, the callback event includes information of the process of calling the file, that is, information of the application program 130, information of the file to be called, and information of file processing. The information of the file may be, for example, a storage path where the file is stored, a file name of the file, or information of a specific extension. The information of the file processing includes a file open, a file read, a file write, a file close, and a file delete.

커널 모드 영역에서는, 응용 프로그램(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 application program 130, a callback event is transmitted to the user mode file filter driver 151 in the user mode area, a callback event response is received, The kernel mode file filter driver 152 that transfers the file processing result to the application program 130 based on the received callback event response is installed. When the callback event response is a pass response, the kernel mode file filter driver 152 delivers a file request to the file system 160 according to a general file processing procedure, receives a processing result from the file system 160, To the program (130). The file system 160 in the kernel mode area collectively manages files stored in the nonvolatile storage medium 120. For example, creating a file, accessing a file, reading a file, writing a file, closing a file, deleting a file, and the like.

비휘발성 저장 매체(120)는 전원이 끊어진 상태에서도 데이터를 유지하고 있어 전원이 공급되면 다시 저장된 데이터를 사용할 수 있는 저장 매체로서, 예컨대 CD, 읽기용 기억 장치(ROM), 하드디스크와 플래쉬 디스크(flash disks) 등을 포함한다. 휘발성 저장 매체(110)는, 지속적인 전력 공급을 요구하지 않는 상기 비휘발성 저장 매체(120)와는 달리 저장된 데이터를 유지하기 위해 전원을 요구하는 메모리로서, 임시 메모리라고도 하고, 동적 램(DRAM), 정적 램(SRAM)을 포함한 랜덤 액세스 메모리(RAM)가 대표적이다. The nonvolatile storage medium 120 is a storage medium that can store data even when the power is off and can use the stored data again when power is supplied. Examples of the storage medium include a CD, a read only memory (ROM), a hard disk and a flash disk flash disks). Volatile storage medium 110 is a memory that requires power to maintain stored data unlike the non-volatile storage medium 120 that does not require continuous power supply, and may be referred to as temporary memory, dynamic RAM (DRAM) A random access memory (RAM) including a random access memory (SRAM) is a typical example.

본 실시예에 있어서, 탐지 에이전트(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 detection agent 140 generates a volatile virtual file at the time of execution in order to detect malicious code and stores it in the nonvolatile storage medium 110 ). That is, the virtual file does not physically exist in the nonvolatile storage medium 120 such as a hard disk. Therefore, when the malicious code detection device is a computer, users can not recognize that the corresponding virtual file exists through the application 130 such as a searcher or a word. The detection agent 140 having generated the virtual file on the volatile storage medium 110 has all the response authority (open / read / write / close / delete, etc.) for the virtual file and the user mode file filter driver 151 (Open / read / write / close / delete, etc.) of other processes accessing the corresponding virtual file, that is, the application programs 130, and detects a malicious code. A plurality of virtual files can be created, and each virtual file can have a different file name or file data.

탐지 에이전트(140)는 가상 파일을 생성할 때 악성 코드 탐지 장치의 비휘발성 저장 매체(120)에 실제 저장된 사용자가 작성하고 만들어 낸 파일, 예를 들어 오피스 파일(dox, docx, xls, ppt 등) 등의 문서 파일이나 그래픽 파일, 또는 이미지 파일(jpeg, png 등) 혹은 압축 파일(zip, rar 등) 등을 이용하여 가상 파일을 생성한다. 예컨대 탐지 에이전트(140)는 실제 저장된 사용자가 작성하고 만들어 낸 파일에서 데이터를 샘플링하여 발췌한 후 해당 파일의 헤드 값을 가지고 와서 가상 파일을 생성할 수 있다. 이와 같이 하는 이유는, 악성 코드가 가상 파일을 실제 사용자가 만들어 낸 실제 파일인 것처럼 위장하기 위한 것이다. 그리고 휘발성의 가상 파일을 생성하여 휘발성 저장 매체(110)에 저장하는 이유는, 실제 파일을 만들어 비휘발성 저장 매체(120)에 저장하면 실제 파일은 비휘발성 저장 매체(120)의 I/O(input/output)에 무리를 주며 그 실제 파일을 일일이 찾아서 삭제하여 정리해야 하는 문제가 있기 때문이다.The detection agent 140 is a file created and created by a user actually stored in the nonvolatile storage medium 120 of the malicious code detection apparatus when creating a virtual file, for example, an office file (dox, docx, xls, ppt, (Jpeg, png, etc.) or a compressed file (zip, rar, or the like). For example, the detection agent 140 can extract a data from a file created and created by a user who is actually stored, and extract a head value of the file to generate a virtual file. The reason for doing this is that the malicious code masquerades as a virtual file created by an actual user. The reason for storing the volatile virtual file in the volatile storage medium 110 is that when the actual file is created and stored in the nonvolatile storage medium 120, / output), and it is necessary to find and delete the actual file.

탐지 에이전트(140)는 가상 파일을 생성하여 휘발성 저장 매체(110)에 저장하며 해당 가상 파일의 가상 저장 경로 정보도 함께 저장한다. 여기서 가상 저장 경로 정보는, 비휘발성 저장 매체(120)에서의 파일 위치 정보로서, 비휘발성 저장 매체(120)에 실제로 저장되지 않는 가상 파일이 비휘발성 저장 매체(120)의 특정 경로(예, 폴더)에 저장되어 있는 것으로 가정한 저장 경로 정보를 의미한다. 이러한 가상 저장 경로 정보는 적어도 하나 이상일 수 있다. 예를 들어, C 드라이브의 Program Files 폴더와, C 드라이브의 Windows 폴더 등과 같이 해당 가상 파일의 가상 저장 경로 정보를 복수 개 저장할 수 있다. 가상 저장 경로 정보를 많이 설정할수록 악성 코드의 탐지 확률이 높아진다. 악성 코드가 어느 저장 경로로 접근하여 파일을 변조, 삭제 등을 할지 모르기 때문에 최대한 여러 곳에 가상 파일이 저장되어 있는 것처럼 설정할 필요가 있다.The detection agent 140 generates a virtual file, stores it in the volatile storage medium 110, and stores the virtual storage path information of the virtual file together with the virtual file. Here, the virtual storage path information is file position information in the non-volatile storage medium 120, and a virtual file that is not actually stored in the non-volatile storage medium 120 is stored in a specific path of the non-volatile storage medium 120 ) Of the storage path information. Such virtual storage path information may be at least one or more. For example, a plurality of virtual storage path information of the corresponding virtual file, such as the Program Files folder of the C drive and the Windows folder of the C drive, can be stored. The more the virtual storage path information is set, the higher the detection probability of malicious code is. Since the malicious code may access the storage path to modify or delete the file, it is necessary to set the virtual file as if it is stored in as many places as possible.

탐지 에이전트(140)는 안전한 프로세스(즉 응용 프로그램(130))의 리스트인 화이트 리스트를 저장하고 관리한다. 탐지 에이전트(140)는 입출력 장치를 통해 사용자로부터 화이트 리스트를 설정받을 수 있고, 또는 관리 서버와 통신을 하여 관리 서버로부터 화이트 리스트를 수신하여 저장하고 주기적으로 업데이트할 수 있다. 임의의 프로세스, 예컨대 응용 프로그램(130)에서 파일 처리를 위한 함수가 호출될 때, 탐지 에이전트(140)는 사용자 모드 파일 필터 드라이버(151)로부터 콜백 이벤트를 수신한다. 콜백 이벤트는 파일을 호출한 프로세스, 호출 대상 파일의 정보 그리고 파일 처리의 정보를 포함한다. The detection agent 140 stores and manages a whitelist that is a list of secure processes (i.e., applications 130). The detection agent 140 can receive a white list from the user through the input / output device or communicate with the management server to receive, store, and periodically update the whitelist from the management server. The detection agent 140 receives a callback event from the user mode file filter driver 151 when a function for file processing in an arbitrary process, for example, application program 130 is called. A callback event contains information about the process that invoked the file, information about the file to be invoked, and file processing.

탐지 에이전트(140)는, 파일을 호출한 프로세스가 화이트 리스트에 속하는 경우 가상 파일에 대한 처리 응답을 하지 않고 패스 응답을 회신한다. 패스 응답은 무시하는 것으로 가상 파일이 존재하지 않는 것처럼 처리하는 것이다. 탐지 에이전트(140)는, 파일을 호출한 프로세스가 화이트 리스트에 속하지 않는 경우 해당 가상 파일에 대한 처리 응답을 회신한다. 여기서 처리는, 파일 접근(open), 파일 읽기(read), 파일 쓰기(write), 파일 닫기(close), 파일 삭제(delete) 등을 포함한다. 예컨대, 임의의 프로세스가 가상 파일이 저장된 폴더를 오픈하는 경우, 탐지 에이전트(140)는 가상 파일의 파일명을 해당 임의의 프로세스로 전달한다. 또는 임의의 프로세스가 가상 파일에 접근(open)하여 읽기(read)하는 경우, 탐지 에이전트(140)는 가상 파일의 내용을 해당 임의의 프로세스로 전달한다.The detection agent 140 returns a path response without performing a processing response to the virtual file when the process invoking the file belongs to the whitelist. Ignore the path response and treat it as if the virtual file does not exist. The detection agent 140 returns a processing response to the virtual file when the process calling the file does not belong to the whitelist. Here, the processing includes opening a file, reading a file, writing a file, closing a file, deleting a file, and the like. For example, when an arbitrary process opens a folder in which a virtual file is stored, the detection agent 140 delivers the file name of the virtual file to the corresponding arbitrary process. Or when an arbitrary process opens and reads a virtual file, the detection agent 140 delivers the contents of the virtual file to the corresponding arbitrary process.

탐지 에이전트(140)는, 임의의 프로세스가 가상 파일에 접근하여 변조(즉, 쓰기)하거나 삭제(delete)하는 경우, 해당 프로세스는 악성 코드인 것으로 의심하고 입출력 장치를 통해 사용자에게 사용자가 허용한 프로세스인지 확인하는 질의를 표시하고, 사용자로부터 미허용 프로세스라는 응답이 수신되면 해당 프로세스의 동작을 중단시키거나 해당 프로세스를 삭제하고, 사용자로부터 허용 프로세스라는 응답이 수신되면 해당 프로세스를 화이트 리스트에 등록한다. 탐지 에이전트(140)는 사용자로부터 미허용 프로세스라는 응답이 수신된 프로세스를 블랙 리스트로 관리하여 블랙 리스트에 등록된 프로세스로부터 가상 파일에 대한 접근이 있는 경우 해당 프로세스의 동작을 중단시키거나 삭제할 수 있다.When a certain process accesses a virtual file and modulates (i.e., writes) or deletes an arbitrary process, the detection agent 140 suspends the process to the user through the input / output device When a response of the unauthorized process is received from the user, the operation of the corresponding process is stopped or the corresponding process is deleted. When a response of the permission process is received from the user, the process is registered in the whitelist. The detection agent 140 manages a process in which a response of the unauthorized process is received from the user as a black list, and can stop or delete the operation of the corresponding process when there is access to the virtual file from the process registered in the black list.

도 1을 참조한 실시예에서 탐지 에이전트(140)와 사용자 모드 파일 필터 드라이버(151)는 사용자 모드 영역에 설치되어 동작하는 것으로 설명하지만 여기에 제한되는 것은 아니고 탐지 에이전트(140) 및 사용자 모드 파일 필터 드라이버(151)는 미니 필터의 형태로 구현되어 커널 모드 영역에 설치되어 전술한 동작할 수도 있다. 1, the detection agent 140 and the user mode file filter driver 151 are described as being installed and operating in the user mode domain, but are not limited to, the detection agent 140 and the user mode file filter driver (151) may be implemented in the form of a mini-filter and installed in the kernel mode region to operate as described above.

도 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 detection agent 140 of the malicious code detection apparatus is executed according to the user's input or automatically (S201). In the case of automatic execution, for example, the malicious code detection device is automatically powered on when it is booted. The detection agent 140 stores a whitelist which is a list of safe processes (S203). For example, the detection agent 140 may access the management server through the network interface device of the malicious code detection device and receive the whitelist from the management server. Or the detection agent 140 may select a safe process from the user and store the whitelist.

탐지 에이전트(140)는 휘발성의 가상 파일(virtual file)을 생성하고(S205),그 생성한 가상 파일의 가상 저장 경로를 결정한다(S207). 그리고 탐지 에이전트(140)는 가상 파일과 가상 저장 경로 정보를 휘발성 저장 매체(110)에 저장한다(S209). 따라서, 가상 파일은 하드디스크와 같은 비휘발성 저장 매체(120)에 물리적으로 실제 존재하지 않게 되고, 악성 코드 탐지 장치가 컴퓨터라고 할 때 사용자들은 탐색기나 워드와 같은 응용 프로그램(130)을 통해 해당 가상 파일이 있다는 것을 인지할 수 없다. The detection agent 140 creates a volatile virtual file (S205), and determines a virtual storage path of the generated virtual file (S207). Then, the detection agent 140 stores the virtual file and the virtual storage path information in the volatile storage medium 110 (S209). Accordingly, when the virtual file is physically absent from the nonvolatile storage medium 120 such as a hard disk and the malicious code detection apparatus is a computer, users can access the corresponding virtual program via an application program 130 such as an explorer or a word I can not recognize that there is a file.

탐지 에이전트(140)는 가상 파일을 생성할 때 악성 코드 탐지 장치의 비휘발성 저장 매체(120)에 실제 저장된 사용자가 작성하고 만들어 낸 파일, 예를 들어 오피스 파일(dox, docx, xls, ppt 등) 등의 문서 파일이나 그래픽 파일, 또는 이미지 파일(jpeg, png 등) 혹은 압축 파일(zip, rar 등) 등을 이용하여 가상 파일을 생성한다. 예컨대 탐지 에이전트(140)는 실제 저장된 사용자가 작성하고 만들어 낸 파일에서 데이터를 샘플링하여 발췌한 후 해당 파일의 헤드 값을 가지고 와서 가상 파일을 생성할 수 있다. 가상 저장 경로 정보는, 비휘발성 저장 매체(120)에서의 파일 위치 정보로서, 비휘발성 저장 매체(120)에 실제로 저장되지 않는 가상 파일이 비휘발성 저장 매체(120)의 특정 경로(예, 폴더)에 저장되어 있는 것으로 가정한 저장 경로 정보를 의미한다. 이러한 가상 저장 경로 정보는 적어도 하나 이상일 수 있다. 예를 들어, C 드라이브의 Program Files 폴더와, C 드라이브의 Windows 폴더 등과 같이 해당 가상 파일의 가상 저장 경로 정보를 복수 개 저장할 수 있다. 가상 저장 경로 정보를 많이 설정할수록 악성 코드의 탐지 확률이 높아진다. 악성 코드가 어느 저장 경로로 접근하여 파일을 변조, 삭제 등을 할지 모르기 때문에 최대한 여러 곳에 가상 파일이 저장되어 있는 것처럼 설정할 필요가 있다. 그리고 탐지 에이전트(140)는 가상 파일을 복수 개 생성할 수 있고 각 가상 파일은 서로 다른 파일명, 또는 파일 데이터를 가질 수 있으며, 각 가상 파일마다 적어도 하나 이상의 가상 경로 정보를 설정할 수 있다. The detection agent 140 is a file created and created by a user actually stored in the nonvolatile storage medium 120 of the malicious code detection apparatus when creating a virtual file, for example, an office file (dox, docx, xls, ppt, (Jpeg, png, etc.) or a compressed file (zip, rar, or the like). For example, the detection agent 140 can extract a data from a file created and created by a user who is actually stored, and extract a head value of the file to generate a virtual file. The virtual storage path information is file position information in the nonvolatile storage medium 120. A virtual file that is not actually stored in the nonvolatile storage medium 120 is stored in a specific path (e.g., a folder) of the nonvolatile storage medium 120, Quot; storage path information " Such virtual storage path information may be at least one or more. For example, a plurality of virtual storage path information of the corresponding virtual file, such as the Program Files folder of the C drive and the Windows folder of the C drive, can be stored. The more the virtual storage path information is set, the higher the detection probability of malicious code is. Since the malicious code may access the storage path to modify or delete the file, it is necessary to set the virtual file as if it is stored in as many places as possible. The detection agent 140 may generate a plurality of virtual files, each virtual file may have a different file name or file data, and at least one virtual path information may be set for each virtual file.

이와 같이 가상 파일 및 가상 저장 경로 정보를 저장한 후, 특정 프로세스, 즉 응용 프로그램(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 application program 130 to the kernel mode file filter driver 152 in the kernel mode area in the file filter driver module 150 (S211). Here, a specific file call refers to an operation of accessing and reading a file in a specific folder, an operation of opening a specific folder, an operation of writing to a file, or a file deleting operation. Accordingly, the kernel mode file filter driver 152 transmits a callback event to the user mode file filter driver 151 in the user mode area (S213). Here, the callback event includes information of the process of calling the file, that is, information of the application program 130, information of the file to be called, and information of file processing. The information of the file may be, for example, a folder path where the file is located, a file name of the file, or information of a specific extension. The information of the file processing includes a file open, a file read, a file write, a file close, and a file delete.

상기 사용자 모드 파일 필터 드라이버(151)는 콜백 이벤트를 탐지 에이전트(140)로 전달한다(S215). 탐지 에이전트(140)는 콜백 이벤트에 포함된 정보와 휘발성 저장 매체(110)에 저장된 가상 파일 및 가상 저장 경로 정보를 비교하여 파일 호출이 가상 파일에 대한 호출인지 확인한다(S217). 가상 파일에 대한 호출인 경우, 탐지 에이전트(140)는 파일 호출을 한 프로세스가 화이트 리스트에 속하는 프로세스인지 확인한다(S219). The user mode file filter driver 151 transfers the callback event to the detection agent 140 (S215). The detection agent 140 compares the information included in the callback event with the virtual file and the virtual storage path information stored in the volatile storage medium 110 to determine whether the file call is a call to the virtual file (S217). In the case of a call to the virtual file, the detection agent 140 determines whether the process making the file call is a process belonging to the whitelist (S219).

탐지 에이전트(140)는 가상 파일에 대한 호출이 아닌 경우, 또는 가상 파일에 대한 호출이지만 화이트 리스트에 속하는 프로세스에 의한 가상 파일 호출인 경우, 사용자 모드 파일 필터 드라이버(151)로 패스 응답의 콜백 이벤트 응답을 전달하고, 사용자 모드 파일 필터 드라이버(151)는 커널 모드 파일 필터 드라이버(152)로 패스 응답의 콜백 이벤트 응답을 전달한다(S221, S223). 이에 따라 커널 모드 파일 필터 드라이버(152)는, 일반적인 파일 처리 과정에 따라 파일 시스템(160)으로 파일 요청을 전달하고 파일 시스템(160)으로부터 처리 결과를 받아 응용 프로그램(130)으로 전달한다(S225).If the detection agent 140 is not a call to the virtual file, or if the call to the virtual file is a virtual file call by a process belonging to the whitelist, then the callback event response of the path response to the user mode file filter driver 151 And the user mode file filter driver 151 transfers a callback event response of the path response to the kernel mode file filter driver 152 (S221, S223). The kernel mode file filter driver 152 transfers the file request to the file system 160 according to a general file processing procedure and receives the processing result from the file system 160 and transfers the processing result to the application program 130 (S225) .

한편, 탐지 에이전트(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 detection agent 140 confirms whether the call is a modulation (e.g., writing) (S227). If not, the detection agent 140 forwards the callback event response of the processing response to the file call to the user mode file filter driver 151 (S229). The user mode file filter driver 151 then passes the callback event response of the process response to the kernel mode file filter driver 152 and the kernel mode file filter driver 152 processes the file calling process, (S231, S233). For example, when a process opens a folder of a non-volatile storage medium 120 to which a virtual file is virtually matched, the detection agent 140 delivers the file name of the virtual file, The detection agent 140 transmits the data of the virtual file. The reason for doing this is to induce the malicious code to recognize the virtual file as an actual file and to modify or delete the file.

한편, 상기 단계 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 detection agent 140 suspends the process calling the corresponding virtual file as a malicious code and stops the process (step S235) . The detection agent 140 displays a query to the user to confirm whether the process is allowed by the user through the input / output device. When a response of the unauthorized process is received from the user, the detection agent 140 ends the operation of the corresponding process, deletes the process, When a response of the permission process is received from the user, the process is registered in the whitelist (S237). The detection agent 140 manages a process in which a response of the unauthorized process is received from the user as a black list, and can stop or delete the operation of the corresponding process when there is access to the virtual file from the process registered in the black list.

이상에서 설명한 바와 같이 본 발명의 실시예에 따르면 악성 코드를 탐지하기 위한 휘발성 가상 파일을 생성하여 휘발성 저장 매체(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 volatile storage medium 110 to use and store the actual file in the nonvolatile storage medium 120, Make it easy to organize your files. In case of the volatile virtual file, when the detection agent 140 is terminated, it is deleted together with the volatile storage medium 110, so that the user does not need to directly delete the file.

특히, 본 발명의 실시예에 따르면 비휘발성 저장 매체(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 non-volatile storage medium 120, thereby allowing the malicious code to recognize the virtual file as an actual file, have.

또한, 본 발명의 실시예에 따르면 실제 파일을 여러 개 만들어 비휘발성 저장 매체(120)에 저장하지 않고 가상 저장 경로 정보를 휘발성 저장 매체(110)에 가상 파일과 함께 저장하여 이용함으로써 비휘발성 저장 매체(120)의 저장 공간을 점유하지 않으면서 악성 코드의 탐지율을 높일 수 있다. According to the embodiment of the present invention, virtual storage path information is stored in the volatile storage medium 110 together with a virtual file without using a plurality of actual files and stored in the non-volatile storage medium 120, The detection rate of the malicious code can be increased without occupying the storage space of the malicious code.

또한, 본 발명의 실시예에 따르면 화이트 리스트를 이용하여 안전한 프로세스에 대해서는 가상 파일의 처리 응답을 전송하지 않도록 하여 탐지 에이전트(140)의 동작 로드를 줄이면서 사용자의 혼란을 줄일 수 있다. In addition, according to the embodiment of the present invention, it is possible to reduce the operation load of the detection agent 140 and reduce the confusion of the user by preventing the process response of the virtual file from being transmitted to the secure process using the whitelist.

본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.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.
제 1 항에 있어서,
상기 탐지 에이전트는,
상기 비휘발성 저장 매체에 저장되어 있는 사용자에 의해 만들어진 실제 파일을 이용하여 상기 가상 파일을 생성하는, 악성 코드 탐지 장치.
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.
제 2 항에 있어서,
상기 탐지 에이전트는,
상기 실제 파일에서 샘플링하여 발췌한 데이터와 상기 실제 파일의 헤드 값을 이용하여 상기 가상 파일을 생성하는, 악성 코드 탐지 장치.
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.
제 1 항에 있어서,
상기 탐지 에이전트는,
상기 가상 파일의 상기 비휘발성 저장 매체에서의 가상의 저장 경로를 상기 휘발성 저장 매체에 저장하고,
상기 콜백 이벤트가 상기 가상 파일에 대한 이벤트이면서 상기 콜백 이벤트에 포함된 경로 정보에 대응하는 상기 가상의 저장 경로가 존재하는 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 생성하는, 악성 코드 탐지 장치.
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.
제 4 항에 있어서,
상기 탐지 에이전트는,
상기 가상 파일에 대해 서로 다른 복수의 가상의 저장 경로를 상기 휘발성 저장 매체에 저장하는, 악성 코드 탐지 장치.
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.
제 1 항에 있어서,
상기 파일 필터 드라이버 모듈은,
상기 특정 프로세스로부터 파일 호출 수신시, 상기 파일 호출에 대한 콜백 이벤트를 생성하고, 콜백 이벤트 응답에 기초한 파일 처리 결과를 상기 특정 프로세스로 전달하는 커널 모드 파일 필터 드라이버; 및
상기 커널 모드 파일 필터 드라이버로부터 상기 콜백 이벤트를 수신하여 상기 탐지 에이전트로 전달하고, 상기 탐지 에이전트로부터 상기 콜백 이벤트 응답을 수신하여 상기 커널 모드 파일 필터 드라이버로 전달하는 사용자 모드 파일 필터 드라이버를 포함하는, 악성 코드 탐지 장치.
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.
제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
상기 탐지 에이전트는,
허용된 프로세스들의 리스트인 화이트 리스트를 구비하고, 상기 특정 프로세스가 상기 화이트 리스트에 속하지 않는 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 생성하고, 상기 특정 프로세스가 상기 화이트 리스트에 속하는 경우 패스 응답의 상기 콜백 이벤트 응답을 생성하는, 악성 코드 탐지 장치.
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.
제 7 항에 있어서,
상기 탐지 에이전트는,
사용자에게 상기 중단한 상기 특정 프로세스의 허용 여부를 질의하고, 허용 응답의 수신시 상기 중단한 상기 특정 프로세스를 상기 화이트 리스트에 등록하는, 악성 코드 탐지 장치.
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.
제 9 항에 있어서,
상기 저장하는 단계는,
상기 탐지 에이전트가, 상기 비휘발성 저장 매체에 저장되어 있는 사용자에 의해 만들어진 실제 파일을 이용하여 상기 가상 파일을 생성하는, 방법.
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.
제 10 항에 있어서,
상기 저장하는 단계는,
상기 탐지 에이전트가, 상기 실제 파일에서 샘플링하여 발췌한 데이터와 상기 실제 파일의 헤드 값을 이용하여 상기 가상 파일을 생성하는, 방법.
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.
제 9 항에 있어서,
상기 저장하는 단계는,
상기 탐지 에이전트가, 상기 가상 파일의 상기 비휘발성 저장 매체에서의 가상의 저장 경로를 상기 휘발성 저장 매체에 저장하는 단계를 포함하고,
상기 전달하는 단계에서,
상기 탐지 에이전트는, 상기 콜백 이벤트가 상기 가상 파일에 대한 이벤트이면서 상기 콜백 이벤트에 포함된 경로 정보에 대응하는 상기 가상의 저장 경로가 존재하는 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 생성하는, 방법.
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.
제 12 항에 있어서,
상기 저장하는 단계는,
상기 탐지 에이전트가, 상기 가상 파일에 대해 서로 다른 복수의 가상의 저장 경로를 상기 휘발성 저장 매체에 저장하는, 방법.
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.
제 9 항 내지 제 13 항 중 어느 한 항에 있어서,
상기 전달하는 단계에서,
상기 탐지 에이전트는, 허용된 프로세스들의 리스트인 화이트 리스트를 구비하고, 상기 특정 프로세스가 상기 화이트 리스트에 속하지 않는 경우 상기 가상 파일의 정보를 포함하는 상기 콜백 이벤트 응답을 생성하고, 상기 특정 프로세스가 상기 화이트 리스트에 속하는 경우 패스 응답의 상기 콜백 이벤트 응답을 생성하는, 방법.
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.
제 14 항에 있어서,
상기 탐지 에이전트가, 사용자에게 상기 중단한 상기 특정 프로세스의 허용 여부를 질의하고, 허용 응답의 수신시 상기 중단한 상기 특정 프로세스를 상기 화이트 리스트에 등록하는 단계를 더 포함하는, 방법.
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.
KR1020160050792A 2016-04-26 2016-04-26 Apparatus and method for detecting malicious code based on volatile virtual file KR101625643B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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