KR101151284B1 - System for preventing network action of injection thread and method thereof - Google Patents

System for preventing network action of injection thread and method thereof Download PDF

Info

Publication number
KR101151284B1
KR101151284B1 KR1020100031250A KR20100031250A KR101151284B1 KR 101151284 B1 KR101151284 B1 KR 101151284B1 KR 1020100031250 A KR1020100031250 A KR 1020100031250A KR 20100031250 A KR20100031250 A KR 20100031250A KR 101151284 B1 KR101151284 B1 KR 101151284B1
Authority
KR
South Korea
Prior art keywords
thread
injection
access control
control filter
filter driver
Prior art date
Application number
KR1020100031250A
Other languages
Korean (ko)
Other versions
KR20110111926A (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 KR1020100031250A priority Critical patent/KR101151284B1/en
Publication of KR20110111926A publication Critical patent/KR20110111926A/en
Application granted granted Critical
Publication of KR101151284B1 publication Critical patent/KR101151284B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 인젝션 스레드의 네트워크 행위 차단 기술에 관한 것으로, 컴퓨팅 장치의 동작 프로그램 내에서 인젝션 된 스레드가 네트워크, 파일, 레지스트리 등과 같은 시스템 자원에 접근하는 경우, 이에 대한 제어를 수행함으로써 악성 코드 및 접근 제어 관점에서 인젝션 프로세스 단위의 접근 제어를 가능하게 할 수 있다.The present invention relates to a technology for blocking network behavior of an injection thread, and when a thread injected in an operating program of a computing device accesses system resources such as a network, a file, a registry, and the like, malicious code and access control are performed by controlling the injection thread. From the perspective, it is possible to enable access control in the injection process unit.

Description

인젝션 스레드의 네트워크 행위 차단 시스템 및 그 방법{SYSTEM FOR PREVENTING NETWORK ACTION OF INJECTION THREAD AND METHOD THEREOF}Injection behavior network blocking system and its method {SYSTEM FOR PREVENTING NETWORK ACTION OF INJECTION THREAD AND METHOD THEREOF}

본 발명은 컴퓨터 및 이동통신 단말기를 포함하는 사용자기기에서의 네트워크 제어 기술에 관한 것으로서, 특히 인젝션 스레드(injection thread)의 시스템 자원에 대한 접근을 제어하는데 적합한 인젝션 스레드의 네트워크 행위 차단 시스템 및 그 방법에 관한 것이다.
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a network control technology in a user equipment including a computer and a mobile communication terminal, and more particularly, to an injection thread network behavior blocking system and method suitable for controlling access of a system resource of an injection thread. It is about.

일반적으로 사용자기기는 동작 프로그램에 따라 사용자기기 내 기능 블록들의 전반적인 동작을 제어하며, 이러한 동작 프로그램은 사용자기기의 동작에 필요한 기본적인 운영 시스템 뿐만 아니라 데이터의 입/출력 관리 및 내부 응용프로그램을 동작 시키도록 미리 프로그래밍되는 소프트웨어를 통칭한다.In general, the user device controls the overall operation of the functional blocks in the user device according to the operation program, and the operation program is used to operate not only the basic operating system required for the operation of the user device, but also input / output management of data and internal applications. Collectively, preprogrammed software.

예를 들어, 마이크로소프트사의 윈도우즈(windows)와 공개 프로그램인 리눅스(linux) 등이 있으며, 사용자기기에서는 이러한 동작 프로그램에서 인젝션 스레드를 수행할 수 있다.For example, there are Microsoft's Windows and open program Linux, and the user can execute the injection thread in such a program.

인젝션 스레드는 다른 프로세스에 침입하여 특정 동작을 수행하는 방법으로서, 이와 관련된 다양한 방법들이 아래와 같이 연구되고 있으며, 이외에도 다양한 방식으로 인젝션 스레드가 수행되고 있다.The injection thread is a method of invading other processes to perform a specific operation. Various methods related to the injection thread have been studied as follows. In addition, the injection thread is performed in various ways.

1. CreateRemoteThread등과 같은 WINAPI(Application Programming Interface)를 사용하는 방법1.How to use WINAPI (Application Programming Interface) such as CreateRemoteThread

2.HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows의 AppInit_DLLs를 이용하는 방법2.How to use AppInit_DLLs in HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows

3. 임의의 목적 프로세스의 스레드나 프로세스의 수행 코드를 변조하는 방법3. A method of altering a thread of any destination process or the execution code of a process.

4. SetWndowHookEx 및 SetWinEventHook등과 같은 API를 사용하는 방법4. How to use APIs such as SetWndowHookEx and SetWinEventHook

5. KeAttachProcess와 APC를 이용하는 방법5. How to use KeAttachProcess and APC

다만, 이와 같은 인젝션 스레드는 시스템 자원(예컨대, 파일, 포트, 메모리 등)을 이용한 동작을 수행하게 되므로 다른 사용자에 의해 불법적인 사용이 이루어질 경우, 사용자의 사용자기기에 많은 피해를 입힐 수 있으므로 종래의 보안 프로그램 및 방화벽 제품에서는 인젝션 스레드의 생성여부를 판단하여 이를 제어하고 있다. 다만, 생성된 인젝션 스레드가 자원에 접근하는 경우에는 제어에 어려움이 있었다. However, since the injection thread performs an operation using a system resource (for example, a file, a port, a memory, etc.), when illegal use is made by another user, it may cause a lot of damage to the user's user device. Security programs and firewall products determine whether injection threads are created and control them. However, when the created injection thread accesses a resource, it is difficult to control.

예를 들어, 공격자가 시스템 제어를 통해 윈도우즈 시스템 파일인 svchost.exe에 스레드 인젝션을 성공하여 악성코드를 다운로드 받는 등의 네트워크 행위를 수행하게 되면, 위와 같은 기술을 사용하는 대부분의 방화벽 제품들은 이 행위를 차단할 수 없게 된다.
For example, if an attacker performs a network action such as downloading a malicious code through successful system thread injection to the Windows system file svchost.exe through system control, most firewall products using the above technique will perform this action. Cannot be blocked.

상기한 바와 같이 동작하는 종래 기술에 의한 인젝션 스레드의 네트워크 행위 차단 방법에 있어서는, 인젝션 스레드가 생성되는 시점에만 제어될 뿐이며, 인젝션 스레드가 시스템 자원에 접근하는 경우에는 이에 대해 별다른 제어를 수행하지 못한다는 문제점이 있었다. In the conventional method for blocking network behavior of an injection thread operating as described above, it is controlled only at the time of injection thread generation, and when the injection thread accesses system resources, it does not perform any control on this. There was a problem.

이에 본 발명은, 컴퓨터 및 이동통신 단말기를 포함하는 사용자기기에서 인젝션 스레드의 시스템 자원에 대한 접근을 제어할 수 있는 인젝션 스레드의 네트워크 행위 차단 시스템 및 그 방법을 제공한다. Accordingly, the present invention provides a network behavior blocking system and method of the injection thread that can control access to the system resource of the injection thread in a user device including a computer and a mobile communication terminal.

또한 본 발명은, 사용자기기와 같은 컴퓨팅 장치의 동작 프로그램 내에서 인젝션 된 스레드가 네트워크, 파일, 레지스트리 등과 같은 시스템 자원에 접근하는 경우, 이에 대한 제어를 통해 스레드 인젝션을 이용한 악성 행위로부터 보호할 수 있는 인젝션 스레드의 네트워크 행위 차단 시스템 및 그 방법을 제공한다.
In addition, the present invention, when the thread injected in the operating program of the computing device, such as a user device accesses system resources such as network, files, registry, etc., through the control for this can be protected from malicious behavior using thread injection Provided is a network behavior blocking system of an injection thread and a method thereof.

본 발명의 일 실시예에 따른 인젝션 스레드의 네트워크 행위 차단 시스템은, 스레드의 생성을 알려주는 함수 또는 스레드 생성함수를 토대로 특정 프로세스에 포함된 스레드가 외부 프로세스에서 생성된 스레드인지 여부를 확인하여 인젝션 스레드를 판단하는 접근 제어 필터 드라이버와, 상기 접근 제어 필터 드라이버로부터 판단된 상기 인젝션 스레드를 기 저장된 악성 인젝션 스레드 DB와 비교 분석하고, 분석된 결과 정보를 상기 접근 제어 필터 드라이버로 전달하는 접근 차단 엔진 드라이버를 포함한다. The network behavior blocking system of the injection thread according to an embodiment of the present invention, the injection thread by checking whether a thread included in a specific process is a thread generated by an external process based on a function or a thread generation function that informs the creation of the thread. An access control engine driver for comparing the injection thread determined by the access control filter driver with a previously stored malicious injection thread DB, and delivering the analyzed result information to the access control filter driver; Include.

본 발명의 일 실시예에 따른 인젝션 스레드의 네트워크 행위 차단 방법은, 사용자기기의 접근 제어 필터 드라이브에서 스레드의 생성을 알려주는 함수 또는 스레드 생성함수를 토대로 특정 프로세스에 포함된 스레드가 외부 프로세스에서 생성된 스레드인지 여부를 확인하는 과정과, 상기 외부 프로세스에서 생성된 경우, 상기 스레드가 프로세스를 생성하는 주 스레드인지 여부를 확인하는 과정과, 확인 결과 상기 프로세스를 생성하는 주 스레드가 아닌 경우, 인젝션 스레드로 판단하는 과정을 포함한다.
In the method for blocking network behavior of an injection thread according to an embodiment of the present invention, a thread included in a specific process is generated by an external process based on a function or a thread generation function that informs the creation of a thread in an access control filter drive of a user device. Checking whether the thread is a thread; if the external thread is created in the external process, checking whether the thread is a main thread that creates the process; The process of making judgments.

상기와 같은 본 발명의 실시예에 따른 인젝션 스레드의 네트워크 행위 차단 시스템 및 그 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상이 있다.According to the network behavior blocking system and the method of the injection thread according to the embodiment of the present invention as described above has one or more of the following effects.

본 발명의 실시예에 따른 인젝션 스레드의 네트워크 행위 차단 시스템 및 그 방법에 의하면, 악성 코드 및 접근 제어 관점에서 인젝션 프로세스의 제어가 가능하므로, 인젝션 프로세스 단위의 자원 접근을 제한할 수 있는 효과가 있다.
According to the network behavior blocking system and method of the injection thread according to an embodiment of the present invention, since the injection process can be controlled from the viewpoint of malicious code and access control, there is an effect of restricting resource access in the injection process unit.

도 1은 본 발명의 실시예에 따른 인젝션 스레드 네트워크 행위 차단 시스템의 구조를 도시한 블록도이다.
도 2는 본 발명의 실시예에 따른 접근 제어 필터 드라이버의 동작 절차를 도시한 흐름도이다.
도 3은 본 발명의 실시예에 따른 접근 차단 엔진 드라이버의 동작 절차를 도시한 흐름도이다.
1 is a block diagram showing the structure of an injection thread network behavior blocking system according to an embodiment of the present invention.
2 is a flowchart illustrating an operation procedure of an access control filter driver according to an exemplary embodiment of the present invention.
3 is a flowchart illustrating an operation procedure of an access blocking engine driver according to an exemplary embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various different forms, and only the embodiments make the disclosure of the present invention complete, and the general knowledge in the art to which the present invention belongs. It is provided to fully inform the person having the scope of the invention, which is defined only by the scope of the claims. Like reference numerals refer to like elements throughout.

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

첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다. Each block of the accompanying block diagrams and combinations of steps of the flowchart may be performed by computer program instructions. These computer program instructions may be mounted on a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment such that instructions executed through the processor of the computer or other programmable data processing equipment may not be included in each block or flowchart of the block diagram. It will create means for performing the functions described in each step. These computer program instructions may be stored in a computer usable or computer readable memory that can be directed to a computer or other programmable data processing equipment to implement functionality in a particular manner, and thus the computer usable or computer readable memory. It is also possible for the instructions stored in to produce an article of manufacture containing instruction means for performing the functions described in each block or flowchart of each step of the block diagram. Computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operating steps may be performed on the computer or other programmable data processing equipment to create a computer-implemented process to create a computer or other programmable data. Instructions that perform processing equipment may also provide steps for performing the functions described in each block of the block diagram and in each step of the flowchart.

또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다. In addition, each block or step may represent a portion of a module, segment or code that includes one or more executable instructions for executing a specified logical function (s). It should also be noted that in some alternative embodiments, the functions noted in the blocks or steps may occur out of order. For example, the two blocks or steps shown in succession may in fact be executed substantially concurrently or the blocks or steps may sometimes be performed in the reverse order, depending on the functionality involved.

본 발명은 컴퓨팅 장치의 동작 프로그램 내에서 인젝션 된 스레드가 네트워크, 파일, 레지스트리 등과 같은 시스템 자원에 접근하는 경우, 이에 대한 제어를 통해 스레드 인젝션을 이용한 악성 행위로부터 보호 함으로써, 예컨대, WINAPI를 사용하는 경우로서, 다른 사용자가 윈도우즈 프로그램의 CreateRemoteThread등으로 Svchost.exe의 프로세스 영역에 접근할 인젝션을 수행한 경우, 이러한 접근의 허용 또는 차단을 수행하게 되며, 레지스트리나 파일 등에 접근하는 경우에도 동일한 접근 제어를 가능하게 하는 것이다.According to the present invention, when a thread injected in an operating program of a computing device accesses a system resource such as a network, a file, a registry, or the like, it is protected from malicious behavior using thread injection through control thereof, for example, when using WINAPI. If another user performs injection to access the process area of Svchost.exe with CreateRemoteThread of Windows program, this access is allowed or blocked, and the same access control is possible even when accessing registry or file. It is to make it.

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

도 1은 본 발명의 실시예에 따른 인젝션 스레드 네트워크 행위 차단 시스템의 구조를 도시한 블록도이다.1 is a block diagram showing the structure of an injection thread network behavior blocking system according to an embodiment of the present invention.

도 1을 참조하면, 사용자기기와 같은 컴퓨팅 장치의 프로세스(100)에서는 적어도 하나의 인젝션 스레드(102)와 인젝션 스레드가 아닌 일반 스레드(104)를 포함할 수 있으며, 이때, 인젝션 스레드(102)는 해당 프로세스(100)를 통해 생성되거나 다른 프로세스에 의해 생성될 수 있다. 즉, 다른 사용자가 다른 프로세스를 이용하여 해당 프로세스(100)에 스레드 인젝션을 수행할 수 있다. 그리고 다른 프로세스로부터 인젝션된 인젝션 스레드(102)는 컴퓨팅 장치 내 시스템 자원에 접근하여 삽입된 코드에 따라 동작을 수행하게 된다.Referring to FIG. 1, the process 100 of a computing device such as a user device may include at least one injection thread 102 and a general thread 104 rather than an injection thread, in which case the injection thread 102 It may be generated through the process 100 or may be generated by another process. That is, another user may perform thread injection to the process 100 using another process. The injection thread 102 injected from another process accesses system resources in the computing device and performs an operation according to the inserted code.

접근 제어 필터 드라이버(110)는 스레드의 접근을 제어하기 위한 것으로, 각 프로세스를 통해 생성되는 스레드는 스레드 생성을 알리는 함수 또는 스레드 생성 함수를 통해 확인할 수 있다.The access control filter driver 110 is for controlling the access of a thread, and the thread generated through each process may be identified through a function for notifying thread creation or a thread generation function.

이에 접근 제어 필터 드라이버(110)에서는 스레드 생성 함수를 통해 외부 프로세스의 스레드 생성 여부 및 스레드 인젝션 여부를 판단할 수 있다. 예를 들어, 스레드 인젝션 기법 중에 WINAPI를 사용하는 방법은, 컴퓨팅 장치 내에서 구동되는 윈도우즈 동작 프로그램을 통해 PsSetThreadCreateNotifyRoutine과 같은 스레드 생성을 알려주는 함수 또는 CreateRemoteThread과 같은 원격으로 다른 프로세스에서 스레드를 생성하는 함수를 토대로 외부 프로세스가 스레드를 생성했는지 여부를 확인할 수 있다. 또한, 두 함수를 통해 해당 스레드가 프로세스를 생성하는 스레드 인지 인젝션된 스레드인지 여부도 판단할 수 있다.Accordingly, the access control filter driver 110 may determine whether an external process has created a thread and whether a thread has been injected through a thread generation function. For example, the method of using WINAPI during the thread injection technique is a function that notifies a thread creation, such as PsSetThreadCreateNotifyRoutine, through a Windows operating program running within the computing device, or a function that creates a thread from another process remotely, such as CreateRemoteThread. Based on this, you can see whether an external process created a thread. In addition, the two functions also determine whether the thread is a thread that creates a process or an injected thread.

한편, 접근 제어 필터 드라이버(110)는 해당 스레드의 스레드 컨텍스트 실행 주소를 확인하여, 스레드 컨텍스트 실행 주소가 모듈을 로드하는 함수(예컨대, LoadLibrary(Ex), LdrLoadDll등)의 주소와 일치하면, 해당 스레드가 인젝션 스레드인 것으로 판단할 수도 있다.Meanwhile, the access control filter driver 110 checks the thread context execution address of the thread, and if the thread context execution address matches the address of a function (eg, LoadLibrary (Ex), LdrLoadDll, etc.) that loads the module, the thread is executed. You can also determine that is the injection thread.

그리고 AppInit_DLLs Registry를 이용하는 방법은 레지스트리에서 특정 동적 링크 라이브러리(DLL: Dynamic Link Library) 목록에 값이 존재하면, 스레드 인젝션으로 판단하는 것이다.In addition, a method of using the AppInit_DLLs Registry is to determine a thread injection if a value exists in a specific dynamic link library (DLL) list in the registry.

이는 윈도우즈 동작 프로그램의 레지스트리(HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows)에 포함된 "AppInit_DLLs"의 값을 확인하여 특정 값이 포함되어 있는 경우에는 인젝션된 스레드로 판단할 수 있다.It checks the value of "AppInit_DLLs" included in the registry of the Windows operating program (HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows) and if it contains a specific value, it can be determined as an injected thread.

접근 제어 필터 드라이버(110)에서는 위와 같은 방법들을 토대로 인젝션 스레드를 확인할 수 있으며, 확인된 인젝션 스레드가 시스템 구성부(130) 내의 시스템 자원인 TCPIP 네트워크(132), 파일 시스템(134) 및 레지스트리 시스템(136)으로 접근하는 것을 방지하기 위해 네트워크 제어부(112)에서는 인젝션 된 스레드의 네트워크 연결, 보내기, 받기 등의 네트워크 행위를 제어하고, 파일 제어부(114)에서는 인젝션 된 스레드의 파일 생성, 읽기, 쓰기, 삭제 등의 파일에 대한 사용 행위를 제어하며, 레지스트리 제어부(116)에서는 인젝션 된 스레드의 레지스트리 생성, 읽기, 쓰기, 삭제 등의 레지스트리 행위를 제어할 수 있다.The access control filter driver 110 may identify the injection thread based on the above methods, and the identified injection thread may be a system resource in the system configuration unit 130, the TCPIP network 132, the file system 134, and the registry system ( In order to prevent access to the network 136, the network controller 112 controls network actions such as network connection, sending, and receiving of the injected thread, and the file controller 114 creates, reads, writes, or executes the file of the injected thread. The use control for files such as deletion is controlled, and the registry controller 116 may control registry actions such as registry creation, reading, writing, and deleting of the injected thread.

접근 차단 엔진 드라이버(120)는 악성 인젝션 스레드를 검사하기 위한 것으로서, 악성 인젝션 스레드에 대한 DB를 포함하고 있다. 이에 접근 제어 필터 드라이버(110)로부터 전달받은 인젝션 스레드를 분석하여 분석 결과 해당 인젝션 스레드가 악성 인젝션 스레드인지 여부를 판단 할 수 있으며, 이 분석 결과 정보를 다시 접근 제어 필터 드라이버(110)로 전달하여 접근 제어 필터 드라이버(110)에서 해당 인젝션 스레드가 시스템 구성부(130)로 접근하는 경우의 허용/차단 여부를 제어하게 된다.The access blocking engine driver 120 is for checking malicious injection threads, and includes a DB for malicious injection threads. The injection thread received from the access control filter driver 110 may be analyzed to determine whether the injection thread is a malicious injection thread, and the analysis result is passed back to the access control filter driver 110 for access. The control filter driver 110 controls whether the injection thread is allowed or blocked when the injection thread approaches the system component 130.

도 2는 본 발명의 실시예에 따른 접근 제어 필터 드라이버의 동작 절차를 도시한 흐름도이다.2 is a flowchart illustrating an operation procedure of an access control filter driver according to an exemplary embodiment of the present invention.

도 2를 참조하면, 접근 제어 필터 드라이버(110)에서는 200단계에서 스레드 생성을 알려주는 함수(예컨대, PsSetThreadCreateNotifyRoutine) 또는 스레드 생성 함수(예컨대, CreateRemoteThread)에 대한 분석을 통해, 202단계에서 현재 프로세스와 스레드 생성 프로세스가 동일한지 여부를 판단하여 동일한 경우에는 동작을 종료한다.Referring to FIG. 2, the access control filter driver 110 analyzes a function (for example, PsSetThreadCreateNotifyRoutine) or a thread creation function (for example, CreateRemoteThread) indicating a thread creation in step 200, and the current process and thread in step 202. It is determined whether the generation process is the same, and if it is the same, the operation ends.

그러나 현재 프로세스와 스레드 생성 프로세스가 동일하지 않은 경우에는 204단계로 진행하여 해당 스레드가 프로세스를 생성하는 주 스레드 인지 여부를 판단하게 된다.However, if the current process and the thread creation process are not the same, the process proceeds to step 204 to determine whether the thread is the main thread that creates the process.

이에 프로세스를 생성하는 주 스레드인 경우에는 정상적인 스레드로 판단하여 동작을 종료하게 된다. 다만, 해당 스레드가 프로세스를 생성하는 주 스레드가 아닌 경우에는 206단계로 진행하여 생성된 스레드를 인젝션 스레드로 판단할 수 있다.In the case of the main thread generating the process, it is determined that the normal thread is terminated. However, if the thread is not the main thread for creating a process, the process proceeds to step 206 and the generated thread may be determined as an injection thread.

도 3은 본 발명의 실시예에 따른 접근 차단 엔진 드라이버의 동작 절차를 도시한 흐름도이다.3 is a flowchart illustrating an operation procedure of an access blocking engine driver according to an exemplary embodiment of the present invention.

도 3을 참조하면, 접근 차단 엔진 드라이버(120)는 300단계에서 접근 제어 필터 드라이버(110)로부터 각 프로세스 별로 인젝션 스레드를 전달받게 되며, 302단계에서는 전달 받은 각 인젝션 스레드에 대해 기 저장된 악성 인젝션 스레드 DB와의 비교를 수행한다.Referring to FIG. 3, the access blocking engine driver 120 receives an injection thread for each process from the access control filter driver 110 in step 300. In step 302, a malicious injection thread is stored for each injection thread. Perform comparison with DB.

이에 특정 인젝션 스레드가 악성 인젝션 스레드 DB에 포함된 스레드와 일치하지 않는 경우에는 304단계에서 접근 제어 필터 드라이버(110)로 특정 인젝션 스레드의 분석 결과 정보를 제공하여 접근 제어 필터 드라이버(110)에서 특정 인젝션 스레드의 시스템 자원 접근을 허용할 수 있다. When the specific injection thread does not match the thread included in the malicious injection thread DB, in step 304, the access control filter driver 110 provides the analysis result information of the specific injection thread to provide a specific injection. Allow threads to access system resources.

그러나 특정 인젝션 스레드가 악성 인젝션 스레드 DB에 포함된 스레드와 일치하는 경우에는 306단계에서 특정 인젝션 스레드를 악성 인젝션 스레드로 판단하여 접근 제어 필터 드라이버(110)로 특정 인젝션 스레드의 분석 결과 정보를 제공하여 접근 제어 필터 드라이버(110)에서 특정 인젝션 스레드의 시스템 자원 접근을 차단할 수 있다.However, when a specific injection thread matches the thread included in the malicious injection thread DB, in step 306, the specific injection thread is determined as the malicious injection thread, and the access control filter driver 110 provides the analysis result information of the specific injection thread to access. The control filter driver 110 may block access to system resources of a particular injection thread.

이상 설명한 바와 같이, 본 발명의 실시예에 따른 인젝션 스레드의 네트워크 행위 차단 시스템 및 그 방법은, 컴퓨팅 장치의 동작 프로그램 내에서 인젝션 된 스레드가 네트워크, 파일, 레지스트리 등과 같은 시스템 자원에 접근하는 경우, 이에 대한 제어를 수행함으로써 악성 코드 및 접근 제어 관점에서 인젝션 프로세스의 제어를 가능하게 할 수 있다. 예를 들어, 악성 코드가 방화벽을 통해 허용으로 등록된 프로그램에 인젝션하여 네트워크 행위를 하는 방화벽 우회 기법을 제어할 수도 있다. 이러한 인젝션 스레드의 제어 방식은 악성 스레드를 검사할 수 있는 접근 차단 엔진으로 검사하거나, 인젝션 프로세스 단위로 시스템 자원으로의 접근을 제한할 수도 있다.As described above, the network behavior blocking system and the method of the injection thread according to an embodiment of the present invention, when the thread injected in the operating program of the computing device accesses system resources such as network, files, registry, etc. By performing control over the injection process, it is possible to control the injection process in terms of malicious code and access control. For example, it may be possible to control firewall bypass techniques that allow malicious code to inject network programs into a program registered as allowed through the firewall. The injection thread control method may be controlled by an access blocking engine capable of inspecting malicious threads, or may restrict access to system resources on an injection process basis.

한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiments, but is capable of various modifications within the scope of the invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the scope of the appended claims, and equivalents thereof.

100 : 프로세스 110 : 접근 제어 필터 드라이버
120 : 접근 차단 엔진 드라이버 130 : 시스템 구성부
100: process 110: access control filter driver
120: access blocking engine driver 130: system configuration

Claims (10)

삭제delete 스레드의 생성을 알려주는 함수 또는 스레드 생성함수를 토대로 특정 프로세스에 포함된 스레드가 외부 프로세스에서 생성된 스레드인지 여부를 확인하여 인젝션 스레드인지 여부를 판단하는 접근 제어 필터 드라이버와,
상기 접근 제어 필터 드라이버에 의해 인젝션 스레드로 판단된 스레드를 기 저장된 악성 인젝션 스레드 DB와 비교 분석하고, 분석된 결과 정보를 상기 접근 제어 필터 드라이버로 전달하는 접근 차단 엔진 드라이버를 포함하며,
상기 접근 제어 필터 드라이버는,
스레드가 상기 외부 프로세스에서 생성된 경우, 프로세스를 생성하는 주 스레드인지 여부를 확인하고,
확인 결과 상기 프로세스를 생성하는 주 스레드가 아닌 경우, 인젝션 스레드로 판단하는
인젝션 스레드의 네트워크 행위 차단 시스템.
An access control filter driver that determines whether a thread included in a specific process is an injection thread based on a function or a thread creation function that informs the creation of a thread;
And an access blocking engine driver for comparing and analyzing a thread determined as an injection thread by the access control filter driver with a previously stored malicious injection thread DB, and delivering the analyzed result information to the access control filter driver.
The access control filter driver,
If a thread was created in the external process, check whether it is the main thread that creates the process,
If it is determined that the main thread is not the main thread that creates the process, it is determined as an injection thread.
Network behavior blocking system of injection thread.
스레드의 생성을 알려주는 함수 또는 스레드 생성함수를 토대로 특정 프로세스에 포함된 스레드가 외부 프로세스에서 생성된 스레드인지 여부를 확인하여 인젝션 스레드인지 여부를 판단하는 접근 제어 필터 드라이버와,
상기 접근 제어 필터 드라이버에 의해 인젝션 스레드로 판단된 스레드를 기 저장된 악성 인젝션 스레드 DB와 비교 분석하고, 분석된 결과 정보를 상기 접근 제어 필터 드라이버로 전달하는 접근 차단 엔진 드라이버를 포함하며,
상기 접근 제어 필터 드라이버는,
스레드의 스레드 컨텍스트 실행 주소가 모듈을 로드하는 함수의 주소와 일치하면, 상기 스레드를 인젝션 스레드로 판단하는
인젝션 스레드의 네트워크 행위 차단 시스템.
An access control filter driver that determines whether a thread included in a specific process is an injection thread based on a function or a thread creation function that informs the creation of a thread;
And an access blocking engine driver for comparing and analyzing a thread determined as an injection thread by the access control filter driver with a previously stored malicious injection thread DB, and delivering the analyzed result information to the access control filter driver.
The access control filter driver,
If the thread context execution address of the thread matches the address of the function that loads the module, the thread is determined to be an injection thread.
Network behavior blocking system of injection thread.
제 1항에 있어서,
상기 접근 제어 필터 드라이버는,
상기 접근 차단 엔진 드라이버로부터 전달된 상기 결과 정보를 토대로 인젝션 스레드로 판단된 스레드의 시스템 자원에 대한 접근을 허용할지 여부를 제어하는 것을 특징으로 하는
인젝션 스레드의 네트워크 행위 차단 시스템.
The method of claim 1,
The access control filter driver,
And controlling access to system resources of a thread determined to be an injection thread based on the result information transmitted from the access blocking engine driver.
Network behavior blocking system of injection thread.
제 4항에 있어서,
상기 시스템 자원은,
네트워크, 파일 및 레지스트리 중 적어도 하나인 것을 특징으로 하는
인젝션 스레드의 네트워크 행위 차단 시스템.
The method of claim 4, wherein
The system resource,
At least one of a network, a file, and a registry
Network behavior blocking system of injection thread.
제 4항에 있어서,
상기 접근 제어 필터 드라이버는,
상기 시스템 자원 내 레지스트리에서 특정 동적 링크 라이브러리(DLL) 값의 변동 유무를 통해 인젝션 스레드 인지 여부를 판단하는 것을 특징으로 하는
인젝션 스레드의 네트워크 행위 차단 시스템.
The method of claim 4, wherein
The access control filter driver,
Characterizing whether or not the injection thread through the presence or absence of a specific dynamic link library (DLL) value in the registry of the system resources, characterized in that
Network behavior blocking system of injection thread.
사용자기기의 접근 제어 필터 드라이브에서 스레드의 생성을 알려주는 함수 또는 스레드 생성함수를 토대로 특정 프로세스에 포함된 스레드가 외부 프로세스에서 생성된 스레드인지 여부를 확인하는 과정과,
상기 외부 프로세스에서 생성된 경우, 상기 스레드가 프로세스를 생성하는 주 스레드인지 여부를 확인하는 과정과,
확인 결과 상기 프로세스를 생성하는 주 스레드가 아닌 경우, 인젝션 스레드로 판단하는 과정과,
상기 인젝션 스레드로 판단된 스레드를 기 저장된 악성 인젝션 스레드 DB와 비교 분석하는 과정과,
분석 결과 상기 스레드가 악성 인젝션 스레드인 경우, 상기 스레드의 시스템 자원 접근을 차단하는 과정을 포함하는
인젝션 스레드의 네트워크 행위 차단 방법.
A process of checking whether a thread included in a specific process is a thread generated by an external process based on a function or a thread creation function that informs the creation of a thread in an access control filter drive of a user device;
When the external process is generated, checking whether the thread is a main thread that creates the process;
If it is determined that the main thread is not the main thread that generates the process, the process of determining as an injection thread,
Comparing and analyzing the thread determined as the injection thread with a previously stored malicious injection thread DB;
If the thread is a malicious injection thread, blocking the thread's access to system resources;
How to block network behavior of injection threads.
제 7항에 있어서,
상기 인젝션 스레드의 네트워크 행위 차단 방법은,
시스템 자원 내 레지스트리의 특정 동적 링크 라이브러리(DLL) 값이 변동된 경우, 인젝션 스레드로 판단하는 과정을 특징으로 하는
인젝션 스레드의 네트워크 행위 차단 방법.
The method of claim 7, wherein
The network behavior blocking method of the injection thread,
Characterized in that the process is determined by the injection thread when a specific dynamic link library (DLL) value of the registry in the system resources is changed
How to block network behavior of injection threads.
삭제delete 제 8항에 있어서,
상기 시스템 자원은,
네트워크, 파일 및 레지스트리 중 적어도 하나 인 것을 특징으로 하는
인젝션 스레드의 네트워크 행위 차단 방법.
The method of claim 8,
The system resource,
At least one of a network, a file, and a registry
How to block network behavior of injection threads.
KR1020100031250A 2010-04-06 2010-04-06 System for preventing network action of injection thread and method thereof KR101151284B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100031250A KR101151284B1 (en) 2010-04-06 2010-04-06 System for preventing network action of injection thread and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100031250A KR101151284B1 (en) 2010-04-06 2010-04-06 System for preventing network action of injection thread and method thereof

Publications (2)

Publication Number Publication Date
KR20110111926A KR20110111926A (en) 2011-10-12
KR101151284B1 true KR101151284B1 (en) 2012-06-08

Family

ID=45027855

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100031250A KR101151284B1 (en) 2010-04-06 2010-04-06 System for preventing network action of injection thread and method thereof

Country Status (1)

Country Link
KR (1) KR101151284B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101337077B1 (en) * 2012-11-06 2013-12-06 숭실대학교산학협력단 Method for operating android invisible system service
KR101685014B1 (en) * 2016-02-19 2016-12-12 주식회사 블랙포트시큐리티 Detection and blocking method of ransome ware of computer system and device thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006030195A2 (en) * 2004-09-14 2006-03-23 Coware, Inc. Mehtod and system for debugging a multi- threaded program executing in a multicore architecture

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006030195A2 (en) * 2004-09-14 2006-03-23 Coware, Inc. Mehtod and system for debugging a multi- threaded program executing in a multicore architecture

Also Published As

Publication number Publication date
KR20110111926A (en) 2011-10-12

Similar Documents

Publication Publication Date Title
RU2571723C2 (en) System and method of reducing load on operating system when executing antivirus application
JP5108789B2 (en) Software system with controlled access to objects
US20190370460A1 (en) Detecting return-oriented programming payloads by evaluating data for a gadget address space address and determining whether operations associated with instructions beginning at the address indicate a return-oriented programming payload
US8127316B1 (en) System and method for intercepting process creation events
US20180211046A1 (en) Analysis and control of code flow and data flow
RU2531861C1 (en) System and method of assessment of harmfullness of code executed in addressing space of confidential process
US7725922B2 (en) System and method for using sandboxes in a managed shell
US20150213260A1 (en) Device and method for detecting vulnerability attack in program
US6779117B1 (en) Authentication program for a computer operating system
US10565378B1 (en) Exploit of privilege detection framework
US20170090929A1 (en) Hardware-assisted software verification and secure execution
US8954736B2 (en) Limiting the functionality of a software program based on a security model
CN108399332B (en) System and method for analyzing files for maliciousness in virtual machine
RU2584507C1 (en) Method of providing safe execution of script file
US20200342100A1 (en) System and method for runtime detection, analysis and signature determination of obfuscated malicious code
US9600665B2 (en) Monitoring device and monitoring method
You et al. Reference hijacking: Patching, protecting and analyzing on unmodified and non-rooted android devices
RU2724790C1 (en) System and method of generating log when executing file with vulnerabilities in virtual machine
Van Ginkel et al. A server-side JavaScript security architecture for secure integration of third-party libraries
Sze et al. Provenance-based integrity protection for windows
RU2649794C1 (en) System and method for log forming in virtual machine for anti-virus file checking
CN113779578B (en) Intelligent confusion method and system for mobile terminal application
KR101151284B1 (en) System for preventing network action of injection thread and method thereof
US11526456B1 (en) System and method for filtering process i/o operations in kernel-mode
Hwang et al. All about activity injection: Threats, semantics, detection, and defense

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: 20150526

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160523

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170523

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180523

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190523

Year of fee payment: 8