본문바로가기

자료 카테고리

전체 1
도서자료 0
학위논문 1
연속간행물·학술기사 0
멀티미디어 0
동영상 0
국회자료 0
특화자료 0

도서 앰블럼

전체 (0)
일반도서 (0)
E-BOOK (0)
고서 (0)
세미나자료 (0)
웹자료 (0)
전체 (1)
학위논문 (1)
전체 (0)
국내기사 (0)
국외기사 (0)
학술지·잡지 (0)
신문 (0)
전자저널 (0)
전체 (0)
오디오자료 (0)
전자매체 (0)
마이크로폼자료 (0)
지도/기타자료 (0)
전체 (0)
동영상자료 (0)
전체 (0)
외국법률번역DB (0)
국회회의록 (0)
국회의안정보 (0)
전체 (0)
표·그림DB (0)
지식공유 (0)

도서 앰블럼

전체 1
국내공공정책정보
국외공공정책정보
국회자료
전체 ()
정부기관 ()
지방자치단체 ()
공공기관 ()
싱크탱크 ()
국제기구 ()
전체 ()
정부기관 ()
의회기관 ()
싱크탱크 ()
국제기구 ()
전체 ()
국회의원정책자료 ()
입법기관자료 ()

검색결과

검색결과 (전체 1건)

검색결과제한

열기
논문명/저자명
JUMPER : automatic search tool for finding jump oriented programming gadgets = 점퍼 : Jump Oriented Programming 가젯 자동검색 도구의 설계 / Jae Won Min 인기도
발행사항
서울 : 성균관대학교 대학원, 2014.2
청구기호
TM 621.39 -14-241
형태사항
53 p. ; 30 cm
자료실
전자자료
제어번호
KDMT1201433236
주기사항
학위논문(석사) -- 성균관대학교 대학원, Dept. of Electrical and Computer Engineering, 2014.2. 지도교수: Tai Myoung Chung
원문

목차보기더보기

Title Page

Contents

Abstract 9

1. Introduction 11

2. Evolution of Exploit Techniques 14

2.1. Stack Smashing 14

2.2. Return-to-Libc 15

2.3. Return-Oriented Programming 16

2.4. Jump Oriented Programming 18

3. Intel x86 Architecture Overview 19

3.1. Basic Program Execution Registers 19

3.2. Flags 21

3.3. Instruction Format 23

4. Jump-Oriented Programming 24

4.1. Limitation of Previous Researches and Motivation 24

4.2. Controlling the Instruction Pointer without Returns 26

4.3. Gadgets 29

4.4. Advantages over Return Oriented Programming 29

5. Intel x86 Gadget Catalog 31

5.1. Load / Store 31

5.2. Arithmetic 32

5.3. Logical 33

5.4. Control Flow 34

5.5. Conditional 34

5.6. Function Call 35

5.7. Dispatcher 36

6. Automatic Gadget Search 38

6.1. Overall Structure 38

6.2. Gadget Search Algorithm 39

6.3. Representation of Gadget Catalog 42

6.4. Pattern Matching 43

6.5. Implementation 43

6.6. Output Files 48

7. Analysis of Kernel32.dll 49

7.1. Load/Store Gadgets 49

7.2. Arithmetic Gadgets 50

7.3. Others Gadgets 51

7.4. Result 52

8. Detection of Jump Oriented Programming 54

8.1. Trampoline 54

8.2. Control Flow Integrity 54

9. Conclusion 56

References 58

논문요약 60

Table 1: Conventional Purposes of Registers 20

Table 2: EFLAGS Fields 22

Table 3: Catalog of Load/Store Gadgets 32

Table 4: Catalog of Arithmetic Addition Gadgets 33

Table 5: Catalog of Logical And Gadgets 34

Table 6: Catalog of Control Flow Gadgets 34

Table 7: Catalog of Conditional Gadgets 35

Table 8: Catalog of Function Call Gadgets 36

Table 9: Catalog of Dispatcher Gadget 37

Table 10: Description of Functions 47

Table 11: Libraries in Windows XP 52

Table 12: Libraries of Windows 7 53

Figure 1: Normal Stack 14

Figure 2: Buffer Overflow 15

Figure 3: Return to Libc 16

Figure 4: Return-Oriented Programming 17

Figure 5: General Purpose Registers 19

Figure 6: ESI, EDI Registers 20

Figure 7: x86 Instruction Format 23

Figure 8: Operating System Usage Statistics 25

Figure 9: Checkoway's Approach 26

Figure 10: Jump Oriented Programming Approach by Bletsch 28

Figure 11: Dispatcher Gadget Example 36

Figure 12: Search Algorithm 38

Figure 13: Recursive Call of Shacham's Algorithm 39

Figure 14: Example of Redundant Gadgets 40

Figure 15: Gadget Search Algorithm of JUMPER 41

Figure 16: Main Function 44

Figure 17: gadget_catalog.py 46

초록보기 더보기

 소프트웨어 익스플로잇 기술은 방어기술과 함께 과거에서부터 현재까지 꾸준히 발전해왔다. 과거에는 공격코드를 직접 스택과 같은 메모리에 삽입하여 실행시켰지만, 운영체제에서 데이터가 저장되는 메모리의 실행권한을 없애버리면서 코드 재사용 공격이 등장하게 되었다. 코드 재사용 공격이란, 공격자가 공격코드를 메모리에 삽입하는 것이 아니라 실행 중인 프로그램내의 코드영역에서 원하는 코드를 실행하는 공격 방법을 뜻한다.

코드 재사용 공격의 가장 대표적인 예는 return-oriented programming이다. 이 공격 방법은 리턴 명령어로 끝나는 명령어의 집합들(가젯)을 조합하여 악성행위를 하는 방법이다. 아이폰 탈옥, 안드로이드 루팅 등 광범위하게 사용되고 있다. Return-oriented programming이 인기를 끌면서 탐지 기술들이 다수 제안되었는데, 대부분이 리턴 명령어가 가지고 있는 특징을 기반으로 공격을 탐지하고 있다. 하지만 리턴 명령어 대신 다른 명령어로 대체함으로써 쉽게 우회가 가능하다는 것을 증명했는데, 그것이 jump-oriented programming이다.

Jump-oriented programming은 점프 명령어를 통해 리턴 명령어와 유사한 효과를 내도록 하여 공격을 수행하며,연구를 통해 실제 익스플로잇을 제작하여 공격이 가능하다는 것을 증명했다. 하지만 현재까지의 연구는 리눅스(데비안 5.0.4)상에서만 진행되었기 때문에 jump-oriented programming 공격 모델이 다양한 플랫폼에 적용될 수 있다는 것을 증명하지는 못했다. 실험을 진행한 리눅스의 버전 자체도 몇 년 전에 발표했으며, 또한 전체 운영체제 중 리눅스의 사용률은 여전히 윈도우에 비해 현저하게 낮다.

따라서 본 논문에서는 jump-oriented programming 가젯을 자동으로 검색하는 도구인 점퍼를 설계하고, 이를 활용하여 사용률이 제일 높은 윈도우 시스템의 동적 라이브러리에서 가젯들을 검색함으로써 jump-oriented programming 공격 모델이 리눅스 시스템에 한정되어있는 것이 아니라 그 외의 운영체제들에도 적용이 가능하다는 것을 보여주었다. 향후에는 가젯의 자동검색뿐만 아니라, 가젯을 조합하여 익스플로잇을 만드는 과정을 자동화하는 연구가 진행되어야 할 것이다.

권호기사보기

권호기사 목록 테이블로 기사명, 저자명, 페이지, 원문, 기사목차 순으로 되어있습니다.
기사명 저자명 페이지 원문 기사목차
연속간행물 팝업 열기 연속간행물 팝업 열기