악성코드와 분석 방안

31
1 악성코드와 분석 방안 2006. 5. 3 ㈜ 안철수연구소 ASEC 분석1팀 장영준 연구원

Upload: youngjun-chang

Post on 26-May-2015

1.030 views

Category:

Technology


8 download

DESCRIPTION

2006년 5월 기술지원 부서 대상 1차 교육 자료

TRANSCRIPT

Page 1: 악성코드와 분석 방안

1

악성코드와 분석 방안

2006. 5. 3

㈜ 안철수연구소

ASEC 분석1팀 장영준 연구원

Page 2: 악성코드와 분석 방안

2

목 차 1. 악성코드 이해

2. 악성코드 분석 절차

3. 악성코드 분석 도구

4. Reference Books

Page 3: 악성코드와 분석 방안

3

1. 악성코드 이해

Page 4: 악성코드와 분석 방안

4

1. 악성코드 이해 (1/5)

1. 바이러스 (Virus)

일반적으로 감염대상이 되는 프로그램 또는 코드에 자신의 코드 및 변형 코드를 삽입

주로 컴퓨터 시스템 내부에서만 감염 및 확산

예) 브레인, 미켈란젤로, CIH, 펀러브, 님다, 클레즈 등

[전위형 바이러스] [후위형 바이러스]

Page 5: 악성코드와 분석 방안

5

2. 웜 (Worm)

1. 악성코드 이해 (2/5)

컴퓨터의 기억장소 또는 내부에 코드 또는 실행파일 형태로 존재

실행 시 파일이나 코드를 네트워크와 전자우편 등을 통해 다른 시스템으로 자기 복제를 시도하는 형태

예) 코드레드, 블래스터, 새서, 베이글, 넷스카이, 마이둠 등

[네트워크를 이용한 전파] [메일을 이용한 전파]

Page 6: 악성코드와 분석 방안

6

3. 트로이목마 (Trojan Horse)

1. 악성코드 이해 (3/5)

자기 자신을 복제하지 않지만 악의적 기능을 포함하는 프로그램

악의적 목적에 적극적으로 활용되는 프로그램 또는 데이터 형태

예) 리니지핵, 핍뷰어, 옵틱스, 백오리피스 등

[공격자의 클라이언트 파일] [트로이목마 서버 파일]

[참고문헌] 정보보호 21C 3월호, 트로이목마의 시대적 변화와 기술적 발전

Page 7: 악성코드와 분석 방안

7

4. 악성코드 특성 비교

1. 악성코드 이해 (4/5)

특 성종 류 자기 복제 감염 대상 형 태 복구 방법

바이러스 삽입 / 겹침 치 료

트로이목마 독 립 삭 제

웜 독 립 삭 제

O O

X X

O X

※ 악성코드 분류의 기준이 점점 모호해짐

Page 8: 악성코드와 분석 방안

8

5. 악성코드 감염 경로

1. 악성코드 이해 (5/5)

OS와 어플리케이션의

취약점 이용

P2P 프로그램 이용

OS의 취약한 보안

설정 및 환경

인스턴트 메시징

프로그램 이용

전자 메일 이용

파일 다운로드

사회 공학 기법 보안 의식 부재

Computer System

Page 9: 악성코드와 분석 방안

9

2. 악성코드 분석 절차

Page 10: 악성코드와 분석 방안

10

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

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

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

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

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

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

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

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

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

2. 악성코드 분석 방법론

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

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

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

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

Page 11: 악성코드와 분석 방안

11

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

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

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

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

1. 파일 형태 분석

2. 사용 API 분석

3. 문자열 분석

1. 시스템 분석

2. 프로세스 분석

3. 레지스트리 분석

4. 네트워크 분석

6. 기타 분석

1. 증상 추가 분석

2. 각종 정보 수집

3. 관련 사항 확인

1. 디스어셈블링

2. 디버깅

1. 악성코드 판단

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

3. 분석정보 작성

분 석 프 로 세 스

Page 12: 악성코드와 분석 방안

12

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

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

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

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

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

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

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

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

[Virtual PC 2004] [Vmware Workstation ]

Page 13: 악성코드와 분석 방안

13

3. 악성코드 분석 도구

Page 14: 악성코드와 분석 방안

14

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

1. 헥사 코드 분석

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

윈도우 용 – Frhed, WinHex

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

[FrHed 실행]

[Hiew 실행]

Page 15: 악성코드와 분석 방안

15

3. 악성코드 분석 도구 (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 16: 악성코드와 분석 방안

16

3. 악성코드 분석 도구 (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 17: 악성코드와 분석 방안

17

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

4. 은폐 기능 파일 분석

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

Black Light – F-Secure 개발

RootKitRevealer – Sysinternals 개발

[BlackLight 실행]

[RootKitRevealer 실행]

Page 18: 악성코드와 분석 방안

18

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

5. 시스템 분석

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

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

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

[Install Control for Windows 실행]

[Winalysis 실행]

Page 19: 악성코드와 분석 방안

19

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

6. 프로세스 분석

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

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

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

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

Page 20: 악성코드와 분석 방안

20

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

7. 레지스트리 분석

Registar Lite – 레지스트리 분석

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

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

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

Page 21: 악성코드와 분석 방안

21

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

8. 네트워크 분석

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

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

[Ethereal 실행] [Analyzer 실행]

Page 22: 악성코드와 분석 방안

22

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

9. 네트워크 분석

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

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

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

[TCPView 실행] [Active ports 실행]

Page 23: 악성코드와 분석 방안

23

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

10. 시스템 모니터링

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

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

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

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

[FileMon 실행] [RegMon 실행]

Page 24: 악성코드와 분석 방안

24

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

[Unlocker 실행] [Listdlls 실행]

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

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

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

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

AutoRuns – 시스템 스타트업 분석

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

SuperScan – 네트워크 스캐너

Network Scaner – 네트워크 스캐너

11. 기타 유용한 분석 도구

Page 25: 악성코드와 분석 방안

25

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

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

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

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

[W32Dasm 실행]

[IDA 실행]

Page 26: 악성코드와 분석 방안

26

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

13. 실행 파일 디버깅

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

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

OllyDbg – 범용 실행 파일 디버거

[OllyDbg 실행] [SoftICE 실행]

Page 27: 악성코드와 분석 방안

27

4. Reference Books

Page 28: 악성코드와 분석 방안

28

4. 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 29: 악성코드와 분석 방안

29

4. 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 30: 악성코드와 분석 방안

30

5. 컴퓨터 보안 관련 서적

4. 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 31: 악성코드와 분석 방안

31

감사합니다

Q&A