지난 번 글에서, 리눅스 운영체제 상에서 LiME을 사용하여 메모리를 덤프하는 것을 설명하였다.

(참고 : 리눅스 포렌식 분석을 위한 메모리 추출 - LiME )

이렇게 얻은 Ubuntu16.04.mem 파일을 Volatility를 사용하여 분석해보려고 한다. 해당 파일을 적당한 위치로 이동시키고, volatility 2.6을 사용하여 해당 이미지를 열었다.

가장 먼저 imageinfo를 사용해서 해당 이미지의 운영체제 정보를 얻어야 한다. 왜냐하면 운영체제별로 사용되는 플러그인 종류가 다르기 때문이다. 우리는 이미 해당 메모리 파일이 Ubuntu 16.04 환경에서 제작된 것임을 알고 있다. 그런데 이상하게도, KDBG search 결과를 아무리 오래 기다려도, 출력되지 않는다. 이미 윈도우 환경에서 메모리 포렌식을 수행해본 경험이 있는 사람이라면 알겠지만, 본 과정은 윈도우 이미지의 경우 30초 이상 소요되지 않는다. 그러나 리눅스 이미지를 넣었더니 결과가 나오지 않는다.


무엇이 잘못되었을까? volatility의 환경설정 옵션을 살펴보기 위해 아래 명령어를 입력하면 다음 그림과 같은 내용이 출력된다.

가장 먼저 Profiles라는 항목이 보이는데, Windows 운영체제 종류가 나열되어 있다. 그런데 Linux 나 macOS 환경은 목록에 나타나지 않는다.


저곳에 표출되는 내용은 사실 ~/volatility/volatility/plugins/overlays/ 의 내용을 참조한 것이다. 해당 위치에 들어가보자. 아래 그림과 같이,  overlays/windows에는 다양한 프로파일 관련 파일들이 설치되어 있음을 알 수 있으나, overlays/linux 에는 컨텐츠가 별로 없다는 것을 알 수 있다. 직접 clean한 Ubuntu 시스템에서 Github를 통해 Volatility 2.6 (작성일 기준 최신)을 재설치해본 결과, 원래 리눅스 관련 프로파일은 초기설치에 포함되어있지 않은 것으로 확인되었다.

관련하여 volaitlity 개발팀의 github를 살펴보니, 프로파일만 따로 수집해둔 메뉴가 있었다. 

(url : https://github.com/volatilityfoundation/profiles)

접속해보면 Linux와 Mac 용 프로파일들이 관리되고 있으며, Linux의 경우 워낙 배포판의 종류가 많으므로 가장 대표적인 CentOS, Debian, Fedora, OpenSUSE, RedHat, Ubuntu 시스템 정도만 제공되고 있다. 또한 32bit용과 64bit 용을 구분하여 각 버젼별로 제공하고 있다.

그렇다면 현재 필요로 하는 Ubuntu 16.04.zip 파일(본인이 원하는 버젼)을 다운로드하면 된다. 

다운로드한 파일은 별도로 압축을 풀어주지 않아도 되며 그냥 해당 디렉토리에 zip 형태로 위치해두면 된다. 단, 여기에서는 대상 시스템이 어떤 운영체제인지 알고있다는 전제하에 특정한 프로파일을 선택하여 다운로드한 것이지만, 실제 포렌식 수사 상황이거나 CTF 등의 경우 운영체제 정보가 제공되지 않을 가능성이 더욱 크다. 따라서 필요한 경우 다양한 프로파일들을 미리 준비해두는 것이 좋을 것이다. 프로파일을 추가한 후 info를 확인하면 아래와 같이 A Profile for Linux Ubuntu16041 x64 라는 항목이 추가되어 있다. 

해당 프로파일로 지정해주고 리눅스용 플러그인을 사용하면 결과가 잘 출력된다. 아래는 linux_pslist를 통해 프로세스 목록을 출력한 화면이다.

리눅스 환경에서 분석시 사용하는 각 플러그인에 대한 설명은 다음번 포스팅으로 미루기로 하고, 본 포스팅에서는 프로파일 관련 내용을 집중적으로 고민해보는데 주안점을 두었다. 어쨌거나 Ubuntu 16.04 기준으로 분석이 가능함을 보였다. 


그러나 아직 Further Works가 남아있다. 서두에서 언급했듯이, 실전적인 메모리 포렌식 상황이라면 주어진 이미지 파일이 어떤 운영체제 몇 버전을 사용하고 있는지에 대한 사전정보가 주어지지 않을 가능성이 농후하다. 어떤 경우 개발사의 github에서 제공하지 않는 profile을 필요로 하는 경우가 발생할 수 있다.(예를들면, 모의해커들이 주로 사용하는 Kali Linux의 경우 프로파일이 알려져 있지 않다.) 그런 경우에는 분석가가 직접 해당 프로파일을 맞춤형으로 제작하는 방법밖에 없을 것이다.


다음번 포스팅에는, 특정 시스템의 프로파일을 직접 생성하는 방법을 논의해보도록 한다.

CPUU님의 창작활동을 응원하고 싶으세요?