3. 악성코드 분석 사례

16
악성코드 분석 사례 2008.10.07 ㈜ 안철수연구소 AhnLab Security E-response Center Anti-Virus Researcher, CISSP 장 영 준 주임 연구원

Upload: youngjun-chang

Post on 12-Jun-2015

676 views

Category:

Technology


4 download

DESCRIPTION

2008년 서울여대 강의 자료

TRANSCRIPT

Page 1: 3. 악성코드 분석 사례

악성코드 분석 사례2008.10.07

㈜ 안철수연구소

AhnLab Security E-response Center

Anti-Virus Researcher, CISSP

장 영 준 주임 연구원

Page 2: 3. 악성코드 분석 사례

2

1. Dropper/PcClient.47873

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

1) Visual C++로 제작

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

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

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

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

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

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

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

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

1. 악성코드 분석 사례

Page 3: 3. 악성코드 분석 사례

3

2. 파일 형태 분석

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

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

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

1. 악성코드 분석 사례

Page 4: 3. 악성코드 분석 사례

4

3. 파일 구조 분석

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

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

구조 분석

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

하도록 제작된 실행 파일

비주얼 C++로 제작

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

1. 악성코드 분석 사례

Page 5: 3. 악성코드 분석 사례

5

4. 윈도우 API 분석

파일의 IAT (Import Address Table)

분석 툴로 윈도우 API 분석

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

이 아닐 것으로 추정

GetSystemDirectoryA

Process32Next

CreateRemoteThread

GetModuleHandleA

WriteProcessMemory

OpenProcess

AdjustTokenPrivileges

OpenProcessToken

LookupPrivilegeValueA

1. 악성코드 분석 사례

Page 6: 3. 악성코드 분석 사례

6

5. 파일 내부 문자열 분석

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

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

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

1. 악성코드 분석 사례

Page 7: 3. 악성코드 분석 사례

7

6. 파일을 시스템에서 실행

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

시스템 변화 분석

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

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

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

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

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

1. 악성코드 분석 사례

Page 8: 3. 악성코드 분석 사례

8

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

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

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

1. 악성코드 분석 사례

Page 9: 3. 악성코드 분석 사례

9

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

현재까지 분석 상황으로 미루어 은폐형 악성코드로 의심됨으로 은폐 기능을

탐지 할 수 있는 유틸리티로 시스템 분석

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

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

1. 악성코드 분석 사례

Page 10: 3. 악성코드 분석 사례

10

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

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

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

인젝션 (Injection)

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

1. 악성코드 분석 사례

Page 11: 3. 악성코드 분석 사례

11

10. 파일 디버깅 및 디스어셈블링 (1)

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

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

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

1. 악성코드 분석 사례

Page 12: 3. 악성코드 분석 사례

12

11. 파일 디버깅 및 디스어셈블링 (2)

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

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

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

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

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

등록 후 실행

1. 악성코드 분석 사례

Page 13: 3. 악성코드 분석 사례

13

12. 파일 디버깅 및 디스어셈블링 (3)

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

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

InternetSetOptionA, InternetOpenA, InternetOpenUrlA, InternetReadFile

1. 악성코드 분석 사례

Page 14: 3. 악성코드 분석 사례

14

13. 파일 디버깅 및 디스어셈블링 (4)

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

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

OpenSCManagerA, OpenServiceA

CreateServiceA, StartServiceA

YNCQJMKQ.sys는 KeServiceDescriptorTable 을 이용 하여

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

ZwCreateFile, ZwQueryKey, ZwEnumerateValueKey, ZwEnumerateKey ZwQuerySystemInformation, ZwQueryDirectoryFile

1. 악성코드 분석 사례

Page 15: 3. 악성코드 분석 사례

15

14. 파일 디버깅 및 디스어셈블링 (5)

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

로 인젝션(Injection) 후 실행

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

SetWindowsHookExA, CallNextHookEx, GetKeyboardState,

1. 악성코드 분석 사례

Page 16: 3. 악성코드 분석 사례

Q&A

감사합니다