표제지
목차
약어표 10
논문요약 11
제1장 서론 12
제2장 관련 연구 15
제1절 인터넷 익스플로러 15
제2절 어플리케이션 취약점 17
제3절 힙 메모리 20
제3장 인터넷 익스플로러에 대한 힙 스프레이 공격 24
제1절 힙 스프레이 24
1. 힙 스프레이 개요 24
2. 힙 스프레이 원리 24
3. 힙 스프레이 특징 27
제2절 공격 코드 분석 30
제4장 인터넷 익스플로러에 대한 힙 스프레이 공격 차단방안 36
제1절 차단방안의 제안 36
1. 차단방안의 개요 36
2. 구현 원리 36
제2절 차단방안의 구현 38
1. 구현 상세 38
2. 차단방안의 검증 45
제5장 결론 50
참고문헌 52
ABSTRACT 54
[표 4-1] 인터넷 익스플로러의 프로세스 메모리 변화량 39
[표 4-2] 검증 환경 구축 46
[표 4-3] 테스트 결과 48
[그림 1-1] 실제 악성코드 유포에 활용되는 신규 취약점 변화 양상 13
[그림 2-1] 인터넷 익스플로러의 전 세계 시장 점유율 그래프 16
[그림 2-2] PEB 구조체 21
[그림 2-3] _HEAP 구조체 21
[그림 2-4] _HEAP_SEGMENT 구조체 22
[그림 2-5] 블록 헤더 22
[그림 2-6] 프로세스 내부에서의 힙 구조 23
[그림 3-1] 힙 메모리에 문자열 할당 25
[그림 3-2] 유니코드 형식으로 들어있는 문자열 25
[그림 3-3] %u를 이용한 데이터 삽입 26
[그림 3-4] 블록형태로 반복 할당하는 코드 27
[그림 3-5] 힙 메모리 영역에 반복으로 할당된 블록 27
[그림 3-6] 이상적인 힙 스프레이 28
[그림 3-7] 힙 스프레이 전과 후의 프로세스 메모리 할당 29
[그림 3-8] 전체적인 공격 과정 31
[그림 3-9] 인터넷 익스플로러 취약점 유발 코드 32
[그림 3-10] 크래쉬가 발생한 모습 32
[그림 3-11] 힙 스프레이 초기화 코드 33
[그림 3-12] 프로세스 메모리 사용량 변화 34
[그림 3-13] ROP 가젯 34
[그림 3-14] 쉘 코드 실행 35
[그림 4-1] GetProcessMemoryInfo() 함수 37
[그림 4-2] VirtualQueryEx()와 MEMORY_BASIC_INFORMATION 38
[그림 4-3] 할당된 힙 메모리 사이에 있는 공백 40
[그림 4-4] 구현 순서도 41
[그림 4-5] 프로세스 PID 탐색 42
[그림 4-6] 프로세스 메모리의 사용량 측정 43
[그림 4-7] NOP 코드 카운트 44
[그림 4-8] 힙 스프레이 블록 카운트 45
[그림 4-9] 힙 스프레이 공격 성공 47
[그림 4-10] 힙 스프레이 공격 차단 성공 47