62
제목 쓰는 공간입니다 ㈜ AhnLab / ASEC 한창규 선임 연구원 다형성 바이러스 분석 방법

제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

제목 쓰는 공간입니다

㈜ AhnLab / ASEC

한창규 선임 연구원

다형성 바이러스 분석 방법

Page 2: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

2

목차

Ⅰ. 바이러스바이러스 개요개요

Ⅱ. 바이러스바이러스 분석분석

Ⅲ. 다형성다형성 바이러스바이러스

Ⅳ. Case StudyCase Study

Ⅴ. 결결 론론

Page 3: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

3

Ⅰ. 바이러스 개요

1. 바이러스 정의

2. 바이러스 분류

3. 바이러스 발전 단계

4. 감염 기법

Page 4: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

4

1.바이러스 정의

악성코드악성코드 정의정의

The Malware (for "malicious software") is any The Malware (for "malicious software") is any program program

or fileor file that is that is harmful to a computer userharmful to a computer user. .

Thus, malware includes computer Thus, malware includes computer es, es, s, s,

s, and also s, and also , programming that, programming that

gathers information about a computer user withoutgathers information about a computer user without

permission. permission. ((영문영문 Terms)Terms)

바이러스바이러스 정의정의We define a computer We define a computer ‘‘virusvirus’’ as a program canas a program can

‘‘infectinfect’’ other programs by other programs by modifying themmodifying them to include to include

a possibly a possibly evolved copy of itselfevolved copy of itself. . ( Fred Cohen 1984 ]( Fred Cohen 1984 ]

WormWormVirusVirus

SpyWareSpyWareTrojan horseTrojan horse

Page 5: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

5

2.바이러스 분류

기 준 세 부 내 용

감염 대상

■ 부트바이러스 (부트 섹터 감염, Brain, Monkey, Anti-CMOS )

■ 파일 바이러스 (COM, EXE 실행파일 감염, 예루살렘, Sunday, Scorpion, Crow )

■ 부트/파일 바이러스 (부트섹터, 파일 모두 감염, Invader(1990), 안락사(Euthanasia))

■ 매크로 바이러스 (XM/Laroux)

운영 체제

■ DOS 바이러스 ( Brain, 예루살렘, 미켈란 젤로 등등)

■ Window 바이러스 (NE 계열 바이러스, PE 계열 바이러스)

■ Unix 바이러스

■ 기타

감염 위치

■ 기생형 바이러스 (Parasitic Virus)

■ 겹쳐쓰기형 바이러스 (Overwriting Virus)

■ 산란형 바이러스 (Spawning)

■ 연결형 바이러스 (linking Virus)

동작 원리■ 상주형 바이러스 (Resident Virus)

■ 비상주형 바이러스 (Non-Resident Virus)

바이러스바이러스 분류분류

Page 6: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

6

3.바이러스 발전 단계

•• 단순한단순한 구조구조, , 분석분석 용이용이

•• Stoned Virus, Jerusalem VirusStoned Virus, Jerusalem Virus

제 1세대(Primitive)

제제 11세대세대(Primitive)(Primitive)

•• 암호화암호화 기법기법 사용사용

•• Cascade Virus, Slow VirusCascade Virus, Slow Virus

제 2세대(Encryption)

제제 22세대세대(Encryption)(Encryption)

•• 은폐은폐 기법기법 사용사용

•• Joshi Virus, Wanderer VirusJoshi Virus, Wanderer Virus

제 3세대(Stealth)제제 33세대세대

(Stealth)(Stealth)

•• 분석분석 방해방해 (Polymorphic, EPO (Polymorphic, EPO 기법기법))

•• Whale VirusWhale Virus

제 4세대(Armour)제제 44세대세대

(Armour)(Armour)

Page 7: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

7

4.감염 기법 (1/4)

Entry PointEntry Point를를 수정하는수정하는 방법방법

프 로 그 램

감염전감염전 프로그램프로그램 크기크기

Entry Point

프 로 그 램 바이러스

감 염 전

감염후감염후 프로그램프로그램 크기크기

감 염 후

Entry Point

Page 8: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

8

4.감염 기법 (2/4)

Entry Point Entry Point 부분의부분의 코드를코드를 수정하는수정하는 방법방법

프 로 그 램

감염전감염전 프로그램프로그램 크기크기

Entry Point

Entry Point

111

222

감 염 전

감 염 후 프 로 그 램 바이러스

Page 9: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

9

4.감염 기법 (3/4)

EPO (Entry Point Obscuring) EPO (Entry Point Obscuring) 기법기법

프 로 그 램

감염전감염전 프로그램프로그램 크기크기

Entry Point

Entry Point

프 로 그 램 바이러스

111

222

감 염 전

감 염 후

Page 10: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

10

4.감염 기법 (4/4)

EPO (Entry Point Obscuring) EPO (Entry Point Obscuring) 기법기법

[[감염전감염전 코드코드]]

[[감염후감염후 코드코드]]

Page 11: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

11

Ⅱ. 바이러스 분석

1. 사전 지식

2. 분석 과정

3. 진단법

Page 12: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

12

1.사전 지식(1/14)

•• 기본기본 툴툴

- Frhed HexaEditor, UltraEdit

- Process Explorer

- PEID, LordPE

- Dependency Walker

•• 모니터링모니터링 툴툴

- FileMon

- RegMon

- TcpViewer, NetStat

- Analyzer, Etherreal

•• 디버깅디버깅 / / 디어셈플디어셈플 툴툴

- Dos Debuger

- OllyDbg

- IDA Pro

- WinDbg

- SoftICE

분석 도구분석분석 도구도구

•• 운영체제운영체제

- Process / Thread, DLL

- 가상메모리 / Memory Mapping

- 드라이버, 서비스 프로세스

- Kernel/Synchronization Object

- Structured Exception Handling

•• 통신통신

- TCP / UDP 프로토콜

- 통신 프로그램 구조

- Socket API

운영체제 / 통신운영체제운영체제 / / 통신통신

•• StartUp CodeStartUp Code

•• 실행실행 파일파일 구조구조 (EXE, NE, PE)(EXE, NE, PE)

•• 실행실행 압축압축

•• DLL Injection DLL Injection 기법기법

•• Stealth Stealth 기법기법

•• Windows File ProtectionWindows File Protection

분석 기본 지식분석분석 기본기본 지식지식

Page 13: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

13

1.사전 지식(2/14)

StartUp CodeStartUp Code

[StartUp Code][StartUp Code][[메인메인 덧셈덧셈 프로그램프로그램]]

Page 14: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

14

1.사전 지식(3/14)

실행파일실행파일 구조구조

Page 15: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

15

1.사전 지식(4/14)

실행파일실행파일 구조구조 (Import Directory Table)(Import Directory Table)

[Import Directory Table][Import Directory Table]

[Import Name Table][Import Name Table]

[Import Hints / Names][Import Hints / Names]

Page 16: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

16

1.사전 지식(5/14)

실행파일실행파일 구조구조 (Export Directory Table)(Export Directory Table)

[Export Directory Table][Export Directory Table]

[Export Address Table][Export Address Table]

[Export Name Table][Export Name Table]

Page 17: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

17

1.사전 지식(6/14)

실행실행 압축압축 ((분석지연분석지연, AV , AV 진단우회진단우회, , 다양한다양한 변형변형 제작제작))

[[실행압축실행압축 종류종류]]

Page 18: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

18

1.사전 지식(7/14)

실행실행 압축압축 (OEP)(OEP)

[[실행압축실행압축 이전이전 OEP]OEP]

[[실행압축실행압축 이후이후 OEP]OEP]

Page 19: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

19

1.사전 지식(8/14)

DLL Injection DLL Injection 기법기법 11

레지스트리레지스트리 등록등록 기법기법-- user32.dll user32.dll 를를 사용하는사용하는 프로그램에프로그램에 Injection (NT Injection (NT 계열계열))

-- user32.dll user32.dll 이이 다른다른 프로세스에프로세스에 attach attach 될때될때 레지스트리에레지스트리에 등록된등록된 dlldll를를 로드하여로드하여 attachattach

시켜줌시켜줌

[HKLM[HKLM\\SOFTWARESOFTWARE\\MicrosoftMicrosoft\\WindowsNTWindowsNT\\CurrentVersionCurrentVersion\\Windows]Windows]

"AppInit_DLLs"="d:"AppInit_DLLs"="d:\\WorkWork\\TestTest\\DebugDebug\\Test.dllTest.dll ““

Windows Message Hook Windows Message Hook 기법기법-- 정상적인정상적인 DLL Injection DLL Injection 기법기법((정상정상 프로그램에서프로그램에서 주로주로 사용되며사용되며, Win9x/NT , Win9x/NT 계열계열) )

-- SetWindowsHookEx, UnhookWindowsHookEx API SetWindowsHookEx, UnhookWindowsHookEx API 사용사용

Page 20: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

20

1.사전 지식(9/14)

DLL Injection DLL Injection 기법기법 22

DLL Forwarding DLL Forwarding 기법기법 (Proxy DLL)(Proxy DLL)-- 원본원본 DLLDLL의의 이름을이름을 변경한후변경한후, Hooking DLL, Hooking DLL를를 원본원본 DLL DLL 과과 동일한동일한 이름으로이름으로 변경변경

-- Hooking Dll Hooking Dll 에서는에서는 원본원본 DllDll의의 함수를함수를 Export Export 해야해야 하며하며, , 원하는원하는 동작후에동작후에

원본원본 함수를함수를 호출해야호출해야 함함

원본원본 : ws2_32.dll : ws2_32.dll ws2_32_org.dllws2_32_org.dll

Hook : hook.dll Hook : hook.dll ws2_32.dllws2_32.dll

Remote Thread Remote Thread 기법기법-- 타타 프로세스에프로세스에 ThreadThread를를 생성하는생성하는 API API 이용이용 (NT (NT 계열계열))

-- DLL InjectionDLL Injection를를 사용하는사용하는 최근최근 악성코드의악성코드의 대부분이대부분이 이이 기법기법 사용사용

-- CreateRemoteThread, WriteProcessMemory API CreateRemoteThread, WriteProcessMemory API 사용사용

Page 21: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

21

1.사전 지식(10/14)

[Win32/Korgo.worm DLL Injection][Win32/Korgo.worm DLL Injection]

Page 22: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

22

Stealth Stealth 기법기법사용자가사용자가 악성코드의악성코드의 설치설치/ / 감염감염 여부를여부를 확인확인 못하도록못하도록 함함

악성악성 코드코드 진단진단 회피회피

고전적 기법

•• 유사한유사한 파일명파일명, , 파일크기파일크기 변경변경, , 파일명파일명 숨김숨김 등등등등

•• 도스도스/BIOS /BIOS 인터럽트인터럽트 후킹후킹

-- 인터럽트인터럽트 백터를백터를 수정하여수정하여 메모리에메모리에 상주한상주한 바이러스바이러스 코드코드 호출호출

최신 기법

•• IAT(Import Address Table) HookingIAT(Import Address Table) Hooking

•• SSDT(System Service Dispatch Table) HookingSSDT(System Service Dispatch Table) Hooking

1.사전 지식(11/14)

•• IRP(I/O Request Packet) HookingIRP(I/O Request Packet) Hooking

•• DKOM(Direct Kernel Object Manipulation)DKOM(Direct Kernel Object Manipulation)

Page 23: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

23

1.사전 지식(12/14)

Stealth Stealth 기법기법 (SSDT (SSDT 후킹후킹))

Page 24: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

24

WFP (Windows File ProtectionWFP (Windows File Protection))A mechanism that protects system files from being modified or dA mechanism that protects system files from being modified or deletedeleted

시스템시스템 안정성안정성 (Stability) (Stability) 확보확보

시스템시스템 무결성무결성 (Integrity] (Integrity] 확보확보

DLL HELL DLL HELL 문제문제 해결해결

SFC.DLLSFC.DLL

WFP executable content.WFP executable content.

In XP only a proxy to SFC_OS.DLLIn XP only a proxy to SFC_OS.DLL

SFC_OS.DLLSFC_OS.DLL

WFP executable contentWFP executable content

SFC.EXESFC.EXE

System File Checker utilitySystem File Checker utility

UtilityUtility to scan WFP protected files for changes to scan WFP protected files for changes and replace altered versions.and replace altered versions.

SFCFILES.DLLSFCFILES.DLL

Contains list of protected filesContains list of protected files

System File Checker

System File System File CheckerChecker

Exports SfcGetFiles APIExports SfcGetFiles API

1.사전 지식(13/14)

Page 25: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

25

1.사전 지식(14/14)

WFP (Windows File Protection) WFP (Windows File Protection) 무력화무력화 기법기법

Closing Directory Change Notification HandleClosing Directory Change Notification Handle

Terminating SFC Watcher Thread via undocumented SFC APITerminating SFC Watcher Thread via undocumented SFC API

Disable WFP Disable WFP for 1 minutefor 1 minute

Disable WFP PDisable WFP Permanently via patches and undocumentedermanently via patches and undocumented

registry valueregistry value

Disable WFP Permanently for specific files via patching theDisable WFP Permanently for specific files via patching the

protected file listprotected file list

Page 26: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

26

2.분석 과정(1/2)

기초 분석(외형 분석, 증상 분석, 자료 분석) 상세분석기초기초 분석분석((외형외형 분석분석, , 증상증상 분석분석, , 자료자료 분석분석) ) 상세분석상세분석

외형 분석 증상 분석 자료 분석 상세 분석 엔진 반영

파일유형판단

문자열 추출및 분석

파일 등록정보 활용

샘플 접수정보 활용

전 이미지정보 수집

샘플 실행

후 이미지정보 수집

증상 정보분석

증상 정보추가 분석

각종 정보수집

로그 정보수집/분석

디어셈블 분석

상세 디버깅

엔진 반영여부 결정

진단시그니쳐및 함수 작성

분석정보작성

분 석 과 정

Page 27: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

27

2.분석 과정(2/2)

바이러스바이러스 분석분석 과정과정

1. 1. 기본기본 외형외형 분석분석

2. 2. 샘플샘플 셋셋 생성생성 및및 기본기본 증상증상 확인확인

3. 3. 바이러스의바이러스의 감염감염 유형유형 파악파악((전위형전위형, , 후위형후위형))

4. 4. 디버깅을디버깅을 통한통한 바이러스의바이러스의 전반적인전반적인 기능기능 확인확인

((감염감염 대상대상, , 감염감염 조건조건, , 감염감염 기법기법 등등등등))

5. 5. 호스트호스트 프로그램프로그램 실행실행 부분부분 분석분석

6. 6. 바이러스바이러스 특징특징 분석분석 ((일반일반, , 암호화암호화, , 다형성다형성 등등등등))

7. 7. 진단명진단명 명명명명

8. 8. 진단진단 문자열문자열 추출추출

9. 9. 치료치료 데이터데이터 작성작성 및및 검증검증 작업작업

Page 28: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

28

3.진단법 (1/3)

바이러스바이러스 진단법진단법

1. Signature 1. Signature 기반기반 진단법진단법

-- 진단진단 위치위치 (Entry Point / (Entry Point / 프로그램의프로그램의 전체전체 크기크기))

-- Signature (Signature (특정특정 영역영역 / / 특정특정 코드코드))

-- 특정특정 위치위치 진단법진단법 ((by Ahnlabby Ahnlab))

2. Non2. Non--Signature Signature 기반기반 진단법진단법-- 전용진단전용진단 함수함수 제작제작

선행조건선행조건 검사검사

악성코드악성코드 각각의각각의 특징을특징을 검사검사

3. 3. 행위행위 기반기반 진단법진단법

-- 악성코드악성코드 행위에행위에 대한대한 진단진단

파일파일 이름이름, , 인젝션인젝션, , 파일파일 Drop, Drop, 통신통신 포트포트 오픈오픈 등등등등

Page 29: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

29

3.진단법 (2/3)

Signature Signature 기반기반 진단법진단법

[[특정특정 영역영역 Signature]Signature]

[[특정특정 OP OP 코드코드]]

Page 30: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

30

3.진단법 (3/3)

NonNon--Signature Signature 기반기반 진단법진단법

[[전용전용 진단진단 함수함수]]

Page 31: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

31

Ⅲ. 다형성 바이러스

1. 다형성 바이러스 개요

2. 변형 기법

3. 다형성 바이러스 진단

Page 32: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

32

1.1. 암호화암호화 KeyKey

-- 동일한동일한 Decryption Decryption 루틴루틴

-- 가변가변 Key Key 값값

2. Decoding Buffer2. Decoding Buffer-- OverwrittingOverwritting

-- Stack MemoryStack Memory

-- Allocated MemoryAllocated Memory

3. 3. 암호화암호화 기법기법

-- Linear / NonLinear / Non--LinearLinear

-- Multiple LayerMultiple Layer

-- RDA RDA

EncryptionKey

EncryptionKey

KeySubstitution Table

KeySubstitution Table

$#!!%hello

1.다형성 바이러스 개요 (1/6)

암호화암호화 바이러스바이러스

Page 33: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

33

1.다형성 바이러스 개요 (2/6)

암호화암호화 바이러스바이러스

EP

Decoding RoutineDecoding Routine

111

[[감염감염 상태상태]]

Host Program

222

Encoded VirusEncoded VirusBodyBody

Page 34: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

34

Host

Program

EP

Decoding RoutineDecoding Routine

MutationMutationEngineEngine

Encoded VirusEncoded VirusBodyBody

1.다형성 바이러스 개요 (3/6)

Polymorphic VirusPolymorphic Virus

EP

Decoding RoutineDecoding Routine

111

Host

Program

Encoded VirusEncoded VirusBodyBody

222

[Encrypted Virus][Encrypted Virus]

Encrypted Virus Encrypted Virus

+ +

Mutation EngineMutation Engine

[Polymorphic Virus][Polymorphic Virus]

MtE , TPE , MtE , TPE , ……

Page 35: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

35

1.다형성 바이러스 개요 (4/6)

Polymorphic VirusPolymorphic Virus

[MtE][MtE]

Page 36: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

36

1.다형성 바이러스 개요 (5/6)

Metamorphic VirusMetamorphic Virus

Virus원본

*#!^%

&*^%#

~!#$^

EncodingEncoding

DecodingDecoding

G1G1G1

G2G2G2

GnGnGn

MetamorphicMetamorphic

G1

Virus원본

G4

Gn

G3

G2

Polymorphic VirusPolymorphic Virus Metamorphic VirusMetamorphic Virus

• ••

••

••

••

Page 37: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

37

1.다형성 바이러스 개요 (6/6)

Metamorphic VirusMetamorphic Virus

[ZMIST][ZMIST]

Page 38: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

38

2.변형 기법 (1/4)

사용사용 명령어명령어 변경변경

E : ModR/M follows the opcode and specifies the operand.

G : The reg field of ModR/M select a general register.

E : ModR/M follows the opcode and specifies the operand.

G : The reg field of ModR/M select a general register.

01C1 → ADD ECX, EAX 1100 0001

11C1 → ADC ECX, EAX 1100 0001

21C1 → AND ECX, EAX 1100 0001

31C1 → XOR ECX, EAX 1100 0001

31C2 → XOR EDX, EAX 1100 0010

Page 39: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

39

2.변형 기법 (2/4)

Garbage Garbage 명령명령 삽입삽입

Page 40: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

40

2.변형 기법 (3/4)

사용사용 Register Register 변경변경

1. Same code pattern1. Same code pattern

Page 41: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

41

2.변형 기법 (4/4)

PermutationPermutation

V1V1

V2V2

V3V3

V4V4

V5V5

V2V2

V5V5

V1V1

V4V4

V3V3

444PermutationPermutation

222

111

333

Page 42: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

42

3.다형성 바이러스 진단 (1/3)

다형성다형성 바이러스바이러스 진단진단

1. Signature 1. Signature 기반기반 진단진단-- 다형성다형성 엔진에엔진에 대한대한 시그니쳐시그니쳐 진단진단

-- 오진오진 / / 비정상비정상 치료치료

2. 2. 전용진단전용진단 함수함수-- 선행선행 조건조건

-- 사용된사용된 명령어명령어 패턴패턴 기반기반 진단진단

3. Emulation3. Emulation-- Emulation Emulation 시작시작 위치위치 ( EPO )( EPO )

-- Emulation Emulation 종료종료

-- 진단진단 속도속도 / / 예외예외 처리처리

-- AntiAnti--Emulation Emulation 기법에기법에 대한대한 대비대비

Page 43: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

43

3.다형성 바이러스 진단 (2/3)

전용전용 진단진단 함수함수 ((명령어명령어 패턴패턴))

[Win32/Zmist][Win32/Zmist]

Page 44: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

44

3.다형성 바이러스 진단 (3/3)

AntiAnti--Emulation TechniqueEmulation Technique

1. Co1. Co--Processor / MMX instruction usageProcessor / MMX instruction usage

2. Structured Exception Handling Usage2. Structured Exception Handling Usage

3. Random Virus Code Execution3. Random Virus Code Execution

4. Use Of Brute Force Decryption of Virus Code (RDA)4. Use Of Brute Force Decryption of Virus Code (RDA)

5. Use of API5. Use of API

Page 45: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

45

Ⅳ. Case Study

1. Win32/Polip 분석

2. 진단

3. 치료

Page 46: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

46

1. EPO 1. EPO 기법기법 사용사용

2. 2. 다형성다형성 엔진엔진 + XTEA + XTEA 변형변형

3. 3. 섹션섹션 빈빈 공간에공간에 코드코드 추가추가

4. NULL 4. NULL 섹션섹션 추가추가

5. 5. 파일파일 크기크기 증가증가 (60 ~ 70 KB)(60 ~ 70 KB)

6. Win32.Polipos 1.2 by Joseph 6. Win32.Polipos 1.2 by Joseph

EPEPEP

.data.data

.rsrc.rsrc

.null.null

PE HeaderPE Header

Section TableSection Table

.text.text

VirusVirusVirus

3.Win32/Polip 분석 (1/9)

Win32/Polip VirusWin32/Polip Virus

Page 47: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

47

3.Win32/Polip 분석 (2/9)

Polymorphic Engine Polymorphic Engine -- EPO (Entry Point Obscruing)EPO (Entry Point Obscruing)

[Pinball.exe [Pinball.exe 감염감염]] [Msn6.exe [Msn6.exe 감염감염]]

Page 48: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

48

3.Win32/Polip 분석 (3/9)

Polymorphic Engine Polymorphic Engine –– Random Memory AccessRandom Memory Access

Page 49: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

49

3.Win32/Polip 분석 (4/9)

Polymorphic Engine Polymorphic Engine –– Garbage Garbage 명령명령 삽입삽입

[Msn6.exe [Msn6.exe 감염감염]][Pinball.exe [Pinball.exe 감염감염]]

Page 50: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

50

3.Win32/Polip 분석 (5/9)

Polymorphic Engine Polymorphic Engine –– Random Code ExecutionRandom Code Execution

Page 51: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

51

3.Win32/Polip 분석 (6/9)

XTEA (eXtended Tiny Encryption Algorithm) XTEA (eXtended Tiny Encryption Algorithm) 원형원형

Page 52: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

52

3.Win32/Polip 분석 (7/9)

XTEA (eXtended Tiny Encryption Algorithm) XTEA (eXtended Tiny Encryption Algorithm) 변형변형

Page 53: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

53

3.Win32/Polip 분석 (8/9)

XTEA (eXtended Tiny Encryption Algorithm) XTEA (eXtended Tiny Encryption Algorithm) 변형변형

Page 54: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

54

3.Win32/Polip 분석 (9/9)

Win32/Polip XTEA Win32/Polip XTEA –– Decoding Decoding 루틴루틴 구조구조

Page 55: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

55

2.Win32/Polip 진단 (1/2)

Emulation ( PreEmulation ( Pre--Condition Condition 체크체크 ))

Page 56: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

56

2.Win32/Polip 진단 (2/2)

진단문자열진단문자열 ( Virus Body )( Virus Body )

Page 57: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

57

3.Win32/Polip 치료 (1/2)

치료치료 정보정보

V1V1

V2V2

V3V3

V4V4

V5V5

V6V6

0x7554 치료 데이터0x7554 0x7554 치료치료 데이터데이터

0x759E 치료 위치0x759E 0x759E 치료치료 위치위치

[[복호화복호화 후후 Stack]Stack]

06 FF 25 1111 0000 018406 FF 25 0184

[Pinball.exe [Pinball.exe 감염감염]]

02 AB 63 000002 AB 63 0000

BC C1 0001BC C1 0001

Page 58: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

58

EPEPEP

.data.data

.rsrc.rsrc

.null.null

PE HeaderPE Header

Section TableSection Table

.text.text

VirusVirusVirus 치료치료

EPEPEP

3.Win32/Polip 치료 (2/2)

치료치료 ( Entry Point ( Entry Point 치료치료 Vs Vs 원본원본 파일에파일에 가깝게가깝게 ))

PE HeaderPE Header

Section TableSection Table

.text.text

.data.data

.rsrc.rsrc

Page 59: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

59

Ⅴ. 결 론

Page 60: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

60

결 론

1. Evolution of Polymorphic Virus 1. Evolution of Polymorphic Virus

2. Analysis Technique of Polymorphic Virus2. Analysis Technique of Polymorphic Virus

3. Scanning Speed3. Scanning Speed

Page 61: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

61

참고 문헌

http://www.ahnlab.comhttp://www.ahnlab.com

http://www.ncsc.go.krhttp://www.ncsc.go.kr

http://www.kisa.or.krhttp://www.kisa.or.kr

http://www.sysinternals.comhttp://www.sysinternals.com

http://www.rootkit.comhttp://www.rootkit.com

http://www.microsoft.com/korea/technet/securityhttp://www.microsoft.com/korea/technet/security

http://msdn.microsoft.com/default.aspxhttp://msdn.microsoft.com/default.aspx

http://vx.netlux.org/lib/vmd03.htmlhttp://vx.netlux.org/lib/vmd03.html

httphttp://www.bitdefender.com/VIRUS://www.bitdefender.com/VIRUS--10000661000066--enen----Win32.Polip.A.htmlWin32.Polip.A.html

http://secunia.com/virus_informationhttp://secunia.com/virus_information

http://www.virusbtn.com/indexhttp://www.virusbtn.com/index

The Windows 2000 Device Driver BookThe Windows 2000 Device Driver Book

Inside Microsoft Windows2000 Third Edition (Mark E. Russinovich)Inside Microsoft Windows2000 Third Edition (Mark E. Russinovich)

Programming Applications for Microsoft Windows Fourth Edition (JProgramming Applications for Microsoft Windows Fourth Edition (Jeffrey Ritcher)effrey Ritcher)

Subverting The Windows Kernel Rootkits (Greg Hoglund)Subverting The Windows Kernel Rootkits (Greg Hoglund)

Programming the Microsoft Windows Driver Model (Walter Oney)Programming the Microsoft Windows Driver Model (Walter Oney)

The Art of Computer Virus Research and Defender (Peter Szor)The Art of Computer Virus Research and Defender (Peter Szor)

Hacker Dissembling Uncovered (Kris Kaspersky)Hacker Dissembling Uncovered (Kris Kaspersky)

Page 62: 제목쓰는공간입니다 다형성 바이러스 분석 방법 · 2018-01-08 · 4 1.바이러스 정의 악성코드정의 9The Malware (for "malicious software") is any program

62

Q/A

경청해경청해 주셔서주셔서 감사합니다감사합니다