KR100847248B1 - 키입력 정보 해킹방지방법 - Google Patents

키입력 정보 해킹방지방법 Download PDF

Info

Publication number
KR100847248B1
KR100847248B1 KR1020070019637A KR20070019637A KR100847248B1 KR 100847248 B1 KR100847248 B1 KR 100847248B1 KR 1020070019637 A KR1020070019637 A KR 1020070019637A KR 20070019637 A KR20070019637 A KR 20070019637A KR 100847248 B1 KR100847248 B1 KR 100847248B1
Authority
KR
South Korea
Prior art keywords
function
event
key input
virtual function
function table
Prior art date
Application number
KR1020070019637A
Other languages
English (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 KR1020070019637A priority Critical patent/KR100847248B1/ko
Priority to PCT/KR2008/001006 priority patent/WO2008105596A1/en
Application granted granted Critical
Publication of KR100847248B1 publication Critical patent/KR100847248B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general

Abstract

본 발명은 키입력 정보 해킹방지방법에 관한 것으로, 상기한 본 발명은 BHO(Browser Helper Object) 키로거가 설치한 이벤트 싱크의 버츄얼 펑션 테이블 포인터에, 원래 버츄얼 펑션 테이블에 기록된 펑션들 중 키 입력 이벤트를 처리하는 인보크 함수 항목에 미리 정해둔 함수, 예를 들어 에러 리턴 펑션 등을 기입한 새로운 버츄얼 펑션 테이블의 주소를 기록함으로써, 키입력 정보의 유출을 원천적으로 차단할 수 있는 이점이 있다.
해킹, 이벤트 싱크, 버츄얼 펑션 테이블

Description

키입력 정보 해킹방지방법{METHOD OF PREVENTING INPUT KEYSTROKE DATA FROM HACKING}
도 1은 일반적인 이벤트 싱크 및 버츄얼 펑션 테이블의 구조를 도시한 도면.
도 2는 본 발명이 적용가능한 사용자 컴퓨터의 개략적인 구성도.
도 3은 본 발명의 바람직한 실시예에 따른 키입력 정보 해킹방지방법의 흐름도.
도 4는 본 발명의 바람직한 실시예에 따라 이벤트 싱크의 버츄얼 펑션 테이블의 구조를 도시한 도면.
본 발명은 해킹방지방법에 관한 것으로, 더욱 상세하게는 해킹 툴로부터 키입력 정보를 보호하기 위한 키입력 정보 해킹방지 방법에 관한 것이다.
최근 컴퓨터 하드웨어와 네트워크 기반 기술의 발달로 인해 유무선 인터넷을 통한 개인과 단체/업체 사이의 각종 정보교환 및 정보공유가 활발히 이루어지고 있다.
이와 더불어 웹 브라우저(Web Browser)의 활용도는 단순한 정보검색에 머물 지 않고, 온라인 쇼핑몰, 온라인 주식거래 및 인터넷 뱅킹을 포함하는 신용기반의 각종 서비스 영역까지 확장되고 있는 추세이다.
그러나 상기한 바와 같은 기술 발달의 이면에는, 개인과 단체간에 유동되는 신용정보를 비롯한 개인정보를 유출하여 이를 통해 소정 형태의 이익을 얻고자 하는 악의적인 해커(hacker)들이 급증하고 있다. 상기 해커(hacker)들에 의한 각종 불법적인 행위들은 당사자 개인의 피해에만 국한되는 것이 아니라 신용 기반의 현대 사회의 근간을 혼란시키는 심각한 문제를 야기한다.
일반적으로 상기 해커들은 개인정보 유출이라는 악의적인 목적 달성을 위해 여러가지 해킹 툴을 이용한다. 그 중 사용자 컴퓨터의 키보드 눌림 신호를 가로채는 키 로거(key logger) 프로그램이 보편적으로 이용되고 있다.
상기한 키 로거 프로그램으로부터 개인정보를 보호하기 위한 기술로는 대한민국 특허청에 특허출원된 제10-0496462호가 있다. 상기 특허출원된 기술은 소정의 개인정보를 사용자의 컴퓨터 화면에 디스플레이된 가상 키보드를 마우스를 통해 클릭하여 입력하는 방식을 개시한다.
상기한 종래 기술은 화면상에 표시한 가상 키보드를 통해 사용자 정보를 입력받도록 하는 것이나, 이 역시 마우스의 포인팅 좌표정보 등을 통해 상기 사용자 정보가 유출될 수 있는 문제가 있었다.
이에 종래에는 사용자 컴퓨터에 기록되는 키입력 정보의 유출을 원천적으로 차단할 수 있는 기술의 개발이 절실히 요망되었다.
본 발명의 상기한 종래 기술의 문제를 해소하기 위한 것으로, BHO(Browser Helper Object) 키 로거가 설치한 이벤트 싱크에 대응되는 버츄얼 펑션 테이블에 기록된 함수들 중, 키입력 이벤트를 처리하는 인보크 함수에 미리 정해둔 함수, 예를 들어 에러 리턴 함수 등을 기입함으로써, 이벤트 정보를 가로채는 키입력 정보 후킹을 차단할 수 있는 키입력 정보 해킹방지 방법을 제공하는 것을 그 목적으로 한다.
상기의 목적을 이루고 종래기술의 문제점을 해결하기 위한 본 발명에 따르는 키입력 정보 해킹방지방법은, 웹 브라우저에 구비된 하나 이상의 객체에 연결된 하나 이상의 이벤트 싱크 각각에 대해 버츄얼 펑션 테이블을 복제하는 제1단계; 상기 복제된 버츄얼 펑션 테이블에 등록된 함수 중 키입력 이벤트를 처리하는 제1함수를 검출하고, 그 검출된 함수를 미리 정해둔 제2함수로 대치하는 제2단계; 상기 복제된 버츄얼 펑션 테이블의 주소를 상기 이벤트 싱크의 버츄얼 펑션 테이블 포인터에 기입하는 제3단계를 포함하는 것을 특징으로 한다.
일반적으로 인터넷 익스플로러에서 HTML(HyperText Markup Language)의 처리를 담당하는 마이크로소프트사의 MSHTML 라이브러리는 모든 HTML 태그들을 COM(Component Object Model) 객체로 표현한다.
이벤트를 지원하는 서버 객체에 이벤트를 나타내는 아웃고잉 인터페이스(outgoing interface)를 구현한 클라이언트 객체를 연결하면, 상기 서버 객체의 이벤트 발생시 연결된 클라이언트 객체의 인보크(Invoke) 메소드를 호출하여 해당 이벤트에 따른 처리를 이행한다. 이렇게 이벤트를 처리하는 클라이언트 객체를 이벤트 싱크(event sink)라고 하고, 이벤트 싱크와의 연결을 지원하는 서버 객체를 커넥터블 객체(connectable object)라 한다.
예를 들어, 버튼 객체가 IButton이라는 인커밍 인터페이스(incoming interface)를 구현하고, 클라이언트 객체가 DButtonSink라는 아웃고잉 인터페이스(outgoing interface)를 구현하고, 상기 DButtonSink에 OnClick이라는 메소드가 구비된다고 가정한다.
이러한 상태에서 상기 버튼 객체가 클릭되면, 상기 버튼 객체는 연결되어 있는 이벤트 싱크(Event Sink)를 찾고, 상기 이벤트 싱크에 연결된 상기 DButtonSink를 찾아 인보크(Invoke) 메소드를 호출한다. 상기 DButtonSink의 인보크(Invoke) 메소드는 이벤트에 해당하는 OnClick 메소드를 호출하여 실행한다.
상기 커넥터블 객체는 IConnectionPointContainer, IConnectionPoint, IEnumConnectionPoints, IEnumConnections의 4개 인터페이스를 구현해야 한다.
상기 IConnectionPointContainer는 해당 객체가 커넥터블 객체임을 나타냄과 아울러 아웃고잉 인터페이스들의 목록을 제공한다. 상기 IConnectionPoint는 객체가 지원하는 하나의 아웃고잉 인터페이스를 나타내며, 어드바이스(Advise) 함수를 사용하여 이벤트 싱크(event sink)를 서버 객체에 연결한다. 상기 IEnumConnectionPoints는 서버 객체가 지원하는 모든 아웃고잉 인터페이스의 목록을 나타낸다. 상기 IEnumConnections는 한 IConnectionPoint에 연결된 모든 이벤트 싱크(event sink)의 목록을 나타낸다.
일반적으로 BHO(Browser Helper Object) 키로거 프로그램은 키입력 이벤트를 처리하는 이벤트 싱크를 생성하고, 이를 IHTMLInputTextElement 등의 텍스트 입력 객체에 연결하여 키입력 정보를 후킹한다.
도 1을 참조하여 좀더 설명하면, 상기 텍스트 입력창에 연결된 IConnectionPoint에 이벤트 싱크로서 키로거 프로그램이 등록된다. 상기 이벤트 싱크에는 멤버 함수들의 주소가 저장되어 있는 버츄얼 펑션 테이블(vtable;virtual function table)을 구비한다.
상기 키로거 프로그램은 텍스트 입력 창 객체에서 이벤트가 발생할 경우에 호출되는 인보크(Invoke) 메소드를 통해 이벤트 ID와 인자를 전달받고, 상기 이벤트 ID가 키입력 이벤트(OnKeypress event)일 경우에 인자로서 전달되는 IHTMLEventObj의 keyCode 값을 통해 키입력 정보를 획득한다. 상기 예에서는 텍스트 입력 창의 키입력 이벤트만을 예시하였으나, 키로깅에는 다양한 이벤트가 사용될 수 있다.
이에 따라 본 발명은 이벤트 싱크의 버츄얼 펑션 테이블 포인터에, 원래 버츄얼 펑션 테이블에 구비된 인보크 함수 항목을 미리 정해둔 함수 에러 리턴 함수로 대치시킨 새로운 버츄얼 펑션 테이블의 주소를 기록하여 그 함수를 사용하게 함으로써, BHO 키로거 프로그램에 의한 키입력 정보의 후킹을 차단한다.
이러한 본 발명이 적용 가능한 사용자 단말기의 개략적인 구성을 도 2를 참조하여 설명한다.
상기 사용자 단말기는 제어부(100) 및 메모리부(102)를 구비한다.
상기 제어부(100)는 본 발명의 바람직한 실시예에 따라 웹 브라우저에 구비된 하나 이상의 객체에 연결된 하나 이상의 이벤트 싱크 중 키보드 보안 콘트롤이 설치한 것이 아닌 이벤트 싱크의 버츄얼 펑션 테이블을 복제하고, 상기 버츄얼 펑션 테이블 내의 인보크 함수를 미리 정해둔 함수, 예를 들어 에러 리턴 함수로 대치한다. 이로서, 상기 인보크 함수의 처리결과에 따른 인자들, 즉 키입력 정보가 유출되지 않게 한다. 여기서, 상기 에러 리턴 함수는 DISP_E_MEMBERNOTFOUND 에러를 리턴하는 함수로서, 이 에러는 클래스에 이벤트에 해당하는 멤버가 없을 때 인보크 함수에서 정상적으로 리턴하는 예측 가능한 에러이다.
상기 메모리부(102)는 상기 제어부(100)의 처리 프로그램을 포함하는 다양한 정보를 저장하며, 특히 상기 사용자 단말기에 구비된 다수의 이벤트 싱크 및 각 이벤트 싱크에 대응되는 버츄얼 펑션 테이블(vtable)이 저장된다. 여기서, 상기 각 이벤트 싱크에는 자신의 버츄얼 펑션 테이블의 주소를 기입하는 저장영역(vfptr; virtual function table pointer)을 구비한다.
이제 본 발명의 바람직한 실시예에 따른 키입력 정보 해킹방지 방법을 도 3의 흐름도를 참조하여 상세히 설명한다.
상기 제어부(100)는 커넥터블 객체의 IConnectionPointContainer로부터 연결을 해제하고자 하는 아웃고잉 인터페이스에 해당되는 IConnectionPoint를 얻고, 이 인터페이스로부터 현재 연결되어 있는 이벤트 싱크의 목록을 표현하는 IEnumConnections를 얻어 현재 웹 브라우저에 구비된 하나 이상의 객체에 연결된 하나 이상의 이벤트 싱크의 목록을 획득한다(200단계).
상기 이벤트 싱크들의 목록이 획득되면, 상기 제어부(100)는 상기 이벤트 싱크들 중 어느 한 이벤트 싱크를 선택한다(202단계).
상기 제어부(100)는 상기 선택된 이벤트 싱크가 키보드 보안 컨트롤이 설치한 이벤트 싱크인지를 체크한다(204단계). 여기서, 상기 키보드 보안 컨트롤이 설치한 이벤트 싱크는 보안용으로 설치되었음을 알릴 수 있는 인터페이스를 구현하고 있으므로, 상기 인터페이스의 메소드가 적절한 응답을 보낼 경우 보안용으로 간주한다.
만일, 상기 이벤트 싱크가 키보드 보안 컨트롤이 연결된 이벤트 싱크가 아니면, 상기 제어부(100)는 도 4에 도시한 바와 같이 해당 이벤트 싱크의 버츄얼 펑션 테이블을 복제하여 새로운 버츄얼 펑션 테이블(New vtable)을 생성하고(206단계), 상기 복제된 버츄얼 펑션 테이블(New vtable)의 인보크 함수에 미리 정해둔 함수, 예를 들어 에러 리턴 함수를 기입한다(208단계). 이후, 상기 제어부(100)는 상기 복제된 버츄얼 펑션 테이블(New Vtable)의 주소를 해당 이벤트 싱크의 vfptr(virtual function table pointer)에 기록한다(210단계). 여기서, 상기 vfptr은 버츄얼 펑션 테이블의 주소를 저장하는 영역이다. 여기서, 본 발명의 바람직한 실시예에 따른 키보드 보안이 해제되면, 상기 vfptr의 값은 다시 원래의 버츄얼 펑션 테이블(original vtable)의 주소를 가리키도록 기록하여 원래의 작동을 할 수 있게 한다.
상기한 바와 같이 본 발명은 이벤트 싱크의 버츄얼 펑션 테이블 포인터에, 원래 버츄얼 펑션 테이블에 기록된 펑션들 중 키 입력 이벤트를 처리하는 인보크 함수 항목에 미리 정해둔 함수, 예를 들어 에러 리턴 펑션 등을 기입한 새로운 버츄얼 펑션 테이블의 주소를 기록함으로써, 해당 이벤트 싱크를 통한 키입력 정보의 후킹을 차단한다.
상기 이벤트 싱크에 대한 처리가 완료되었거나, 상기 204단계에서 상기 이벤트 싱크가 키보드 보안 컨트롤이 연결된 이벤트 싱크이면, 상기 제어부(100)는 상기 이벤트 싱크 목록의 모든 이벤트 싱크에 대한 처리를 완료하였는지를 체크한다(212단계).
상기 제어부(100)는 이벤트 싱크 목록의 모든 이벤트 싱크에 대한 처리를 완료하지 않았으면 상기 202단계로 복귀하여 다음 이벤트 싱크에 대한 처리를 이행하고, 상기 이벤트 싱크 목록의 모든 이벤트 싱크에 대한 처리를 완료하였으면 본 발명에 따른 키입력 정보 해킹방지 프로세스를 종료한다.
본 발명은 BHO 키 로거가 설치한 이벤트 싱크의 버츄얼 펑션 테이블 포인터에, 원래 버츄얼 펑션 테이블에 기록된 펑션들 중 키 입력 이벤트를 처리하는 함수에 미리 정해둔 함수, 예를 들어 에러 리턴 펑션 등을 기입한 새로운 버츄얼 펑션 테이블의 주소를 기록함으로써, 상기 키입력 정보를 처리하는 함수에 의한 키입력 정보의 후킹을 차단한다.
이와 같이 본 발명은 키입력 정보를 처리하는 함수 자체를 미리 정해둔 다른 함수로 대치함으로써, 키입력 정보의 유출을 원천적으로 차단할 수 있는 이점이 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (3)

  1. 키입력 정보 해킹방지방법에 있어서,
    웹 브라우저에 구비된 하나 이상의 객체에 연결된 하나 이상의 이벤트 싱크 각각에 대해 버츄얼 펑션 테이블을 복제하는 제1단계;
    상기 복제된 버츄얼 펑션 테이블에 등록된 함수 중 키입력 이벤트를 처리하는 제1함수를 검출하고, 그 검출된 함수를 미리 정해둔 제2함수로 대치하는 제2단계;
    상기 복제된 버츄얼 펑션 테이블의 주소를 상기 이벤트 싱크의 버츄얼 펑션 테이블 포인터에 기입하는 제3단계
    를 포함하는 것을 특징으로 하는 키입력 정보 해킹방지방법.
  2. 제1항에 있어서,
    상기 제1함수는 인보크(invoke) 함수이고,
    상기 제2함수는 에러 리턴 함수임을 특징으로 하는 키입력 정보 해킹방지방법.
  3. 제1항에 있어서,
    상기 웹 브라우저에 구비된 하나 이상의 객체에 연결된 하나 이상의 이벤트 싱크에 대한 목록정보는 커넥터블 객체로부터 획득됨을 특징으로 하는 키입력 정보 해킹방지방법.
KR1020070019637A 2007-02-27 2007-02-27 키입력 정보 해킹방지방법 KR100847248B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070019637A KR100847248B1 (ko) 2007-02-27 2007-02-27 키입력 정보 해킹방지방법
PCT/KR2008/001006 WO2008105596A1 (en) 2007-02-27 2008-02-21 Method of preventing input keystroke data from hacking

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070019637A KR100847248B1 (ko) 2007-02-27 2007-02-27 키입력 정보 해킹방지방법

Publications (1)

Publication Number Publication Date
KR100847248B1 true KR100847248B1 (ko) 2008-07-21

Family

ID=39721408

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070019637A KR100847248B1 (ko) 2007-02-27 2007-02-27 키입력 정보 해킹방지방법

Country Status (2)

Country Link
KR (1) KR100847248B1 (ko)
WO (1) WO2008105596A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081709B (zh) * 2009-12-01 2017-05-24 联想(北京)有限公司 一种浏览器插件的禁用方法、装置和终端

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010000260A (ko) * 2000-08-25 2001-01-05 박준상 키보드 인증 방법 및 시스템
KR20070010557A (ko) * 2005-07-19 2007-01-24 소프트포럼 주식회사 키입력 해킹방지 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718414B1 (en) * 2000-03-08 2004-04-06 Intel Corporation Function modification in a write-protected operating system
CA2447451C (en) * 2000-05-12 2013-02-12 Xtreamlok Pty. Ltd. Information security method and system
KR20030036276A (ko) * 2003-02-07 2003-05-09 킹스정보통신(주) 보안 입력 디바이스 드라이버를 이용한 컴퓨터 보안시스템
KR100549647B1 (ko) * 2005-08-09 2006-02-06 소프트캠프(주) 키보드 입력정보 보안방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010000260A (ko) * 2000-08-25 2001-01-05 박준상 키보드 인증 방법 및 시스템
KR20070010557A (ko) * 2005-07-19 2007-01-24 소프트포럼 주식회사 키입력 해킹방지 방법

Also Published As

Publication number Publication date
WO2008105596A1 (en) 2008-09-04

Similar Documents

Publication Publication Date Title
US8028245B2 (en) Method and system for operating multiple web pages with anti-spoofing protection
JP5982575B2 (ja) 動的テイントに基づくセキュリティ・スキャン
KR101038898B1 (ko) 악성 팝업 광고로부터의 사용자 보호
EP3590247A1 (en) Security and compliance alerts based on content, activities, and metadata in cloud
CN107547495B (zh) 用于保护计算机免受未经授权的远程管理的系统和方法
US20080244078A1 (en) Web services intermediary
JP2009500769A (ja) ユーザ毎およびシステムの詳細監査方針(GranualAuditPolicy)の実施
US20090125993A1 (en) Method for protecting against keylogging of user information via an alternative input device
JP2010517143A (ja) ユーザーインターフェースの表示を管理する方法
CN109598140A (zh) 一种网页信息的保护方法和装置
CN109271807A (zh) 数据库的数据安全处理方法及系统
KR20060093932A (ko) 윈도우즈 운영체제에서 보안 입력 필터 드라이버와 인터넷익스플로러 내부의 키보드 보안 입력 비에이치오를 통한 인터넷 익스플로러 사용자의 키보드 입력 정보 해킹 방지 방법
US20070055890A1 (en) System and method for management of plaintext data in a mobile data processing device
US10721236B1 (en) Method, apparatus and computer program product for providing security via user clustering
US20140143221A1 (en) Data Access Logging
KR100847248B1 (ko) 키입력 정보 해킹방지방법
WO2023278167A1 (en) Redirection of attachments based on risk and context
Khandelwal et al. Review on Security Challenges of Cloud Computing
KR20180065535A (ko) 커널 루트킷 탐지 시스템 및 방법
JP4396585B2 (ja) 脆弱性診断プログラム及び脆弱性診断プログラムを記録した記録媒体
WO2020215905A1 (zh) 数据投放方法、装置、设备及计算机可读存储介质
US11611570B2 (en) Attack signature generation
JP6768439B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US20240056473A1 (en) Determining the Exposure Level Of Vulnerabilities
Coulouris Securing Groupware for the Internet

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140714

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150710

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160708

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170707

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180711

Year of fee payment: 11