KR100645983B1 - Module for detecting an illegal process and method thereof - Google Patents
Module for detecting an illegal process and method thereof Download PDFInfo
- Publication number
- KR100645983B1 KR100645983B1 KR1020050080505A KR20050080505A KR100645983B1 KR 100645983 B1 KR100645983 B1 KR 100645983B1 KR 1020050080505 A KR1020050080505 A KR 1020050080505A KR 20050080505 A KR20050080505 A KR 20050080505A KR 100645983 B1 KR100645983 B1 KR 100645983B1
- Authority
- KR
- South Korea
- Prior art keywords
- function
- kernel
- illegal
- access
- protection process
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
Description
도 1 은 컴퓨터 시스템 내에서 이루어지는 본 발명에 따른 불법 프로세스 검출 모듈의 작동 양상을 개략적으로 도시한 블록도.1 is a block diagram schematically illustrating an operation of an illegal process detection module according to the present invention in a computer system;
도 2a 및 도 2b 는 본 발명의 바람직한 실시예에 따른 불법 프로세스 검출 방법을 도시한 흐름도.2A and 2B are flowcharts illustrating an illegal process detection method according to a preferred embodiment of the present invention.
< 도면의 주요 부분에 대한 부호의 설명 ><Description of Symbols for Main Parts of Drawings>
10 : 보호 프로세스10: protection process
20 : 불법 프로세스20: illegal process
100 : 불법 프로세스 검출 모듈100: illegal process detection module
110 : 접근 검출부110: access detection unit
120 : 기능 차단 처리부120: function blocking processing unit
본 발명은 컴퓨터 시스템에서 실행 중인 임의의 프로세스(악의성 프로세스, 불법 프로세스)가 다양한 수단을 통해 특정 프로세스(보호하고자 하는 프로세스)에 접근하려 할 경우, 이를 검출하고 그 접근 시도를 차단할 수 있는 불법 프로세스 검출 모듈 및 그 방법에 관한 것이다.According to the present invention, when any process (malicious process or illegal process) running on a computer system attempts to access a specific process (process to be protected) through various means, it is an illegal process that can detect and block the access attempt. A detection module and a method thereof are provided.
최근 네트워크와 인터넷 기술의 발달에 부응하여 온라인 게임 산업 역시 빠른 속도로 진보하면서 클라이언트(게임 유저)들에게 다양한 재미를 주고 있지만, 그에 비례하여 부정한 방법 또는 악의적인 방법으로 자신의 이득을 취하거나 불법적인 시도를 통해 정상적인 게임 유저에게 피해를 주는 사례도 함께 증가하고 있어 큰 문제로 대두되고 있다. 이러한 현상은 장기적인 관점으로 건전한 게임 문화의 발전을 저해하여 사용자의 의욕을 저하시키고, 종국에는 게임 제공업체의 게임 운영 및 개발 의지를 꺾는 결과로 귀결됨이 자명하다. In response to the recent development of network and Internet technology, the online game industry is also rapidly advancing and providing various fun to the clients (game users), but in proportion to the illegal or malicious means to take advantage of their own or illegal Increasingly, cases of damage to normal game users through trials are becoming a big problem. In the long term, this phenomenon impedes the development of a healthy game culture, depressing the user's motivation, and ultimately results in the game provider's willingness to operate and develop the game.
보다 구체적으로, 온라인 게임에서 가칭 게임 핵(Game Hack)이라 불리는 해킹 툴(Hacking Tool)로 인해 게임 유저의 정보들, 예들 들어, 경험치와 레벨을 비롯하여 게임 토큰(사이버 머니) 등 게임에 관련된 다양한 속성이 해킹되는 경우가 빈번히 발생하고 있다. 이러한 경우 게임 유저 사이에 바람직하지 못한 불균형이 야기된다. 따라서, 이와 같은 폐해를 방지하기 위한 게임 보안 관련 기술의 필요성이 절실히 요구된다. 그 대표적인 기술들을 살펴보면 아래와 같다.More specifically, in the online game, a hacking tool called the game hack, the game user's information, such as experience and level, as well as game tokens (cyber money) such as game tokens (cyber money) This hacking case frequently occurs. This leads to undesirable imbalances between game users. Therefore, there is an urgent need for a game security related technology to prevent such harm. The representative technologies are as follows.
첫째, 바이러스 엔진(Virus Engine)을 이용하여 유포된 해킹 툴의 패턴을 추가하고 게임 유저의 컴퓨터 시스템에서 실행되는 응용프로그램의 프로세스 (Process)를 검사하여 기 등록된 패턴과 일치하는 응용프로그램을 강제 종료시키는 기술이 있다. 그 대표적인 예가 '파인드 핵'과 안철수연구소에서 개발한 'MFGS(MyFirewall For Game Service'이다.First, it adds the pattern of hacking tool distributed by using Virus Engine, and inspects the process of application running on the game user's computer system and forcibly terminates the application program matching the registered pattern. There is a technique to let. Typical examples are 'Find Nuclear' and 'MFGS (MyFirewall For Game Service)' developed by AhnLab.
둘째, 운영체제(OS)가 제공하는 API(Application Programming Interface)의 다양한 후킹(Hooking) 관련 함수를 이용하여 컴퓨터 시스템에서 실행되는 모든 프로세스를 검사하고 중요한 함수들의 기능을 제한하거나 차단시키는 기술이 있다.Second, there is a technology that examines all processes executed in a computer system and limits or blocks functions of important functions by using various hooking-related functions of an API (Application Programming Interface) provided by an operating system (OS).
여기서 'API 후킹(API Hooking)'이란 커널(Kernel) 기반의 API 함수 호출을 먼저 가로채서 조작하는 일련의 행위를 말한다. 또한 운영체제에서 메시지(Message)가 발생될 경우 메시지 핸들러(Message Handler)를 후킹하는 'MessageHooking'과는 달리 응용프로그램에서 특정 API, 예를 들면 'CreateWindow(...)', 'OpenProcess(...)'등의 API를 호출할 때 API 루틴(API Routine)이 있는 메모리 주소로 이동하지 않고 임의의 주소로 이동시키는 기법이다. 운영체제에서 실행파일(*.exe)이나 동적 라이브러리 파일(*.dll)에는 파일 내부에 'import table'이란 구조체를 유지하고 있어서 외부의 어떤 API를 'import'하고 있는지의 정보를 가지고 있다. Here, 'API Hooking' refers to a series of actions that first intercept and manipulate Kernel-based API function calls. In addition, unlike MessageHooking, which hooks a message handler when a message occurs in the operating system, certain APIs in the application, such as' CreateWindow (...) ',' OpenProcess (... When calling an API such as ',' it is a technique of moving to an arbitrary address instead of going to a memory address where an API routine is located. The executable file (* .exe) or dynamic library file (* .dll) in the operating system maintains a structure called 'import table' inside the file and contains information on which external APIs are 'imported'.
여기에는 API 하나당 함수 이름과 주소 정보를 보유하고 있어 해당 API가 호출될 때마다 이 테이블 정보가 참조가 된다. 따라서 후킹하고자 하는 API를 'import table'에서 찾아내서 그곳의 주소 필드를 임의의 함수 주소로 바꿔치기 하는 것이 'API 후킹'기술의 핵심이다.It holds the function name and address information per API, so this table information is referenced every time the API is called. Therefore, finding the API to be hooked in the 'import table' and replacing the address field with an arbitrary function address is the core of the 'API hooking' technology.
그러나 주지된 바와 같이 기본적으로 운영체제는 가상메모리 시스템(Virtual Memory System)을 이용하고 있는 바, 각각의 프로세스는 고유의 독립적인 메모리 주소 영역을 가지고 있어서 타 프로세스의 접근을 허용하지 않는다. 따라서 타 프로세스의 'import table'을 조작하기 위해선 필연적으로 타 프로세스의 주소 영역에 접근하는 방법(예컨대, 'DLL injection'기법)이 구현되어야 한다.However, as is well known, the operating system basically uses a virtual memory system, and each process has its own independent memory address area and thus does not allow other processes to access it. Therefore, in order to manipulate the 'import table' of another process, a method of accessing the address area of another process (eg, a 'DLL injection' technique) must be implemented.
이와에 관련한 대표적인 예로서, 국내등록특허 제10-2003-0087149호(발명의 명칭 : '온라인 게임 클라이언트 보안을 위한 실시간 프로세스 불법 접근 및 조작 차단 방법')에 개시되어 있다.As a representative example in this regard, Korean Patent Registration No. 10-2003-0087149 (name of the invention: 'real-time process illegal access and manipulation blocking method for online game client security') is disclosed.
그러나, 전자의 종래 기술은, 지속적으로 신규 해킹 툴들의 패턴을 추가해야 하는 단점이 있으며, 더욱이 기존 해킹 툴이 새롭게 컴파일(Compile)되거나 그 실행파일 자체가 압축되면 그 패턴이 변형되기 때문에 검출되지 않게 되는 기술상 치명적인 허점을 내포하고 있다. 그리고, 후자의 종래 기술은, 해킹 툴의 프로세스를 접근할 수 있는 권한을 획득하여 API를 후킹(Hooking)해야 하는데, 그 권한이 차단되면 올바른 기능 구현이 불가능 하다는 문제점이 있다.However, the former prior art has the disadvantage of constantly adding a pattern of new hacking tools, and furthermore, if the existing hacking tool is newly compiled or the executable itself is compressed, the pattern is modified so that it is not detected. It is a technically fatal loophole. In addition, the latter prior art has to hook the API by acquiring the right to access the process of the hacking tool, but there is a problem in that proper function implementation is impossible when the right is blocked.
본 발명은, 상기와 같은 종래 기술의 문제점들을 해결하기 위해 창안된 것으로서, 종래와 같이 사용자 모드 레벨(User Mode Level)이 아닌 커널 모드 레벨(Kernel Mode Level)에서 응용프로그램(프로세스)을 모니터링하여, 보호하고자 하는 응용프로그램(프로세스)으로의 불법적인 접근을 검출하고 차단할 수 있는 불법 프로세스 검출 모듈 및 그 방법을 제공함에 그 특징적인 목적이 있다.The present invention has been made to solve the problems of the prior art, by monitoring the application (process) at the kernel mode level (Kernel Mode Level), not the user mode level (User Mode Level), An object of the present invention is to provide an illegal process detection module and a method for detecting and blocking illegal access to an application (process) to be protected.
이러한 특징적인 목적을 달성하기 위한 본 발명의 불법 프로세스 검출 모듈(100)은, 운영체제(OS)의 커널 인터페이스(Kernel Interface)와 연동되어 프로세스에 의한 API 기능 요청을 감지하는 접근 검출부(110); 및 접근 검출부(110)로부터 검출된 기능 요청을 분석하여 악의적인 요소가 없다고 판단될 경우 본래의 기능을 수행토록 허용 정보를 커널(Kernel)로 리턴시키며, 악의적인 요소가 있다고 판단될 경우 차단 정보를 상기 커널로 리턴시켜 해당 기능을 차단하는 기능 차단 처리부(120); 를 포함한다.The illegal
여기서, 상기 기능 차단 처리부(120)는, 상기 차단 정보를 상기 커널로 리턴시킴과 아울러 그 처리 결과를 보호 프로세스(10)로 전송하는 것이 바람직하다.Here, it is preferable that the function
한편, 커널 모드 레벨(Kernel Mode Level)에서 작동하는 불법 프로세스 검출 모듈(100)을 이용한 불법 프로세스 검출 방법은, (a) 상기 불법 프로세스 검출 모듈(100)이 초기화되는 단계; (b) API 기능 요청을 수행한 프로세스가 보호 프로세스(10)인지 여부를 판단하는 단계; (c) 상기 제 (b) 단계의 판단결과 보호 프로세스(10)가 아니고 상기 기능 요청의 대상이 보호 프로세스(10)인 경우, 차단 정보를 커널로 리턴시켜 요청된 해당 기능을 차단시키는 단계; 및 (d) 상기 제 (b) 단계의 판단결과, 보호 프로세스(10)라면, 허용 정보를 커널로 리턴시켜 요청된 해당 기능을 허용하는 단계; 로 구현된다.On the other hand, the illegal process detection method using the illegal
이때, 상기 제 (a) 단계는, (a-1) 커널 서비스의 초기화 및 보호 프로세스 (10) 사이의 명령어 채널을 설정하는 단계; (a-2) 커널에서 제공하는 원본 함수의 주소 및 그 인덱스를 검사하는 단계; (a-3) 커널 메모리를 할당하여 상기 원본 함수의 주소, 인덱스 및 해당 코드를 저장하는 단계; (a-4) 접근 검출용 함수를 커널 함수와 치환하는 단계; 및 (a-5) 상기 접근 검출용 함수가 대기 상태로 진입하는 하는 단계; 를 포함한다.In this case, step (a) may include: (a-1) establishing a command channel between the initialization and protection process of the kernel service (10); (a-2) checking the address of the original function provided by the kernel and its index; (a-3) allocating kernel memory to store an address, an index, and a corresponding code of the original function; (a-4) replacing the function for detecting access with a kernel function; And (a-5) entering the standby detection function into a standby state; It includes.
바람직하게, 상기 제 (a-4) 단계는, 커널 함수 테이블의 주소 일부를 커널 메모리에 로드된 접근 검출용 함수의 주소로 치환하는 방식으로 구현되거나, 또는 커널 함수 자체의 코드를 변조하여 접근 검출용 함수가 실행되도록 하는 방식으로 구현될 수 있다.Preferably, step (a-4) is implemented by replacing a part of an address of a kernel function table with an address of an access detecting function loaded in kernel memory, or modulating the code of the kernel function itself to detect access. It can be implemented in such a way that the function is executed.
본 발명의 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다. 또한, 본 발명에 관련된 공지 기능 및 그 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 구체적인 설명을 생략하였음에 유의해야 할 것이다.The features and advantages of the present invention will become more apparent from the following detailed description based on the accompanying drawings. Prior to this, the terms or words used in the present specification and claims are defined in the technical spirit of the present invention on the basis of the principle that the inventor can appropriately define the concept of the term in order to explain his invention in the best way. It should be interpreted to mean meanings and concepts. In addition, when it is determined that the detailed description of the known function and its configuration related to the present invention may unnecessarily obscure the subject matter of the present invention, it should be noted that the detailed description is omitted.
도 1 은 컴퓨터 시스템 내에서 이루어지는 본 발명에 따른 불법 프로세스 검 출 모듈의 작동 양상을 개략적으로 도시한 블록도이다. 1 is a block diagram schematically illustrating an operation of an illegal process detection module according to the present invention in a computer system.
먼저, 사용자가 응용프로그램을 실행시키면 이를 구동시키기 위한 프로세스(Process)가 운영체제(OS)에서 실행된다. 주지하다시피 운영체제(OS) 상에는 다수의 프로세스가 실행될 수 있으며, 설명의 편의상 본 발명에서는 보호하고자 하는 프로세스(이하, '보호 프로세스')(10)와 보호 프로세스(10)에 접근을 시도하려는 악의적인 불법 프로세스(20)가 운영체제(OS) 상에서 실행되고 있는 것으로 상정한다.First, when a user executes an application, a process for running the application is executed in an operating system (OS). As is well known, a number of processes may be executed on an operating system (OS), and for convenience of description, in the present invention, a malicious process that attempts to access a process (hereinafter, referred to as a 'protection process') 10 and a
보호 프로세스(10)는 상기와 같이 실행되면서 커널 수행부(Kernel Executive)의 커널 인터페이스(Kernel Interface)를 통해 커널 모드 레벨(Kernel Mode Level)에서 작동하는 본 발명의 불법 프로세스 검출 모듈(100)을 설치한다.The
여기서, 커널 모드 레벨(Kernel Mode Level)이란 컴퓨터 시스템의 리소스(이하, '시스템 리소스')를 직접 액세스할 수 있는 높은 권한의 레벨을 의미하며, 커널 모드 레벨에서 실행되는 컴포넌트(프로그램 형식의 기능성 모듈)들은 고의 또는 불의의 외부 간섭으로부터 프로세서(CPU) 자체의 설계에 의해 보호된다. Here, the kernel mode level (Kernel Mode Level) refers to a high level of authority to directly access the resources (hereinafter, 'system resources') of the computer system, and the component (program type functional module that is executed at the kernel mode level). Are protected by the design of the CPU itself from intentional or unintentional external interference.
반면에 사용자 모드 레벨(User Mode Level)은 리소스에 대해 직접적으로 액세스할 수 없는 상대적으로 낮은 권한의 레벨이며, 이는 운영체제(OS) 상에서 실행되는 응용프로그램에 해당한다. 이들 응용프로그램은 운영체제(OS)가 제공하는 API(Application Programming Interface)를 통해 시스템 리소스에 액세스할 수 있는데, 실제적으로는 사용자 모드 레벨에 포함된 Win32 서브시스템(예컨대 'USER32.DLL', 'KERNEL32.DLL', 'GDI32.DLL' 등)과 'NTOSKRNL.EXE' 및 'WIN32K.SYS' 등의 커널 수행부를 통해 액세스가 이루어진다. 이에 대한 보다 상세한 설명은 주지된 운영체제 구조(Windows™)와 같으므로 생략한다. On the other hand, the User Mode Level is a relatively low privilege level that does not allow direct access to resources, which corresponds to applications running on an operating system (OS). These applications can access system resources through an application programming interface (API) provided by the operating system (OS), which is actually a Win32 subsystem (eg 'USER32.DLL', 'KERNEL32.') Included in the user mode level. DLL ',' GDI32.DLL ', etc.), and kernel execution units such as' NTOSKRNL.EXE' and 'WIN32K.SYS'. A more detailed description thereof will be omitted as it is the same as the well-known operating system structure (Windows ™).
한편, 불법 프로세스(20)가 보호 프로세스(10)에 접근하기 위해 API를 호출하거나 키보드 이벤트 또는 마우스 이벤트를 발생시키면, 본 발명의 특징적인 양상에 따라 커널 모드 레벨에 탑재된 불법 프로세스 검출 모듈(100)이 이를 감지하여접근 시도가 악의적인지를 판단하고 요청한 기능을 차단함과 아울러 그 결과를 보호 프로세스(10)로 전송한다.Meanwhile, when the
이러한 특징적인 기능을 수행하기 위한 불법 프로세스 검출 모듈(100)은, 도 1 에 도시된 바와 같이, 커널 인터페이스(Kernel Interface)와 연동되어 불법 프로세스(20)의 접근 시도를 감지하는 접근 검출부(110);와, 검출부(110)로부터 검출된 접근 시도를 분석하여 악의적인 요소가 없다고 판단될 경우 본래의 기능을 수행토록 하고, 악의적인 요소가 있다고 판단될 경우 그 결과(차단 정보)를 리턴시켜 해당 기능을 차단함과 아울러 접근 시도에 따른 정보를 보호 프로세스(10)로 전송하는 기능 차단 처리부(120);로 구성된다.As illustrated in FIG. 1, the illegal
참고적으로, 불법 프로세스(20)가 보호 프로세스(10)에 접근하기 위해 이용하는 API로는, 'OpenProcess', 'ReadProcessMemory', 'WriteProcessMemory', 'SendInput', 'SendMessage', 'PostMessage', 'keydb_event', 'mouse_event' 등이 있으며, 이들의 구체적인 기능과 파라미터들에 대해서는 마이크로소프트사(Micosoft Company)가 제공하는 'MSDN'에 상세히 기술되어 있다.For reference, the APIs used by the
상기한 바와 같은 불법 프로세스 검출 모듈(100)은, 커널 모드 드라이버(Kernel Mode Driver) 형식으로 구현될 수 있다. 여기서 드라이버(Driver)란 커널 모드 레벨에서 수행되는 소정의 코드들로 이루어진 프로그램을 의미한다. 이러한 드라이버는 기본적으로 응용프로그램(보호 프로세스, 10)과 통상의 루틴들, 예컨대 디스패치, 로드, 언로드, 생성 등을 포함한 커널 서비스(Kernel Services) 및 보호 프로세스(10) 사이의 기본적인 명령어 채널(Instruction Channel)을 제공한다. 이와 관련한 구현 기술은 당업자 견지에서 용이하게 파악될 수 있으므로 보다 상세한 설명은 생략한다.The illegal
앞서 살펴보았듯이 악의적인 프로세스(해킹 툴)를 차단하기 위한 종래의 기술은 API를 후킹(Hooking)하여 그 악의적인 요소를 판별하는 방식으로서, 해킹 툴의 프로세스에 접근할 수 있는 권한을 얻어야 한다. 그러나 보다 진보한 해킹 툴의 경우 외부로부터 자신의 프로세스로의 접근을 차단시킬 수 있고, 그 결과 API 후킹 방식으로는 이러한 진보적인 해킹 툴을 차단할 수 없게 된다. 그러나 본 발명의 불법 프로세스 검출 모듈(100)은, 커널 모드 레벨에서 작동하면서 커널 인터페이스를 통해 들어오는 접근 시도들을 검출하고 악의적인 요소가 있을 경우 그 해당 기능을 무효화시킬 수 있게 된다.As described above, the conventional technique for blocking a malicious process (hacking tool) is a method of hooking an API to determine the malicious element, and the authority to access the process of the hacking tool should be obtained. However, more advanced hacking tools can block access to their processes from the outside, and as a result, the API hacking method cannot block these advanced hacking tools. However, the illegal
이하, 도 2a 및 도 2b 를 참조하여 본 발명의 기술적 사상을 보다 명확히 기 술한다. 도 2a 및 도 2b 는 본 발명의 바람직한 실시예에 따른 불법 프로세스 검출 방법을 도시한 흐름도이다. Hereinafter, the technical spirit of the present invention will be described more clearly with reference to FIGS. 2A and 2B. 2A and 2B are flowcharts illustrating an illegal process detection method according to a preferred embodiment of the present invention.
먼저, 보호 프로세스(10)가 운영체제(OS) 상에서 최초 스레딩(Threading) 및 스케쥴링(Scheduling)에 진입함과 동시에 본 발명의 불법 프로세스 검출 모듈(100)을 초기화한다(S210). 더욱 구체적으로 제 S210 단계는, 도 2b 에 도시된 바와 같이 커널 서비스(Kernel Services)의 초기화와 아울러 보호 프로세스(10) 사이의 명령어 채널(Instruction Channel)을 설정하는 단계(S211)와, 운영체제(OS)의 커널(Kernel)에서 제공하는 원본 함수(Primitive Functions)의 주소(Adress) 및 그 인덱스(Index)를 검사하는 단계(S212)와, 커널 메모리를 할당하여 원본 함수의 주소, 인덱스 및 해당 코드를 저장하는 단계(S213)와, 접근 검출용 함수(접근 검출용 코드)를 커널 함수와 치환하는 단계(S214)와, 검출용 함수가 대기 상태로 진입하는 하는 단계(S215)를 포함한다. First, the
여기서, 제 S214 단계는 커널 함수 테이블의 주소 일부를 커널 메모리에 로드된 접근 검출용 함수의 주소로 치환하는 방식, 또는 커널 함수 테이블의 주소 변경 없이 커널 함수 자체의 코드를 변조하여 접근 검출용 함수가 실행되도록 하는 방식으로 구현될 수 있다.Here, in step S214, a part of the address of the kernel function table is replaced with the address of an access detection function loaded in the kernel memory, or the access function is modified by modulating the code of the kernel function itself without changing the address of the kernel function table. It may be implemented in such a way as to be executed.
전술한 제 S215 단계 이후에 접근 검출부(110)는 커널 이벤트 대기 상태가 되며 응용프로그램(프로세스)이 API를 호출하면 그 호출 정보(요청 정보)가 커널 인터페이스를 통해 자동적으로 수신(Peeping)된다. 참고적으로 접근 검출용 함수는 바람직하게 'CallBack' 형식의 작동 양상(필터 훅 드라이버의 작동 양상과 유사함) 을 취할 수 있으며, 이를 통해 접근 검출부(110)는 프로세스들의 기능 요청 정보를 수신할 수 있게 된다. 한편, 보호 프로세스(10)가 종료될 경우에는 커널 메모리에 저장된 주소, 인덱스 및 해당 코드가 원상태로 복원된다.After the above-described step S215, the
상기 제 S210 단계의 실행 이후에, 전술한 바와 같이 기능 요청(API 및 이벤트를 이용한 기능 요청)을 수행한 프로세스가 보호 프로세스(10)인지 여부를 판단하여(S220), 만일 보호 프로세스(10)가 아닐 경우 불법 프로세스(20)에 의한 요청이라 간주하여 상기 기능 요청의 대상(접근 대상)이 보호 프로세스(10)인지 여부를 판단한다(S230). 제 S230 단계의 판단결과 상기 기능 요청의 대상이 보호 프로세스(10)라면 차단 정보를 커널(Kernel)로 리턴하여 그 기능이 수행될 수 없도록 차단시키고, 그 처리 결과를 보호 프로세스(10)로 전송한다(S240).After the execution of the step S210, it is determined whether the process that performed the function request (function request using the API and the event) as described above is the protection process 10 (S220), and if the
한편, 상기 제 S220 단계의 판단결과 보호 프로세스(10)에 의한 기능 요청이라면 해당 기능이 수행될 수 있도록 허용 정보를 커널(Kernel)로 리턴시킨다. 그리고, 제 S230 단계의 판단결과 기능 요청의 대상이 보호 프로세스(10)가 아닐 경우 전술한 바와 같이 해당 기능이 수행될 수 있도록 그 허용 정보를 커널(Kernel)로 리턴시킨다.On the other hand, if the function request by the
따라서, 커널 모드 레벨에서 작동하는 불법 프로세스 검출 모듈(100)을 통해 API 기능 요청을 분석하여 그 요청이 보호 프로세스(10)에 대한 악의적인 요소를 포함하고 있을 경우 그 요청된 해당 기능 무효화시킴으로써, 신뢰성 있게 보호 프로세스(10)를 보호할 수 있게 된다. 물론 이러한 특징적인 기능을 수행하는 본 발명의 불법 프로세스 검출 모듈(100)은 프로그래밍(Programming)을 통해 구현되는 바, 그 구현 방식(로직, Logic)은 다양하게 변형 실시될 수 있음은 자명하다.Thus, by analyzing the API function request through the illegal
이상으로 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 본 발명에 대해 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서, 그러한 모든 적절한 변경 및 수정과 균등물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다. As described above and described with reference to a preferred embodiment for illustrating the technical idea of the present invention, the present invention is not limited to the configuration and operation as shown and described as described above, it is a deviation from the scope of the technical idea It will be understood by those skilled in the art that many modifications and variations can be made to the invention without departing from the scope of the invention. Accordingly, all such suitable changes and modifications and equivalents should be considered to be within the scope of the present invention.
상술한 본 발명에 따르면, 종래와는 달리 커널 모드 레벨(Kernel Mode Level)에서 응용프로그램(프로세스)을 모니터링하여, 보호 프로세스(10)로의 악의적인 접근을 검출하고 차단할 수 있는 효과가 있다.According to the present invention described above, unlike the prior art by monitoring the application (process) at the kernel mode level (Kernel Mode Level), there is an effect that can detect and block malicious access to the protection process (10).
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050080505A KR100645983B1 (en) | 2005-08-31 | 2005-08-31 | Module for detecting an illegal process and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050080505A KR100645983B1 (en) | 2005-08-31 | 2005-08-31 | Module for detecting an illegal process and method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100645983B1 true KR100645983B1 (en) | 2006-11-14 |
Family
ID=37654621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050080505A KR100645983B1 (en) | 2005-08-31 | 2005-08-31 | Module for detecting an illegal process and method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100645983B1 (en) |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009035902A2 (en) * | 2007-09-10 | 2009-03-19 | Wisconsin Alumni Research Foundation | Malware prevention system monitoring kernel events |
WO2009132148A3 (en) * | 2008-04-22 | 2010-03-18 | The 41St Parameter, Inc. | Systems and methods for security management based on cursor events |
KR100968268B1 (en) * | 2007-11-20 | 2010-07-06 | 주식회사 안철수연구소 | Method for detecting automatically generated input |
KR100979092B1 (en) | 2008-04-30 | 2010-08-31 | 주식회사 잉카인터넷 | method of judging whether an image-enhanced gamehack is used, and intercepting an image-enhanced gamehack |
KR101033191B1 (en) | 2010-02-19 | 2011-05-11 | 고려대학교 산학협력단 | Buffer overflow malicious code detection by tracing executable memory |
WO2011149150A1 (en) * | 2010-05-25 | 2011-12-01 | (주)잉카인터넷 | Method for indicating information regarding whether a hack tool has been used in an on-line game |
WO2012020948A2 (en) * | 2010-08-10 | 2012-02-16 | (주)잉카인터넷 | Method for detecting and blocking a game-hack process |
KR101155123B1 (en) | 2010-10-26 | 2012-06-11 | 한국과학기술원 | Apparatus and method for protecting memory of application from failure of kernel code |
KR101153440B1 (en) | 2011-01-24 | 2012-07-09 | 주식회사 잉카인터넷 | Method for realtime displaying hack tool usage state in online game |
KR101201495B1 (en) | 2010-08-10 | 2012-11-14 | 주식회사 잉카인터넷 | method for blocking auto-input in computer system |
WO2012176978A2 (en) * | 2011-06-23 | 2012-12-27 | (주)잉카인터넷 | Network access control system and method |
KR101252188B1 (en) | 2011-05-31 | 2013-04-05 | 주식회사 잉카인터넷 | control method of accessing virtual memory data |
US9521551B2 (en) | 2012-03-22 | 2016-12-13 | The 41St Parameter, Inc. | Methods and systems for persistent cross-application mobile device identification |
US9633201B1 (en) | 2012-03-01 | 2017-04-25 | The 41St Parameter, Inc. | Methods and systems for fraud containment |
US9703983B2 (en) | 2005-12-16 | 2017-07-11 | The 41St Parameter, Inc. | Methods and apparatus for securely displaying digital images |
US9754256B2 (en) | 2010-10-19 | 2017-09-05 | The 41St Parameter, Inc. | Variable risk engine |
US9754311B2 (en) | 2006-03-31 | 2017-09-05 | The 41St Parameter, Inc. | Systems and methods for detection of session tampering and fraud prevention |
US9948629B2 (en) | 2009-03-25 | 2018-04-17 | The 41St Parameter, Inc. | Systems and methods of sharing information through a tag-based consortium |
US9990631B2 (en) | 2012-11-14 | 2018-06-05 | The 41St Parameter, Inc. | Systems and methods of global identification |
US10091312B1 (en) | 2014-10-14 | 2018-10-02 | The 41St Parameter, Inc. | Data structures for intelligently resolving deterministic and probabilistic device identifiers to device profiles and/or groups |
US10417637B2 (en) | 2012-08-02 | 2019-09-17 | The 41St Parameter, Inc. | Systems and methods for accessing records via derivative locators |
US10453066B2 (en) | 2003-07-01 | 2019-10-22 | The 41St Parameter, Inc. | Keystroke analysis |
US10902327B1 (en) | 2013-08-30 | 2021-01-26 | The 41St Parameter, Inc. | System and method for device identification and uniqueness |
US10999298B2 (en) | 2004-03-02 | 2021-05-04 | The 41St Parameter, Inc. | Method and system for identifying users and detecting fraud by use of the internet |
KR102254159B1 (en) * | 2020-12-09 | 2021-05-18 | 연세대학교 산학협력단 | Method for detecting real-time error in operating system kernel memory |
US11301585B2 (en) | 2005-12-16 | 2022-04-12 | The 41St Parameter, Inc. | Methods and apparatus for securely displaying digital images |
US11314838B2 (en) | 2011-11-15 | 2022-04-26 | Tapad, Inc. | System and method for analyzing user device information |
-
2005
- 2005-08-31 KR KR1020050080505A patent/KR100645983B1/en active IP Right Grant
Cited By (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10453066B2 (en) | 2003-07-01 | 2019-10-22 | The 41St Parameter, Inc. | Keystroke analysis |
US11238456B2 (en) | 2003-07-01 | 2022-02-01 | The 41St Parameter, Inc. | Keystroke analysis |
US11683326B2 (en) | 2004-03-02 | 2023-06-20 | The 41St Parameter, Inc. | Method and system for identifying users and detecting fraud by use of the internet |
US10999298B2 (en) | 2004-03-02 | 2021-05-04 | The 41St Parameter, Inc. | Method and system for identifying users and detecting fraud by use of the internet |
US12079368B2 (en) | 2005-12-16 | 2024-09-03 | The 41St Parameter, Inc. | Methods and apparatus for securely displaying digital images |
US9703983B2 (en) | 2005-12-16 | 2017-07-11 | The 41St Parameter, Inc. | Methods and apparatus for securely displaying digital images |
US10726151B2 (en) | 2005-12-16 | 2020-07-28 | The 41St Parameter, Inc. | Methods and apparatus for securely displaying digital images |
US11301585B2 (en) | 2005-12-16 | 2022-04-12 | The 41St Parameter, Inc. | Methods and apparatus for securely displaying digital images |
US10089679B2 (en) | 2006-03-31 | 2018-10-02 | The 41St Parameter, Inc. | Systems and methods for detection of session tampering and fraud prevention |
US11727471B2 (en) | 2006-03-31 | 2023-08-15 | The 41St Parameter, Inc. | Systems and methods for detection of session tampering and fraud prevention |
US10535093B2 (en) | 2006-03-31 | 2020-01-14 | The 41St Parameter, Inc. | Systems and methods for detection of session tampering and fraud prevention |
US11195225B2 (en) | 2006-03-31 | 2021-12-07 | The 41St Parameter, Inc. | Systems and methods for detection of session tampering and fraud prevention |
US9754311B2 (en) | 2006-03-31 | 2017-09-05 | The 41St Parameter, Inc. | Systems and methods for detection of session tampering and fraud prevention |
US12093992B2 (en) | 2006-03-31 | 2024-09-17 | The 41St Parameter, Inc. | Systems and methods for detection of session tampering and fraud prevention |
WO2009035902A2 (en) * | 2007-09-10 | 2009-03-19 | Wisconsin Alumni Research Foundation | Malware prevention system monitoring kernel events |
WO2009035902A3 (en) * | 2007-09-10 | 2009-05-14 | Wisconsin Alumni Res Found | Malware prevention system monitoring kernel events |
US8065728B2 (en) | 2007-09-10 | 2011-11-22 | Wisconsin Alumni Research Foundation | Malware prevention system monitoring kernel events |
KR100968268B1 (en) * | 2007-11-20 | 2010-07-06 | 주식회사 안철수연구소 | Method for detecting automatically generated input |
US9396331B2 (en) | 2008-04-22 | 2016-07-19 | The 41St Parameter, Inc. | Systems and methods for security management based on cursor events |
WO2009132148A3 (en) * | 2008-04-22 | 2010-03-18 | The 41St Parameter, Inc. | Systems and methods for security management based on cursor events |
KR100979092B1 (en) | 2008-04-30 | 2010-08-31 | 주식회사 잉카인터넷 | method of judging whether an image-enhanced gamehack is used, and intercepting an image-enhanced gamehack |
US11750584B2 (en) | 2009-03-25 | 2023-09-05 | The 41St Parameter, Inc. | Systems and methods of sharing information through a tag-based consortium |
US9948629B2 (en) | 2009-03-25 | 2018-04-17 | The 41St Parameter, Inc. | Systems and methods of sharing information through a tag-based consortium |
US10616201B2 (en) | 2009-03-25 | 2020-04-07 | The 41St Parameter, Inc. | Systems and methods of sharing information through a tag-based consortium |
KR101033191B1 (en) | 2010-02-19 | 2011-05-11 | 고려대학교 산학협력단 | Buffer overflow malicious code detection by tracing executable memory |
WO2011149150A1 (en) * | 2010-05-25 | 2011-12-01 | (주)잉카인터넷 | Method for indicating information regarding whether a hack tool has been used in an on-line game |
KR101201495B1 (en) | 2010-08-10 | 2012-11-14 | 주식회사 잉카인터넷 | method for blocking auto-input in computer system |
WO2012020948A3 (en) * | 2010-08-10 | 2012-04-19 | (주)잉카인터넷 | Method for detecting and blocking a game-hack process |
WO2012020948A2 (en) * | 2010-08-10 | 2012-02-16 | (주)잉카인터넷 | Method for detecting and blocking a game-hack process |
US9754256B2 (en) | 2010-10-19 | 2017-09-05 | The 41St Parameter, Inc. | Variable risk engine |
KR101155123B1 (en) | 2010-10-26 | 2012-06-11 | 한국과학기술원 | Apparatus and method for protecting memory of application from failure of kernel code |
KR101153440B1 (en) | 2011-01-24 | 2012-07-09 | 주식회사 잉카인터넷 | Method for realtime displaying hack tool usage state in online game |
KR101252188B1 (en) | 2011-05-31 | 2013-04-05 | 주식회사 잉카인터넷 | control method of accessing virtual memory data |
WO2012176978A3 (en) * | 2011-06-23 | 2013-02-14 | (주)잉카인터넷 | Network access control system and method |
WO2012176978A2 (en) * | 2011-06-23 | 2012-12-27 | (주)잉카인터넷 | Network access control system and method |
US9246937B2 (en) | 2011-06-23 | 2016-01-26 | Inca Internet Co., Ltd. | Network access control system and method |
US11314838B2 (en) | 2011-11-15 | 2022-04-26 | Tapad, Inc. | System and method for analyzing user device information |
US9633201B1 (en) | 2012-03-01 | 2017-04-25 | The 41St Parameter, Inc. | Methods and systems for fraud containment |
US11010468B1 (en) | 2012-03-01 | 2021-05-18 | The 41St Parameter, Inc. | Methods and systems for fraud containment |
US11886575B1 (en) | 2012-03-01 | 2024-01-30 | The 41St Parameter, Inc. | Methods and systems for fraud containment |
US9521551B2 (en) | 2012-03-22 | 2016-12-13 | The 41St Parameter, Inc. | Methods and systems for persistent cross-application mobile device identification |
US10862889B2 (en) | 2012-03-22 | 2020-12-08 | The 41St Parameter, Inc. | Methods and systems for persistent cross application mobile device identification |
US11683306B2 (en) | 2012-03-22 | 2023-06-20 | The 41St Parameter, Inc. | Methods and systems for persistent cross-application mobile device identification |
US10341344B2 (en) | 2012-03-22 | 2019-07-02 | The 41St Parameter, Inc. | Methods and systems for persistent cross-application mobile device identification |
US12058131B2 (en) | 2012-03-22 | 2024-08-06 | The 41St Parameter, Inc. | Methods and systems for persistent cross-application mobile device identification |
US10021099B2 (en) | 2012-03-22 | 2018-07-10 | The 41st Paramter, Inc. | Methods and systems for persistent cross-application mobile device identification |
US10417637B2 (en) | 2012-08-02 | 2019-09-17 | The 41St Parameter, Inc. | Systems and methods for accessing records via derivative locators |
US11301860B2 (en) | 2012-08-02 | 2022-04-12 | The 41St Parameter, Inc. | Systems and methods for accessing records via derivative locators |
US12002053B2 (en) | 2012-08-02 | 2024-06-04 | The 41St Parameter, Inc. | Systems and methods for accessing records via derivative locators |
US11410179B2 (en) | 2012-11-14 | 2022-08-09 | The 41St Parameter, Inc. | Systems and methods of global identification |
US9990631B2 (en) | 2012-11-14 | 2018-06-05 | The 41St Parameter, Inc. | Systems and methods of global identification |
US10395252B2 (en) | 2012-11-14 | 2019-08-27 | The 41St Parameter, Inc. | Systems and methods of global identification |
US11922423B2 (en) | 2012-11-14 | 2024-03-05 | The 41St Parameter, Inc. | Systems and methods of global identification |
US10853813B2 (en) | 2012-11-14 | 2020-12-01 | The 41St Parameter, Inc. | Systems and methods of global identification |
US12045736B1 (en) | 2013-08-30 | 2024-07-23 | The 41St Parameter, Inc. | System and method for device identification and uniqueness |
US11657299B1 (en) | 2013-08-30 | 2023-05-23 | The 41St Parameter, Inc. | System and method for device identification and uniqueness |
US10902327B1 (en) | 2013-08-30 | 2021-01-26 | The 41St Parameter, Inc. | System and method for device identification and uniqueness |
US11895204B1 (en) | 2014-10-14 | 2024-02-06 | The 41St Parameter, Inc. | Data structures for intelligently resolving deterministic and probabilistic device identifiers to device profiles and/or groups |
US10091312B1 (en) | 2014-10-14 | 2018-10-02 | The 41St Parameter, Inc. | Data structures for intelligently resolving deterministic and probabilistic device identifiers to device profiles and/or groups |
US11240326B1 (en) | 2014-10-14 | 2022-02-01 | The 41St Parameter, Inc. | Data structures for intelligently resolving deterministic and probabilistic device identifiers to device profiles and/or groups |
US10728350B1 (en) | 2014-10-14 | 2020-07-28 | The 41St Parameter, Inc. | Data structures for intelligently resolving deterministic and probabilistic device identifiers to device profiles and/or groups |
KR102254159B1 (en) * | 2020-12-09 | 2021-05-18 | 연세대학교 산학협력단 | Method for detecting real-time error in operating system kernel memory |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100645983B1 (en) | Module for detecting an illegal process and method thereof | |
US10949247B2 (en) | Systems and methods for auditing a virtual machine | |
US10083294B2 (en) | Systems and methods for detecting return-oriented programming (ROP) exploits | |
CN107690645B (en) | Behavioral malware detection using interpreter virtual machines | |
US9237171B2 (en) | System and method for indirect interface monitoring and plumb-lining | |
US8904537B2 (en) | Malware detection | |
CN102799817B (en) | For the system and method using Intel Virtualization Technology to carry out malware protection | |
EP2881881B1 (en) | Machine-readable medium, method and system for detecting java sandbox escaping attacks based on java bytecode instrumentation and java method hooking | |
US7665139B1 (en) | Method and apparatus to detect and prevent malicious changes to tokens | |
US20160232347A1 (en) | Mitigating malware code injections using stack unwinding | |
US9183377B1 (en) | Unauthorized account monitoring system and method | |
KR20180032566A (en) | Systems and methods for tracking malicious behavior across multiple software entities | |
WO2015113052A1 (en) | Detecting and preventing execution of software exploits | |
US20070266435A1 (en) | System and method for intrusion detection in a computer system | |
AU2004285256A1 (en) | System for invoking a privileged function in a device | |
JP2013168141A (en) | Method for detecting malware | |
EP3652667B1 (en) | System and method for detecting malware injected into memory of a computing device | |
US10372472B2 (en) | System, method, and computer program product for conditionally preventing use of hardware virtualization | |
KR20110057297A (en) | Dynamic analyzing system for malicious bot and methods therefore | |
KR20220080347A (en) | Method and apparatus for monitoring server | |
Ayers et al. | Tiered trust for useful embedded systems security | |
Zaheri et al. | Preventing reflective dll injection on uwp apps | |
KR20090080220A (en) | Malware(useless process) dectect/blocking and prevent recrudescence method | |
WO2022031275A1 (en) | Detection of memory modification | |
CN114036468A (en) | Process hiding method, device and equipment and readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120827 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20130826 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20141107 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20151026 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20161107 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20171106 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20181105 Year of fee payment: 13 |