KR101005593B1 - Method and Apparatus for Providing Security Service Using Hook - Google Patents

Method and Apparatus for Providing Security Service Using Hook Download PDF

Info

Publication number
KR101005593B1
KR101005593B1 KR1020090033432A KR20090033432A KR101005593B1 KR 101005593 B1 KR101005593 B1 KR 101005593B1 KR 1020090033432 A KR1020090033432 A KR 1020090033432A KR 20090033432 A KR20090033432 A KR 20090033432A KR 101005593 B1 KR101005593 B1 KR 101005593B1
Authority
KR
South Korea
Prior art keywords
input message
hook
message
time information
virtual input
Prior art date
Application number
KR1020090033432A
Other languages
Korean (ko)
Other versions
KR20100114969A (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 KR1020090033432A priority Critical patent/KR101005593B1/en
Priority to PCT/KR2010/002421 priority patent/WO2010120157A2/en
Priority to JP2012505829A priority patent/JP5580878B2/en
Publication of KR20100114969A publication Critical patent/KR20100114969A/en
Application granted granted Critical
Publication of KR101005593B1 publication Critical patent/KR101005593B1/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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • User Interface Of Digital Computer (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

입력 메시지에 가상 입력 메시지 플래그의 유무 판단 또는 커널 레벨에서의 시간 정보를 이용하여 해킹 시도를 탐지할 수 있는 본 발명의 일 실시예에 따른 훅을 이용한 컴퓨터 보안 서비스 제공 방법은 운영체제(Operating System)로부터 수신되는 입력 메시지를 훅(Hook)을 이용하여 모니터링하는 단계; 상기 입력 메시지에 가상 입력 메시지 플래그가 포함되어 있는지 여부를 판단하는 단계; 및 판단결과를 이용하여 매크로 핵(Macro Hack) 발생 여부를 탐지하는 단계를 포함한다.

Figure R1020090033432

메시지, 훅, 핵, 해킹

The method for providing a computer security service using a hook according to an embodiment of the present invention, which detects a hacking attempt by using a virtual input message flag or inputting time information at a kernel level in an input message, may be performed from an operating system. Monitoring a received input message using a hook; Determining whether a virtual input message flag is included in the input message; And detecting whether a macro hack is generated using the determination result.

Figure R1020090033432

Message, hook, hack, hack

Description

훅을 이용한 컴퓨터 보안 서비스 제공 방법 및 장치{Method and Apparatus for Providing Security Service Using Hook}Method and apparatus for providing computer security service using hook {Method and Apparatus for Providing Security Service Using Hook}

본 발명은 컴퓨터 보안에 관한 것으로서 보다 상세하게는 훅을 이용한 컴퓨터 보안에 관한 것이다.The present invention relates to computer security, and more particularly to computer security using a hook.

통신기술의 발달 및 초고속 인터넷 보급의 대중화로 인해 기존의 오프라인에서 수행되던 많은 업무들이 온라인을 통해 수행되고 있으며, 최근에는 온라인 상에서 수행될 수 있는 업무 분야가 확대되어 게임 서비스 제공도 온라인을 이용해서 수행되고 있다.Due to the development of communication technology and the popularization of high speed internet, many tasks that were performed offline have been performed online. Recently, the field of work that can be performed online has been expanded to provide game service using online. It is becoming.

특히, 온라인 게임 서비스 제공의 증가가 급증함에 따라 다양한 게임 해킹(핵) 시도가 발생되고 있다. 이러한 게임 핵 중 대표적인 유형으로는 매크로 핵(Macro Hack)과 스피드 팩(Speed Hack)이 있다.In particular, as the increase in the provision of online game services has soared, various game hacking (nuclear) attempts have occurred. Representative types of these game hacks are the Macro Hack and the Speed Hack.

매크로 핵이란 자동으로 마우스의 입력을 게임에게 전달하여 사용자 없이도 자동으로 게임 실행이 가능하게 하는 오토 마우스(Auto Mouse)의 발전된 행태로써, 프로그램을 짜듯이 원하는 키보드나 마우스의 입력을 만들어 놓고 자동으로 그 입력을 게임에게 전달하여 반복 실행하도록 하는 것을 의미한다.Macro Hack is an advanced behavior of Auto Mouse, which automatically delivers mouse input to the game and enables the game to run automatically without the user. This means passing the input to the game so that it can run repeatedly.

또한, 스피드 핵이란 컴퓨터의 시간 관련 정보를 변경하여 컴퓨터의 시간이 실제 시간보다 빨라지거나 혹은 느려지도록 함으로써 게임 프로그램의 반응 속도를 변경시키는 것을 의미한다. 이러한 스피드 핵을 사용하게 되면, 게임 내에서 캐릭터의 움직임이나 공격속도 등이 수배 내지 수백 배 빨라지며, 클라이언트로부터 서버로 전송되는 패킷의 속도도 함께 빨라진다.In addition, speed hacking means changing the response time of a game program by changing the time-related information of the computer so that the time of the computer becomes faster or slower than the actual time. Using this speed hack, the character's movement or attack speed in the game is several to hundreds of times faster, and the packet sent from the client to the server is also faster.

이러한 게임 해킹은 일반적인 해킹과 달리 게임 프로세스의 메모리를 조작하여 캐릭터의 능력치나 체력 등과 같은 특정 데이터를 바꾸는 것이기 때문에 사용자간의 밸런스가 붕괴됨은 물론, 게임 서버로의 가중한 부하 등과 같은 심각한 문제를 일으킬 수 있기 때문에, 이러한 다양한 게임 해킹을 방지하기 위한 게임 보안에 대한 인식과 개념에 대한 관심이 증가하고 있다.Unlike general hacking, such game hacking manipulates the memory of the game process to change specific data such as the character's stats and stamina, so that the balance between users may be broken and serious problems such as a heavy load on the game server may occur. Therefore, there is increasing interest in the concept and concept of game security for preventing such various game hacking.

일 예로, 매크로 핵으로 악의적인 사용자가 가상 입력을 발생시키는 것을 방지하기 위해 가상 입력 발생에 이용되는 API의 후킹을 통해 해당 API의 호출을 차단하는 방식이 제안된 바 있다.For example, in order to prevent a malicious user from generating a virtual input by a macro hack, a method of blocking a call of the API through hooking an API used for generating a virtual input has been proposed.

그러나, 상술한 방법의 경우 가상 입력 발생에 이용되는 모든 API에 제어용 Dll을 인젝션 하여야 하므로 메모리 및 CPU 사용량이 증가하게 되어 컴퓨터의 속도가 저하되며, 각각의 API에 대한 후킹을 수행함에 있어서 충돌이 발생할 수 있다는 문제점이 있다.However, in the above-described method, since the control DLLs must be injected into all APIs used for generating virtual inputs, memory and CPU usage are increased, and the speed of the computer is reduced, and collisions may occur when performing hooking for each API. There is a problem that can be.

또한, 기존의 방법은 커널 레벨에서의 가상 입력 드라이버를 이용한 매크로 핵 시도는 차단할 수 없다는 문제점이 있다. In addition, the conventional method has a problem that it cannot block the macro hack attempt using a virtual input driver at the kernel level.

한편, 스피드 핵의 경우에는 도 1에 도시된 바와 같은 시간 관련 API들을 후 킹함으로써 수행되기 때문에, 이러한 스피드 핵을 방지하기 위해 시간 관련 API들의 후킹 여부를 판단하여 시간 관련 API가 후킹된 것으로 판단되면 스피드 핵인 것으로 판단하는 방법이 제시된 바 있지만, 시간 관련 API가 후킹 되었는지 여부를 판단하는 것이 용이하지 않다는 문제점이 있다.On the other hand, in the case of the speed hack is performed by hooking the time-related APIs as shown in Figure 1, if it is determined that the time-related API is hooked by determining whether the time-related APIs are hooked to prevent such speed hacking Although a method of determining that it is a speed hack has been proposed, there is a problem that it is not easy to determine whether a time-related API is hooked.

본 발명은 상술한 문제점을 해결하기 위한 것으로서, 입력 메시지에 가상 입력 메시지 플래그의 유무 판단 또는 커널 레벨에서의 시간 정보를 이용하여 해킹 시도를 탐지할 수 있는 훅을 이용한 컴퓨터 보안 서비스 제공 방법 및 장치를 제공하는 것을 기술적 과제로 한다.The present invention has been made in view of the above-described problem, and a method and apparatus for providing a computer security service using a hook capable of detecting a hacking attempt by using a time information at a kernel level or determining a virtual input message flag in an input message. It is technical problem to provide.

또한, 본 발명은 자체적으로 발생시킨 가상 입력 메시지를 이용하여 입력 메시지의 변경 여부를 판단할 수 있는 훅을 이용한 컴퓨터 보안 서비스 제공 방법 및 장치를 제공하는 것을 다른 기술적 과제로 한다. Another object of the present invention is to provide a method and apparatus for providing a computer security service using a hook that can determine whether an input message is changed using a virtual input message generated by itself.

또한, 본 발명은 훅을 시스템 메시지 큐에 설치함으로써 컴퓨터의 부하를 경감시킬 수 있는 훅을 이용한 컴퓨터 보안 서비스 제공 방법 및 장치를 제공하는 것을 또 다른 기술적 과제로 한다.Another object of the present invention is to provide a method and apparatus for providing a computer security service using a hook that can reduce the load of a computer by installing a hook in a system message queue.

또한, 본 발명은 입력 메시지로부터 획득되는 커널 레벨에서의 시간과 시간 관련 API로부터 획득되는 유저 레벨에서의 시간의 차이를 이용하여 해킹 시도를 탐지할 수 있는 훅을 이용한 컴퓨터 보안 서비스 제공 방법 및 장치를 제공하는 것을 또 다른 기술적 과제로 한다.The present invention also provides a method and apparatus for providing a computer security service using a hook that can detect a hacking attempt by using a difference between a time at the kernel level obtained from an input message and a time at a user level obtained from a time-related API. It is another technical problem to provide.

상술한 목적을 달성하기 위한 본 발명의 일 측면에 따른 훅을 이용한 컴퓨터 보안 서비스 제공 방법은 운영체제(Operating System)로부터 수신되는 입력 메시지를 훅(Hook)을 이용하여 모니터링하는 단계; 상기 입력 메시지에 가상 입력 메시지 플래그가 포함되어 있는지 여부를 판단하는 단계; 및 판단결과를 이용하여 매크로 핵(Macro Hack) 발생 여부를 탐지하는 단계를 포함한다.Computer security service providing method using a hook according to an aspect of the present invention for achieving the above object comprises the steps of monitoring the input message received from the operating system (Operating System) using a hook (Hook); Determining whether a virtual input message flag is included in the input message; And detecting whether a macro hack is generated using the determination result.

일 실시예에 있어서, 매크로 핵 발생 여부 탐지 단계에서, 상기 입력 메시지에 상기 가상 입력 메시지 플래그가 포함 되어 있으면 상기 입력 메시지를 제1 타입의 가상 입력 메시지로 판단하고, 매크로 핵이 발생된 것으로 결정하는 것을 특징으로 한다.According to an embodiment, in the detecting of the macro hacking occurrence, if the virtual input message flag is included in the input message, the input message is determined as a virtual input message of a first type, and the macro hack is determined to be generated. It is characterized by.

이때, 상기 제1 타입의 가상 입력 메시지는 유저 레벨 윈도우 API(Application Programming Interface)를 이용하여 발생된 가상 입력 메시지인 것을 특징으로 한다.In this case, the first type of virtual input message may be a virtual input message generated using a user level window API (Application Programming Interface).

또한, 매크로 핵이 발생된 것으로 탐지되면, 상기 입력 메시지를 필터링하는 단계를 더 포함할 수 있다.The method may further include filtering the input message when it is detected that the macro hack is generated.

일 실시예에 있어서, 상기 훅은 키보드 로우 레벨 훅 또는 마우스 로우 레벨 훅을 포함하는 것을 특징으로 한다.In one embodiment, the hook is characterized in that it comprises a keyboard low level hook or a mouse low level hook.

한편, 훅은 모든 메시지들이 임시로 저장되는 시스템 메시지 큐에 설치되는 것을 특징으로 한다.On the other hand, the hook is characterized in that installed in the system message queue where all the messages are temporarily stored.

한편, 가상 입력을 발생시켜 상기 운영체제로 제공하는 단계; 및 상기 가상 입력을 기초로 생성된 제1 입력 메시지를 상기 훅을 통해 모니터링함으로써 상기 제1 입력 메시지의 변경 여부를 판단하는 단계를 더 포함할 수 있다.On the other hand, generating a virtual input to provide to the operating system; And determining whether to change the first input message by monitoring the first input message generated based on the virtual input through the hook.

이때, 상기 제1 입력 메시지 변경 여부 판단 단계에서, 상기 제1 입력 메시지에 상기 가상 입력 메시지 플래그가 포함되어 있지 않은 경우 상기 제1 입력 메 시지가 변경된 것으로 판단하는 것을 특징으로 한다.In this case, in the determining whether the first input message is changed, when the virtual input message flag is not included in the first input message, the first input message is determined to be changed.

일 실시예에 있어서, 상기 입력 메시지를 이용하여 커널 레벨에서의 제1 시간 정보를 생성하는 단계; 및 상기 제1 시간 정보가 각 입력 메시지 별로 동일한 경우 상기 입력 메시지를 제2 타입의 가상 입력 메시지로 판단하고, 매크로 핵이 발생된 것으로 결정하는 단계를 더 포함할 수 있다.In one embodiment, generating first time information at a kernel level using the input message; And when the first time information is the same for each input message, determining the input message as a virtual input message of a second type, and determining that a macro hack is generated.

이때, 상기 제2 타입의 가상 입력 메시지는 커널 레벨에서 가상 입력 드라이버를 이용하여 발생된 것임을 특징으로 하고, 상기 제1 시간 정보는 상기 입력 메시지로부터 획득되는 키 다운 시간과 키 업 시간의 차이값인 것을 특징으로 한다.In this case, the virtual input message of the second type is generated using a virtual input driver at a kernel level, and the first time information is a difference value between a key down time and a key up time obtained from the input message. It is characterized by.

한편, 상기 입력 메시지로부터 획득되는 커널 레벨에서의 제1 시간 정보와 시간 관련 API로부터 획득되는 유저 레벨에서의 제2 시간정보를 이용하여 스피드 핵 발생 여부를 탐지하는 단계를 더 포함할 수 있다.The method may further include detecting whether a speed hack is generated using first time information at a kernel level obtained from the input message and second time information at a user level obtained from a time-related API.

이때, 제1 시간 정보는 커널 레벨에서의 키 다운 시간과 키 업 시간의 차이값이고, 제2 시간 정보는 시간 관련 API를 이용해서 산출된 유저 레벨에서 키 다운 시간과 키 업 시간의 차이값인 것을 특징으로 한다.In this case, the first time information is a difference value between the key down time and the key up time at the kernel level, and the second time information is a difference value between the key down time and the key up time at the user level calculated using a time-related API. It is characterized by.

또한, 상기 스피드 핵 발생 여부를 탐지하는 단계에서, 상기 제1 시간 정보와 상기 제2 시간 정보의 차이가 임계치 이상인 경우 상기 스피드 핵이 발생된 것으로 결정하는 것을 특징으로 한다.In the detecting of whether the speed nucleus is generated, the speed nucleus may be determined to be generated when a difference between the first time information and the second time information is greater than or equal to a threshold value.

상술한 목적을 달성하기 위한 본 발명의 일 측면에 따른 훅을 이용한 컴퓨터 보안 서비스 제공 장치는 훅을 이용하여 운영체제로부터 수신되는 입력 메시지를 모니터링하는 훅 관리 모듈; 상기 입력 메시지에 가상 입력 메시지 플래그가 포함 되어 있는지 여부의 판단을 통해 매크로 핵 발생 여부를 탐지하는 매크로 핵 탐지 모듈; 및 매크로 핵이 발생된 것으로 탐지되면, 상기 입력 메시지를 필터링하는 필터링 모듈을 포함한다.Device for providing a computer security service using a hook according to an aspect of the present invention for achieving the above object comprises a hook management module for monitoring an input message received from the operating system using a hook; A macro nucleus detection module that detects whether or not a macro nucleus is generated by determining whether a virtual input message flag is included in the input message; And a filtering module for filtering the input message if it is detected that a macro hack has been generated.

본 발명에 따르면, 입력 메시지에 가상 입력 메시지 플래그가 존재하는지 여부의 판단을 통해 유저 레벨에서 시도되는 매크로 핵을 탐지하거나 커널 레벨에서의 시간 정보를 이용하여 커널 레벨에서 시도되는 매크로 핵을 탐지할 수 있어 컴퓨터 보안의 구현이 용이하다는 효과가 있다.According to the present invention, the macro hack attempted at the user level can be detected by determining whether a virtual input message flag exists in the input message, or the macro hack attempted at the kernel level can be detected using time information at the kernel level. This has the effect of easy implementation of computer security.

또한, 본 발명은 자체적으로 발생시킨 가상 입력 메시지를 이용하여 입력 메시지의 변경 여부를 판단할 수 있으므로, 입력 메시지에 포함되어 있는 가상 입력 메시지 플래그를 삭제함으로써 매크로 핵의 시도를 은닉하려는 시도를 원천적으로 봉쇄할 수 있다는 효과가 있다. In addition, the present invention can determine whether or not to change the input message by using the virtual input message generated by itself, the original attempt to conceal the attempt of the macro hack by deleting the virtual input message flag included in the input message. There is an effect that can be blocked.

또한, 본 발명은 훅을 시스템 메시지 큐에 설치함으로써 컴퓨터의 부하를 경감시킬 수 있다는 효과가 있다.In addition, the present invention has the effect that the load on the computer can be reduced by installing the hook in the system message queue.

또한, 본 발명은 입력 메시지로부터 획득되는 커널 레벨에서의 시간과 시간 관련 API로부터 획득되는 유저 레벨에서의 시간의 차이만을 이용하여 스피드 핵의 시도를 탐지할 수 있어 스피드 핵 탐지의 구현이 용이하다는 효과가 있다.In addition, the present invention can easily detect the speed hack attempt using only the difference between the time at the kernel level obtained from the input message and the time at the user level obtained from the time-related API. There is.

본 발명에 대해 설명하기에 앞서 본 발명에서 사용되는 입력 메시지와 훅에 대해 간략히 설명하기로 한다.Prior to describing the present invention, an input message and a hook used in the present invention will be briefly described.

먼저, 입력 메시지란 키보드나 마우스 등과 같은 입력 장치에 의해 발생되는 실제 입력, API(Application Programming Interface)나 장치 드라이버를 이용하여 소프트웨어적으로 발생되는 가상 입력, 가상 입력 드라이버를 이용하여 발생되는 가상 입력을 기초로 하여 운영체제(Operating System)에 의해 생성되는 메시지를 의미한다. 운영체제에 의해 생성된 입력 메시지는 시스템 메시지 큐에 임시로 저장되었다가 각 프로세스 별로 분류되어 각 프로세스 별 스레드 메시지 큐로 할당된다. 일 실시예에 있어서, 상술한 입력 메시지는 윈도우 입력 메시지일 수 있는데, 이하에서는 설명의 편의를 위해 입력 메시지가 윈도우 입력 메시지인 것으로 가정하여 설명하지만, 이는 하나의 예일 뿐 입력 메시지가 윈도우 입력 메시지로 한정되지는 않을 것이다.First, an input message refers to actual input generated by an input device such as a keyboard or a mouse, virtual input generated by software using an API (application programming interface) or a device driver, and virtual input generated using a virtual input driver. It means a message generated by the operating system based on the basis. Input messages generated by the operating system are temporarily stored in the system message queue, classified by process, and assigned to the thread message queue of each process. In an embodiment, the above-described input message may be a window input message. Hereinafter, for convenience of description, it is assumed that the input message is a window input message. However, this is just one example. It will not be limited.

다음으로, 훅(Hook)이란 입력 메시지의 트래픽을 모니터링 하기 위해 어플리케이션에서 설치할 수 있는 시스템 메시지 핸들링 메커니즘을 의미한다. 이러한 훅을 이용하여 운영체제로부터 전달되는 윈도우 입력 메시지의 내용을 확인할 수 있다. 일 실시예에 있어서 이러한 훅은 윈도우 메시지를 후킹하기 위한 윈도우 메시지 훅일 수 있는데, 이하에서는 설명의 편의를 위해 훅이 윈도우 메시지 훅인 것으로 가정하여 설명하지만, 이는 하나의 예일 뿐 훅이 윈도우 메시지 훅으로 한정되지는 않을 것이다.Next, a hook is a system message handling mechanism that can be installed by an application to monitor the traffic of an input message. You can use this hook to check the contents of a Windows input message from the operating system. In one embodiment, the hook may be a window message hook for hooking a window message. Hereinafter, for convenience of explanation, the hook is assumed to be a window message hook. However, this hook is only one example and the hook is limited to a window message hook. It won't be.

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

도 2는 본 발명의 일 실시예에 따른 컴퓨터 보안 서비스 제공 장치를 컴퓨터 시스템에 적용한 도면이다. 본 발명의 일 실시예에 따른 컴퓨터 보안 서비스 제공 장치(300)는 컴퓨터 시스템(302)과 연동함으로써 악의적인 사용자가 게임에서 이득을 취하기 위해 시도하는 매크로 핵(Macro Hack)이나 스피드 핵(Speed Hack)을 탐지하고, 매크로 핵이나 스피드 핵을 차단하는 역할을 수행한다.2 is a diagram illustrating a computer security service providing apparatus according to an embodiment of the present invention applied to a computer system. The apparatus 300 for providing a computer security service according to an embodiment of the present invention is a macro hack or a speed hack in which a malicious user attempts to take advantage of a game by interworking with the computer system 302. Detects and blocks macro or speed hacks.

이러한 컴퓨터 보안 서비스 제공 장치(300)는 도시된 바와 같이 윈도우 메시지 훅 관리 모듈(310), 매크로 핵 탐지 모듈(320), 및 필터링 모듈(330)을 포함한다.The computer security service providing apparatus 300 includes a window message hook management module 310, a macro nuclear detection module 320, and a filtering module 330 as shown.

먼저, 윈도우 메시지 훅 관리 모듈(310)은 윈도우 메시지 훅(Hook)을 설치(Install)하고, 설치된 윈도우 메시지 훅을 이용하여 운영체제(340)로부터 수신되는 윈도우 입력 메시지를 모니터링한다.First, the window message hook management module 310 installs a window message hook and monitors a window input message received from the operating system 340 using the installed window message hook.

이때, 윈도우 메시지 훅 관리 모듈(310)은 운영체제(340)로부터 전달되는 모든 윈도우 메시지들이 임시로 저장되는 시스템 메시지 큐(350)에 윈도우 메시지 훅을 설치할 수 있다. 본 발명에서 윈도우 메시지 훅 관리 모듈(310)이 윈도우 메시지 훅을 시스템 메시지 큐(350)에 설치하는 것은, 각 프로세스 별 윈도우 메시지들이 임시로 저장되는 스레드 메시지 큐(360)에 윈도우 메시지 훅을 설치하게 되면, 각 스레드 메시지 큐(360)별로 윈도우 메시지 훅을 모두 설치해야 하기 때문에, 시스템의 부하가 가중될 수 있기 때문이다.In this case, the window message hook management module 310 may install a window message hook in the system message queue 350 in which all window messages transmitted from the operating system 340 are temporarily stored. In the present invention, the window message hook management module 310 to install the window message hook to the system message queue 350, the window message hook to install the window message hook in the thread message queue 360 is temporarily stored in each process window message If the window message hooks need to be installed for each thread message queue 360, the load of the system may be increased.

일 실시예에 있어서, 윈도우 메시지 훅 관리 모듈(310)에 의해 설치되는 윈도우 메시지 훅은 키보드 로우 레벨 메시지 훅 또는 마우스 로우 레벨 메시지 훅을 포함할 수 있다.In one embodiment, the window message hook installed by the window message hook management module 310 may include a keyboard low level message hook or a mouse low level message hook.

상술한 윈도우 메시지 훅 관리 모듈(310)은 아래와 같은 함수를 호출함으로 써 윈도우 메시지 훅을 설치할 수 있다.The window message hook management module 310 may install a window message hook by calling a function as follows.

HHOOK SetWIndowsHookEx[Int IdHook, HOOKLPROC Ipfn, HINSTANCE hMod, DWORD dwThreadId]HHOOK SetWIndowsHookEx [Int IdHook , HOOKLPROC Ipfn , HINSTANCE hMod , DWORD dwThreadId ]

여기서, IdHook는 설치할 윈도우 메시지 훅 타입을 의미하는 것으로서, 일 실시예에 있어서 훅 타입은 상술한 바와 같이 키보드 로우 레벨 메시지 훅 또는 마우스 로우 레벨 메시지 훅이 있을 수 있다. 훅 타입이 키보드 로우 레벨 메시지 훅인 경우 훅 타입은 "WH_KEYBOARD_LL"로 설정되고, 훅 타입이 마우스 로우 레벨 메시지 훅인 경우 훅 타입은 "WH_MOUSE_LL"로 설정될 수 있다.Here, IdHook refers to a window message hook type to be installed. In one embodiment, the hook type may include a keyboard low level message hook or a mouse low level message hook as described above. When the hook type is a keyboard low level message hook, the hook type may be set to "WH_KEYBOARD_LL", and when the hook type is a mouse low level message hook, the hook type may be set to "WH_MOUSE_LL".

다음으로, Ipfn은 윈도우 메시지 훅 관리 모듈(310)의 포인터를 의미하며, hMod는 윈도우 메시지 훅 관리 모듈(310)을 가지고 있는 DLL의 핸들을 의미한다. 또한, dwThreadId는 윈도우 메시지 훅 관리 모듈(310)과 관련된 스레드 메시지 큐의 식별자를 의미하는 것으로서, 그 값이 0으로 설정되어 있는 경우 해당 윈도우 메시지 훅 관리 모듈(310)은 시스템에 존재하는 모든 스레드 메시지 큐와 관련된 윈도우 메시지 훅 관리 모듈(310)이라는 것을 나타낸다.Next, Ipfn means a pointer of the window message hook management module 310, and hMod means a handle of a DLL having the window message hook management module 310. In addition, dwThreadId refers to an identifier of a thread message queue associated with the window message hook management module 310. If the value is set to 0, the window message hook management module 310 may display all thread messages existing in the system. It indicates that the window message hook management module 310 associated with the queue.

다음으로, 매크로 핵 탐지 모듈(320)은 윈도우 입력 메시지 훅 관리 모듈(310)의해 모니터링된 윈도우 입력 메시지에 가상 입력 메시지 플래그가 포함되어 있는지 여부를 판단함으로써 매크로 핵이 시도되는지 여부를 탐지한다.Next, the macro hack detection module 320 detects whether the macro hack is attempted by determining whether the virtual input message flag is included in the window input message monitored by the window input message hook management module 310.

여기서, 가상 입력 메시지 플래그란 유저 레벨에서 윈도우 API를 이용해서 가상 입력이 발생 되면 운영체제(340)가 가상 입력을 기초로 윈도우 입력 메시지를 생성할 때 윈도우 입력 메시지에 삽입하는 플래그를 의미한다.Here, the virtual input message flag refers to a flag that is inserted into the window input message when the operating system 340 generates the window input message based on the virtual input when the virtual input is generated using the window API at the user level.

따라서, 매크로 핵 탐지 모듈(320)은 모니터링된 윈도우 입력 메시지에 가상 입력 메시지 플래그가 포함되어 있는지 여부를 판단함으로써 해당 윈도우 입력 메시지가 가상 입력 메시지인지 여부를 판단할 수 있다.Accordingly, the macro nucleus detection module 320 may determine whether the corresponding window input message is a virtual input message by determining whether the monitored window input message includes a virtual input message flag.

판단 결과, 윈도우 입력 메시지에 가상 입력 메시지 플래그가 포함되어 있는 경우, 매크로 핵 탐지 모듈(320)은 해당 윈도우 입력 메시지를 가상 입력 메시지인 것으로 결정하고, 악의적인 사용자에 의해 매크로 핵이 시도되고 있는 것으로 판단한다. As a result, when the window input message includes the virtual input message flag, the macro hack detection module 320 determines that the window input message is a virtual input message, and that the macro hack is attempted by a malicious user. To judge.

한편, 매크로 핵 탐지 모듈(320)에 의해 가상 입력 메시지가 아닌 것으로 판단된 윈도우 입력 메시지는 시스템 메시지 큐(350)로부터 스레드 메시지 큐(360)에 할당된 후 메시지 처리부(410)에 의해 처리된다. Meanwhile, the window input message determined as not the virtual input message by the macro hack detection module 320 is allocated to the thread message queue 360 from the system message queue 350 and then processed by the message processing unit 410.

필터링 모듈(330)은 매크로 핵 탐지 모듈(320)에 의해 매크로 핵이 시도되는 것으로 판단되면, 해당 윈도우 입력 메시지를 필터링 함으로써 해당 윈도우 입력 메시지가 시스템 메시지 큐(350)에서 스레드 메시지 큐(370)로 할당되지 못하도록 한다.If the filtering module 330 determines that the macro hack is attempted by the macro hack detection module 320, the window input message is filtered from the system message queue 350 to the thread message queue 370 by filtering the window input message. Do not allow assignment.

이와 같이 본 발명은, 악의적인 사용자가 매크로 핵을 시도하기 위해 윈도우 API를 이용하여 가상 입력을 발생 시킨 경우, 해당 가상 입력에 기초하여 생성된 윈도우 입력 메시지에 가상 입력 메시지 플래그가 존재하는지 여부를 판단함으로써 매크로 핵 시도를 탐지할 수 있고, 매크로 핵 시도가 탐지되면 해당 윈도우 입력 메시지를 필터링 함으로써 매크로 핵 시도를 차단하게 된다.As described above, when a malicious user generates a virtual input using a window API to attempt a macro hack, the present invention determines whether a virtual input message flag exists in a window input message generated based on the virtual input. By detecting a macro hack attempt, if a macro hack attempt is detected, the macro hack attempt is blocked by filtering the corresponding window input message.

상술한 실시예에 있어서 매크로 핵 탐지 모듈(320)은 윈도우 입력 메시지에 가상 입력 메시지 플래그가 포함되어 있는지 여부의 판단을 통해 매크로 핵을 탐지하는 것으로 기재하였다.In the above-described embodiment, the macro hack detection module 320 has been described as detecting the macro hack by determining whether the virtual input message flag is included in the window input message.

그러나, 윈도우 메시지 훅 관리 모듈(310)이 시스템 메시지 큐(350)에 윈도우 메시지 훅을 설치한 후 악의적인 사용자가 시스템 메시지 큐(350)에 다시 윈도우 메시지 훅을 설치하는 경우, 악의적인 사용자가 윈도우 메시지 훅 관리 모듈(310)보다 먼저 윈도우 입력 메시지를 모니터링할 수 있어 악의적인 사용자가 윈도우 입력 메시지에서 가상 입력 메시지 플래그를 삭제할 수 있게 된다.However, if the malicious user installs the window message hook again in the system message queue 350 after the window message hook management module 310 installs the window message hook in the system message queue 350, the malicious user has a window. The window input message may be monitored before the message hook management module 310 may allow a malicious user to delete the virtual input message flag from the window input message.

이러한 경우 윈도우 메시지 훅 관리 모듈(310)에 의해 모니터링되는 윈도우 입력 메시지가 가상 입력 메시지라 하더라도 이미 악의적인 사용자에 의해 윈도우 입력 메시지에서 가상 입력 메시지 플래그가 삭제되어 있기 때문에, 매크로 탐지 모듈(320)은 해당 윈도우 입력 메시지를 가상 입력 메시지로 판단하지 않게 되고 따라서 매크로 핵이 시도되지 않은 것으로 판단하게 된다.In this case, even if the window input message monitored by the window message hook management module 310 is a virtual input message, since the virtual input message flag has already been deleted from the window input message by the malicious user, the macro detection module 320 may be used. The window input message is not judged as a virtual input message, and thus the macro hack is determined not to be attempted.

이를 방지하기 위해 본 발명에 따른 컴퓨터 보안 서비스 제공 장치(300)는 가상 입력 발생 모듈(370)과 변경 판단 모듈(380)을 더 포함할 수 있다.In order to prevent this, the apparatus for providing a computer security service according to the present invention may further include a virtual input generation module 370 and a change determination module 380.

가상 입력 발생 모듈(370)은 자체적으로 가상 입력을 발생시켜 운영체제(340) 및 후술할 변경 판단 모듈(380)로 제공하는 역할을 수행한다. 일 실시예에 있어서, 가상 입력 발생 모듈(370)은 가상 입력을 발생시킴에 있어서, 가상 입력이 컴퓨터 시스템에 영향을 미치지 않도록 하기 이해 "OxFF"와 같이 아무런 의미를 가지지 않는 값을 이용하여 가상 입력을 발생시킬 수 있다.The virtual input generation module 370 generates a virtual input by itself and serves to provide the operating system 340 and the change determination module 380 to be described later. In one embodiment, the virtual input generation module 370 generates a virtual input by using a value that has no meaning, such as "OxFF", so that the virtual input does not affect the computer system. Can be generated.

이후, 운영체제(340)는 가상 입력 발생 모듈(370)에 의해 생성된 가상 입력 을 기초로 윈도우 입력 메시지를 생성할 때, 일반적인 윈도우 입력 메시지와 같이 윈도우 입력 메시지에 가상 입력 메시지 플래그를 삽입한다.Subsequently, when the operating system 340 generates the window input message based on the virtual input generated by the virtual input generation module 370, the operating system 340 inserts the virtual input message flag in the window input message like the general window input message.

변경 판단 모듈(380)은, 운영체제(340)로부터 전달되는 윈도우 입력 메시지들 중 가상 입력 발생 모듈(370)에 의한 가상 입력에 기초하여 생성된 윈도우 입력 메시지에 가상 입력 메시지 플래그가 포함되어 있는지 여부를 판단한다. 판단결과, 해당 윈도우 입력 메시지에 가상 입력 메시지 플래그가 포함되어 있지 않은 경우 해당 윈도우 입력 메시지가 변경된 것으로 판단한다.The change determination module 380 determines whether the virtual input message flag is included in the window input message generated based on the virtual input by the virtual input generation module 370 among the window input messages transmitted from the operating system 340. To judge. As a result of determination, when the virtual input message flag is not included in the corresponding window input message, it is determined that the corresponding window input message is changed.

즉, 자체적으로 발생시킨 가상 입력을 기초로 생성된 윈도우 입력 메시지는 가상 입력 메시지이므로 가상 입력 메시지 플래그가 포함되어 있어야 함에도 불구하고, 해당 가상 입력을 기초로 생성된 윈도우 입력 메시지에 가상 입력 메시지 플래그가 포함되어 있지 않다는 것은 사용자가 인위적으로 윈도우 입력 메시지에서 가상 입력 메시지 플래그를 삭제하였다는 것을 의미하고, 이는 악의적인 사용자가 윈도우 메시지 훅을 이용하여 윈도우 입력 메시지를 변경하였음을 의미한다.That is, although the window input message generated based on the virtual input generated by itself is a virtual input message, the virtual input message flag is included in the window input message generated based on the virtual input even though the virtual input message flag must be included. Not included means that the user artificially deleted the virtual input message flag from the window input message, which means that the malicious user altered the window input message using the window message hook.

한편, 상술한 실시예에 있어서는 컴퓨터 보안 서비스 제공 장치(300)가 윈도우 API를 통해 발생된 가상 입력을 이용하여 시도되는 매크로 핵을 차단하는 것으로 기재하였다. 그러나, 매크로 핵은 윈도우 API를 통해 발생된 가상 입력뿐만 아니라 커널 레벨에서 가상 입력 드라이버를 이용하여 생성된 가상 입력을 이용하여 시도될 수도 있다. 이러한 경우에는 상술한 바와 같이 윈도우 입력 메시지에 가상 입력 메시지 플래그가 포함되어 있는지 여부로 매크로 핵을 탐지할 수 없다.Meanwhile, in the above-described embodiment, it has been described that the computer security service providing apparatus 300 blocks the attempted macro hack using a virtual input generated through the Windows API. However, macro hacks may be attempted using virtual input generated via the Windows API as well as virtual input generated using a virtual input driver at the kernel level. In this case, as described above, the macro hack cannot be detected by whether the window input message includes the virtual input message flag.

따라서, 본 발명은 커널 레벨에서 가상 입력 드라이버로 발생시킨 가상 입력 을 이용하여 시도되는 매크로 핵을 차단하기 위해 도시된 바와 같이 시간 정보 생성 모듈(390)을 더 포함할 수 있다.Accordingly, the present invention may further include a time information generation module 390 as shown to block the macro hack attempted using the virtual input generated by the virtual input driver at the kernel level.

시간 정보 생성 모듈(390)은 윈도우 메시지 훅 관리 모듈(310)에 의해 모니터링된 윈도우 입력 메시지를 이용하여 커널 레벨에서의 제1 시간 정보를 생성한다. 일 실시예에 있어서, 시간 정보 생성 모듈(390)은 윈도우 입력 메시지로부터 획득되는 커널 레벨에서의 키 다운 발생 시간과 키 업 발생 시간 간의 차이값을 이용하여 제1 시간 정보를 산출할 수 있다.The time information generation module 390 generates first time information at the kernel level using the window input message monitored by the window message hook management module 310. In an embodiment, the time information generation module 390 may calculate the first time information by using a difference value between the key down occurrence time and the key up occurrence time at the kernel level obtained from the window input message.

이러한 실시예에 의하는 경우, 매크로 핵 탐지 모듈(320)은 시간 정보 생성 모듈(390)에 의해 생성된 제1 시간 정보가 각 윈도우 입력 메시지 별로 동일한지 여부를 판단한다. 판단결과, 제1 시간 정보가 윈도우 입력 메시지 별로 동일한 경우, 매크로 핵 탐지 모듈(320)은 해당 윈도우 입력 메시지를 커널 레벨에서의 가상 입력 메시지로 판단하고, 매크로 핵이 발생된 것으로 결정한다.According to this embodiment, the macro nucleus detection module 320 determines whether the first time information generated by the time information generation module 390 is the same for each window input message. As a result of determination, when the first time information is the same for each window input message, the macro hack detection module 320 determines that the window input message is a virtual input message at the kernel level, and determines that the macro hack is generated.

여기서, 매크로 핵 탐지 모듈(320)이 제1 시간 정보가 각 윈도우 입력 메시지 별로 동일한 경우 해당 윈도우 입력 메시지를 가상 입력 메시지로 판단하는 것은, 가상 입력 드라이버를 이용하여 기계적으로 발생되는 가상 입력의 경우 키다운 발생 시간과 키업 발생 시간의 차이값인 제1 시간 정보가 모든 윈도우 입력 메시지에 있어서 동일할 가능성이 높기 때문이다.Here, when the first time information is the same for each window input message, the macro nucleus detection module 320 determines that the window input message is a virtual input message in the case of a virtual input generated mechanically using a virtual input driver. This is because the first time information, which is the difference between the down occurrence time and the keyup occurrence time, is likely to be the same in all the window input messages.

한편, 상술한 실시예에 있어서는 컴퓨터 보안 서비스 제공 장치(300)가 가상 입력을 이용하여 시도되는 매크로 핵을 탐지하는 것으로 기재하였지만, 스피드 핵 탐지 모듈(400)을 더 포함함으로써 시간 관련 API의 후킹을 이용한 스피드 핵 시도 도 탐지할 수 있다.Meanwhile, in the above-described embodiment, the computer security service providing apparatus 300 describes the attempted detection of a macro nucleus using a virtual input, but further includes a speed nucleus detection module 400 to hook the time-related API. Speed attempts can also be detected.

스피드 핵 탐지를 위해, 상술한 시간 정보 생성 모듈(390)은 윈도우 입력 메시지로부터 획득되는 커널 레벨에서의 제1 시간 정보뿐만 아니라, 시간 관련 API로부터 획득되는 유저 레벨에서의 제2 시간정보를 생성한다. 여기서, 시간 관련 API는 GetTickCount, SetTimer, timeGetTime 등을 포함할 수 있으며, 제2 시간 정보는 시간 관련 API로부터 획득되는 유저 레벨에서의 키 다운 발생 시간과 키 업 발생 시간 간의 차이값을 이용하여 생성될 수 있다.For speed nuclear detection, the time information generation module 390 described above generates not only the first time information at the kernel level obtained from the window input message, but also the second time information at the user level obtained from the time-related API. . Here, the time-related API may include GetTickCount, SetTimer, timeGetTime, etc., and the second time information may be generated using a difference value between the key down occurrence time and the key up occurrence time at the user level obtained from the time related API. Can be.

스피드 핵 탐지 모듈(400)은 상술한 시간 정보 생성 모듈(390)에 의해 생성된 제1 시간 정보 및 제2 시간정보를 이용하여 스피드 핵 발생 여부를 탐지한다. 구체적으로, 스피드 핵 탐지 모듈(400)은 제1 시간 정보와 제2 시간 정보의 차이가 임계치 이상인 경우 스피드 핵이 발생된 것으로 판단한다. 즉, 제1 시간 정보와 제2 시간 정보가 임계치 이상 차이가 나는 것은 악의적인 사용자가 유저 레벨에서 시간 관련 API를 이용하여 시간을 변경하였다는 것을 의미하므로 스피드 핵이 발생된 것으로 판단하게 되는 것이다.The speed nucleus detection module 400 detects whether a speed nucleus is generated by using the first time information and the second time information generated by the time information generation module 390 described above. Specifically, the speed nucleus detection module 400 determines that the speed nucleus is generated when the difference between the first time information and the second time information is greater than or equal to a threshold. That is, the difference between the first time information and the second time information more than the threshold value means that the malicious user has changed the time using a time-related API at the user level, and thus, the speed hack is determined to have occurred.

이하에서는 도 3 내지 도 5를 참조하여 본 발명에 따른 훅을 이용한 컴퓨터 보안 서비스 제공 방법에 대해 설명하기로 한다.Hereinafter, a method of providing a computer security service using a hook according to the present invention will be described with reference to FIGS. 3 to 5.

도 3은 본 발명의 제1 실시예에 따라 윈도우 메시지 훅을 이용하여 매크로 핵을 차단하는 방법을 보여주는 플로우차트이다. 도 3에 도시된 매크로 핵 차단 방법은 악의적인 사용자가 유저 레벨에서 윈도우 API를 이용하여 발생시킨 가상 입력을 이용하여 시도되는 매크로 핵을 차단하는 방법을 보여준다.3 is a flowchart showing a method of blocking a macro hack using a window message hook according to the first embodiment of the present invention. The macro hack blocking method shown in FIG. 3 shows a method of blocking a macro hack attempted by using a virtual input generated by a malicious user using the Windows API at the user level.

도시된 바와 같이, 먼저 윈도우 메시지 훅을 설치한다(S400). 일 실시예에 있어서, 윈도우 메시지 훅은 모든 윈도우 메시지들이 임시로 저장되는 시스템 메시지 큐에 설치할 수 있으며, 이때 설치되는 윈도우 메시지 훅은 키보드 로우 레벨 메시지 훅 또는 마우스 로우 레벨 메시지 훅을 포함할 수 있다.As shown, first install the window message hook (S400). In one embodiment, the window message hook may be installed in a system message queue in which all window messages are temporarily stored, and the installed window message hook may include a keyboard low level message hook or a mouse low level message hook.

이후, 윈도우 메시지 훅이 정상적으로 설치되었는지 여부를 판단하여(S405), 정상적으로 설치된 경우, 설치된 윈도우 메시지 훅을 이용하여 운영체제로부터 수신되는 윈도우 입력 메시지를 모니터링한다(S410).Thereafter, it is determined whether the window message hook is normally installed (S405), and if normally installed, the window input message received from the operating system is monitored using the installed window message hook (S410).

다음으로, 모니터링되는 윈도우 입력 메시지에 가상 입력 메시지 플래그가 포함되어 있는지 여부를 판단한다(S420).Next, it is determined whether the virtual input message flag is included in the monitored window input message (S420).

판단결과, 윈도우 입력 메시지에 가상 입력 메시지 플래그가 포함 되어 있으면 해당 윈도우 입력 메시지를 가상 입력 메시지로 판단함으로써 매크로 핵이 발생된 것으로 결정하고, 해당 윈도우 입력 메시지를 필터링한다(S430).As a result of determination, if the virtual input message flag is included in the window input message, it is determined that the macro hack is generated by determining the corresponding window input message as the virtual input message (S430).

S420에서 윈도우 입력 메시지에 가상 입력 메시지 플래그가 포함되어 있지 않으면 해당 윈도우 입력 메시지는 가상 입력 메시지가 아닌 것으로 판단하고, 해당 윈도우 메시지를 메시지 루프에 따라서 처리한다(S440).If the virtual input message flag is not included in the window input message in S420, the corresponding window input message is determined not to be a virtual input message, and the corresponding window message is processed according to the message loop (S440).

한편, 상술한 도 3에는 도시하지 않았지만, 악의적인 사용자가 윈도우 메시지 훅 설치 이후에 다시 윈도우 메시지 훅을 설치하는 경우, 악의적인 사용자가 먼저 윈도우 입력 메시지를 모니터링하고, 악의적인 사용자가 윈도우 입력 메시지에서 가상 입력 메시지 플래그를 삭제함으로써 매크로 핵을 은닉할 수 있다.On the other hand, although not shown in Figure 3 above, when the malicious user installs the window message hook again after the installation of the window message hook, the malicious user first monitors the window input message, the malicious user in the window input message By deleting the virtual input message flag, the macro hack can be concealed.

이를 방지하기 위해 본 발명은 상술한 윈도우 메시지 훅 설치 과정 이후에, 자체적으로 가상 입력을 발생시켜 운영체제로 제공하는 과정(미도시)과, 자체적으로 발생된 가상 입력을 기초로 생성된 윈도우 입력 메시지를 모니터링함으로써 윈도우 입력 메시지의 변경 여부를 판단하는 과정(미도시)을 더 포함할 수 있다.In order to prevent this, the present invention provides a process (not shown) for generating a virtual input by itself and providing it to the operating system after the above-described window message hook installation process, and a window input message generated based on the generated virtual input. The method may further include determining whether the window input message is changed by monitoring (not shown).

이때, 윈도우 입력 메시지 변경 여부 판단시, 자체적으로 발생된 가상 입력에 기초하여 생성된 윈도우 입력 메시지에 가상 입력 메시지 플래그가 포함되어 있지 않은 경우 해당 윈도우 입력 메시지가 변경된 것으로 판단할 수 있다.In this case, when determining whether to change the window input message, if the virtual input message flag is not included in the window input message generated based on the generated virtual input, the corresponding window input message may be determined to be changed.

도 4는 본 발명의 제2 실시예에 따라 훅을 이용하여 매크로 핵을 차단하는 방법을 보여주는 플로우차트이다. 도 4에 도시된 매크로 핵 차단 방법은 악의적인 사용자가 커널 레벨에서 가상 입력 드라이버를 이용하여 발생시킨 가상 입력을 이용하여 시도되는 매크로 핵을 차단하는 방법을 보여준다.4 is a flowchart showing a method of blocking a macro nucleus using a hook according to a second embodiment of the present invention. The macro hack blocking method shown in FIG. 4 shows a method of blocking a macro hack attempted using a virtual input generated by a malicious user using a virtual input driver at the kernel level.

도시된 바와 같이, 먼저 윈도우 메시지 훅을 설치한다(S500). 제1 실시예에서와 같이 윈도우 메시지 훅은 모든 윈도우 메시지들이 임시로 저장되는 시스템 메시지 큐에 설치할 수 있으며, 이때 설치되는 윈도우 메시지 훅은 키보드 로우 레벨 메시지 훅 또는 마우스 로우 레벨 메시지 훅일 수 있다.As shown, first install the window message hook (S500). As in the first embodiment, the window message hook may be installed in a system message queue where all window messages are temporarily stored, and the installed window message hook may be a keyboard low level message hook or a mouse low level message hook.

이후, 윈도우 메시지 훅이 정상적으로 설치되었는지 여부를 판단하여(S505), 정상적으로 설치된 경우, 설치된 윈도우 메시지 훅을 이용하여 운영체제로부터 수신되는 윈도우 입력 메시지를 모니터링한다(S510).Thereafter, it is determined whether the window message hook is normally installed (S505), and if normally installed, the window input message received from the operating system is monitored using the installed window message hook (S510).

다음으로, 모니터링된 윈도우 입력 메시지를 이용하여 커널 레벨에서의 제1 시간 정보를 생성한다(S520). 일 실시예에 있어서, 제1 시간 정보는 윈도우 입력 메시지로부터 획득되는 키 다운 시간과 키 업 시간의 차이값을 이용하여 생성할 수 있다.Next, the first time information at the kernel level is generated using the monitored window input message (S520). In an embodiment, the first time information may be generated using a difference value between the key down time and the key up time obtained from the window input message.

이후, 각 윈도우 입력 메시지 별로 S520에서 생성된 제1 시간 정보가 동일한지 여부를 판단한다(S530).Thereafter, it is determined whether the first time information generated in S520 is the same for each window input message (S530).

판단결과, 각 윈도우 입력 메시지 별로 제1 시간 정보가 동일한 경우 해당 윈도우 입력 메시지를 가상 입력 메시지로 판단함으로써 매크로 핵이 발생된 것으로 결정하고, 해당 윈도우 입력 메시지를 필터링한다(S540).As a result of the determination, when the first time information is the same for each window input message, it is determined that the macro hack is generated by determining the corresponding window input message as a virtual input message (S540).

S530의 판단결과 각 윈도우 입력 메시지 별로 제1 시간 정보가 동일하지 않은 경우 해당 윈도우 입력 메시지를 가상 입력 메시지가 아닌 것으로 판단하고, 해당 윈도우 메시지를 메시지 루프에 따라서 처리한다(S550).If the first time information for each window input message is not the same as the determination result of S530, it is determined that the corresponding window input message is not a virtual input message, and the corresponding window message is processed according to the message loop (S550).

한편, 제2 실시예에 있어서도, 제1 실시예에서와 동일하게 악의적인 사용자가 윈도우 입력 메시지에서 가상 입력 메시지 플래그를 삭제함으로써 매크로 핵을 은닉하려는 시도를 방지하기 위해 상술한 윈도우 메시지 훅 설치 과정 이후에, 자체적으로 가상 입력을 발생시켜 운영체제로 제공하는 과정(미도시)과, 자체적으로 발생된 가상 입력을 기초로 생성된 윈도우 입력 메시지를 윈도우 메시지 훅을 통해 모니터링함으로써 윈도우 입력 메시지의 변경 여부를 판단하는 과정(미도시)을 더 포함할 수 있다. 이에 대한 설명은 이미 구체적으로 설명하였으므로 상세한 설명은 생략하기로 한다.On the other hand, also in the second embodiment, the same as in the first embodiment, after the above-described window message hook installation process for preventing a malicious user from attempting to conceal the macro hack by deleting the virtual input message flag from the window input message. Determining whether the window input message has been changed by monitoring the window input message generated by the virtual input by itself and providing the operating system to the operating system (not shown), and by monitoring the window input message generated based on the virtual input generated by itself. It may further include a process (not shown). Since this has been described in detail already, the detailed description will be omitted.

상술한 실시예에 있어서는 유저 레벨에서의 윈도우 API를 이용한 매크로 핵 탐지와 커널 레벨에서의 가상 입력 드라이버를 이용한 매크로 핵 탐지가 별개의 과정을 수행되는 것으로 기재하였지만, 변형된 실시예에 있어서는 하나로 통합되어 수행될 수도 있을 것이다.In the above-described embodiment, macro nucleus detection using the Windows API at the user level and macro nucleus detection using the virtual input driver at the kernel level are described as being performed separately. It may be performed.

즉, 유저 레벨에서의 윈도우 API를 이용한 매크로 핵 탐지 과정을 수행한 후 커널 레벨에서의 가상 입력 드라이버를 이용한 매크로 핵 탐지 과정을 수행하거나, 커널 레벨에서의 가상 입력 드라이버를 이용한 매크로 핵 탐지 과정을 수행한 후 유저 레벨에서의 윈도우 API를 이용한 매크로 핵 탐지 과정을 수행할 수 있을 것이다.That is, after performing the macro nuclear detection process using the Windows API at the user level, the macro nuclear detection process using the virtual input driver at the kernel level or the macro nuclear detection process using the virtual input driver at the kernel level is performed. You can then perform a macro hacking process using the Windows API at the user level.

도 5는 본 발명의 제3 실시예에 따라 훅을 이용하여 스피드 핵을 차단하는 방법을 보여주는 플로우차트이다.5 is a flowchart showing a method of blocking a speed hack using a hook according to a third embodiment of the present invention.

도시된 바와 같이, 먼저 윈도우 메시지 훅을 설치한다(S600). 제1 실시예에서와 같이 윈도우 메시지 훅은 모든 윈도우 메시지들이 임시로 저장되는 시스템 메시지 큐에 설치할 수 있으며, 이때 설치되는 윈도우 메시지 훅은 키보드 로우 레벨 메시지 훅 또는 마우스 로우 레벨 메시지 훅일 수 있다.As shown, first install the window message hook (S600). As in the first embodiment, the window message hook may be installed in a system message queue where all window messages are temporarily stored, and the installed window message hook may be a keyboard low level message hook or a mouse low level message hook.

이후, 윈도우 메시지 훅이 정상적으로 설치되었는지 여부를 판단하여(S605), 정상적으로 설치된 경우, 설치된 윈도우 메시지 훅을 이용하여 운영체제로부터 수신되는 윈도우 입력 메시지를 모니터링한다(S610).Subsequently, it is determined whether the window message hook is normally installed (S605), and if normally installed, the window input message received from the operating system is monitored using the installed window message hook (S610).

다음으로, 모니터링된 윈도우 입력 메시지를 이용하여 커널 레벨에서의 제1 시간 정보를 생성하고, 시간 관련 API를 이용하여 유저 레벨에서의 제2 시간 정보를 생성한다(S620).Next, the first time information at the kernel level is generated using the monitored window input message, and the second time information at the user level is generated using the time-related API (S620).

일 실시예에 있어서, 제1 시간 정보는 윈도우 입력 메시지로부터 획득되는 키 다운 발생 시간과 키 업 발생 시간의 차이값을 이용하여 생성할 수 있고, 제2 시간 정보는 시간 관련 API를 이용하여 획득되는 키 다운 발생 시간과 키 업 발생 시간의 차이값을 이용하여 생성할 수 있다.In one embodiment, the first time information may be generated using a difference between a key down occurrence time and a key up occurrence time obtained from a window input message, and the second time information may be obtained using a time related API. The difference between the key down occurrence time and the key up occurrence time can be generated.

이후, 제1 시간 정보와 제2 시간 정보의 차이값을 산출하고(S630), 산출된 차이값이 임계치 이상인지 여부를 판단한다(S640).Thereafter, a difference value between the first time information and the second time information is calculated (S630), and it is determined whether the calculated difference value is greater than or equal to a threshold value (S640).

판단결과, 산출된 차이값이 임계치 이상인 경우 스피드 핵이 시도된 것으로 판단하여 해당 윈도우 입력 메시지를 필터링하고(S650), 산출된 차이값이 임계치 미만인 경우 해당 윈도우 입력 메시지를 메시지 루프에 따라서 처리한다(S660).As a result, if the calculated difference value is greater than or equal to the threshold value, it is determined that the speed hack is attempted, and the corresponding window input message is filtered (S650). If the calculated difference value is less than the threshold value, the corresponding window input message is processed according to the message loop ( S660).

상술한 컴퓨터 보안 서비스 제공 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 이때, 컴퓨터로 판독 가능한 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 한편, 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.The computer security service providing method described above may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer-readable recording medium. In this case, the computer-readable recording medium may include program instructions, data files, data structures, and the like, alone or in combination. On the other hand, the program instructions recorded on the recording medium may be those specially designed and configured for the present invention or may be available to those skilled in the art of computer software.

컴퓨터로 판독 가능한 기록매체에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 한편, 이러한 기록매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다.The computer-readable recording medium includes a magnetic recording medium such as a magnetic medium such as a hard disk, a floppy disk and a magnetic tape, an optical medium such as a CD-ROM and a DVD, a magnetic disk such as a floppy disk, A magneto-optical media, and a hardware device specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. The recording medium may be a transmission medium such as an optical or metal wire, a waveguide, or the like including a carrier wave for transmitting a signal specifying a program command, a data structure, or the like.

또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

한편, 본 발명이 속하는 기술분야의 당업자는 상술한 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.On the other hand, those skilled in the art will understand that the present invention described above can be implemented in other specific forms without changing the technical spirit or essential features.

그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Therefore, it is to be understood that the embodiments described above are exemplary in all respects and not restrictive. The scope of the present invention is shown by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be construed as being included in the scope of the present invention. do.

도 1은 종래기술에 따른 스피드 핵 차단 방법을 보여주는 도면.1 is a view showing a speed nuclear blocking method according to the prior art.

도 2는 본 발명의 일 실시예에 따른 컴퓨터 보안 서비스 제공 장치의 개략적인 블록도.2 is a schematic block diagram of an apparatus for providing a computer security service according to an embodiment of the present invention.

도 3은 본 발명의 제1 실시예에 따른 매크로 핵 차단 방법을 보여주는 플로우차트.3 is a flowchart showing a macronuclear blocking method according to the first embodiment of the present invention.

도 4는 본 발명의 제2 실시예에 따른 매크로 핵 차단 방법을 보여주는 플로우차트.4 is a flowchart showing a macronuclear blocking method according to a second embodiment of the present invention.

도 5는 본 발명의 제3 실시예에 따른 스피드 핵 차단 방법을 보여주는 플로우차트.5 is a flowchart showing a speed nucleus blocking method according to a third embodiment of the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

310: 윈도우 메시지 훅 관리 모듈 320: 매크로 핵 탐지 모듈310: window message hook management module 320: macro nuclear detection module

330: 필터링 모듈 370: 가상 입력 발생 모듈330: filtering module 370: virtual input generation module

380: 변경 판단 모듈 390: 시간 정보 생성 모듈380: change determination module 390: time information generation module

400: 스피드 핵 탐지 모듈400: speed nuclear detection module

Claims (26)

운영체제(Operating System)로부터 수신되는 입력 메시지를 훅(Hook)을 이용하여 모니터링하는 단계;Monitoring an input message received from an operating system using a hook; 상기 입력 메시지에 가상 입력 메시지 플래그가 포함되어 있는지 여부를 판단하는 단계; 및Determining whether a virtual input message flag is included in the input message; And 판단결과를 이용하여 매크로 핵(Macro Hack) 발생 여부를 탐지하는 단계를 포함하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 방법.A method of providing a computer security service using a hook, comprising detecting whether a macro hack is generated using the determination result. 제1항에 있어서, 상기 매크로 핵 발생 여부 탐지 단계에서,The method of claim 1, wherein in the macro nucleus detection step, 상기 입력 메시지에 상기 가상 입력 메시지 플래그가 포함 되어 있으면 상기 입력 메시지를 제1 타입의 가상 입력 메시지로 판단하고, 매크로 핵이 발생된 것으로 결정하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 방법.And if the virtual input message flag is included in the input message, determine the input message as a virtual input message of a first type, and determine that a macro hack has been generated. 제2항에 있어서, 상기 제1 타입의 가상 입력 메시지는 유저 레벨 API(Application Programming Interface)를 이용하여 발생된 가상 입력 메시지인 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 방법.The method of claim 2, wherein the first type of virtual input message is a virtual input message generated using a user level application programming interface (API). 제1항에 있어서,The method of claim 1, 매크로 핵이 발생된 것으로 탐지되면, 상기 입력 메시지를 필터링하는 단계 를 더 포함하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 방법.If it is detected that a macro hack has been generated, filtering the input message further comprising providing a computer security service using a hook. 제1항에 있어서,The method of claim 1, 상기 훅은 키보드 로우 레벨 훅 또는 마우스 로우 레벨 훅을 포함하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 방법.And the hook comprises a keyboard low level hook or a mouse low level hook. 제1항에 있어서,The method of claim 1, 상기 훅은 모든 메시지들이 임시로 저장되는 시스템 메시지 큐에 설치되는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 방법.The hook is a computer security service providing method using a hook, characterized in that installed in the system message queue where all messages are temporarily stored. 제1항에 있어서,The method of claim 1, 가상 입력을 발생시켜 상기 운영체제로 제공하는 단계; 및Generating and providing a virtual input to the operating system; And 상기 가상 입력을 기초로 생성된 제1 입력 메시지를 상기 훅을 통해 모니터링함으로써 상기 제1 입력 메시지의 변경 여부를 판단하는 단계를 더 포함하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 방법.And determining whether to change the first input message by monitoring the first input message generated based on the virtual input through the hook. 제7항에 있어서, 상기 제1 메시지 변경 여부 판단 단계에서,The method of claim 7, wherein in the determining whether or not to change the first message, 상기 제1 메시지에 상기 가상 입력 메시지 플래그가 포함되어 있지 않은 경우 상기 제1 메시지가 변경된 것으로 판단하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 방법.And when the virtual input message flag is not included in the first message, determining that the first message has been changed. 제1항에 있어서,The method of claim 1, 상기 입력 메시지를 이용하여 커널 레벨에서의 제1 시간 정보를 생성하는 단계;Generating first time information at a kernel level using the input message; 상기 제1 시간 정보가 각 입력 메시지 별로 동일한 경우 상기 입력 메시지를 제2 타입의 가상 입력 메시지로 판단하고, 매크로 핵이 발생된 것으로 결정하는 단계를 더 포함하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 방법.If the first time information is the same for each input message, determining the input message as a virtual input message of a second type, and determining that a macro hack has been generated, further comprising a computer security service using a hook. How to Provide. 제9항에 있어서,10. The method of claim 9, 상기 제2 타입의 가상 입력 메시지는 커널 레벨에서 가상 입력 드라이버를 이용하여 발생된 것임을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 방법.And the second type of virtual input message is generated using a virtual input driver at a kernel level. 제9항에 있어서,10. The method of claim 9, 상기 제1 시간 정보는 상기 입력 메시지로부터 획득되는 키 다운 시간과 키 업 시간의 차이값인 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 방법.And wherein the first time information is a difference value between a key down time and a key up time obtained from the input message. 제1항에 있어서,The method of claim 1, 상기 입력 메시지로부터 획득되는 커널 레벨에서의 제1 시간 정보와 시간 관 련 API로부터 획득되는 유저 레벨에서의 제2 시간정보를 이용하여 스피드 핵 발생 여부를 탐지하는 단계를 더 포함하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 방법.Detecting whether a speed hack has occurred using the first time information at the kernel level obtained from the input message and the second time information at the user level obtained from a time-related API. Computer security service providing method using. 제12항에 있어서,The method of claim 12, 제1 시간 정보는 커널 레벨에서의 키 다운 시간과 키 업 시간의 차이값이고, 제2 시간 정보는 시간 관련 API를 이용해서 산출된 유저 레벨에서 키 다운 시간과 키 업 시간의 차이값인 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 방법.The first time information is a difference value between a key down time and a key up time at a kernel level, and the second time information is a difference value between a key down time and a key up time at a user level calculated using a time-related API. Computer security service providing method using a hook. 제12항에 있어서, 상기 스피드 핵 발생 여부를 탐지하는 단계에서,The method of claim 12, wherein the detecting of the speed nucleus has occurred. 상기 제1 시간 정보와 상기 제2 시간 정보의 차이가 임계치 이상인 경우 상기 스피드 핵이 발생된 것으로 결정하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 방법.And determining that the speed hack is generated when the difference between the first time information and the second time information is greater than or equal to a threshold value. 제1항 내지 제14항에 기재된 어느 하나의 방법을 수행하기 위한 컴퓨터로 판독 가능한 프로그램이 기록된 기록 매체.A recording medium having recorded thereon a computer readable program for performing any one of claims 1 to 14. 훅을 이용하여 운영체제로부터 수신되는 입력 메시지를 모니터링하는 훅 관리 모듈;A hook management module for monitoring an input message received from an operating system using a hook; 상기 입력 메시지에 가상 입력 메시지 플래그가 포함되어 있는지 여부의 판단을 통해 매크로 핵 발생 여부를 탐지하는 매크로 핵 탐지 모듈; 및A macro hack detection module for detecting whether a macro hack is generated by determining whether the input message includes a virtual input message flag; And 매크로 핵이 발생된 것으로 탐지되면, 상기 입력 메시지를 필터링하는 필터링 모듈을 포함하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 장치.And a filtering module for filtering the input message when it is detected that a macro hack has been generated. 제16항에 있어서,The method of claim 16, 상기 매크로 핵 탐지 모듈은, 상기 입력 메시지에 상기 가상 입력 메시지 플래그가 포함 되어 있으면 상기 입력 메시지를 제1 타입의 가상 입력 메시지로 판단하고, 매크로 핵이 발생된 것으로 결정하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 장치.When the macro hack detection module includes the virtual input message flag in the input message, the macro hack detection module determines the input message as a virtual input message of a first type, and determines that the macro hack is generated. Device for providing computer security services. 제17항에 있어서,The method of claim 17, 상기 제1 타입의 가상 입력 메시지는 유저 레벨 API를 통해 발생된 가상 입력 메시지인 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 장치.And the first type of virtual input message is a virtual input message generated through a user level API. 제16항에 있어서,The method of claim 16, 상기 훅은 키보드 로우 레벨 훅 또는 마우스 로우 레벨 훅을 포함하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 장치.And the hook comprises a keyboard low level hook or a mouse low level hook. 제16항에 있어서,The method of claim 16, 상기 훅 관리 모듈은 상기 운영체제로부터 전달되는 모든 메시지들이 임시로 저장되는 시스템 메시지 큐에 상기 훅을 설치하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 장치.The hook management module is a device for providing a computer security service using a hook, characterized in that for installing the hook in the system message queue where all messages transmitted from the operating system is temporarily stored. 제16항에 있어서,The method of claim 16, 가상 입력을 발생시켜 상기 운영체제로 제공하는 가상 입력 발생부; 및A virtual input generator for generating a virtual input and providing the virtual input to the operating system; And 상기 가상 입력을 기초로 생성된 제1 입력 메시지에 상기 가상 입력 메시지 플래그가 포함되어 있지 않은 경우 상기 제1 입력 메시지가 변경된 것으로 판단하는 변경 판단 모듈을 더 포함하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 장치.And a change determination module for determining that the first input message is changed when the first input message generated based on the virtual input does not include the virtual input message flag. Service provision device. 제16항에 있어서,The method of claim 16, 상기 입력 메시지를 이용하여 커널 레벨에서의 제1 시간 정보를 생성하는 시간 정보 생성 모듈을 더 포함하고,A time information generation module for generating first time information at a kernel level by using the input message; 상기 매크로 핵 탐지 모듈은, 상기 제1 시간 정보가 각 입력 메시지 별로 동일한 경우 상기 입력 메시지를 제2 타입의 가상 입력 메시지로 판단하고, 매크로 핵이 발생된 것으로 결정하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 장치.The macro nucleus detection module, when the first time information is the same for each input message, determines the input message as a virtual input message of a second type, and determines that a macro hack has been generated. Security service provision device. 제22항에 있어서,The method of claim 22, 상기 제2 타입의 가상 입력 메시지는 가상 입력 드라이버를 이용하여 발생된 것임을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 장치.And a virtual input message of the second type is generated using a virtual input driver. 제16항에 있어서,The method of claim 16, 상기 제1 입력 메시지로부터 획득되는 커널 레벨에서의 제1 시간 정보와 시간 관련 API로부터 획득되는 유저 레벨에서의 제2 시간정보를 생성하는 시간 정보 생성 모듈; 및A time information generation module for generating first time information at a kernel level obtained from the first input message and second time information at a user level obtained from a time related API; And 상기 제1 시간 정보 및 제2 시간정보를 이용하여 스피드 핵 발생 여부를 탐지하는 스피드 핵 탐지 모듈을 더 포함하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 장치.And a speed nucleus detection module detecting whether a speed nucleus has occurred using the first time information and the second time information. 제24항에 있어서,The method of claim 24, 상기 시간 정보 산출 모듈은, 커널 레벨에서의 키 다운 발생 시간과 키 업 발생 시간 간의 차이값을 이용하여 상기 제1 시간 정보를 산출하고, 시간 관련 API로부터 획득되는 유저 레벨에서의 키 다운 발생 시간과 키 업 발생 시간 간의 차이값을 이용하여 상기 제2 시간 정보를 생성하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 장치.The time information calculating module calculates the first time information by using a difference value between a key down occurrence time and a key up occurrence time at a kernel level, and calculates a key down occurrence time at a user level obtained from a time-related API. And generating the second time information by using a difference value between key-up generation times. 제24항에 있어서,The method of claim 24, 상기 스피드 핵 탐지 모듈은, 상기 제1 시간 정보와 상기 제2 시간 정보의 차이가 임계치 이상인 경우 상기 스피드 핵이 발생된 것으로 판단하는 것을 특징으로 하는 훅을 이용한 컴퓨터 보안 서비스 제공 장치.And the speed nucleus detection module determines that the speed nucleus is generated when a difference between the first time information and the second time information is greater than or equal to a threshold value.
KR1020090033432A 2009-04-17 2009-04-17 Method and Apparatus for Providing Security Service Using Hook KR101005593B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020090033432A KR101005593B1 (en) 2009-04-17 2009-04-17 Method and Apparatus for Providing Security Service Using Hook
PCT/KR2010/002421 WO2010120157A2 (en) 2009-04-17 2010-04-19 Method for providing computer security services using a hook, and apparatus and computer readable recording medium for same
JP2012505829A JP5580878B2 (en) 2009-04-17 2010-04-19 Method and apparatus for providing computer security service using hook, and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090033432A KR101005593B1 (en) 2009-04-17 2009-04-17 Method and Apparatus for Providing Security Service Using Hook

Publications (2)

Publication Number Publication Date
KR20100114969A KR20100114969A (en) 2010-10-27
KR101005593B1 true KR101005593B1 (en) 2011-01-05

Family

ID=42983031

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090033432A KR101005593B1 (en) 2009-04-17 2009-04-17 Method and Apparatus for Providing Security Service Using Hook

Country Status (3)

Country Link
JP (1) JP5580878B2 (en)
KR (1) KR101005593B1 (en)
WO (1) WO2010120157A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101421633B1 (en) 2013-04-02 2014-07-23 주식회사 잉카인터넷 Speed Hack Detection System and Method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101434094B1 (en) * 2013-03-18 2014-08-26 한양대학교 에리카산학협력단 Blocking harmful application by intent monitoring in android platform

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040042731A (en) * 2002-11-15 2004-05-20 엘지엔시스(주) File and registry monitoring method for host system
US6813713B2 (en) 2000-10-19 2004-11-02 Nec Electronics Corporation Data processing apparatus capable of dealing with illegal external input in an operative state and preventing useless power consumption in a stopped state
KR20060059795A (en) * 2004-11-29 2006-06-02 주식회사 안철수연구소 Method of sensing time modification of internal time by a computer program
KR100685672B1 (en) 2004-11-29 2007-02-23 주식회사 안철수연구소 Preventing method of computer programmed automatic input

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100483700B1 (en) * 2003-12-03 2005-04-19 주식회사 잉카인터넷 Method to cut off an illegal process access and manipulation for the security of online game client by real-time
KR100959638B1 (en) * 2004-03-09 2010-05-26 주식회사 하우리 Method for preventing key input from hacking, computer-readable storage medium recorded with program for preventing key input from hacking
KR100710032B1 (en) * 2005-02-23 2007-04-25 제이알소프트 주식회사 Method and system that can secure keyboard key stroke using secure input filter driver and keyboard secure input BHO of Internet Explorer in windows operating system
WO2007037640A1 (en) * 2005-09-28 2007-04-05 Ahn Lab, Inc. Method for detecting modification of internal time in computer system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813713B2 (en) 2000-10-19 2004-11-02 Nec Electronics Corporation Data processing apparatus capable of dealing with illegal external input in an operative state and preventing useless power consumption in a stopped state
KR20040042731A (en) * 2002-11-15 2004-05-20 엘지엔시스(주) File and registry monitoring method for host system
KR20060059795A (en) * 2004-11-29 2006-06-02 주식회사 안철수연구소 Method of sensing time modification of internal time by a computer program
KR100685672B1 (en) 2004-11-29 2007-02-23 주식회사 안철수연구소 Preventing method of computer programmed automatic input

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101421633B1 (en) 2013-04-02 2014-07-23 주식회사 잉카인터넷 Speed Hack Detection System and Method

Also Published As

Publication number Publication date
JP5580878B2 (en) 2014-08-27
KR20100114969A (en) 2010-10-27
WO2010120157A3 (en) 2011-01-20
WO2010120157A2 (en) 2010-10-21
JP2012524325A (en) 2012-10-11

Similar Documents

Publication Publication Date Title
US20150101055A1 (en) Method, system and terminal device for scanning virus
WO2016057994A1 (en) Differential dependency tracking for attack forensics
US20070261005A1 (en) Methods, systems, and computer program products for managing user focus change between applications
US20070275694A1 (en) Controlling Communications Performed by an Information Processing Apparatus
JP6518297B2 (en) System and method for performing an antivirus scan of a web page
JP2009064414A (en) Method and device for detecting malicious process
EP3107025A1 (en) Log analysis device, unauthorized access auditing system, log analysis program, and log analysis method
KR101005593B1 (en) Method and Apparatus for Providing Security Service Using Hook
JP6351827B2 (en) Virus scanning method and virus scanning apparatus
US8490195B1 (en) Method and apparatus for behavioral detection of malware in a computer system
CN113609490A (en) Data API combined type safety control mechanism suitable for multi-element scenes
WO2020165789A1 (en) Monitoring process on iot device
CN110928630A (en) Activation control method, device and equipment for application program window and storage medium
CN115934378A (en) Service data processing method and device, electronic equipment and storage medium
US11089123B2 (en) Service worker push violation enforcement
CN112948831A (en) Application program risk identification method and device
CN112565163A (en) Method and device for detecting degradation behavior of encryption level
US20130254893A1 (en) Apparatus and method for removing malicious code
CN112565162A (en) Method and device for detecting account stealing behavior
CN117455660B (en) Financial real-time safety detection system, method, equipment and storage medium
CN110633566A (en) Intrusion detection method, device, terminal equipment and medium
CN115118782B (en) Data control method, device, electronic equipment and computer readable storage medium
CN116827694B (en) Data security detection method and system
US20240137385A1 (en) Method and apparatus for identifying malicious mining behavior, and device and storage medium
JP2005234849A (en) Monitoring device, monitoring method and program

Legal Events

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

Payment date: 20130926

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140925

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151127

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161013

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171012

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191010

Year of fee payment: 10