본문 바로가기
보안/포렌식

Volatility Linux Profile 생성

by ITPro 2012. 9. 17.

 

volatility-2.2-rc2(modify).tar.gz


 

Volatility 2.2 버전에는 Linux 메모리 분석을 위한 기능이 새롭게 추가되었습니다. (링크)

 

프로세스,네트워크 정보를 포함하여 정보를 추출하기 위한 기능이 존재하고 있고 RC1 버전 기준으로 기본적으로 제공되는 Linux Profile은 없습니다.

 

Volatility Wiki에서 프로파일 생성법을 제공하고 있으나 사용되는 Tool은 RC1 버전에는 포함되어 있지 않아 Source 탭에서 해당 소스를 별도로 다운받아 사용해야합니다.  2012년 9월 18일자로 업데이트된 RC2버전에서 Tool도 함께 포함이 되었습니다.

 

 

 

해당 Tool에 대한 테스트는 Ubuntu 11(32bit), Fedora 10(32bit), Fedora 17 (64bit) 에서 진행하였습니다.


Profile 생성에 앞서 dwarf와 kernel-devel 또는 linux-headers 패키지가 설치되어 있어야 합니다.


※ linux-headers는 설치시 정확한 패키지명을 지정하라는 메세지가 발생하는데 "uname -r"을 통해 버전을 확인하고 설치를 하면 됩니다.

※ Debian 계열에서 make / compile과 관련된 에러가 발생하면 build-essential 패키지를 설치해주면 됩니다.

 

[Debian]

#apt-get install dwarfdump

#apt-get install linux-headers

 

[Redhat]

#yum install libdwarf-tools 또는 rpm --install [패키지명]

#yum install kernel-devel 또는 rpm --install [패키지명]

 

 

Fedora 10에서는 Tool 컴파일시 iomem_resource 구조체 관련 에러가 발생하여 코드에 ioport.h를 include 하도록 추가하여 해당 문제를 해결하였습니다.

 

-pmem.c 내용 일부

#include <linux/module.h>
#include <linux/types.h>
#include <linux/miscdevice.h>
#include <linux/init.h>
#include <linux/ioport.h>

#include <asm/io.h>
#include <linux/io.h>
#include <asm/uaccess.h>
#include <asm/types.h>

-이하 생략-

 

RC2 에서 포함된 module.c 파일 내용중 net_namespace.h 파일을 include하는 코드가 프로그래머의 실수로 위치 지정이 잘못되어 그대로 컴파일할 시 에러가 발생하기때문에 코드를 주정해주어야 합니다.


-module.c 내용 일부


-생략-

/********************************************************************

The following structs are not defined in headers, so we cant import

them. Hopefully they dont change too much.

*********************************************************************/


#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)

#include <net/net_namespace.h>

#endif

-이하 생략-


정상적으로 make 작업이 진행되고나면 아래와 같이 module.dwarf 파일이 생성됩니다.

 

 

module.dwarf 파일 생성 작업이 끝나면 System map 파일과 함께 압축하여 주면 profile 생성 작업은 마무리 됩니다.

생성된 파일은 volatility-2.2/volatility/plugins/overlays/linux 디렉토리에 저장해줍니다.

 

 

마지막으로 volatility의 info 옵션으로 프로파일이 정상적으로 등록되었는지 확인합니다.

 

 

 

-프로파일을 적용하여 Volatility를 실행한 예시 화면

 

 

 

 

 

 

반응형