메모리 포렌식의 대상으로는


> 물리메모리

- 윈도우가 시스템에 장착된 메모리를 사용하기 위해서는 모든 메모리 공간에 대한 주소 정보가 필요하다. 

- 시스템이 처음에 시작될 때 시스템에 장착된 모든 메모리 공간의 주소정보를 담은 지도를 만든다. 

- PAM (Physical address Map) : 실제(물리) 메모리 주소 정보

- 이전에 32비트 운영체제에서 사용할 수 있는 메모리의 크기는 2^32의 크기로 = 4294. 즉, 4GB의 메모리까지만 사용가능 했다.


- 실제 사용 메모리는 물리메모리에서 장치메모리를 뺀 나머지 메모리

- 장치 메모리를 우선적으로 처리하여 컴퓨터가 정상적으로 작동하는데 꼭 필요한 장치들을 사용할 수 있게 한다.


- 따라서 기존까지 CPU 32비트 주소지정 방식을 사용한 것을 36비트 주소지정 방식을 CPU에 추가한다.

- PAE(Physical Address Extention) : 실제 주소 확장

- 2^36의 크기로 = 64GB의 메모리를 인식하게 한다.  <윈도우 xp 서비스 팩 2 부터 PAE기능 지원>


- 가상 메모르를 통해서 물리메모리 용량이 4GB인 시스템에서 다수의 프로세스를 동작하게 한다.


> 페이지 파일

> 하이버네이션 파일




물리메모리 덤프


1. 하드웨어를 이용한 덤프

- PCI 장치를 이용한 덤프; 추가적인 하드웨어/소프트웨어의 설치 없이 무결성을 최대한 보장

- FireWire를 이용한 메모리 덤프; 윈도우,리눅스,맥OS에서 가능


2. 소프트웨어를 이용한 덤프

- Win(32&64)dd

- Memorize

- FD(fastDump) Pro


3. 크래시 덤프

- Blue Screen of Death 발생 시 자동 생성, WinDdg,Kernel Memory Space Analyzer 등을 통해 디버깅 가능

- 물리메모리에 가장 최소한의 영향을 미치는 방법

- 윈도우만 지원


4. 가상화 시스템 덤프


5. 절전모드 덤프

- 절전모드로 진입 시 메모리를 압축하여 C:\hiberfil.sys 파일로 저장

- 추가적인 프로그램이나 장비 불필요

- 전체 메모리 영역의 덤프가 아닌 사용 중인 영역만 덤프


(콜드부트 : 종료된 시스템 메모리를 차갑게 유지시켜 메모리 손실을 줄이는 방법)

(%주로 소프트웨어 방식을 이용해 메모리 덤프)



>> 주의사항

덤프한 메모리는 외장저장장치에 저장

외장저장장치 인터페이스에 따라 수집 속도 차이

침해사고의 경우 현장 상황에 따라 D:\ 볼륨을 이용하는 것도 고려해야한다.



초기 메모리 분석 방법


> 문자열 추출 : 특정 패턴의 문자열 검색, (이메일, 계정, 비밀번호, 메신저 대화 등)


> 파일 카빙 : 그래핑 이미지, HTML, 레지스트리 등 파일 카빙 기법으로 파일 획득


오브젝트 검색


> 물리메모리 상의 오브젝트를 찾기 위한 방법 : 

- 리스트 워킹(list-Walking)

* EPROCESS 프로세스 이름을 이용한 프로세스 탐색 기법

* KPCR(Kernel Processor Control Region)을 이용한 프로세스 탐색 기법

* DKOM과 같은 프로세스 은닉 기법 탐지 불가능...!!


- 패턴 매칭(Pattern Matching)

* 프로세스 구조체의 패턴을 이용해 메모리 영역 전체 검색

* 은닉 프로세스라도 동일한 프로세스 구조체를 가짐



+ Recent posts