KR20090001313A - 키보드 인터럽트 처리함수 교체에 의한 키보드 입력데이터보안방법 - Google Patents

키보드 인터럽트 처리함수 교체에 의한 키보드 입력데이터보안방법 Download PDF

Info

Publication number
KR20090001313A
KR20090001313A KR1020070065585A KR20070065585A KR20090001313A KR 20090001313 A KR20090001313 A KR 20090001313A KR 1020070065585 A KR1020070065585 A KR 1020070065585A KR 20070065585 A KR20070065585 A KR 20070065585A KR 20090001313 A KR20090001313 A KR 20090001313A
Authority
KR
South Korea
Prior art keywords
keyboard
function
security
interrupt
input data
Prior art date
Application number
KR1020070065585A
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 KR1020070065585A priority Critical patent/KR20090001313A/ko
Publication of KR20090001313A publication Critical patent/KR20090001313A/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
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 기존 키보드 인터럽트 처리 함수를 키보드 보안 드라이버 내 보안 키보드 인터럽트 처리 함수로 교체함은 물론 디버그 예외처리(Debug Exception) 방지기능 및 교체된 보안 키보드 인터럽트 처리 함수에 대한 변조 방지 기능을 포함하는 키보드 입력 데이터에 대한 보안방법에 관한 것이다.
기존 키보드 인터럽트 처리를 담당하는 기존 키보드 인터럽트 처리 함수를 키보드 보안 인터럽트 처리 함수로 교체한 이후 키보드 인터럽트에 의해 호출된 키보드 보안 인터럽트 처리 함수내 Debug Exception 기능을 비활성화시켜 해당 키보드 입력 데이터에 대한 무단유출을 차단 및 방지한다.

Description

키보드 인터럽트 처리함수 교체에 의한 키보드 입력데이터 보안방법{ securing method of keyboard input data }
도 1은 이 발명에 따른 키보드 입력데이터 보안방법을 도시한 동작 흐름도이다.
본 발명은 기존 키보드 인터럽트 처리 함수를 키보드 보안 드라이버 내 보안 키보드 인터럽트 처리 함수로 교체함은 물론 디버그 예외처리(Debug Exception) 방지기능 및 교체된 보안 키보드 인터럽트 처리 함수에 대한 변조 방지 기능을 포함하는 키보드 입력 데이터에 대한 보안방법에 관한 것이다.
기존 키보드 입력 데이터의 무단유출을 방지하기 위한 방법으로 키보드 인터럽트 처리함수 교체에 의한 키보드 입력 데이터의 무단유출을 방지하는 방법이 있으나 키보드 인터럽트 처리함수 교체만으로는 Debug Exception을 통한 키보드 입력 데이터에 대한 무단 유출을 방지할 수 없으며, 교체되어 메모리에 적재된 키보드 인터럽트 처리함수에 대한 변조를 통하여 교체된 키보드 인터럽트 처리함수에 대한 기능을 수행을 정지시켰을 경우 사용자에 의해 입력된 키보드 입력 데이터에 대한 무단유출을 차단 및 방지할 수 없게된다.
운영체제가 키보드 인터럽트에 대한 처리를 위하여 등록한 기존 키보드 인터럽트 처리 함수가 저장되어 있는 IDT(Interrupt Descriptor Table)에 대한 Hooking을 통하여 기존 키보드 인터럽트 처리 함수를 키보드 보안 드라이버내 보안 키보드 인터럽트 처리 함수로의 교체한다. 이렇게 교체된 키보드 보안 드라이버내 보안 키보드 인터럽트 처리 함수는 해당 키보드 장치에서 발생한 키보드 입력 데이터를 확인하기 위하여 포트 60h에 대한 상태 및 명령을 내리는 포트 64h를 읽고 키보드 상태 파악뒤에 키보드 입력 데이터 및 하드웨어 제어명령을 처리하는 포트 60h를 읽는다. 이 과정에서 Debug Exception 기능이 설정되어 있었다면 사용자에 의해 입력된 키보드 입력 데이터는 무단유출될 수 있다. Debug Exception 기능은 IDT Hooking 및 CPU Register중 Debug Register와 Control Register에 대한 등록을 통하여 그 기능을 활성화 시킬 수 있다. 좀 더 상세하게는 Debug Exception 기능을 활성화하기 위해서는 IDT 중 Vector 1에 대한 Hooking과 CPU Register중 DR0, DR1, DR2, DR3, DR7, CR4에 대한 설정을 통하여 가능하다. IDT중 Vector 1은 CPU에 정의된 Trap Handler로써 Debug Exception을 위하여 사용되도록 정의되어 있음으로 IDT중 Vector 1에 해당하는 Trap Handler를 무단 유출을 위한 Debug Exception Handler로 교체한이후 CPU Debug Register인 DR0~DR4중 두개의 Debug Register에는 키보드 입출력포트인 60h, 64h를 등록하며, DR7에는 DR0~DR4중 선택한 두개의 Debug Register에 대한 설정을 하며, 등록한 60h, 64h이 메모리 번지가 아닌 키보드 입출력포트로 설정되도록 Control Register인 CR4를 설정함으로써 Debug Exception 기능을 활성화한다. 이렇게 활성화된 Debug Exception 기능은 교체된 키보드 보안 드라이버에서 키보드 입력 데이터를 확인하기 위하여 접근하는 키보드 입출력포트인 64h, 60h 포트에 접근하는 순간 무단유출을 위하여 설정된 Debug Exception Handler가 호출됨으로써 사용자에 의해 입력된 키보드 입력 데이터를 확인하고 무단유출이 가능하게 된다. 또한 이미 기존 키보드 인터럽트 처리 함수 교체를 통하여 메모리에 적재된 보안 키보드 인터럽트 처리 함수의 메모리를 변조하여 무단유출을 위한 키보드 인터럽트 처리 함수로의 이동을 CPU에게 명령함으로써 기존 키보드 인터럽트 처리 함수 교체를 통하여 메모리에 적재된 보안 키보드 인터럽트 처리 함수의 기능을 정지시킴으로써 사용자에 의해 입력된 키보드 입력 데이터에 대한 무단유출이 가능하게 되는 문제점을 갖고 있다.
이에 본 발명은 상기와 같은 문제를 해소하기 위하여 안출된 것으로 키보드 입력 데이터에 대한 무단유출을 차단 및 방지하는 방법의 제공을 기술적 과제로 한다.
이 발명은, 기존 키보드 인터럽트 처리를 담당하는 기존 키보드 인터럽트 처리함수를 키보드 보안 인터럽트 처리 함수로 교체한 이후 키보드 인터럽트에 의해 호출된 키보드 보안 인터럽트 처리 함수 내 Debug Exception 기능을 비활성화시키는 제어부를 포함하여 해당 키보드 입력데이터에 대한 무단 유출을 차단 및 방지한다.
또한, 이 발명은 기존 키보드 인터럽트 처리를 담당하는 기존 키보드 인터럽트 처리함수를 키보드 보안 인터럽트 처리함수로 교체하여 정확하게 키보드 보안 인터럽트 처리함수가 등록되었는지를 지속적으로 감사하고 등록되어 메모리에 적재된 키보드 보안 인터럽트 처리함수가 변조되었는지를 지속적으로 감시하는 감시부를 포함하여 키보드 보안 인터럽트 처리함수를 재동륵하여 변조된 메모리를 복구하는 제어부를 포함한다.
또한, 이 발명은 보안 키보드 드라이버내 판단부와 수신부를 통하여 저장된 키보드 입력데이터를 사용자에 의해 입력된 해당 프로세스와 해당 쓰레드에 무단 유출을 최소화하며 표현하기 위한 보안 키보드 드라이버 내 표현부를 포함한다.
이 발명은, 기존 키보드 인터럽트 처리 함수를 키보드 보안 인터럽트 처리 함수로의 교체를 담당하는 제어부와 Debug Exception 기능 정지시키는 제어부, 교체를 위하여 메모리에 적재된 키보드 보안 인터럽트 처리 함수에 대한 등록 유무와 메모리 변조를 감시하는 감시부와, 변조된 메모리를 복구 및 재등록하는 제어부를 포함하며 이를 반복적으로 수행한다.
키보드 보안 드라이버는 로드되면서 운영체제가 키보드 인터럽트에 대한 처리를 위하여 등록한 기존 키보드 인터럽트 처리 함수가 저장되어 있는 IDT(Interrupt Descriptor Table)에 대한 Hooking을 통하여 기존 키보드 인터럽트 처리 함수를 키보드 보안 드라이버내 보안 키보드 인터럽트 처리 함수로의 교체한다. 사용자에 의해 키보드 하드웨어로부터 발생한 키보드 인터럽트는 키보드 컨트롤러로 전달되며 키보드 컨트롤러는 중앙처리장치에게 해당 인터럽트가 발생하였음을 알려주게 되며 중앙처리장치는 해당 키보드 인터럽트의 트랩 핸들러 즉, 인터럽트 처리 함수(Interrupt Service Routine)를 호출하기 위하여 메모리에 로드되어 있는 IDT를 읽어 키보드 디바이스의 벡터를 얻어 해당 키보드 인터럽트 처리 함수를 수행한다. 이 순간 교체된 보안 키보드 인터럽트 처리 함수가 호출된다. 호출된 보안 키보드 인터럽트 처리 함수는 사용자에 의해 생성된 키보드 입력 데이터를 확인하기 위하여 키보드 입출력포트(60h, 64h)에 대한 접근에 앞서 Debug Exception 기능을 정지시키기 위하여 CPU Debug Register인 DR7을 초기값(400h)으로 설정함으로써 Debug Exception 기능을 정지시킴으로써 Debug Exception 기능을 통한 키보드 입력 데이터 무단유출을 차단 및 방지한다. Debug Exception 기능을 정지하였다면 사용자에 의해 생성된 키보드 입력 데이터에 대한 확인을 위하여 키보드 입출력포트(64h, 60h)에 접근하여 키보드 입력 데이터를 확인한다. 확인된 키보드 입력 데이터는 키보드 보안 드라이버의 판단부에 의한 판단여부에 따라 해당 키보드 입력 데이터를 내부 버퍼에 저장하고 키보드 입출력포트(64h, 60h)에 제어명령을 보냄으로써 해당 키보드 입력 데이터가 남아 있는 키보드 흔적 데이터를 삭제한다. 보안 키보드 드라이버 수집부를 통하여 저장된 키보드 입력 데이터는 해당 키보드 입력 데이터를 표현하기 위한 내부적인 전달을 통하여 보안 드라이버의 표현부로 전달되며 이는 사용자에 입력된 해당 프로세스 및 해당 쓰레드로 전달되어 표현된다.
키보드 보안 드라이버의 감시부는 교체되어 등록된 보안 키보드 인터럽트 처리 함수가 정확하게 등록되어 있는지를 주기적으로 체크하여 등록되어 있지 않은 경우 키보드 보안 드라이버의 제어부로 키보드 보안 인터럽트 처리 함수를 재등록하도록 하며, 교체를 위하여 메모리에 적재된 키보드 보안 인터럽트 처리 함수에 대한 변조를 지속적으로 감시하며 변조되었음이 확인되었을 경우 키보드 보안 드라이버의 제어부로 등록된 보안 키보드 인터럽트 처리 함수에 대한 메모리를 복구하여 보안 키보드 인터럽트 처리 함수가 기능이 정지되어 해당 키보드 입력 데이터가 무단 유출되는 것을 차단 및 방지한다.
이상에서 이 발명에 대한 기술 사상을 첨부 도면과 함께 서술하였지만, 이는 이 발명의 가장 양호한 일 실시예를 예시적으로 설명한 것이지 이 발명을 한정하는 것은 아니다. 또한, 이 기술 분야의 통상의 지식을 가진 자이면 누구나 이 발명의 기술 사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.
이상 상기와 같은 본 발명에 따르면, 기존 키보드 서비스 루틴을 키보드 보안 인터럽트 처리 함수로 교체함은 물론 Debug Exception 기능 비활성화 및 교체된 키보드 보안 인터럽트 처리 함수의 메모리가 변조되어 키보드 보안 인터럽트 처리 함수의 기능을 정지시키는 것을 방지하여 사용자에 의해 입력 키보드 입력 데이터에 대한 무단유출을 차단 및 방지하는 효과가 있다.

Claims (1)

  1. 기존 키보드 인터럽트 처리를 담당하는 기존 키보드 인터럽트 처리 함수를 키보드 보안 인터럽트 처리 함수로 교체한 이후 키보드 인터럽트에 의해 호출된 키보드 보안 인터럽트 처리 함수내 Debug Exception 기능을 비활성화시켜 해당 키보드 입력 데이터에 대한 무단유출을 차단 및 방지하는 키보드 입력데이터 보안방법.
KR1020070065585A 2007-06-29 2007-06-29 키보드 인터럽트 처리함수 교체에 의한 키보드 입력데이터보안방법 KR20090001313A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070065585A KR20090001313A (ko) 2007-06-29 2007-06-29 키보드 인터럽트 처리함수 교체에 의한 키보드 입력데이터보안방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070065585A KR20090001313A (ko) 2007-06-29 2007-06-29 키보드 인터럽트 처리함수 교체에 의한 키보드 입력데이터보안방법

Publications (1)

Publication Number Publication Date
KR20090001313A true KR20090001313A (ko) 2009-01-08

Family

ID=40484408

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070065585A KR20090001313A (ko) 2007-06-29 2007-06-29 키보드 인터럽트 처리함수 교체에 의한 키보드 입력데이터보안방법

Country Status (1)

Country Link
KR (1) KR20090001313A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107657186A (zh) * 2016-07-25 2018-02-02 韩国电子通信研究院 用于数据安全性的乒乓键阻止方法和使用该方法的设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107657186A (zh) * 2016-07-25 2018-02-02 韩国电子通信研究院 用于数据安全性的乒乓键阻止方法和使用该方法的设备
US10331886B2 (en) 2016-07-25 2019-06-25 Electronics And Telecommunications Research Institute Toggle key blocking method for data security and apparatus using the same
CN107657186B (zh) * 2016-07-25 2021-06-01 韩国电子通信研究院 用于数据安全性的乒乓键阻止方法和使用该方法的设备

Similar Documents

Publication Publication Date Title
US9619346B2 (en) Virtual machine introspection facilities
Kemerlis et al. {kGuard}: Lightweight kernel protection against {Return-to-User} attacks
KR101006721B1 (ko) 키보드 입력정보 보안장치 및 그 방법
JP6370098B2 (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
US10114948B2 (en) Hypervisor-based buffer overflow detection and prevention
Denis-Courmont et al. Camouflage: Hardware-assisted cfi for the arm linux kernel
Deng et al. Dancing with wolves: Towards practical event-driven vmm monitoring
JP2022503921A (ja) 遷移無効インジケータ
Gravani et al. IskiOS: Lightweight defense against kernel-level code-reuse attacks
TW201610672A (zh) 在資料處理裝置中進行除錯
Han et al. MyTEE: Own the Trusted Execution Environment on Embedded Devices.
KR20090001313A (ko) 키보드 인터럽트 처리함수 교체에 의한 키보드 입력데이터보안방법
Jang et al. SelMon: reinforcing mobile device security with self-protected trust anchor
JP2015166952A (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
US11556645B2 (en) Monitoring control-flow integrity
Jang et al. Revisiting the arm debug facility for os kernel security
Moon et al. Architectural supports to protect os kernels from code-injection attacks
CN104899512A (zh) 一种Windows系统服务描述符表防篡改装置及方法
US8042176B2 (en) Computer readable medium on which is stored a program for preventing the unauthorized use of program data
KR102479465B1 (ko) 모바일 신뢰 실행 환경의 보안성 강화를 위한 장치
Wojtczuk A stitch in time saves nine a stitch in time saves nine: A case of multiple os vulnerability
KR20090001309A (ko) 키보드 포트 드라이버를 이용한 키보드 입력데이터보안방법
TWI478003B (zh) 電腦系統資料保護裝置及方法
EP3940565A1 (en) System management states
Chen et al. DScope: To Reliably and Securely Acquire Live Data from Kernel-Compromised ARM Devices

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination