볼라틸리티(Volatility)는 Volatility Foundation에서 제공하는 파이썬(Python) 스크립트 언어로 제작된 오픈소스(OpenSource) 메모리 포렌식 도구이다.


메모리 포렌식이란 포렌식 도구를 이용하여 분석 대상 시스템의 물리 메모리에서 침해사고와 연관된 정보 또는 증거 자료를 확보하기 위한 분석 행위이다.


최근 침해사고 조사와 악성코드 분석 과정에서 메모리 덤프를 추출하는 경우가 많다. 기존의 디스크 포렌식과 달리 메모리 포렌식에서는 용량은 작지만 많은 정보를 담고 있는 메모리 덤프 파일을 추출하여 조사한다.

 

메모리 덤프 파일에서 얻을 수 있는 정보는 하드 디스크에서 알 수 없는 현재 프로세스의 생성과 소멸 정보, 레지스트리 정보, 네트워크 연결 정보, 후킹 탐지 기능 등의 정보를 알아낼 수 있다.


볼라틸리티는 이런 정보들을 포함한 플러그인들이 존재한다.


볼라틸리티 공식 홈페이지


볼라틸리티 공식 홈페이지


메모리 포렌식 도구에 따라 지원되는 플랫폼과 기능이 다르므로 하나의 도구만 사용하는 것보다 분석 환경에 따라 여러 도구들을 사용하는 것을 추천한다. 하지만, 본 문서에서는 볼라틸리티만 사용한다.


메모리 획득 도구


도구 이름 인터페이스 플랫폼 제조사 라이센스
DumpIt CLI Windows MoonSols Freeware
win(32/64)dd CLI Windows MoonSols Free/Comm
FastDump Pro CLI Windows HBGary Commercial
mdd CLI Windows ManTech Opensource
Memorize
(For Mac)
GUI Windows Mandiant Freeware
FTK Imager (Lite)
CLI FTK Imager for Debian, Ubuntu, Fedora, RedHat, Mac OS.
GUI Windows AccessData Freeware
WinPmem CLI Windows Michael Cohen Freeware
fmem CLI Linux niekt0 Freeware
LiME CLI Linux Joe Sylve Freeware
Second Look® Linux Memory Acquisition CLI Linux Raytheon Pikewerks Commercial
Mac Memory Reader™ CLI Macintosh Mac Marshal™ Freeware
OSXPMem CLI Macintosh Michael Cohen Freeware

도구 이름 인터페이스 플랫폼 제조사 라이센스
Redline GUI Windows Mandiant Freeware
Volatility CLI Anywhere Volatile Systems Opensource
Memorize & Audit Viewer GUI Windows Mandiant Freeware
Responder Pro GUI Windows HBGary Commercial
Second Look® Linux Memory Analysis CLI Linux Raytheon Pikewerks Commercial
Volafox CLI Mac OS n0fate Opensource
Volafunx CLI FreeBSD n0fate Opensource

볼라틸리티는 학습을 위해 악성코드가 감염된 메모리 덤프 셈플 파일을 제공한다. 샘플 파일을 다운로드해보면 vmem 확장자를 가진다.


vmem 확장자 파일은 VMware 소프트웨어에서 제공하는 게스트 운영체제(Guest Operating System)에 대한 실질적인 가상 페이징 파일(Virtual Paging File)이다.


메모리 덤프 샘플 파일


메모리 덤프 샘플 파일


vmem 확장자 파일 추출
VMware 소프트웨어는 악성코드를 실행하고 분석하기 위해 많이 사용한다.
현재 게스트 운영체제가 구동중인 상태의 vmem 확장자 파일(메모리 파일)를 추출하려면 실행 중인 게스트 운영체제를 일시 중지 시키면 vmem 확장자 파일이 생성된다.


여기서 주의할 점은 일시 중지 시키지 않고 종료시키면 vmem 확장자 파일은 생성되지 않는다. 왜냐하면 휘발성 데이터를 저장하고 있기 때문에 종료시키면 사라져버리기 때문이다.


생성된 vmem 확장자 파일을 메모리 포렌식 도구가 설치된 환경으로 복사해서 분석하면 된다.


vmem 확장자 파일

볼라틸리티를 이용해 악성코드 감염이 의심되는 분석 대상 시스템에서 생성한 메모리 덤프 파일을 분석하기 위해서는 6단계의 절차를 이용해 분석을 진행한다.


각 단계에서 제공하는 주요 플로그인과 설명을 목록화한 것이다.


분석 단계 플러그인 설명
운영체제 분석 imageinfo 메모리 덤프 파일의 하드웨어 정보, 생성시간 나열
프로세스 분석 pslist 실행중인 프로세스 정보 나열
psscan 실행중인 프로세스와 종료된 프로세스 정보 나열
psxview pslist, psscan에서 확인한 프로세스 정보를 비교하여 나열(은폐된 프로세스 정보 획득 가능)
pstree 프로세스의 부모와 자식 관계 나열
procexedump 프로세스의 메모리 영역에서 빈 공간(Slack Space)를 포함하지 않고 바이너리(Binary) 형태로 추출
volshell Windbg와 비슷한 명령 형식으로 분석
네트워크 분석 connections 활성화 상태의 네트워크 연결 정보 나열(Windows XP, Windows Server 2003에서만 동작)
connscan 활성화 상태의 네트워크 연결 정보와 이미 종료된 네트워크 연결 정보 나열(Windows XP, Windows Server 2003에서만 동작)
netscan 활성화 상태의 네트워크 연결 정보 나열(Windows Vista, Windows 7, Windows Server 2008에서만 동작)
DLL 및 Thread 분석 dlllist 특정 프로세스에서 로드 한 DLL 정보 분석
ldrmodules 은폐된 DLL 정보 분석
dlldump 특정 프로세스에서 로드한 DLL 추출(바이너리 형태)
Malfind 사용자 모드 형태로 은폐되어 있거나 인젝션된 코드 또는 DLL 정보 분석
apihooks 사용자 및 커널 모드에서 API 후킹 정보 분석
문자열 분석 yarascan YARA를 이용하여 사용자 및 커널 모드 메모리 영역에 포함된 바이트 순서, ANSI 및 유니코드 문자열 검색
string 문자열 검색
레지스트리 분석 printkey 특정 레지스트리 키에 포함되어 있는 하위 키(Subkeys) 값과 데이터를 검색하여 나열
userassist 메모리 덤프 파일에서 UserAssist 관련 레지스트리 키 정보 추출

볼라틸리티로 메모리 분석을 할 파일은 zeus.vmem이다. 해당 파일은 zeus malware에 감염된 컴퓨터에서 메모리 덤프를 한 파일이다.


칼리리눅스로 메모리 덤프 파일을 업로드하고 imageinfo 플러그인을 이용하면 운영체제, 프로세스, 덤프 시간 등의 정보가 확인된다.


imageinfo


psscan, pslist 플러그인을 이용하면 현재 실행중인 프로세스 정보를 확인할 수 있다.


psscan


psscan, pslist 플러그인을 비교해주는 것으로 어떤 프로세스가 은닉 기법(DKOM)을 사용했는지 확인할 수 있다.


psxview


connscan 플러그인을 이용하면 종료된 네트워크 상태 정보를 확인할 수 있다.


connscan


sockscan 플러그인을 이용하면 네트워크 전체 소캣 구조를 확인할 수 있다.


sockscan


▶ 메타스플로잇 익스플로잇 코드 분석 (Metasploit Framework)

▶ 칼리리눅스 초기설정

▶ 안드로이드 메모리 노출 취약점 (메모리 덤프)

  • 카카오톡-공유
  • 네이버-블로그-공유
  • 네이버-밴드-공유
  • 페이스북-공유
  • 트위터-공유
  • 카카오스토리-공유