[go: up one dir, main page]

KR100710032B1 - Method and system for preventing hacking of keyboard input information of Internet Explorer user through secure input filter driver and keyboard security input BH in Windows operating system - Google Patents

Method and system for preventing hacking of keyboard input information of Internet Explorer user through secure input filter driver and keyboard security input BH in Windows operating system Download PDF

Info

Publication number
KR100710032B1
KR100710032B1 KR1020050015064A KR20050015064A KR100710032B1 KR 100710032 B1 KR100710032 B1 KR 100710032B1 KR 1020050015064 A KR1020050015064 A KR 1020050015064A KR 20050015064 A KR20050015064 A KR 20050015064A KR 100710032 B1 KR100710032 B1 KR 100710032B1
Authority
KR
South Korea
Prior art keywords
keyboard input
security
keyboard
bho
hacking
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020050015064A
Other languages
Korean (ko)
Other versions
KR20060093932A (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 KR1020050015064A priority Critical patent/KR100710032B1/en
Publication of KR20060093932A publication Critical patent/KR20060093932A/en
Application granted granted Critical
Publication of KR100710032B1 publication Critical patent/KR100710032B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • DTEXTILES; PAPER
    • D03WEAVING
    • D03DWOVEN FABRICS; METHODS OF WEAVING; LOOMS
    • D03D49/00Details or constructional features not specially adapted for looms of a particular type
    • D03D49/04Control of the tension in warp or cloth
    • D03D49/06Warp let-off mechanisms
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05BELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
    • H05B3/00Ohmic-resistance heating
    • H05B3/20Heating elements having extended surface area substantially in a two-dimensional plane, e.g. plate-heater
    • H05B3/34Heating elements having extended surface area substantially in a two-dimensional plane, e.g. plate-heater flexible, e.g. heating nets or webs
    • H05B3/342Heating elements having extended surface area substantially in a two-dimensional plane, e.g. plate-heater flexible, e.g. heating nets or webs heaters used in textiles
    • H05B3/347Heating elements having extended surface area substantially in a two-dimensional plane, e.g. plate-heater flexible, e.g. heating nets or webs heaters used in textiles woven fabrics
    • DTEXTILES; PAPER
    • D02YARNS; MECHANICAL FINISHING OF YARNS OR ROPES; WARPING OR BEAMING
    • D02GCRIMPING OR CURLING FIBRES, FILAMENTS, THREADS, OR YARNS; YARNS OR THREADS
    • D02G3/00Yarns or threads, e.g. fancy yarns; Processes or apparatus for the production thereof, not otherwise provided for
    • D02G3/44Yarns or threads characterised by the purpose for which they are designed
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05BELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
    • H05B2203/00Aspects relating to Ohmic resistive heating covered by group H05B3/00
    • H05B2203/014Heaters using resistive wires or cables not provided for in H05B3/54
    • H05B2203/015Heater wherein the heating element is interwoven with the textile

Landscapes

  • Engineering & Computer Science (AREA)
  • Textile Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 컴퓨터 정보 보안 중에서 사용자의 키보드 입력 정보 해킹을 방지하기 위한 보안 시스템의 보안 방법에 관한 것으로서, 더욱 상세하게는 커널 모드(Ring 0)에 보안 입력 필터 드라이버를 설치함과 동시에 필터 드라이버와 인터럽트 서비스 루틴을 점검하여 커널 모드에서 사용자의 키보드 입력 정보를 해킹으로부터 원천적으로 보호하여 입력 받고, 키보드 입력 정보를 인터넷 익스플로어(Internet Explorer; IE) 내부에 설치한 키보드 입력 보안 BHO에 직접 전송함으로써, 사용자 모드(Ring 3)와 커널 모드(Ring 0)에서 키 스트로크 해킹을 원천적으로 방지할 수 있는 방법에 관한 것이다.The present invention relates to a security method of a security system for preventing user keyboard input information hacking among computer information security. More particularly, the present invention relates to a filter driver and an interrupt while installing a secure input filter driver in kernel mode (Ring 0). By checking the service routine, the user's keyboard input information is protected and protected from hacking in kernel mode, and the keyboard input information is sent directly to the keyboard input security BHO installed inside Internet Explorer (IE). The present invention relates to a method for preventing key stroke hacking in mode (Ring 3) and kernel mode (Ring 0).

본 발명에 따른 윈도우즈 운영체제에서 보안 입력 필터 드라이버와 인터넷 익스플로러 내부의 키보드 보안 입력 비에이치오를 통한 인터넷 익스플로러 사용자의 키보드 입력 정보 해킹 방지 방법은, 키보드 입력 보안 BHO가 IE 텍스트 상자에 포커스(Focus)가 있는가를 점검하는 단계와; 상기 포커스 점검 단계에서 IE 텍스트 상자에 포커스가 없는 경우, 키보드 입력 보안 BHO가 보안 입력 필터 드라이버의 보안 작동을 중지시키는 단계와; 상기 포커스 점검 단계에서 IE 텍스트 상자에 포커스가 있는 경우, 키보드 입력 보안 BHO가 DeviceIoControl API(Application Programming Interface)에 대한 API 훅 여부를 판단하는 단계와; 상기 API 훅 여부 판단 단계에서 API 훅이 존재하는 것으로 판단되는 경우, 키보드 입력 보안 BHO가 관리 서버에 API 훅 정보를 전송하는 단계와; 상기 API 훅 여부 판단 단계에서 API 훅이 존재하지 않는 것으로 판단되는 경우, 키보드 입력 보안 BHO가 보안 입력 필터 드라이버에 키보드 입력 정보를 보호할 것을 통보하는 단계와; 보안 입력 필터 드라이버가 상기 키보드 입력 정보 보호 통보에 따라 보안 작동을 개시하여 키보드 드라이버로부터 수신되는 키보드 입력값을 키보드 입력 보안 BHO로 상기 수신된 키보드 입력값을 직접 전송하는 단계와; 키보드 입력 보안 BHO가 상기 IE 텍스트 상자에 대한 섭 클래싱이 존재하는지 여부를 판단하는 단계와; 상기 섭 클래싱 존재 여부 판단 단계에서 섭 클래싱이 존재하는 것으로 판단되는 경우, 키보드 입력 보안 BHO가 IE 텍스트 상자에 대한 섭 클래싱 정보를 관리 서버에 전송하는 단계와; 상기 섭 클래싱 존재 여부 판단 단계에서 섭 클래싱이 존재하지 않는 것으로 판단되는 경우, 키보드 입력 보안 BHO가 IE 텍스트 상자의 윈도우 프로시저를 호출하여 상기 수신된 키보드 입력 값을 전송하는 단계와; 관리 서버가 상기 키보드 입력 보안 BHO로부터 전송받은 정보를 바탕으로 내부의 DB를 검색하여 해킹 여부를 판단하는 단계와; 키보드 입력 보안 BHO가 상기 해킹 여부 판단 결과를 관리 서버로부터 수신하여, 상기 판단 결과에 따라 해킹에 해당되는 프로세싱을 삭제하는 해킹 프로세싱 삭제 단계를 포함하여 구성되는 점을 특징으로 한다.In the Windows operating system according to the present invention, a method of preventing hacking of keyboard input information of an Internet Explorer user through a secure input filter driver and a keyboard secure input BII in an Internet Explorer includes checking whether a keyboard input security BHO has a focus on an IE text box. Making a step; If there is no focus in the IE text box in the focus checking step, the keyboard input security BHO stops the security operation of the secure input filter driver; Determining, by the keyboard input security BHO, an API hook for a DeviceIoControl application programming interface (API) when the focus is on the IE text box in the focus checking step; If it is determined that the API hook exists in the API hook determination step, the keyboard input security BHO transmitting the API hook information to the management server; If it is determined that the API hook does not exist in the API hook determination step, the keyboard input security BHO notifies the secure input filter driver to protect the keyboard input information; A security input filter driver initiating a secure operation according to the keyboard input information protection notification to directly transmit the keyboard input value received from the keyboard driver to the keyboard input security BHO directly; Determining, by keyboard input security BHO, whether subclassing exists for the IE text box; If it is determined that subclassing exists in the subclassing determination step, the keyboard input security BHO transmits subclassing information on the IE text box to a management server; If it is determined that subclassing does not exist in the subclassing determination step, the keyboard input security BHO calls a window procedure of an IE text box to transmit the received keyboard input value; A management server searching an internal DB based on information received from the keyboard input security BHO and determining whether to be hacked; And a hack processing deletion step of receiving, by the keyboard input security BHO, a result of the hacking determination from the management server, and deleting the processing corresponding to the hack according to the determination result.

키보드, 보안, 해킹, 키 스트로크, 필터 드라이버, 브라우저 헬프 오브젝트(BHO), 인터럽트 서비스 루틴(ISR) Keyboard, Security, Hacking, Key Stroke, Filter Driver, Browser Help Object (BHO), Interrupt Service Routine (ISR)

Description

윈도우즈 운영체제에서 보안 입력 필터 드라이버와 인터넷 익스플로러 내부의 키보드 보안 입력 비에이치오를 통한 인터넷 익스플로러 사용자의 키보드 입력 정보 해킹 방지 방법 및 시스템{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}Method and system that can secure keyboard key stroke using secure input filter driver and keyboard secure input BHO through secure input filter driver and keyboard security input in Internet Explorer on Windows operating system of Internet Explorer in windows operating system}

도 1은 윈도우즈 운영체제의 기본 키보드 입력 구조를 나타내는 도면.
도 2는 본 발명에 따른 키보드 입력 정보 해킹 방지 방법에서 보안이 작동하지 않을 때의 키보드 입력 구조를 나타내는 도면.
도 3은 본 발명에 따른 키보드 입력 정보 해킹 방지 방법에서 보안이 작동할 때의 키보드 입력 구조를 나타내는 도면.
도 4는 본 발명에 따른 키보드 입력 정보 해킹 방지 방법이 적용되는 보안 시스템의 구성도.
도 5는 본 발명의 일실시예에 따른 키보드 입력 정보 해킹 방지 방법을 나타내는 흐름도.
1 is a diagram showing a basic keyboard input structure of the Windows operating system.
2 is a diagram illustrating a keyboard input structure when security is not operated in the keyboard input information hacking prevention method according to the present invention.
3 is a diagram illustrating a keyboard input structure when security is activated in the method for preventing keyboard input information hacking according to the present invention.
4 is a block diagram of a security system to which the keyboard input information hacking prevention method according to the present invention is applied.
5 is a flowchart illustrating a keyboard input information hacking prevention method according to an embodiment of the present invention.

삭제delete

삭제delete

삭제delete

삭제delete

도 6은 본 발명에 따른 보안 입력 필터 드라이버(200)의 흐름도
도 7은 관리 서버의 해킹 여부 판단 과정 및 키보드 입력 보안 BHO의 해킹 대응 동작 수행 과정을 나타내는 흐름도.
도 8은 본 발명의 일실시예에 따른 필터 드라이버 감시부의 동작을 나타내는 흐름도.
6 is a flow diagram of a secure input filter driver 200 in accordance with the present invention.
7 is a flowchart illustrating a process of determining whether a management server is hacked and a process of performing a hacking response operation of a keyboard input security BHO.
8 is a flowchart illustrating an operation of a filter driver monitor according to an exemplary embodiment of the present invention.

도 9는 인터럽트 서비스 루틴 감시부의 동작을 나타내는 흐름도.9 is a flowchart showing the operation of the interrupt service routine monitoring unit.

삭제delete

삭제delete

본 발명은 컴퓨터 정보 보안 중에서 사용자의 키보드 입력 정보 해킹을 방지하기 위한 보안 시스템의 보안 방법에 관한 것으로서, 더욱 상세하게는 커널 모드(Ring 0)에 보안 입력 필터 드라이버를 설치함과 동시에 필터 드라이버와 인터럽트 서비스 루틴을 점검하여 커널 모드에서 사용자의 키보드 입력 정보를 해킹으로부터 원천적으로 보호하여 입력 받고, 키보드 입력 정보를 인터넷 익스플로어(Internet Explorer; IE) 내부에 설치한 키보드 입력 보안 BHO에 직접 전송함으로써, 사용자 모드(Ring 3)와 커널 모드(Ring 0)에서 키 스트로크 해킹을 원천적으로 방지할 수 있는 방법에 관한 것이다.The present invention relates to a security method of a security system for preventing user keyboard input information hacking among computer information security. More particularly, the present invention relates to a filter driver and an interrupt while installing a secure input filter driver in kernel mode (Ring 0). By checking the service routine, the user's keyboard input information is protected and protected from hacking in kernel mode, and the keyboard input information is sent directly to the keyboard input security BHO installed inside Internet Explorer (IE). The present invention relates to a method for preventing key stroke hacking in mode (Ring 3) and kernel mode (Ring 0).

삭제delete

삭제delete

삭제delete

삭제delete

인터넷 사용이 급속도로 발전함에 따라 일반 사용자들의 금전적인 거래(인터넷 뱅킹, 주식거래 등) 및 주요 개인정보를 담고 있는 수 많은 업무들이 인터넷 상으로 이루어지고 있다.With the rapid development of the Internet, a number of tasks are being carried out on the Internet that contain financial transactions (Internet banking, stock trading, etc.) and important personal information of ordinary users.

기존의 많은 보안 기술들이 서버 보안과 사용자와 서버 간의 데이터 전송 보안에 집중되어져 왔다.Many existing security technologies have focused on server security and data transmission between users and servers.

이와 같은 점을 악용하여 상대적으로 보안이 취약한 일반 사용자의 컴퓨터에 서 키보드 입력 정보를 가져가는 스파이웨어나 키 스트로크 로거를 설치하여 개인 정보를 취득 및 도용하는 사례가 늘고 있다.Increasingly, spyware or keystroke loggers, which take keyboard input information from general users' computers that are relatively insecure, have been used to acquire and steal personal information.

이와 같은 해킹에 가장 일반적인 방법은 사용자의 컴퓨터에 스파이웨어 탐지 및 제거 소프트웨어를 설치하는 것이다.The most common way to do this is to install spyware detection and removal software on your computer.

그러나 현재의 이러한 보안 소프트웨어들의 기본적인 작동원리로는 기존에 알려진 형태가 아닌 변형된 해킹 툴에 대해서는탐지를 할 수 없다.However, the basic principle of operation of such security software is that it cannot detect modified hacking tools that are not known.

가장 쉽게 사용자의 정보를 가져가는 방법 중 하나가 키보드 입력을 해킹하는 것인데 이와 같은 문제점을 해결하기 위하여 여러가지 방법이 개발되어지고 사용되고 있다.One of the easiest ways to get the user's information is to hack keyboard input. To solve this problem, various methods have been developed and used.

먼저 가장 일반적으로 키보드 해킹을 방지하는 방법으로 2005년 2월 현재까지 서비스 중인 KT의 키보드 해킹 방지 시스템이 있다. The most common way to prevent keyboard hacking is KT's keyboard hacking prevention system, which has been in service as of February 2005.

키보드 해킹 방지 프로그램은 IE(400) 쓰레드 메시지들을 해킹 방지 프로그램 고유의 메시지 대기열(Queue)로 전환시키길 AttachInputThread 를 통해 요청(230)한다. 이 요청을 하면 시스템은 그 이후부터 모든 IE(400)의 메시지를 키보드 보안 프로그램으로 보낸다. 이러한 메시지들은 키 값을 가지게 되며 키보드 보안 프로그램은 실제 키 값을 저장하고 가짜 키 값과 함께 입력 메시지를 생성한다. 그리고 그것을 IE 쓰레드 메시지 대기열(410)로 보낸다. The keyboard hacking prevention program requests 230 through AttachInputThread to turn IE 400 threaded messages into a message queue unique to the hacking prevention program. The request then sends all IE 400 messages to the keyboard security program. These messages have key values, and the keyboard security program stores the actual key values and generates an input message with the fake key values. And send it to the IE thread message queue 410.

그 후에 키보드 보안 프로그램은 저장되었던 실제 값을 IE(400)의 윈도우 프로시저(Window Procedure)로 보냄과 동시에 가짜 키 값을 삭제할 명령도 보내게 된다.After that, the keyboard security program sends the stored value to the window procedure of the IE 400 and at the same time sends a command to delete the fake key value.

결국 웹 브라우저의 쓰레드에 훅을 설치한 해커는 실제 키 값이 아닌 가짜 키 값이 섞여있는 메시지를 받게 된다.Eventually, a hacker who hooks into a thread in a web browser receives a message that contains a mixture of fake key values, not actual key values.

그러나 이와 같은 보안 시스템은 여러가지 방법을 통해 매우 쉽게 피할 수가 있다. 해커는 훅(Hook)을 보안 프로그램의 쓰레드(Thread)에 설치할 수 있다. 결국 해커는 IE 텍스트 박스(420)의 입력 메시지와보안 프로그램의 입력 메시지를 둘다 가질 수 있게 된다.However, such a security system can be easily avoided in many ways. Hackers can install hooks in the security program's thread. As a result, the hacker may have both the input message of the IE text box 420 and the input message of the security program.

또 다른 방법은 보안 프로그램이 운영체제에 AttachInputThread 를 요청한 다음에 해킹 프로그램이 다시 운영체제에 AttachInputThread를 요청할 수가 있게 된다. 윈도우즈의 운영체제의 특성상 시스템은 먼저 요청한 보안 프로그램이 아닌 Another way is that after a security program asks the operating system for an AttachInputThread, the hacking program can ask the operating system for an AttachInputThread again. Due to the nature of the Windows operating system, the system is not a security program

가장 마지막에 요청한 응용 프로그램(500) 즉 해킹 프로그램으로 입력 메시지를 보내게 된다.The input message is sent to the last requested application 500, that is, the hacking program.

또 다른 방법으로는 해킹 프로그램을 이용하여 IE 텍스트 박스(420)의 윈도우 프로시저(Window Procedure)를 바꿀 수 있다.Alternatively, the hacking program may be used to change the window procedure of the IE text box 420.

해킹 프로그램은 디폴트로 설정된 윈도우 프로시저를 해킹 프로그램 고유의 윈도우 프로시저로 바꾸는데 이 기술을 섭 클래싱(Sub Classing)이라고 한다. 이 기술을 활용하여 해커는 텍스트 박스 입력 메시지를 쉽게 가져 갈 수가 있다.The hacking program replaces the default window procedure with the hacking program's own window procedure. This technique is called subclassing. Using this technique, hackers can easily take text box input messages.

위와 같은 보안 방법이 아닌 다른 방법의 기술로 대한민국 특허공개공보 제2001-0099090호 "엑티브엑스 기반의 키보드 해킹 방지 입력 창"이 있다.As a technique of a method other than the above security method, there is a Korean Patent Publication No. 2001-0099090 "ActiveX-based keyboard hacking prevention input window".

이 특허는 키보드 입력 정보를 버퍼링한 후 키보드 포트에 남아있는 키보드 흔적 데이터를 삭제한 후, 버퍼링 된 기존의 키보드 데이터 흐름이 아닌 별도의 전송 구간으로 키보드 데이터를 응용 프로그램으로 전달하는 방식으로 키보드 입력 정보를 보호하는 방법이다. 이 특허 기술로 인하여 앞서 말한 키보드 입력 정보를 가로채는 등의 응용 프로그램과 같은 상위 레벨의입력 데이터는 보호되어질 수가 있다. 그러나 대한민국 특허공개공보 제2004-0072044호에서도 지적하였듯이 이 기술에서 사용하는 보안 입력 키보드 드라이버보다 먼저 키보드 입력 정보를 가로 챌 수 있다 This patent deletes the keyboard trace data remaining in the keyboard port after buffering the keyboard input information, and then transfers the keyboard data to the application as a separate transmission section instead of the existing buffered keyboard data flow. How to protect it. Due to this patented technology, higher level input data such as application programs such as intercepting the above-mentioned keyboard input information can be protected. However, as noted in Korean Patent Laid-Open Publication No. 2004-0072044, the keyboard input information can be intercepted before the secure input keyboard driver used in this technology.

도 1에는 키보드 드라이버(120)가 도시되어 있는데 그 상위 또는 하위에 n개의 필터 드라이버를 설치할 수 있다.1 illustrates a keyboard driver 120, in which n filter drivers may be installed above or below the keyboard driver 120.

즉 키보드 하드웨어(100)에서 키보드 드라이버(120)까지 n개의 하단 필터 드라이버를 설치할 수 있고 키보드 드라이버(120)와 키보드 클래스 드라이버(140) 사이에 n개의 상단 필터 드라이버를 설치할 수가 있다.That is, n bottom filter drivers may be installed from the keyboard hardware 100 to the keyboard driver 120, and n top filter drivers may be installed between the keyboard driver 120 and the keyboard class driver 140.

이와 같은 방법으로 해커는 이 기술에서 사용하는 보안 입력 키보드 드라이버보다 먼저 키보드 입력 정보를 받을 수 있다.In this way, a hacker can receive keyboard input information before the secure input keyboard driver used by this technology.

또 다른 보안 방법으로 대한민국 특허공개공보 제2002-0048313호 "키보드 해킹 방지 방법"이 있다. 이 방법에서는 커널 모드(Ring 0)에서 키보드 하드웨어(100)를 떠난 키보드 입력 정보가 사용자 모드(Ring 3)인 시스템 메시지 대기열(210) 까지 도달하는 과정을 보안 키보드 드라이버라고 하는 단 하나의 단계로 설명하고 있다.Another security method is Korea Patent Publication No. 2002-0048313 "Keyboard hacking prevention method". In this method, the keyboard input information leaving the keyboard hardware 100 in kernel mode (Ring 0) to the system message queue 210, which is the user mode (Ring 3), is described as a single step called a secure keyboard driver. Doing.

앞서 설명하였듯이 커널 모드(Ring 0)에서 키보드 하드웨어(100)를 떠난 키보드 입력 정보가 사용자 모드(Ring 3)의 시스템 메시지 대기열(210)까지 도달하려면 최소 두개의 운영체제에서 공급되어진 드라이버를 거쳐야 한다.As described above, in order to reach the system message queue 210 of the user mode (Ring 3), the keyboard input information leaving the keyboard hardware 100 in the kernel mode (Ring 0) must pass through drivers provided by at least two operating systems.

키보드 하드웨어(100)와 키보드 드라이버(120), 키보드 드라이버(120)와 키보드 클래스 드라이버(140) 사이는 드라이버 간의 통신 방법과 그 특징이 다르며 서로 다른 형식의 필터 드라이버가 설치가 가능한 영역이다. The keyboard hardware 100 and the keyboard driver 120, the keyboard driver 120 and the keyboard class driver 140 is an area in which communication methods and features thereof are different and different types of filter drivers can be installed.

결국 이 공개특허에는 너무 간단한 기술적 설명으로 인하여 커널 모드(Ring 0)에서의 이 기술에서 말하는 보안 키보드 드라이버의 설치 위치와 명확하지 않으며 특히 필터 드라이버 간의 로드 오더(load order) 및 각각의 드라이버 간의 보안 방법에 대한 것이 설명되어있지 않으므로 해커는 로드 오더 변경 및 기타 여러 가지 방법을 통해 각 드라이버 간의 특징을 활용하여 정보를 중간에서 가로채거나 복사할 수 있다.After all, this patent discloses a technical description that is so simple that the installation location of the secure keyboard driver in this technology in kernel mode (Ring 0) is not clear and in particular the load order between filter drivers and the security method between each driver. Since it is not described, hackers can intercept or copy information in the middle by exploiting features between each driver through load order changes and other methods.

또한 테이블을 생성하여 중간에서 암호화하고 복호화하는 기술로는 특정 프로그램으로 전달하는 과정에서 다시금 키보드 입력 정보를 빼앗길 수가 있다. 즉 앞서 설명한 것과 같이 여러가지 종류의 브라우저와 모든 응용 프로그램에 이 기술이 적용된다는 말은 다르게 말하자면 이 기술은 응용프로그램(500)으로 전달하기 바로 전까지만 키보드 입력 정보를 보호한다는 것이다.In addition, as a technique for creating a table, encrypting and decrypting it in the middle, the keyboard input information can be lost again in the process of transferring to a specific program. In other words, as described above, the technology is applied to various types of browsers and all applications, in other words, the technology protects the keyboard input information only until it is transmitted to the application 500.

브라우저에는 인터넷 익스플로러(IE), 넷스케이프, 오페라 등 전혀 다른 응용 프로그램(500)이 존재하고 이들은 각각의 특징이 있다. There are completely different applications 500 in the browser, such as Internet Explorer (IE), Netscape, Opera, and these have their own characteristics.

국내의 인터넷 환경을 고려할 때 대부분의 사용자가 윈도우즈 운영체제와 IE(400)를 사용하는데 IE(400) 만의 특징을 고려하지 않는다면 결국 실질적으로 사용자가 인터넷을 사용하는 과정 가운데서 키보드 입력 정보를 IE 텍스트 박스(420)까지 보호한다는 것은 불가능하다.Considering the domestic Internet environment, most users use the Windows operating system and the IE 400. If the user does not consider the features of the IE 400, the user may actually input the keyboard input information into the IE text box in the process of using the Internet. Protection up to 420 is impossible.

이와 같은 점은 대한민국 특허공개공보 제10-2004-0092101호 "가상 키보드 데이터 전송을 이용한 키보드 해킹 방지 방법"과 제2004-0072044호 "보안 입력 디바이스를 이용한 컴퓨터 보안 시스템" 에서도 찾아볼 수가 있다.This can also be found in Korean Patent Publication No. 10-2004-0092101 "Keyboard hacking prevention method using virtual keyboard data transmission" and 2004-0072044 "Computer security system using a security input device".

상기 특허공개공보 제10-2004-0092101호 "가상 키보드 데이터 전송을 이용한 키보드 해킹 방지 방법" 은 앞서 설명한 KT의 보안 프로그램과 그 기본 원리가 동일하다. 차이점은 KT의 것은 사용자 모드(Ring 3)에서 키보드 입력 정보를 받아 암호화를 하였다면 이 기술은 커널 모드(Ring 0) 내의 한 단계에서 암호화를 한다는 점이다. 그러나 결국 동일한 문제점들을 가지고 있다.Patent Publication No. 10-2004-0092101 "Keyboard hacking prevention method using a virtual keyboard data transmission" is the same as the security program of the above-described KT and its basic principle. The difference is that if KT receives and encrypts keyboard input information in user mode (Ring 3), the technology encrypts in one step in kernel mode (Ring 0). But in the end, they have the same problems.

먼저 커널 모드에서는 상단, 하단 필터 드라이버 간의 로드 오더(Load order)를 점검하지 않는 다는 것과 키보드 드라이버(120) 전 작동되는 인터럽트 서비스 루틴(ISR) 역시 점검하지 않는다. First, in kernel mode, the load order between the upper and lower filter drivers is not checked and the interrupt service routine (ISR) that is operated before the keyboard driver 120 is not checked.

이와 같은 점은 해커에게 이 보안 프로그램의 설치 이후에 다시금 해커로 인해 필터 드라이버 및 자체 인터럽트 서비스 루틴(ISR)을 설치할 수 있게 해주고 해 커는 이로 인해 키보드 입력 정보를 가져갈 수 있다. This allows hackers to install the filter driver and their own Interrupt Service Routine (ISR) again after the security program has been installed, which allows the hacker to take keyboard input information.

또한 사용자 모드(Ring 3)에서는 앞서 KT 의 보안 프로그램을 설명한 것과 동일한 문제점들을 가지고 있다. In addition, the user mode (Ring 3) has the same problems as described above KT security program.

결국 모든 암호와가 응용 프로그램 전에서 복호화되어 응용 프로그램으로 전달이 되는데 키보드 입력 정보 보안의 개념을 응용 프로그램 전까지가 아닌 응용 프로그램 내부까지라고 본다면 키보드 입력 정보 보안은 해당 응용 프로그램(500)에 따른 별도의 설계가 필요하다. 그렇지 않으면 각각의 응용 프로그램(500)의 특징을 이용하여 보안 프로그램에서 키보드 입력 정보를 응용 프로그램(500)으로 전달할 때 해킹을 할 수 있게 된다.Eventually, all passwords and passwords are decrypted before the application and passed to the application. If the concept of the keyboard input information security is not the application but the inside of the application, the keyboard input information security is separate according to the application 500. Design is necessary. Otherwise, hacking may be performed when the keyboard input information is transmitted from the security program to the application 500 by using the characteristics of each application program 500.

한편 상기 특허공개특허 제2004-0072044호 "보안 입력 디바이스를 이용한 컴퓨터 보안 시스템"은 키보드 드라이버(120) 하단에 하단 필터 드라이버를 설치한 후 인터럽트 디스크립터 데이블(IDT)에 등록된 운영체제에서 기본적으로 제공하는 인터럽트 서비스 루틴(ISR)이 아닌 자체적으로 만든 인터럽트 서비스 루틴(ISR)을 등록한다. On the other hand, the Patent Publication No. 2004-0072044 "Computer security system using a security input device" is basically provided by the operating system registered in the interrupt descriptor table (IDT) after installing the lower filter driver on the bottom of the keyboard driver 120 Register your own Interrupt Service Routine (ISR) rather than the Interrupt Service Routine (ISR).

결국 운영체제의 인터럽트 서비스 루틴(ISR)과 키보드 드라이버(120)를 거치지 않고 직접 사용자 모드(Ring 3) 상에 설치한 자체 입력 보안 DLL로 메시지를 전송한 후 보안 입력 DLL 에서 응용 프로그램(500)으로 전달하는 방법이다. Eventually, the message is sent to the self-input security DLL installed in the user mode (Ring 3) directly without passing through the operating system's interrupt service routine (ISR) and keyboard driver 120, and then passed from the secure input DLL to the application 500. That's how.

또한 인터럽트 서비스 루틴(ISR)을 점검하여서 언제나 자체적으로 만든 인터럽트 서비스 루틴(ISR)을 유지하는 기능도 포함하고 있다.It also includes the ability to check for interrupt service routines (ISRs) and maintain their own interrupt service routines (ISRs).

이 기술은 문제점은 첫째로 인터럽트 서비스 루틴(ISR)을 교체한 후 다시 원 상태로 되돌려 놓는 과정이 없다. 이와 같은 동작은 마이크로소프트 사(社)의 운영체제 명세사항(Specification)에 어긋나는 동작이다.The problem with this technique is that there is no process of first replacing the interrupt service routine (ISR) and then undoing it. This behavior is inconsistent with Microsoft's operating system specifications.

소프트웨어 중에는 자체 인터럽트 서비스 루틴(ISR) 설치를 필요로 하는 수많은 프로그램들이 있다. 불법적인 소프트웨어를 제외하고는 인터럽트 서비스 루틴(ISR) 설치를 하려는 모든 소프트웨어는 마이크로소프트 사(社)의 운영체제 명세사항(Specification)을 따라야 한다. There are a number of programs in the software that require the installation of their own interrupt service routine (ISR). Except for illegal software, any software intended to install an Interrupt Service Routine (ISR) must comply with Microsoft's operating system specifications.

그러나 상기 특허문헌에 따른 보안 시스템 이것을 따르지 않는 설계로 되어 있으며 이 소프트웨어가 작동을 하게 되면 동일 시스템 내에서 운영체제의 인터럽트 서비스 루틴(ISR)을 필요로 하는 다른 소프트웨어나 자체 인터럽트 서비스 루틴(ISR)의 실행을 필요로 하는다른 소프트웨어들의 작동이 불가능하게 된다. 소프트웨어적인 충돌이 시스템 내에서 일어나게 된다. 자체 인터럽트 서비스 루틴(ISR)을 설치하는 것만으로 그 소프트웨어를 해킹 프로그램이라고 볼 수는 없다.However, the security system according to the patent document is designed not to comply with this, and when this software is operated, the execution of other software or its own interrupt service routine (ISR) that requires the operating system's interrupt service routine (ISR) in the same system. Other software that requires it will be disabled. Software conflicts occur in the system. Just installing your own Interrupt Service Routine (ISR) does not mean that the software is a hacking program.

특히 시스템 관리에 관련된 수많은 소프트웨어들은 대부분 이 기능을 포함하고 있다. 운영체제 명세사항(Specification)에 어긋나면서 정상적인 타 소프트웨어의 동작을 방해하는 일련의 동작들은 바이러스나 해킹 프로그램들에서나 보여지는 동작들이다. 결국 이 기술을 윈도우즈 운영체제에 적용을 한다면 그 자체가 운영체제에 의해 정상적인 프로세싱으로 인식되어지지 않으며 사용자는 다른 소프트웨어들을 사용하는데에 제약을 받게 된다.Many of the software, especially those related to system management, include this feature. A series of actions that violate operating system specifications and interfere with the normal operation of other software are those seen in viruses or hacking programs. After all, if you apply this technology to a Windows operating system, it will not be recognized as normal processing by the operating system itself, and you will be limited to using other software.

둘째는 사용자 모드(Ring 3)에 존재하는 보안 입력 DLL이 응용 프로그램(500)으로 데이터를 넘기는 과정에서 해킹의 위험성이있다. IE를 예로 들면 앞서 설명한 해킹 기술 중에 하나인 섭 클래싱 기술을 활용하면 보안 입력 DLL에서 IE까지 전송되어지는 키보드 입력 정보를 가로챌 수가 있다. Second, there is a risk of hacking in the process of passing the data to the application 500 by the secure input DLL existing in the user mode (Ring 3). For example, using IE subclassing technology, one of the hacking techniques described above, can intercept keyboard input information transmitted from the secure input DLL to the IE.

본 발명은 상기한 종래 기술에 따른 키보드 보안 방법의 문제점을 해결하기 위한 것으로서, 사용자의 컴퓨터 운영체제가 윈도우즈이며 웹브라우저로 IE를 사용하였을 경우에 사용자의 키보드 하드웨어에서 IE 텍스트 박스까지의 경로상에서 키보드 입력 정보를 보호하는 데에 그 목적이 있다.The present invention is to solve the problems of the keyboard security method according to the prior art, when the user's computer operating system is Windows and IE is used as a web browser keyboard input on the path from the user's keyboard hardware to the IE text box Its purpose is to protect information.

또한, 리스트에만 의존하는 기존 보안 프로그램의 방식 대신 프로세싱 자체를 모니터하는 동시에 인터럽트 서비스 루틴(ISR) 및 필터 드라이버 리스트를 관리 서버로 전송하고 관리 서버에서 사용자에게 그 위험도를 통보하도록 구성함으로써, 사용자의 컴퓨터 내에서 발생하는 불법적인 키보드 입력 정보 해킹을 원천적으로 방지하는 데에 또 다른 목적이 있다.
상기의 목적을 달성하기 위한 기술적 사상으로서의 본 발명은,
키보드 입력 보안 BHO가 IE 텍스트 상자에 포커스(Focus)가 있는가를 점검하는 단계와; 상기 포커스 점검 단계에서 IE 텍스트 상자에 포커스가 없는 경우, 키보드 입력 보안 BHO가 보안 입력 필터 드라이버의 보안 작동을 중지시키는 단계와; 상기 포커스 점검 단계에서 IE 텍스트 상자에 포커스가 있는 경우, 키보드 입력 보안 BHO가 DeviceIoControl API(Application Programming Interface)에 대한 API 훅 여부를 판단하는 단계와; 상기 API 훅 여부 판단 단계에서 API 훅이 존재하는 것으로 판단되는 경우, 키보드 입력 보안 BHO가 관리 서버에 API 훅 정보를 전송하는 단계와; 상기 API 훅 여부 판단 단계에서 API 훅이 존재하지 않는 것으로 판단되는 경우, 키보드 입력 보안 BHO가 보안 입력 필터 드라이버에 키보드 입력 정보를 보호할 것을 통보하는 단계와; 보안 입력 필터 드라이버가 상기 키보드 입력 정보 보호 통보에 따라 보안 작동을 개시하여 키보드 드라이버로부터 수신되는 키보드 입력값을 키보드 입력 보안 BHO로 상기 수신된 키보드 입력값을 직접 전송하는 단계와; 키보드 입력 보안 BHO가 섭 클래싱이 존재하는지 여부를 판단하는 단계와; 상기 섭 클래싱 존재 여부 판단 단계에서 섭 클래싱이 존재하는 것으로 판단되는 경우, 키보드 입력 보안 BHO가 섭 클래싱 정보를 관리 서버에 전송하는 단계와; 상기 섭 클래싱 존재 여부 판단 단계에서 섭 클래싱이 존재하지 않는 것으로 판단되는 경우, 키보드 입력 보안 BHO가 IE 텍스트 상자의 윈도우 프로시저를 호출하여 상기 수신된 키보드 입력 값을 전송하는 단계와; 관리 서버가 상기 키보드 입력 보안 BHO로부터 전송받은 정보를 바탕으로 내부의 DB를 검색하여 해킹 여부를 판단하는 단계와; 키보드 입력 보안 BHO가 상기 해킹 여부 판단 결과를 관리 서버로부터 수신하여, 상기 판단 결과에 따라 해킹에 해당되는 프로세싱을 삭제하는 해킹 프로세싱 삭제 단계를 포함하여 구성되는 것을 특징으로 하는 키보드 입력 정보 해킹 방지 방법을 제공한다.
It also monitors the processing itself instead of relying on a traditional security program that relies solely on the list, while sending a list of interrupt service routines (ISRs) and filter drivers to the management server and configuring the management server to notify the user of the risk. Another purpose is to prevent illegal keyboard input information hacking occurring within.
The present invention as a technical idea for achieving the above object,
Checking, by the keyboard input security BHO, whether there is a focus in the IE text box; If there is no focus in the IE text box in the focus checking step, the keyboard input security BHO stops the security operation of the secure input filter driver; Determining, by the keyboard input security BHO, an API hook for a DeviceIoControl application programming interface (API) when the focus is on the IE text box in the focus checking step; If it is determined that the API hook exists in the API hook determination step, the keyboard input security BHO transmitting the API hook information to the management server; If it is determined that the API hook does not exist in the API hook determination step, the keyboard input security BHO notifies the secure input filter driver to protect the keyboard input information; A security input filter driver initiating a secure operation according to the keyboard input information protection notification to directly transmit the keyboard input value received from the keyboard driver to the keyboard input security BHO directly; Determining, by keyboard input security BHO, whether subclassing exists; If it is determined that subclassing exists in the subclassing step, the keyboard input security BHO transmits the subclassing information to the management server; If it is determined that subclassing does not exist in the subclassing determination step, the keyboard input security BHO calls a window procedure of an IE text box to transmit the received keyboard input value; A management server searching an internal DB based on information received from the keyboard input security BHO, and determining whether to be hacked; And a hacking processing deleting step of receiving, by the keyboard input security BHO, a result of the hacking determination from the management server, and deleting processing corresponding to the hacking according to the determination result. to provide.

삭제delete

삭제delete

이하, 본 발명의 바람직한 실시예를 첨부 도면에 의거하여 상세하게 설명하기로 한다.
도 2 및 도 3은 본 발명에 따른 키보드 입력 정보 해킹 방지 방법에서의 키보드 입력 구조를 나타내는 도면으로서, 도 2는 보안 프로그램이 작동하지 않았을 경우의 키보드 입력 정보 흐름을 나타내고, 도 3은 보안 프로그램이 작동되었을 경우의 키보드 입력 정보 흐름을 나타낸다.
도 2 및 도 3에 도시된 바와 같이, 본 발명에 따른 키보드 입력 정보 해킹 방지 방법에 적용되는 키보드 입력 구조는 도 1에 도시된 응용 프로그램의 자리에 IE(400)가 위치하는데, IE(400)는 다시 키보드 입력 보안 BHO(300)와 IE 쓰레드 메시지 대기열(410), IE 텍스트 상자(420)으로 구성되어 있다. 키보드 드라이버(120) 하단과 상단에 n개의 필터 드라이버를 설치할 수가 있는데 본 발명에서는 키보드 드라이버(120)의 상단에 보안 입력 필터 드라이버(200)를 설치한다.
여기서 키보드 입력 보안 BHO(300)는 키보드 입력 보안을 위해 IE(400) 내에 직접 설치되는 브라우저 핼프 오브젝트(Browser Helper Object; BHO)이다. BHO는 IE 구동시에 IE 메모리 영역 내에 로드되는 오브젝트(Object)인데, 프로그램 개발자는 자신이 만든 BHO를 통해 IE를 커스터마이즈(customize)할 수 있다.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
2 and 3 are diagrams illustrating a keyboard input structure in the method for preventing keyboard input information hacking according to the present invention. FIG. 2 is a flow chart illustrating keyboard input information when the security program is not operated. Shows keyboard input information flow when activated.
2 and 3, in the keyboard input structure applied to the method for preventing keyboard input information hacking according to the present invention, the IE 400 is located in place of the application program shown in FIG. Is again composed of keyboard input security BHO 300, IE thread message queue 410, IE text box 420. N filter drivers may be installed at the bottom and top of the keyboard driver 120. In the present invention, the security input filter driver 200 is installed at the top of the keyboard driver 120.
The keyboard input security BHO 300 is a browser helper object (BHO) that is directly installed in the IE 400 for keyboard input security. A BHO is an object that is loaded into an IE memory area when the IE is running. A program developer can customize an IE through a BHO that he or she creates.

삭제delete

먼저 도 2에서와 같이 보안 프로그램이 작동하지 않는 경우에는, 도 1과 비교할 때 커널 모드(Ring0)와 사용자 모드(Ring 3)의 단계만 많이졌을 뿐 동일한 경로를 통해서 키보드 입력 정보가 전달되어진다.First, when the security program does not operate as shown in FIG. 2, compared to FIG. 1, only the kernel mode (Ring0) and the user mode (Ring 3) have many steps, and keyboard input information is transmitted through the same path.

한편, 도 3에서와 같이 보안 프로그램이 작동되는 경우에는, 키보드 하드웨어(100)에서 키보드 입력 정보가 시작되어 운영체제의 키보드 드라이버(120)를 거쳐 보안 입력 필터 드라이버(200)까지 도착하면 보안 입력 필터 드라이버(200)는 상위에 존재하는 필터 드라이버나 운영체제의 키보드 클래스 드라이버(140) 등의 상위에 존재하는 단계들을 거치지 않고 IE(400) 내의 키보드 보안 입력 BHO(300)으로 직접 키보드 입력 정보를 보낸다. 키보드 보안 입력 BHO(300)은 IE 쓰레드 메시지 대기열(410)을 거치지 않고 직접 IE 텍스트 상자(420)에 키보드 입력 정보를 입력한다.Meanwhile, when the security program is operated as shown in FIG. 3, when the keyboard input information starts from the keyboard hardware 100 and arrives at the security input filter driver 200 via the keyboard driver 120 of the operating system, the security input filter driver The 200 directly sends the keyboard input information to the keyboard security input BHO 300 in the IE 400 without going through the steps above, such as the filter driver or the keyboard class driver 140 of the operating system. Keyboard security input BHO 300 enters keyboard input information directly into IE text box 420 without going through IE thread message queue 410.

도 4는 본 발명에 따른 키보드 입력 정보 해킹 방지 방법이 적용되는 보안 시스템의 구성도이다.
도 4에 도시된 바와 같이, 본 발명에 따른 키보드 입력 정보 해킹 방지 방법이 적용되는 보안 시스템은 커널 모드(Ring 0)에 설치되어 키보드 입력 정보를 처리하는 보안 입력 필터 드라이버(200)와, 사용자 모드(Ring 3)의 IE(400) 내에 설치되어 상기 보안 입력 필터 드라이버(200)로부터 키보드 입력 정보를 직접 수신하여 수신된 키보드 입력 정보에 대응하는 문자를 인터넷 익스플로러의 텍스트 상자에 출력하는 키보드 입력 보안 BHO(300) 및 상기 키보드 입력 보안 BHO(300)와 인터넷을 통해 연결되어 해킹과 관련된 정보를 전달받아 처리하는 관리 서버(700)로 구성되어 있다.
상기 키보드 입력 보안 BHO(300)는 해킹 프로그램에 의한 API 훅을 감시하는 API 훅 감시부(320)와, 필터 드라이버의 로드 오더를 변경해주는 로드오더 변환기(340)와, IE 텍스트 상자(420)에 대한 섭 클래싱을 감시하는 섭 클래싱 감시부(330) 및 사용자에게 보안 상태 및 경고를 출력해주는 디스플레이부(350)으로 구성된다.
보안 입력 필터 드라이버(200)는 보안 입력 필터 드라이버(200) 이외의 필터 드라이버 설치 여부와 로드 오더를 감시하는 필터드라이버 감시부(210), 송수신부(220), 키보드 드라이버(120)에서 공급하는 인터럽트 서비스 루틴(ISR)이 아닌 자체 인터럽트 서비스 루틴을 사용하여 해킹이 이루어지는지를 감시하는 ISR 감시부(230)로 구성된다.
4 is a configuration diagram of a security system to which a keyboard input information hacking prevention method according to the present invention is applied.
As shown in FIG. 4, the security system to which the keyboard input information hacking prevention method according to the present invention is applied includes a security input filter driver 200 installed in a kernel mode (Ring 0) and processing keyboard input information, and a user mode. Keyboard input security BHO installed in IE 400 of (Ring 3) and directly receiving keyboard input information from the security input filter driver 200 and outputting a character corresponding to the received keyboard input information to a text box of Internet Explorer. And a management server 700 connected to the keyboard input security BHO 300 through the Internet to receive and process information related to hacking.
The keyboard input security BHO 300 includes an API hook monitoring unit 320 for monitoring an API hook by a hacking program, a load order converter 340 for changing a load order of a filter driver, and an IE text box 420. The subclassing monitoring unit 330 for monitoring the subclassing and the display unit 350 for outputting the security status and warning to the user.
The security input filter driver 200 interrupts the filter driver monitor 210, the transceiver 220, and the keyboard driver 120 to monitor whether the filter driver is installed other than the security input filter driver 200 and load orders. It consists of an ISR monitoring unit 230 that monitors whether hacking is performed using its own interrupt service routine rather than a service routine (ISR).

도 5는 본 발명의 일실시예에 따른 키보드 입력 정보 해킹 방지 방법을 나타내는 흐름도이다.5 is a flowchart illustrating a keyboard input information hacking prevention method according to an embodiment of the present invention.

이하, 상기한 보안 시스템을 이용한 본 발명의 일실시예에 따른 키보드 입력 정보 해킹 방지 방법에 대하여 상세히 설명하기로 한다.Hereinafter, a keyboard input information hacking prevention method according to an embodiment of the present invention using the security system will be described in detail.

먼저, 키보드 입력 보안 BHO(300)의 관리부(310)는 IE 텍스트 상자(420)에 포커스(Focus)가 있는가를 점검한다. 본 발명의 일실시예에 따른 키보드 입력 정보 해킹 방지 방법은 사용자가 키보드 하드웨어(100)를 통해 입력을 시작 할 때 보안 기능을 작동하는 것이 아니라, 그 전에 사용자가 키보드 입력을 위해 마우스를 IE 텍스트 상자(420)에 놓고 클릭하거나 또는 자동으로 IE 텍스트 상자(420)에 커서가 위치하게 되는 경우, 즉 'got focus' 이벤트가 발생함과 동시에 보안 기능을 작동하게 된다. 윈도우즈 운영체제는 멀티태스킹을 지원하는 운영체제로서 동시에 여러 개의 윈도우 즉 응용 프로그램(500)을 열어서 작업을 할 수가 있다. 하나의 키보드 하드웨어(100)를 통해서 여러 개의 응용 프로그램(500)에 데이터를 입력하는 방법을 쉽게 설명을 할 수 있는 것이 포커스이다. 즉 운영체제에 의해서 포커스가 있는 응용 프로그램(500)으로 키보드 입력 정보가 전달되어지게 된다. 사용자가 다른 응용 프로그램을 사용하다가(500)가 IE(400)을 열거나 또는 이미 열려져있었던 것을 선택하게 되면 IE(400)가 포커스를 받게 된다고 말할 수 있다. 좀 더 세부적으로 예를 들면 이메일을 확인하기 위해서 아이디 입력란에 마우스를 클릭을 하면 IE(400) 중에서도 해당되는 IE 텍스트 박스(420) 즉 이 경우에는 아이디 입력란이 포커스를 가지게 된다. 이 경우 본 발명에 의한 보안 프로그램이 작동을 하게 된다.First, the management unit 310 of the keyboard input security BHO 300 checks whether there is a focus in the IE text box 420. The keyboard input information hacking prevention method according to an embodiment of the present invention does not operate a security function when the user starts input through the keyboard hardware 100, but before the user inputs the mouse for the keyboard input, the IE text box If the cursor is positioned at 420 or clicked or automatically positioned at the IE text box 420, that is, a 'got focus' event occurs and a security function is activated. The Windows operating system is an operating system that supports multitasking, and can open and work with multiple windows, that is, applications 500 at the same time. The focus is on being able to easily explain how to enter data into multiple applications 500 through one keyboard hardware 100. That is, the keyboard input information is transmitted to the application program 500 in focus by the operating system. If the user is using another application (500) opens IE 400 or selects something that has already been opened, it may be said that IE 400 is in focus. More specifically, for example, when a mouse is clicked on the ID field to check an email, the corresponding IE text box 420 among the IE 400, in this case, the ID field has the focus. In this case, the security program according to the present invention operates.

상기 키보드 입력 보안 BHO(300)의 관리부(310)가 IE 텍스트 상자(420)에 포커스를 확인하고 포커스가 없으면 보안 입력 필터 드라이버(200)는 보안 작동을 하지 않게 된다. 반대로 포커스를 가지는 경우, 관리부(310)는 API 훅 감시부(320)를 작동시켜 DeviceIoControl API에 대한 API 훅 여부를 판단한다. 키보드 입력 보안 BHO(300)는 마이크로소프트 사(社)로부터 공급되어진 DeviceIoControl API를 통해서 보안 입력 필터 드라이버(200)와 대화를 하게 된다. 그런데 이 단계에서 해커는 중간의 데이터를 모니터하기 위해서 API 훅(Hook)을 할 수 있다. 이것을 방지하기 위해서 관리부(310)는 API 훅 감시부(320)를 통해 API 훅에 의해 DeviceIoControl API의 어드레스가 변경되었는지를 점검하는 것이다. 여기서, DeviceIoControl API는 kernel32.dll에서 추출 되어진 것이므로 DeviceIoControl API의 어드레스가 kernel32.dll 어드레스 공간의 일부인지를 점검함으로써, API 훅에 의해 DeviceIoControl API의 어드레스가 변경되었는지를 판단할 수 있게 된다. 이와 같은 API 훅 여부 판단 과정을 보다 상세히 설명하면 다음과 같다.
API 훅 감시부(320)는 DeviceIoControl API 어드레스를 얻고(321), 상기 획득된 DeviceIoControl API의 어드레스가 kernel32.dll 어드레스 공간의 일부인지를 점검한다(322).
If the management unit 310 of the keyboard input security BHO 300 checks the focus on the IE text box 420 and there is no focus, the security input filter driver 200 does not perform a security operation. On the contrary, if it has focus, the management unit 310 operates the API hook monitoring unit 320 to determine whether the API hook for the DeviceIoControl API. The keyboard input security BHO 300 communicates with the security input filter driver 200 through the DeviceIoControl API supplied from Microsoft Corporation. At this stage, however, hackers can make API hooks to monitor intermediate data. In order to prevent this, the management unit 310 checks whether the address of the DeviceIoControl API is changed by the API hook through the API hook monitoring unit 320. Since the DeviceIoControl API is extracted from kernel32.dll, it is possible to determine whether the address of the DeviceIoControl API has been changed by the API hook by checking whether the address of the DeviceIoControl API is part of the kernel32.dll address space. The process of determining whether an API hook is described in detail as follows.
The API hook monitoring unit 320 obtains a DeviceIoControl API address (321), and checks whether the obtained DeviceIoControl API address is part of the kernel32.dll address space (322).

삭제delete

상기 DeviceIoControl API의 어드레스 점검 단계(322)에서 DeviceIoControl API의 어드레스가 kernel32.dll 어드레스 공간의 일부가 아닌 경우, DeviceIoControl API에 대한 API 훅이 존재하는 것으로 판단하여 관리 서버(700)에 이를 통보한다(312)If the address of the DeviceIoControl API is not part of the kernel32.dll address space in the address checking step 322 of the DeviceIoControl API, it is determined that an API hook for the DeviceIoControl API exists and notifies the management server 700 of this (312). )

한편, 상기 DeviceIoControl API의 어드레스 점검 단계(322)에서 DeviceIoControl API 어드레스가 kernel32.dll 어드레스 공간의 일부이면 다시 kernel32.dll의 추출부분이 변경되었는지 확인하여(323) kernel32.dll의 추출부분이 변경된 경우, DeviceIoControl API에 대한 API훅이 존재하는 것으로 판단하여 이를 관리서버(700)에 통보한다(312)
한편, kernel32.dll의 추출부분이 변경되지 않았으면, API 훅이 존재하지 않는 것으로 판단되어, 키보드 입력 보안 BHO(300)는 DeviceIoControl API를 호출하여(324), 보안 입력 필터 드라이버(200)에 키보드 입력 정보를 보호할 것을 통보한다(314). 이 작동에 대한 흐름도가 도 6이다.
이후, 상기 키보드 입력 정보 보호 통보를 받은 보안 입력 필터 드라이버(200)는 작동을 개시하여(201), 키보드 드라이버(120)로부터 수신되는 키보드 입력값을 키보드 입력 보안 BHO(300)로 상기 수신된 키보드 입력값을 전송한다(331).
On the other hand, if the DeviceIoControl API address is part of the kernel32.dll address space in the address checking step 322 of the DeviceIoControl API, if the extraction part of kernel32.dll is changed by checking whether the extraction part of kernel32.dll is changed again (323), The API hook for the DeviceIoControl API is determined to be present and notified to the management server 700 (312).
On the other hand, if the extracted portion of kernel32.dll has not been changed, it is determined that the API hook does not exist, the keyboard input security BHO 300 calls the DeviceIoControl API (324), the keyboard to the secure input filter driver 200 Inform 314 to protect the input information. 6 is a flow chart for this operation.
Subsequently, the security input filter driver 200 having received the keyboard input information protection notification starts operation 201, and the keyboard input value received from the keyboard driver 120 is input to the keyboard input security BHO 300 to the received keyboard. The input value is transmitted (331).


이어서, 키보드 입력 보안 BHO(300)는 IE 텍스트 상자(420)의 윈도우 프로시저(Window Procedure)를 호출해야 하는데, 그 전에 관리부(310)은 섭 클래싱 감시부(330)를 작동시켜 섭 클래싱(SubClassing)이 존재하는지 여부를 판단한다. 관리부(310)가 섭 클래싱이 존재하는지 여부를 판단하는 과정을 보다 상세히 설명하면 다음과 같다.
섭 클래싱 감시부(330)는 IE 텍스트 상자(420)의 주소를 가져온다(332). 이어서, 상기 IE 텍스트 상자(420)의 주소가 IE 메인실행주소 공간(IE main executable address space)의 일부인가를 점검하여(333), 일부가 아니면 섭 클래싱이 존재하는 것으로 판단하여 관리서버(700)에 통보하고(312), 일부이면 섭 클래싱이 존재하지 않는 것으로 판단하여 IE 텍스트 상자(420)의 윈도우 프로시저를 호출하여 상기 수신된 키보드 입력 값을 전송한다(334).

Subsequently, the keyboard input security BHO 300 needs to call a window procedure of the IE text box 420. Before that, the management unit 310 operates the subclassing monitoring unit 330 to perform subclassing. Determine whether (SubClassing) exists. The management unit 310 will now be described in more detail the process of determining whether subclassing exists.
Subclassing monitoring unit 330 obtains the address of the IE text box 420 (332). Subsequently, it is checked whether the address of the IE text box 420 is part of the IE main executable address space (333), and if not, it is determined that subclassing exists and the management server 700 is determined. Call the window procedure of the IE text box 420 and transmit the received keyboard input value (334).

상기 키보드 입력값 전송 단계(334)후, 관리부(310)는 IE 텍스트 상자(420)에 포커스가 있는지 확인하여(335), 포커스가 없어지면 보안 입력 필터 드라이버(200)로 보안 해제를 통보하여(208) 보안 작동을 중지시키고(202), 포커스가 계속 남아 있으면 상기 보안 입력 필터 드라이버(200)로부터 키보드 입력 값을 받아(331) 동일한 동작을 포커스가 없어질 때까지 반복한다.After the keyboard input value transmitting step 334, the management unit 310 checks whether the IE text box 420 has focus (335), and when the focus is lost, notifies the security input filter driver 200 of security release (208). In operation 202, if the focus remains, the keyboard input value is received from the security input filter driver 200 (331) and the same operation is repeated until the focus is lost.

삭제delete

도 7은 관리 서버의 해킹 여부 판단 과정 및 키보드 입력 보안 BHO의 해킹 대응 동작 수행 과정을 나타내는 흐름도이다. 먼저, 관리서버(700)는 키보드 입력 보안 BHO(300)로 부터 API 훅, 섭 클래싱, 자체 ISR을 사용하는 하단 필터 드라이버 등의 사용자 컴퓨터 내에서 일어나는 모든 종류의 해킹 시도에 대한 정보를 받는다. (701)7 is a flowchart illustrating a process of determining whether a management server is hacked and a process of performing a hacking response operation of a keyboard input security BHO. First, the management server 700 receives information about all kinds of hacking attempts occurring within the user's computer, such as API hook, subclassing, bottom filter driver using its own ISR, from the keyboard input security BHO 300. (701)

이와 같은 기술들은 해킹을 목적으로 만들어진 기술들이 아니라 해커들에 의해서 이용되는 것 뿐이다. 다시 말해 다른 정상적인 많은 소프트웨어들이 사용자의 컴퓨터 내에서 위와 같은 기술들을 활용할 수 있다.Such technologies are used by hackers, not technologies intended for hacking. In other words, many other normal softwares can take advantage of these techniques in the user's computer.

보안 프로그램에 의해서 감지되어 해킹으로 의심되어지는 일련의 동작들에 대한 정보는 관리서버(700)로 보내져서 관리서버(700)의 DB를 통해 해킹(703), 알려지지 않음(704), 안전(705)로 나뉘어지고 그 결과는 다시 키보드 입력 보안 BHO(300)로 전송된다.(702)Information about a series of actions detected by the security program and suspected of being hacked is sent to the management server 700 to be hacked 703, unknown 704, safety 705 via the DB of the management server 700. And the result is sent back to the keyboard input security BHO 300 (702).

그 결과가 해킹(703)으로 판명이 되면 본 발명에 의한 보안 프로그램은 해킹에 해당되는 부분을 삭제한 후 디스플레이부(350)를 통해서 사용자에게 통보한다.(711) 그 결과가 알려지지 않음(704) 또는 안전(705)으로 나온 경우 디스플레이부(350)를 통해 사용자에게 이 사실을 알리고 해당 프로세싱의 진행여부를 묻는다 .(706) 사용자가 아니오 즉 삭제를 원할 경우 해당 프로세싱을 삭제한 후 사용자에게 결과를 통보한다.(711)When the result is found to be a hack 703, the security program according to the present invention deletes the part corresponding to the hack and notifies the user through the display unit 350 (711). The result is unknown (704). Or if the safety (705) is notified to the user through the display unit 350 and whether the processing proceeds or not. (706) If the user wants to delete or no, delete the processing and then the user to the result (711)

반대로 사용자가 알려지지 않았거나(704) 안전(705)하다고 판명된 부분의 실행을 원할 경우 본 발명에 의한 보안 프로그램은 계속 작동을 하면서 동시에 모니터링을 계속 한다.(707) 모니터링 결과 해킹과 같은 불법적인 동작을 하지 않으면 관리서버(700)에 통보하여 해당 프로세싱을 안전(705)으로 등록한 후 본 발명에 의한 보안 프로그램 동작을 계속 진행한다. 모니터링 결과 API 훅, 섭 클래싱, 자체 ISR의 비정상정인 운영 등의 동작들이 감지가 되면 관리서버(700)에 이 사실을 통보하여 해당 프로세싱을 해킹(703)으로 등록을 한 후 해당 프로세싱을 삭제한다. 그 후 다시 디스플레이부(350)를 통해서 사용자에게 내용을 통보한다.(711)On the contrary, if the user wants to execute a part that is unknown (704) or determined to be safe (705), the security program according to the present invention continues to operate while simultaneously monitoring. (707) Illegal operation such as hacking result of monitoring If not, the management server 700 notifies and registers the processing as safety 705, and then proceeds with the security program operation according to the present invention. If the monitoring detects an operation such as API hook, subclassing or abnormal operation of its own ISR, it notifies the management server 700 of this fact and registers the processing as hack 703 and then deletes the processing. . After that, the user is notified again through the display unit 350 (711).

이와 같은 동작은 이미 알려진 해킹 툴 리스트에 의존하여 해당되는 해킹 툴을 검색하고 제거하는 기존의 스파이웨어 탐지 및 제거 프로그램의 기본 원리와는 다른 것으로 보다 근본적이고 지속적인 보안을 사용자에게 공급할 수 있는 기술이다.This behavior is different from the basic principle of the existing spyware detection and removal program that relies on a list of known hacking tools to search for and remove the hacking tools, and is a technology that can provide users with more fundamental and continuous security.

한편, 도 4에서와 같이, 보안 입력 필터 드라이버(200)는 필터 드라이버 감시부(210)와 ISR 감시부(230)를 포함하여 구성될 수 있는데, 이하, 필터 드라이버 감시부(210) 및 ISR 감시부(230)의 보안 동작에 대하여 설명하기로 한다.Meanwhile, as shown in FIG. 4, the security input filter driver 200 may include a filter driver monitor 210 and an ISR monitor 230. Hereinafter, the filter driver monitor 210 and the ISR monitor may be configured. The security operation of the unit 230 will be described.

도 8은 본 발명의 일실시예에 따른 필터 드라이버 감시부의 동작을 나타내는 흐름도이다.8 is a flowchart illustrating an operation of a filter driver monitor according to an exemplary embodiment of the present invention.

먼저 먼저 필터 드라이버 감시부(210)의 동작을 설명하면, 키보드 드라이버(120) 상단에 설치될 수 있는 상단 필터 드라이버의 수를 점검한다.(211) 필터 드라이버의 수가 2개 이상이 아닌 경우 즉 보안 입력 필터 드라이버(200)만 설치 된 경우에는 디스플레이부(350)를 통해서 사용자에게 시스템이 안전하다는 통보를 한다.(351)First, the operation of the filter driver monitoring unit 210 will be described, and the number of upper filter drivers that can be installed on the top of the keyboard driver 120 is checked. (211) When the number of filter drivers is not two or more, that is, security When only the input filter driver 200 is installed, the user is notified that the system is safe through the display unit 350 (351).

또한 필터 드라이버의 수가 2개 이상인 경우라도 보안 입력 필터 드라이버(200)의 로드오더(Load order)가 최하단인지를 판단하여(213), 보안 입력 필터 드라이버(200)의 로드 오더가 최하단인 경우에도 사용자에게 안전하다는 통보를 한다.(351) 그러나 보안 입력 필터 드라이버(200)의 로드 오더가 최하단이 아닌 경우, 즉 필터 드라이버의 수가 2개이상이면서 보안 입력 필터 드라이버(200)보다 하단에 설치되어있는 경우에는 키보드 입력 보안 BHO(300)의 로드오더 변환기(340)를 통해서 로드 오더를 변경한다(214).In addition, even when the number of filter drivers is two or more, it is determined whether the load order of the secure input filter driver 200 is the lowest (213), and even when the load order of the secure input filter driver 200 is the lowest, the user is determined. (351) However, if the load order of the secure input filter driver 200 is not at the bottom, that is, if the number of filter drivers is two or more and is installed below the secure input filter driver 200. The load order is changed through the load order converter 340 of the keyboard input security BHO 300 (214).

악의적이며 고도의 기술을 쓰지 않는 이상 로드 오더 변경 단계(214)를 통해 로드 오더가 변경되어지는데, 변경 후 디스플레이부(350)를 통해서 사용자에게 내용을 통보하고 시스템을 다시 시작할 것을 요청한다.(352) 그러나 로드오더가 변경이 되지 않는 경우가 발생할 수도 있는데 이와 같은 경우에는 관리서버(700)와 사용자에게 통보하여 더 이상의 작업을 진행하지 못하도록 한다.(353)The load order is changed through the load order change step 214 unless a malicious and advanced technique is used. After the change, the load order is notified to the user through the display 350 and requests to restart the system. However, the load order may not be changed. In such a case, the management server 700 and the user are notified to prevent further work. (353)

한편, ISR 감시부(230)는 키보드 드라이버(120)에서 공급하는 인터럽트 서비스 루틴(ISR)이 아닌 자체 인터럽트 서비스 루틴을 사용하여 해킹이 이루어지는지를 감시하는 기능을 수행한다. 해커는 자체 인터럽트 서비스 루틴(ISR)을 만들고 그것을 인터럽트 디스크립터 테이블(IDT)에 등록을 할 수가 있다. 이때 정상적인 프로그램이라면 원하는 동작을 마친 후 운영체제에서 공급하는 인터럽트 서비스 루틴(ISR)을 다시 인터럽트 디스크립터 테이블(IDT)에 등록을 시켜야 하지만 해커에 의해 만들어진 인터럽트 서비스 루틴(ISR)은 키보드 입력 정보를 가져가는 것이 목적이므로 계속 자신의 인터럽트 서비스 루틴(ISR)을 유지하게 된다.Meanwhile, the ISR monitoring unit 230 monitors whether hacking is performed using its own interrupt service routine rather than the interrupt service routine (ISR) supplied by the keyboard driver 120. Hackers can create their own interrupt service routines (ISRs) and register them in the interrupt descriptor table (IDT). In this case, the normal program should register the interrupt service routine (ISR) supplied by the operating system in the interrupt descriptor table (IDT) again after completing the desired operation. For this purpose, it will continue to maintain its interrupt service routine (ISR).

이와 같은 방법을 탐지하고 제거하는 부분이 인터럽트 서비스 루틴(ISR) 감시부(230)이다.The interrupt service routine (ISR) monitoring unit 230 detects and removes such a method.

도 9는 ISR 감시부의 동작을 나타내는 흐름도이다.9 is a flowchart illustrating the operation of the ISR monitoring unit.

먼저 인터럽트 디스크립터 데이블(IDT)에서 키보드 인터럽트 서비스 루틴(ISR)을 주소를 가져온다.(231) 그 후 키보드 드라이버(120)의 베이스 어드레스를 가져온다.(232) 시스템이 시작을 하면 시스템은 드라이버들을 로드(loading)한다. 이때 각각의 드라이버들은 컴퓨터 RAM의 일정부분을 차지하게 된다. 예를 들어 드라이버가 1MB를 차지했다고 했을 때 그 공간의 가장 앞부분의 주소를 베이스 어드레스라 한다. First get the address of the keyboard interrupt service routine (ISR) from the Interrupt Descriptor Table (IDT). (231) Then get the base address of the keyboard driver 120. (232) When the system starts up, the system loads the drivers ( loading). Each driver takes up a certain amount of computer RAM. For example, if the driver occupies 1MB, the address at the beginning of the space is called the base address.

상기 키보드 드라이버(120)의 베이스 어드레스를 가져오는 단계(232)가 완료되면(232), 키보드 드라이버(120)의 파일 크기 값을 가져온다.(233) 그 후에 인터럽트 디스크립터 테이블(IDT)에서 가져온 키보드 인터럽트 서비스 루틴(ISR)의 주소가 키보드 드라이버(120)의 베이스 어드레스보다 크며 동시에 키보드 드라이버(120)의 베이스 어드레스에 키보드 드라이버(120)의 파일 크기 값을 더한 합계보다 작은가를 점검한다.(234)When the step 232 of obtaining the base address of the keyboard driver 120 is completed (232), the file size value of the keyboard driver 120 is obtained (233). The keyboard interrupt obtained from the interrupt descriptor table IDT is then obtained. It is checked whether the address of the service routine ISR is larger than the base address of the keyboard driver 120 and is smaller than the sum of the file size of the keyboard driver 120 plus the base address of the keyboard driver 120 (234).

운영체제에서 공급되어진 인터럽트 서비스 루틴(ISR)은 정확히 말하자면 키보드 드라이버(120)에서 공급되어진다.The Interrupt Service Routine (ISR) supplied by the operating system is, precisely, supplied by the keyboard driver 120.

즉 인터럽트 서비스 루틴(ISR)은 키보드 드라이버(120) 내에 존재한다는 뜻이다. 그리고 그 주소가 인터럽트 디스크립터 테이블(IDT)에 등록되어 있는 것이다. 자체 인터럽트 서비스 루틴(ISR)을 만들면 그것 역시 컴퓨터 RAM의 어느 부분 에 존재하게 되는데 그것이 키보드 드라이버(120)보다 먼저 또는 나중에도 설치할 수가 있다.That is, an interrupt service routine (ISR) is present in the keyboard driver 120. The address is registered in the Interrupt Descriptor Table (IDT). If you create your own Interrupt Service Routine (ISR), it also resides in some part of your computer's RAM, which can be installed before or after the keyboard driver 120.

결국 자체 인터럽트 서비스 루틴(ISR)은 RAM 어딘가에 존재하면서 그 어드레스만을 인터럽트 디스크립터 테이블(IDT)에 등록을 하는 것이다. 한 가지 확실한 것은 키보드 드라이버(120)의 앞부분 또는 뒷부분의 공간을 차지할 수 있지만 키보드 드라이버(120) 내부에는 설치를 할 수가 없다는 것이다.Eventually, its Interrupt Service Routine (ISR) is somewhere in RAM and only registers its address in the Interrupt Descriptor Table (IDT). One thing is certain, but it can take up space in the front or back of the keyboard driver 120, but the installation inside the keyboard driver 120 is not possible.

쉽게 표현하여 예를 들면 키보드 드라이버(120)의 베이스 어드레스가 100이고 키보드 드라이버(120)의 파일 크기가 200이면 키보드 드라이버(120)는 컴퓨터의 RAM에서 100에서부터 300에 해당되는 공간을 차지한다는 뜻이며 인터럽트 서비스 루틴(ISR)은 100 에서부터 300 사이 어느 공간에 저장되어져 있다는 뜻이다.For example, if the base address of the keyboard driver 120 is 100 and the file size of the keyboard driver 120 is 200, it means that the keyboard driver 120 occupies 100 to 300 space in RAM of the computer. The Interrupt Service Routine (ISR) is stored in any space between 100 and 300.

즉 해커나 다른 프로그램에 의해서 만들어진 자체 인터럽트 서비스 루틴(ISR)은 컴퓨터 RAM에서 100 이전이나 300 이후의 공간 어딘가에 저장되어지게 된다. 이와 같은 내용을 이용하여 현재 사용되어지고 있는 키보드 인터럽트 서비스 루틴(ISR)이 키보드 드라이버(120)에서 공급되어진 것인지 아닌지를 점검할 수 있다.(234) 점검 결과가 아니오 로 나온다면 관리서버(700)에 통보하여 도 7에서 설명한 것과 같은 동작을 실행한다. 한편, 상기 키보드 ISR 점검 단계(234)에서의 점검 결과가 "예"로 나오면 본 발명에 따른 키보드 보안 프로그램은 정상 작동을 한다(235).In other words, their interrupt service routines (ISRs), created by hackers or other programs, are stored somewhere in the computer's RAM somewhere before 100 or after 300. By using the above information, it is possible to check whether the currently used keyboard interrupt service routine (ISR) is supplied from the keyboard driver 120. (234) If the check result is NO, the management server 700 The controller performs notification as described in FIG. 7. On the other hand, if the check result in the keyboard ISR check step 234 is "Yes", the keyboard security program according to the present invention operates normally (235).

이상에서와 같이, 본 발명에 따른 키보드 입력 정보 해킹 방지 방법은 커널 모드(Ring 0)와 사용자 모드(Ring 3)에서 발생할 수 있는 해킹의 가능성을 리스트에 의존하는 방식이 아닌 동작 자체를 점검하는 시스템을 포함하고 있어서 기존의 해킹 기술과 또한 응용 기술에 대한 보안성이 매우 높다. 이와 같은 점은 인터넷 환경이 급속도로 발전하고 그 이용 범위가 단순한 작업에서부터 금전적인 거래에 이르기까지 다양해지고 있는 현시점에 매우 중요한 역할을 하게 된다. 보안성을 높이게 되면 사용자들은 더욱 인터넷으로 하는 일련의 작업들을 사용하게 될 것이며 궁극적으로 인터넷 환경 발전을 이룰 수 있다.As described above, the keyboard input information hacking prevention method according to the present invention is a system for checking the operation itself, rather than a method depending on the list of possible hacking that may occur in the kernel mode (Ring 0) and the user mode (Ring 3) It contains a very high security of the existing hacking technology and also the application technology. This plays a very important role at the present time when the Internet environment is rapidly developing and its use ranges from simple work to financial transactions. Increasing security will allow users to use more of the Internet's work and ultimately advance the Internet experience.

Claims (12)

삭제delete 삭제delete 삭제delete 커널 모드(Ring 0)에 설치되는 보안 입력 필터 드라이버와, 사용자 모드(Ring 3)의 IE 내에 설치되는 키보드 입력 보안 BHO 및 상기 키보드 입력 보안 BHO와 인터넷을 통해 연결되어 해킹과 관련된 정보를 전달받아 처리하는 관리 서버를 포함하는 보안 시스템을 이용하여 키보드 입력 정보를 보호하는 방법에 있어서,Secure input filter driver installed in kernel mode (Ring 0), keyboard input security BHO installed in IE in user mode (Ring 3), and keyboard input security BHO connected to the keyboard input security BHO through the Internet to receive and process information related to hacking In the method for protecting the keyboard input information using a security system including a management server, 키보드 입력 보안 BHO가 IE 텍스트 상자에 포커스(Focus)가 있는가를 점검하는 단계와;Checking, by the keyboard input security BHO, whether there is a focus in the IE text box; 상기 포커스 점검 단계에서 IE 텍스트 상자에 포커스가 없는 경우, 키보드 입력 보안 BHO가 보안 입력 필터 드라이버의 보안 작동을 중지시키는 단계와;If there is no focus in the IE text box in the focus checking step, the keyboard input security BHO stops the security operation of the secure input filter driver; 상기 포커스 점검 단계에서 IE 텍스트 상자에 포커스가 있는 경우, 키보드 입력 보안 BHO가 DeviceIoControl API(Application Programming Interface)에 대한 API 훅 여부를 판단하는 단계와;Determining, by the keyboard input security BHO, an API hook for a DeviceIoControl application programming interface (API) when the focus is on the IE text box in the focus checking step; 상기 API 훅 여부 판단 단계에서 API 훅이 존재하는 것으로 판단되는 경우, 키보드 입력 보안 BHO가 관리 서버에 API 훅 정보를 전송하는 단계와;If it is determined that the API hook exists in the API hook determination step, the keyboard input security BHO transmitting the API hook information to the management server; 상기 API 훅 여부 판단 단계에서 API 훅이 존재하지 않는 것으로 판단되는 경우, 키보드 입력 보안 BHO가 보안 입력 필터 드라이버에 키보드 입력 정보를 보호할 것을 통보하는 단계와;If it is determined that the API hook does not exist in the API hook determination step, the keyboard input security BHO notifies the secure input filter driver to protect the keyboard input information; 보안 입력 필터 드라이버가 상기 키보드 입력 정보 보호 통보에 따라 보안 작동을 개시하여 키보드 드라이버로부터 수신되는 키보드 입력값을 키보드 입력 보안 BHO로 상기 수신된 키보드 입력 값을 전송하는 단계와;A security input filter driver initiating a secure operation according to the keyboard input information protection notification to transmit the keyboard input value received from the keyboard driver to a keyboard input security BHO to the keyboard input security BHO; 관리 서버가 상기 키보드 입력 보안 BHO로부터 전송받은 정보를 바탕으로 내부의 DB를 검색하여 해킹 여부를 판단하는 단계와;A management server searching an internal DB based on information received from the keyboard input security BHO and determining whether to be hacked; 키보드 입력 보안 BHO가 상기 해킹 여부 판단 결과를 관리 서버로부터 수신하여, 상기 판단 결과에 따라 해킹에 해당되는 프로세싱을 삭제하는 해킹 프로세싱 삭제 단계;A hacking processing deleting step of receiving, by a keyboard input security BHO, a result of the hacking determination from a management server and deleting processing corresponding to the hacking according to the determination result; 를 포함하여 구성되는 것을 특징으로 하는 키보드 입력 정보 해킹 방지 방법.Keyboard input information hacking prevention method, characterized in that comprises a. 제 4항에 있어서,The method of claim 4, wherein 상기 API 훅 여부 판단 단계는,The determining whether the API hook, 키보드 입력 보안 BHO가 DeviceIoControl API 어드레스를 획득하여, 상기 획득된 DeviceIoControl API의 어드레스가 kernel32.dll의 어드레스 공간 내부에 위치하는지를 점검하는 단계와;The keyboard input security BHO obtains a DeviceIoControl API address and checks whether the obtained address of the DeviceIoControl API is located in an address space of kernel32.dll; 상기 DeviceIoControl API의 어드레스 점검 단계에서 DeviceIoControl API의 어드레스가 kernel32.dll 어드레스 공간의 일부가 아닌 경우, DeviceIoControl API에 대한 API 훅이 존재하는 것으로 판단하는 단계와;Determining that an API hook for a DeviceIoControl API exists when the address of the DeviceIoControl API is not part of the kernel32.dll address space in the address checking step of the DeviceIoControl API; 키보드 입력 보안 BHO가 상기 DeviceIoControl API의 어드레스 점검 단계에서 DeviceIoControl API 어드레스가 kernel32.dll 어드레스 공간의 일부인 경우, kernel32.dll의 추출부분이 변경되었는지 확인하는 단계와;When the keyboard input security BHO checks that the DeviceIoControl API address is part of the kernel32.dll address space in the address checking step of the DeviceIoControl API, checking whether the extracted portion of kernel32.dll has been changed; 상기 kernel32.dll의 추출부분 변경을 확인하는 단계에서 kernel32.dll의 추출부분이 변경된 경우, DeviceIoControl API에 대한 API 훅이 존재하는 것으로 판단하는 단계;Determining that an API hook for a DeviceIoControl API exists when the extracted portion of kernel32.dll is changed in the checking of the extracted portion of kernel32.dll; 를 포함하여 구성되는 것을 특징으로 하는 키보드 입력 정보 해킹 방지 방법.Keyboard input information hacking prevention method, characterized in that comprises a. 커널 모드(Ring 0)에 설치되는 보안 입력 필터 드라이버와, 사용자 모드(Ring 3)의 IE 내에 설치되는 키보드 입력 보안 BHO 및 상기 키보드 입력 보안 BHO와 인터넷을 통해 연결되어 해킹과 관련된 정보를 전달받아 처리하는 관리 서버를 포함하는 보안 시스템을 이용하여 키보드 입력 정보를 보호하는 방법에 있어서,Secure input filter driver installed in kernel mode (Ring 0), keyboard input security BHO installed in IE in user mode (Ring 3), and keyboard input security BHO connected to the keyboard input security BHO through the Internet to receive and process information related to hacking In the method for protecting the keyboard input information using a security system including a management server, 키보드 입력 보안 BHO가 IE 텍스트 상자의 주소를 이용하여 섭 클래싱이 존재하는지 여부를 판단하는 단계와;Determining, by the keyboard input security BHO, whether subclassing exists using the address of the IE text box; 상기 섭 클래싱 존재 여부 판단 단계에서 섭 클래싱이 존재하는 것으로 판단되는 경우, 키보드 입력 보안 BHO가 섭 클래싱 정보를 관리 서버에 전송하는 단계와;If it is determined that subclassing exists in the subclassing step, the keyboard input security BHO transmits the subclassing information to the management server; 상기 섭 클래싱 존재 여부 판단 단계에서 섭 클래싱이 존재하지 않는 것으로 판단되는 경우, 키보드 입력 보안 BHO가 IE 텍스트 상자의 윈도우 프로시저를 호출하여 상기 수신된 키보드 입력 값을 전송하는 단계If it is determined that subclassing does not exist in the subclassing determination step, the keyboard input security BHO calls a window procedure of an IE text box to transmit the received keyboard input value. 관리 서버가 상기 키보드 입력 보안 BHO로부터 전송받은 정보를 바탕으로 내부의 DB를 검색하여 해킹 여부를 판단하는 단계와;A management server searching an internal DB based on information received from the keyboard input security BHO and determining whether to be hacked; 키보드 입력 보안 BHO가 상기 해킹 여부 판단 결과를 관리 서버로부터 수신하여, 상기 판단 결과에 따라 해킹에 해당되는 프로세싱을 삭제하는 해킹 프로세싱 삭제 단계;A hacking processing deleting step of receiving, by a keyboard input security BHO, a result of the hacking determination from a management server and deleting processing corresponding to the hacking according to the determination result; 를 포함하여 구성되는 것을 특징으로 하는 키보드 입력 정보 해킹 방지 방법.Keyboard input information hacking prevention method, characterized in that comprises a. 제 6항에 있어서,The method of claim 6, 상기 섭 클래싱 존재 여부 판단 단계는,The determining whether the subclassing is present, 키보드 입력 보안 BHO가 해당 IE 텍스트 상자의 주소를 가져오는 단계와;Keyboard input security BHO getting the address of the corresponding IE text box; 키보드 입력 보안 BHO가 상기 획득한 IE 텍스트 상자의 주소가 IE 메인실행주소 공간(IE main executable address space)의 일부인가를 점검하는 단계와;Checking, by the keyboard input security BHO, whether the address of the obtained IE text box is part of an IE main executable address space; 상기 IE 텍스트 상자의 윈도우 프로시져 주소 점검 단계에서 IE 텍스트 상자의 주소가 IE 메인실행주소 공간의 일부가 아닌 경우, 섭 클래싱이 존재하는 것으로 판단하는 단계;In a window procedure address checking step of the IE text box, determining that subclassing exists if the address of the IE text box is not part of the IE main execution address space; 를 포함하여 구성되는 것을 특징으로 하는 키보드 입력 정보 해킹 방지 방법.Keyboard input information hacking prevention method, characterized in that comprises a. 커널 모드(Ring 0)에 설치되는 보안 입력 필터 드라이버와, 사용자 모드(Ring 3)의 IE 내에 설치되는 키보드 입력 보안 BHO 및 상기 키보드 입력 보안 BHO와 인터넷을 통해 연결되어 해킹과 관련된 정보를 전달받아 처리하는 관리 서버를 포함하는 보안 시스템을 이용하여 키보드 입력 정보를 보호하는 방법에 있어서,Secure input filter driver installed in kernel mode (Ring 0), keyboard input security BHO installed in IE in user mode (Ring 3), and keyboard input security BHO connected to the keyboard input security BHO through the Internet to receive and process information related to hacking In the method for protecting the keyboard input information using a security system including a management server, 인터럽트 디스크립터 데이블(IDT)에서 키보드 인터럽트 서비스 루틴(ISR)의 주소를 가져오는 단계와Getting the address of the keyboard interrupt service routine (ISR) from the Interrupt Descriptor Table (IDT); 키보드 드라이버(120)의 베이스 어드레스를 가져오는 단계와Obtaining a base address of the keyboard driver 120 and 상기 키보드 드라이버(120)가 로드된 후, 키보드 드라이버(120)의 파일 크기 값을 가져오는 단계와After the keyboard driver 120 is loaded, obtaining a file size value of the keyboard driver 120; 상기 키보드 인터럽트 서비스 루틴(ISR)의 주소와, 상기 키보드 드라이버(120)의 베이스 어드레스와, 키보드 드라이버(120)의 파일 크기 값을 비교하여 키보드 인터럽트 서비스 루틴(ISR)의 비정상적인 운영을 판단하는 단계와Determining abnormal operation of the keyboard interrupt service routine (ISR) by comparing an address of the keyboard interrupt service routine (ISR) with a base address of the keyboard driver 120 and a file size value of the keyboard driver 120; 상기 키보드 인터럽트 서비스 루틴(ISR)가 비정상적인 운영으로 판단될 경우, 이를 관리서버에 통보하는 단계와Notifying the management server when the keyboard interrupt service routine (ISR) is determined to be abnormally operated; 관리 서버가 상기 키보드 입력 보안 BHO로부터 전송받은 정보를 바탕으로 내부의 DB를 검색하여 해킹 여부를 판단하는 단계와;A management server searching an internal DB based on information received from the keyboard input security BHO and determining whether to be hacked; 키보드 입력 보안 BHO가 상기 해킹 여부 판단 결과를 관리 서버로부터 수신하여, 상기 판단 결과에 따라 해킹에 해당되는 프로세싱을 삭제하는 해킹 프로세싱 삭제 단계;A hacking processing deleting step of receiving, by a keyboard input security BHO, a result of the hacking determination from a management server and deleting processing corresponding to the hacking according to the determination result; 를 포함하여 구성되는 것을 특징으로 하는 키보드 입력 정보 해킹 방지 방법.Keyboard input information hacking prevention method, characterized in that comprises a. 제 8항에 있어서,The method of claim 8, 상기 키보드 인터럽트 서비스 루틴(ISR)의 비정상적인 운영을 판단하는 단계,Determining abnormal operation of the keyboard interrupt service routine (ISR), 상기 키보드 인터럽트 서비스 루틴(ISR)의 주소가 상기 키보드 드라이버(120)의 베이스 어드레스보다 크며 동시에 키보드 드라이버(120)의 베이스 어드레스에 키보드 드라이버(120)의 파일 크기 값을 더한 합계보다 작은가를 비교하는 단계와Comparing whether the address of the keyboard interrupt service routine (ISR) is greater than the base address of the keyboard driver 120 and at the same time less than the sum of the file size of the keyboard driver 120 plus the base address of the keyboard driver 120. Wow 상기 비교결과가 "아니오"이 경우 키보드 인터럽트 서비스 루틴(ISR)의 비정상적인 운영으로 판단하는 단계If the comparison result is no, determining that the keyboard interrupt service routine (ISR) is abnormally operated. 를 포함하여 구성되는 것을 특징으로 하는 키보드 입력 정보 해킹 방지 방법.Keyboard input information hacking prevention method, characterized in that comprises a. 제 4항 또는 제 6항 또는 제8항의 어느 한항에 있어서,The method according to claim 4 or 6 or 8, 상기 관리 서버의 해킹 여부 판단 단계는,Determining whether the management server is hacked, 관리 서버가 키보드 입력 보안 BHO로부터 API 훅, 섭 클래싱 또는 자체 ISR을 사용하는 하단 필터 드라이버 등과 관련된 해킹 관련 정보를 수신받는 단계와;Receiving, by the management server, hacking related information related to an API hook, subclassing or a bottom filter driver using its own ISR from a keyboard input security BHO; 관리 서버가 상기 수신된 해킹 관련 정보를 관리 서버 내의 DB를 통해 "해킹" 또는 "안전", "알려지지 않음"으로 나누는 DB 검색 단계와;A DB retrieval step of the management server dividing the received hacking related information into "hacking", "safe" or "unknown" through a DB in the management server; 상기 DB 검색 단계에서의 판단 결과를 키보드 입력 보안 BHO로 전송하는 단계;Transmitting the determination result of the DB search step to a keyboard input security BHO; 를 포함하여 구성되는 것을 특징으로 하는 키보드 입력 정보 해킹 방지 방법.Keyboard input information hacking prevention method, characterized in that comprises a. 제 10항에 있어서,The method of claim 10, 상기 키보드 입력 보안 BHO의 해킹 프로세싱 삭제 단계는,The deleting of the hacking processing of the keyboard input security BHO may include: 상기 관리 서버로부터 수신한 판단 결과가 해킹인 경우, 키보드 입력 보안 BHO가 해킹에 해당되는 프로세싱을 삭제한 후 사용자에게 삭제 사실을 통보하는 단계와;If the determination result received from the management server is hacking, notifying the user of the deletion after the keyboard input security BHO deletes the processing corresponding to the hacking; 상기 관리 서버로부터 수신한 판단 결과가 알려지지 않음 또는 안전으로 나온 경우, 키보드 입력 보안 BHO가 사용자에게 해당 정보를 표시하고 해당 프로세싱의 진행 여부를 질문하는 단계와;If the determination result received from the management server is unknown or secure, the keyboard input security BHO displaying the information to the user and asking whether the processing is to be performed; 상기 진행 여부 질문 단계에서 사용자가 아니오 즉 삭제를 선택한 경우, 키보드 입력 보안 BHO가 해당 프로세싱을 삭제한 후 사용자에게 삭제 결과를 통보하는 단계와;If the user selects No, that is, deletion in the question of whether to proceed, the keyboard input security BHO deletes the processing and notifies the deletion result to the user; 상기 진행 여부 질문 단계에서 사용자가 사용자가 해당 프로세싱의 진행을 선택한 경우, 키보드 입력 보안 BHO가 해당 프로세싱의 해킹에 대한 모니터링을 수행하는 단계와;When the user selects to proceed with the corresponding processing in the progress question question step, the keyboard input security BHO monitoring the hacking of the processing; 를 포함하여 구성되는 것을 특징으로 하는 키보드 입력 정보 해킹 방지 방법.Keyboard input information hacking prevention method, characterized in that comprises a. 커널 모드(Ring 0)에 설치되어 키보드 입력 정보를 처리하는 보안 입력 필터 드라이버(200)와, A secure input filter driver 200 installed in kernel mode (Ring 0) to process keyboard input information; 사용자 모드(Ring 3)의 IE(400) 내에 설치되어 상기 보안 입력 필터 드라이버(200)로부터 키보드 입력 정보를 직접 수신하여 수신된 키보드 입력 정보에 대응하는 문자를 인터넷 익스플로러의 텍스트 상자에 출력하는 키보드 입력 보안 BHO(300)와Keyboard input installed in the IE 400 of the user mode (Ring 3) to directly receive keyboard input information from the security input filter driver 200 and to output characters corresponding to the received keyboard input information to a text box of Internet Explorer. With security BHO 300 상기 키보드 입력 보안 BHO(300)와 인터넷을 통해 연결되어 해킹과 관련된 정보를 전달받아 처리하는 관리 서버(700)로 구성되며,  Is connected to the keyboard input security BHO 300 and the Internet is composed of a management server 700 for receiving and processing information related to hacking, 상기 키보드 입력 보안 BHO(300)는 The keyboard input security BHO 300 is 해킹 프로그램에 의한 API 훅을 감시하는 API 훅 감시부(320)와, An API hook monitoring unit 320 for monitoring an API hook by a hacking program, IE 텍스트 상자(420)에 대한 섭 클래싱을 감시하는 섭 클래싱 감시부(330) 를 포함하며, Subclassing monitoring unit 330 for monitoring subclassing for IE text box 420, 상기 보안 입력 필터 드라이버(200)는 The security input filter driver 200 상기 보안 입력 필터 드라이버(200) 이외의 필터 드라이버 설치 여부와 로드 오더를 감시하는 필터드라이버 감시부(210), A filter driver monitoring unit 210 for monitoring whether a filter driver other than the security input filter driver 200 is installed and a load order; 키보드 드라이버(120)에서 공급하는 인터럽트 서비스 루틴(ISR)이 아닌 자체 인터럽트 서비스 루틴을 사용하여 해킹이 이루어지는지를 감시하는 ISR 감시부(230)ISR monitoring unit 230 that monitors whether hacking is performed using its own interrupt service routine other than the interrupt service routine (ISR) supplied by the keyboard driver 120. 를 포함하여 구성되는 것을 특징으로 하는 키보드 입력 정보 해킹 방지 시스템Keyboard input information hacking prevention system, characterized in that configured to include
KR1020050015064A 2005-02-23 2005-02-23 Method and system for preventing hacking of keyboard input information of Internet Explorer user through secure input filter driver and keyboard security input BH in Windows operating system Expired - Fee Related KR100710032B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050015064A KR100710032B1 (en) 2005-02-23 2005-02-23 Method and system for preventing hacking of keyboard input information of Internet Explorer user through secure input filter driver and keyboard security input BH in Windows operating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050015064A KR100710032B1 (en) 2005-02-23 2005-02-23 Method and system for preventing hacking of keyboard input information of Internet Explorer user through secure input filter driver and keyboard security input BH in Windows operating system

Publications (2)

Publication Number Publication Date
KR20060093932A KR20060093932A (en) 2006-08-28
KR100710032B1 true KR100710032B1 (en) 2007-04-25

Family

ID=37601900

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050015064A Expired - Fee Related KR100710032B1 (en) 2005-02-23 2005-02-23 Method and system for preventing hacking of keyboard input information of Internet Explorer user through secure input filter driver and keyboard security input BH in Windows operating system

Country Status (1)

Country Link
KR (1) KR100710032B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101483658B (en) * 2009-01-09 2012-11-28 招商银行股份有限公司 System and method for input content protection of browser
KR20160024162A (en) 2014-08-25 2016-03-04 주식회사 텔스카 Mobile payment system and method using mobile communication terminal

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100734145B1 (en) * 2005-10-12 2007-07-03 주식회사 안철수연구소 How to prevent key input theft using keyboard data authentication
KR100861104B1 (en) * 2006-10-16 2008-09-30 킹스정보통신(주) USS keyboard security device and method
KR100846123B1 (en) * 2006-10-24 2008-07-15 주식회사 하우리 A recording medium recording a keyboard security method and a keyboard security driver using the method
KR100901465B1 (en) * 2007-07-25 2009-06-08 주식회사 안철수연구소 I / O packet protection method of the USB device
KR100949790B1 (en) * 2007-09-19 2010-03-30 소프트캠프(주) How to secure the data of unauthorized tampered memory
KR100952644B1 (en) * 2009-04-17 2010-04-13 주식회사 잉카인터넷 Security system and method of keyboard input data
KR101005593B1 (en) * 2009-04-17 2011-01-05 엔에이치엔비즈니스플랫폼 주식회사 Method and apparatus for providing computer security service using hook

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020048313A (en) * 2002-03-07 2002-06-22 최동성 Method for preventing key board hacking
KR20040009575A (en) * 2002-07-24 2004-01-31 주식회사 잉카인터넷 Hacking prevention of key stroke data
KR20040066237A (en) * 2003-01-17 2004-07-27 주식회사 안철수연구소 Method for protecting from keystroke logging
KR20040072044A (en) * 2003-02-07 2004-08-16 킹스정보통신(주) Computer security system using security input device driver
KR20040092101A (en) * 2003-04-24 2004-11-03 테커스 (주) Using Virtual Keystroke Data Transmission for Keystroke Hacking Protect
KR20040094379A (en) * 2003-05-02 2004-11-09 마이크로소프트 코포레이션 Secure communication with a keyboard or related device
KR20050090541A (en) * 2004-03-09 2005-09-14 주식회사 하우리 Method for preventing key input from hacking, computer-readable storage medium recorded with program for preventing key input from hacking

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020048313A (en) * 2002-03-07 2002-06-22 최동성 Method for preventing key board hacking
KR20040009575A (en) * 2002-07-24 2004-01-31 주식회사 잉카인터넷 Hacking prevention of key stroke data
KR20040066237A (en) * 2003-01-17 2004-07-27 주식회사 안철수연구소 Method for protecting from keystroke logging
KR20040072044A (en) * 2003-02-07 2004-08-16 킹스정보통신(주) Computer security system using security input device driver
KR20040092101A (en) * 2003-04-24 2004-11-03 테커스 (주) Using Virtual Keystroke Data Transmission for Keystroke Hacking Protect
KR20040094379A (en) * 2003-05-02 2004-11-09 마이크로소프트 코포레이션 Secure communication with a keyboard or related device
KR20050090541A (en) * 2004-03-09 2005-09-14 주식회사 하우리 Method for preventing key input from hacking, computer-readable storage medium recorded with program for preventing key input from hacking

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101483658B (en) * 2009-01-09 2012-11-28 招商银行股份有限公司 System and method for input content protection of browser
KR20160024162A (en) 2014-08-25 2016-03-04 주식회사 텔스카 Mobile payment system and method using mobile communication terminal

Also Published As

Publication number Publication date
KR20060093932A (en) 2006-08-28

Similar Documents

Publication Publication Date Title
US10515208B2 (en) Isolation and presentation of untrusted data
US9158919B2 (en) Threat level assessment of applications
US8239947B1 (en) Method using kernel mode assistance for the detection and removal of threats which are actively preventing detection and removal from a running system
US8578477B1 (en) Secure computer system integrity check
US7293251B2 (en) Initiating and debugging a process in a high assurance execution environment
JP4159100B2 (en) Method and program for controlling communication by information processing apparatus
US8347380B1 (en) Protecting users from accidentally disclosing personal information in an insecure environment
US7665139B1 (en) Method and apparatus to detect and prevent malicious changes to tokens
US20110239306A1 (en) Data leak protection application
US20150186646A1 (en) System, method, and computer program product for dynamically adjusting a level of security applied to a system
CN104778415B (en) A kind of leakage-preventing system and method for data based on computer behavior
JP2001051742A (en) Method and device for inspecting completeness of executable module and relative protection service provider module
KR20070118074A (en) System and method for foreign code detection
US20070266444A1 (en) Method and System for Securing Data Stored in a Storage Device
KR100710032B1 (en) Method and system for preventing hacking of keyboard input information of Internet Explorer user through secure input filter driver and keyboard security input BH in Windows operating system
KR100985076B1 (en) Usb device security device and method
US10063558B2 (en) Method for blocking unauthorized data access and computing device with feature of blocking unauthorized data access
CN109791588B (en) Mitigating malicious actions associated with graphical user interface elements
US20160112441A1 (en) File security management apparatus and management method for system protection
US12326934B2 (en) Detecting suspicious activation of an application in a computer device
KR100953355B1 (en) How to protect your online e-commerce program
US7103783B1 (en) Method and system for providing data security in a file system monitor with stack positioning
KR20180065535A (en) System and method for detecting kernel rootkit
WO2006059335A1 (en) Method and system for securing data stored in a storage device

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

R17-X000 Change to representative recorded

St.27 status event code: A-3-3-R10-R17-oth-X000

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R11-asn-PN2301

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R17-X000 Change to representative recorded

St.27 status event code: A-5-5-R10-R17-oth-X000

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R11-asn-PN2301

FPAY Annual fee payment

Payment date: 20130325

Year of fee payment: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R14-asn-PN2301

P14-X000 Amendment of ip right document requested

St.27 status event code: A-5-5-P10-P14-nap-X000

P16-X000 Ip right document amended

St.27 status event code: A-5-5-P10-P16-nap-X000

Q16-X000 A copy of ip right certificate issued

St.27 status event code: A-4-4-Q10-Q16-nap-X000

FPAY Annual fee payment

Payment date: 20140407

Year of fee payment: 8

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

FPAY Annual fee payment

Payment date: 20150417

Year of fee payment: 9

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 9

FPAY Annual fee payment

Payment date: 20160411

Year of fee payment: 10

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 10

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 11

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

FPAY Annual fee payment

Payment date: 20180410

Year of fee payment: 12

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 12

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20190417

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20190417