키보드 보안 2008. 05. 29 순천향대학교 정보보호학과 임강빈 교수.

Slides:



Advertisements
Similar presentations
2 3 t h K o r e a O p e r a t i n g S y s t e m S e m i n a r 8259A 를 아는가 ??? 2 3 t h K o r e a O p e r a t i n g S y s t e m S e m i n a r.
Advertisements

I. 프로젝트 동기 II. 프로젝트 목표 III. 파일시스템 IV. 암호화 및 복호화 V. 인터페이스 VI. FBR READ/WRITE VII. 프로그램 흐름도 VIII. 미 구현 사항 IX. 프로젝트 기대효과 X. 프로그램 요구사항 및 팀원 역할분담 XI. 시연 XII.
키보드 보안 순천향대학교 정보보호학과 임강빈 교수.
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
일반 요구 사항 비즈니스 요구사항 고객/정보/위치/상태 탐색방법 제품/서비스 홍보 및 광고 방법
                                  9장 컴퓨터 기반 데이터 수집의 기초.
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
<<< 시스템등록정보 “하드웨어-장치관리자” 설정 >>>
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Network Lab. Young-Chul Hwang
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
08. 디바이스 드라이버의 읽기와 쓰기 김진홍
VoIP (Voice Over Internet Protocol)
갤럭시 S를 이용한 자동차 원격 제어 시스템 담당교수 : 진현욱 교수님
어셈블리 문법 보강 4월 10일.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
11 장 LAN 기본 개념과 Ethernet LAN
07. 디바이스 드라이버의 초기화와 종료 김진홍
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
제 19 장 TFTP 19.1 메시지 19.2 연결 19.3 데이터 전송 19.4 UTP 포트 19.5 TFTP 예제
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
타이머카운터 사용법 휴먼네트웍스 기술연구소
4. LAN의 배선체계 (3장. LAN: Local Area Network)
PSW : PROGRAM STATUS WORD
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
ATmega128 FND 실습 휴먼네트웍스 기술연구소
DK-128 FND 실습 아이티즌 기술연구소 김태성 연구원
13장 고급 입출력 함수 박사 4학기 최 성자.
Microprocessor I/O Port & CLCD Noh Jin-Seok.
Method & library.
디지털회로설계 (15주차) 17. 시프트 레지스터와 카운터 18. 멀티바이브레이터 * RAM & ROM.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
DK-128 FND 실습 아이티즌 기술연구소
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Flash Communication Server
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
패러럴 포트를 이용한 Text LCD 제어 6월 17일 허정수 나선웅.
클라우드 서버로 부터 값 읽어오기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
ARM Development Suite v1.2
UNIT 25 SPI 로봇 SW 교육원 조용수.
ATmega128의 특징 아이티즌 기술연구소
Electronic cart Electronic Cart Electronic Cart Electronic Catr
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
DK-128 개발환경 설정 아이티즌 기술연구소
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
Ⅰ 전자기초 Ⅱ 디지털 논리회로 Ⅲ C언어 기초 Ⅳ AVR 마이크로 컨트롤러 Ⅴ 마이크로 컨트롤러 개발환경
UNIT 25 SPI 로봇 SW 교육원 조용수.
시리얼 UART 정리 정보통신•컴퓨터 공학부 송명규
JSP Programming with a Workbook
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
5.2.3 교환방식의 비교 학습내용 교환방식의 비교.
System Security Operating System.
IO-Link 통신 기술 소개 산업 Ethernet 필드버스 게이트웨이 접속 IO-Link 마스터 IO-Link 통신
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
06. 디바이스의 등록과 해제 김진홍
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
Completion Port기반의 채팅프로그램
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
2. 프로세스 B 안우진 - 운영체제 -.
ARP.
Presentation transcript:

키보드 보안 2008. 05. 29 순천향대학교 정보보호학과 임강빈 교수

하드웨어(시스템) 보안 기술 보편적 해석 (보안 하드웨어) 제한적 해석 요구사항 우리가 늘 사용하는 하드웨어인 IBM-PC는? 보안 장비 개발 기술 = 시스템 설계 + 보안 소프트웨어 기술 보안 알고리즘의 하드웨어 구현 기술 = 칩 설계 기술 사이드 채널 공격 기술 = 암호 알고리즘에 제한적 제한적 해석 보안 문제에 안전한 하드웨어 설계 보안에 불안한 하드웨어 은닉을 위한 소프트웨어 설계 요구사항 이벤트 노출 방지 인터페이스 사용 휘발성 인터페이스 사용 우리가 늘 사용하는 하드웨어인 IBM-PC는?

접근권한 관리 하드웨어 Pentium Processor 운영체제의 접근권한 관리 하드웨어 활용 Protected Mode 를 통한 하드웨어 기반 접근권한 관리 Segment 기반의 메모리 보호 IO Permission Map에 의한 프로세스별 I/O 보호 PL0 ~ PL3의 4단계 Privilege Levels 운영체제의 접근권한 관리 하드웨어 활용 Protected Mode 기능을 제한적으로 사용 Page 기반의 메모리 보호 (Segment 보호 특성 축소) PL0, PL3의 두 Privilege Level만을 이용 (다이렉트 폴링 문제 발생) 앞으로는 무엇을 어떻게 해야 하는가? 4단계 Privilege Levels 모두 지원 (최소 3단계) 사용자 드라이버를 커널레벨에서 분리

PS/2 키보드 인터페이스

키보드컨트롤러 인터페이스 포트 이름 읽기 쓰기 컨트롤 (0x64) 상태레지스터 제어코드 데이터 (0x60) 스캔코드 제어응답 명령응답 제어인자 명령코드 명령인자

키보드컨트롤러 상태 레지스터

키보드컨트롤러 설정 레지스터

키보드컨트롤러 제어코드

키보드컨트롤러 오퍼레이션 제어코드, 제어인자, 제어응답 호스트는 인터럽트 루틴으로 처리 호스트의 지속적 다이렉트 폴링은 오버헤드 과다 // 키보드컨트롤러 내부 프로그램 구조 for (1) { while (!IBF) ; if (C/D) { Read CONTROL @ IB ; Clear IBF ; Decode CONTROL ; Set STATE on for PARAM and/or RETURN ; } else { if (STATE is on for PARAM, RETURN) { Read PARAM @ IB ; Clear IBF ; while (OBF) ; Write RETURN @ OB ; else if (STATE is on for PARAM only) { else if (STATE is on for RETURN only) { Read DATA @ IB ; Clear IBF ; Clear STATE ; // 호스트 루틴 구성 요소 (i8042prt.sys) while (IBF) ; Write DATA @ 0x60 Write CONTROL @ 0x64 ; Write PARAM @ 0x60 ; while (!OBF) ; Read RETURN @ 0x60 INT C/D  1, IBF  1 0x64 C/D  0, IBF  1 INT 0x60

하위 소프트웨어 구조 인터럽트 처리 구조로서 제어권 탈취 용이

스니퍼 또는 보안프로그램의 접근법 키보드 인터럽트 처리기의 대체

기존 키보드보안 환경 현황 문제 인터럽트 처리기를 교체하여 스캔코드 수집 인터럽트 처리기는 드라이버를 사용하여 스캔코드 수집 system32/drivers/i8042prt.sys(i8042dep.c)를 이용 특수한 경우를 제외하고는 다이렉트 폴링을 수행하지 않는 것으로 판단 스니퍼의 다이렉트 폴링에는 무방비 문제 보안 프로그램이 다이렉트 폴링을 수행하는 경우 스니퍼와 경쟁상태에 빠져 상호 정상적인 스캔코드 수집 실패  스니퍼의 스니핑 포기를 유도하는 것이 가능 보안 프로그램이 다이렉트 폴링을 수행할 경우 지나친 오버헤드를 유발하여 많은 환경에서 보안 서비스 불가

대응 방안 I 제어코드 0xD2를 이용하여 감시 프로그램을 교란

방안 I의 문제점 상태 레지스터 C/D 비트의 하향 에지 노출 비 휘발성 출력버퍼의 스캔코드 노출

대응 방안 II 응답이 있으나 인자가 없는 제어코드 0x20을 이용하여 산발적인 시간에 설정레지스터를 읽어 내어 스니퍼를 교란

방안 II의 문제점 예측 가능한 응답 코드 발생 비 논리적인 응답 코드 발생 예측 불가하며 스캔코드와 구별할 수 없는 코드 발생 필요

대응 방안 III 인자 및 응답이 없는 단독 제어코드를 0xD2 뒤에 연결하여 사용 0xD2로 스캔코드 교란, 단독 제어코드로 C/D 비트 변화 은닉 0xA6, 0xA7, 0xA8, 0xAD, 0xAE, 0xC1, 0xC2 등이 사용 가능 효과 증대하나 큰 임계영역 설정이 필요하므로 과부하 발생

대응 방안 IV 키보드컨트롤러 내부 메모리 이용 미사용의 31바이트 메모리 존재 0x20 및 0x60 제어코드를 활용하여 접근 가능

방안 IV의 동작 준비루틴을 비 주기적으로 실행하여 임의 값 준비 교란루틴을 필요할 경우 실행하여 교란코드 생성 상대적으로 적은 오버헤드 실현

기타 제어코드를 이용한 방지 방안 인자는 없고 응답이 있는 제어코드 이용 대개 0xD2, 0x20보다 불우 0xAA : Self Test  0x55 0xAB : Interface Test  0x00 ~ 0x04 0xC0 : Read Input Port  거의 고정 값 0xD0 : Read Output Port  거의 고정 값 0xE0 : Read Test Port  거의 고정 값 스니퍼가 값을 추적 가능하여 걸러낼 수 있음

USB 키보드의 보안 현황 USB 보안 문제는 USB 키보드 보안 문제와 직결 PS/2에서와 같은 선점 경쟁에 돌입 우려 크게 세 포인트에서 보안 문제 고려 필요

사용자 드라이버 주변의 보안 문제 위험성 평가 미니 드라이버, 필터 드라이버 등을 이용하여 스캔코드 선점 드라이버 오브젝트, 디바이스 오브젝트 등을 통한 정보 획득 현재 URB(USB Request Block) 수준까지 스니핑 USB Transfer 수준까지 공격 가능 USB Transaction을 관리하는 BUS 드라이버, HC 드라이버의 상위 부분 논리적 구조에 접근

USB 전송 구조에서의 보안 문제 상위의 디바이스 오브젝트와 연결된 REQUEST 버퍼 존재 URB를 통하여 전달된 임시 데이터를 조작 가능 HC와 연결된 스케줄링(TRANSACTION) 버퍼 존재 타깃 디바이스의 주소(엔트포인트)와 연결된 버퍼 USB 타깃에 대하여 최소의 버스 전송 단위 각 버퍼에 대하여 스푸핑 등이 가능함 (usbd.sys, usbehci.sys 조작)

USB 프로토콜에서의 보안 Transaction 단위로 전송 토큰 패킷에 의하여 라우팅 프로토콜 구성의 구속성이 없음 악의적 타깃에 의하여 NAK 전송 등이 가능

USB HC 드라이버에서의 보안 문제

해결 과제 End-to-end 보안 채널 구성이 필요 사용자의 키보드와 서버 간의 암호화 채널