KR20220016726A - Apparatus, method, computer-readable storage medium and computer program for detecting hidden process running on system using filter driver - Google Patents

Apparatus, method, computer-readable storage medium and computer program for detecting hidden process running on system using filter driver Download PDF

Info

Publication number
KR20220016726A
KR20220016726A KR1020200097032A KR20200097032A KR20220016726A KR 20220016726 A KR20220016726 A KR 20220016726A KR 1020200097032 A KR1020200097032 A KR 1020200097032A KR 20200097032 A KR20200097032 A KR 20200097032A KR 20220016726 A KR20220016726 A KR 20220016726A
Authority
KR
South Korea
Prior art keywords
active
user
list
hidden
processes
Prior art date
Application number
KR1020200097032A
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 KR1020200097032A priority Critical patent/KR20220016726A/en
Publication of KR20220016726A publication Critical patent/KR20220016726A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1066Hiding content
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • G06F2221/0748

Landscapes

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

Abstract

According to various embodiments, in a method for detecting a hidden process in a system using a filter driver, the method may comprise: an operation of detecting a generation or termination of a process in a kernel mode for all the processes performed in a system to be monitored; an operation of storing and updating an active process list comprising an active process determined to be in an executing state in the kernel mode, based on the detected generation or termination state of the process; and an operation of obtaining a user process list in a user mode, and determining the active process missing from the user process list among the active process included in the active process list as a hidden process by referring to the active process list. Therefore, the present invention is capable of improving a security of a used system.

Description

필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 장치, 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램{APPARATUS, METHOD, COMPUTER-READABLE STORAGE MEDIUM AND COMPUTER PROGRAM FOR DETECTING HIDDEN PROCESS RUNNING ON SYSTEM USING FILTER DRIVER}Apparatus, method, computer-readable recording medium and computer program for detecting hidden processes in a system using a filter driver

본 발명은 필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 장치, 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램에 관한 것이다.The present invention relates to an apparatus and method for detecting a hidden process in a system using a filter driver, a computer-readable recording medium, and a computer program.

최근, 악성코드 등과 같이 정보체계를 공격하는 해킹 공격이 빈번하게 발생하면서, 시그너처를 이용하여 알려진 악성코드만을 탐지하는 백신뿐만 아니라, 정보체계의 프로세스 및 메모리 운영 전반을 지속적으로 감시하는 정보보호체계의 개발이 활발히 이루어지고 있다.Recently, as hacking attacks that attack information systems such as malicious codes occur frequently, not only vaccines that detect only known malicious codes using signatures, but also information protection systems that continuously monitor the entire process and memory operation of information systems. Development is actively taking place.

이와 반대로, 정보보호체계에 의한 악성코드의 탐지를 막기 위해 악성코드의 실행 여부를 알기 어렵게 하는 다양한 은닉 기법 또한 새롭게 나타나고 있다. 예를 들어, 가상머신 기반의 악성코드 검사체계를 우회하기 위해 악성행위를 하기 전 가상머신 환경이 탐지될 경우 악성코드의 작동을 중단하는 가상머신 회피 기법, 또는 악성코드 프로세스의 작동 여부를 숨기기 위해 운영체제에서 제공하는 프로세스 목록에서 해당 프로세스가 나타나지 않게 하는 프로세스 은닉 기법 등이 활용되고 있다.Conversely, in order to prevent the detection of malicious code by the information protection system, various hiding techniques that make it difficult to know whether the malicious code is being executed or not are also newly emerging. For example, in order to bypass the virtual machine-based malicious code inspection system, a virtual machine evasion technique that stops the operation of malicious code when a virtual machine environment is detected before performing a malicious action, or to hide the operation of a malicious code process A process hiding technique that prevents the process from appearing in the process list provided by the operating system is being used.

이 중 프로세스 은닉 기법은 악성코드 사용의 의심을 피하기 위해 자주 이용되고 있는 기법 중 하나로서, 이러한 예시로는 유저모드 함수의 후킹을 이용해서 프로세스 목록이 표출되는 단계를 차단하고 사용자가 해당 프로세스명을 확인하지 못하게 하는 유저모드 후킹 기법, 커널모드 함수를 후킹하는 커널모드 후킹 기법, 윈도우의 EPROCESS 구조체와 같이 커널 내의 프로세스 목록을 관리하는 구조체를 조작하는 DKOM(Direct Kernel Object Manipulation)과 같은 기법이 있다. Among them, the process hiding technique is one of the techniques frequently used to avoid suspicion of using malicious code. In this example, the process list is displayed by using the hooking of the user mode function, and the user enters the name of the process. There are methods such as the user mode hooking technique that prevents confirmation, the kernel mode hooking technique that hooks the kernel mode functions, and the DKOM (Direct Kernel Object Manipulation) which manipulates the structure that manages the process list in the kernel, such as the EPROCESS structure of Windows.

이러한 프로세스 은닉 기법을 발견하기 위하여, 메모리 덤프를 확보한 후 VAD(Virtual Address Descriptor)를 직접 분석하는 포렌식 기법, 또는 자료구조에 대한 가시성을 비교적 얻기 쉬운 가상머신 상의 시스템 분석을 통한 은닉 프로세스 탐지 기법이 주로 연구된 바 있다. 하지만, 이러한 연구들의 경우 분석 절차가 복잡하여 검사에 오랜 시간이 걸리고, 운영체제를 가상환경 상에서 동작시켜야 하여 일반적인 시스템 대상으로는 적용하기 어렵다는 문제가 있다. To discover this process hiding technique, a forensic technique that directly analyzes VAD (Virtual Address Descriptor) after securing a memory dump, or a hidden process detection technique through system analysis on a virtual machine that is relatively easy to obtain visibility into data structures has been mainly studied. However, in the case of these studies, the analysis procedure is complicated, so it takes a long time to check, and it is difficult to apply it to a general system target because the operating system must be operated in a virtual environment.

본 발명의 실시예는, 필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 장치, 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램을 제공할 수 있다.An embodiment of the present invention may provide an apparatus and method for detecting a hidden process in a system using a filter driver, a computer-readable recording medium, and a computer program.

예를 들어, 본 발명의 실시예는, 필터 드라이버를 기초로 가상 환경이 아닌 실제 시스템의 운용 환경에서 은닉 프로세스의 발생을 자동으로 탐지하고 감시하여 운영 중인 시스템의 보안성을 향상시킬 수 있다. For example, the embodiment of the present invention can improve the security of the operating system by automatically detecting and monitoring the occurrence of the hidden process in the operating environment of the real system rather than the virtual environment based on the filter driver.

또한, 다양한 은닉 기법을 대상으로 적용 가능한 은닉 프로세스를 탐지하고 이를 해당 시스템 사용자에게 통지할 수 있는 시스템 및 방법을 고안하여 악성코드 탐지 확률을 높이고 적시에 악성코드 치료 등의 조치를 취하는 기술을 제공하고자 한다. In addition, by devising a system and method that can detect applicable hidden processes by targeting various concealment techniques and notify the user of the system, we want to provide technology to increase the probability of detecting malicious codes and to take measures such as treatment of malicious codes in a timely manner. do.

본 발명이 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The problem to be solved by the present invention is not limited to those mentioned above, and another problem to be solved that is not mentioned will be clearly understood by those of ordinary skill in the art to which the present invention belongs from the following description.

본 발명의 실시예에 따르면, 필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 방법에 있어서, 감시 대상 시스템에서 수행되는 모든 프로세스에 대하여 프로세스의 생성 또는 종료를 커널모드에서 감지하는 동작; 상기 감지된 프로세스의 생성 또는 종료 상태에 기초하여, 실행 중인 상태로 판별된 활성 프로세스를 포함하는 활성 프로세스 목록을 커널모드에서 저장 및 갱신하는 동작; 및 유저모드에서 사용자 프로세스 목록을 획득하고, 상기 활성 프로세스 목록을 참조하여 상기 활성 프로세스 목록에 포함된 활성 프로세스 중 상기 사용자 프로세스 목록에서 누락되어 있는 활성 프로세스를 은닉 프로세스로 판별하는 동작을 포함할 수 있다.According to an embodiment of the present invention, there is provided a method for detecting a hidden process in a system using a filter driver, comprising: detecting creation or termination of a process in a kernel mode for all processes performed in a system to be monitored; storing and updating an active process list including the active process determined to be in the running state in the kernel mode based on the detected process creation or termination state; and obtaining a user process list in the user mode, and determining an active process missing from the user process list among active processes included in the active process list as a hidden process by referring to the active process list. .

본 발명의 실시예에 따르면, 상기 감지하는 동작은, PsSetCreateProcessNotifyRoutineEx() 함수를 통해 커널모드에서 프로세스 생성 또는 종료를 감지하여 활성 프로세스의 생성 또는 삭제를 수행하는 동작을 포함할 수 있다.According to an embodiment of the present invention, the detecting operation may include an operation of generating or deleting an active process by detecting process creation or termination in kernel mode through a PsSetCreateProcessNotifyRoutineEx() function.

본 발명의 실시예에 따르면, 상기 판별하는 동작은, Win32 API 중 EnumProcess() 함수를 통해 유저모드에서 상기 사용자 프로세스 목록을 획득하는 동작을 포함할 수 있다.According to an embodiment of the present invention, the determining operation may include acquiring the user process list in the user mode through an EnumProcess() function among Win32 APIs.

본 발명의 실시예에 따르면, 상기 저장 및 갱신하는 동작은, 상기 활성 프로세스 목록을 커널모드 및 유저모드에서 참조 가능한 공유 메모리에 저장하는 동작을 포함할 수 있다.According to an embodiment of the present invention, the storing and updating may include storing the active process list in a shared memory that can be referenced in kernel mode and user mode.

본 발명의 실시예에 따르면, 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서, 상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 감시 대상 시스템에서 수행되는 모든 프로세스에 대하여 프로세스의 생성 또는 종료를 커널모드에서 감지하는 동작; 상기 감지된 프로세스의 생성 또는 종료 상태에 기초하여, 실행 중인 상태로 판별된 활성 프로세스를 포함하는 활성 프로세스 목록을 커널모드에서 저장 및 갱신하는 동작; 및 유저모드에서 사용자 프로세스 목록을 획득하고, 상기 활성 프로세스 목록을 참조하여 상기 활성 프로세스 목록에 포함된 활성 프로세스 중 상기 사용자 프로세스 목록에서 누락되어 있는 활성 프로세스를 은닉 프로세스로 판별하는 동작을 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함할 수 있다.According to an embodiment of the present invention, as a computer-readable recording medium storing a computer program, when the computer program is executed by a processor, the creation or termination of the process for all processes executed in the system to be monitored is performed in kernel mode. motion detected in; storing and updating an active process list including the active process determined to be in the running state in the kernel mode based on the detected process creation or termination state; and obtaining a user process list in the user mode, and determining, as a hidden process, an active process missing from the user process list among active processes included in the active process list by referring to the active process list. It may include instructions for the processor to execute.

본 발명의 실시예에 따르면, 컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 감시 대상 시스템에서 수행되는 모든 프로세스에 대하여 프로세스의 생성 또는 종료를 커널모드에서 감지하는 동작; 상기 감지된 프로세스의 생성 또는 종료 상태에 기초하여, 실행 중인 상태로 판별된 활성 프로세스를 포함하는 활성 프로세스 목록을 커널모드에서 저장 및 갱신하는 동작; 및 유저모드에서 사용자 프로세스 목록을 획득하고, 상기 활성 프로세스 목록을 참조하여 상기 활성 프로세스 목록에 포함된 활성 프로세스 중 상기 사용자 프로세스 목록에서 누락되어 있는 활성 프로세스를 은닉 프로세스로 판별하는 동작을 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함할 수 있다. According to an embodiment of the present invention, as a computer program stored in a computer-readable recording medium, when the computer program is executed by the processor, the creation or termination of the process for all processes executed in the system to be monitored is performed in kernel mode. motion detected in; storing and updating an active process list including an active process determined to be in a running state in a kernel mode based on the detected process creation or termination state; and obtaining a user process list in the user mode, and determining, as a hidden process, an active process missing from the user process list among active processes included in the active process list by referring to the active process list. It may include instructions for the processor to execute.

본 발명의 실시예에 따르면, 필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 장치에 있어서, 감시 대상 시스템에서 수행되는 모든 프로세스에 대하여 프로세스의 생성 또는 종료를 커널모드에서 감지하는 필터 드라이버; 상기 감지된 프로세스의 생성 또는 종료 상태에 기초하여, 실행 중인 상태로 판별된 활성 프로세스를 포함하는 활성 프로세스 목록을 커널모드에서 저장 및 갱신하는 공유 메모리; 및 유저모드에서 사용자 프로세스 목록을 획득하고, 상기 활성 프로세스 목록을 참조하여 상기 활성 프로세스 목록에 포함된 활성 프로세스 중 상기 사용자 프로세스 목록에서 누락되어 있는 활성 프로세스를 은닉 프로세스로 판별하는 은닉 프로세스 탐지 에이전트를 포함할 수 있다. According to an embodiment of the present invention, there is provided an apparatus for detecting hidden processes in a system using a filter driver, comprising: a filter driver for detecting the creation or termination of processes in kernel mode with respect to all processes performed in a system to be monitored; a shared memory for storing and updating an active process list including an active process determined to be in a running state in a kernel mode based on the detected process creation or termination state; and a hidden process detection agent that obtains a user process list in user mode, and determines, as a hidden process, an active process missing from the user process list among active processes included in the active process list by referring to the active process list can do.

본 발명의 다양한 실시 예에 따른 필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 장치, 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램은, 사용자가 가상 환경이 아닌 실제 시스템을 운용함에 있어서, 은닉 프로세스의 감시 및 탐지를 자동으로 수행하여, 악성코드 등에 의한 시스템 침해 여부를 효과적으로 인지할 수 있게 함으로써, 사용 시스템의 보안성을 향상시킬 수 있다.An apparatus, method, computer-readable recording medium, and computer program for detecting a hidden process in a system using a filter driver according to various embodiments of the present disclosure monitor and detect a hidden process when a user operates a real system rather than a virtual environment By automatically performing the system, it is possible to effectively recognize whether the system has been infringed by malicious code, etc., thereby improving the security of the used system.

도 1은 감시 대상 시스템에서 동작하는 운영체제의 유저모드와 커널모드를 설명하기 위한 예시도이다.
도 2는 본 발명의 일 실시예에 따른 필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 장치의 블록도이다.
도 3은 감시 대상 시스템 내에서 본 발명의 일 실시예에 따른 필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 장치의 동작을 설명하기 위한 예시도이다.
도 4는 본 발명의 일 실시예에 따른 필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 장치의 동작 흐름을 설명하기 위한 예시도이다.
도 5는 필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 방법의 흐름도이다.
1 is an exemplary diagram for explaining a user mode and a kernel mode of an operating system operating in a monitoring target system.
2 is a block diagram of an apparatus for detecting a hidden process in a system using a filter driver according to an embodiment of the present invention.
3 is an exemplary diagram for explaining the operation of an apparatus for detecting a hidden process in a system using a filter driver according to an embodiment of the present invention in a monitoring target system.
4 is an exemplary diagram for explaining an operation flow of an apparatus for detecting a hidden process in a system using a filter driver according to an embodiment of the present invention.
5 is a flowchart of a method for detecting a hidden process in a system using a filter driver.

먼저, 본 발명의 장점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되는 실시 예들을 참조하면 명확해질 것이다. 여기에서, 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 발명의 범주를 명확하게 이해할 수 있도록 하기 위해 예시적으로 제공되는 것이므로, 본 발명의 기술적 범위는 청구항들에 의해 정의되어야 할 것이다.First, the advantages and features of the present invention, and a method for achieving them will become clear with reference to the embodiments described below in detail in conjunction with the accompanying drawings. Here, the present invention is not limited to the embodiments disclosed below, but may be implemented in a variety of different forms, and only these embodiments allow the disclosure of the present invention to be complete, and are common in the technical field to which the present invention pertains. The technical scope of the present invention should be defined by the claims since it is provided by way of example so that those with knowledge can clearly understand the scope of the invention.

아울러, 아래의 본 발명을 설명함에 있어서 공지 기능 또는 구성 등에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들인 것으로, 이는 사용자, 운용자 등의 의도 또는 관례 등에 따라 달라질 수 있음은 물론이다. 그러므로, 그 정의는 본 명세서의 전반에 걸쳐 기술되는 기술사상을 토대로 이루어져야 할 것이다.In addition, in the following description of the present invention, if it is determined that a detailed description of a well-known function or configuration may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. And, the terms to be described later are terms defined in consideration of functions in the present invention, which may vary depending on the intentions or customs of users, operators, etc., of course. Therefore, the definition should be made based on the technical idea described throughout this specification.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 대하여 상세하게 설명한다. 이하, 설명에서 프로세서(processor)란, 컴퓨터에서 수행되는 동작을 제어하는 처리장치(ex. CPU; central processing unit)를 의미하며, 프로세스(process)란 컴퓨터에서 수행되는 동작을 의미한다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Hereinafter, in the description, a processor refers to a processing unit (eg, a central processing unit; CPU) that controls operations performed in a computer, and a process refers to an operation performed in a computer.

도 1은 감시 대상 시스템에서 동작하는 운영체제의 유저모드와 커널모드를 설명하기 위한 예시도이다. 1 is an exemplary diagram for explaining a user mode and a kernel mode of an operating system operating in a monitoring target system.

도 1을 참조하면, 운영체제는 하드웨어를 제어하고 컴퓨터 자원을 관리하며, 응용 프로그램들의 수행을 도와주며, 사용자와 하드웨어 사이의 매개체 역할을 하는 소프트웨어이다. 이러한 운영체제에서의 동작 형태는 사용자 인터페이스에 대한 편리성과 안정성을 위하여 유저모드의 동작과 커널모드의 동작으로 나뉘어져 있다. Referring to FIG. 1 , an operating system is software that controls hardware, manages computer resources, helps execution of application programs, and acts as an intermediary between a user and hardware. The operation form in such an operating system is divided into a user mode operation and a kernel mode operation for the convenience and stability of the user interface.

유저모드에서는 운영체제의 시스템 영역을 제외한 데이터 영역에 접근이 가능하여, 하드웨어에 직접 접근할 수 없으나 오류로 인해 시스템 동작이 불가능한 상황을 방지할 수 있다. 커널모드에서는 모든 시스템 자원에 접근이 가능하지만 오류 발생 시 시스템 동작이 불가능할 수 있다. In the user mode, access to the data area except for the system area of the operating system is possible, so it is possible to prevent a situation in which direct access to the hardware is not possible but the system operation is impossible due to an error. In kernel mode, access to all system resources is possible, but system operation may not be possible when an error occurs.

즉, 유저모드에서는 사용자가 컴퓨터 환경을 사용하기 위한 일반적인 작업(ex. 문서 작업, 인터넷 사용 등)이 이루어지며, 여러 서비스나 응용 프로그램들이 하드웨어 자원을 관리하는 시스템 영역에 요청할 수 있는 환경을 제공한다. 이에 따라, 유저모드에서 사용자는 직접적으로 하드웨어를 사용할 수 없으며 운영체제에서 제공하는 API와 같은 인터페이스를 통해, 수행하고자 하는 동작을 커널에 요청할 수 있고, 커널은 요청을 처리하기 전에 해당 요청이 정상적인 요청인지 확인하여 오류를 최소화 할 수 있다. That is, in the user mode, general tasks for the user to use the computer environment (eg, document work, Internet use, etc.) are performed, and an environment in which various services or application programs can make a request to the system area that manages hardware resources is provided. . Accordingly, in the user mode, the user cannot directly use the hardware and can request the operation to be performed from the kernel through an interface such as an API provided by the operating system, and the kernel determines whether the request is a normal request before processing the request. This can be checked to minimize errors.

은닉 프로세스란 악성코드 프로세스의 작동 여부를 숨기기 위해, 운영체제에서 제공하는 프로세스 목록에서 악성코드 프로세스가 나타나지 않도록 숨기는 다양한 기법을 통해 수행되는 동작들을 포함한다. 본 발명은 운영체제 내에서 활성화 된 모든 프로세스를 수집하는 기법을 통해, 실제 활성화된 프로세스를 획득하여 상술한 은닉 기법을 사용하고 있는 은닉 프로세스를 탐지하는 기술을 제안한다. The hidden process includes actions performed through various techniques to hide the malicious code process from appearing in the process list provided by the operating system in order to hide whether the malicious code process is operating or not. The present invention proposes a technique for detecting a hidden process using the above-described concealment technique by acquiring an actually activated process through a technique for collecting all processes activated in the operating system.

도 2는 본 발명의 일 실시예에 따른 필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 장치(100)의 블록도이다. 2 is a block diagram of an apparatus 100 for detecting a hidden process in a system using a filter driver according to an embodiment of the present invention.

도 2을 참조하면, 본 발명의 일 실시예에 따른 필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 장치(100)는 필터 드라이버(110), 공유 메모리(130) 및 은닉 프로세스 탐지 에이전트(150)를 포함할 수 있다. Referring to FIG. 2 , the apparatus 100 for detecting a hidden process in a system using a filter driver according to an embodiment of the present invention includes a filter driver 110 , a shared memory 130 and a hidden process detection agent 150 . can

필터 드라이버(110)(filter driver)는 운영체제 내에서 특정한 함수를 수행하는 모듈, 드라이버 또는 프로그램으로서 커널모드에서 동작할 수 있다. 필터 드라이버(110)는 감시 대상 시스템에서 수행되는 모든 프로세스에 대하여 프로세스의 생성 또는 종료를 커널모드에서 감지할 수 있다. 예를 들어, 필터 드라이버(110)는 커널모드에서 PsSetCreateProcessNotifyRoutineEx() 함수를 통해 새롭게 활성화 되는 프로세스와, 기존 활성화된 프로세스의 종료를 감지하여, 현재 생성되어 활성 상태인 활성 프로세스를 목록화할 수 있다. 필터 드라이버(110)는 새롭게 활성화되는 프로세스를 감지할 경우, 활성 프로세스 목록에 해당 프로세스를 활성 프로세스로서 추가하고, 해당 프로세스가 종료되었을 경우에는 활성 프로세스 목록에서 해당 프로세스를 제거하여 활성 프로세스 목록을 갱신할 수 있다The filter driver 110 (filter driver) may operate in kernel mode as a module, driver, or program that performs a specific function in the operating system. The filter driver 110 may detect the creation or termination of processes in the kernel mode for all processes executed in the monitoring target system. For example, the filter driver 110 may list a process that is newly activated through the PsSetCreateProcessNotifyRoutineEx() function in the kernel mode and an active process that is currently created and is active by detecting termination of an existing activated process. When the filter driver 110 detects a newly activated process, it adds the process as an active process to the active process list, and when the process is terminated, the filter driver 110 removes the process from the active process list to update the active process list. can

공유 메모리(130)(shared memory)는 컴퓨터 환경에서 여러 프로그램이 동시에 접근할 수 있는 메모리(ex. RAM)를 포함할 수 있다. 공유 메모리(130)는 환경에 따라 프로그램은 하나의 프로세서에서나 여러 개의 프로세서에서 실행될 수 있다. 공유 메모리(130)는 필터 드라이버(110)가 감지한 프로세스의 생성 또는 종료 상태에 기초하여, 현재 실행 중인 상태로 판별된 활성 프로세스로 구성된 활성 프로세스 목록을 커널모드에서 저장 및 갱신할 수 있다. 공유 메모리(130)는 커널모드의 필터 드라이버(110)로부터 유저모드의 은닉 프로세스 탐지 에이전트(150)에 정보를 전달하는 인터페이스 역할을 수행하며, 필터 드라이버(110)의 활성 프로세스 목록이 갱신될 경우 공유 메모리(130)에 저장된 활성 프로세스 목록이 갱신될 수 있다.The shared memory 130 may include memory (eg, RAM) that can be accessed by several programs simultaneously in a computer environment. In the shared memory 130 , a program may be executed in one processor or several processors according to an environment. The shared memory 130 may store and update an active process list including active processes determined to be currently running based on the generation or termination state of the process detected by the filter driver 110 in the kernel mode. The shared memory 130 serves as an interface for transferring information from the filter driver 110 in kernel mode to the hidden process detection agent 150 in user mode, and is shared when the active process list of the filter driver 110 is updated. The list of active processes stored in the memory 130 may be updated.

은닉 프로세스 탐지 에이전트(150)는 운영체제 내에서 특정한 함수를 수행하는 모듈, 드라이버 또는 프로그램으로서 유저모드에서 동작할 수 있다. 은닉 프로세스 탐지 에이전트(150)는 유저모드에서 사용자 프로세스 목록을 획득할 수 있다. 예를 들어, 은닉 프로세스 탐지 에이전트(150)는 Win32 API 중 EnumProcess() 함수를 통해, 유저모드의 사용자 입장에서 API를 통해 확인할 수 있는 사용자 관점의 사용자 프로세스 목록을 획득할 수 있다.The hidden process detection agent 150 may operate in the user mode as a module, driver, or program that performs a specific function in the operating system. The hidden process detection agent 150 may acquire a list of user processes in the user mode. For example, the hidden process detection agent 150 may obtain a list of user processes from the user's point of view that can be confirmed through the API from the user's point of view in the user mode through the EnumProcess() function among the Win32 APIs.

은닉 프로세스 탐지 에이전트(150)는 공유 메모리(130)의 활성 프로세스 목록을 참조하여 활성 프로세스 목록에 포함된 활성 프로세스 중 사용자 프로세스 목록에서 누락되어 있는 활성 프로세스를 은닉 프로세스로 판별할 수 있다. 즉, 사용자 프로세스 목록에 누락되어 있는 프로세스는 실제로 동작하고 있음에도, 운영체제의 프로세스를 확인할 수 있는 API에 대해 고의로 은닉된 것이라 간주하여, 해당 프로세스를 은닉 프로세스로 판별할 수 있다. The hidden process detection agent 150 may refer to the active process list of the shared memory 130 and determine an active process missing from the user process list among active processes included in the active process list as the hidden process. That is, even though a process missing from the user process list is actually operating, it is considered as intentionally hidden from the API that can check the process of the operating system, and the process can be identified as a hidden process.

필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 장치(100)는 프로세서(미도시), 입출력 인터페이스(미도시), 및/또는 메모리(미도시)를 더 포함할 수 있다. 상기 프로세서는, 중앙 처리 장치(CPU; central processing unit) 등을 포함하여 다양한 데이터의 처리 및 연산을 수행 할 수 있다. 예를 들어, 상기 프로세서의 제어에 기초하여, 상기 장치(100)의 구성 요소들, 예를 들어, 필터 드라이버(110), 공유 메모리(130) 및 은닉 프로세스 탐지 에이전트(150)가 제어될 수 있다. The apparatus 100 for detecting a hidden process in a system using a filter driver may further include a processor (not shown), an input/output interface (not shown), and/or a memory (not shown). The processor may include a central processing unit (CPU) and the like to process and operate various data. For example, based on the control of the processor, components of the device 100 , for example, the filter driver 110 , the shared memory 130 , and the hidden process detection agent 150 may be controlled. .

또한, 본 발명의 실시예에 따르면, 필터 드라이버(110), 공유 메모리(130) 및 은닉 프로세스 탐지 에이전트(150)는 상기 프로세서에 포함될 수 있다. 예를 들어, 필터 드라이버(110) 및 공유 메모리(130)가 수행하는 동작은 커널모드에서 프로세서에 의한 동작으로 이해될 수 있고, 은닉 프로세스 탐지 에이전트(150)가 수행하는 동작은 유저모드에서 프로세서에 의한 동작으로 이해될 수 있다.Also, according to an embodiment of the present invention, the filter driver 110 , the shared memory 130 , and the hidden process detection agent 150 may be included in the processor. For example, the operations performed by the filter driver 110 and the shared memory 130 may be understood as operations by the processor in the kernel mode, and the operations performed by the hidden process detection agent 150 are performed by the processor in the user mode. It can be understood as an operation by

도 3은 감시 대상 시스템 내에서 본 발명의 일 실시예에 따른 필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 장치(100)의 동작을 설명하기 위한 예시도이다. 3 is an exemplary diagram for explaining the operation of the apparatus 100 for detecting a hidden process in a system using a filter driver according to an embodiment of the present invention in a monitoring target system.

도 3을 참조하면, 필터 드라이버(110)는 커널모드에서 PsSetCreateProcessNotifyRoutineEx() 함수를 통해 새롭게 활성화 되는 프로세스와, 종료되는 프로세스를 감지하고, 활성 프로세스에 대한 생성 또는 삭제를 기록하여, 현재 생성되어 활성 상태인 프로세스를 목록화할 수 있다. Referring to FIG. 3 , the filter driver 110 detects a newly activated process and a terminated process through the PsSetCreateProcessNotifyRoutineEx() function in the kernel mode, records creation or deletion of the active process, and records the currently created and active state. In-process can be listed.

공유 메모리(130)는 필터 드라이버(110)가 감지한 프로세스의 생성 또는 종료 상태에 기초하여, 현재 실행 중인 상태로 판별된 활성 프로세스를 포함하는 활성 프로세스 목록을 커널모드에서 저장 및 갱신할 수 있다. The shared memory 130 may store and update the active process list including the active process determined as the currently running state in the kernel mode based on the generation or termination state of the process detected by the filter driver 110 .

은닉 프로세스 탐지 에이전트(150)는 공유 메모리(130)의 활성 프로세스 목록을 참조하여 실제로 동작되어 활성화 중인 전체 프로세스 목록을 확인할 수 있다. 또한, 은닉 프로세스 탐지 에이전트(150)는 Win32 API를 통해, 유저모드의 사용자 입장에서 확인할 수 있는 사용자 관점의 사용자 프로세스 목록을 획득할 수 있다. 이에 따라, 은닉 프로세스 탐지 에이전트(150)는 공유 메모리(130)의 활성 프로세스 목록을 참조하여 활성 프로세스 목록에 포함된 활성 프로세스 중 사용자 프로세스 목록에서 누락되어 있는 활성 프로세스를 은닉 프로세스로 판별할 수 있다. The hidden process detection agent 150 may refer to the active process list of the shared memory 130 to check the entire list of processes that are actually operated and are being activated. In addition, the hidden process detection agent 150 may obtain a list of user processes from the user's point of view that can be confirmed from the user's point of view in the user mode through the Win32 API. Accordingly, the hidden process detection agent 150 may refer to the active process list of the shared memory 130 and determine an active process missing from the user process list among the active processes included in the active process list as the hidden process.

도 4는 본 발명의 일 실시예에 따른 필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 장치(100)의 동작 흐름을 설명하기 위한 예시도이다.4 is an exemplary diagram for explaining an operation flow of the apparatus 100 for detecting a hidden process in a system using a filter driver according to an embodiment of the present invention.

도 4를 참조하면, 필터 드라이버(110)는 감시 대상 시스템에서 수행되는 모든 프로세스에 대하여 프로세스의 종료(S210), 또는 프로세스의 생성(S220)에 대한 이벤트를 커널모드에서 감지할 수 있다.Referring to FIG. 4 , the filter driver 110 may detect an event for process termination (S210) or process creation (S220) for all processes performed in the monitoring target system in kernel mode.

공유 메모리(130)는 필터 드라이버(110)가 활성 중이었던 프로세스의 종료 이벤트를 감지 시 활성 프로세스 목록에서 해당 활성 프로세스를 삭제할 수 있다(S230). 공유 메모리(130)는 필터 드라이버(110)가 새로운 프로세스의 생성 이벤트를 감지 시 활성 프로세스 목록에 해당 프로세스를 활성 프로세스로 추가할 수 있다. The shared memory 130 may delete the corresponding active process from the active process list when the filter driver 110 detects an end event of the active process ( S230 ). When the filter driver 110 detects a new process creation event, the shared memory 130 may add the process to the active process list as an active process.

은닉 프로세스 탐지 에이전트(150)는 Win32 API를 통해 유저모드의 사용자 입장에서 확인할 수 있는 사용자 관점의 사용자 프로세스 목록을 획득할 수 있다(S250). The hidden process detection agent 150 may obtain a list of user processes from the user's point of view that can be confirmed from the user's point of view in the user mode through the Win32 API (S250).

은닉 프로세스 탐지 에이전트(150)는 공유 메모리(130)의 활성 프로세스 목록을 참조하여 활성 프로세스 목록에 포함된 활성 프로세스 중 사용자 프로세스 목록에서 누락되어 있는 활성 프로세스를 은닉 프로세스로 판별할 수 있다(S260). The hidden process detection agent 150 may refer to the active process list of the shared memory 130 to determine an active process missing from the user process list among active processes included in the active process list as the hidden process (S260).

은닉 프로세스 탐지 에이전트(150)는 활성 프로세스 목록에 존재하는데 사용자 프로세스 목록에 누락되어 있는 프로세스에 대하여, 실제로 동작하고 있음에도 운영체제의 프로세스를 확인할 수 있는 API에 대해 고의로 은닉된 것이라 간주하여 해당 프로세스를 은닉 프로세스로 판별하여 은닉 프로세스 목록을 출력할 수 있다(S270).The hidden process detection agent 150 considers that a process that exists in the active process list but is missing from the user process list is intentionally hidden with respect to an API that can check the process of the operating system even though it is actually operating, and identifies the process as a hidden process. can be determined to output a list of hidden processes (S270).

도 5는 필터 드라이버(110)를 이용한 시스템 내 은닉 프로세스 탐지 방법의 흐름도이다. 도 5에 따른 필터 드라이버(110)를 이용한 시스템 내 은닉 프로세스 탐지 방법의 각 단계는 도 2를 통해 설명된 필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 장치(100)에 의해 수행될 수 있으며, 각 단계를 설명하면 다음과 같다.5 is a flowchart of a method for detecting a hidden process in a system using the filter driver 110 . Each step of the method for detecting a hidden process in the system using the filter driver 110 according to FIG. 5 may be performed by the apparatus 100 for detecting a hidden process in the system using the filter driver described with reference to FIG. The explanation is as follows.

S310 동작에서, 필터 드라이버(110)는 감시 대상 시스템에서 수행되는 모든 프로세스에 대하여 프로세스의 생성 및 종료를 커널모드에서 감지할 수 있다. In operation S310, the filter driver 110 may detect the creation and termination of processes in the kernel mode for all processes performed in the monitoring target system.

S320 동작에서, 공유 메모리(130)는 감지된 프로세스의 생성 및 종료 상태에 기초하여 실행 중인 상태로 판별된 프로세스를 포함하는 활성 프로세스 목록을 커널모드에서 저장 및 갱신할 수 있다. In operation S320, the shared memory 130 may store and update the active process list including the process determined to be in the running state based on the detected process creation and termination state in the kernel mode.

S330 동작에서, 은닉 프로세스 탐지 에이전트(150)는 유저모드에서 사용자 프로세스 목록을 획득하고 활성 프로세스 목록을 참조하여 활성 프로세스 목록에 포함된 프로세스 중 사용자 프로세스 목록에 존재하지 않는 프로세스를 은닉 프로세스로 판별할 수 있다. In operation S330, the hidden process detection agent 150 obtains the user process list in the user mode, and refers to the active process list to determine a process that does not exist in the user process list among the processes included in the active process list as the hidden process. have.

한편, 상술한 각 단계의 주체가 해당 단계를 실시하기 위한 상세 과정은 도 1 내지 도 4와 함께 설명하였으므로 중복된 설명은 생략한다.On the other hand, since the detailed process for the subject of each of the above-described steps to perform the corresponding step has been described together with FIGS. 1 to 4 , the redundant description will be omitted.

상술한 실시예와 같은 방식을 이용할 경우, 사용자가 가상 환경이 아닌 실제 시스템을 운용함에 있어서, 은닉 프로세스의 감시 및 탐지를 자동으로 수행하여, 악성코드 등에 의한 시스템 침해 여부를 효과적으로 인지할 수 있게 함으로써, 사용 시스템의 보안성을 향상시킬 수 있다.When using the same method as in the above-described embodiment, when a user operates a real system rather than a virtual environment, monitoring and detection of a hidden process is automatically performed to effectively recognize whether or not the system has been infringed by malicious code, etc. , it can improve the security of the used system.

본 문서의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)(예: 메모리 (내장 메모리 또는 외장 메모리))에 저장된 명령어를 포함하는 소프트웨어(예: 프로그램)로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(예: 장치(100))를 포함할 수 있다. 상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.Various embodiments of the present document include software (eg, a machine-readable storage media) (eg, a memory (internal memory or external memory)) including instructions stored in a readable storage medium (eg, a computer). : program) can be implemented. The device is a device capable of calling a stored command from a storage medium and operating according to the called command, and may include an electronic device (eg, the device 100 ) according to the disclosed embodiments. When the instruction is executed by the processor, the processor may perform a function corresponding to the instruction by using other components directly or under the control of the processor. Instructions may include code generated or executed by a compiler or interpreter. The device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' means that the storage medium does not include a signal and is tangible, and does not distinguish that data is semi-permanently or temporarily stored in the storage medium.

일시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. According to an example, the method according to various embodiments disclosed in this document may be included and provided in a computer program product.

이상의 설명은 본 발명의 기술사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경 등이 가능함을 쉽게 알 수 있을 것이다. 즉, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것으로서, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다.The above description is merely illustrative of the technical idea of the present invention, and those of ordinary skill in the art to which the present invention pertains may make various substitutions, modifications, and changes within the scope not departing from the essential characteristics of the present invention. It will be easy to see that this is possible. That is, the embodiments disclosed in the present invention are not intended to limit the technical spirit of the present invention but to explain, and the scope of the technical spirit of the present invention is not limited by these embodiments.

따라서, 본 발명의 보호 범위는 후술되는 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Accordingly, the protection scope of the present invention should be interpreted by the claims described below, and all technical ideas within the scope equivalent thereto should be interpreted as being included in the scope of the present invention.

Claims (7)

필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 방법에 있어서,
감시 대상 시스템에서 수행되는 모든 프로세스에 대하여 프로세스의 생성 또는 종료를 커널모드에서 감지하는 동작;
상기 감지된 프로세스의 생성 또는 종료 상태에 기초하여, 실행 중인 상태로 판별된 활성 프로세스를 포함하는 활성 프로세스 목록을 커널모드에서 저장 및 갱신하는 동작; 및
유저모드에서 사용자 프로세스 목록을 획득하고, 상기 활성 프로세스 목록을 참조하여 상기 활성 프로세스 목록에 포함된 활성 프로세스 중 상기 사용자 프로세스 목록에서 누락되어 있는 활성 프로세스를 은닉 프로세스로 판별하는 동작을 포함하는,
필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 방법.
A method for detecting a hidden process in a system using a filter driver,
Detecting process creation or termination in kernel mode for all processes executed in the system to be monitored;
storing and updating an active process list including an active process determined to be in a running state in a kernel mode based on the detected process creation or termination state; and
Acquiring a user process list in user mode, and determining an active process missing from the user process list among active processes included in the active process list as a hidden process by referring to the active process list,
A method for detecting hidden processes in the system using a filter driver.
제1항에 있어서,
상기 감지하는 동작은,
PsSetCreateProcessNotifyRoutineEx() 함수를 통해 커널모드에서 프로세스 생성 또는 종료를 감지하여 활성 프로세스의 생성 또는 삭제를 수행하는 동작을 포함하는,
필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 방법.
The method of claim 1,
The sensing operation is
Including the action of creating or deleting an active process by detecting process creation or termination in kernel mode through the PsSetCreateProcessNotifyRoutineEx() function,
A method for detecting hidden processes in the system using a filter driver.
제2항에 있어서,
상기 판별하는 동작은,
Win32 API 중 EnumProcess() 함수를 통해 유저모드에서 상기 사용자 프로세스 목록을 획득하는 동작을 포함하는,
필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 방법.
3. The method of claim 2,
The determining operation is
Including the operation of obtaining the list of user processes in user mode through the EnumProcess() function among Win32 APIs,
A method for detecting hidden processes in the system using a filter driver.
제3항에 있어서,
상기 저장 및 갱신하는 동작은,
상기 활성 프로세스 목록을 커널모드 및 유저모드에서 참조 가능한 공유 메모리에 저장하는 동작을 포함하는,
필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 방법.
4. The method of claim 3,
The storing and updating operations are
Including the operation of storing the active process list in a shared memory that can be referenced in kernel mode and user mode,
A method for detecting hidden processes in the system using a filter driver.
컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서,
상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
감시 대상 시스템에서 수행되는 모든 프로세스에 대하여 프로세스의 생성 또는 종료를 커널모드에서 감지하는 동작;
상기 감지된 프로세스의 생성 또는 종료 상태에 기초하여, 실행 중인 상태로 판별된 활성 프로세스를 포함하는 활성 프로세스 목록을 커널모드에서 저장 및 갱신하는 동작; 및
유저모드에서 사용자 프로세스 목록을 획득하고, 상기 활성 프로세스 목록을 참조하여 상기 활성 프로세스 목록에 포함된 활성 프로세스 중 상기 사용자 프로세스 목록에서 누락되어 있는 활성 프로세스를 은닉 프로세스로 판별하는 동작을 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는, 컴퓨터 판독 가능한 기록매체.
As a computer-readable recording medium storing a computer program,
The computer program, when executed by a processor,
Detecting process creation or termination in kernel mode for all processes executed in the system to be monitored;
storing and updating an active process list including an active process determined to be in a running state in a kernel mode based on the detected process creation or termination state; and
obtaining a user process list in the user mode, and determining, as a hidden process, an active process missing from the user process list among active processes included in the active process list by referring to the active process list A computer-readable recording medium containing instructions for causing a processor to execute.
컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서,
상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
감시 대상 시스템에서 수행되는 모든 프로세스에 대하여 프로세스의 생성 또는 종료를 커널모드에서 감지하는 동작;
상기 감지된 프로세스의 생성 또는 종료 상태에 기초하여, 실행 중인 상태로 판별된 활성 프로세스를 포함하는 활성 프로세스 목록을 커널모드에서 저장 및 갱신하는 동작; 및
유저모드에서 사용자 프로세스 목록을 획득하고, 상기 활성 프로세스 목록을 참조하여 상기 활성 프로세스 목록에 포함된 활성 프로세스 중 상기 사용자 프로세스 목록에서 누락되어 있는 활성 프로세스를 은닉 프로세스로 판별하는 동작을 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는, 컴퓨터 프로그램.
As a computer program stored in a computer-readable recording medium,
The computer program, when executed by a processor,
Detecting process creation or termination in kernel mode for all processes executed in the system to be monitored;
storing and updating an active process list including an active process determined to be in a running state in a kernel mode based on the detected process creation or termination state; and
obtaining a user process list in the user mode, and determining, as a hidden process, an active process missing from the user process list among active processes included in the active process list by referring to the active process list A computer program comprising instructions for causing a processor to execute.
감시 대상 시스템에서 수행되는 모든 프로세스에 대하여 프로세스의 생성 또는 종료를 커널모드에서 감지하는 필터 드라이버;
상기 감지된 프로세스의 생성 또는 종료 상태에 기초하여, 실행 중인 상태로 판별된 활성 프로세스를 포함하는 활성 프로세스 목록을 커널모드에서 저장 및 갱신하는 공유 메모리; 및
유저모드에서 사용자 프로세스 목록을 획득하고, 상기 활성 프로세스 목록을 참조하여 상기 활성 프로세스 목록에 포함된 활성 프로세스 중 상기 사용자 프로세스 목록에서 누락되어 있는 활성 프로세스를 은닉 프로세스로 판별하는 은닉 프로세스 탐지 에이전트를 포함하는,
필터 드라이버를 이용한 시스템 내 은닉 프로세스 탐지 장치.
a filter driver that detects the creation or termination of processes in kernel mode for all processes executed in the system to be monitored;
a shared memory for storing and updating an active process list including an active process determined to be in a running state in a kernel mode based on the detected process creation or termination state; and
A hidden process detection agent that obtains a user process list in user mode and determines, as a hidden process, an active process missing from the user process list among active processes included in the active process list by referring to the active process list ,
A device for detecting hidden processes in the system using a filter driver.
KR1020200097032A 2020-08-03 2020-08-03 Apparatus, method, computer-readable storage medium and computer program for detecting hidden process running on system using filter driver KR20220016726A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200097032A KR20220016726A (en) 2020-08-03 2020-08-03 Apparatus, method, computer-readable storage medium and computer program for detecting hidden process running on system using filter driver

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200097032A KR20220016726A (en) 2020-08-03 2020-08-03 Apparatus, method, computer-readable storage medium and computer program for detecting hidden process running on system using filter driver

Publications (1)

Publication Number Publication Date
KR20220016726A true KR20220016726A (en) 2022-02-10

Family

ID=80253707

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200097032A KR20220016726A (en) 2020-08-03 2020-08-03 Apparatus, method, computer-readable storage medium and computer program for detecting hidden process running on system using filter driver

Country Status (1)

Country Link
KR (1) KR20220016726A (en)

Similar Documents

Publication Publication Date Title
JP6073482B2 (en) Secure disk access control
US8955124B2 (en) Apparatus, system and method for detecting malicious code
US8918878B2 (en) Restoration of file damage caused by malware
US8943592B1 (en) Methods of detection of software exploitation
US20060294592A1 (en) Automated rootkit detector
US10783041B2 (en) Backup and recovery of data files using hard links
US10121004B2 (en) Apparatus and method for monitoring virtual machine based on hypervisor
US10007785B2 (en) Method and apparatus for implementing virtual machine introspection
US9542557B2 (en) Snoop-based kernel integrity monitoring apparatus and method thereof
JP7144642B2 (en) Behavior-based VM resource capture for forensics
CN108920253B (en) Agent-free virtual machine monitoring system and monitoring method
US10691791B2 (en) Automatic unpacking of executables
EP3652667B1 (en) System and method for detecting malware injected into memory of a computing device
US20190138713A1 (en) Method for Detecting a Deviation of a Security State of a Computing Device from a Desired Security State
CN107103237A (en) A kind of detection method and device of malicious file
KR101974989B1 (en) Method and apparatus for determining behavior information corresponding to a dangerous file
JP7550491B2 (en) Malware Detection System
KR101595936B1 (en) Optimization method, optimization server and computer readable recording medium for providing service with vaccine and optimization functions
JP5955475B1 (en) Program, information processing apparatus, and information processing method
US20240160737A1 (en) Methods and apparatus determining document behavior based on the reversing engine
KR20220016726A (en) Apparatus, method, computer-readable storage medium and computer program for detecting hidden process running on system using filter driver
CN111949362A (en) Host information acquisition method based on virtualization technology
CN111221628A (en) Method and device for detecting safety of virtual machine file on virtualization platform
US20240320332A1 (en) Live attack shadow replay of software
US12001545B2 (en) Detecting stack pivots using stack artifact verification

Legal Events

Date Code Title Description
E601 Decision to refuse application