KR20150017925A - A detect system against malicious processes by using the full path of access files - Google Patents

A detect system against malicious processes by using the full path of access files Download PDF

Info

Publication number
KR20150017925A
KR20150017925A KR1020130094161A KR20130094161A KR20150017925A KR 20150017925 A KR20150017925 A KR 20150017925A KR 1020130094161 A KR1020130094161 A KR 1020130094161A KR 20130094161 A KR20130094161 A KR 20130094161A KR 20150017925 A KR20150017925 A KR 20150017925A
Authority
KR
South Korea
Prior art keywords
path
absolute path
file
absolute
system call
Prior art date
Application number
KR1020130094161A
Other languages
Korean (ko)
Other versions
KR101503827B1 (en
Inventor
권진현
박진배
류영택
Original Assignee
에스지에이 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스지에이 주식회사 filed Critical 에스지에이 주식회사
Priority to KR1020130094161A priority Critical patent/KR101503827B1/en
Publication of KR20150017925A publication Critical patent/KR20150017925A/en
Application granted granted Critical
Publication of KR101503827B1 publication Critical patent/KR101503827B1/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

Landscapes

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

Abstract

The present invention relates to a system for checking malicious programs through absolute path management, which converts a relative path for a malicious program, which is generated by using the relative path based on system call hooking, into an absolute path, and which checks the malicious program, warns a user of the same and blocks the same. The system includes: a system call hooking control unit configured to hook a system call of an operating system for a computer terminal; a process processing unit configured to store and update an absolute path of a process (hereinafter referred to as an execution process) executed in the computer terminal; an absolute path determining unit configured to determine whether a path of a file requesting access in the system call is absolute or relative, and to determine whether an absolute path of the access file has been stored when it is determined that the path of the access file is relative; an absolute path combining unit configured to combine an absolute path of a process (hereinafter referred to as a request process) requesting the system call with the relative path of the access file to obtain an absolute path of the access file; and a malicious code checking unit configured to determine whether the access file is malicious by using the absolute path of the access file. The system for checking malicious programs as described above converts a relative path for a malicious program into an absolute path even when the malicious program is generated by using the relative path based on kernel system call hooking, thereby efficiently blocking new malicious programs from being generated. As a result, the system may be safely protected from the threat of new malicious programs.

Description

절대 경로 관리를 통한 악성 프로그램 검사 시스템 { A detect system against malicious processes by using the full path of access files }[0001] The present invention relates to a malicious program detection system using absolute path management,

본 발명은 시스템 콜 후킹을 기반으로 상대경로로 생성되는 악성 프로그램을 절대 경로로 변환하고, 해당 프로그램을 검사하여 경고 및 차단하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것이다.The present invention relates to a malicious program inspecting system for converting an malicious program generated by a relative path into an absolute path based on system call hooking, and inspecting and warning and blocking the corresponding program.

특히, 본 발명은 시스템 콜 후킹에 의한 악성 프로그램 및 유해 프로그램을 식별하는 것으로서, 파일을 생성할 경우 사용하는 시스템의 특정 시스템 콜의 호출되는 경로가 상대적인 경로이면 해당 상대 경로를 절대 경로로 자동으로 변환하고, 이를 통해 새로 생성되는 파일이 정상 파일인지 악성 프로그램인지 여부를 검사하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것이다.
In particular, the present invention identifies a malicious program and a harmful program by system call hooking, and when a file is generated, if the called path of a specific system call of the system used is a relative path, the relative path is automatically converted to an absolute path And a malicious program checking system through absolute path management for checking whether a newly created file is a normal file or a malicious program.

인터넷 기술의 급속한 발전과 인터넷 보급의 확대에 따라 유닉스 및 리눅스 서버의 보안을 위협하는 유해 프로그램도 갈수록 증가 추세에 있다. 이러한 악성 프로그램은 시스템에 침투하여 본래 사용하고자 하는 용도와는 무관한 작업을 처리하거나 비정상적인 기능을 수행하는 프로그램으로서, 바이러스, 웜, 트로이목마, 백도어 등의 프로그램을 통칭한다.With the rapid development of Internet technology and the spread of the Internet, harmful programs that threaten the security of Unix and Linux servers are also increasing. Such a malicious program is a program that infiltrates into a system and processes an unrelated task or performs an unusual function, and collects programs such as a virus, a worm, a Trojan horse, and a backdoor.

악성 프로그램은 그 종류에 따라서 다양한 형태로 존재한다. 이러한 악성 프로그램은 다른 프로그램 또는 운영 체제에 접근하여 코드를 변경시키거나 정보를 추출하는 동작, 비정상적인 네트워크 패킷을 송수신하는 동작, 또는, 보안 프로그램으로부터 자신의 존재를 숨기기 위한 은닉 동작 등, 일반적인 프로그램과는 다른 이상 행동(동작)을 수행한다는 공통적인 특성을 가지고 있다.Malicious programs exist in various forms depending on their type. Such a malicious program may be a program that accesses another program or an operating system to change a code or extract information, an abnormal network packet transmission or reception, or a general program such as a concealment operation for hiding its presence from a security program It has a common characteristic that it performs other abnormal behavior (action).

일반적으로, 기존의 바이러스 백신의 보안 프로그램은 주기적으로 유해 프로그램에 대한 검사를 진행하여 해당 유해 프로그램을 치료하는 방식으로 작동한다. 그러나, 이와 같은 종래의 보안 프로그램은 주기적으로 모든 파일에 대하여 악성 프로그램을 검사하는 방법을 사용하기 때문에, 시스템에 대한 부하가 많고 또한 주기적 검사 시간 사이, 즉, 검사가 진행되지 않는 동안에, 활동하는 악성 프로그램에 대하여 거의 대응할 수 없다는 문제점이 있다.
Generally, the existing antivirus security program periodically checks the harmful program and operates the harmful program. However, since such a conventional security program periodically uses a method of inspecting malicious programs for all files, there is a problem in that the load on the system is large, and during the periodic inspection time, that is, There is a problem in that it can hardly cope with the program.

이러한 문제점을 해결하기 위한 것으로는, 한국공개특허 제10-2004-0083409호에 기재된 "실시간 감시를 통한 컴퓨터 보호 방법 및 이에 따라 보호되는 컴퓨터와 그 시스템"이 있다[특허문헌 1]. 상기 문헌에는 파일 핸들링에 관련된 인터럽트 또는 이벤트를 가로챈 후 분석하여 허용되지 않은 실행 가능한 파일에 대한 변경요청을 폐기하도록 구성되어 있다. 이로 인해, 바이러스 등으로부터 컴퓨터를 보호할 수 있는 실시간 감시를 통한 컴퓨터 보호 방법을 제시하고 있다.To solve these problems, there is a method of protecting a computer through real-time monitoring and a computer and its system protected by the method described in Korean Patent Laid-Open No. 10-2004-0083409 [Patent Document 1]. The document is structured to intercept and analyze interrupts or events related to file handling to discard change requests for unauthorized executable files. As a result, it proposes a computer protection method through real-time monitoring that can protect the computer from viruses and the like.

그러나, 상기 종래 기술은 운영체제 자체에서 절대 경로를 제공하는 경우에만 컴퓨터를 보호할 수 있다. 이것은 종래 기술의 컴퓨터 보호 방법은 별도로 현재 실행 중인 프로세스의 경로를 가지고 있지 않기 때문이다. 따라서 상대 경로로 운영되는 운영 체제에서, 상대 경로로 생성되는 유해 프로그램에 대한 보안 기능은 한계가 있다는 문제점이 있다.
However, the above-described prior art can protect the computer only when the operating system itself provides an absolute path. This is because the prior art computer protection method does not have the path of the currently executing process separately. Therefore, there is a problem that the security function for the harmful program generated by the relative path is limited in the operating system operating in the relative path.

[특허문헌 1] 한국공개특허 10-2004-0072633 (2004.10.01.공개)[Patent Document 1] Korean Published Patent Application No. 10-2004-0072633 (published on October 1, 2004)

본 발명은 상기한 배경기술의 문제점을 해결하기 위하여 안출된 것으로, 악성 프로그램 및 유해 프로그램을 식별하는 것으로서, 파일을 생성할 경우 사용하는 시스템의 특정 시스템 콜의 호출되는 경로가 상대적인 경로이면 해당 상대 경로를 절대 경로로 자동으로 변환하고, 절대경로를 이용하여 새로 생성되는 파일이 정상 파일인지 악성 프로그램인지 여부를 검사하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템을 제공하는 것이다.
In order to solve the problems of the background art described above, the present invention is to identify a malicious program and a harmful program, and when a file is generated, Is automatically converted to an absolute path, and an absolute path management is performed to check whether a newly created file is a normal file or a malicious program by using an absolute path.

상기한 과제를 해결하기 위하여, 본 발명은 컴퓨터 단말에 실행되는 프로세스가 접근하는 파일을 검사하여 상기 프로세스의 악성 여부를 판단하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것으로서, 상기 컴퓨터 단말의 운영체제의 시스템콜을 후킹하는 시스템콜 후킹 제어부; 상기 컴퓨터 단말에서 실행되는 프로세스(이하 실행 프로세스)의 절대 경로를 저장하고 갱신하는 프로세스 처리부; 상기 시스템콜에서 접근을 요청한 파일(이하 접근 파일)의 경로가 절대 경로인지 상대 경로인지를 판단하고, 상대 경로인 경우 상기 접근 파일의 절대 경로가 저장되어 있는지를 판단하는 절대경로 판단부; 상기 시스템콜을 요청한 프로세스(이하 요청 프로세스)의 절대 경로와, 상기 접근 파일의 상대 경로를 조합하여, 상기 접근 파일의 절대 경로를 구하는 절대경로 조합부; 및, 상기 접근 파일의 절대 경로를 이용하여, 상기 접근 파일에 대하여 악성 프로그램 여부를 판단하는 악성코드 검사부를 포함하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a system for inspecting a malicious program through an absolute path management method for inspecting a file accessed by a process executed in a computer terminal to determine whether the process is malicious, A system call hooking control unit for hooking a system call of the system call; A process processing unit for storing and updating an absolute path of a process executed by the computer terminal (hereinafter referred to as an execution process); An absolute path determination unit for determining whether a path of a file requested to access in the system call (hereinafter referred to as an access file) is an absolute path or a relative path, and determining whether an absolute path of the access file is stored in the case of a relative path; An absolute path combining unit for obtaining an absolute path of the access file by combining an absolute path of a process requesting the system call (hereinafter referred to as a request process) and a relative path of the access file; And a malicious code checking unit for determining whether or not the access file is a malicious program by using the absolute path of the access file.

또한, 본 발명은 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것으로서, 상기 시스템콜 후킹 제어부는 프로세스의 생성, 경로 변경, 종료에 대한 시스템콜, 또는 파일의 접근에 대한 시스템콜에 한하여 후킹하는 것을 특징으로 한다.In addition, the present invention relates to a malicious program checking system through absolute path management, wherein the system call hooking control unit hooks only a system call for generation of a process, a path change, a termination, or a system call for accessing a file .

또한, 본 발명은 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것으로서, 상기 프로세스 처리부는 상기 실행 프로세스가 생성될 때, 상속받으려는 부모 프로세스의 디렉터리 정보를 이용하여 절대 경로를 정하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a system for inspecting a malicious program through absolute path management, wherein the process processor determines an absolute path by using directory information of a parent process to be inherited when the execution process is generated.

또한, 본 발명은 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것으로서, 상기 프로세스 처리부는 상기 실행 프로세스가 생성될 때, 얻어지는 부모 프로세스의 아이디를 통해, 상기 부모 프로세스의 현재 디렉터리의 속성을 조회하고, 조회된 디렉터리로 상기 실행 프로세스의 절대 경로를 정하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a system for inspecting a malicious program through absolute path management, wherein when the execution process is generated, an attribute of a current directory of the parent process is inquired through an ID of the obtained parent process, And determines the absolute path of the execution process to the inquired directory.

또한, 본 발명은 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것으로서, 상기 절대경로 판단부는, 사전에 정해진 자주 사용되는 파일에 대하여 절대경로를 저장해두고, 상기 접근 파일이 상대 경로인 경우, 상기 접근 파일의 절대경로가 저장되어 있는지를 판단하고, 상기 접근 파일의 절대경로가 저장되어 있으면, 상기 접근 파일의 상대 경로를 절대경로로 변환하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a system for inspecting a malicious program through absolute path management, wherein the absolute path determination unit stores an absolute path for a predetermined frequently used file, and when the access file is a relative path, Determining whether an absolute path of the access file is stored; and if the absolute path of the access file is stored, converting the relative path of the access file into an absolute path.

또한, 본 발명은 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것으로서, 상기 절대경로 판단부는 상기 자주 사용되는 파일에 대하여, 파일의 경로가 변경되면 변경된 경로로 절대경로를 변경하는 것을 특징으로 한다.
According to another aspect of the present invention, there is provided a system for inspecting a malicious program through absolute path management, wherein the absolute path determination unit changes an absolute path to a frequently used file when the file path is changed.

상술한 바와 같이, 본 발명에 따른 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 의하면, 커널 시스템 콜 후킹으로 악성 프로그램이 상대경로로 생성되는 경우에도 이를 절대 경로로 변환하여 악성프로그램이 신규로 생성되는 것을 효율적으로 차단하고, 이로 인해, 새로운 악성프로그램의 위협으로부터 시스템을 안전하게 보호 할 수 있는 효과가 얻어진다.As described above, according to the malicious program checking system through the absolute path management according to the present invention, even when a malicious program is generated as a relative path by kernel system call hooking, the malicious program is converted into an absolute path, Thereby effectively protecting the system from the threat of a new malicious program.

또한, 본 발명에 따른 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 의하면, 운영체제의 커널 수준에서 악성프로세스의 신규 설치를 실시간으로 검사함으로써, 종래 기술에 의해 주기적으로 악성 프로그램 여부를 검사할 때 1차 검사 후 2차 검사되기 전에 신규로 발생될 수 있는 악성 프로세스의 생성을 근본적으로 차단할 수 있는 효과가 얻어진다.In addition, according to the malicious program checking system through the absolute path management according to the present invention, when a new installation of a malicious process is checked in real time at the kernel level of the operating system, It is possible to fundamentally block the generation of a malicious process that may be newly generated before the second inspection.

또한, 본 발명에 따른 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 의하면, 신규로 생성되는 파일에 대해서만 악성 프로그램을 검사하기 때문에 기존에 모든 파일을 검사하는 기존 악성 프로그램 검사 시스템에 비해서 불필요한 파일을 검사함으로써 생기는 시스템 자원의 낭비를 줄이는 효과가 얻어진다.
In addition, according to the malicious program checking system through the absolute path management according to the present invention, malicious programs are inspected only for newly created files, so that unnecessary files are inspected as compared to existing malicious program inspection systems that inspect all files Thereby reducing the waste of system resources.

도 1은 본 발명을 실시하기 위한 전체 시스템에 대한 구성도.
도 2는 본 발명의 일실시예에 따른 감시대상 시스템콜의 종류에 대한 표.
도 3은 본 발명의 일실시예에 따른 악성 프로그램 검사 시스템의 구성에 대한 블록도.
도 4는 본 발명의 일실시예에 따른 시스템콜 후킹 제어부의 구성에 대한 블록도.
도 5는 본 발명의 일실시예에 따른 절대경로 판단부의 구성에 대한 블록도.
도 6은 본 발명의 일실시예에 따른 절대경로 변환부의 구성에 대한 블록도.
도 7은 본 발명의 일실시예에 따른 프로세스 처리부의 구성에 대한 블록도.
도 8은 본 발명의 일실시예에 따른 악성프로그램 검사부의 구성에 대한 블록도.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of an entire system for implementing the present invention. FIG.
2 is a table of types of monitored system calls according to an embodiment of the present invention;
3 is a block diagram of a configuration of a malicious program checking system according to an embodiment of the present invention;
4 is a block diagram of a configuration of a system call hook control unit according to an embodiment of the present invention;
5 is a block diagram of a configuration of an absolute path determination unit according to an embodiment of the present invention;
6 is a block diagram of a configuration of an absolute path transforming unit according to an embodiment of the present invention;
7 is a block diagram of a configuration of a process processing unit according to an embodiment of the present invention;
8 is a block diagram of a configuration of a malicious program checking unit according to an embodiment of the present invention;

이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
In the description of the present invention, the same parts are denoted by the same reference numerals, and repetitive description thereof will be omitted.

먼저, 본 발명을 실시하기 위한 전체 시스템의 구성의 예들에 대하여 도 1을 참조하여 설명한다.First, examples of the configuration of the entire system for carrying out the present invention will be described with reference to Fig.

도 1에서 보는 바와 같이, 본 발명은 통상의 컴퓨터 시스템 내에서 실시된다. 즉, 본 발명의 실시를 위한 전체 시스템은 컴퓨터 시스템 상에서의 하드웨어(25), 운영체제(OS, 20), 그 운영체제 상에서 수행되는 프로세스(10), 악성 프로그램 검사 시스템(30)으로 구성된다. 데이터를 저장하기 위한 데이터베이스(40)를 추가 구성될 수 있다.1, the present invention is implemented in a conventional computer system. That is, the overall system for implementing the present invention comprises hardware 25, an operating system (OS) 20, a process 10 performed on the operating system, and a malicious program checking system 30 on a computer system. A database 40 for storing data can be additionally configured.

하드웨어(25)는 입출력 장치, 저장장치(하드디스크 등), 네트워크 장치(네트워크 카드 등) 등 시스템의 물리적 자원을 말한다. 운영체제(20)는 컴퓨터 시스템을 운영하는 시스템 프로그램으로서, 통상 커널계층이라고 부르기도 한다. 일반적으로 사용자의 컴퓨터 프로그램들은 사용자 계층에서 프로세스로 실행된다.The hardware 25 refers to physical resources of the system such as an input / output device, a storage device (hard disk, etc.), a network device (a network card, etc.) The operating system 20 is a system program for operating a computer system, which is also commonly referred to as a kernel layer. Typically, user computer programs run as a process at the user level.

프로세스(10)는 컴퓨터 프로그램이 운영체제 상에서 실행되는 상태를 말하는 것으로서, 프로그램, (프로그램) 코드라 부르기도 한다. 따라서 악성행위를 수행하는 프로세스를 악성 코드, 악성 프로그램, 악성 프로세스 등으로 혼용한다.The process 10 refers to a state in which the computer program is executed on the operating system, and is also referred to as a program (program) code. Therefore, malicious code, malicious programs, and malicious processes are used in combination.

프로세스(10)는 컴퓨터 시스템의 자원(하드웨어 자원)을 이용하기 위하여, 시스템 동적 라이브러리(21)(Win32.dll 등)의 API(Application programming interface) 함수를 호출한다. 이때 API 함수를 호출하는 것을 시스템콜(system call)이라고 부르기로 한다.The process 10 calls an application programming interface (API) function of the system dynamic library 21 (Win32.dll, etc.) to utilize the resources (hardware resources) of the computer system. At this time, calling the API function is called a system call.

운영체제의 커널계층(20)은 시스템 처리모듈(22), 드라이버(23) 등으로 구성된다. 드라이버(23)는 하드웨어 장치(25)를 직접 제어하기 위한 시스템 프로그램이다. 따라서 호출된 API 함수는 커널계층의 시스템 처리모듈(22)에서 처리되어, 필요한 경우 드라이버(23)에 의해 시스템 자원에 접근한다.The kernel layer 20 of the operating system is composed of a system processing module 22, a driver 23, and the like. The driver 23 is a system program for directly controlling the hardware device 25. Therefore, the called API function is processed in the system processing module 22 of the kernel layer, and the system resource is accessed by the driver 23 when necessary.

악성 프로그램 검사 시스템(30)은 프로세스(10)의 시스템콜을 후킹하여, 프로세스(10)가 요청하는 파일(또는 접근 파일)을 검사한다. 즉, 접근 파일을 검사함으로써 악성 여부를 조사(또는 판단)한다. 이때, 시스템콜을 후킹하기 위하여, 시스템콜 후킹모듈를 포함한다. 악성 프로그램 검사 시스템(30)은 시스템콜 후킹모듈을 통해 통상의 후킹(hooking) 방법으로 시스템 동적 라이브러리(21)를 후킹한다.The malicious program checking system 30 hooks the system call of the process 10 and checks the file (or access file) requested by the process 10. [ That is, by checking the access file, it is checked (or judged) whether or not the file is malicious. At this time, in order to hook a system call, a system call hooking module is included. The malicious program checking system 30 hooks the system dynamic library 21 through the system call hooking module in a normal hooking manner.

먼저, 악성 프로그램 검사 시스템(30)은 후킹된 시스템콜이 감시대상(또는 분석대상)인 시스템콜(또는 API 함수)인지를 확인하여, 감시대상이 아닌 경우 시스템 동적 라이브러리(21)로 상기 시스템콜을 넘겨 실행하게 한다. 감시대상 여부를 확인하기 위하여, 감시대상 API 함수(또는 시스템콜)를 리스트로 사전에 저장하여 관리한다.First, the malicious program checking system 30 checks whether the hooked system call is a system call (or an API function) to be monitored (or an analysis target). If the hooked system call is not a monitoring target, To run it. In order to confirm whether or not to be monitored, API functions (or system calls) to be monitored are stored in advance in a list and managed.

감시대상 API 함수는 도 2에서 보는 바와 같다. 도 2에서 보는 바와 같이, 크게 프로세스 관련 시스템콜과 파일관련 시스템콜로 구분된다. 프로세스 관련 시스템콜은 프로세스의 생성(fork) 등이 있고, 파일관련 시스템콜은 파일 생성, 열기, 이름변경 등에 관한 API 함수이다.The monitored API function is shown in FIG. As shown in FIG. 2, it is largely divided into a process-related system call and a file-related system call. Process-related system calls include forking of processes, and file-related system calls are API functions related to file creation, opening, and renaming.

시스템콜(API 함수)이 감시대상이면, 악성 프로그램 검사 시스템(30)은 후킹된 시스템콜을 분석하여, 프로세스(10)가 요청한 파일에 대한 절대 경로를 검출한다. 그리고 절대 경로를 이용하여, 실제 저장된 파일을 검사한다. 즉, 파일의 내용, 파일의 종류나 위치 등을 사전에 정해진 검사 규칙에 따라 검사한다. 이러한 검사를 통해, 해당 프로세스(10)가 악성 여부인지를 판단하거나, 새로 생성된 파일이 악성 프로그램과 관련된 파일인지를 판단한다.If the system call (API function) is to be monitored, the malicious program inspection system 30 analyzes the hooked system call and detects the absolute path to the file requested by the process 10. [ Then, using the absolute path, the actual stored file is checked. That is, the contents of the file, the type and position of the file, and the like are inspected according to predetermined inspection rules. Through such inspection, it is determined whether the process 10 is malicious or whether a newly created file is a file related to a malicious program.

이때, 악성행위 여부를 판단하기 위한 판단조건은 사전에 구비된다. 판단조건은 과거에 악성 프로세스로 밝혀진 행위들을 분석하여 경험적으로 만들어진 것이다.At this time, a judgment condition for judging whether or not the malicious action is performed is provided in advance. The criterion is empirically created by analyzing past malicious processes.

한편, 시스템콜이 프로세스와 관련된 함수이면, 악성 프로그램 검사 시스템(30)은 프로세스의 절대 경로를 획득하여 데이터베이스(40)에 저장해둔다.On the other hand, if the system call is a function related to the process, the malicious program inspection system 30 obtains the absolute path of the process and stores it in the database 40.

다음으로, 악성 프로그램 검사 시스템(30)은 요청사항이 악성행위인지를 판단하여, 악성행위인 경우 상기 시스템콜을 차단한다. 즉, 시스템콜을 시스템 동적 라이브러리(21)에 넘겨주지 않는다. 더 나아가, 악성 프로그램 검사 시스템(30)은 해당 프로세스(또는 악성 프로세스)를 중단시키거나, 사용자에게 중단시킬 것을 경고하고 요청할 수 있다.Next, the malicious program inspection system 30 determines whether the request is a malicious action, and blocks the system call if malicious action is detected. In other words, the system call is not passed to the system dynamic library 21. Furthermore, the malicious program inspection system 30 may stop and / or request the user to stop the process (or malicious process) or to stop the process.

요청사항(또는 시스템콜)이 악성행위가 아니라고 판단되면, 악성 프로그램 검사 시스템(30)은 시스템콜을 커널계층(20)으로 넘겨준다. 즉, 해당 프로세스의 절대 경로만 저장하고 해당 시스템콜은 커널에 의해 처리되도록 한다.If it is determined that the request (or system call) is not a malicious action, the malicious program checking system 30 passes the system call to the kernel layer 20. That is, it stores only the absolute path of the process, and the system calls are handled by the kernel.

데이터베이스(40)는 파일 또는 프로세스들의 절대경로를 저장하는 절대경로DB(41), 및, 파일에 대하여 악성 여부를 판단하는 판단조건을 저장하는 판단조건DB(42)로 이루어진다. 그러나 상기 데이터베이스(40)의 구성은 바람직한 일실시예일 뿐이며, 구체적인 장치를 개발하는데 있어서, 접근 및 검색의 용이성 및 효율성 등을 감안하여 데이터베이스 구축이론에 의하여 다른 구조로 구성될 수 있다.
The database 40 comprises an absolute path DB 41 for storing an absolute path of a file or processes, and a judgment condition DB 42 for storing a judgment condition for judging whether or not the file is malicious. However, the configuration of the database 40 is only a preferred embodiment. In the development of a specific device, the database 40 may have a different structure in consideration of ease of access and retrieval, efficiency, and the like.

다음으로, 본 발명의 일실시예에 따른 절대 경로 관리를 통한 악성 프로그램 검사 시스템의 구성을 도 3을 참조하여 보다 구체적으로 설명한다.Next, the configuration of the malicious program checking system through the absolute path management according to an embodiment of the present invention will be described in more detail with reference to FIG.

도 3에서 보는 바와 같이, 본 발명에 따른 악성 프로그램 검사 시스템(30)은 시스템콜 후킹 제어부(31), 절대경로 판단부(32), 절대경로 변환부(33), 프로세스 처리부(34), 및, 악성프로그램 검사부(35)로 구성된다.3, the malicious program inspection system 30 according to the present invention includes a system call hook control unit 31, an absolute path determination unit 32, an absolute path conversion unit 33, a process processing unit 34, , And a malicious program checking unit 35. [

시스템콜 후킹 제어부(31)는 컴퓨터 단말의 운영체제의 시스템콜을 후킹한다. 이를 위해, 시스템콜 후킹 제어부(31)는 운영체제의 시스템콜(System call) 테이블의 주소를 자신의 테이블 주소로 대치시킨다. 이때, 자신의 테이블 주소란 후킹한 시스템콜을 처리하는 모듈(또는 시스템콜 후킹 모듈)의 메모리상 주소를 말한다. 따라서 시스템콜이 호출되면, 시스템콜 후킹 제어부(31)의 시스템콜 처리 모듈이 호출되어 실행된다. 구체적인 수행 방법이 도 4에 도시되고 있다.The system call hooking control unit 31 hooks the system call of the operating system of the computer terminal. To this end, the system call hooking control unit 31 replaces the address of the system call table of the operating system with its own table address. At this time, the table address of the user refers to the memory address of the module (or the system call hooking module) that processes the hooked system call. Therefore, when the system call is called, the system call processing module of the system call hook control unit 31 is called and executed. A specific implementation method is shown in Fig.

도 4에서 보는 바와 같이, 후킹 제어부(31)가 시스템상(또는 메모리상)에 로딩되면 초기화되어 커널 메모리에 할당되고, 운영체제의 시스템콜 테이블에 접근한다. 만약 운영체제의 시스템콜의 접근이 성공하면, 후킹 제어부(31)는 운영체제의 시스템콜 테이블 중에서 감시대상인 시스템콜에 대해서 자신의 시스템콜 처리 모듈의 주소로 대치한다.As shown in FIG. 4, when the hooking controller 31 is loaded on the system (or on the memory), it is initialized and allocated to the kernel memory, and accesses the system call table of the operating system. If access to the system call of the operating system is successful, the hooking controller 31 substitutes the system call processing module of the operating system for the monitored system call in the system call table of the operating system.

앞서 도 2를 참조하여 설명한 바와 같이, 감시대상의 시스템콜은 프로세스 관련 시스템콜, 또는 파일 관련 시스템콜 등으로 구분된다.
As described above with reference to FIG. 2, the system call to be monitored is classified into a process-related system call or a file-related system call.

다음으로, 프로세스 처리부(34)에 대하여 도 5를 참조하여 설명한다.Next, the process processor 34 will be described with reference to Fig.

프로세스 처리부(34)는 컴퓨터 단말에서 실행되는 프로세스(이하 실행 프로세스)의 절대 경로를 저장하고 갱신한다. 특히, 프로세스 처리부(34)는 실행 프로세스의 현재 경로를 관리하고 항상 최신의 절대경로로 갱신한다.The process processing unit 34 stores and updates the absolute path of a process (hereinafter referred to as an execution process) executed in the computer terminal. In particular, the process processor 34 manages the current path of the execution process and always updates with the latest absolute path.

도 5에서 보는 바와 같이, 프로세스 처리부(34)는 프로세스와 관련된 시스템콜에 의해 수행된다. 즉, 프로세스 관련 시스템콜은 프로세스 생성과 관련된 시스템콜(sys_fork, sys_execve), 프로세스의 경로를 변경하는 시스템콜(sys_chdir), 프로세스를 종료하는 시스템콜(sys_kill) 등이 있다.As shown in FIG. 5, the process processing unit 34 is performed by a system call related to a process. In other words, a process related system call includes a system call (sys_fork, sys_execve) related to process creation, a system call (sys_chdir) that changes the path of the process, and a system call (sys_kill) to terminate the process.

즉, 앞서 후킹 제어부(31)에 의해 위와 같은 시스템콜이 후킹되면, 프로세스 처리부(34)는 후킹된 시스템콜을 이용하여 프로세스의 절대경로와 관련된 작업을 수행한다.That is, when the system call is hooked by the hooking control unit 31, the process processor 34 performs a task related to the absolute path of the process using the hooked system call.

먼저, 신규 프로세스 생성시, 즉, 프로세스를 생성하는 시스템콜이 호출되면, 프로세스의 현재 경로가 존재하는지를 확인한다. 즉, 시스템콜에 의해 프로세스의 현재 위치의 절대경로를 획득할 수 있는지를 확인한다. 만약 현재 위치의 절대경로를 획득할 수 있으면, 상기 절대경로를 프로세스의 경로 데이터베이스에 해당 프로세스의 경로로서 저장한다.First, when a new process is created, that is, when a system call for creating a process is called, it is confirmed whether or not the current path of the process exists. That is, it is confirmed whether the absolute path of the current position of the process can be obtained by the system call. If the absolute path of the current location can be obtained, the absolute path is stored in the path database of the process as the path of the corresponding process.

만약 시스템콜에 의하여 실행 프로세스의 프로세스 절대경로를 구할 수 없는 경우, 부모 프로세스를 이용하여 실행 프로세스의 절대경로를 추출한다. 이를 위해, 먼저, 상기 실행 프로세스의 부모 프로세스가 존재하는지를 확인한다. 그리고 부모 프로세스의 현재 디렉터리의 속성을 조회한다. 조회한 디렉터리를 상기 프로세스의 경로 데이터베이스(또는 프로세스 경로 테이블)에 저장한다.If the process absolute path of the execution process can not be obtained by the system call, the absolute path of the execution process is extracted using the parent process. To do this, first, it is checked whether a parent process of the execution process exists. It then looks up the properties of the current directory of the parent process. And stores the inquired directory in the path database (or process path table) of the process.

즉, 프로세스가 생성될 때, 부모 프로세스의 식별정보(또는 아이디)도 조회가 가능하다. 따라서 부모 프로세스의 아이디(또는 식별정보)로 부모 프로세스에 접근하여 속성을 읽어온다. 이때, 현재 디렉터리 속성에는 부모 프로세스의 현재 디렉터리의 절대 경로를 가지고 있다. 상기 부모 프로세스의 현재 디렉터리의 속성값을, 생성되는 프로세스의 절대경로로 정하여 저장한다.That is, when the process is created, the identification information (or ID) of the parent process can also be inquired. Therefore, it accesses the parent process with the parent process ID (or identification information) and reads the property. At this time, the current directory property has the absolute path of the current directory of the parent process. And stores the property value of the current directory of the parent process in the absolute path of the generated process.

생성되어 실행되는 프로세스는 부모 프로세스의 모든 속성을 동일하게 상속받는 것이 운영체제(OS)의 기본적인 동작 방식이다. 따라서 실행되는 프로세스는 기본적으로 부모 프로세스와 동일한 경로에서 실행이 되기 때문에, 부모 프로세스의 절대 경로를 해당 프로세스의 절대경로로 이용하는 것이 바람직하다.
The process that is created and executed inherits all the properties of the parent process in the same way as the operating system (OS). Therefore, it is preferable to use the absolute path of the parent process as the absolute path of the process, because the executed process is basically executed in the same path as the parent process.

다음으로, 프로세스의 현재 경로가 변경되면, 변경된 경로가 시스템 콜 후킹 제어부(31)에 의해 전송되고, 이때, 변경된 경로를 프로세스 경로 테이블에서 갱신된다. 변경된 경로가 없는 경우, 앞서 프로세스의 생성의 경우와 같이, 부모 프로세스로부터 변경된 경로를 상속받는다. 그래서 상속받은 경로(변경된 프로세스)를 프로세스 경로 테이블에 갱신한다.Next, when the current path of the process is changed, the changed path is transmitted by the system call hooking control unit 31, and at this time, the changed path is updated in the process path table. If there is no modified path, it inherits the changed path from the parent process, as in the case of the creation of the process. Thus, the inherited path (changed process) is updated in the process path table.

다음으로, 프로세스가 종료되는 경우, 즉, kill 등에 의해 해당 프로세스가 종료되는 경우, 프로세스 테이블(또는 절대경로DB)에서 해당 프로세스에 대한 현재 경로를 삭제한다.Next, when the process is terminated, that is, when the process is terminated by a kill or the like, the current path to the process is deleted from the process table (or the absolute path DB).

즉, 프로세스 처리부(34)는 실행 프로세스들에 대한 현재 경로를 항상 갱신하여 유지한다. 프로세스 처리부(34)는 프로세스의 절대경로가 변경될 수 있는 모든 시스템콜을 분석하여 프로세스의 경로(특히 절대경로)에 대한 현재 상태를 유지하여 데이터베이스에 저장한다.
That is, the process processor 34 always updates and maintains the current path to the execution processes. The process processing unit 34 analyzes all the system calls in which the absolute path of the process can be changed and maintains the current state of the path of the process (particularly, the absolute path) and stores the current state in the database.

다음으로, 절대경로 판단부(32)에 대하여 도 6을 참조하여 구체적으로 설명한다.Next, the absolute path determination unit 32 will be described in detail with reference to FIG.

절대경로 판단부(32)는 시스템콜 후킹 제어부(31)에 의해 시스템콜 후킹 모듈이 삽입된 후, 후킹된 시스템콜에 대하여 파일(또는 접근 파일)의 생성 및 삭제 시, 요청되는 파일의 경로가 절대 경로 또는 상대 경로 여부를 판단한다.When the system call hooking module 31 inserts the system call hooking module by the system call hooking module 31, the absolute path deciding module 32 determines whether the path of the requested file is < RTI ID = 0.0 > Whether an absolute path or a relative path is determined.

먼저, 절대경로 판단부(32)는 사전에 자주 사용되는 파일에 대하여 절대경로를 저장해둔다. 자주 사용하는 파일이란 운영체제 시스템의 실행파일 폴더(예를 들어, bin 폴더 등)에 들어있는 실행 파일 등의 경로 등을 말한다.First, the absolute path determination unit 32 stores an absolute path for a frequently used file. Frequently used files are executable files in the operating system's executable file folder (for example, bin folder).

이와 같이 자주 시용되는 파일에 대하여, 파일 인덱스(inode)를 식별정보로 이용하여 절대경로를 저장해둔다. 즉, 파일 인덱스와 절대경로를 데이터베이스화하여 저장해둔다. 아이노드(inode) 등 파일 인덱싱은 운영체제에서 사용하는 파일의 인덱싱 방식을 말한다. 파일 인덱스(아이노드)는 각 파일에 고유의 아이디를 부여하는 것이므로, 식별정보로서 이용될 수 있다.For such frequently used files, the absolute path is stored using the file index (inode) as the identification information. That is, the file index and the absolute path are stored in a database. File indexing, such as inodes, refers to indexing of files used by the operating system. Since the file index (inode) gives each file a unique ID, it can be used as identification information.

또한, 자주 사용되는 파일은 파일의 변경 또는 삭제시 자동으로 갱신된다.Frequently used files are automatically updated when files are changed or deleted.

다음으로, 파일(또는 접근 파일)이 생성 또는 오픈되는 경우를 설명한다. 즉, 파일을 생성하거나 오픈하는 시스템콜, 예를 들어, Sys_create, sys_open 등이 호출되면, 이때 생성되거나 오픈되는 파일의 경로를 판단한다. 파일의 경로는 시스템콜의 인수로 넘겨받고, 해당 파일의 인수를 대상으로 판단한다.Next, a case where a file (or an access file) is created or opened will be described. That is, when a system call that creates or opens a file, for example, Sys_create, sys_open, etc., is called, determines the path of the file to be created or opened at this time. The file path is passed as an argument of the system call, and the file argument is determined.

파일의 경로가 상대 경로가 아닌 경우, 즉, 절대 경로인 경우, 절대경로 판단부(32)는 이를 악성 프로그램 검사부(35)로 바로 전달한다.If the path of the file is not a relative path, that is, if it is an absolute path, the absolute path determination unit 32 directly transmits the path to the malicious program checking unit 35.

파일의 경로가 상대 경로인 경우, 해당 파일에 대하여 절대 경로가 데이터베이스에 저장되어 있는지를 확인한다. 즉, 해당 파일의 경로에 대한 저장된 절대 경로가 있는지를 데이터베이스에 조회한다.If the file path is relative, check that the absolute path to the file is stored in the database. That is, it inquires the database whether there is an absolute path stored in the path of the file.

만약 파일의 절대 경로가 존재하면, 저장된 파일의 절대 경로를 악성 프로그램 검사부(35)에 전달한다. 그리고 파일의 절대 경로가 존재하지 않으면, 해당 파일의 경로를 절대경로 변환부(33)로 전달한다.If the absolute path of the file exists, the absolute path of the stored file is transmitted to the malicious program checking unit 35. If the absolute path of the file does not exist, the path of the file is transferred to the absolute path converting unit 33.

파일의 절대 경로가 존재하는 경우란, 앞서 설명한 "자주 사용하는 파일"에 대하여 파일 인덱스(inode)와 절대경로를 데이터베이스화하여 저장한 경우를 말한다. 이때, 해당 파일의 인덱스(inode)를 비교하여 저장된 파일 인덱스를 검색한다. 검색된 파일 인덱스에 의한 절대경로가 해당 파일의 절대경로로 선정된다.The case where the absolute path of the file exists is a case where the file index (inode) and the absolute path are stored in a database for the above-mentioned "frequently used file ". At this time, the index of the file is compared with each other to search the stored file index. The absolute path of the searched file index is selected as the absolute path of the file.

즉, 절대경로 판단부(32)는 사전에 정해진 자주 사용되는 파일에 대하여 절대경로를 저장해두고, 상기 접근 파일이 상대 경로인 경우, 상기 접근 파일의 절대경로가 저장되어 있는지를 판단한다. 그래서 상기 접근 파일의 절대경로가 저장되어 있으면, 상기 접근 파일의 상대 경로를 절대경로로 변환한다.That is, the absolute path determination unit 32 stores an absolute path for a predetermined frequently used file and determines whether the absolute path of the access file is stored if the access file is a relative path. Thus, if the absolute path of the access file is stored, the relative path of the access file is converted into an absolute path.

한편, 시스템콜이 파일의 파일명 변경 등과 같은 요청을 하면, 파일의 경로가 절대 경로인 경우 이전에 저장된 파일의 절대경로를 해당 경로로 변경한다. 또한, 넘겨받은 파일의 경로가 상대 경로이면서 해당 파일 경로에 대하여 절대 경로가 저장되어 있는 경우에도, 저장된 절대 경로로 변경(또는 갱신)한다.On the other hand, when the system call makes a request such as a file name change of the file, if the path of the file is an absolute path, the absolute path of the previously stored file is changed to the corresponding path. Also, even if the path of the transferred file is a relative path and an absolute path is stored for the corresponding file path, the path is changed (or updated) to the stored absolute path.

파일명 변경(rename) 시에도 파일 인덱스(inode)가 시스템콜의 인자로서 전달되기 때문에, 파일 인덱스를 통해 데이터베이스화된 파일의 절대 경로에서도 갱신할 수 있다.Since the file index (inode) is passed as an argument of the system call even when the file name is rename, it can be updated in the absolute path of the file which is databaseized through the file index.

또한, 파일의 삭제(예를 들어, unlink 등 시스템콜)인 시스템콜을 처리하는 경우, 해당 파일이 삭제되면, 절대경로 데이터베이스에서도 해당 파일의 절대경로 데이터를 삭제하는 것이 바람직하다.
In addition, when processing a system call such as deleting a file (for example, a system call such as unlink), if the file is deleted, it is desirable to delete the absolute path data of the file also in the absolute path database.

다음으로, 절대경로 변환부(33)에 대하여 도 7을 참조하여 구체적으로 설명한다.Next, the absolute path converting unit 33 will be described in detail with reference to FIG.

도 7에서 보는 바와 같이, 절대경로 변환부(33)는 시스템콜을 요청한 프로세스(또는 요청 프로세스)의 절대 경로와, 상기 접근 파일의 상대 경로를 조합하여, 상기 접근 파일의 절대 경로를 구한다.As shown in FIG. 7, the absolute path conversion unit 33 combines the absolute path of the process (or request process) requesting the system call and the relative path of the access file to obtain the absolute path of the access file.

즉, 절대경로 판단부(32)에 의해 전달된 상대 경로를, 절대경로 변환부(33)가 프로세스 처리부(34)에서 저장하고 있는 프로세스 절대 경로와 조합한다. 즉, 상대 경로로 전달된 접근 파일의 경로(또는 접근 파일 경로)를 구하기 위하여, 절대경로 판단부(32)는 현재 프로세스의 식별자(아이디)를 기반으로 저장된 프로세스의 절대 경로를 요청하고, 프로세스의 절대 경로와 파일의 상대 경로를 조합하여 조화된 절대 경로를 악성 프로그램 검사부(35)로 전달한다.
That is, the relative path transmitted by the absolute path determination unit 32 is combined with the process absolute path stored in the process processing unit 34 by the absolute path conversion unit 33. That is, in order to obtain the path (or the access file path) of the access file transferred in the relative path, the absolute path determination unit 32 requests the absolute path of the stored process based on the identifier (ID) of the current process, And sends the harmonized absolute path to the malicious program checker 35 by combining the absolute path and the relative path of the file.

다음으로, 악성 프로그램 판단부(35)에 대하여 도 8을 참조하여 설명한다.Next, the malicious program determining unit 35 will be described with reference to FIG.

도 8에서 보는 바와 같이, 악성 프로그램 판단부(35)는 접근 파일의 절대 경로를 이용하여, 상기 접근 파일에 대하여 악성 프로그램 여부를 판단한다.As shown in FIG. 8, the malicious program determining unit 35 determines whether or not the access file is a malicious program by using the absolute path of the access file.

즉, 악성 프로그램 판단부(35)는 절대경로 판단부(32) 또는 절대경로 변환부(33)로부터 전달된 절대 경로를 이용하여 악성 여부를 판단한다. 악성 여부의 판단은 종래 파일의 내용 및 파일의 절대 경로의 특성 등을 미리 정해진 규칙에 따라 판단한다.That is, the malicious program determining unit 35 determines whether the malicious program is malicious using the absolute path from the absolute path determining unit 32 or the absolute path converting unit 33. The judgment of whether or not the file is malicious is made by judging the content of the conventional file and the characteristics of the absolute path of the file according to a predetermined rule.

예를 들어, 일반 사용자 프로그램(또는 프로세스)이 접근하지 않아야 하는 파일인데 접근 요청을 받거나, 절대 경로로 저장된 파일을 읽어와서 특정한 패턴이 파일 내에 저장되어 있는 등을 분석하여 악성 여부를 판단한다.For example, it is a file that should not be accessed by a normal user program (or a process), and it is determined whether it is malicious by receiving an access request or reading a file stored in an absolute path and storing a specific pattern in the file.

만약 악성으로 판단되면, 요청된 시스템콜을 차단한다. 즉, 시스템콜을 시스템 동적 라이브러리(21)에 넘겨주지 않는다. 더 나아가, 해당 프로세스(또는 악성 프로세스)를 중단시키거나, 사용자에게 중단시킬 것을 경고하고 요청할 수 있다.If it is judged to be malicious, it blocks the requested system call. In other words, the system call is not passed to the system dynamic library 21. Further, the process (or a malicious process) may be interrupted or the user may be warned and interrupted.

이상, 본 발명자에 의해서 이루어진 발명을 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
Although the present invention has been described in detail with reference to the above embodiments, it is needless to say that the present invention is not limited to the above-described embodiments, and various modifications may be made without departing from the spirit of the present invention.

10 : 프로세스 20 : 커널 계층
21 : 시스템 동적 라이브러리 22 : 시스템 처리 모듈
23 : 드라이버 25: 하드웨어 장치
30 : 검사 시스템 31 : 시스템콜 후킹 제어부
32 : 절대경로 판단부 33 : 절대경로 변환부
34 : 프로세스 처리부 35 : 악성프로그램 검사부
40 : 데이터베이스 41 : 절대경로DB
42 : 판단조건DB
10: Process 20: Kernel Hierarchy
21: system dynamic library 22: system processing module
23: Driver 25: Hardware Device
30: Inspection system 31: System call hooking control unit
32: absolute path determining unit 33: absolute path converting unit
34: Process Processor 35: Malicious Program Inspector
40: Database 41: Absolute path DB
42: Judgment condition DB

Claims (6)

컴퓨터 단말에 실행되는 프로세스가 접근하는 파일을 검사하여 상기 프로세스의 악성 여부를 판단하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템으로서,
상기 컴퓨터 단말의 운영체제의 시스템콜을 후킹하는 시스템콜 후킹 제어부;
상기 컴퓨터 단말에서 실행되는 프로세스(이하 실행 프로세스)의 절대 경로를 저장하고 갱신하는 프로세스 처리부;
상기 시스템콜에서 접근을 요청한 파일(이하 접근 파일)의 경로가 절대 경로인지 상대 경로인지를 판단하는 절대경로 판단부;
상기 시스템콜을 요청한 프로세스(이하 요청 프로세스)의 절대 경로와, 상기 접근 파일의 상대 경로를 조합하여, 상기 접근 파일의 절대 경로를 구하는 절대경로 변환부; 및,
상기 접근 파일의 절대 경로를 이용하여, 상기 접근 파일에 대하여 악성 프로그램 여부를 판단하는 악성코드 검사부를 포함하는 것을 특징으로 하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템.
1. A malicious program checking system through absolute path management for checking a file accessed by a process executed in a computer terminal to determine whether the process is malicious,
A system call hooking control unit for hooking a system call of an operating system of the computer terminal;
A process processing unit for storing and updating an absolute path of a process executed by the computer terminal (hereinafter referred to as an execution process);
An absolute path determination unit for determining whether a path of a file (hereinafter referred to as an access file) requested to access in the system call is an absolute path or a relative path;
An absolute path converting unit for obtaining an absolute path of the access file by combining an absolute path of a process requesting the system call (hereinafter referred to as a requesting process) and a relative path of the access file; And
And a malicious code checking unit for determining whether or not the access file is a malicious program by using an absolute path of the access file.
제1항에 있어서,
상기 시스템콜 후킹 제어부는 프로세스의 생성, 경로 변경, 종료에 대한 시스템콜, 또는 파일의 접근에 대한 시스템콜에 한하여 후킹하는 것을 특징으로 하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템.
The method according to claim 1,
Wherein the system call hooking control unit hooks only a system call for creation of a process, a path change, an end system call, or a file access.
제1항에 있어서,
상기 프로세스 처리부는 상기 실행 프로세스가 생성될 때, 상속받으려는 부모 프로세스의 디렉터리 정보를 이용하여 절대 경로를 정하는 것을 특징으로 하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템.
The method according to claim 1,
Wherein the process processor determines an absolute path using directory information of a parent process to be inherited when the execution process is generated.
제3항에 있어서,
상기 프로세스 처리부는 상기 실행 프로세스가 생성될 때, 얻어지는 부모 프로세스의 아이디를 통해, 상기 부모 프로세스의 현재 디렉터리의 속성을 조회하고, 조회된 디렉터리로 상기 실행 프로세스의 절대 경로를 정하는 것을 특징으로 하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템.
The method of claim 3,
Wherein the process processor inquires the attributes of the current directory of the parent process through the obtained ID of the parent process when the execution process is created and sets the absolute path of the execution process to the inquired directory. Malicious program inspection system through management.
제1항에 있어서,
상기 절대경로 판단부는,
사전에 정해진 자주 사용되는 파일에 대하여 절대경로를 저장해두고,
상기 접근 파일이 상대 경로인 경우, 상기 접근 파일의 절대경로가 저장되어 있는지를 판단하고,
상기 접근 파일의 절대경로가 저장되어 있으면, 상기 접근 파일의 상대 경로를 절대경로로 변환하는 것을 특징으로 하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템.
The method according to claim 1,
Wherein the absolute path determiner comprises:
You can store absolute paths for predefined frequently used files,
Determining whether the absolute path of the access file is stored if the access file is a relative path,
And if the absolute path of the access file is stored, converting the relative path of the access file into an absolute path.
제1항에 있어서,
상기 절대경로 판단부는 상기 자주 사용되는 파일에 대하여, 파일의 경로가 변경되면 변경된 경로로 절대경로를 변경하는 것을 특징으로 하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템.
The method according to claim 1,
Wherein the absolute path determination unit changes the absolute path to the changed path when the file path is changed for the frequently used file.
KR1020130094161A 2013-08-08 2013-08-08 A detect system against malicious processes by using the full path of access files KR101503827B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130094161A KR101503827B1 (en) 2013-08-08 2013-08-08 A detect system against malicious processes by using the full path of access files

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130094161A KR101503827B1 (en) 2013-08-08 2013-08-08 A detect system against malicious processes by using the full path of access files

Publications (2)

Publication Number Publication Date
KR20150017925A true KR20150017925A (en) 2015-02-23
KR101503827B1 KR101503827B1 (en) 2015-03-19

Family

ID=53046537

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130094161A KR101503827B1 (en) 2013-08-08 2013-08-08 A detect system against malicious processes by using the full path of access files

Country Status (1)

Country Link
KR (1) KR101503827B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
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
KR101857001B1 (en) * 2017-03-03 2018-05-14 숭실대학교산학협력단 Android dynamic loading file extraction method, recording medium and system for performing the method
CN116186699A (en) * 2023-01-19 2023-05-30 安芯网盾(北京)科技有限公司 PHP file access detection method and device
CN116796308A (en) * 2023-02-03 2023-09-22 安芯网盾(北京)科技有限公司 Method and device for detecting executable program of camouflage process based on Linux kernel

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249215A (en) * 1995-03-14 1996-09-27 Mitsubishi Electric Corp Method for managing program operation information
US8185727B2 (en) 2008-04-24 2012-05-22 Dell Products, Lp Method of using an information handling system having a boot file, and an information handling system and machine-executable code for carrying out the method
JP2011076438A (en) 2009-09-30 2011-04-14 Canon Inc Process generation method, process generation apparatus and program
KR101091777B1 (en) * 2010-07-16 2011-12-08 주식회사 파수닷컴 Apparatus for real-time inspecting malicious code in digital rights management environment and recording medium storing program for executing method of the same in computer

Cited By (7)

* Cited by examiner, † Cited by third party
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
KR101857001B1 (en) * 2017-03-03 2018-05-14 숭실대학교산학협력단 Android dynamic loading file extraction method, recording medium and system for performing the method
US10372444B2 (en) 2017-03-03 2019-08-06 Foundation Of Soongsil University-Industry Cooperation Android dynamic loading file extraction method, recording medium and system for performing the method
CN116186699A (en) * 2023-01-19 2023-05-30 安芯网盾(北京)科技有限公司 PHP file access detection method and device
CN116186699B (en) * 2023-01-19 2023-08-22 安芯网盾(北京)科技有限公司 PHP file access detection method and device
CN116796308A (en) * 2023-02-03 2023-09-22 安芯网盾(北京)科技有限公司 Method and device for detecting executable program of camouflage process based on Linux kernel
CN116796308B (en) * 2023-02-03 2024-04-12 安芯网盾(北京)科技有限公司 Method and device for detecting executable program of camouflage process based on Linux kernel

Also Published As

Publication number Publication date
KR101503827B1 (en) 2015-03-19

Similar Documents

Publication Publication Date Title
US10642978B2 (en) Information security techniques including detection, interdiction and/or mitigation of memory injection attacks
US10893068B1 (en) Ransomware file modification prevention technique
RU2571723C2 (en) System and method of reducing load on operating system when executing antivirus application
RU2645268C2 (en) Complex classification for detecting malware
KR101647487B1 (en) Analysis system and method for patch file
US9781144B1 (en) Determining duplicate objects for malware analysis using environmental/context information
US20140053267A1 (en) Method for identifying malicious executables
US8572738B2 (en) On demand virus scan
US10216934B2 (en) Inferential exploit attempt detection
RU2723665C1 (en) Dynamic reputation indicator for optimization of computer security operations
CN109074450B (en) Threat defense techniques
US9906537B2 (en) System, method, and computer program product for conditionally performing an action based on an attribute
CN103077353A (en) Method and device for actively defending rogue program
KR101503827B1 (en) A detect system against malicious processes by using the full path of access files
CN103793649A (en) Method and device for cloud-based safety scanning of files
US8381300B2 (en) Offline extraction of configuration data
CN113176926B (en) API dynamic monitoring method and system based on virtual machine introspection technology
JP2007109016A (en) Access policy creation system, method and program
JP5411966B2 (en) Monitoring device and monitoring method
US20230376591A1 (en) Method and apparatus for processing security events in container virtualization environment
CN116048554A (en) Container mirror image security scanning method and device, electronic equipment and storage medium
CN112597492B (en) Binary executable file modification monitoring method based on Windows kernel
WO2017114341A1 (en) Root virus removal method and apparatus, and electronic device
US10809924B2 (en) Executable memory protection
KR102017016B1 (en) Apparatus and method for malware

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180412

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190612

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200310

Year of fee payment: 6