(Microsoft Word - \304\277\263\316\275\272\306\324\270\336\300\317\267\257_Rustock.doc)

Similar documents
(Microsoft Word - ASEC Report 2007\263\3423\277\371\310\243.doc)

*2008년1월호진짜

1. Execution sequence 첫번째로 GameGuard 의실행순서는다음과같습니다 오전 10:10:03 Type : Create 오전 10:10:03 Parent ID : 0xA 오전 10:10:03 Pro

[ 악성코드상세분석보고서 ] SK 커뮤니케이션즈해킹관련상세분석보고서 nateon.exe 대응 2 팀

목차 1. 개요 배경 파일정보 상세분석 SMB 취약점공격흐름 특징적인행위 대응

<4D F736F F D20B9D9C0CCB7B5B9D9C0CCB7AFBDBA5FBCF6C1A42E646F63>

M C S 심 층 분 석 1 루트킷을이용하는악성코드 안철수연구소주임연구원 고흥환 1. 개요 루트킷설치는 SunOS, Unix, Linux 등의루트권한을획득하기위한해커들의가장중요한목적이기도하다. 루트킷 이라는이름의유래도바로이러한루트액세스를위한공격에서유래된것이다. 루트킷의

인터넷 비즈니스의 필수 요소, 트랜잭션 시큐리티 서비스 인터넷 비즈니스는 기업 영리 활동에 있어서 부가적인 서비스가 아닌 사업을 영위해 가는데 중요한 역할을 하고 있습니다. 특히, 인터넷 쇼핑몰, 인터 넷 뱅킹, 사이버 트레이딩, 전자정부서비스, 온라인 게임, 인터넷

07_alman.hwp

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

악성코드분석보고서 (Lucci.exe) 작성자 : 김진태 1

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

Microsoft Word - [Windows Hook] 6.HideProcess.doc

게시판 스팸 실시간 차단 시스템

Microsoft PowerPoint - chap01-C언어개요.pptx

<B1E2BCFAB9AEBCAD28C0CCB5BFBCF6295F F6F6B696E672E687770>

Windows 8에서 BioStar 1 설치하기

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<C1A4C8B8BFF8C6F2B0A15FB1E2BCFAB9AEBCAD5F444B4F4D5FC0CCB5BFBCF62E687770>

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

08_spam.hwp

5

Microsoft Word - FunctionCall

Secure Programming Lecture1 : Introduction

API 매뉴얼

untitled

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B

#WI DNS DDoS 공격악성코드분석

루트킷.doc

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

PCServerMgmt7

Chapter #01 Subject

Adobe Flash 취약점 분석 (CVE )

Microsoft PowerPoint - chap06-2pointer.ppt

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

Microsoft Word - MSOffice_WPS_analysis.doc

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

11장 포인터

기술문서 LD_PRELOAD 와공유라이브러리를사용한 libc 함수후킹 정지훈

1

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - additional01.ppt [호환 모드]

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

요약문 1. 연구제목 DLL Injection 을이용한 KeyLogger 제작및탐지방법연구 2. 연구목적및필요성인터넷의발달과컴퓨터의성능과보안프로그램성능과기술이발전함에따라악성코드의기술과기교도많이발전하였다. 그리고악성코드의기술도늘어남에따라초보자도쉽게사용이가능해지고본인이모르

chap 5: Trees

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

2006_8_14 (8_17 updated) ms ¿ú(wgareg.exe) ºÐ¼® º¸°í¼�.hwp

DLL Injection

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3. 악성코

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환

(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272)

The Pocket Guide to TCP/IP Sockets: C Version

PowerPoint 프레젠테이션

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2003) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2003 Exchange Server 2003 GFI MailEssentials 2010 fo

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

AhnLab_template

Lab 3. 실습문제 (Single linked list)_해답.hwp

Microsoft PowerPoint - polling.pptx

어댑터뷰

ActFax 4.31 Local Privilege Escalation Exploit

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

슬라이드 1

슬라이드 1

IoT FND8 7-SEGMENT api

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

11장 포인터

PowerPoint 프레젠테이션

슬라이드 1

UI TASK & KEY EVENT

슬라이드 1

JVM 메모리구조

Install stm32cubemx and st-link utility

JAVA PROGRAMMING 실습 08.다형성

< B3E2C1A632C8B8BFF6B5E531B1DE42C7FC2E687770>

Sharing Memory Between Drivers and Applications

wp1_ hwp

6주차.key

Chapter 4. LISTS

Chap 6: Graphs

#HNS-WI 북한의심 APT 공격에대한 Kaspersky 의분석정리

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

Content 1. DLL? 그게뭐야?

KEY 디바이스 드라이버

슬라이드 1

DLL(Dynamic Linked Library)

API 매뉴얼

05Àå

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

PowerPoint 프레젠테이션

개요 1. 후킹이란? 후킹의정의.. 2 후킹의종류 2 앞으로 후킹프로그램을위한사전지식들 Window 에서 data 입력과정.. 3 DLL ( Dynamic Link Library ).. 4 메시지후킹을위해필요한지식들 5 3. 후킹프로그램제작에필요한 API

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

논문 작성 기준

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

Transcription:

커널스팸메일러 (Rustock) 안철수연구소 ASEC 분석 1팀고흥환선임연구원 2005년이후악성코드의커다란변화는커널모드루트킷 (Rootkit) 의사용이빈번해지고있다는것이다. 뿐만아니라 2006년부터는그기법이매우정교해지고고급화되어안티바이러스업체나분석가로하여금상당한시간과노력을투자하게만들고있다. 2006년 VB(Virus Bulletin) 9월호 ROOTKIT ANALYSIS 기사에는최근의진보된루트킷하나를다루고있어흥미를주었는데, 바로 Rustock 이라불리는커널스팸메일러였다. 최근까지의가장진보된기술과은닉방법을사용하고있는 Rustock 에대해서장기간에 걸친상세분석결과와진단및치료를위한방법에대해서논의하고자한다. 1. Rustock 이란? 커널스팸메일러인 Rustock은생성된커널드라이버에서제작자가붙인이름 (Rustock rootkit v 1.2) 과프로젝트명 (Z:\NewProjects\spambot spambot\new\driver\objfre\i386\ driver.pdb) 을찾을수있다. 러시아인으로보이는제작자는커널루트킷커뮤니티에서활동하며다양한기법을연구, 발전시켜 2005년 12월초기버전을제작하고 2006년 7월까지 4 차례버전업데이트를하면서배포한것으로보인다. Rustock은윈도우커널모드루트킷과유저모드라이브러리로구성되며사용자몰래동적으로생성한스팸메일을발송하고, 외부로부터명령을받아들일수있도록통신포트를개방한다. 자체프로세스가존재하지않으며윈도우네트워크시스템모듈을변조하기때문에모니터링도구나스켄도구로부터도자유로울수있었다. 뿐만아니라그자체가파일로존재하지않도록 NTFS ADS(Alternate Data Streams) 에기록하여안티바이러스의파일감지를피하도록하였다. 2. 감염방법 기본적인감염방식을간단하게구성해보았다. 1 사용자가해킹된웹사이트에접속한다. 2 보안취약점을통하여사용자 PC 에드랍퍼 (Dropper) 가다운로드된다. 1

3 드랍퍼 (Dropper) 가실행되고 Rustock을 NTFS ADS에생성한다. 4 서비스등록및실행이되어커널모드루트킷이동작한다. 5 Services.exe에라이브러리 (A.DLL) 을인젝션 (Injection) 시킨다. 6 스팸메일발송및외부접속대기한다. 커널의루트킷은파일, 레지스트리, 오브젝트, 네트워크등을은닉시키는진보된기술을사용하 며, Services.exe 에인젝션되어진라이브러리는스팸발송과백도어로서의기능을맡고있다. < 그림 2-1 > 3. 진보된기술및기법 다형성 (Polymorphic) / 실행압축 다운로드된드랍퍼 (Dropper) 뿐만아니라 NTFS ADS(Alternate Data Streams) 에기록된 %WINDIR%\System32:lzx32.sys 는다형성으로실행압축되었다. 이다형성의기본골격은잘게쪼개진루틴들로이루어져있으며 PUSH / RET 방식으로호출되게하였다. 이러한방식을스파게티 (Spaghetti) 알고리즘이라한다. 이제까지의커널모드악성코드 (Rootkit) 는단순히유저모드의악성코드프로세스나레지스 트리를은닉하기위해사용되었으며, 실행압축과는거리가멀게생각되어왔다. 실행압축 2

해제에필요한 Kernel32.dll의 Export 함수인 LoadLibrary(), GetProcAddress() 등의함수를사용할수없다는것이문제였기때문이다. 그러나 Rustock은커널모드의 ntoskrnl.exe의 Export 함수인 ExAllocatePool(), ExFreePool(), ZwQuerySystemInformation(), _stricmp() 의함수포인터를구하여압축해제에사용하였다. < 그림3-1 > 은커널모드에서 Ntoskrnl.exe의로드이미지주소를얻기위해사용된방법이다. 드라이버로딩의주체는 System 프로세스 (ProcessID 4) 이며 FS:[--] A 은 System 프로세스의 NonPagePool Inherited Usage 주소즉, IDT(Interrupt Descriptor Table) 를가리킨다. IDT에는인터럽트서비스포인터가존재하며, 그포인터는 Ntoskrnl.exe의코드영역내를가리키고있을것이므로 Ntoskrnl.exe의로드이미지를얻을수있다. < 그림 3-1 > 4. 진보된기술및기법 NTFS ADS(Alternate Data Stream) NTFS 파일시스템의중요한특징은파일과폴더에대해서보안과스트림 (Stream) 적용을 추가하여 FAT 파일시스템보다효율적이고안정적인구조를설계한데에있다. Rustock에서는시스템폴더의 ADS(Alternate Data Stream) 영역에파일 (%WINDIR%\ System32:lzx32.sys) 을생성하고 SCM(Service Control Manager) 으로하여금서비스등록과실행을하도록하고있다. 그리고, 안티디텍션 (Anti-Detection) 방법으로 FileObject의 AccessState를변경하여 ADS 접근을제한하고, IoCallDriver API를후킹 (Hook) 하여 System32:lzx32.sys에대한접근 (IRP_MJ_CREATE, IRP_MJ_DIRECTORY_CONTROL) 의 IRP 요청에대해서거짓정보를리턴 (STATUS_OBJECT_NAME_NOT_FOUND) 함으로서자신을은 A 오용을막기위해정확한표기는생략한다. 3

닉시킨다. < 그림 4-1 > 5. 진보된기술및기법 System Service Call Hook 유저모드 (UserMode) 의 Ntdll.dll, User32.dll, Gdi32.dll B 은커널모드 (KernelMode) 시스템 서비스를요청할때, 다음과같은두가지방법을사용한다. 1 INT 0x2E (Interrupt 0x2E) Windows NT, 2000 2 SYSENTER (IA32_SYSENTER_EIP Register) Windows XP 이상 (3 월 ASEC 테크니컬리포트 루트킷을이용하는악성코드 참조 ) < 그림5-1 > 은 Intel CPU에서의 MSR(Model Specific Registers) 레지스터를소프트아이스에서불러온그림이다. SYSENTER 서비스에대한 CS:IP 주소가존재하는 MSR 레지스터의 0x174(IA32_SYSENTER_CS) 와 0x176(IA32_SYSENTER_EIP) 에대한포인터를 Ntoskrnl.exe의.rsrc Section의특정위치 (FATAL FATAL_UNHANDLED_HARD_DRROR) 로후킹 (Hook) 하고문자열 (FATAL) 5바이트는 JMP XXXXXXXX (E9XXXXXXXX) 로대체된다. IDT(Interrupt Descriptor Table) 의 0x2E Entry는 NT_SYSTEM_SERVICE_NT로정의된시스템서비스진입점포인터가존재한다. 바로 INT 0x2E로불리는데이에대한포인터를역시 Ntoskrnl.exe의.rsrc Section의특정위치 (FATAL_UNHA _UNHANDLED_HARD_DRROR) 로후킹 B 유저모드와커널모드사이의다리역할을하는서브시스템 (Subsystem) 4

(Hook) 하고문자열 (_UNHA) 5 바이트는 JMP XXXXXXXX (E9XXXXXXXX) 로대체된다. < 그림 5-2 > 는 Ntoskrnl.exe 의.rsrc Section 내에서후킹된 INT 0x2E 와 SYSENTER 가가 리키는주소로이곳은다시루트킷에의해 JMP 코드로덮어씌워진다. < 그림 5-1 > < 그림 5-2> 후킹설치가끝나고나면루트킷드라이버는 Ntoskrnl.exe 의코드영역에서참조되는모든 SYSENTER 참조포인터를후킹된주소로교체하는작업을한다. 그런데이렇게 INT 0x2E 와 SYSENTER 를후킹한이유가무엇인가? 결론을먼저언급하면특정서비스함수에대한후킹이목적이다. 하지만 Rustock은정작각각의서비스함수에대한후킹을하였던기존의루트킷의방법인 SSDT(System Service Dispatch Table) 의서비스함수후킹을사용하지않는다. 이유는간단하다. 많은루트킷디텍션 (Detection) 툴들이시스템의 SSDT(System Service Dispatch Table) 의포인터들을검사하여루트킷의존재를검사하였기때문이다. Rustock은실제로자신이후킹하고자하는서비스함수는정해져있다. 그래서 INT 0x2E와 SYSENTER를후킹하고복제본의 SSDT에서자신이목적으로하는서비스함수일경우에만특정주소로분기하게만들었다. 복제된 SSDT 에후킹서비스주소를등록하는서비스함수는다음의함수들이다. A. ZwOpenKey, ZwEnumerateKey, ZwQueryKey, ZwCreateKey B. ZwSaveKey, ZwDeviceIoControlFile 5

C. ZwQuerySystemInformation D. ZwTerminateProcess IofCallDriver는서비스함수가아니어서 Ntoskrnl.exe의 EAT(Export Address Table) 에서직접후킹등록한다. 6. 진보된기술및기법 DKOM Direct Kernel Object Manipulation의약자로사용되는 DKOM 기법은커널메모리에서유지, 관리하는모든오브젝트 (Object) 는이중연결리스트 (Double Linked List) 인원형큐 (Circular Queue) 로구성되어있는데이연결리스트의연결고리를끊어특정오브젝트를은닉하도록하는방법이다. < 그림 6-1 > 는특정커널드라이버오브젝트에대한은닉그림이며 DKOM 방식은메모리 보호, 대상오브젝트포인터획득, 오브젝트구조의이해등많은관련지식을필요로한다. < 그림 6-1 > Rustock은 DKOM 방식을사용하여다양한커널오브젝트를변경하는데그중에서서비스오브젝트는 SCM(Service Control Manager) 인 Services.exe 프로세스가관리하는서비스오브젝트전역변수를메모리에서찾아내링크를따라가며자신의서비스오브젝트명 (PE386) 을찾아관련링크를해제시키는방법을사용하였다. 6

< 그림 6-2 > 7. 진보된기술및기법 Asynchronous Procedure Call Rustock은커널루트킷 (Rootkit) 과시스템프로세스인 Services.exe에인젝션된라이브러리로구성된다는것은이미서두부분에서언급하였다. 문제는인젝션된라이브러리는어디로부터나와서어떻게 Services.exe의가상메모리에로드되어지며어떻게구동되느냐? 하는것이다. Windows는유저모드애플리케이션과커널모드드라이버간의데이터교환을위해 DeviceIoControl이라는 API 함수를사용한다. 드라이버는 DeviceIoControl에대한리턴버퍼를통해서유저모드애플리케이션에데이터를전송할수있다. 또는이벤트 (Event) 를사용한메모리매핑 (MemoryMapping) 을이용할수도있다. 하지만이방법들로는드라이버가유저모드의특정프로세스공간에라이브러리를로드시키고함수를호출하는것이불가능하다. NTSTATUS KeAttachProcess(PEB *); 다음의함수는 Ntoskrnl.exe에서 Export하는 Undocument API 함수이다. 인자값은 EPROCESS 포인터이며해당프로세스로의 Context Switch가동반된다. 즉, 현재프로세스의가상메모리번지지정을담당하는 CR3 레지스터가 EPROCESS가가리키는가상메모리번지로변경된다는것이다. 그러므로 Services.exe의가상메모리공간에메모리를할당받을수있게된다. Rustock 드라이버는시스템폴더 ADS(System32:lzx32.sys) 의마지막부분을읽어들이고복호화과정을거친뒤, Services.exe의할당된메모리공간에복호화된라이브러리데이터를옮겨심는다. 즉, 실행파일 (PE파일) 에대한메모리적재를수행하는시스템로더 (Loader) 의역할을 Rustock은내부적으로가지고있다. 7

VOID KeInitializeAPC ( struct _KAPC *APC, PKTHREAD thread, PKKERNEL_ROUTINE ker_routine, PKRUNDOWN_ROUTINE rd_routine, PKNORMAL_ROUTINE nor_routine, Unsigned char mode, Void *context ); VOID KeInsertQueueApc( struct _KAPC *APC, Void *SysArg1, Void *SysArg2, Unsigned char arg4 ); 다음의함수들은 Services.exe에적재시킨라이브러리의함수를호출할수있는방법을제공하는 API들이다. 붉게표시된부분은실제라이브러리의특정함수포인터와파라미터인자값들이다. Services.exe의메모리영역에복사된라이브러리는시스템의 IRQL Level이 APC가되었을때에호출되어진다. VOID rd_routine( ULONG *context, ULONG *SysArg1, ULONG *SysArg2 ); Services.exe 에인젝션 (Injection) 된라이브러리함수 rd_routine 가호출되어지면초기화 과정을거친뒤, 스팸메일발송과백도어로서의역할을시작하게될것이다. ( 악용될소지가 있어상세한기법은소개하지않을것이다.) 8. 진보된기술및기법 Network System Patch 윈도우 NT의네트워크구조의뼈대를이루는것이 NDIS(Nerwork Driver Interface Specification) 부르는커널네트워크라이브러리에서비롯된다. 마이크로소프트와 3Com사가공동개발하여네트워크하드웨어 (Hardware) 개발의공통인터페이스를제공하도록하였다. 윈도우네트워크시스템은바로 NDIS.SYS 드라이버라이브러리의익스포트함수 (Export Function) 를이용하여통신하게된다. Rustock은스펨메일발송과외부접속에따른네트워크통신을은닉하기위해서윈도우네트워크시스템의드라이버파일 (WanArp.sys, Tcpip.sys) 을패치 (Patch) 한다. Tcpip.sys와 WanArp.sys 모듈내부의.text 섹션 (Section) 에서다음과같은바이너리 OP 코드를찾아변경한다. 8

1 Tcpip.sys 코드영역 (FF 70 04 FF 50 30 => E8 XX XX XX XX 90) 2 WanArp.sys 코드영역 (FF 75 14 50 FF 50 54 => E8 XX XX XX XX 90 90) 패치된바이너리코드는네트워크접속 (Connection) 이이루어지는곳으로판단되며, 후에 스펨메일발송과외부접속에따른데이터위 / 변조를위한함수코드로디투어패치 (Detour Patch) 된다. < 그림 8-1 > Tcpip.sys 에대한 Detour Patch Tcpip.sys 프로토콜드라이버에대해서는다음의함수에대해서 IMPORT Address Table 에대한변경으로 IAT 후킹을더하였다. 1 NdisCloseAdapter 2 NdisOpenAdapter < 그림 8-2 > 는윈도우의네트워크시스템에대해서형상화한것이다. Rustock 은 Tcpip, WanArp 프로토콜드라이버의 NDIS_PROTOCOL_CHARACTERISTICS 구조체를변경하여네 트워크통신콜백 (CallBack) 함수에대한후킹을시도한다. 9

Rustock 루트킷드라이버 (PE386) 는 TDI(Transport Data Interface) 이하프로토콜 (Protocol) 드라이버단에서네트워크패킷 (NDIS_Packet) 에대한 Send/Receive 핸들러를통해 Services.exe에인젝션 (Injection) 시킨라이브러리 (A.DLL) 의스팸메일, 백도어 (Backdoor) 통신을방화벽 (Firewall), 모니터링 (Monitoring) 으로부터우회하도록하였다. < 그림 8-2 > 9. 진보된기술및기법 스팸메일 스팸메일을발송하고외부연결을위한백도어포트를오픈하는것은모두시스템프로세 스인 Services.exe 에인젝션된라이브러리 (A.DLL) 에서담당한다. 스팸메일을생성하고발송 하는순서는다음과같이표현된다. 1 다음의확장자를가진파일에서전송대상메일주소를추출한다. (wab,tbb,tbi,doc,xls,txt,csv,htm,html,xml,adb,asa,asc,asm,asp,cgi,con,csp,dbx,dlt,dwt,edm,hta,htc,inc,jsp,jst,lbi,php,rdf,rss,sht,ssi,stm,vbp,vbs,wml,xht,xsd,x st) 2 추출된메일주소중에서다음의문자열이포함된주소는제외시키는것으로판단된다. 10

(admin,info,support,soft,webmaster,help,web,postmaster,root,bugs,rating,site,c ontact,privacy,service,abuse,register,sales,cisco,gnu.org,bsd.it,debian,linux,ber keley,google,fido,ibm.com,microsoft.com,php.net,.mil,.gov,borland.com,sun.co m,xinul.com,virus,kaspersky,sophos,ripe.,iana.,drweb,secure,avp.,.arpa) 3 다음의단어들에대한 Google 검색을통해서메일본문을동적으로생성한다. (download,free,stuff,forum,politic,soft,crack,news,love,leave,games,enter,book, music,sport,console,editor) 4 SMTP(mx1.mail.yahoo.com) 서버에스팸메일을전송한다. 10. 진보된기술및기법 백도어 (Backdoor) 외부연결포트오픈역시시스템프로세스인 Services.exe에인젝션된라이브러리 (A.DLL) 에서이루어진다. 외부연결에따른모니터링및감지를피하기위해라이브러리에서는자체암호화를사용하는것으로보인다. 다음의 < 그림10-1 > 은시만텍자료에서추출한백도어공격세션연결통신에대한그림이다. 감염된시스템에접속하기위해암호화된키로구성된 HTTP 세션연결을시도한다. 인증이성공되면 RC4 암호화데이터로통신을유지하는것으로보인다. < 그림 10-1 > 11. 그밖의기법들 1 ~ 10 까지열거한기법들은상세분석당시에이제까지의다른악성코드에서보지못하 였거나특이한기법들에대해서나름대로 ( 주관적으로 ) 설명한것이다. 이외에도많은안티 디버깅, 안티디텍션, 정보은닉등의방법이사용되었으며몇가지를열거하면다음과같이 11

표현할수있다. 1 새로메모리에로드되는모듈에대한검사를통해디텍션툴을감지 (Rootkitrevealer, BlackLight, PKDetector, gmer, endoscope, DarkSpy, Anti- Rootkit) 2 Kaspersky 커널방화벽모듈무력화 (klif.sys) 3 안티디텍션 (Anti-Detection) 을위해로드된자체모듈 (lzx32.sys, A.DLL) 에대한 MZ, PE, NewHeader Offset에대한삭제. < 그림11-1 > 참조. < 그림11-1 > 4 안티디버깅을위한 VM-ware, Virtual PC, Softice 감지 (vmscsi.sys, vmx_fb.dll, vmmouse.sys, vmx_svga.sys, siwvid.sys, siwsym.sys, ntice.sys) 5 안티디텍션을위한레지스트리백업및복구 - ZwSaveKey, ZwDeviceIoControlFile에대한서비스호출시, 레지스트리키 HKLM\SYSTEM\CurrentControlSet\Services\PE386 를삭제 / 백업한후, 리턴될때다시복구하는방법으로은닉 12. 결론 이제까지 Rustock.B라불리는커널스팸메일러에대해서분석한결과를설명하였다. 현재 V3 엔진에는안정화문제가남아있어적용되지않았으며, 다만웹페이지에서다운로드가능한전용백신에는진단, 치료가적용되어있다. 완벽하고안정적인진단 / 치료를위해서는아직더많은시간과노력이필요할것으로보인다. 일반사용자들은 Rustock 자체가사용하는중복감염체크방법을이용하면쉽게감염여부를알수있을것도같다. Rustock은차체중복감염을이벤트오브젝트 (Event Object) 를통해서하기때문이다. 12

국내에는현재얼마나많이감염되어있는지보고된바가없다. 회사같은경우는게이트 웨이나라우터를통해서과다한 SMTP 네트워크가사용되면의심할만하다. 개인 PC 사용자 라면웹에서다운로드가능한전용백신으로체크해보는것도좋겠다. 13