[InForensics] 메모리 분석 - 3
공부/Forensics 2012. 8. 22. 14:13 |크래시 덤프
시스템을 유지에 치명적인 영향을 주는 문제가 발생하였을 때 문제의 원인을 찾기 위해서 윈도우 스스로가 만드는 메모리 덤프를 말한다.
흔하게는 일명 BSoD(Blue Screen of Death)가 발생하였을 때 생성되는 크래시 덤프가 있다. BSoD가 발생하였을 때 생성되는 크래시 덤프는 시스템과 RAM의 내용이 정지된 상태로 쓰여 지기 때문에 순수하고 정확한 메모리 덤프라고 할 수 있다.
이러한 메모리 덤프 방법은 매우 유용할 수도 있다. 하지만, 몇 가지의 걸림돌이 존재한다.
우선, 기본적으로 사용자가 임의로 크래시 덤프를 생성할 수 없게 설정되어 있기 때문에 기본적인 환경으론 상당히 까다롭다
(어디까지나 Default 이므로 설정을 변경하면 되지만, 변경하면 재부팅을 해야 적용이 되기 때문에 결국 메모리 덤프로써의 의미가 없다).
두 번째로, 조사 대상의 시스템에 대한 영향을 최소화 하지 않기 때문에 크래시 덤프 파일을 저장함으로써, 대상 하드 드라이브의 잠재된 증거들을 덮어 써 버릴 가능성이 크다.
크래시 덤프의 종류
크래시 덤프 환경 설정은 시스템>고급>시작 및 복구>설정 탭을 통해 접근할 수 있으며,
환경 설정을 통해 어떤 덤프를 쓸 것인지, 또 어떤 경로에 저장할 것인지 등의 설정을 할 수 있다.
Small Memory Dump
시스템 크래시가 발생한 원인을 밝히기 위한 최소한의 메모리 정보만을 기록한다.
Kernel Memory Dump
비 할당 영역(Unallocated Memory Space)과 유저 모드로 동작중인 프로그램 메모리 영역을 제외한 커널 모드와 HAL 메모리 영역만을 덤프한다.
메모리 포렌식 영역에 있어선 그다지 도움이 되지 않는다.
Full Memory Dump
RAM 전체를 그대로 덤프한다. 메모리 포렌식에 있어서 유용하다.
Menually Crash Dump
키보드를 이용한 메모리 덤프가 가능하다.
PS/2의 경우HKLM\System\\CurrentControlSet\Services\i8042prt\Parameters
USB의 경우 HKLM\System\\CurrentControlSet\Services\kbdhid\Parameters
위 경로에 아래와 같이 값을 설정하면 된다.
메뉴얼 덤프는 레지스트리를 등록 후, 재부팅하고 난 이후로 Ctrl키를 꾹 누르고 ScrollLock 키를 두 번 누르면 크래시 덤프를 만들 수 있다.
하이버네이션 파일
Hibernation 기능이란, 전력 관리를 보다 효율적으로 하기 위해 절전 상태에 돌입하게 되면, 하드 드라이브에 메모리 데이터를 기록한 다음 전력을 차단해버는 기능을 말한다.
하지만 이는, 기존 전력 관리 방식(RAM에 대한 지속적인 전력 공급)에 비해 Wakeup 시 복구 시간이 비교적 오래 걸린다.
하지만, 전력 공급 면에선 괜찮은 기능이니 랩탑에겐 필수적인 기능이라 생각한다.
Windows 7의 경우 커맨드 프롬프트를 통해 Hibernation 설정을 할 수 있다.
powercfg -hibernate on/off 또는 powercfg -h on/off 명령으로 Hibernation 기능을 켜고, 끌 수 있다.
하이버네이션으로 인한 메모리 덤프 파일은 Full Mem Dmp가 아니며, 절전된 즉시 만들어 지기 때문에 복구가 되고 나면 그 상황 당시의 메모리 덤프가 아닌 이전의 메모리 덤프 파일이기 때문에 상황에 따라 쓸모가 없어질 수가 있다. 또한, 메인보드의 칩셋과 OS에 따라 지원 여부가 달라진다.
프로세스와 커널 오브젝트
커널 오브젝트는 메모리 분석의 핵심이다. 이는 간단히 말해, 윈도우가 사용 가능한 모든 리소스를 종류 별로 나눠서, 그 구조를 일반화 시킨 것이 커널 오브젝트라고 한다.
커널 오브젝트는 히든 프로세스나 네트워크 세션로 예를 들 수 있으며, 버전 마다 동일한 구조 규칙을 띄고 있어서 숨겨진 오브젝트 또한 찾아내기 쉽다.
프로그램, 프로세스, 스레드
'공부 > Forensics' 카테고리의 다른 글
PE Structure (0) | 2013.04.24 |
---|---|
[InForensics] 메모리 분석 - 4 (0) | 2012.08.22 |
[InForensics] 메모리 분석 - 2 (2) | 2012.08.12 |
[InForensics] 메모리 분석 - 1 (0) | 2012.08.09 |
[Metasploit]Meterpreter API Cheat Sheet (0) | 2012.07.26 |