2.악성코드와 분석 방안

34
1 악성코드와 분석 방안 2007.03.06 ㈜ 안철수연구소 AhnLab Security E-response Center Anti-Virus Researcher, CISSP 장영준

Upload: youngjun-chang

Post on 12-Jun-2015

858 views

Category:

Technology


6 download

DESCRIPTION

2007년 3월 중국 법인 엔지니어 대상 교육 자료

TRANSCRIPT

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

1

악성코드와 분석 방안

2007.03.06

㈜ 안철수연구소

AhnLab Security E-response Center

Anti-Virus Researcher, CISSP 장 영 준

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

2

목 차1. 악성코드 분석 프로세스

2. 악성코드 분석 유틸리티

3. 악성코드 분석 사례

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

3

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

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

4

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

윈도우 운영체제 이해

윈도우 네트워크 이해

윈도우 프로그램 이해

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

다양한 파일 구조 이해

파일 보호 기법 (Packer, Protector, Anti-Debugging, Encryption) 이해

다양한 파일 분석에 필요한 다양한 유틸리티 사용법

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

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

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

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

1. 사전 지식

2. 분석 방법론

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

5

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

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

1. 파일 형태 분석

2. 사용 API 분석

3. 문자열 분석

1. 시스템 분석

2. 프로세스 분석

3. 레지스트리 분석

4. 네트워크 분석

5. 기타 증상 분석

1. 증상 추가 분석

2. 각종 정보 수집

3. 관련 사항 확인

1. 디스어셈블링

2. 디버깅

1. 악성코드 판단

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

3. 분석정보 작성

분 석 프 로 세 스

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

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

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

6

일반 하드웨어 이용

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

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

가상 시스템 (Virtual System) 이용

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

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

[Virtual PC 2007] [Vmware Workstation ]

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

4. 악성코드분석 환경

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

7

2. 악성코드 분석 유틸리티

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

8

2. 악성코드 분석 유틸리티

실행 파일의 구조와 헥사 코드(Hex Code)를 분석하기 위한 유틸리티

윈도우 – Frhed, WinHex

도스 – HE (Hexa Editor), HT, HIEW

[FrHed][PEView]

1. 파일 분석

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

9

실행 파일의 구조 분석, 문자열 분석, 실행 파일 재생성을 위한 유틸리티

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

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

도스 – PeDump, Handle

[PE Tools]

[PEiD]

2. 악성코드 분석 유틸리티

2. 실행 파일 구조 분석

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

10

윈도우 시스템에서 은폐되어 실행되는 실행 파일 탐지 프로그램

윈도우 – BlackLight, Anti-Rootkit, Rootkit Revealer, GMER, RkUnHooker

도스 – SVV

[GMER]

[SVV]

2. 악성코드 분석 유틸리티

3. 루트킷(RootKit) 탐지

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

11

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

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

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

[Install Control for Windows]

[Winalysis]

2. 악성코드 분석 유틸리티

4. 시스템분석

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

12

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

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

[Process Explorer] [TaskInfo]

2. 악성코드 분석 유틸리티

5. 프로세스분석

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

13

Registar Lite – 레지스트리 분석 및 편집

Reg.exe – 도스 모드 레지스트리 편집 프로그램

[Reg.exe][Registar Lite]

2. 악성코드 분석 유틸리티

6. 레지스트리분석

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

14

Ethereal – 네트워크 패킷 분석

Analyzer – 네트워크 패킷 분석

[Ethereal] [Analyzer]

2. 악성코드 분석 유틸리티

7. 네트워크패킷 분석

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

15

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

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

Fport – 도스 모드 네트워크 포트 분석

[TCPView] [Active ports]

2. 악성코드 분석 유틸리티

8. 네트워크포트 분석

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

16

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

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

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

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

[FileMon 실행] [RegMon 실행]

2. 악성코드 분석 유틸리티

9. 시스템모니터링

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

17

W32Dasm – 실행 파일 디스어셈블링과 디버깅

IDA – 실행 파일 디스어셈블링

[W32Dasm 실행]

[IDA 실행]

2. 악성코드 분석 유틸리티

10. 실행 파일 디스어셈블링(Disassembling)

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

18

WinDBG – 실행 파일 디버거

SoftIce – 강력한 커널 모드 디버깅

OllyDbg – 범용 실행 파일 디버거

[OllyDbg 실행] [SoftICE 실행]

2. 악성코드 분석 유틸리티

11. 실행 파일 디버깅(Debugging)

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

19

3. 악성코드 분석 사례

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

20

은폐 기능을 수행하며 별도의 파일들을 생성하는 드로퍼 (Dropper) 형태의 트로이목마

1) Visual C++로 제작

2) 윈도우 시스템 폴더에 2개의 DLL 파일과 1개의 드라이버 파일 생성

3) 생성한 드라이버 파일을 이용한 커널 모드(Kernel Mode) 은폐 기능 수행

4) 생성한 파일들에 대한 파일 및 레지스트리 은폐 기능 수행

5) 실행한 인터넷 익스플로러의 프로세스 및 네트워크 포트 은폐 기능 수행

6) 실행한 인터넷 익스플로러를 이용하여 외부 특정 시스템으로 접속 시도

7) 접속한 시스템을 통하여 제3의 시스템으로 재접속 후 공격자의 명령 수행

8) 실행 중인 모든 프로세스에 스레드 (Thread)로 인젝션 (Injection)하여

사용자가 입력하는 모든 키보드 입력을 후킹 (Hooking)

3. 악성코드 분석 사례

1. Dropper/PcClient.47873

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

21

헥사 코드(Hex Code)를 분석할 수 있는 유틸리티를 이용하여 파일 형태 분석

윈도우에서 실행이 가능하도록 제작된 PE (Portable Executable) 파일

.text, .rdata, .data의 3개의 PE (Portable Executable) 섹션 (Section)을 가지고 있음.

3. 악성코드 분석 사례

2. 파일 분석

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

22

3. 악성코드 분석 사례

파일의 구조를 분석할 수 있는

유틸리티를 이용하여 파일의

구조 분석

단독으로 윈도우에서 실행이 가능

하도록 제작된 실행 파일

비주얼 C++로 제작

메모리에서 시작 주소는 0x403466

3. 파일 구조 분석

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

23

파일의 IAT(Import Address Table)

분석 툴로 윈도우 API 분석

다음의 API들을 사용함으로 정상 파일

이 아닐 것으로 추정

GetSystemDirectoryA

Process32Next

CreateRemoteThread

GetModuleHandleA

WriteProcessMemory

OpenProcess

AdjustTokenPrivileges

OpenProcessToken

LookupPrivilegeValueA

3. 악성코드 분석 사례

4. 파일 IAT 분석

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

24

파일의 내부 문자열 (String)을 분석할 수 있는 유틸리티를 이용하여 분석

파일 내부 문자열 (String)에서는 정상 파일 또는 악성코드로 추정되는 특별한

내부 문자열을 확인 할 수 없음

3. 악성코드 분석 사례

5. 파일 내부 문자열 분석

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

25

시스템 변화를 분석 할 수 있는 유틸리티를 이용하여 파일을 시스템에서 실행한 후

시스템 변화 분석

생성된 파일은 없으나 레지스트리 키 값 생성으로 특정 드라이버 파일을 서비스로 등록

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\yncqjmkq "ImagePath"Type: REG_EXPAND_SZData: C:\WINDOWS\system32\drivers\yncqjmkq.sys

파일이 드라이버 파일을 생성하고 윈도우 서비스로 레지스트리에 등록한 것으로 확인

레지스트리 분석 유틸리티를 이용하여 해당 레지스트리 키 값을 검색해보았으나 정상 윈도우모드에서 확인되지 않음

해당 드라이버 파일을 윈도우 시스템 폴더의 드라이버 폴더에서 검색 해보았으나정상 윈도우 모드에서 확인되지 않음

3. 악성코드 분석 사례

6. 파일 실행 후 시스템 분석

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

26

네트워크 포트와 패킷을 분석할 수 있는 유틸리티를 이용하여 시스템의 네트워크 분석

사용되는 포트가 없으나 특정 시스템으로 접속하는 네트워크 패킷이 분석됨

3. 악성코드 분석 사례 (7/14)

7. 파일 실행 후 네트워크 분석

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

27

현재까지 분석 상황으로 미루어 은폐형 악성코드로 의심되어 은폐 기능을 탐지 할 수 있는

유틸리티로 시스템 분석

은폐 기능 탐지 유틸리티를 이용하여 인터넷 익스플로러가 은폐되어 있는 것을 탐지

그 외의 파일들이 윈도우 시스템에서 은폐되어 있는 것을 탐지

3. 악성코드 분석 사례

8. 파일 실행 후 시스템 추가 분석 (1)

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

28

실행 파일이 생성한 파일들의 현재 상태를 유틸리티를 이용하여 추가 분석

실행 파일이 생성한 YNCQJMKQ.D1L 은 은폐된 인터넷 익스플로러에 핸들 (Handle)로 실행

실행 파일이 생성한 YNCQJMKQ.DLL 은 실행 중인 프로세스들에 스레드 (Thread)로

인젝션 (Injection)

3. 악성코드 분석 사례

8. 파일 실행 후 시스템 추가 분석 (2)

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

29

실행 파일을 OllyDbg 를 이용하여 디버깅

3. 악성코드 분석 사례

실행 파일이 실행되면 시스템 사용자 계정의 임시 폴더 경로 확보

임시 폴더에 YNCQJMKQ.tmp, YNCQJMKQ.d1l 과 YNCQJMKQ.log 파일 생성

9. 파일 디버깅(Debugging)과 디스어셈블링(Disassembling) (1)

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

30

3. 악성코드 분석 사례

윈도우 시스템 폴더 경로 확보 후 생성한 파일들 중 YNCQJMKQ.tmp 는 YNCQJMKQ.dll 로

파일명을 변경하여 윈도우 시스템 폴더로 복사

YNCQJMKQ.d1l 은 명칭 변경 없이 윈도우 시스템 폴더로 복사

복사 이후 YNCQJMKQ.sys를 윈도우 시스템 폴더 아래의 drivers 폴더에 생성

인터넷 익스플로러를 실행한 후 YNCQJMKQ.d1l 를 인터넷 익스플로러의 핸들(Handle)로

등록 후 실행

9. 파일 디버깅(Debugging)과 디스어셈블링(Disassembling) (2)

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

31

YNCQJMKQ.d1l 는 실행된 인터넷 익스플로러를 통해 다음 함수들을 이용하여 파일내

하드코딩 된 주소의 특정 시스템으로 접속 후 파일 다운로드

InternetSetOptionA, InternetOpenA, InternetOpenUrlA, InternetReadFile

3. 악성코드 분석 사례

9. 파일 디버깅(Debugging)과 디스어셈블링(Disassembling) (3)

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

32

3. 악성코드 분석 사례

YNCQJMKQ.d1l 는 다음 함수들을 호출

YNCQJMKQ.sys를 윈도우 서비스로 실행

OpenSCManagerA, OpenServiceA

CreateServiceA, StartServiceA

YNCQJMKQ.sys는 KeServiceDescriptorTable 을 이용 하여

SSDT (System Service Descriptor Table) 후킹 (Hooking)을 하여 은폐 기능을 수행

ZwCreateFile, ZwQueryKey, ZwEnumerateValueKey, ZwEnumerateKey ZwQuerySystemInformation, ZwQueryDirectoryFile

9. 파일 디버깅(Debugging)과 디스어셈블링(Disassembling) (4)

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

33

3. 악성코드 분석 사례

YNCQJMKQ.dll를 CreateRemoteThread 함수를 이용 실행 중인 프로세스들에 스레드(Thread)

로 인젝션(Injection) 후 실행

인젝션된 YNCQJMKQ.dll는 다음 함수들을 이용하여 사용자가 입력하는 키보드 입력을 후킹

SetWindowsHookExA, CallNextHookEx, GetKeyboardState,

9. 파일 디버깅(Debugging)과 디스어셈블링(Disassembling) (5)

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

34

감사합니다

Q&A