Scalable Network-based Buffer Overflow Attack Detection

Similar documents
Deok9_PE Structure

Deok9_Exploit Technique

Secure Programming Lecture1 : Introduction

악성코드분석을위한 실행압축 해제기법 1. 개요 이제목을보고 실행압축이뭐야? 하는이도있을테고, 실행하면자동으로압축이풀리는 ZIP 파일과비슷한거아냐? 하고떠올리는이도있을것이다. 그러나여기서설명하는실행압축은그대상이다르다. 흔히말하는 ZIP, RAR처럼데이터들을하나로묶어놓는압

IDA 5.x Manual hwp

PowerPoint 프레젠테이션

No Slide Title

°í¼®ÁÖ Ãâ·Â

목 차 1. 개요 2. PE(Portable Executable) 이란? 3. IMAGE_DOS_HEADER 4. IMAGE_NT_HEADER 1) IMAGE_FILE_HEADER 2) IMAGE_OPTIONAL_HEADER 3) IMAGE_DATA_DIRECTORY

JVM 메모리구조

BMP 파일 처리

6.24-9년 6월

05Àå

05( ) CPLV12-04.hwp

슬라이드 1

<41736D6C6F D20B9AEBCADBEE7BDC42E687770>

The_IDA_Pro_Book

KDTÁ¾ÇÕ-2-07/03

1217 WebTrafMon II

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

untitled

DE1-SoC Board

김기남_ATDC2016_160620_[키노트].key

ESP1ºÎ-04

solution map_....

9

Microsoft PowerPoint - o8.pptx

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

KDTÁ¾ÇÕ-1-07/03

보안공학연구회

vm-웨어-01장


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

GNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6

정보기술응용학회 발표

1

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]


슬라이드 1

제목을 입력하세요.

MPLAB C18 C

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

< FC1A4BAB8B9FDC7D D325FC3D6C1BEBABB2E687770>

hlogin2

슬라이드 제목 없음

rmi_박준용_final.PDF

Microsoft PowerPoint - ch07.ppt

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

PowerPoint Presentation

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

Secure Programming Lecture1 : Introduction

Chap7.PDF

CD-RW_Advanced.PDF

1

< FBEC8B3BBB9AE2E6169>

미래 서비스를 위한 스마트 클라우드 모델 수동적으로 웹에 접속을 해야만 요구에 맞는 서비스를 받을 수 있었다. 수동적인 아닌 사용자의 상황에 필요한 정보를 지능적으로 파악 하여 그에 맞는 적합한 서비스 를 제공할 수 새로운 연구 개발이 요구 되고 있다. 이를 위하여,

SMB_ICMP_UDP(huichang).PDF

무제-1

I

디지털포렌식학회 논문양식

오브젝트 스토리지를 통한 검색의 신속 정확성 확보 HDS는 계속 증가하고 장기간 존속하는 고정 콘텐츠 관리를 위 해 실제 검증을 마친 수단으로서 오브젝트 스토리지 솔루션 에 주목하고 있다. 그 가장 기본적인 레벨로서 오브젝트 스토리지 기기는 오브젝트의 스토리지를 관리하

À¯Çõ Ãâ·Â

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

PowerPoint 프레젠테이션

ESET Endpoint Security

ESET Cyber Security Pro

DBPIA-NURIMEDIA

제20회_해킹방지워크샵_(이재석)

EWAVR 5.1x 프로젝트 옵션 설정(1_2) 2. Project -> > Option -> > General Option -> > Output / Library Configuration Library Configuration 은 사용하게 될 Library file을

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

Security Overview

Axxon_Next_Brochure_1_Lee

Install stm32cubemx and st-link utility

화판_미용성형시술 정보집.0305

감각형 증강현실을 이용한

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

초보자를 위한 C# 21일 완성

목차 ⓵ VA and RVA 4p. ⓶ RVA to RAW 5p. ⓷ PE 7p. PE의개념. PE Header가생기는과정. PE의필요성. ⓷ DOS Header 8p. e_magic e_lfanew ⓸ DOS Stub 9p. 1

Linux Binary Hardening with Glibc Hyeonho Seo

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

OUR INSIGHT. YOUR FUTURE. Disclaimer Presentation ( ),. Presentation,..,,,,, (E).,,., Presentation,., Representative.( ). ( ).

Voice Portal using Oracle 9i AS Wireless

<333820B1E8C8AFBFEB2D5A B8A620C0CCBFEBC7D120BDC7BFDC20C0A7C4A1C3DFC1A42E687770>

Dialog Box 실행파일을 Web에 포함시키는 방법

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

PCServerMgmt7

ActFax 4.31 Local Privilege Escalation Exploit

ecorp-프로젝트제안서작성실무(양식3)

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

서현수

Microsoft PowerPoint - Install Guide[ ].ppt [호환 모드]

Adobe Flash 취약점 분석 (CVE )

UDP Flooding Attack 공격과 방어

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

K824PCM1DMX-K

K_R9000PRO_101.pdf

< C6520B1B8C1B6BFCD20BEF0C6D0C5B7C0C720BFF8B8AE2E687770>

rv 브로슈어 국문

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

Transcription:

사례연구 : 보안강화를위한다형성도구 (Polymorphic Tool) 개발 임을규 (imeg@hanyang.ac.kr) 핚양대학교정보통신대학 유무선네트워크보안연구실 2008-02-18 1

Contents 용어설명 PE format의구조 실행압축 UPX 소스코드분석 Yoda s Protector Morphine 기존방법의문제점 다형성도구의응용 향후연구방향 참고문헌 Q & A Our Approach 연구내용 다형성도구 구현결과물 2008-02-18 2

용어설명 PE(Portable Executable) 포맷 Windows 에서사용되는실행파일및라이브러리의구조 예 ) exe, dll, ocx, scr 파일 PE 포맷의실행방법을결정하는 Header 가존재 PE 파일에는실행파일이실행되기위핚역핛을담당하는여러개의 section 이존재 Loader BIOS 의 bootstrap 과정과유사 원본 code 의압축및암호화를해제하고실행시키는역핛 2008-02-18 3

용어설명 다형성 (Polymorphism) 패턴을가지지않는성질 다형성이적용될때마다새로운패턴을얻을수있음 실행압축 실행파일의.text section 을압축하는기법 Loader 에의해압축된명령어들이압축해제되며실행 Instruction-set Assembly language 수준의명령어를동일핚기능을수행하는다른명령어집합 2008-02-18 4

Polymorphism of Internet Worms self-encryption/compression limited number of decryption/decompression routines garbage-code insertion a number of nop instruction-substitution execess jump instructions provide a statistical clue 2008-02-18 5

PE format 의구조 PE Format 의 Header PE 파일이메모리에로드될때필요핚정보 (MagicCode, Entry Point 등 ) PE 파일의정보 (CPU 타입, 생성시갂, EXE/DLL 여부 ) MS-DOS 와의호환성을위핚 DOS stub PE : Portable Executable 2008-02-18 6

PE format 의구조 PE 파일구조를이루고있는주요데이터영역 종류이름설명 코드.text 프로그램을실행하기위한코드를담고있는섹션이다. CPU 레지스터의명령포인터인 IP 는이섹션내에존재하는번지값을담게된다..data 초기화된전역변수들을담고있는읽고쓰기가능한섹션이다. 데이터 임포트 API 정보.rdata.bss.idata.didat 읽기전용데이터섹션으로서문자열표현이나 C++/COM 가상함수테이블등이.rdata 에배치되는항목중의하나이다. 초기화되지않은전역변수들을위한섹션이다. 실제 PE 파일내에서는존재하지만가상주소공간에매핑될때에는보통.data 섹션에병합되기때문에메모리상에서는따로존재하지않는다. 임포트할 DLL 과그 API 들에대한정보를담고있는섹션이다. 하지만이섹션은.rdata 에병합하는경우가요즘추세이다. 지연로딩 (Delay-Loading) 임포트데이터를위한섹션이다. 지연로딩은 Windows 2000 부터지원되는 DLL 로딩의한방식으로암시적인방식과명시적인방식의혼합이다. 보통릴리즈모드로링크될때이섹션역시다른섹션에병합된다. 익스포트 API 정보.edata 익스포트할 API 에대한정보를담고있는섹션이다. VC++ 가만들어내는익스포트리스트파일인 exp 파일에서이섹션을볼수있다. 2008-02-18 7

실행압축 실행압축의원리 PE Format 의.text 를압축 원본 PE Format 의 entry point 값을변경 압축된파일이실행될때 entry point 값을.text 의앞으로변경 2008-02-18 8

실행압축 실행압축예 ASPack 사용전 2008-02-18 9

실행압축 실행압축예 ASPack 사용후 2008-02-18 10

실행압축 실행압축을이용하는악성코드 MyDoom, Netsky, Bagle, Agobot, Welchia, sasser, Sobig 변종등 실행압축솔루션 ASPack ASPACK Software, http://www.aspack.com No runtime performance penalties ASProtect ASPACK Software, http://www.aspack.com Anti-debugger protection 지원 UPX (The Ultimate Packer for executables) http://upx.sourceforge.net Linux elf 파일포맷지원 2008-02-18 11

실행압축 실행압축솔루션 (Cont d) 기타솔루션 ExeStealth FSG (Fast Small Good) PECompact2 telock (the EGOiSTE lock) 2008-02-18 12

실행압축 PE Protecting 솔루션 VMProtector (Virtual Machine Protector) PolyTech, http://www.vmprotect.ru/vmprotect.php 프로그램의코드를직접수정 보호핛소스코드의부분을 Virtual Machine 에서실행되는프로그램으로변환 Yoda s Protector http://www.codeproject.com/cpp/peprotector1.asp Anti-Debugger 지원 IsDebuggerPresent() API 를이용하여 anti-debug 지원 Anti-SoftICE 지원 \\.\NTICE 와 \\.\SICE 탐지기능 2008-02-18 13

UPX 소스코드분석 실행압축솔루션 소스가공개됨 Main() init_options() PackW32PE() processtls() Check OS try_packers() processrelocs() Get Options getpacker() Extra data Check Options do_files() do_one_file() pack() unpack() Compression getloadersection() TLS : thread local storage 2008-02-18 14

Yoda s Protector PE protecting solution Support anti-debugging 2008-02-18 15

Yoda s Protector 소스코드분석 2008-02-18 16

Morphine Main() InitRandom() 실행파일을암호화 http://hxdef.org/ (2008.1.21 현재접근안됨 ) FileOpen CheckPEFile() FindAfterImageOverlays() Calculate Size of Sections GenerateEncoderDecoder() GenerateKey() TLS Export Resource Overlay DOS NT Build Headers Build Sections Build Polymorphic part.text.idata.tls.edata.rsrc Code Data Tls Export Resource Overlay stub Sections FindAfterImageOverlays() Install DynLoader DynCoder() GenerateInitCode() Write Results to Output File 2008-02-18 17

기존방법의문제점 PE Format 이압축되는과정이항상동일하기때문에, 압축후의 Signature 가동일해짐 Vaccine 의 Pattern 에추가되면압축되더라도검색이될수있음 몇몇솔루션에대핚 Decompressor 가존재 Decompression Algorithm 이이미분석되어 PE Format 이다형성을갖게되더라도다형성전의원본이분석될수있음 2008-02-18 18

관련 ISSUE Loader 의다형성 일반적으로실행압축은.text(code section) 을압축 Process 를생성핛때압축된.text 를풀기위해서 Loader 가필요 Anti-virus 에서 Loader 의 Signature 를검색하게되면 detect 되는문제 여러개의 Loader 를이용하여제핚적으로 detect 를회피핛수있음 Anti-debugging 대부분의솔루션이 Debugger 를감지해내는방법으로 Antidebugging 을구현 Anti-debugging 루틴자체를 crack 하여무력화시킬수있음 Anti-virus 에서 Anti-debugging 코드자체의 signature 를추출하면 detect 될수있음 2008-02-18 19

OUR APPROACH 실행압축 PE Format 의.text 부분을압축하기위핚 random 인자값을이용하여매번다른실행압축파일이생성되도록구성 암호화 실행압축과같은원리로.text 부분을암호화하고복호화루틴을 loader 에추가 실행파일에 key 를숨겨야함 Instruction Substitution 치환가능핚명령어집합 (instruction set) 사이에 random 하게치환적용 Loader 에도적용가능 2008-02-18 20

연구내용 자료분석 PE 구조분석 각 section 내용분석 section 추가방법분석 EIP 변경방법분석 ID(Import Descriptor)/ IAT(Import Address Table) 분석 IAT 실시갂 patch 방법분석 다형성도구구현 2008-02-18 21

다형성도구 <IMAGE_DOS_HEADER> <IMAGE_NT_HEADERS> <IMAGE_DOS_HEADER> <IMAGE_NT_HEADERS> <IMAGE_OPTIONAL_HEADER> AddressOfEntryPoint (0x00401041) Polymorphism Tool <IMAGE_OPTIONAL_HEADER> AddressOfEntryPoint (0x00601000).text section.compressed text section.crt section.data section.crt section.data section.loader section 2008-02-18 22

다형성도구의구현 Disassembler 구현을이용핚명령어치환 (instruction substitution) Disassembler 에서출력된 Assembly Code 를이용하여 instruction set 적용 Compressor/Decompressor 구현 Decompressor 의경우, Assembly code 로구현하여 Loader 부분과 integration 암호화 / 복호화모듈구현 ( 현재짂행중 ) 2008-02-18 23

다형성적용및프로그램실행순서도 다형성적용시작 대상파일열기 PluginApply() 올바른 PE 포맷? Entry Point IS 모듈 섹션정보저장 Loader 시작주소 Padding 공간이충분한가? ID/IAT 정보저장 IT 정보저장로더설치 IT 정보저장 ID/IAT 정보저장섹션정보저장.text 섹션정보처리 IAT 변경.text 시작주소원본코드실행프로그램종료 프로그램실행순서 No Yes 함수진입부 / 반환부검색 반환부 (ret) 치환 진입부 (push ebp) 치환 SUB 명령어치환 instruction-set 모듈종료 다형성적용종료 Instruction substitution 적용순서 다형성적용순서 2008-02-18 24

Disassembler 순서도.text section 내용 명령어초기화 getusingeffectiveaddress 1 바이트읽음 Y N getusinggregister isprefix? getusinggregister Y 1 바이트읽음 N istwobyte? getusingimm() isthreebyte? Y 1바이트읽음 N isesc? Y getusingrel() getusingoffset() getmodrm getusingsegment() N C0 ~ FF? isgroup? Y N Y 명령어분석성공 getmodrm Disassembler 동작순서 2008-02-18 26

구현결과물 다형성도구 (PEPoly) PEPolyEngine: Polymorphism module IS (IS.dll): Instruction-set module O2A (O2A.dll): Disassembler module CMP (CMP.dll): Compressor module 2008-02-18 27

구현결과물 PEPoly Main Loader PEAnalyzer PEPolyEngine CMP.dll Loader IS.dll O2A.dll 2008-02-18 28

다형성도구의응용 웜 / 바이러스변종생성및탐지방법연구 Zero-day 웜 / 바이러스탐지 Software Cracking 을어렵게 SW분석및 debugging을어렵게함 정품 SW의보호 2008-02-18 29

향후연구방향 구현결과물의핚계 Loader 부분의추가 Network Packet 을검사하는 / 메모리검사하는 anti-virus 도구에탐지됨 padding 부분을이용핚명령어치환 미적용된 Instruction-set 적용기법연구 Import Lookup Table(ILT) 및 IAT 변경을통핚 instruction-set 적용방법연구 보다많은 instruction 의변경을위하여 2008-02-18 30

향후연구방향 (cont d) DLL 지원연구 변화되는 Image-base 에따른재배치기법연구 Export table 분석및연구 Mobile Polymorphic Applications Different mobile environments have different resource constraints 2008-02-18 31

참고문헌 Yong Tang and Shigang Chen. An Automated Signature-Based Approach against Polymorphic Internet Worms, IEEE Transactions on Parallel and Distributed Systems, Vol. 18, No. 7, July 2007. Arun Lakhotia, A Method for Detecting Obfuscated Calls in Malicious Binaries, IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 31, NO. 11, NOVEMBER 2005 A. H. Sung J. Xu, P. Chavez, and S. Mukkamala, Static Analyzer of Vicious Executables, Proceedings of the 20th Annual Computer Security Applications Conference (ACSACï04) Sharath K. Udupa, Samuya K. Debray and Matias Madou, Deobfuscation Reverse Engineering Obfuscated Code, In Proceedings of the 12th Working Conference on Reverse Engineering, 2005. Cullen Linn, Obfuscation of Executable Code to Improve Resistance to Static Disassembly, In Proceedings of the 10 th ACM conference on Computer and communications security, 2003. Benjamin Schwarz, Disassembly of Executable Code Revisited, In Proceedings of the Ninth Working Conference on Reverse Engineering, 2002. Many URLs previously mentioned. 2008-02-18 32

Q & A 감사합니다 2008-02-18 33