• 스마트 파인더
    • Security Map
    • 견적 및 도입 문의
    • My Company
    • V3 Lite 다운로드
웹콘텐츠
위협 분석2014-01-29

[Focus In-Depth] 볼라틸리티를 이용한 메모리 포렌식 분석_1부

 “메모리 포렌식의 비밀을 열다”

 

 

컴퓨터 포렌식은 최근 몇 년 사이 침해 사고 대응과 분석 과정에서 중요한 기술적 분석 및 조사 기법으로 주목을 받고 있다. 그 동안 '월간 안’에서도 다양한 포렌식 기법을 소개해 왔으며, 앞으로 2회에 걸쳐 메모리 포렌식 기법을 집중적으로 살펴보려고 한다. 메모리 포렌식은 휘발성이 강하지만 고유의 독특한 정보가 많이 존재하는 물리적인 램(RAM)에 남아 있는 악성코드 감염과 관련된 다양한 흔적을 분석하는 기법이다.

 

 

1부_ 메모리 포렌식의 필요성과 공개용 메모리 분석 SW 소개 (이번 호)
2부_ 볼라틸리티를 이용한 메모리 분석 사례 (2014년 3월호)

 

 

컴퓨터 포렌식과 침해 사고 대응

 

일반적으로 컴퓨터 포렌식 또는 디지털 포렌식(Digital Forensic)은 범죄 수사에서 적용되고 있는 과학적 증거 수집 및 분석기법의 일종으로, 각종 디지털 데이터 및 통화기록, 이메일 접속기록 등의 정보를 수집, 분석하여 DNAㆍ지문ㆍ핏자국 등 범행과 관련된 증거를 확보하는 수사기법을 의미한다.


최근 발생하는 APT(Advanced Persistent Threat)를 포함한 침해 사고에서 악성코드(Malware, Malicious Code)는 조직 내부의 중요 기밀 데이터를 유출하는 과정에서 핵심적인 역할을 하고 있다. 그러므로, 피해의 시작과 범위를 조사하고 분석하기 위한 목적으로 포렌식은 반드시 필요한 보안 기술로 인정받고 있다. 즉, 기업의 내부 네트워크에서 발생한 침해 사고가 어떠한 경로로 이루어졌고, 어떠한 악성코드에 의해, 어떠한 데이터가 외부로 유출하였는지를 조사 및 분석하는 과정을 타임라인(Timeline)에 기반해 파악하기 위해서는 컴퓨터 포렌식 기법들이 가장 적합하고 효율적이기 때문이다.

 


이러한 특징으로 인해 침해 사고 대응과 분석에 사용되는 컴퓨터 포렌식 기법을 멀웨어 포렌식(Malware Forensic)이라는 표현으로도 자주 사용하고 있다.

 

 

다양한 멀웨어 포렌식(Malware Forensic) 기법


앞서 언급한 바와 컴퓨터 포렌식 기법들 중에서 멀웨어 포렌식(Malware Forensic) 분야에서 언급되는 기법들을 관점이나 기준에 따라 여러 가지 형태로 나눌 수가 있지만, 기술적인 면을 기준으로 나누어 본다면 크게 5가지 정도로 나눌 수 있다.
 

첫 번째는 메모리 포렌식(Memory Forensic)으로 휘발성이 강하지만 고유의 독특한 정보가 많이 존재하는 물리적인 램(RAM)에 남아 있는 악성코드 감염과 관련된 다양한 흔적(파일 실행, 네트워크 접속 및 프로세스 정보 등)을 분석하는 기법이다.

 
두 번째로는 레지스트리 포렌식(Registry Forensic)이다. 일반적으로 대부분의 악성코드는 감염된 시스템이 재부팅을 하거나 시스템 사용자가 특정 행위를 수행했을 때 악성코드 자신이 실행되기 위해 윈도 시스템의 레지스트리에 새로운 키(Key)를 생성 및 변경한다. 이러한 악성코드의 특징에 기반해 레지스트리를 중심으로 분석이 이루어지는 기법이 레지스트리 포렌식이다.
 

세 번째는 인터넷 포렌식(Internet Forensic)이다. 인터넷 사용이 보편화 됨에 따라 이메일 클라이언트(E-Mail Client), 메신저(Instant Messanger) 그리고 웹 브라우저(Web Browser)와 같이 인터넷 활동과 관련된 애플리케이션(Applications)으로 인해 악성코드에 감염되는 사례가 다수를 차지하고 있다. 그러므로 인터넷 관련 애플리케이션의 행위와 흔적(Artifact) 분석을 통해 악성코드의 감염 경로와 감염 매개체를 파악할 수 있다.

 
네 번째로는 네트워크 포렌식(Network Forensic)이다. 현재 발생하는 대부분의 악성코드는 어떠한 방식으로든 인터넷에 존재하는 시스템과 네트워크 연결이 이루어짐으로써 네트워크 패킷(Packet)에 기반한 분석을 통해 감염 경로와 함께 감염 시스템을 추적하고 분류할 수 있다.


그리고 마지막 다섯 번째로는 파일 시스템 포렌식(File System Forensic, 또는 디스크 포렌식(Disk Forensic)이다. 파일 시스템 포렌식은 전통적인 컴퓨터 포렌식 분야에서 중요하게 언급하는 기법 중 하나로 악성코드 감염이 의심되는 시스템의 디스크 이미징(Disk Imaging)을 통해 생성한 디스크 복사본을 인케이스(EnCase)나 FTK(Forensic ToolKit)와 같은 파일 시스템 분석 소프트웨어를 이용해 디스크 전체를 분석하는 기법이다.

 

 

메모리 포렌식(Memory Forensic)의 필요성


멀웨어 포렌식의 여러 가지 기술적인 분류 중에서 메모리 포렌식은 앞서 언급한 바와 같이 여러 가지 포렌식 소프트웨어를 이용하여 물리적인 램을 분석하는 일련의 과정이다.

 
메모리 포렌식은 최근 몇 년 사이에 주목을 받고, 그에 따른 연구가 활발하게 이루어지고 있다. 그 이유는 컴퓨터 시스템은 구조적으로 중앙처리장치(CPU, Central Processing Unit)에 의해 연산이 이루어지는데, 여기서 어떠한 소프트웨어라도 메모리인 RAM에 그 데이터와 코드가 적재되어야만 중앙처리장치에서 연산이 가능하기 때문이다. 이러한 컴퓨터 시스템의 특성으로 인해 메모리에는 하드디스크와는 다른 소프트웨어 또는 파일이 실행되는 과정이나 실행되었던 특유의 정보가 존재한다.

 


일반적으로 메모리 포렌식 과정에서 획득할 수 있는 메모리 분석 정보는 크게 4가지 정도로 나눌 수 있다.

 

 

1) 프로세스(Process)와 쓰레드(Threads) 정보


프로그램이나 파일이 실행 중이거나 이미 종료되었지만 메모리에 남아 있는 정보 추출

 

 

2) 모듈(Modules)와 라이브러리(Libraries) 정보

 

프로그램이나 파일이 실행 중이거나 이미 종료된 프로세스 관련 모듈과 라이브러리 정보 추출

 

 

3) 실행된 파일과 소켓(Sockets) 정보


실행 중이거나 이미 종료된 파일에 대한 정보와 네트워크 연결을 위해 사용되었거나 사용중인 소켓 정보 추출

 

 

4) 다양한 데이터 구조 정보

 

메모리에만 존재하는 운영체제, 소프트웨어 및 파일과 관련된 다양한 데이터의 구조 정보 추출

 

이렇게 메모리 포렌식 기법을 통해 획득할 수 있는 정보의 특성으로 인해 메모리 포렌식은 침해 사고 대응과 분석 과정에서 악성코드의 감염과 관련된 여러 주요 데이터를 확인할 수가 있다.

 

 

32비트 윈도 운영체제 메모리 구조와 분석 대상

 

메모리 포렌식에 대해 조금 더 구체적으로 논의하기 전에 일반적인 컴퓨터 시스템 구조상에서 메모리 역할과 메모리 포렌식에

서 분석 대상되는 부분에 대해 살펴보자.

 

일반적으로 32비트 윈도 운영체제에서는 특정 파일이 실행되기 위해 생성하는 모든 프로세스는 기본적으로 4GB의 가상 메모리(Virtual Memory)를 할당 받게 된다. 모든 프로세스가 할당 받게 되는 4GB 가상 메모리에는 아래 [그림 1]과 같이 2GB 크기의 유저 모드(User Mode)와 2GB 크기의 커널 모드(Kernel Mode)로 나누어 사용된다.

 

 

sdf
 

 

이렇게 윈도 운영체제로부터 4GB의 가상 메모리를 할당 받는 모든 프로세스는 개별적인 가상 주소(Virtual Address)를 가지고 있으며, 개별적인 가상 주소 영역에 포함된 코드들은 연산을 위해 다시 물리 메모리에 적재된다. 그러나, 윈도우 운영체제의 메모리 관리 구조는 물리적 크기 제한이 존재하는 램으로 인해 [그림 2]와 같이 주기적으로 가상 메모리의 내용을 하드 디스크에 존재하는 페이지 파일(Page File)로 이동하는 과정인 페이징(Paging)이 발생하는 형태를 가지고 있다.

 

sdfsf
 

이러한 구조를 가지고 있는 32비트 윈도 운영체제에서 메모리 포렌식의 분석 대상이 되는 곳은 [그림 2]에 표시되어 있는 바와 같이 물리적인 메모리 영역으로, 다양한 메모리 덤프(Memory Dump) 소프트웨어를 이용하여 해당 영역을 분석이 가능한 파일 형태로 생성한다.


그 외에도 특정 메모리 덤프 소프트웨어의 경우에는 페이징이 발생하는 페이지 파일 자체도 분석이 가능한 파일 형태로 추출해내기도 한다.

 

 

다양한 메모리 덤프 파일 생성 및 분석 소프트웨어


현재 인터넷과 시중에는 메모리 포렌식을 위해 다양한 형태의 메모리 덤프 소프트웨어와 이를 분석하기 위한 메모리 분석 소프트웨어가 존재한다. 각각의 소프트웨어는 공개용인지 상용으로 판매되는 소프트웨어 인지에 따라 기능적으로 조금씩 다른 특징이 있다.

 


여기에서는 일반적으로 많이 사용되는 공개용으로 알려진 소프트웨어를 중심으로 살펴보면 다음과 같다.

 

 

1) Win(32/64)dd.exe


Win(32/64)dd.exe는 메모리 덤프를 위해 2007년 마티유 시우슈(Matthieu Siuche)가 개발한 공개용 소프트웨어이다. 하지만 32비트와 64비트 버전이 별도로 존재함으로 메모리 포렌식의 대상이 되는 컴퓨터 시스템에 설치된 운영체제의 버전을 미리 확인해야 한다.

 


그리고 2008년부터 현재까지는 Moonsols(http://www.moonsols.com)에서 MoonSols Windows Memory Toolkit(http://www.moonsols.com/resources/)에 포함되어 무료로 배포 중이다.

 

 

sdfsf
 

 


2) DumpIt.exe


DumpIt.exe는 2007년 마티유 시우슈가 개발한 Win(32/64)dd.exe를 응용하여 제작된 공개용 소프트웨어로, 가장 큰 장점으로는 32비트 및 64비트 운영체제 버전에 상관 없이 메모리 덤프 파일을 생성 할 수 있다는 것이다. 그리고 메모리 덤프 파일 생성을 위해 특정 인자 값 입력 없이 dumpit.exe 실행만으로 해당 소프트웨어가 존재하는 동일 경로에 메모리 덤프 파일을 생성하는 것이 장점이다.

 

해당 소프트웨어 역시 2010년부터 Moonsols(http://www.moonsols.com)에서 MoonSols DumpIt (http://www.moonsols.com/resources/)으로 무료로 배포하고 있다.

 

 

sdfasdf

 

3) FTK Imager Lite


FTK Imager Lite는 액세스데이터(AccessData, http://www.accessdata.com/)라는 상용 컴퓨터 포렌식 소프트웨어개발 업체에서 개발하는 FTK(Forensic Toolkit)의 일부 기능을 제한하여 공개한 무료 버전 (http://www.accessdata.com/support/product-downloads)이다.

 

상용 버전에 비해 기능적인 한계는 존재하나 메모리 캡처(Capture Memory), 디스크 이미지 생성(Create Disk Image) 및 이미지 마운팅(Image Mounting)과 같은 기본적인 기능은 자유롭게 사용 가능하다.

 

sdfsaf 
 

 

액세스데이터에서는 현재 FTK Imager Lite 3.1.1.8 버전을 무료로 제공 중이며, 이 파일은 전체 약 75MB 크기로 USB에 복사하여 침해 사고가 발생한 것으로 추정되는 컴퓨터 시스템에 연결한 후 바로 사용이 가능하다.

 

 

4) 볼라틸리티(Volatility)

 

볼라틸리티는 파이선썬(Python) 프로그래밍 언어로 제작 된 메모리 분석에 많이 사용되는 공개용 소프트웨어이다. 현재 볼라틸리티는 볼라틸 시스템즈(https://www.volatilesystems.com/)에 의해 볼라틸리티 프레임워크(Volatility Framework)를 오픈 소스(https://code.google.com/p/volatility/)로 공개하고 있다.

 

 

sdfasf
 

 

볼라틸리티가 공개용 소프트웨어로 배포 중이어서, 메모리 분석과 관련된 다양한 기능을 가진 공개용 플러그인(Plugin) 파일이 개발되고 있다. 그리고, 침투 테스트(Pentest)를 목적으로 개발된 우분투 커널(Ubuntu Kernel) 기반 운영체제인 백트랙(BackTrack, http://www.backtrack-linux.org/downloads/) 및 칼리 리눅스(Kali Linux, http://www.kali.org/downloads)에도 포함되어 있다.

 

 

5) 맨디언트 레드라인(Mandiant Redline)

 

레드라인(Redline, https://www.mandiant.com/resources/download/redline)은 얼마 전 파이어아이(FireEye)에 인수된 침해 사고 대응을 전문으로 하는 보안 업체인 맨디언트(Mandiant)에서 개발해 무료로 공개한 메모리 분석 소프트웨어이다.


레드라인은 윈도 GUI(Windows GUI)를 기반으로 하는 메모리 분석 소프트웨어임으로 사용이 비교적 간단하며, 다른 공개용 메모리 분석 소프트웨어에 비해 비교적 빠르게 메모리 분석을 진행 할 수 있다.
 

werqw
 

 

그리고 레드라인에는 맨디언트에서 정의한 MRI(Mandiant for Intelligent Response) 기능으로 메모리 분석 과정에서 메모리 덤프 파일에 존재하는 악성코드로 의심되는 항목을 별도의 붉은색으로 표기하여 메모리 분석 시에 분석 시간 단축을 위해 효율성을 높이고 있다.


그러나 테스트 과정에서는 일부 악성코드로 판단되는 항목을 붉은색으로 표기하지 못하는 것을 발견했다. 그러므로 레드라인을 이용한 메모리 분석시에 MRI만을 전적으로 신뢰하기는 어려우니, 참고 용도로 사용하는 것이 좋다.

 

 

ewrwr

 

 

이 외에 메모리 덤프 파일에 존재하는 여러 데이터를 조합하여 시간 순서로 정렬한 타임라인 기능으로 인해 악성코드로 의심되는 항목이 최초 컴퓨터 시스템에 실행되었던 시각을 역으로 추적 할 수 있게 해준다.

 

 


sdfsf 

 

 

 

그러나, 레드라인을 이용해 메모리 덤프 파일을 생성하고 분석하기 위해서는 설치 및 실행을 위해 닷넷 프레임워크(.NET Framework) 4.0의 설치가 필요한 단점이 있다.

 

 

6) VMWare를 이용한 메모리 덤프 파일 생성과 분석

 

VMWare는 악성코드 동적 분석에도 많이 사용되는 가상화 소프트웨어로서, 2008년 브렛 셰이버(Brett Shavers)의 논문 ‘Virtual Forensics: A Discussion of Virtual Machines Related to Forensics Analysis’을 통해 VMWare를 이용한 메모리 덤프 생성과 분석이 공개됐다.

 


일반적으로 VMWare 소프트웨어에는 다음의 주요 확장자 파일로 구성된다.

 

.Log – 가상 머신(Virtual Machine)에 대한 일반적인 활동 기록 파일


.VMDK – 게스트 운영체제(Guest OS)에 대한 실질적인 가상 하드 드라이브(Virtual Hard Drive)


.VMEM – 게스트 운영체제에 대한 실질적인 가상 페이징 파일(Virtual Paging File)


.VMSN – VMWare에서 생성하는 스냅샷(Snapshot) 파일로, 게스트 운영체제에 대한 상태 저장


.VMSD – VMWare에서 생성한 스냅샷 파일에 대한 메타데이터(Metadata) 기록 파일


.NVRAM – 게스트 운영체제에 대한 바이오스(BIOS) 정보 기록 파일


.VMX – 게스트 운영체제에 대한 설정 기록 파일


.VMSS – 게스트 운영체제를 일시 중지(Suspend) 상태로 변경할 경우, 당시의 게스트 운영체제 상태를 저장한 파일

 

 

VMWare가 가지고 있는 위와 같은 주요 확장자 파일들 중 VMWare 소프트웨어에서 게스트 운영체제 상태로 가동 중인 시스템의 메모리 분석 대상은 .VMEM 확장자를 가진 파일이다. 게스트 운영체제에서 .VMEM 확장자 파일을 추출하기 위해서는 실행 중인 게스트 운영체제를 일시 중지 시켜 현재 메모리 상태를 저장해야 한다.

 

ertwert

 

 

그리고 .VMEM 확장자를 가진 파일을 별도로 복사하여 메모리 분석을 위한 소프트웨어를 이용하여 분석을 진행할 수 있다.
 

 

ertwe
 

 

 

볼라틸리티 프로젝트와 프레임워크

 

현재 메모리 분석을 위해 가장 널리 사용되고 있는 볼라틸리티는 최초 2006년 아론 월터스(Aaron Walters)의 메모리 분석 관련 FATKit 프로젝트에서 출발하여 볼라툴즈 프로젝트(Volatools Project)로 발전한 사례이다.


그 이후 2007년 아론 월터스에 의해 볼라틸리티 프레임워크 개발팀인 볼라틸 시스템즈가 만들어지고 해당 팀에 의해 현재 볼라틸리티 프레임워크는 공개용 소프트웨어로 자리잡았다.


 

현재 볼라틸 시스템즈에서는 볼라틸리티 프레임워크 개발과 함께 다양한 기능을 가진 플러그인 사용 및 제작에 대한 전문적인 강의를 진행 중이다.


 

볼라틸리티는 현재 2.3.1 버전이 공개 중이나 필자는 이 글에서는 버전 2.2 (https://code.google.com/p/volatility/wiki/Release22)를 기준으로 설명할 예정이다. 볼라틸리티 프레임워크 2.2 에서는 다음 운영체제 버전에서 생성된 메모리 덤프 파일에 대한 분석이 가능하다.

 

1) Windows (x86)

 

Windows XP Service Pack 2 and 3


Windows 2003 Server Service Pack 0, 1, 2


Windows Vista Service Pack 0, 1, 2


Windows 2008 Server Service Pack 1, 2

Windows 7 Service Pack 0, 1

 

 

2) Windows (x64)


Windows XP Service Pack 1 and 2


Windows 2003 Server Service Pack 1 and 2


Windows Vista Service Pack 0, 1, 2


Windows 2008 Server Service Pack 1 and 2


Windows 2008 R2 Server Service Pack 0 and 1


Windows 7 Service Pack 0 and 1

 

 

3) Linux


32-bit Linux kernels 2.6.11 to 3.5

64-bit Linux kernels 2.6.11 to 3.5

 

그리고 볼라틸리티 프레임워크 버전 2.2는 분석이 가능한 메모리 데이터 영역을 5가지로 구분하고 그와 관련된 다양한 명령어들이 존재하나, 이 글에서는 아래 3가지 영역만을 다룰 예정이다.

 

 

1) Windows Core


* Image Identification - imageinfo, kdbgscan, kpcrscan


* Processes and DLLs - pslist,pstree, psscan, psdispscan, dlllist, dlldump, handles, getsids, cmdscan, consoles, envars, verinfo, enumfunc


* Process Memory - memmap, memdump, procmemdump, procexedump, vadinfo, vadwalk, vadtree, vaddump, evtlogs


* Kernel Memory and Objects - modules, modscan, moddump, ssdt, driverscan, filescan, mutantscan, symlinkscan, thrdscan


* Networking - connections, connscan, sockets, sockscan, netscan


* Registry - hivescan, hivelist, printkey, hivedump, hashdump, lsadump, userassist, shellbags, shimcache, getservicesids


* Crash Dumps, Hibernation, and Conversion – crashinfo, hibinfo, imagecopy, raw2dmp


* Miscellaneous – strings, volshell, bioskbd, patcher, pagecheck

 

 

2) Windows GUI


sessions, wndscan, deskscan, atomscan, atoms, clipboard, eventhooks, gahti, messagehooks, screenshot, userhandles, gditimers, windows, wintree

 

 

3) Windows Malware


malfind, yarascan, svcscan, ldrmodules, impscan, apihooks, idt, gdt, threads, callbacks, driverirp, devicetree, psxview, timers

 

 

윈도와 백트랙에서 볼라틸리티 설치

 

현재까지 볼라틸리티 프레임워크는 일반적으로 많이 활용되고 있는 운영체제인 윈도 버전과 리눅스 버전 2개를 구분하여 공개 중에 있다.


 

이 중에서 윈도 환경에서는 다시 2가지 버전으로 구분되는데, 이 차이는 윈도 운영체제에서 단독으로 실행되느냐 설치가 필요한 패키지 버전이냐의 차이이다.

 

 

1) 단독 실행 형인 volatility-2.2.standalone.exe

 

볼라틸리티 2.2 단독형 윈도 프로그램 (https://volatility.googlecode.com/files/volatility-2.2.standalone.exe)

 

 

werqwree
 

 

 

2) 설치를 필요로 하는 volatility-2.2.win32.exe

 

볼라틸리티 2.2 윈도 모듈 인스톨러(https://volatility.googlecode.com/files/volatility-2.2.win32.exe)

 

윈도 운영체제에 설치를 필요로 하는 패키지인 volatility-2.2.win32.exe의 경우에는 기본적으로 제공되는 플러그인과 별도로 공개되는 플러그인 모두를 사용하기 위해서는 파이썬 2.6 또는 2.7 버전을 추가로 설치해야 한다.


리눅스를 지원하는 볼라틸리티 프레임워크의 경우에는 앞서 언급한 바와 같이 침투 테스트를 위한 우분투 기반 운영체제인 백트랙과 칼리 리눅스에는 기본적으로 볼라틸리티 2.2 버전이 포함되어 있다.

 

ertert

 

 

이 외에 SANS에 개발하여 공개 중인 SIFT(SANS Investigate Forensic Toolkit, http://computer-forensics.sans.org/community/downloads)라는 컴퓨터 포렌식 목적으로 제작된 우분투 기반 리눅스 운영체제에도 볼라틸리티가 기본적으로 포함되어 있다. 그러나 현재 공개 중인 SIFT 2.14 버전에는 볼라틸리티 프레임워크 2.0 버전이다. 하지만 2014년 상반기 중으로 SIFT 3.0 버전이 공개 예정이라고 하니, 볼라틸리티 버전 역시 변경 될 것으로 예상된다.

 

 

이렇게 윈도 및 리눅스 운영체제 모두를 지원하는 볼라틸리티 프레임워크는 일반적으로 윈도 운영체제에서의 사용을 권장하지 않는다.

 

그 이유는 마이크로소프트사에서 제공하는 보안 패치로 인해 볼라틸리티를 이용한 메모리 분석 과정에서 실제와 다른 오류가 발생할 수 있기 때문이다. 그러므로 일반적인 메모리 분석 과정에서는 백트랙과 같은 리눅스 환경에서 작업을 권장한다.
이러한 사유로 이후부터 다루는 볼라틸리티를 이용한 메모리 분석 전 과정은 백트랙 운영체제를 통해 진행되었다.

 

 

볼라틸리티를 이용한 메모리 분석 방법론


침해 사고가 발생해 악성코드 감염이 의심되는 시스템에서 생성한 메모리 덤프 파일을 분석하기 위해서는 [그림 14]와 같은 6단계의 절차를 이용하여 메모리 분석을 진행할 수 있다.

 

 

dsgfg

 

 

 

볼라틸리티를 이용한 각 단계별 분석 과정과 주요 프레임워크 명령어는 다음과 같다.


 

 

1) 운영체제 분석

 

메모리 덤프 파일을 생성한 운영체제가 어떠한 버전의 운영체제인지 확인하는 과정을 거치게 된다. 이 단계에서 확인한 운영체제 버전에 따라 향후 이루어지는 메모리 분석의 방향과 분석에 적용될 볼라틸리티의 명령어가 다르게 사용될 수 있다.

 

 imageinfo - 생성한 메모리 덤프 파일의 운영체제, 서비스 팩(Service Pack)과 하드웨어 정보 나열

 

 

2) 프로세스 분석


윈도 시스템에서 동작하는 악성코드는 다른 일반적인 윈도우 프로그램과 유사한 구조를 가지고 있으므로, 악성코드 역시 자신의 코드를 메모리에 적재한 후에 자신의 프로세스와 쓰레드를 생성하여야만 실행이 가능하다. 그러므로 확보한 메모리 덤프 파일에서 실행 중이거나 은폐된 프로세스 및 그와 관련된 정보를 분석한다.
    
 pslist - 실행 중인 프로세스 정보 나열


 psscan - 실행 중인 프로세스 정보와 함께 이미 종료된 프로세스 정보 나열


 psxview – pslist 및 psscan에서 확인한 프로세스 정보를 비교하여 나열함으로써, 은폐된 프로세스 정보 획득

 

 pstree - pslist와 유사한 정보를 보여주나 부모(Parent) 프로세스와 자식(Child Process) 프로세스 간의 상관 관계 나열
 

 procexedump – 프로세스의 메모리 영역에서 빈 공간(Slack space)를 포함하지 않고 바이너리(Binary) 형태로 추출

 

 volshell – 메모리 덤프 파일 분석 시에 Windbg와 유사한 명령 형식으로 분석

 

 

3) 네트워크 정보

 

최근 발견되는 대부분의 악성코드는 감염된 윈도 시스템에서 외부 네트워크와 접속을 시도한다. 특히 침해 사고에서 많이 발견되는 원격 제어 형태의 악성코드는 메모리 덤프 파일 내부에서 공격자가 접속한 원격 시스템을 확인할 수 있는 다양한 정보가 포함되어 있다.

 

 connections –활성화 상태의 네트워크 연결 정보 나열 (Windows XP, Windows 2003 Server 만 사용 가능)


 connscan - 활성화 상태의 네트워크 연결 정보와 함께 이미 종료된 네트워크 연결 정보도 나열 (Windows XP, Windows 2003 Server 만 사용 가능)

 netscan – 활성화 상태의 네트워크 연결 정보를 보여주나 윈도 비스타와 7 그리고 윈도 2008 서버에서만 사용 가능

 

 

4) DLL 및 쓰레드 분석

 

일부 악성코드의 경우에는 특정 프로세스에 자신이 생성한 DLL 파일을 인젝션(Injection) 하거나 특정 시스템 프로세스의 특정 메모리 쓰레드 영역에 자신의 코드를 삽입하는 경우가 있다.

 

 dlllist - 특정 프로세스에서 로드 한 DLL의 정보 분석


 ldrmodules - 특정 프로세스나 DLL에 의해 은폐된 DLL 정보 분석


 dlldump - 특정 프로세스에서 로드한 DLL을 바이너리 형태로 추출


 Malfind – 사용자 모드 형태로 은폐되어 있거나 인젝션된 코드 또는 DLL 정보 분석


 apihooks – 사용자 및 커널 모드에서 API 후킹 정보 분석

 

 

5) String 분석

 

악성코드에 감염된 것으로 추정되는 시스템에서 생성한 메모리 덤프 파일에 존재하는 특정 프로세스의 메모리 영역 전체 또는 인젝션된 DLL 및 쓰레드 영역을 바이너리 형태로 추출한다. 그 이후 바이너리 형태로 추출해 낸 파일에서 악성코드와 관련된 문자열 및 관련 IP 주소 등을 검색 할 수 있다.

 

 yarascan - YARA를 이용하여, 사용자 및 커널 모드 메모리 영역에 포함된 바이트(Byte) 순서, ANSI 및 유니코드 (Unicode) 문자열 검색


 string – 문자열 검색을 위해 백트랙에 기본적으로 포함된 프로그램

 

 

6) 레지스트리 분석

 

일반적으로 악성코드는 감염된 윈도 시스템이 재부팅 되더라도 자동으로 재시작하기 위해 윈도 레지스트리(Windows Registry) 영역에 특정 키(Key)를 생성하거나 특정 값(Value) 등을 변경한다. 그러므로 메모리 덤프 파일 내부에 남아 있는 레지스트리 관련 데이터의 분석을 통해 악성코드로 의심되는 파일을 추출할 수 있다.

 

 printkey - 특정 레지스트리 키에 포함되어 있는 하위 키(Subkeys) 값과 데이터를 검색하여 나열

 

 userassist – 메모리 덤프 파일에서 UserAssist 관련 레지스트리 키 정보 추출


 

지금까지 볼라틸리티를 이용해 악성코드 감염이 의심되는 시스템에서 생성한 메모리 덤프 파일을 이용해 분석을 진행하는 방법론과 6단계에 걸친 분석 과정을 소개했다. 다음 호에서는 볼라틸리티를 이용해 실제 악성코드에 감염된 시스템에서 생성한 메모리 덤프 파일을 이용해 분석한 사례를 살펴보자. @

  • AhnLab
    ASEC 분석팀 장영준 선임연구원
목록 보기

관련 콘텐츠

웹콘텐츠

생성형 AI 악용 의심 사례: LNK 파일에서 시작된 키로거 공격

생성형 AI 악용 의심 사례: LNK 파일에서 시작된 키로거 공격

웹콘텐츠

개인정보 유출의 새로운 쟁점, CI와 DI는 무엇인가요?

개인정보 유출의 새로운 쟁점, CI와 DI는 무엇인가요?

웹콘텐츠

침해 이후 골든 타임 확보가 관건! Dwell Time 줄이는 AhnLab EDR 대응 플레이북

침해 이후 골든 타임 확보가 관건! Dwell Time 줄이는 AhnLab EDR 대응 플레이북

웹콘텐츠

개인정보 동의서인 줄 알았던 바로가기 파일의 정체는?

개인정보 동의서인 줄 알았던 바로가기 파일의 정체는?

skip navigation
  • 메뉴
  • 본문
  • 하단 정보(링크)
  • 제품
    • AhnLab PLUS Platform
    • AhnLab Endpoint PLUS
      • 안티멀웨어
      • 엔드포인트 보호 플랫폼 (EPP)
      • 지능형 위협 대응
      • 엔드포인트 탐지 & 대응 (EDR)
      • 중소기업 보안
      • 모바일 보안
    • AhnLab Network PLUS
      • 차세대 방화벽 (ZTNA)
      • 차세대 방화벽
      • 디도스 방어
      • 네트워크 침입 방지 (IPS)
      • 지능형 위협 대응
      • 네트워크 위협 관리 (TMS)
    • AhnLab Cloud PLUS
      • 클라우드 워크로드 보안 (CWPP)
      • 클라우드 방화벽
      • 클라우드 IPS
      • 클라우드 네트워크 위협 관리
    • AhnLab Connect PLUS
      • 확장형 탐지 & 대응 (XDR)
      • 위협 인텔리전스 (TIP)
      • SOAR
    • AhnLab CPS PLUS
      • CPS 보안 통합 관리
      • OT 엔드포인트 보안
      • OT 가시성 및 위협 탐지
      • OT 휴대용 안티멀웨어
      • OT 방화벽
      • OT 일방향 데이터 전송
      • OT 지능형 위협 대응
      • IT 엔드포인트 보안
      • IT 안티멀웨어
      • CPS 위협 인텔리전스
    • AhnLab AI PLUS
    • 전체 제품 및 서비스
  • 서비스
    • AhnLab Service PLUS
      • 매니지드 탐지 & 대응 (MDR)
      • 보안관제
      • Professional Service
      • 디지털 포렌식
      • 클라우드 MSP
      • 정보보호컨설팅
      • 글로벌 파트너
    • 전체 제품 및 서비스
  • 솔루션
    • 랜섬웨어 보안
    • 하이브리드 클라우드 보안
    • 제로 트러스트
    • CPS 보안
    • SOC 고도화
    • 위협 탐지 & 대응 (TDR)
    • 디도스 방어
  • 구매
    • 견적 및 도입 문의
    • 스마트 파인더
    • 구매방식
    • 제품 정책
      • 소프트웨어
      • 네트워크
    • 전략 물자
    • 랜섬웨어 탐지 대응 통합 서비스 페이지 배너
  • 고객지원
    • 온라인 고객지원
      • 원격지원
      • 1:1상담
      • 전화상담 안내
      • FAQ
    • 기업 기술 교육
    • 위협정보 신고센터
    • 다운로드
    • 공지사항
  • 콘텐츠 센터
    • 콘텐츠 센터
      • 시큐리티 레터
      • 월간 安
    • ASEC
      • 위협정보
      • 위협 행위자 분류 체계
      • ASEC 보안권고문
      • ASEC 블로그
    • 하이라이트
      • 랜섬웨어 탐지·대응 통합 서비스
      • MITRE ATT&CK 평가 라운드 7
      • 안랩 창립 30주년
      • Frost Radar CPS 보안 리더
  • 파트너
my page
로그인회원가입
언어 선택

최근 검색어가 없습니다.

AhnLab

  • 회사소개
  • 투자정보
  • 채용정보
  • 사용권 약관
  • 개인정보처리방침
  • 이용약관
  • Contact Us
  • 사이트맵

기업정보

  • 대표이사 : 강석균
  • 사업자등록번호 : 214-81-83536
  • (우) 13493 경기도 성남시 분당구 판교역로 220
  • 통신판매신고번호 : 2012-경기성남-1189
  • 대표전화 : 031-722-8000
  • Fax : 031-722-8901
  • © AhnLab, Inc. All rights reserved.

News Letter

시큐리티 레터는 매주 놓쳐서는 안 될 보안 정보를,
월간 '安'은 매월 위협 분석과 보안 동향에 대한 깊이 있는 정보를 이메일로 보내드립니다.

뉴스레터 선택
뉴스레터
이용 동의
V3 엔진 버전OES : 2026.06.26.00SES : 2026.06.23.00
엔진 업데이트 바로가기
  • 카카오톡 채널 바로가기
  • 페이스북 바로가기
  • 링크드인 바로가기
  • 유튜브 바로가기