Memroy Analysis[1]




본 포스팅에서는 메모리 분석에 대해서 다룹니다.

(윈도우의 기본 사용법등과 같은 기초 지식은 본 포스팅에서 다루지 않습니다.)



1. 메모리포렌식

사용자가 시스템을 사용하면서 메모리상 남는 데이터를 분석 하는 행위를 메모리포렌식 이라고 합니다. 아직 우리나라에서는 법정에서 증거로 채택되지는 않지만 침해사고와 같은 사건사고에서는 많은 정보를 얻을 수 있는 분야입니다. 메모리포렌식을 통해 얻을 수 있는 정보는 프로세스 상태, 네트워크 정보, 메모리에 저장된 파일복구, 디코딩 된 데이터, 사용자 행위 정보등을 얻을 수 있습니다. 이번 포스팅에서는 메모리 덤프 방법과 메모리를 분석하기 위한 분석환경 구성에 대해서 알아 보겠습니다.

 

1)메모리 덤프

우선 메모리 포렌식의 가장 기초가 되는 메모리 덤프 방법에 대해서 알아 보겠습니다. 메모리 덤프는 크게 물리적인 방법과 논리적인 방법으로 나뉘게 됩니다. 물리적인 방법은 특정 장치를 이용하여 메모리를 읽어들여 덤프를 하는 방식이고 논리적인 방식은 S/W를 이용하여 메모리 덤프를 하는 방식입니다.



가)PCI 방식

무결성을 최대한 보장하는 방식이며, 빠른속도를 지원하지만 PCI슬롯에 미리 H/W가 설치 되어 있어야 한다는 단점이 있습니다.

[PCI슬롯을 이용한 메모리 덤프]

 

 

 

나)FireWire(IEEE 1394)

Windows, Linux, Mac의 메모리 덤프가 가능하다. 또한 빠른속도의 메모리 덤프가 가능하나 간혹 크래시가 발생하고 접근할수 있는 주소가 제한적입니다.

[FireWire를 이용한 메모리 덤프]

 



다)Win32/64 DD

/무료 버전으로 나뉘는 S/W이며, 사용방법 간단하고 속도가 빠른 장점이 있으나, 무결성은 보장을 못한다는 단점이 있습니다.

[Win DD를 이용한 메모리 덤프]

 

 


라)DumpIt

무료버젼의 S/W이며, Windows 계열은 모두 사용이 가능합니다. 또한 포터블 형태로 제공되어 무결성을 최대한 보장하며, 빠른속도의 이미징 환경을 제공합니다.

[DumpIt을 이용한 메모리 덤프]

 



마)콜드부트 덤프

종료 된 시스템 메모리를 급속 냉각시켜 메모리 데이터의 손실 시간을 최대한 확보하여 정보를 획득 하는 덤프 방식입니다. 메모리 특성상 시간이 지남에 따라 메모리상 내용은 지워집니다.

[Cold Dump를 이용한 메모리 덤프]


 

바)가상화 시스템

가상화 시스템은 일시 중지가 가능하며, 일시 중지 상태일때 현재의 메모리 상태가 파일로 생성이 됩니다. 가상머신으로는 VMWare, VitualBox등이 있습니다.

 


라)절전모드

시스템의 절전모드 기능을 활성하 해놓으면 절전 모드 진입시 C:\hiberfil.sys파일로 현재 사용중인 영역에 대해 메모리 상태가 저장됩니다. 또한 추가적인 H/WS/W가 불필요하며 무결성을 최대한 보장합니다.

 


2)메모리 분석

메모리를 분석하기위한 도구는 다양하게 존재합니다. 현재는 그중 Volatility도구가 가장 널리 쓰이고 있습니다.



 

가)분석환경구성

Volatility를 사용하기 앞서 환경구축에 필요한 파일들을 알아 보겠습니다. 우선 가장 기본이 되는 Volatility를 다운 받아야 겠으며, Volatility는 파이썬 기반으로 동작을 하기때문에 파이썬도 설치를 해주어야 합니다. 이후 각종 플러그인의 사용을 원할하게 사용하기 위해 추가로 파이썬 플러그인을설치를 진행 해주면 됩니다.


https://github.com/volatilityfoundation/volatility

https://www.python.org/download/releases/2.7.3

http://www.voidspace.org.uk/python/modules.shtml#pycrypto

http://www.pythonware.com/products/pil/

https://pypi.python.org/pypi/distorm3


[다운받은 설치 파일]


다운받은 파일중 zip을 제외한 나머지 실행파일은 설치가 간단하게 다음만을 클릭하여 쉽게 설치가 가능합니다.

다운받은 Volatility.zip은 압축을 풀어 주면 됩니다.


[distorm3 설치화면]



[PIL 설치화면]



[pycrypto 설치화면]



[Python설치화면]


 

[압축 해제된 Volatility]


이후 내컴퓨터의 환경변수에 파이썬경로를 넣어 CMD에서 어느경로에서라도 파이썬이 실행 되도록 해주도록 설정을 합니다. 이는 Volatility가 Python기반으로 소스코드가 제공되기 때문에 Python이 어느 경로에서라도 동작되게끔 설정하는 과정입니다.


[환경변수 등록 - python]


이후 제대로 등록이 되었는지 확인하기 위해 CMD를 이용하여 python을 실행 하도록 하겠습니다.


[CMD에서의 python 실행]


정상적으로 실행이 된다면 압축 해제된 Volatility 폴더에서 vol.py를 실행 하여 정상 구동 되는지 확인 하도록 하겠습니다.


[vol.py 실행 화면]






지금까지 메모리 덤프 방법과 분석환경 구축에 대해서 알아 보았습니다. 다음 포스팅에는 Volatility 사용법에 대해서 알아 보도록 하겠습니다.

'Digital Forensic > Memmory-Forensic' 카테고리의 다른 글

Memory Analysis[3]  (0) 2018.02.05
Memory Analysis[2]  (0) 2018.01.22

이 글을 공유하기

댓글