'Memory dump'에 해당되는 글 1건

  1. 2010.01.27 Winen - Memory Dump Tool

아래에서 퍼옴

http://forensic-proof.com/19

Winen - Memory Dump Tool


메모리 분석을 위해서 먼저 선행되어야 할 것이 메모리 덤프이다. 현재 사용 중(활성화)인 메모리의 내용을 특정 순간에 스냅샷으로 파일로 저장하게 된다. 메모리 덤프를 하는 이유는 쉽게 말해 메모리를 더 자세히 보기 위해서이다. 왜냐하면, 루트킷이나 악성코드의 경우 메모리 내의 EPROCESS 구조체 등을 변경시켜 은폐하고 있기 때문이다.

윈도우 기능(작업관리자, API 등)을 이용하여 확인하게 되면 이러한 부분이 보이지 않기 때문에 부득이하게 메모리를 덤프하게 된다. 메모리를 덤프한 후 EPROCESS 구조체를 알고 있다면 덤프한 메모리 파일에서 프로세스의 정보를 뽑아낼 수 있을 것이다. 덤프한 메모리의 프로세스 정보와 운영체제를 통해 확인한 정보에 차이가 있다면 해당 프로세스는 의심 가능성이 농후하다.

물론 이러한 이유 외에도 디지털포렌식 관점에서 활성화된 정보를 얻기 위해 물리메모리를 덤프해야 하는 경우가 있다. 특정 조사자의 컴퓨터를 영장을 통해 조사하러 갔는데 해당 시스템에 활성화 상태라면 컴퓨터의 전원을 분리하기 전에 활성화된 정보를 최대한 수집해야 할 것이다. 활성화 정보는 전원이 차단된 후에 사라지는 정보로 휘발성 기억장치인 RAM 에 저장되는 정보를 의미한다.

물리메모리를 덤프하더라도 분석에 한계가 있기 때문에 활성 시스템에서 쉽게 수집할 수 있는 정보는 바로 수집하는 것이 효율적이다(예, 네트워크 상태정보 등). 활성화 정보의 가장 큰 약점은 법정에서 무결성을 어떡해 입증할 수 있냐는 것이다. 물론 이와 관련해서 국내에서 현장에서 제 3자에 감시와 당사자의 서명이 들어가는 경우가 있지만 아직까지 완벽한 방법이라고 하긴 어렵다.

물리메모리덤프도 무결성에 제약이 있을 수 있겠지만 경우에 따라서는 활성 상태에서 수집한 정보를 입증할 수 있는 자료로 사용될 수도 있을 것이다. 아직까지 국내 수사환경에서 보면 일진회 사건에서 처음 디지털데이터가 증거로 채택되기는 했지만 정책적인 면에서는 걸음마 수준이다. 실제 공판을 담당하는 검사와 변호사 측 모두 디지털포렌식이라는 개념이 부족하기 때문이다.

최근들어 검사와 변호사측 모두 디지털포렌식에 관심을 기울이고 있지만 실제 무결성에 입각한 사건처리가 이루어지기에는 아직 정책적인 면에서 부족한 것이 사실이다. 서론이 주저리주저리 쓰다보니 너무 길어졌다. 본론으로 들어가서 물리메모리를 덤프하기 위해서는 무료로 제공하는 유명한 도구인 win32dd, MDD 등의 도구들과 WinDBG와 같은 디버깅 도구를 이용하여 덤프하는 등의 방법이 있다.

물론 상업적인 도구들도 있다. 이러한 방법들에 대해서는 논외가 되므로 여기서는 winen.exe 를 이용한 덤프만 고려하겠다. winen.exe는 EnCase를 개발한 Guidance Software에서 제공하는 도구로 EnCase와 함께 제공된다. 정확하게 언제부터 지원하는지는 모르겠지만 현재 v4.x 과 v6.13을 쓰고 있는데 v6.13을 설치한 후 발견한 파일이다. v5.x에서 있었는지는 정확히 모르겠지만 최근들어 지원한 것으로 알고 있다.
 

위의 그림에서 보면 winen.exe와 함께 winen64.exe도 함께 존재하는 것을 확인 할 수 있다. 직관적으로 알 수 있듯이 winen64.exe는 64비트 시스템에서 사용할 수 있는 도구이다. 이와 함께 winen.txt 파일이 보이는데 이것은 수집하기 이전에 수집과 관련된 정보를 미리 기입할 수 있는 구성파일이다.
 

구성파일에서 제공하는 내용은 위와 같다. 구성파일을 미리 작성했다면 "-f" 옵션을 이용해 해당 구성파일을 입력받을 수 있다. 입력받지 않게 되면 해당 옵션의 기본적인 내용(경로, 증거이름, 사건번호, 조사자이름 등)은 덤프하기 전에 콘솔로 입력받을 수 있게 해준다.
 

덤프를 실제 수행하면 간단한 프로그레스 형식의 "|" 문자를 통해 덤프되고 있음을 알려준다. 압축 형식을 지정할 수 있는데 지정할 수 있는 압축형식은 다음과 같다. (0=NONE, 1=fast, 2=best) 압축하지 않으면 실제 물리메모리 크기의 파일이 생성되며 압축을 하게 되면 해당 정보가 압축되어 저장된다.

저장되는 형식은 EnCase 증거 이미지인 ".Ex" 형태로 저장된다. 압축 방식도 EnCase 증거이미지의 압축 방식에 따른다. 이는 winen.exe 를 사용해 덤프한 내용은 포맷이 EnCase 증거이미지 형식이므로 EnCase를 통해 분석할 수 있다는 것을 의미한다. 물론 EnCase 포맷을 지원하지 않는 도구에서는 분석이 불가능하다.

결과적으로, EnCase와 함께 제공되는 winen.exe를 이용한 메모리 수집은 다른 기존의 메모리 수집도구와 비교해봐야 겠지만 EnCase를 통해 분석이 가능하다는 점이 강점일 수 있겠다. EnCase를 통해 EnScript, String Search 와 같은 기능을 이용할 수 있을테니 말이다. 메모리카빙이 되는 EnScript를 구현해 놓으면 쉽게 물리메모리를 덤프한 후에 분석이 가능할 것이다. 전체 EPROCESS를 카빙할 수 있는 EnScript를 구현하는 것은 힘들겠지만 간단히 유효한 정보를 보여주는 것은 그리 어렵지 않을 것이다. 자.. 그럼 고고~~

'게임 개발' 카테고리의 다른 글

Scaleform GFx 분석  (0) 2010.03.17
은, 는, 이, 가 알아내기 44032  (0) 2010.03.17
Adobe Flash 관련 정보  (0) 2009.07.18
PEDasm 의 신버전 v0.3.3  (0) 2009.07.12
윈도우 프로그래밍 팁  (0) 2008.06.10
Posted by 노을삼킨별
,