본문 바로가기

[+] Forensic

[메모] Windows 8과 2012 Sever의 크래시 덤프

Windows 8이전 버전에서는 크래시 덤프의 종류를 일반적으로 작은 메모리 덤프, 커널 메모리 덤프, 전체 메모리 덤프(Windows 7 에서는 존재하지 않음)라고 말할 수 있었다. 하지만 Windows 8 버전에서부터는 3가지 덤프 종류 외에 "자동 메모리 덤프"라는 종류가 하나 더 추가되었다. 또 자동 메모리 덤프는 Windows 8의 기본 크래시 덤프로 설정되어 있다.


[그림 1 - Windows 8의 크래시 덤프 설정 대화상자]


새롭게 추가 된 자동 메모리 덤프를 새로운 크래시 덤프의 종류로 생각할 수도 있지만, 사실 자동 메모리 덤프의 내용을 보면 새롭지 않다는 것을 알 수 있다. 자동 메모리 덤프가 수행되면 커널 메모리 덤프와 동일한 내용을 pagefile.sys에 저장하고 그 내용을 토대로 크래시덤프 파일을 생성한다. 즉, 커널 메모리 덤프와 결과물이 동일하다는 것이다. 그렇다면 무엇이 두 종류를 구분짓게 하였을까?


자동 메모리 덤프를 제외한 기존의 덤프 종류들은 pagefile.sys를 생성 할 때 메모리의 크기와 동일한 pagefile을 생성했었지만 자동 메모리 덤프는 평상시에 최소한의 크기인 pagefile을 생성해 두었다가 크래시가 일어났을 때 필요한 정보들을 pagefile에 저장하기 위해 pagefile의 크기를 늘려 메모리 내용을 저장하고 크래시 덤프 파일을 생성한다. 

이렇게 pagefile의 크기를 동적으로 설정하는 이유는 요즘 각광받고 있는 SSD나 메모리가 많은 서버에서 디스크 공간을 비효율적으로 많이 차지하는 pagefile의 크기를 줄여보고자 했기 때문이다. 특히 Windows 8은 태블릿 PC에서 주로 구동되도록 설계되었기 때문에 비효율적으로 디스크의 용량을 차지하는 pagefile의 크기를 동적으로 하여 디스크 용량의 효율성을 증대시키고자 자동 메모리 덤프를 기본 옵션으로 채택했을 것이다.


그런데, 아이러니 하게도 평상시에는 pagefile을 최소화하여 디스크의 용량을 확보하는 반면, 크래시등으로 인해 크래시 덤프를 생성할 일이 생기면 pagefile은 메모리의 크기 보다 조금 더 크게 늘어난다. 그리고 크래시 덤프파일을 이용 해 문제가 해결 되면 일정기간 후에 pagefile의 크기를 다시 최소화 시킨다. 즉, 크래시가 자주 일어난다면 디스크의 용량은 확보받기 어렵다는 말이 되는데, 이를 해결하기 위해 다음 레지스트 키에 존재하는 LastCrashTime value의 값을 수정해주어야 한다.


 - HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\CrashControl


LastCrashTime value는 크래시가 처음 발생 했을 때 생성되는 value로 기본 값은 4주로 되어 있다. 이 값의 의미는 4주동안 크래시가 일어나지 않고 시스템이 안정적이면 pagefile의 크기를 다시 최소한의 크기로 변경한다는 의미이다. 그러므로 이 값을 수정해 pagefile의 크기가 최소화되는 기간을 짧게 하는 것이 자동 메모리 덤프 종류를 사용하면서 디스크 용량을 확보 할 수 있는 가장 좋은 방법이다. 

'[+] Forensic' 카테고리의 다른 글

코드게이트 본선 포렌식 문제  (19) 2013.04.05
Metasploit(Meterpreter) Forensic  (0) 2013.01.22
Torrent Forensic Artifact  (0) 2012.10.07
N Drive Forensic Artifact  (6) 2012.09.16