KR102017016B1 - Apparatus and method for malware - Google Patents
Apparatus and method for malware Download PDFInfo
- Publication number
- KR102017016B1 KR102017016B1 KR1020170106037A KR20170106037A KR102017016B1 KR 102017016 B1 KR102017016 B1 KR 102017016B1 KR 1020170106037 A KR1020170106037 A KR 1020170106037A KR 20170106037 A KR20170106037 A KR 20170106037A KR 102017016 B1 KR102017016 B1 KR 102017016B1
- Authority
- KR
- South Korea
- Prior art keywords
- file
- program
- redirection
- monitored
- malicious
- 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
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Virology (AREA)
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 컴퓨터 시스템에 접근하여 파일 오픈을 요청하는 프로그램(110)이 감시대상 프로그램인가 여부를 감시필터(130)가 확인하고, 확인 결과 감시대상 프로그램이 아닐 때에는 원본데이터 저장수단(150)이 보유하는 원본 파일에 대해 정상적으로 파일 수정을 할 수 있도록 하고, 반대로, 파일 오픈을 요청하는 프로그램이 감시대상 프로그램으로 판정된 때에는 감시필터(130)는 원본데이터 저장수단(150)에 저장된 원본 파일의 복사본인 리다이렉션 파일을 새로 생성하여 원본 파일의 저장경로와는 다른 경로인 리다이렉션 데이터 저장수단(160)에 저장하며, 감시대상 프로그램은 리다이렉션 데이터 저장수단(160)에 저장된 리다이렉션 파일에 대해서만 파일 수정을 할 수 있도록 한다. 또, 리다이렉션 파일에 대한 유효성 검증 결과, 유효성이 있으면 그 리다이렉션 파일을 원본 파일과 병합하고, 유효성이 없으면 리다이렉션 데이터 저장수단(160)에서 삭제한다.According to the present invention, the monitoring filter 130 checks whether the program 110 requesting to open a file by accessing the computer system is a monitored program, and the original data storage means 150 retains the stored data when the checked program is not the monitored program. The file can be modified normally with respect to the original file. On the contrary, when it is determined that the program requesting to open the file is a monitored program, the monitoring filter 130 is a copy of the original file stored in the original data storage means 150. Create a new redirection file and store it in the redirection data storage means 160, which is a different path from the original file's storage path, and the monitored program can modify the file only for the redirection file stored in the redirection data storage means 160. do. In addition, if the validation result of the redirection file is valid, the redirection file is merged with the original file. If the redirection file is not valid, the redirection file storage unit 160 deletes the redirection file.
Description
본 발명은 악성프로그램 처리장치 및 처리방법에 관한 것으로, 특히, 컴퓨터 시스템으로 접근하는 파일이 악성코드 등에 감염된 악성프로그램으로 의심되어서 감시가 필요한 감시대상 프로그램일 경우에 이 감시대상 프로그램에 의해 수정된 파일을 리다이렉션 경로에서 관리하도록 함으로써 시스템을 악성프로그램으로부터 안전하게 보호하도록 하는 악성프로그램 처리장치 및 처리방법에 관한 것이다.The present invention relates to a malicious program processing apparatus and method, and more particularly, a file modified by the program to be monitored when a file approaching the computer system is a monitored program that is suspected to be a malicious program infected with a malicious code or the like and needs to be monitored. The present invention relates to a malicious program processing apparatus and a method for managing a system securely from malicious programs by managing the same in a redirect path.
컴퓨터 바이러스, 웜, 트로이 목마, 또는 스파이웨어와 같이, 사용자 몰래 컴퓨터 시스템에 침투하여 피해를 주는 이른바 악성프로그램의 탐지방법으로 시그니처(signature) 기반의 정적 탐지방법과 악성프로그램의 행위를 기반으로 한 행위기반 탐지방법이 있다.Detecting so-called malicious programs that infiltrate and damage computer systems, such as computer viruses, worms, Trojan horses, or spyware, are based on signature-based static detection and malicious program behavior. There is a base detection method.
이들 방법 중 실행되는 프로그램의 행위를 분석하여 악성 여부를 탐지하는 행위기반 탐지방법으로 예를 들어 특허문헌 1, 2 등에 기재된 다양한 탐지방법이 있다.Among these methods, there are various detection methods described in, for example, Patent Documents 1 and 2 as an action-based detection method that detects malicious status by analyzing the behavior of a program to be executed.
특허문헌 1에서는 분석의 대상이 되는 파일(프로그램)의 실행 시에 호출되는 API와 파라미터를 분석하여 행위의 위험점수를 측정하고, 측정된 위험점수를 합산하여 파일의 위험정도를 계산함으로써 그 파일이 악성프로그램인가 여부를 확인하도록 하고 있다.Patent Literature 1 analyzes APIs and parameters that are called at the time of execution of a file (program) to be analyzed and measures the risk score of the action, and calculates the risk level of the file by summing the measured risk scores. It checks whether it is a malicious program.
또, 특허문헌 2에서는 프로세스(프로그램)가 실행되는 과정에서 수집된 특성 인자 정보를 이용하여 특징벡터를 생성하고, 생성된 특징벡터를 이용하여 프로세스에 악성코드가 포함되어 있는가 여부를 탐지하도록 하고 있다.In addition, Patent Literature 2 generates a feature vector using characteristic parameter information collected in the process of executing a process (program), and detects whether a process contains malicious code using the generated feature vector. .
그러나 특허문헌 1, 2를 포함한 공지의 행위기반 탐지방법에서는 실행되는 프로그램이 악성프로그램으로 확인되기 전에 수행한, 예를 들어 원본 파일의 수정이나 삭제, 경로 변경과 같은 행위들에 대해서는 치료나 복원이 어렵다는 문제가 있다.However, in the known behavior-based detection methods including Patent Documents 1 and 2, treatment or restoration is performed for actions performed before the executed program is identified as a malicious program, for example, modifying or deleting the original file, or changing the path. There is a problem that is difficult.
본 발명은 종래기술의 상기 문제점을 감안하여 이루어진 것으로, 의심되는 프로그램의 시스템 리소스 조작 행위들에 대해서는 본래의 시스템 리소스와 분리시켜서 관리하고, 그 후에 그 프로그램이 악성프로그램으로 확인된 경우에는 분리되어 관리되던 리소스를 제거함으로써 악성프로그램이 실행되기 전의 환경으로 시스템을 유지시키도록 하는 악성프로그램 처리장치 및 처리방법을 제공하는 것을 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made in view of the above problems of the prior art, and manages system resource manipulation behaviors of a suspected program separately from the original system resources, and then separates and manages the program if it is identified as a malicious program. It is an object of the present invention to provide a malicious program processing apparatus and method for maintaining a system in an environment before a malicious program is executed by removing a resource.
상기 과제를 해결하기 위한 본 발명의 악성프로그램 처리장치는, 컴퓨터 시스템으로 접근하여 파일 오픈 요청을 하는 프로그램이 악성프로그램으로 의심되는 감시대상 프로그램인가 여부를 확인하는 감시필터와, 상기 감시대상 프로그램 여부를 판단하기 위한 감시대상항목을 보유하는 감시대상항목 데이터베이스를 포함하며, 상기 감시필터는, 상기 파일 오픈 요청을 하는 프로그램이 상기 감시대상항목 중 어느 하나 이상에 해당하면 그 프로그램을 감시대상 프로그램으로 판정하고, 상기 감시대상 프로그램이 오픈 요청을 한 파일의 원본 파일을 복사하여 리다이렉션 파일을 생성하며, 생성한 상기 리다이렉션 파일을 상기 원본 파일의 파일 경로와는 다른 경로인 리다이렉션 경로에 저장한다.Malicious program processing apparatus of the present invention for solving the above problems, a surveillance filter for accessing a computer system to check whether a program requesting a file open is a monitored program suspected to be a malicious program, and whether the monitored program; And a watched item database holding a watched item for judging, wherein the watched filter determines that the program as a watched program when the program requesting the file open corresponds to any one or more of the watched items. Copying the original file of the file that the monitoring target program makes an open request to generate a redirection file, and storing the generated redirection file in a redirection path which is different from the file path of the original file.
또, 상기 과제를 해결하기 위한 본 발명의 악성프로그램 처리방법은, 컴퓨터 시스템으로 접근하여 파일 오픈 요청을 하는 프로그램이 악성프로그램으로 의심되는 감시대상 프로그램인가 여부를 판단하는 단계 a)와, 상기 단계 a)의 판단 결과 상기 파일 오픈 요청을 한 프로그램이 감시대상 프로그램인 때에는 그 프로그램이 오픈 요청한 파일의 원본 파일을 복사하여 리다이렉션 파일을 생성하는 단계 b)와, 생성한 상기 리다이렉션 파일을 상기 원본 파일의 파일 경로와는 다른 경로인 리다이렉션 경로에 저장하는 단계 c)를 포함한다.In addition, the malicious program processing method of the present invention for solving the above problems, step a) of determining whether or not the program to access the computer system file request to open the file suspected to be a malicious program, and the step a B) generating a redirection file by copying the original file of the file requested by the program when the program requesting the file open request is a monitored program; and generating the redirection file by the file of the original file. And storing c) in a redirection path that is different from the path.
이와 같이 본 발명은 정상프로그램에 의해 파일 수정이 이루어진 파일과 악성프로그램으로 의심되는 감시대상 프로그램에 의해 파일 수정이 이루어진 파일을 서로 다른 경로에 분리하여 보관하도록 함으로써 악성프로그램으로 의심되는 프로그램에 의해 수정된 파일과 정상프로그램에 의해 수정된 파일을 서로 분리하여 관리할 수 있는 동시에, 리다이렉션 파일의 유효성 검증 결과 유효성이 없는 것으로 판명된 때에는 유효성이 없는 리다이렉션 파일을 시스템으로부터 삭제하는 등에 의해 간단하게 처리할 수 있으므로 시스템을 악성프로그램으로부터 안전하게 보호할 수 있다.As described above, the present invention is modified by a program suspected to be a malicious program by storing the file modified by a normal program and a file modified by a monitored program suspected to be a malicious program in different paths. The file and the file modified by the normal program can be managed separately from each other, and when the validation of the redirection file turns out to be invalid, it can be easily processed by deleting the invalid redirection file from the system. It can protect your system from malicious programs.
도 1은 본 발명의 바람직한 실시형태의 악성프로그램 처리장치를 나타내는 블록도,
도 2는 본 발명의 바람직한 실시형태의 악성프로그램 처리방법의 흐름을 나타내는 플로차트,
도 3은 파일의 유효성을 검증하는 파일 유효성 검증방법의 흐름을 나타내는 플로차트이다.1 is a block diagram showing a malicious program processing apparatus according to a preferred embodiment of the present invention;
2 is a flowchart showing the flow of a malicious program processing method according to a preferred embodiment of the present invention;
3 is a flowchart showing the flow of a file validation method for validating a file.
이하, 본 발명의 바람직한 실시형태에 대해서 첨부 도면을 참조하면서 상세하게 설명한다.EMBODIMENT OF THE INVENTION Hereinafter, preferred embodiment of this invention is described in detail, referring an accompanying drawing.
먼저, 본 발명의 바람직한 실시형태의 악성프로그램 처리장치에 대해서 설명한다. 도 1은 본 발명의 바람직한 실시형태의 악성프로그램 처리장치를 나타내는 블록도이다.First, a malicious program processing apparatus of a preferred embodiment of the present invention will be described. 1 is a block diagram showing a malicious program processing apparatus of a preferred embodiment of the present invention.
본 실시형태에서의 악성프로그램 처리장치(100)는 정상프로그램(application)이 사용하는 리소스(resource)와 악성프로그램이 사용하는 리소스를 서로 분리하여 관리하는 리다이렉션(redirection) 기법을 이용하며, 이를 위해 사용자 모드(user mode)에서 실행되는 프로그램(110)과 커널 모드(kernel mode)의 실제 데이터 사이의 행위를 감시하는 기능을 하는 필터에 리다이렉션 기능을 추가하여 감시필터(130)를 구성하고, 이 감시필터(130)에 의해 실제 데이터와 악성프로그램이 사용하는 리소스를 분리하여 관리하도록 함으로써 컴퓨터 시스템 내의 리소스들을 안전하게 보호할 수 있도록 한다.The malicious
상기 기능을 실행하는 본 실시형태의 악성프로그램 처리장치(100)는 컴퓨터 시스템 내에 설치되며, 도 1에 나타내는 것과 같이, 감시필터(130)와 감시대상항목 데이터베이스(140)와 원본데이터 저장수단(150)과 리다이렉션 데이터 저장수단(160)과 리다이렉션 정보 메모리(170)를 포함한다.The malicious
감시필터(130)는 윈도 OS(Windows Operating System)에서 제공되는 미니필터에 리다이렉션 기능을 추가한 것이며, 컴퓨터 시스템에 접근하여 어떤 작업을 실행하기 위해 파일의 오픈(file open)을 요청하는 모든 프로그램(110)에 대해 그 프로그램(110)이 악성코드의 감염이 의심되는 프로그램, 즉, 감시대상 프로그램인가 여부를 판단하고, 감시대상 프로그램인 때에는 원본 파일을 복사한 리다이렉션 파일을 원본 파일의 경로와는 다른 경로인 리다이렉션 경로에 저장하고, 감시대상 프로그램에 의한 파일의 수정은 리다이렉션 파일에 대해서만 실행되도록 한다.The
보다 상세하게는, 일반적으로 파일의 수정 등을 위해 리소스에 접근하는 프로그램(110)은 커널 모드(kernel mode)에서 수정하고자 하는 파일의 핸들을 얻어서 파일의 수정을 하게 되며, 감시필터(130)는 파일의 수정 등을 위해 사용자 모드로 접근하는 모든 프로그램 또는 스레드(thread)(본 명세서에서는 파일의 수정 등을 위해 사용자 모드로 접근하는 모든 프로그램 또는 스레드 등을 포괄하는 용어로 「프로그램」이라는 용어를 사용한다)에 대해 그 프로그램(110)이 악성코드 등에 감염된 악성프로그램일 가능성이 있어서 감시의 대상이 되는 프로그램(본 명세서에서는 이 프로그램을 「감시대상 프로그램」이라 하고, 감시대상 프로그램이 아닌 프로그램을 「정상프로그램」이라 한다)인가 여부를 판단한다.More specifically, in general, the
이를 위해 악성프로그램 처리장치(100)는 감시대상항목 데이터베이스(140)를 가지고 있고, 감시대상항목 데이터베이스(140)에는 복수의 감시대상항목을 보유하고 있으며, 악성프로그램 처리장치(100)의 사용자 모드로 접근하는 프로그램(110)이 감시대상항목 데이터베이스(140)가 보유하고 있는 감시대상항목 중 어느 하나 이상에 해당하면 그 프로그램을 감시대상 프로그램으로 설정한다.To this end, the malicious
이하에 감시대상항목 데이터베이스(140)가 보유하는 감시대상항목의 예에 대해 간단하게 설명한다.An example of the monitored object held by the monitored
- 디지털 서명의 유무 : 대부분의 프로그램은 그 프로그램을 만든 제작사의 디지털 서명이 존재하므로, 사용자 모드로 접근하는 프로그램(110)에 디지털 서명이 있으면 정상프로그램으로 간주해도 좋다. 그러나 최근에는 디지털 서명 파일이 유출 등에 의한 디지털 서명의 변조도 이루어지고 있어서 디지털 서명이 있다는 것만으로는 무조건 신뢰할 수 없는 경우도 있으므로, 바람직하게는 디지털 서명의 유무와 함께 인증서의 서명자나 서명 내에 존재하는 다른 정보들도 함께 확인하면 신뢰도를 더 높일 수 있다.-The presence or absence of a digital signature: Since most programs have a digital signature of the manufacturer who made the program, if a digital signature exists in the
- 실행파일 속성정보의 유효성 : 일반적인 상용 프로그램에는 파일 버전, 제작자 이름, 파일 설명과 같은 파일의 속성정보가 존재하므로, 사용자 모드로 접근하는 프로그램(110)에 이와 같은 속성정보가 포함되어 있지 않거나, 또는 그 프로그램 파일이 속성정보와 일치하지 않으면 감시대상 프로그램으로 한다.-Validity of the execution file property information: Since a general commercial program has file property information such as a file version, a producer name, and a file description, such property information is not included in the
- 파일이 실행되는 경로 : 악성프로그램의 경우는 원격지로부터 다운로드 받아서 실행되는 방법을 주로 사용하므로, 사용자 모드로 접근하는 프로그램(110)이 인터넷 Temp 폴더나 Downloads 폴더와 같은 특정 경로에서 실행되는 프로그램일 경우에는 악성프로그램일 가능성이 있으므로 감시대상 프로그램으로 한다.-Path in which the file is executed: In case of a malicious program, a method of downloading and executing it from a remote location is mainly used. Therefore, when the
- 인젝션된 스레드 여부 : 악성프로그램이 EXE, COM과 같은 실행파일이 아닌 경우에는 실행중인 다른 프로세스에 로딩시키는 방법을 사용하며(이를 'DLL 인젝션'이라고 함), 사용자 모드로 접근하는 프로그램(110)의 스레드 생성 감시에 의해 인젝션된 스레드인지 여부를 확인하여, 인젝션된 스레드일 경우에는 감시대상 프로그램으로 한다.-Whether the thread is injected: If the malicious program is not an executable file such as EXE or COM, it loads into another running process (this is called 'DLL injection'), and the
- 스크립트 형태 프로그램 : VBScript, WScript, powershell, php 등의 스크립트 실행 프로그램이나 java 프로그램과 같은 인터프리터를 이용한 형태의 악성 프로그램이 존재하므로, 스크립트를 실행할 수 있는 프로세스나 인터프리터의 경우 감시대상 프로그램으로 한다.-Script type program: Script execution program such as VBScript, WScript, powershell, php or malicious program using interpreter such as java program exist. Therefore, process or interpreter that can execute script is to be monitored.
사용자 모드로 접근하는 프로그램(110)이 감시대상 프로그램으로 판정된 때에는 감시필터(130)는 그 감시대상 프로그램에 의해 이전에 리다이렉션한 리다이렉션 파일(redirection file)이 리다이렉션 데이터 저장수단(160)에 저장되어 있는가 여부를 확인한다.When the
확인 결과, 이전에 리다이렉션한 리다이렉션 파일이 있으면 리다이렉션 정보 메모리(170)에서 그 리다이렉션 파일의 파일정보를 취득하고, 취득한 리다이렉션 파일의 파일 정보를 적용하여 커널에서 리다이렉션 파일의 핸들을 얻어서 프로그램에 반환하며, 이에 의해 이전에 리다이렉션 데이터 저장수단(160)에 저장되어 있던 리다이렉션 파일의 파일 수정이 이루어지도록 한다.As a result of the check, if there is a redirection file that was previously redirected, the
반대로, 확인 결과, 감시대상 프로그램으로부터 이전의 파일 오픈 요청에 의해 리다이렉션한 리다이렉션 파일이 리다이렉션 데이터 저장수단(160)에 저장되어 있지 않으면, 감시필터(130)는 원본데이터 저장수단(150)에 저장되어 있는 원본 파일을 복사한 복사본 파일인 리다이렉션 파일을 생성하여 리다이렉션 데이터 저장수단(160)에 저장하는 동시에, 생성한 리다이렉션 파일의 파일정보를 리다이렉션 정보 메모리(170)에 저장한다.On the contrary, if the redirection file that is redirected by the previous file open request from the program to be monitored is not stored in the redirection data storage means 160, the
그 후에, 감시필터(130)는 새로 생성한 리다이렉션 파일의 파일정보를 적용하여 커널에서 리다이렉션 파일의 핸들을 얻어서 프로그램에 반환하며, 이에 의해 새로 생성되어 리다이렉션 데이터 저장수단(160)에 저장된 리다이렉션 파일의 파일 수정이 이루어진다.Thereafter, the
한편, 사용자 모드로 접근하는 프로그램(110)이 감시대상 프로그램인 때에는 감시필터(130)는 원본데이터 저장수단(150)에 저장되어 있는 원본 파일의 핸들을 얻어서 프로그램에 반환하며, 이에 의해 원본데이터 저장수단(150)에 저장되어 있는 원본 파일의 수정이 이루어지게 된다.On the other hand, when the
감시대상항목 데이터베이스(140)는 사용자 모드로 접근하는 프로그램(110)이 감시대상 프로그램인가 여부를 판단하기 위한 감시대상항목을 보유하며, 감시대상항목에 대해서는 앞에서 설명한 것과 같다.The monitoring
원본데이터 저장수단(150)은 정상프로그램에 의해 작성 또는 수정된 원본 파일을 저장하는 데이터 저장수단이며, 예를 들어 하드디스크, CD-ROM, RAM이나 ROM과 같은 전자적 기억장치 등의 공지 구성의 저장수단을 이용할 수 있다.Original data storage means 150 is a data storage means for storing the original file created or modified by the normal program, for example, the storage of a known configuration such as an electronic storage device such as a hard disk, CD-ROM, RAM or ROM Means can be used.
리다이렉션 데이터 저장수단(160)은 감시필터(130)가 원본데이터 저장수단(150)에 저장되어 있는 원본 파일로부터 복사된 복사본인 리다이렉션 파일을 저장하는 데이터 저장수단이며, 예를 들어 하드디스크, CD-ROM, RAM이나 ROM과 같은 전자적 기억장치 등의 공지 구성의 저장수단을 이용할 수 있다. 또, 리다이렉션 데이터 저장수단(160)은 원본 파일을 저장하는 원본데이터 저장수단(150)과는 물리적으로 동일한 저장수단을 이용해도 좋고, 다른 저장수단을 이용해도 좋으나, 원본데이터 저장수단(150)과는 그 접근경로가 달라야 하며, 감시필터(130)가 감시대상 프로그램으로 판정한 프로그램에 의한 파일의 수정은 이 리다이렉션 데이터 저장수단(160)에 저장되어 있는 리다이렉션 파일에 대해서만 가능하다.The redirection data storage means 160 is a data storage means for which the
리다이렉션 정보 메모리(170)는 감시필터(130)가 원본데이터 저장수단(150)에 저장되어 있는 원본 파일로부터 복사된 복사본인 리다이렉션 파일을 생성한 경우에, 그 리다이렉션 파일의 파일정보를 저장하는 메모리이며, 리다이렉션 파일의 파일정보는 예를 들어 원본 파일의 파일 경로, 최초로 파일이 복사된 복사일자와 복사시각, 리다이렉션 파일의 이름 등이다.The
다음에, 도 2를 이용하여 본 발명의 바람직한 실시형태의 악성프로그램 처리방법에 대해서 설명한다. 도 2는 본 발명의 바람직한 실시형태의 악성프로그램 처리방법의 흐름을 나타내는 플로차트이다.Next, the malicious program processing method of the preferred embodiment of the present invention will be described with reference to FIG. 2 is a flowchart showing the flow of a malicious program processing method of a preferred embodiment of the present invention.
먼저, 악성프로그램 처리장치(100)의 사용자 모드로 접근하는 프로그램(110)으로부터 파일의 수정 등을 위한 파일 오픈 요청이 있으면(단계 S11), 단계 S12에서 감시필터(130)는 파일 오픈 요청을 하는 프로그램이 감시대상 프로그램인가 여부를 확인한다.First, if there is a file open request for modification of a file from the
단계 S12의 확인 결과, 파일 오픈 요청을 하는 프로그램이 감시대상 프로그램이 아니면(단계 S12=NO) 단계 S13으로 진행하며, 단계 S13에서 감시필터(130)는 커널에서 원본 파일의 핸들을 얻어서 프로그램(110)에 반환하고, 단계 S18에서 요청한 원본 파일을 오픈 하여 파일 내용의 수정이나 파일의 삭제 또는 변경 등의 작업을 실행하고 종료한다.As a result of checking in step S12, if the program requesting to open the file is not a program to be monitored (step S12 = NO), the process proceeds to step S13. ), The original file requested in step S18 is opened, and operations such as modification of the file contents, deletion or change of the file, and the like are terminated.
또, 단계 S12의 확인 결과, 파일 오픈 요청을 하는 프로그램이 감시대상 프로그램이면(단계 S12=YES) 단계 S14로 진행하며, 단계 S14에서 감시필터(130)는 리다이렉션 정보 메모리(170)에 저장되어 있는 리다이렉션 파일의 파일정보인 원본 파일의 파일 경로, 최초로 파일이 복사된 복사일자와 복사시각, 리다이렉션 파일의 이름 등의 정보를 확인함으로써 감시대상 프로그램이 오픈 요청을 하는 파일의 이전에 리다이렉션한 리다이렉션 파일이 있는가 여부를 확인한다.As a result of checking in step S12, if the program requesting to open the file is a program to be monitored (step S12 = YES), the process proceeds to step S14. In step S14, the
단계 S14의 확인 결과 이전에 리다이렉션한 리다이렉션 파일이 없으면(단계 S14=NO) 감시필터(130)는 원본데이터 저장수단(150)에 저장되어 있는 원본 파일을 복사하여 새로운 리다이렉션 파일을 생성하고, 생성한 리다이렉션 파일을 리다이렉션 데이터 저장수단(160)에 저장한 후 단계 S16으로 진행하며, 단계 S16에서는 감시필터(130)는 리다이렉션 데이터 저장수단(160)에 저장한 리다이렉션 파일의 파일정보를 리다이렉션 정보 메모리(170)에 저장한 후 단계 S17로 진행한다. 앞에서도 설명한 것과 같이, 리다이렉션 파일의 파일정보는 원본 파일의 파일 경로, 최초로 파일이 복사된 복사일자와 복사시각, 리다이렉션 파일의 이름 등이다.If there is no redirection file previously redirected as a result of checking in step S14 (step S14 = NO), the
또, 단계 S14의 확인 결과 이전에 리다이렉션한 파일이 있으면(단계 S14=YES) 단계 S17로 진행하며, 단계 17에서 감시필터(130)는 그 리다이렉션 파일의 파일정보를 적용해서 커널에서 리다이렉션 파일의 핸들을 얻어서 프로그램에 반환하고 단계 S18로 진행하며, 단계 S18에서는 리다이렉션 파일의 수정이나 삭제, 변경과 같은 파일 수정작업을 실행하고 종료한다.If there is a file that has been redirected before as a result of checking in step S14 (step S14 = YES), the process proceeds to step S17. In step 17, the
이상과 같이, 본 실시형태에서는 사용자 모드에서 접근하여 파일 오픈을 요청하는 프로그램(110)이 감시대상 프로그램인가 여부를 감시필터(130)가 확인하고, 확인 결과 감시대상 프로그램이 아닐 때에는 원본데이터 저장수단(150)이 보유하는 원본 파일에 대해 정상적으로 파일 수정을 할 수 있도록 하고, 반대로, 파일 오픈을 요청하는 프로그램이 감시대상 프로그램으로 판정된 때에는 감시필터(130)는 원본데이터 저장수단(150)에 저장된 원본 파일의 복사본인 리다이렉션 파일을 새로 생성하여 원본 파일의 경로와는 다른 경로인 리다이렉션 경로(리다이렉션 데이터 저장수단(160))에 저장하며, 감시대상 프로그램은 리다이렉션 경로에 저장된 리다이렉션 파일에 대해서만 파일 수정을 할 수 있도록 한다.As described above, in the present embodiment, the
이와 같은 처리와 동시에 또는 처리가 이루어진 이후에는, 리다이렉션 경로에 보관 중인 리다이렉션 파일이 악성코드 등에 감염된 악성프로그램에 의해 수정된 파일인가 여부의 검증, 즉, 파일 유효성 검증을 하며, 검증 결과 악성프로그램에 의해 수정이 이루어진 파일로서 유효성이 없는 파일로 판명된 때에는 악성프로그램 처리장치(100)는 리다이렉션 파일의 삭제 등의 처리를 하며, 역으로, 유효성이 있는 파일로 판명되면 그 리다이렉션 파일을 원본데이터 저장수단(150)에 보관중인 원본 파일과 병합하는 등의 처리를 한다.At the same time as this processing or after the processing, the redirection file stored in the redirection path is verified whether the file is modified by a malicious program infected with malicious code, that is, the file is validated. When the modified file is found to be an invalid file, the malicious
리다이렉션 경로에 보관 중인 리다이렉션 파일의 파일 유효성 검증은 통상의 유효성 검증절차를 통해서 이루어지며, 이하에 간략하게 설명한다. 도 3은 프로그램의 유효성을 검증하는 유효성 검증방법을 나타내는 플로차트이다.File validation of the redirection file stored in the redirection path is performed through a normal validation procedure, which will be briefly described below. 3 is a flowchart showing a validation method for validating a program.
먼저, 단계 S21에서 리다이렉션 파일의 파일 데이터를 판독하고 단계 S22로 진행하며, 단계 S22에서는 판독한 리다이렉션 파일의 파일 데이터 중 파일 헤더 값을 검증한다.First, in step S21, the file data of the redirection file is read and the process proceeds to step S22, and in step S22, the file header value of the file data of the read redirection file is verified.
일반적으로 응용프로그램에서 사용되는 파일들은 예를 들어 jpg, exe, docx, …와 같은 특정 확장자 명을 가지고, 이와 같은 특정 확장자를 가진 파일은 파일의 진입부에 고유의 값, 즉, 파일 헤더 값을 가지며, 악성프로그램은 통상적으로 이 파일 헤더 값을 변조하므로, 리다이렉션 파일의 파일 헤더 값의 확인에 의해 파일 유효성을 검증할 수 있다.Generally, files used in application programs are jpg, exe, docx,… A file with a specific extension, such as, has a value unique to the entry of the file, i.e., a file header value, and since a malicious program typically modulates the file header value, the file of the redirect file You can validate the file by checking the header value.
단계 S22의 검증 결과 리다이렉션 파일이 유효한 것으로 판정되면(단계S22=YES) 단계 S23으로 진행하여 명령어 검증을 실행한다.If the verification result of step S22 determines that the redirection file is valid (step S22 = YES), the flow advances to step S23 to execute command verification.
일부 악성프로그램은 파일의 헤더는 그대로 두고 특정한 오프셋(offset) 위치에서부터 파일을 변조하므로, 이 경우에는 파일 헤더 값의 확인 만에 의해서는 완전한 파일 유효성 검증을 할 수 없다. 따라서 단계 S22의 검증 결과 파일 헤더 값이 유효한 것으로 인정되는 경우에도 명령어형 검증코드를 적용하여 파일에 포함된 데이터를 확인함으로써 한번더 파일의 유효성 검증을 실행한다.Some malware modifies the file from a specific offset position, leaving the file header intact. In this case, only validating the file header value does not allow full file validation. Therefore, even when the file header value of the verification result of step S22 is found to be valid, the file is validated once more by applying the imperative verification code to check the data included in the file.
단계 S23의 검증 결과도 리다이렉션 파일이 유효한 것으로 판명되면 단계 S24로 진행하여 유효성이 검증된 리다이렉션 파일을 원본 파일과 병합하고 종료한다.If the verification result of step S23 also proves that the redirection file is valid, the flow advances to step S24 to merge the validated redirection file with the original file and ends.
또, 단계 S22에서의 파일 헤더 값의 검증 결과, 또는 단계 S23에서의 명령어형 검증 결과 리다이렉션 파일이 유효성이 없는 것으로 판명되면 단계 S25로 진행하여 유효성이 없는 리다이렉션 파일을 시스템으로부터 삭제하는 등의 처리를 진행하고 종료한다.If the verification result of the file header value in step S22 or the imperative verification result in step S23 turns out that the redirection file is invalid, the process proceeds to step S25 to delete an invalid redirection file from the system. Proceed and exit.
이와 같이 본 실시형태에서는 정상프로그램에 의해 파일 수정이 이루어진 파일과 악성프로그램으로 의심되는 감시대상 프로그램에 의해 파일 수정이 이루어진 파일을 서로 다른 경로에 분리하여 보관하도록 함으로써 악성프로그램으로 의심되는 프로그램에 의해 수정된 파일과 정상프로그램에 의해 수정된 파일을 서로 분리하여 관리할 수 있는 동시에, 리다이렉션 파일의 유효성 검증 결과 유효성이 없는 것으로 판명된 때에는 유효성이 없는 리다이렉션 파일을 시스템으로부터 삭제하는 등에 의해 간단하게 처리할 수 있으므로 시스템을 악성프로그램으로부터 안전하게 보호할 수 있다.As described above, in the present embodiment, a file modified by a normal program and a file suspected to be a malicious program are separated and stored in different paths by a monitored program suspected to be a malicious program. Managed files and files modified by normal programs can be managed separately from each other, and when the validation of the redirection file turns out to be invalid, it can be easily processed by deleting the invalid redirection file from the system. Therefore, you can protect your system from malicious programs.
이상, 본 발명을 바람직한 실시형태에 의해 설명하였으나, 본 발명은 상기 실시형태에 한정되는 것은 아니며, 청구범위에 기재된 발명의 범위 내에서 다양한 변경이나 변형이 가능하다.As mentioned above, although this invention was demonstrated by preferable embodiment, this invention is not limited to the said embodiment, A various change and a deformation | transformation are possible within the scope of the invention as described in a claim.
상기 실시형태에서는 시스템의 사용자 모드로 접근하는 프로그램(110)이 감시대상항목 데이터베이스(140)가 보유하는 감시대상항목 중 어느 하나 이상에 해당하는 프로그램인가 여부를 확인함으로써 감시대상 프로그램 여부를 판정하는 것으로 설명하였으나, 예를 들어 앞에서 설명한 파일의 유효성 검증과정이나, 또는 다른 과정에서 악성코드 등에 감염되지 않은 것으로 판정된 프로그램(본 명세서에서는 이 프로그램을 「정상적인 프로그램」이라고 하며, 감시대상 프로그램이 아닌 프로그램을 가리키는 「정상프로그램」과는 구별되는 용어이다)을 별도의 데이터베이스 등에 의해 관리하도록 하고, 시스템의 사용자 모드로 접근하는 프로그램(110)이 이 데이터베이스에 있으면 그 프로그램을 정상프로그램으로 판정하도록 해도 좋다.In the above embodiment, it is determined whether or not the program to be monitored is checked by confirming whether the
또, 상기 과정에서 악성프로그램으로 판정된 프로그램에 대해서는 악성프로그램 데이터베이스에 의해 관리하도록 하고, 시스템의 사용자 모드로 접근하는 프로그램(110)이 악성프로그램 데이터베이스에 있으면 그 프로그램을 감시대상 프로그램으로 판정하도록 해도 좋다.In addition, a program determined to be a malicious program in the above process may be managed by a malicious program database. If a
또, 상기 실시형태와 상기 변형 예는 따로따로 실시해도 좋고, 서로 조합하여 실시해도 좋다.In addition, the said embodiment and the said modification may be implemented separately, and may be implemented in combination with each other.
100 악성프로그램 처리장치
110 프로그램
130 감시필터
140 감시대상항목 데이터베이스
150 원본데이터 저장수단
160 리다이렉션 데이터 저장수단
170 리다이렉션 정보 메모리100 Malware Handling Device
110 programs
130 supervisory filter
140 Monitored Items Database
150 Original data storage means
160 Redirect data storage means
170 Redirection Information Memory
Claims (11)
상기 감시대상 프로그램 여부를 판단하기 위한 감시대상항목을 보유하는 감시대상항목 데이터베이스를 포함하며,
상기 감시필터는,
상기 파일 오픈 요청을 하는 프로그램이 상기 감시대상항목 중 어느 하나 이상에 해당하면 그 프로그램을 감시대상 프로그램으로 판정하고,
상기 감시대상 프로그램이 오픈 요청을 한 파일의 원본 파일을 복사하여 리다이렉션 파일을 생성하며,
생성한 상기 리다이렉션 파일을 상기 원본 파일의 파일 경로와는 다른 경로인 리다이렉션 경로에 저장하고,
상기 리다이렉션 경로에 저장된 상기 리다이렉션 파일을 이용하여 파일 수정을 하며,
상기 감시대상항목은 디지털 서명의 유무, 실행파일 속성정보의 유효성, 파일이 실행되는 경로, 인젝션된 스레드 여부 중 하나 이상인 악성프로그램 처리장치.A monitoring filter that checks whether a program that accesses a computer system and requests a file open is a monitored program suspected of being a malicious program;
It includes a monitoring target item database for holding a monitoring target item for determining whether or not the program to be monitored,
The monitoring filter,
If the program requesting to open the file corresponds to any one or more of the items to be monitored, the program is determined to be a monitored program,
Redirect file is generated by copying the original file of the file that the watched program has requested to open,
The generated redirection file is stored in a redirection path which is different from the file path of the original file.
Modify the file by using the redirection file stored in the redirection path;
The monitoring target item is at least one of a digital signature, validity of executable file attribute information, a file execution path, and whether or not an injected thread is used.
상기 감시필터는 상기 리다이렉션 파일을 생성하기 전에, 상기 감시대상 프로그램에 의해 이전에 생성된 리다이렉션 파일이 있는가 여부를 더 확인하고,
이전에 생성된 리다이렉션 파일이 있으면 그 리다이렉션 파일을 이용하여 파일 수정이 이루어지도록 하는 악성프로그램 처리장치.The method according to claim 1,
The surveillance filter further checks whether there is a redirect file previously generated by the surveillance target program before generating the redirect file.
Malware handling device that allows modification of files by using the redirected file if there is a previously generated redirected file.
상기 리다이렉션 파일의 파일정보를 저장하는 리다이렉션 정보 메모리를 더 포함하며,
상기 이전에 생성된 리다이렉션 파일의 유무는 상기 리다이렉션 파일의 파일정보에 의해 확인하는 악성프로그램 처리장치.The method according to claim 2,
A redirection information memory for storing file information of the redirection file;
The presence or absence of the previously generated redirection file is a malicious program processing apparatus for confirming by the file information of the redirection file.
상기 악성프로그램 처리장치는 상기 리다이렉션 파일의 유효성 검증을 더 실행하고,
검증 결과 유효성이 없는 파일인 때에는 상기 리다이렉션 파일을 삭제하는 악성프로그램 처리장치.The method according to claim 1,
The malicious program processing apparatus further executes validation of the redirection file,
And a malicious program processing apparatus for deleting the redirect file when the file is invalid as a result of the verification.
상기 악성프로그램 처리장치는 상기 리다이렉션 파일의 유효성 검증을 더 실행하고,
검증 결과 유효성이 있는 파일인 때에는 상기 리다이렉션 파일을 상기 원본 파일과 병합하는 악성프로그램 처리장치.The method according to claim 1,
The malicious program processing apparatus further executes validation of the redirection file,
And a malicious program processing apparatus for merging the redirection file with the original file when the file is valid.
컴퓨터 시스템으로 접근하여 파일 오픈 요청을 하는 프로그램이 악성프로그램으로 의심되는 감시대상 프로그램인가 여부를 판단하는 단계 a)와,
상기 단계 a)의 판단 결과 상기 파일 오픈 요청을 한 프로그램이 감시대상 프로그램인 때에는 그 프로그램이 오픈 요청한 파일의 원본 파일을 복사하여 리다이렉션 파일을 생성하는 단계 b)와,
생성한 상기 리다이렉션 파일을 상기 원본 파일의 파일 경로와는 다른 경로인 리다이렉션 경로에 저장하는 단계 c)와,
상기 리다이렉션 경로에 저장된 상기 리다이렉션 파일을 이용하여 파일의 수정을 하는 단계를 포함하며,
상기 감시대상항목은 디지털 서명의 유무, 실행파일 속성정보의 유효성, 파일이 실행되는 경로, 인젝션된 스레드 여부 중 하나 이상이고,
상기 단계 a)에서는 상기 파일 오픈 요청을 하는 프로그램이 상기 감시대상항목 중 어느 하나 이상에 해당하면 그 프로그램을 감시대상 프로그램으로 판정하는 악성프로그램 처리방법.A malicious program processing method by a malicious program processing device that has a watched item for determining whether a program requesting a file open request by accessing a computer system is a monitored program suspected to be a malicious program.
A) determining whether the program requesting the file open by accessing the computer system is a monitored program suspected to be a malicious program;
B) generating a redirection file by copying the original file of the file requested by the program when the program requesting the file open is the monitored program as a result of the step a);
C) storing the generated redirection file in a redirection path which is different from the file path of the original file;
Modifying the file by using the redirection file stored in the redirection path;
The monitoring target item is one or more of the presence or absence of a digital signature, validity of executable file attribute information, a path in which a file is executed, or whether an injected thread is used.
In step a), if the program requesting to open the file corresponds to any one or more of the items to be monitored, the malicious program processing method for determining the program as a program to be monitored.
상기 단계 b)에서 상기 리다이렉션 파일을 생성하기 전에, 상기 감시대상 프로그램이 이전에 생성한 리다이렉션 파일이 있는가 여부를 확인하는 단계 d)를 더 포함하며,
상기 단계 d)의 확인 결과 이전에 생성된 리다이렉션 파일이 있으면 그 리다이렉션 파일을 이용하여 파일 수정이 이루어지도록 하는 악성프로그램 처리방법.The method according to claim 7,
Before generating the redirection file in step b), further comprising: checking whether there is a redirection file previously generated by the monitored program;
And if there is a redirection file generated before as a result of the checking in step d), modifying the file by using the redirection file.
상기 이전에 생성된 리다이렉션 파일의 유무는 상기 컴퓨터 시스템이 보유하는 리다이렉션 파일의 파일정보에 의해 확인하는 악성프로그램 처리방법.The method according to claim 8,
The presence or absence of the previously generated redirection file is a malicious program processing method for confirming by the file information of the redirection file held by the computer system.
상기 단계 c) 이후에 실행되며 상기 리다이렉션 파일의 유효성 검증을 실행하는 단계 e)를 더 포함하고,
상기 단계 e)의 검증 결과 유효성이 없는 파일인 때에는 상기 리다이렉션 파일을 삭제하는 악성프로그램 처리방법.The method according to claim 7,
Executing after the step c) and performing validation of the redirection file;
The malicious program processing method of deleting the redirection file when the verification result of step e) is invalid.
상기 단계 c) 이후에 실행되며 상기 리다이렉션 파일의 유효성 검증을 실행하는 단계 e)를 더 포함하고,
상기 단계 e)의 검증 결과 유효성이 있는 파일인 때에는 상기 리다이렉션 파일을 상기 원본 파일과 병합하는 악성프로그램 처리방법.The method according to claim 7,
Executing after the step c) and performing validation of the redirection file;
And when the file is valid as a result of the verification of step e), merges the redirection file with the original file.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170106037A KR102017016B1 (en) | 2017-08-22 | 2017-08-22 | Apparatus and method for malware |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170106037A KR102017016B1 (en) | 2017-08-22 | 2017-08-22 | Apparatus and method for malware |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190020999A KR20190020999A (en) | 2019-03-05 |
KR102017016B1 true KR102017016B1 (en) | 2019-09-06 |
Family
ID=65760576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170106037A KR102017016B1 (en) | 2017-08-22 | 2017-08-22 | Apparatus and method for malware |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102017016B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020189823A1 (en) * | 2019-03-20 | 2020-09-24 | 주식회사 하우리 | Device and method for dealing with malicious programs by using technique of checking validity of redirection file |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101710928B1 (en) * | 2015-09-04 | 2017-03-13 | 숭실대학교산학협력단 | Method for protecting malignant code in mobile platform, recording medium and device for performing the system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101031786B1 (en) * | 2009-02-03 | 2011-04-29 | 주식회사 안철수연구소 | Malicious code prevention apparatus and method using level classification of suspicious behavior and isolated execution, and computer-readable medium storing program for method thereof |
KR101404882B1 (en) | 2013-01-24 | 2014-06-11 | 주식회사 이스트시큐리티 | A system for sorting malicious code based on the behavior and a method thereof |
KR102450834B1 (en) | 2016-01-04 | 2022-10-05 | 한국전자통신연구원 | Behavior-based malicious code detection apparatus and method using multiple feature vector |
-
2017
- 2017-08-22 KR KR1020170106037A patent/KR102017016B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101710928B1 (en) * | 2015-09-04 | 2017-03-13 | 숭실대학교산학협력단 | Method for protecting malignant code in mobile platform, recording medium and device for performing the system |
Also Published As
Publication number | Publication date |
---|---|
KR20190020999A (en) | 2019-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10984097B2 (en) | Methods and apparatus for control and detection of malicious content using a sandbox environment | |
US11645383B2 (en) | Early runtime detection and prevention of ransomware | |
US9824217B2 (en) | Runtime detection of self-replicating malware | |
US9336390B2 (en) | Selective assessment of maliciousness of software code executed in the address space of a trusted process | |
US9680848B2 (en) | Apparatus, system and method for detecting and preventing malicious scripts using code pattern-based static analysis and API flow-based dynamic analysis | |
RU2571723C2 (en) | System and method of reducing load on operating system when executing antivirus application | |
Doupe et al. | deDacota: toward preventing server-side XSS via automatic code and data separation | |
Altekar et al. | OPUS: Online Patches and Updates for Security. | |
US10462160B2 (en) | Method and system for identifying uncorrelated suspicious events during an attack | |
US11455400B2 (en) | Method, system, and storage medium for security of software components | |
US10440036B2 (en) | Method and system for modeling all operations and executions of an attack and malicious process entry | |
US20160142437A1 (en) | Method and system for preventing injection-type attacks in a web based operating system | |
IL267241B2 (en) | System and methods for detection of cryptoware | |
CN103473501B (en) | A kind of Malware method for tracing based on cloud security | |
JP2019521400A (en) | Detecting speculative exploit attempts | |
Burket et al. | {GuardRails}: A {Data-Centric} Web Application Security Framework | |
US20220108001A1 (en) | System for detecting and preventing unauthorized software activity | |
US7620983B1 (en) | Behavior profiling | |
KR102017016B1 (en) | Apparatus and method for malware | |
US9785775B1 (en) | Malware management | |
KR101503827B1 (en) | A detect system against malicious processes by using the full path of access files | |
US10880316B2 (en) | Method and system for determining initial execution of an attack | |
JP5955475B1 (en) | Program, information processing apparatus, and information processing method | |
JP6787841B2 (en) | Access control device, access control method and access control program | |
WO2017114341A1 (en) | Root virus removal method and apparatus, and electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |