KR20060093932A - Method that can secure keyboard key stroke using secure input filter driver and keyboard secure input bho of internet explorer in windows operating system - Google Patents

Method that can secure keyboard key stroke using secure input filter driver and keyboard secure input bho of internet explorer in windows operating system Download PDF

Info

Publication number
KR20060093932A
KR20060093932A KR1020050015064A KR20050015064A KR20060093932A KR 20060093932 A KR20060093932 A KR 20060093932A KR 1020050015064 A KR1020050015064 A KR 1020050015064A KR 20050015064 A KR20050015064 A KR 20050015064A KR 20060093932 A KR20060093932 A KR 20060093932A
Authority
KR
South Korea
Prior art keywords
keyboard
security
input
hacking
bho
Prior art date
Application number
KR1020050015064A
Other languages
Korean (ko)
Other versions
KR100710032B1 (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

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

Abstract

본 발명은 인터넷 사용자의 키보드 하드웨어(100)와 마이크로소프트 사(社)의 인터넷 익스플로어(400) (이하 IE) 간의키보드 해킹을 방지하는 소프트웨어 기반의 해킹 방지 방법이다.The present invention is a software-based hacking prevention method for preventing keyboard hacking between the keyboard hardware 100 of the Internet user and the Internet Explorer 400 (hereinafter referred to as IE) of Microsoft Corporation.

본 발명은 커널 모드(Ring 0)에 보안 입력 필터 드라이버(200)을 설치함과 동시에 운영체제의 키보드 드라이버(120) 상단과 하단에 설치가 가능한 필터 드라이버와 인터럽트 서비스 루틴(이하 ISR)을 점검하여 사용자의 키보드 입력 정보를 커널 모드에서 해킹으로부터 원천적으로 보호하여 입력을 받고, 입력 받은 키보드 입력 정보를 IE(400) 내부에 설치한 키보드 입력 보안 BHO(300)에게 직접 전송함으로서 사용자 모드(Ring 3)와 커널 모드(Ring 0) 에서 키 스트로크 해킹을 원척적으로 보호할 수 있는 방법이다.The present invention installs the secure input filter driver 200 in the kernel mode (Ring 0) and checks the filter driver and the interrupt service routine (hereinafter referred to as ISR) that can be installed on the top and bottom of the keyboard driver 120 of the operating system. The keyboard input information of the kernel mode is protected from hacking at source and receives the input, and the input keyboard input information is directly transmitted to the keyboard input security BHO 300 installed inside the IE 400, so that the user mode (Ring 3) and In kernel mode (Ring 0), keystroke hacking is inherently protected.

보안 입력 필터 드라이버(200)와 키보드 입력 보안 BHO(300) 간의 데이터 송수신에서도 API 훅(Hook) 감시부(32)와섭 클래싱(Sub Classing) 감시부(330)를 통해 쌍방간의 전송을 감시 보호하는 기능을 포함하고 있다.In the data transmission / reception between the security input filter driver 200 and the keyboard input security BHO 300, the API hook monitoring unit 32 and the subclassing monitoring unit 330 monitor and protect the transmission between the two parties. It includes a function.

기존의 키 스트로크 발명들은 대부분 키보드에서 응용 소프트웨어 전 단계까지 보안을 하거나 또는그 중간의 특정 취약 부분을 보안하는 발명들이 대부분이었다.Most of the existing key stroke inventions have been secured from the keyboard all the way to the application software or in the middle of certain weak points.

인터넷 기술의 발전으로 인하여 이러한 종래의 기술들의 약점을 이용한 새로운 해킹 방법들이 나타나고 있다.Due to the development of Internet technology, new hacking methods using the weaknesses of these conventional technologies are emerging.

키 스트로크 보안을 키보드에서 입력된 정보가 사용자가 원하는 최종 응용 프로그램의 전단계까지가 아닌 입력까지라고 정의한다면 모든 응용 소프트웨어를 대상으로 한 일반적인 기존의 기술들로는 완벽한 보안을 이룬다는 것은 불가능하다.If keystroke security is defined as information entered from the keyboard, rather than up to the final stage of the end application desired by the user, it is not possible to achieve complete security with conventional techniques for all application software.

본 발명은 기존 기술들과 달리 특정 운영체제와 특정 응용 프로그램에 한하여서 키 스트로크를 보안한다.Unlike the existing technologies, the present invention secures a key stroke only for a specific operating system and a specific application.

본 발명은 PS/2 또는 USB 포트를 통해서 입력된 키보드 하드웨어(100) 입력 정보(키 스트로크)를 마이크로소프트 사(社)의 윈도우즈(Windows) 운영체제에서 마이크로소프트 (社)의 인터넷 익스플로러(400)의 IE 텍스트 박스(420)까지 키보드 입력 정보 해킹을 방지하는 것을 목적으로 한다.According to the present invention, keyboard hardware 100 input information (key stroke) input through a PS / 2 or a USB port may be used for the Microsoft Internet Explorer 400 of the Microsoft Windows operating system. It is aimed to prevent keyboard input information hacking up to the IE text box 420.

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

Description

윈도우즈 운영체제에서 보안 입력 필터 드라이버와 인터넷 익스플로러 내부의 키보드 보안 입력 비에이치오를 통한 인터넷 익스플로러 사용자의 키보드 입력 정보 해킹 방지 방법{Method that can secure keyboard key stroke using secure input filter driver and keyboard secure input BHO of Internet Explorer in windows operating system}Secure input filter driver and keyboard inside Internet Explorer How to prevent hackers from hacking keyboard input information through Internet Explorer {Method that can secure keyboard key stroke using secure input filter driver and keyboard secure input BHO of Internet Explorer in windows operating system}

도 1은 윈도우즈 운영체제의 기본 키보드 입력 구조도를 작도하였다.1 illustrates a basic keyboard input structure diagram of a Windows operating system.

도 2는 본 발명에 따른 키보드 입력 구조도 중 보안 프로그램이 작동하지 않았을 경우를 작도하였다.2 illustrates a case in which a security program does not operate in the keyboard input structure diagram according to the present invention.

도 3은 본 발명에 따른 키보드 입력 구조도 중 보안 프로그램이 작동하였을 경우를 작도하였다.3 illustrates a case in which a security program operates among the keyboard input structure diagram according to the present invention.

도 4는 본 발명에 따른 키보드 입력 정보 보안 프로그램의 전체 구성도를 작도하였다.4 is a diagram illustrating the overall configuration of a keyboard input information security program according to the present invention.

도 5는 본 발명에 따른 키보드 입력 보안 BHO(300)의 흐름도를 작도하였다.5 illustrates a flow chart of a keyboard input security BHO 300 in accordance with the present invention.

도 6은 본 발명에 따른 보안 입력 필터 드라이버(200)의 흐름도를 작도하였다.6 illustrates a flow diagram of a secure input filter driver 200 in accordance with the present invention.

도 7은 본 발명에 따른 관리 서버(700)와 키보드 입력 보안 BHO(300) 간의 흐름도를 작도하였다.7 illustrates a flowchart between the management server 700 and the keyboard input security BHO 300 according to the present invention.

도 8은 본 발명에 따른 필터 드라이버 감시부(210)의 흐름도를 작도하였다.8 is a flowchart of the filter driver monitoring unit 210 according to the present invention.

도 9는 본 발명에 따른 인터럽트 서비스 루틴 감시부(230)의 흐름도를 작도하였다.9 illustrates a flowchart of an interrupt service routine monitoring unit 230 according to the present invention.

공개특허 특2001-0099090 "엑티브엑스 기반의 키보드 해킹 방지 입력 창"Korean Patent Application Laid-Open No. 2001-0099090 "ActiveX-based keyboard hacking prevention input window"

공개특허 특2002-0048313 "키보드 해킹 방지 방법"Korean Patent Application Publication No. 2002-0048313 "Keyboard hacking prevention method"

공개특허 10-2004-0092101 "가상 키보드 데이터 전송을 이용한 키보드 해킹 방지 방법"Patent Document 10-2004-0092101 "Keyboard hacking prevention method using a virtual keyboard data transmission"

공개특허 10-2004-0072044 "보안 입력 디바이스를 이용한 컴퓨터 보안 시스템"Publication 10-2004-0072044 "Computer security system using a security input device"

본 발명은 컴퓨터 정보 보안 중에서 사용자의 키보드 입력 정보 해킹을 방지하는 보안 시스템에 관한 것이다.The present invention relates to a security system for preventing hacking of keyboard input information of a user among computer information security.

인터넷 사용이 급속도로 발전함에 따라 일반 사용자들의 금전적인 거래(인터넷 뱅킹, 주식거래 등) 및 주요 개인정보를 담고 있는 수 많은 업무들이 인터넷 상으로 이루어지고 있다.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 a thread to a web browser will get a message that contains a mixture of key values rather than the 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-described security method, there is a patent-pending patent-protected input window based on ActiveX.

이 특허는 키보드 입력 정보를 버퍼링한 후 키보드 포트에 남아있는 키보드 흔적 데이터를 삭제한 후, 버퍼링 된 기존의 키보드 데이터 흐름이 아닌 별도의 전송 구간으로 키보드 데이터를 응용 프로그램으로 전달하는 방식으로 키보드 입력 정보를 보호하는 방법이다. 이 특허 기술로 인하여 앞서 말한 키보드 입력 정보를 가로채는 등의 응용 프로그램과 같은 상위 레벨의입력 데이터는 보호되어질 수가 있다. 그러나 공개특허 10-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 disclosed in Korean Patent Laid-Open Publication No. 10-2004-0072044, the keyboard input information can be intercepted before the secure input keyboard driver used in this technology.

도면 1에서 보면 키보드 드라이버(120)가 있는데 그 상위 또는 하위에 n개의 필터 드라이버를 설치할 수 있다.In FIG. 1, there is a keyboard driver 120, and n filter drivers may be installed above or below it.

즉 키보드 하드웨어(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 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 "가상 키보드 데이터 전송을 이용한 키보드 해킹 방지 방법" 공개특허 10-2004-0072044 "보안 입력 디바이스를 이용한 컴퓨터 보안 시스템" 에서도 찾아볼 수가 있다.This can also be found in Patent Document 10-2004-0092101 "Keyboard hacking prevention method using a virtual keyboard data transmission" Publication 10-2004-0072044 "Computer security system using a secure input device".

공개특허 10-2004-0092101 "가상 키보드 데이터 전송을 이용한 키보드 해킹 방지 방법" 은 앞서 설명한 KT의 보안 프로그램과 그 기본 원리가 동일하다. 차이점은 KT의 것은 사용자 모드(Ring 3)에서 키보드 입력 정보를 받아 암호화를 하였다면 이 기술은 커널 모드(Ring 0) 내의 한 단계에서 암호화를 한다는 점이다. 그러나 결국 동일한 문제점들을 가지고 있다.Patent Document 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.

공개특허 10-2004-0072044 "보안 입력 디바이스를 이용한 컴퓨터 보안 시스템"은 키보드 드라이버(120) 하단에 하단 필터 드라이버를 설치한 후 인터럽트 디스크립터 데이블(IDT)에 등록된 운영체제에서 기본적으로 제공하는 인터럽트 서비스 루틴(ISR)이 아닌 자체적으로 만든 인터럽트 서비스 루틴(ISR)을 등록한다. The "computer security system using a security input device" is an interrupt service routine that is basically provided by an operating system registered in an interrupt descriptor table (IDT) after installing a lower filter driver at the bottom of the keyboard driver 120. Register your own Interrupt Service Routine (ISR) rather than (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.

공개특허 10-2004-0072044는 이것을 따르지 않는 설계로 되어 있으며 이 소프트웨어가 작동을 하게 되면 동일 시스템 내에서 운영체제의 인터럽트 서비스 루틴(ISR)을 필요로 하는 다른 소프트웨어나 자체 인터럽트 서비스 루틴(ISR)의 실행을 필요로 하는다른 소프트웨어들의 작동이 불가능하게 된다. 소프트웨어적인 충돌이 시스템 내에서 일어나게 된다. 자체 인터럽트 서비스 루틴(ISR)을 설치하는 것만으로 그 소프트웨어를 해킹 프로그램이라고 볼 수는 없다.Patent Document 10-2004-0072044 has a design that does not follow this, and when the software is running, the execution of its own interrupt service routine (ISR) or other software that requires an operating system's interrupt service routine (ISR) within 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(400)를 사용하였을 경우에 사용자의 키보드 하드웨어(100)에서 IE 텍스트 박스(420)까지의 키보드 입력 정보를 보호하는 데에 그 목적이 있다.The present invention aims to protect keyboard input information from the user's keyboard hardware 100 to the IE text box 420 when the user's computer operating system is Windows and the browser uses the IE 400. .

사용자의 컴퓨터 내에서 발생되는 불법적인 키보드 입력 정보 해킹을 원천적으로 막고 이를 사용자에게 통보하며또한 사용자의 정상정인 기타 프로그램 실행에는 아무런 영향을 주지 말아야 한다.It is essential to prevent illegal keyboard input information hacking occurring within the user's computer and to notify the user of the hacking and to have no effect on the user's normal execution of other programs.

이를 위해 리스트에만 의존하는 기존 보안 프로그램의 방식이 아닌 프로세싱 자체를 모니터하는 기술과또한 인터럽트 서비스 루틴(ISR) 및 필터 드라이버 리스트를 관리 서버(700)로 전송하고 그 위험도를 통보받는 과정이 필요하다.To this end, a technique for monitoring the processing itself, not a method of an existing security program that relies only on a list, and a process of transmitting an interrupt service routine (ISR) and a filter driver list to the management server 700 and being notified of the risk are required.

IE(400) 전체를 하나의 응용 프로그램(500)으로 인식하여 한 단계로 보고 키보드 입력 정보를 넘기는 방식이 아니라 자체 키보드 입력 보안 BHO(300)를 만들어 IE(400) 내부에 설치하고 그것은 다시 IE 쓰레드 메시지 대기열(410)를 거치지 않고 IE 텍스트 박스(420)에 키보드 입력 정보를 입력해야 한다.Instead of recognizing the entire IE 400 as an application 500 and passing the keyboard input information in one step, it creates its own keyboard input security BHO 300 and installs it inside the IE 400, which in turn is an IE thread. Keyboard input information must be entered into the IE text box 420 without going through the message queue 410.

또한 커널 모드(Ring 0)에 설치한 보안 입력 필터 드라이버(200)와 키보드 입력 보안 BHO(300)는 서로 직접 통신해야만 한다. In addition, the secure input filter driver 200 installed in the kernel mode (Ring 0) and the keyboard input security BHO 300 must communicate with each other directly.

본 발명의 구성은 커널 모드(Ring 0)에 설치되는 보안 입력 필터 드라이버(200)와 사용자 모드(Ring 3)의 IE(400) 내에 설치되는 키보드 입력 보안 BHO(300), 그리고 관리 서버(700)로 구성되어져 있다.The configuration of the present invention is the security input filter driver 200 installed in the kernel mode (Ring 0) and the keyboard input security BHO 300 installed in the IE 400 of the user mode (Ring 3), and the management server 700 It consists of.

도 1은 윈도우즈의 기본 키보드 입력 구조도이다.1 is a basic keyboard input structure diagram of Windows.

도 2에는 본 발명에 따른 키보드 입력 구조도인데 본 발명의 목적에 따라 도 1의 응용 프로그램(500)의 자리에는 IE(400)가 있으며 IE(400)는 다시 키보드 입력 보안 BHO(300)와 IE 쓰레드 메시지 대기열(410), IE 텍스트 상자(420)으로 구성되어져 있다. 키보드 드라이버(120) 하단과 상단에 n개의 필터 드라이버를 설치할 수가 있는데 본 발명에서는 그 상단에 보안 입력 필터 드라이버(200)를 설치한다.2 is a keyboard input structure diagram according to the present invention, in accordance with the purpose of the present invention, the application 500 of FIG. 1 has an IE 400 and the IE 400 is again a keyboard input security BHO 300 and IE thread Message queue 410, IE text box 420 is composed of. 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.

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

도 3은 도 2의 키보드 입력 구조도에서 본 발명으로 인한 보안 프로그램이 작동되었을 경우 키보드 입력 정보의 흐름을 나타낸다. 키보드 하드웨어(100)에서 키보드 입력 정보가 시작되어 운영체제의 키보드 드라이버(120)를 거쳐 보안 입력 필터 드라이버(200)까지 도착하면 보안 입력 필터 드라이버(200)는 상위에 존재하는 필터 드라이버나 운영체제의 키보드 클래스 드라이버(140) 등의 상위에 존재하 는 단계들을 거치지 않고 IE(400) 내의 키보드 보안 입력 BHO(300)으로 직접 키보드 입력 정보를 보낸다. 키보드 보안 입력 BHO(300)은 IE 쓰레드 메시지 대기열(410)을 거치지 않고 직접 IE 텍스트 상자(420)에 키보드 입력 정보를 입력한다.3 illustrates the flow of keyboard input information when the security program according to the present invention operates in the keyboard input structure diagram of FIG. 2. When the keyboard input information starts from the keyboard hardware 100 and arrives through the keyboard driver 120 of the operating system to the secure input filter driver 200, the secure input filter driver 200 is a filter driver or a keyboard class of the operating system. The keyboard input information is directly sent to the keyboard security input BHO 300 in the IE 400 without going through the steps existing above the driver 140. Keyboard security input BHO 300 enters keyboard input information directly into IE text box 420 without going through IE thread message queue 410.

도 3에서 직접적으로 키보드 입력 정보가 전달되어지는 단계들만을 자세하게 설명한 것이 도 4이다.In FIG. 3, only steps in which keyboard input information is directly transmitted are described in detail with reference to FIG. 4.

도 4에는 키보드 입력 보안 BHO(300) 내부의 구성과 보안 입력 필터 드라이버(200) 내부의 구성이 나타나있으며 관리 서버(700)도 나타나있다.4 shows a configuration inside the keyboard input security BHO 300 and a configuration inside the security input filter driver 200, and also shows a management server 700.

본 발명은 사용자가 키보드 하드웨어(100)를 통해 입력을 시작 할 때 작동하는 것이 아니라 그 전 단계에서 사용자가 입력을 하기 위해 마우스를 IE 텍스트 상자(420)에 놓고 클릭을 하거나 또는 자동으로 그곳에 커서가 있는 경우, 즉 'got focus' 이벤트가 발생함과 동시에 보안 프로그램은 작동을 하게 된다.The present invention does not work when the user starts typing through the keyboard hardware 100, but in the previous step, the user places the mouse in the IE text box 420 and clicks or enters the cursor there automatically for input. If present, that is, a 'got focus' event occurs and the security program is running.

도 5는 키보드 입력 보안 BHO(300)의 흐름도인다.5 is a flowchart of a keyboard input security BHO 300.

키보드 입력 보안 BHO(300)의 관리부(310)는 IE 텍스트 상자(420)에 포커스(Focus)가 있는가를 점검한다. 윈도우즈 운영체제는 멀티태스킹을 지원하는 운영체제로서 동시에 여러 개의 윈도우 즉 응용 프로그램(500)을 열어서 작업을 할 수가 있다. 하나의 키보드 하드웨어(100)를 통해서 여러 개의 응용 프로그램(500)에 데이터를 입력하는 방법을 쉽게 설명을 할 수 있는 것이 포커스이다. 즉 운영체제에 의해서 포커스가 있는 응용 프로그램(500)으로 키보드 입력 정보가 전달되어지게 된다. 사용자가 다른 응용 프로그램을 사용하다가(500)가 IE(400)을 열거나 또는 이미 열려져있었던 것을 선택하게 되면 IE(400)가 포커스를 받게 된다고 말할 수 있다. 좀 더 세부적으로 예를 들면 이메일을 확인하기 위해서 아이디 입력란에 마우스를 클릭을 하면 IE(400) 중에서도 해당되는 IE 텍스트 박스(420) 즉 이 경우에는 아이디 입력란이 포커스를 가지게 된다. 이 경우 본 발명에 의한 보안 프로그램이 작동을 하게 된다.The management unit 310 of the keyboard input security BHO 300 checks whether there is a focus in the IE text box 420. 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.

도 5에서 관리부가 IE 텍스트 상자(420)에 포커스를 확인하고 포커스가 없으면 보안 입력 필터 드라이버(200)는 In FIG. 5, if the management unit checks the focus on the IE text box 420 and there is no focus, the security input filter driver 200

보안 작동을 하지 않게 된다. 반대로 포커스를 가지게 보안 입력 필터 드라이버(200)가 작동을 하게 된다.(201) 키보드 입력 보안 BHO(300)는 마이크로소프트 사(社)로부터 공급되어진 DeviceIoControl API를 통해서 보안 입력 필터 드라이버(200)와 대화를 하게 된다. 그런데 이 단계에서 해커는 중간의 데이터를 모니터하기 위해서 API 훅(Hook)을 할 수 있다. 이것을 방지하기 위해서 관리부(310)는 API 훅 감시부(320)를 작동시킨다.It will not work securely. In contrast, the security input filter driver 200 operates with focus. (201) The keyboard input security BHO 300 communicates with the security input filter driver 200 through the DeviceIoControl API supplied from Microsoft Corporation. Will be At this stage, however, hackers can make API hooks to monitor intermediate data. In order to prevent this, the management unit 310 operates the API hook monitoring unit 320.

DeviceIoControl API는 kernel32.dll 에서 추출 되어진 것이므로 먼저 DeviceIoControl API 어드레스를 얻고 (321) 그것이 kernel32.dll 어드레스 공간의 일부인지를 점검한다.(322) 공간이 아니면 관리 서버(700)에 통보 후(312) 관리 서버(700)로 부터 결과를 수신하여 결과에 따른 동작을 한다.(313) 이 동작은 도 7에서 설명을 할 것이다.Since the DeviceIoControl API is extracted from kernel32.dll, we first obtain the DeviceIoControl API address (321) and check if it is part of the kernel32.dll address space (322). If not, notify the management server 700 (312) and then manage it. The result is received from the server 700 and the operation is performed according to the result. (313) This operation will be described with reference to FIG.

DeviceIoControl API 어드레스가 kernel32.dll 어드레스 공간의 일부이면 다시 kernel32.dll의 추출부분이 변경되었는지 확인하여 변경되었으면 다시 관리서버(700)에 통보한다.(312) 반대로 변경되지 않았으면 DeviceIoControl API를 호출하여 (324) 보안 입력 필터 드라이버(200)에 키보드 입력 정보를 보호 할 것을 통보한다.(314) 통보를 받게 되면 보안 입력 필터 드라이버(200)가 작동을 하게 된다.(201) 이 작동에 대한 흐름도가 도 6이다. If the DeviceIoControl API address is part of the kernel32.dll address space, it checks again whether the extracted part of kernel32.dll has changed and notifies the management server 700 if it has changed. (312) If the change has not been made, call DeviceIoControl API ( 324 Informs the security input filter driver 200 to protect the keyboard input information. (314) When the notification is received, the security input filter driver 200 operates. (201) A flowchart of this operation is shown. 6.

보안 입력 필터 드라이버(200)는 키보드 드라이버(120)로부터 계속적으로 키보드 입력 값을 받게 된다. 이 때 키보드 입력 보안 BHO(300)로부터 보안 통보를 받았는지를 점검하여 받지 않았으면 상위 드라이버로 입력 값을 넘기고(205)The secure input filter driver 200 continuously receives a keyboard input value from the keyboard driver 120. At this time, if the keyboard input security BHO (300) checks whether or not received a security notification, and passes the input value to the upper driver (205)

통보를 받으면(314) 키보드 입력 값을 키보드 입력 보안 BHO(200)로 전송을 한다. 전송을 받은 키보드 입력 보안 BHO(300)는 IE 텍스트 상자(420)의 윈도우 프로시저(Window Procedure)를 호출해야 하는데 그 전에 섭 클래싱 감시부(330)를 작동시킨다. 섭 클래싱 감시부(330)의 동작은 먼저 IE 텍스트 상자(420)의 주소를 가져와 (332) 가져온 주소가 IE 메인실행주소 공간(IE main executable address space)의 일부인가를 점검하여(333) 일부가 아니면 관리서버(700)에 통보하고(312) 일부라면 IE 텍스트 상자(420)의 윈도우 프로시저를 호출하여 키보드 입력 값을 넘긴다.(334) 계속해서 IE 텍스트 상자(420)에 포커스가 있는지 확인하여 포커스가 없어지면 보안 입력 필터 드라이버(200)로 보안 해제 통보를 하여서(208) 보안 작동을 하지 않게 한다.(202) Upon receiving notification 314, the keyboard input value is transmitted to the keyboard input security BHO 200. The keyboard input security BHO 300 that receives the transmission should call the window procedure of the IE text box 420, before operating the subclassing monitoring unit 330. The operation of the subclassing monitoring unit 330 first obtains the address of the IE text box 420 and checks whether the imported address is part of the IE main executable address space (332). If not, the management server 700 is notified (312), and if it is part of the call, the window procedure of the IE text box 420 is passed to the keyboard input value. (334) The IE text box 420 is checked for focus. If the focus is lost, the security input filter driver 200 notifies the security release (208) to disable the security operation.

보안 해제 통보를 받은 보안 입력 필터 드라이버(200)는 도 6에서 설명한 것 과 같이 키보드 입력 값을 상위 드라이버로 전송하게 된다.(205)The security input filter driver 200 having received the security release notification transmits the keyboard input value to the upper driver as described in FIG. 6.

계속 하여서 IE 텍스트 상자(420)에 포커스가 있으면 계속해서 보안 입력 필터 드라이버(200)로부터 키보드 입력 값을 받아(331) 동일한 동작을 포커스가 없어질 때까지 반복을 한다.Subsequently, if the IE text box 420 has focus, the keyboard input value is continuously received from the security input filter driver 200 (331), and the same operation is repeated until the focus is lost.

도 7은 관리서버(700)와 키보드 입력 보안 BHO(300) 간의 흐름도이다. 이 둘은 인터넷(600)을 통해서 대화한다. 관리서버(700)는 키보드 입력 보안 BHO(300)로 부터 API 훅, 섭 클래싱, 자체 ISR을 사용하는 하단 필터 드라이버 등의 사용자 컴퓨터 내에서 일어나는 모든 종류의 해킹 시도에 대한 정보를 받는다. (701)7 is a flowchart between the management server 700 and the keyboard input security BHO 300. The two communicate over the Internet 600. The management server 700 receives information about all kinds of hacking attempts occurring within the user's computer, such as API hooks, subclassing, and a 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.

보안 입력 필터 드라이버(200)는 필터 드라이버 감시부(210)와 인터럽트 서비스 루틴(ISR) 감시부(230)가 있다.The secure input filter driver 200 includes a filter driver monitor 210 and an interrupt service routine (ISR) monitor 230.

도 8은 필터 드라이버 감시부(210)의 흐름도이다.8 is a flowchart of the filter driver monitor 210.

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

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

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

키보드 드라이버(120)에서 공급하는 인터럽트 서비스 루틴(ISR)이 아닌 자체 인터럽트 서비스 루틴(ISR)을 사용하여 해킹을 할 수가 있다. 해커는 자체 인터럽트 서비스 루틴(ISR)을 만들고 그것을 인터럽트 디스크립터 테이블(IDT)에 등록을 할 수가 있다. 이때 정상적인 프로그램이라면 원하는 동작을 마친 후 운영체제에서 공급하는 인터럽트 서비스 루틴(ISR)을 다시 인터럽트 디스크립터 테이블(IDT)에 등록을 시켜야 하지만 해커에 의해 만들어진 인터럽트 서비스 루틴(ISR)은 키보드 입력 정보를 가져가는 것이 목적이므로 계속 자신의 인터럽트 서비스 루틴(ISR)을 유지하게 된다.Hacking may be performed using an interrupt service routine (ISR) instead of an interrupt service routine (ISR) provided 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 to the interrupt descriptor table (IDT) again after completing the desired operation. However, the interrupt service routine (ISR) created by the hacker should take the keyboard input information. 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) 감시부(230)의 흐름도이다.9 is a flowchart of an interrupt service routine (ISR) monitoring unit 230.

먼저 인터럽트 디스크립터 데이블(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.

베이스 어드레스를 가져온 이후에(232) 키보드 드라이버(120)의 파일 크기 값을 가져온다.(233) 그 후에 인터럽트 디스크립터 테이블(IDT)에서 가져온 키보드 인터럽트 서비스 루틴(ISR)의 주소가 키보드 드라이버(120)의 베이스 어드레스보다 크며 동시에 키보드 드라이버(120)의 베이스 어드레스에 키보드 드라이버(120)의 파일 크기 값을 더한 합계보다 작은가를 점검한다.(234)After obtaining the base address (232), the file size value of the keyboard driver 120 is obtained. (233) Then, the address of the keyboard interrupt service routine (ISR) obtained from the interrupt descriptor table (IDT) is obtained from the keyboard driver 120. It is checked whether the base address is larger than the base address and at the same time, the base address of the keyboard driver 120 is smaller than the sum of the file size values 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에서 설명한 것과 같은 동작을 실행한다. 점검 결과가 예 로 나오면 본 발명에 의한 키보드 보안 프로그램은 정상 작동을 한다.(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. If the check result is an example, the keyboard security program according to the present invention operates normally. (235)

본 발명의 보안 프로그램은 커널 모드(Ring 0)와 사용자 모드(Ring 3)에서 발생할 수 있는 해킹의 가능성을 리스트에 의존하는 방식이 아닌 동작 자체를 점검 하는 시스템을 포함하고 있어서 기존의 해킹 기술과 또한 응용 기술에 대한 보안성이 매우 높다. 이와 같은 점은 인터넷 환경이 급속도로 발전하고 그 이용 범위가 단순한 작업에서부터 금전적인 거래에 이르기까지 다양해지고 있는 현시점에 매우 중요한 역할을 하게 된다. 보안성을 높이게 되면 사용자들은 더욱 인터넷으로 하는 일련의 작업들을 사용하게 될 것이며 궁극적으로 인터넷 환경 발전을 이룰 수 있다.The security program of the present invention includes a system for checking the operation itself rather than a list-dependent method of hacking that may occur in kernel mode (Ring 0) and user mode (Ring 3). Security of application technology is very high. 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 (3)

API 훅 감시부(320), 섭 클래싱 감시부(330), 로드오더 변환기(340), 디스플레이부(35), 보안 입력 필터 드라이버(200)와 관리서버(700)을 관리하는 관리부(310)를 포함하면서 보안 입력 필터 드라이버와 직접 송수신하는 키보드 입력 보안 BHO(300)API hook monitoring unit 320, subclassing monitoring unit 330, load order converter 340, display unit 35, the management unit 310 for managing the security input filter driver 200 and the management server 700 Keyboard input security BHO (300), which directly transmits and receives with a secure input filter driver, including 필터 드라이버 감시부(210), 인터럽트 서비스 루틴(ISR) 감시부(230)를 포함하고 있으며 키보드 입력 보안 BHO(300)와 직접 송수신하는 보안 입력 필터 드라이버(200)Secure input filter driver 200 that includes a filter driver monitoring unit 210, interrupt service routine (ISR) monitoring unit 230 and directly transmits and receives with the keyboard input security BHO (300) 키보드 입력 보안 BHO(300)의 관리부(310)로 부터 받은 해킹으로 의심되는 일련의 정보를 수신, 판단, 결과 전송, 데이터 베이스 자동 갱신을 하는 관리서버(700)The management server 700 receives, judges, transmits a result, and automatically updates a database of a series of suspected hacking information received from the management unit 310 of the keyboard input security BHO 300.
KR1020050015064A 2005-02-23 2005-02-23 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 KR100710032B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050015064A KR100710032B1 (en) 2005-02-23 2005-02-23 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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050015064A KR100710032B1 (en) 2005-02-23 2005-02-23 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

Publications (2)

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

Family

ID=37601900

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050015064A KR100710032B1 (en) 2005-02-23 2005-02-23 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

Country Status (1)

Country Link
KR (1) KR100710032B1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100734145B1 (en) * 2005-10-12 2007-07-03 주식회사 안철수연구소 Method of protecting hacking of a key input by using authorization of keyboard data
WO2008048035A1 (en) * 2006-10-16 2008-04-24 Kings Information & Network Apparatus and method for preservation of usb keyboard
KR100846123B1 (en) * 2006-10-24 2008-07-15 주식회사 하우리 Method for keyboard security and storage medium recording keyboard security driver using the method
KR100901465B1 (en) * 2007-07-25 2009-06-08 주식회사 안철수연구소 Method of protecting input/output packet of usb device
KR100949790B1 (en) * 2007-09-19 2010-03-30 소프트캠프(주) Preservation method about data in IE memory altered without leave
KR100952644B1 (en) * 2009-04-17 2010-04-13 주식회사 잉카인터넷 Security system and method of keyboard input data
WO2010120157A2 (en) * 2009-04-17 2010-10-21 엔에이치엔비즈니스플랫폼(주) Method for providing computer security services using a hook, and apparatus and computer readable recording medium for same

Families Citing this family (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
KR101602640B1 (en) 2014-08-25 2016-03-21 주식회사 텔스카 Mobile payment system and method using mobile communication terminal

Family Cites Families (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
KR100447777B1 (en) * 2002-07-24 2004-09-08 주식회사 잉카인터넷 Hacking prevention of key stroke data
KR100496462B1 (en) * 2003-01-17 2005-06-22 주식회사 안철수연구소 Method for protecting from keystroke logging
KR20030036276A (en) * 2003-02-07 2003-05-09 킹스정보통신(주) Computer Security System using secure input device driver
KR100735727B1 (en) * 2003-04-24 2007-07-06 테커스 (주) Apparatus and method for hacking protection using virtural data transmission
US7243237B2 (en) * 2003-05-02 2007-07-10 Microsoft Corporation Secure communication with a keyboard or related device
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

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100734145B1 (en) * 2005-10-12 2007-07-03 주식회사 안철수연구소 Method of protecting hacking of a key input by using authorization of keyboard data
WO2008048035A1 (en) * 2006-10-16 2008-04-24 Kings Information & Network Apparatus and method for preservation of usb keyboard
KR100846123B1 (en) * 2006-10-24 2008-07-15 주식회사 하우리 Method for keyboard security and storage medium recording keyboard security driver using the method
KR100901465B1 (en) * 2007-07-25 2009-06-08 주식회사 안철수연구소 Method of protecting input/output packet of usb device
KR100949790B1 (en) * 2007-09-19 2010-03-30 소프트캠프(주) Preservation method about data in IE memory altered without leave
KR100952644B1 (en) * 2009-04-17 2010-04-13 주식회사 잉카인터넷 Security system and method of keyboard input data
WO2010120157A2 (en) * 2009-04-17 2010-10-21 엔에이치엔비즈니스플랫폼(주) Method for providing computer security services using a hook, and apparatus and computer readable recording medium for same
WO2010120055A2 (en) * 2009-04-17 2010-10-21 (주)잉카인터넷 System and method for the security of keyboard input data
WO2010120055A3 (en) * 2009-04-17 2010-12-23 (주)잉카인터넷 System and method for the security of keyboard input data
WO2010120157A3 (en) * 2009-04-17 2011-01-20 엔에이치엔비즈니스플랫폼(주) Method for providing computer security services using a hook, and apparatus and computer readable recording medium for same

Also Published As

Publication number Publication date
KR100710032B1 (en) 2007-04-25

Similar Documents

Publication Publication Date Title
KR100710032B1 (en) 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
US7665139B1 (en) Method and apparatus to detect and prevent malicious changes to tokens
US20180196940A1 (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
US9607093B2 (en) Method and system for operating multiple web pages with anti-spoofing protection
US8001596B2 (en) Software protection injection at load time
US7379918B2 (en) Method and system for single reactivation of software product licenses
US8621608B2 (en) System, method, and computer program product for dynamically adjusting a level of security applied to a system
US20160323314A1 (en) Apparatus, system, and method for protecting against keylogging malware
US8578477B1 (en) Secure computer system integrity check
US8347380B1 (en) Protecting users from accidentally disclosing personal information in an insecure environment
US20110239306A1 (en) Data leak protection application
US8214900B1 (en) Method and apparatus for monitoring a computer to detect operating system process manipulation
US20070266444A1 (en) Method and System for Securing Data Stored in a Storage Device
KR102116573B1 (en) Dynamic reputation indicators for optimizing computer security operations
JP2007280013A (en) Method and program for controlling communication by information processor
US20130198842A1 (en) Method for detecting a malware
Pavlenko et al. Hierarchical approach to analyzing security breaches in information systems
JP2009517732A (en) Method and system for security of input data using USB keyboard
EP3482335B1 (en) Mitigation of malicious actions associated with graphical user interface elements
KR100985076B1 (en) Apparatus and method for protecting data in usb devices
US20220198013A1 (en) Detecting suspicious activation of an application in a computer device
KR100496462B1 (en) Method for protecting from keystroke logging
CN112805700A (en) Controlling installation of unauthorized drivers on a computer system

Legal Events

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

Payment date: 20130325

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140407

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150417

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160411

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180410

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee