25
1 악성코드 분석 도구 2006. 5. 17 ㈜ 안철수연구소 ASEC 분석1팀 장영준 연구원

악성코드 분석 도구

Embed Size (px)

DESCRIPTION

2006년 5월 버전

Citation preview

Page 1: 악성코드 분석 도구

1

악성코드 분석 도구

2006. 5. 17

㈜ 안철수연구소

ASEC 분석1팀 장영준 연구원

Page 2: 악성코드 분석 도구

2

목 차 1. 악성코드 분석 절차

2. 악성코드 분석 도구

3. Reference Books

Page 3: 악성코드 분석 도구

3

1. 악성코드 분석 절차

Page 4: 악성코드 분석 도구

4

1. 악성코드 분석을 위한 사전 지식

1. 악성코드 분석 절차 (1/3)

윈도우 운영체제에 대한 이해

윈도우 네트워크에 대한 이해

윈도우 프로그램에 대한 이해

프로그램 언어와 컴파일러의 이해

실행 파일 구조 (PE File Format) 에 대한 이해

실행 파일 보호 기법 (Packer, Protector, Anti-Debugging, Encryption 등) 에 대한 이해

실행 파일 분석에 따른 다양한 유틸리티의 활용법

2. 악성코드 분석 방법론

동적 분석 (Dynamic Analysis) – 파일 실행을 통한 증상 기반 분석

시간소요 적음, 자세한 분석 어려움

정적 분석 (Static Analysis) – 리버스 엔지니어링 (Reverse Engineering) 을 통한

코드 기반 분석, 시간소요 많음, 자세한 분석 가능

Page 5: 악성코드 분석 도구

5

3. 악성코드 분석 프로세스

1. 악성코드 분석 절차 (2/3)

동적 분석 (Dynamic Analysis) 정적 분석 (Static Analysis)

파일 분석 증상 분석 정보 분석 코드 분석 엔진 제작

1. 파일 형태 분석

2. 사용 API 분석

3. 문자열 분석

1. 시스템 분석

2. 프로세스 분석

3. 레지스트리 분석

4. 네트워크 분석

6. 기타 분석

1. 증상 추가 분석

2. 각종 정보 수집

3. 관련 사항 확인

1. 디스어셈블링

2. 디버깅

1. 악성코드 판단

2. 진단 시그니쳐및 함수 제작

3. 분석정보 작성

분 석 프 로 세 스

Page 6: 악성코드 분석 도구

6

1. 악성코드 분석 절차 (3/3)

4. 악성코드 분석을 위한 시스템 환경

일반 하드웨어 시스템 (Real Hardware & System)

일반 하드웨어를 이용한 윈도우 시스템으로 구성

외부 네트워크와 단절된 독립 네트워크를 구성

가상 운영체제 시스템 (Virtual System)

MS의 Virtual PC 2004, 2005 R2 또는 Vmware의 Vmware Workstation 을 이용한

가상 윈도우 시스템과 가상 네트워크를 구성

[Virtual PC 2004] [Vmware Workstation ]

Page 7: 악성코드 분석 도구

7

2. 악성코드 분석 도구

Page 8: 악성코드 분석 도구

8

2. 악성코드 분석 도구 (1/13)

1. 헥사 코드 분석

실행 파일의 구조 분석과 헥사 코드를 수정하기 위한 유틸리티

윈도우 용 – Frhed, WinHex

도스 용 – HE (Hexa Editor), HT, HIEW (Hacker’s View)

[FrHed 실행]

[Hiew 실행]

Page 9: 악성코드 분석 도구

9

2. 악성코드 분석 도구 (2/13)

2. 실행 파일 구조 분석

실행 파일의 정보, 구조 분석, 문자열 추출, 메모리 덤프, 실행 파일 재설계를 위한 유틸리티

윈도우 용 – LoadPE, PE Tools, PEiD, PEView, Dependency Walker, Import ReConstructor

PE Explorer, Stud_PE, PE Validator, ProcDump, BinText, WinDiff

도스 용 – PEinfo, PeDump, UltraPE, Handle

[PE Tools 실행]

[PEiD 실행]

Page 10: 악성코드 분석 도구

10

2. 악성코드 분석 도구 (3/13)

3. 기타 형태 파일 구조 분석

스크립트 디코딩 – Script Decoder

MIME 파일 – MIME Viewer, Base64, Base64 for Win

CHM 압축 해제 – CHM Decompiler, HTML Help Workshop

실행 압축 파일 Unpack – UNPACKTEST

Exploit 정보 – Exploit Finder (취약점 찾아줘)

엑셀, 워드, 파워포인트 파일 – V3DV, V3OLEInfo DFVIEW

[Base64 for Win 실행][Exploit Finder 실행]

Page 11: 악성코드 분석 도구

11

2. 악성코드 분석 도구 (4/13)

유저 모드와 커널 모드에서 은폐기능을 수행하는 루트킷 탐지

Black Light – F-Secure 개발

RootKitRevealer – Sysinternals 개발

[BlackLight 실행]

[RootKitRevealer 실행]

3. 기타 형태 파일 구조 분석

Page 12: 악성코드 분석 도구

12

2. 악성코드 분석 도구 (5/13)

5. 시스템 분석

Install Control for Windows – 시스템의 파일 변화, 레지스트리 변화 추적

InstallWatch – 시스템의 파일 변화, 레지스트리 변화 추적

Winalysis – 시스템의 파일 변화, 레지스트리 변화 및 기타 시스템 변화 추적

[Install Control for Windows 실행]

[Winalysis 실행]

Page 13: 악성코드 분석 도구

13

2. 악성코드 분석 도구 (6/13)

6. 프로세스 분석

Process Explorer – 시스템에 생성되는 프로세스 변화 분석

TaskInfo – 프로세스 변화 및 시스템 상태 분석

Process Viewer – Symantec 개발, 프로세스 변화 및 시스템 상태 분석

[Process Explorer 실행] [Process Viewer 실행]

Page 14: 악성코드 분석 도구

14

2. 악성코드 분석 도구 (7/13)

7. 레지스트리 분석

Registar Lite – 레지스트리 분석

Reg.exe – MS 개발. 커맨드 형태의 레지스트리 편집 프로그램

윈도우 2000, XP, 2003 시스템 기본 내장

[Reg.exe 실행][Registar Lite 실행]

Page 15: 악성코드 분석 도구

15

2. 악성코드 분석 도구 (8/13)

8. 네트워크 분석

Ethereal – 네트워크 패킷 덤프 및 흐름 분석

Analyzer – 네트워크 패킷 및 흐름 분석

[Ethereal 실행] [Analyzer 실행]

Page 16: 악성코드 분석 도구

16

2. 악성코드 분석 도구 (9/13)

9. 네트워크 분석

TCPView – 실시간 네트워크 포트 상태 분석

Active Ports – 실시간 네트워크 포트 상태 분석

Fport – 네트워크 포트 상태 분석

[TCPView 실행] [Active ports 실행]

Page 17: 악성코드 분석 도구

17

2. 악성코드 분석 도구 (10/13)

10. 시스템 모니터링

FileMon – 특정 프로세스의 파일 엑세스

RegMon – 특정 프로세스의 레지스트리 엑세스

TDIMon – 특정 프로세스의 네트워크 엑세스

API Monitor – 특정 프로세스의 API 사용

[FileMon 실행] [RegMon 실행]

Page 18: 악성코드 분석 도구

18

2. 악성코드 분석 도구 (11/13)

[Unlocker 실행] [Listdlls 실행]

HijackThis – 프로세스, BHO, 시스템 스타트업 분석

listdlls – 스레드로 인젝션된 DLL 파일 분석

Unloader – 스레드로 인젝션된 DLL 파일 언로드

Unlocker – Lock이 설정된 파일 언로드

AutoRuns – 시스템 스타트업 분석

ServerWin – 시스템 서비스 및 드라이버 분석

SuperScan – 네트워크 스캐너

Network Scaner – 네트워크 스캐너

11. 기타 유용한 분석 도구

Page 19: 악성코드 분석 도구

19

2. 악성코드 분석 도구 (12/13)

12. 실행 파일 디스어셈블링

W32Dasm – 실행 파일 디스어셈블과 디버깅 기능을 제공

IDA – 실행 파일 디스어셈블 기능 제공

[W32Dasm 실행]

[IDA 실행]

Page 20: 악성코드 분석 도구

20

2. 악성코드 분석 도구 (13/13)

13. 실행 파일 디버깅

WinDBG – MS 개발, 실행 파일 디버깅

SoftIce – NuMega 개발, 강력한 커널 모드 디버깅 기능 지원

OllyDbg – 범용 실행 파일 디버거

[OllyDbg 실행] [SoftICE 실행]

Page 21: 악성코드 분석 도구

21

3. Reference Books

Page 22: 악성코드 분석 도구

22

3. Reference Books (1/3)

1. 악성코드 관련 일반 서적

악성 모바일 코드 (윈도우 바이러스 작동원리와 퇴치) – 로저 그라이암스 (2001년)

Securing the Network from Malicious Code : A Complete Guide to Defending

Against Viruses, Worms, and Trojans - Douglas Schweitzer (2002년)

Malware : Fighting Malicious Code - Ed Skoudis, Lenny Zeltser (2003년)

Trojans, Worms, and Spyware, First Edition : A Computer Security Professional's Guide

to Malicious Code - Michael Erbschloe (2004년)

The Art of Computer Virus Research and Defense - Peter Szor (2005년)

2. 악성코드 형태별 관련 서적

Defense and Detection Strategies Against Internet Worms - Jose Nazario (2003년)

Subverting The Windows Kernel RootKit – Greg Hoglund & James Butler (2005년)

Page 23: 악성코드 분석 도구

23

3. Reference Books (2/3)

Windows NT/2000 Native API Reference - Gary Nebbett (2000년)

윈도우 2000 레지스트리 관리 – 폴 로비쇼 (2000년)

API로 배우는 윈도우 구조와 원리 - 야스무로 히로카즈 (2004년)

윈도우 인터널즈 4/E - Mark E. Russinovich & David A. Solomon (2004)

Microsoft Windows Registry Guide - Jerry Honeycutt (2005)

윈도우 시스템 실행 파일의 구조와 원리 – 이호동 (2005)

윈도우 구조와 원리 (OS를 관통하는 프로그래밍의 원리) – 정덕영 (2006)

3. 윈도우 운영체제 관련 서적

4. 윈도우 프로그래밍 관련 서적

Programming Application for Microsoft Windows 4/E – Jeffrey Richter (1999년)

Programming the Microsoft Windows Driver Model 2/E - Walter Oney (2003년)

Network Programming for Windows 2/E - Anthony Jones & Jim Ohlund (2003년)

어셈블리언어 4/E - KIP R. IRVINE (2004년)

프로그래밍 윈도우 5/E – 찰스 페졸드 (2005년)

Page 24: 악성코드 분석 도구

24

5. 컴퓨터 보안 관련 서적

3. Reference Books (3/3)

Introduction to Computer Security - Matt Bishop (2004년)

소프트웨어 보안 – Greg Hoglund & Gray Mcgraw (2004년)

6. 리버스 엔지니어링 관련 서적

Hacker Debugging Uncovered - Kris Kaspersky (2003년)

Hacker Dissembling Uncovered - Kris Kaspersky (2005년)

Reversing (Secrets of Reverse Engineering) – Eldad Eilam (2005년)

Disassembling Code : IDA Pro and SoftICE (2005년)

Page 25: 악성코드 분석 도구

25

감사합니다

Q&A