aeg

Similar documents
hlogin2

Deok9_Exploit Technique

여행기

소프트웨어 보안을 위한 바이너리 분석 기법 동향

1

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

Observational Determinism for Concurrent Program Security

public key private key Encryption Algorithm Decryption Algorithm 1

hlogin7

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

김기남_ATDC2016_160620_[키노트].key

강의10

Microsoft PowerPoint - G3-2-박재우.pptx

untitled

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co

6주차.key

Microsoft PowerPoint - AC3.pptx

02( ) CSTV11-22.hwp

Linux Binary Hardening with Glibc Hyeonho Seo

Microsoft Word - FunctionCall

PowerPoint 프레젠테이션

Microsoft PowerPoint - a10.ppt [호환 모드]

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환

DIY 챗봇 - LangCon

ºÎ·ÏB

Page 2 of 5 아니다 means to not be, and is therefore the opposite of 이다. While English simply turns words like to be or to exist negative by adding not,

thesis

C# Programming Guide - Types

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

bn2019_2

2 I.서 론 학생들을 대상으로 강력사고가 해마다 발생하고 있다.범행 장소도 학교 안팎을 가리지 않는다.이제는 학교 안까지 침입하여 스스럼없이 범행을 하고 있는 현실 이 되었다.2008년 12월 11일 학교에 등교하고 있는 학생(여,8세)을 교회 안 화장 실로 납치하여

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

<31342D3034C0E5C7FDBFB52E687770>

API 매뉴얼

PL10

2002년 2학기 자료구조

소프트웨어개발방법론

10주차.key

IDA 5.x Manual hwp


UDP Flooding Attack 공격과 방어

歯15-ROMPLD.PDF

HW5 Exercise 1 (60pts) M interpreter with a simple type system M. M. M.., M (simple type system). M, M. M., M.

272 石 堂 論 叢 49집 기꾼이 많이 확인된 결과라 할 수 있다. 그리고 이야기의 유형이 가족 담, 도깨비담, 동물담, 지명유래담 등으로 한정되어 있음도 확인하였 다. 전국적인 광포성을 보이는 이인담이나 저승담, 지혜담 등이 많이 조사되지 않은 점도 특징이다. 아울

Microsoft Word - ExecutionStack

09권오설_ok.hwp

LXR 설치 및 사용법.doc

BMP 파일 처리

SIGPLwinterschool2012

MPLAB C18 C

슬라이드 1

Journal of Educational Innovation Research 2017, Vol. 27, No. 1, pp DOI: * The

untitled

SW¹é¼Ł-³¯°³Æ÷ÇÔÇ¥Áö2013

Journal of Educational Innovation Research 2018, Vol. 28, No. 3, pp DOI: NCS : * A Study on

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환

<32B1B3BDC32E687770>

No Slide Title


백서2011표지

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

methods.hwp

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

untitled

Microsoft PowerPoint - CHAP-03 [호환 모드]

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

구문 분석


4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

6 영상기술연구 실감하지 못했을지도 모른다. 하지만 그 이외의 지역에서 3D 영화를 관람하기란 그리 쉬운 일이 아니다. 영화 <아바타> 이후, 티켓 파워에 민감한 국내 대형 극장 체인들이 2D 상영관을 3D 상영관으로 점차적으로 교체하는 추세이긴 하지만, 아직까지는 관

PowerPoint 프레젠테이션

Microsoft PowerPoint Predicates and Quantifiers.ppt

Microsoft PowerPoint - o8.pptx

DE1-SoC Board

6.24-9년 6월

i n i n i n 1

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1

9

¹Ìµå¹Ì3Â÷Àμâ

<3130C0E5>

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라.

Interstage5 SOAP서비스 설정 가이드


PowerPoint 프레젠테이션

04_오픈지엘API.key

Microsoft PowerPoint - 30.ppt [호환 모드]

Microsoft PowerPoint - chap01-C언어개요.pptx

vm-웨어-앞부속

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

OCaml

DBPIA-NURIMEDIA

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

chap01_time_complexity.key

IKC43_06.hwp

Contents Contents 2 1 Abstract 3 2 Infer Checkers Eradicate Infer....

PowerPoint 프레젠테이션

<30362E20C6EDC1FD2DB0EDBFB5B4EBB4D420BCF6C1A42E687770>

KDTÁ¾ÇÕ-1-07/03

Transcription:

바이너리분석을통한자동익스플로잇생성 : 과거, 현재, 그리고미래 차상길 카이스트 1

Cyber Grand Challenge (CGC) Hacking competition between computers 2

Figure taken from http://blog.forallsecure.com/2016/02/09/unleashing-mayhem/ 3

해킹의자동화 4

왜해킹을자동화하는가? 1. 멋있어서 2. 역공학은개개인의능력에의존적임 ( 대규모의분석에취약 ) 3. 버그가너무많고그중에보안에중요한버그는몇안됨 4. 보안취약점에빠른대응가능 5

知彼知己百戰不殆 - 손자병법 6

자동화된해킹의 3 요소 바이너리로부터 취약점찾기 찾은취약점을이용한익스플로잇생성하기찾은취약점의원인을파악하여패치하기 7

Automatic Exploit Generation (AEG) 바이너리로부터 취약점찾기 찾은취약점을이용한익스플로잇생성하기찾은취약점의원인을파악하여패치하기 8

AEG 의시작 9

2005, Ganapathy et al. Automatic Discovery of API-Level Exploits, ICSE 2005 최초로 AEG 문제를 Verification 문제로간주 10

Verification with a Twist Program Correctness Property Unexploitability property Verification Automatic Exploit Generation Safe Correct Incorrect Exploitable 11

API-Level Exploits ( 예제 ) 특정파일에대하여, 소유권없이 Read/Write 권한을갖게되는 API sequence 를찾아라. API model 을기반으로하는 bounded model checking A Z Precondition Postcondition 12

Format String Exploit Generation Format string bug 를찾았다는가정하에 exploitability 를판단하고실제 counter example (= exploit) 생성 포맷의각바이트가하나의명령으로모델링됨 (0-255 사이의값에대한모델생성 ) 13

Format String Exploit Generation Format String LEN 아래의조건을만족하면 exploitable: Local variables Ptr. to Format string Return address DIS Stack frame for printf FMTPTR ARGPTR 14

한계점 최초의자동화시도였으나주어진 API 모델상에서만동작 실제 Shell 을실행하는 exploit 과는거리가있음 생성된 exploit 이실제로동작하지않을수있음 : 실제실행경로상에서허용되지않는입력값이존재할수있음 15

2008, Brumley et al. Automatic Patch-Based Exploit Generation is Possible: Techniques and Implications, Oakland 2008 패치에서부터자동으로 exploit 을생성하는 최초의시도 16

왜패치인가? 윈도우업데이트가 80% 의클라이언트에설치되기까지는최소 24 시간이걸림 하지만일반적으로웜이퍼지는데에는 1 시간이내가소요 패치로부터자동으로몇분내에익스플로잇생성이가능하다면? 17

Automatic Patch-based Exploit Generation (APEG) 주요대상 : 입력값검증 (validation) 버그 관찰 : 입력값검증버그의경우, sanitization 체크를넣어서패치하는경우가대부분임 Patch P P 18

Automatic Patch-based Exploit Generation (APEG) Weakest precondition 패치된프로그램에서 sanitization 체크를통과하지못하는입력값을찾으면, 원래프로그램에서의익스플로잇일가능성이높음 Patch P P 19

한계점 입력값검증과관련된버그만처리가능 실제 Shell 을실행하는 exploit 과는거리가있음 20

2009, Heelan et al. Automatic Generation of Control Flow Hijacking Exploits for Software Vulnerabilities, MS Thesis 21

최초의 Control Flow Hijack 생성 주어진프로그램크래쉬에대해서정해진알고리즘에의해 exploit 을자동생성 문제점 : 특정한조건의 (eip 가 handle 되거나임의의쓰기가가능한 ) 크래쉬에대해서만 exploit 생성가능 22

2011, Avgerinos et al. AEG: Automatic Exploit Generation, NDSS 2011 최초로버그를찾고익스플로잇생성까지자동화 ( 소스기반 ) 23

AEG 의현재 24

AEG 관련연구들 AEG: Automatic Exploit Generation, NDSS 2011 Unleashing Mayhem on Binary Code, Oakland 2012 Autoamtic Exploit Generation, CACM 2014 Automatic Generation of Data-Oriented Exploits, USENIX 2015 Data-oriented Programming: On the Expressiveness of Noncontrol Data Attacks, Oakland 2016 25

Verification with a Twist Program Correctness Property Unexploitability property Verification Automatic Exploit Generation Safe Correct Incorrect Exploitable 26

기호실행 Symbolic Execution * Systematically explore execution paths For each execution path, construct a path formula that describes the input constraints to follow the path * Robert S. Boyer, et al., ACM SIGPLAN Notices 1975 William E. Howden, IEEE Transactions on Computers, 1975 James C. King, CACM 1976 27

기호실행 Symbolic Execution x = input(); if ( x > 42 ) { x > 42 True if ( x * x < 0 ) { False x = Symbolic x <= 42 True return x; False assert( false ); x > 42 x * x < 0 x > 42 x * x >= 0 } else return 42; x <= 42 28

경로식 Path Formulas x = input(); if ( x > 42 ) { True if ( x * x < 0 ) { False True return x; False assert( false ); x > 42 x * x < 0 x > 42 x * x >= 0 } else return 42; x <= 42 29

경로를탐색하는입력값생성 x = input(); x = 50 if ( x > 42 ) { True if ( x * x < 0 ) { False True return x; False assert( false ); x > 42 x * x < 0 x > 42 x * x >= 0 } else return 42; x <= 42 30

어떻게경로식을푸는가? SMT (Satisfiability Modulo Theory) Solver 를활용 x > 42 x * x >= 0 SMT Solver x = 50 31

All Inputs Path formula specifies all possible inputs here that trigger the same bug Program s Input Space 32

All Inputs Path formula specifies all possible inputs here that trigger the same bug Control-Flow Hijack Exploits Exploit is just another input that triggers bugs 33

All Inputs Path formula specifies all possible inputs here that trigger the same bug Add more specific constraints that encode exploits Exploit is just another input that triggers bugs 34

Exploit Constraints Path formula derived from a symbolic execution (logical and) Where to position attack code? Where to redirect Exploit the Constraints control flow? 35

AEG 관련연구들 소스기반 AEG: Automatic Exploit Generation, NDSS 2011 Unleashing Mayhem on Binary Code, Oakland 2012 Autoamtic Exploit Generation, CACM 2014 바이너리기반 36

바이너리분석의문제점 Binary analysis is difficult because binary code does not have any program abstraction 37

4C 8B 47 08 mov r8,qword ptr [rdi+8] BA 02 00 00 00 mov edx,2 48 8B 4F 20 mov rcx,qword ptr [rdi+20h] 45 0F B7 08 movzx r9d,word ptr [r8] E8 54 16 00 00 call 00000001400026BC 48 8B 74 24 38 mov rsi,qword ptr [rsp+38h] 8B C3 mov eax,ebx 48 8B 5C 24 30 mov rbx,qword ptr [rsp+30h] 48 83 C4 20 add rsp,20h 5F pop rdi C3 ret 48 8B C4 mov rax,rsp 48 89 58 08 mov qword ptr [rax+8],rbx 48 89 68 10 mov qword ptr [rax+10h],rbp 48 89 70 18 mov qword ptr [rax+18h],rsi 48 89 78 20 mov qword ptr [rax+20h],rdi 41 54 push r12 41 56 push r14 41 57 push r15 48 83 EC 40 sub rsp,40h 48 8B 9C 24 90 00 mov rbx,qword ptr [rsp+0000000000000090h] No Types, No Variable Names, No Functions, etc. 38

AEG 의역설 바이너리분석은어렵다 하지만 AEG 에서는소스코드보다바이너리분석이더쉽다 소스코드에서는상세한메모리구조를알수없음 소스코드가같더라도컴파일러마다전혀다른바이너리코드를생성할수있음 Exploit 을만드는데에는메모리구조에대한이해가필수적임 39

자동화된바이너리분석 ( 역공학 ) 01010101 01011111 01010101 01010101 01000100 10010001 11111101 01111101 00101010 Intermediate Language Control-Flow Graph Data-flow Analysis Program Verification Test Input Generation Exploit Generation Filter Generation Decompilation Deobfuscation ARM, MIPS, x86, 40

Mayhem: 최초의바이너리기반 AEG Exploit Generation Exploitable Bugs 0101010 1010001 0101010 1010001 0101010 1101000 1010001 0101010 1001101 1101000 1010001 1001101 1101000 1001101 1101000 Symbolic Execution 1001101 Binary Instrumentation Binary Code Mayhem Bugs 41

soritong muse gsplayer galan dizzy destiny coolplayer xtokkaetama xgalaga tipxd squirrel mail socat sharutils rsync psutils orzhttpd ncompress mbse-bbs iwconfig htpasswd htget gnugol glftpd ghostscript freeradius atphttpd aspell aeon a2ps 2 unknown exploits Windows (7) Linux (22) 1 10 100 1000 10000 100000 Exploit Generation Time (sec.) 42

지금까지의결과 37,391 distinct binaries from Debian Linux 7.7 years CPU-time 207 million test cases 2,606,506 crashes 13,875 unique (stack hash) bugs 152 exploits 43

Mayhem 의한계점 We do not claim to find all exploitable bugs Given an exploitable bug, we do not guarantee we will always find an exploit But Every Report is Actionable Lots of room for improving symbolic execution, chaining multiple vulnerabilities, etc. We do not consider defenses (such as DEP and ASLR) 44

또다른관련연구들 (Data Exploits) AEG: Automatic Exploit Generation, NDSS 2011 Unleashing Mayhem on Binary Code, Oakland 2012 Autoamtic Exploit Generation, CACM 2014 Automatic Generation of Data-Oriented Exploits, USENIX 2015 Data-oriented Programming: On the Expressiveness of Noncontrol Data Attacks, Oakland 2016 45

Timeline 2005 2008 2009 2011 2012 2015 46

AEG 의미래 47

AEG 에서의핵심 Challenge 는? 취약점을찾는것 vs. Exploit 을생성하는것 48

AEG 에서의핵심은취약점을찾는것이다 찾아낸취약점을유발하되, 특정조건을만족하면서그취약점에도달할수있는실행경로를 49

특정조건을만족하는실행경로? Return address 버퍼오버플로우발생 Return address Local variable 버퍼오버플로우발생 Local variable Buffer 동일한취약점서로다른경로 Buffer 50

EIP 를컨트롤하기 = EIP 를컨트롤할수있는실행경로찾기 51

취약점탐지기술의발전 White-box ( 기호실행 ) 과퍼징의접목 Driller, NDSS 2016 동적분석과정적분석과의접목 단순취약점이아닌취약점을도달하는여러경로에대한탐색기술발전 52

바이너리분석의발전 세계적관심분야 Singapore NUS: $6.1 Million Since 2014 Microsoft is commercializing their binary analysis tool 좀더정확히 program abstraction 을복원하는기술필요 53

Exploit Hardening 과의접목 방어체계를무력화하는방법 Q: Exploit Hardening Made Easy, USENIX Security 2011 54

다양한공격기술개발 Use-after-free 나 type confusion 버그등에대한자동화된공격기술개발 Memory leak 등을활용한취약점공격기술개발 1 개이상의취약점을접목한공격기술개발 55

자동화된패치기술과의접목 취약점의탐지, 검증에이어자동화된수정 ( 패치 ) 까지연결되는기술개발 핵심은버그의근본원인을자동으로파악하는것 Root cause analysis 56

결론 AEG 는 2005 년부터시작된신생분야이다 AEG 를위해서수많은프로그램분석기법이사용되어왔다. Bounded model checking Symbolic execution Weakest precondition AEG 에서바이너리분석은필수적이다. 단순히취약점을찾는것보다특정조건을유발하는실행경로를찾는것이더중요하다 앞으로더다양한방향으로의발전이예상된다. 57

Question? 58