본문 바로가기

Information Security/Digital Forensic

[Digital Forensic] Prefetch

반응형

- 혹시나 디지털 포렌식 전문가 2급 시험을 준비하는 사람들은 아래 게시물도 추가로 참조하길 바란다
https://isc9511.tistory.com/182

Prefetch Spuerfetch(Sysmain)
- Windows에서 자주 사용되는 프로그램들을 미리 메모리에 로드, 빠른 실행을 지원하기 위해 SW 활동 관련 정보를 저장하기 위해 사용하는 메모리 관리 기법
(요약하자면 "메모리 효율화를 위한 별도 파일 저장 후 필요 시, 메모리에 빠르게 로딩" 이라고 할 수 있겠다)


- .pf 확장자로 파일을 저장하며 최대 1,024개 까지 생성이 가능하다
(오랫동안 사용되지 않는 메모리 영역에 대해서는 페이징 아웃으로 메모리 공간 확보를 지원함)


- 활성화/비활성화 선택 제공
- 기존 Prefetch가 현재에 와서는 대부분 SSD 및 하드웨어 스펙 상승으로 오히려 성능 저하를 유발하는 경우도 있음


- 이에 따라, Vista 이후 Prefetch의 메모리 페이징 아웃으로 인한 문제 개선 후 적용된 것


- Prefetch와 별개로 추가적인 사용자의 프로그램 사용 패턴을 기록

- 굳이 나눠놨지만, 포렌식 상에서 둘은 동일하게 Prefetch 개념으로 볼 수 있고, 포렌식 담당자는 결국 .pf 파일로 분석을 진행해야 한다고 볼 수 있음
* .pf 제공 정보
- 사용자가 실행한 Application 이름
- Application 실행 횟수
- 실행 시간
- 실행되며 참조한 목록 (DLL 등)

 

 

* Prefetch 분류

Boot Prefetch - 부팅 속도 향상을 목적으로 함
- 시스템 자원을 파악, 한 곳에 모아놓는 역할
- ‘NTOSBOOD-BOODFAAD.pf’ 단일 파일로 존재
Application Prefetch - ‘프로그램실행파일명-4Byte해시값(8자리).pf’ 여러 파일로 저장
ex) NOTEPAD.exe-C5670914.pf

 

 

 

 

* Windows의 Prefetch 상태 확인 및 활성화

레지스트리 확인 * 경로 : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
- 'EnablePrefetcher 값 확인
0 : 비활성화
1 : 응용 프로그램 pf만 활성화
2 : 부팅 pf만 활성화
3 : 모든 pf 활성화 (Default)
SysMain 서비스 확인 * Win + R 후 ‘services.msc’ (서비스 관리)
- SysMain 서비스의 [일반] 탭에서 '시작 유형'을 '자동'으로 설정
- 서비스 상태가 '실행 중' 인지 확인 후, 실행 중이 아니라면, '시작'으로 전환
Prefetch 폴더 확인 * 경로 : C:\Windows\Prefetch
- 시간 순으로 정렬 후, 특정 일자 이후에 생성, 수정된 파일이 없다면 pf 설정이 비활성화된 상태
(이 경우 레지스트리 및 SysMain 서비스 확인 필요)

 

 

 

* Prefetch 파일 수집 및 분석
- 포렌식 툴에서 ' %SystemRoot%\Prefetch' 경로의 전체 파일을 추출
- 추출 후, 별도 디렉터리에 모두 저장
- 이후, WinPrefetchView 툴(포렌식 시험 공식 도구)을 사용하여 추출한 pf 파일들이 있는 폴더의 경로 설정
(Options -> Advanced Options -> 경로 변경) / 경로를 변경하지 않으면 로컬의 pf 폴더를 기본 경로로 잡음

WinPrefetchView  경로 변경 옵션
이미지 참조 : https://www.inflearn.com/course/%EC%9E%85%EB%AC%B8-%EB%94%94%EC%A7%80%ED%84%B8%ED%8F%AC%EB%A0%8C%EC%8B%9D-2%EA%B8%89-%EC%8B%A4%EA%B8%B0

- 그 중, 프리패치 상세 정보를 확인하기 위해 특정 .pf 더블 클릭 시, Properties 창의 확인이 가능
(Properties에서 Process Path 부분이 Drive 정보가 아닌 Volume으로 표시되는 경우가 종종 존재)

.pf의 Procee Path가 VOLUME으로 표시되는 경우

- 해당 경우에는 중괄호 내의 첫 16진수 값(위 이미지에서는 '01DA93217D957270')을 DCode 등의 툴로 변환하여 Volume 생성 시간 정보를 확인할 수 있다
(뒤의 16진수인 'ac7da1ac'는 해당 Volume의 Serial 정보)

이외, 일반적인 Properties 정보

* Properties에서 확인할 수 있는 정보

File Name - pf의 파일 이름
Created Time - 해당 파일의 최초 생성 시간
Modified Time - 해당 파일의 수정 시간(즉, 최종 실행 시간)
File Size - 실행 파일의 Size
Process EXE - 실제 실행 파일의 이름
Process Path - 실제 실행 파일의 경로
Run Counter - 실행 횟수
Last Run Time - 실행 시간에 대한 기록(내림 차순으로 표시)

 

 

 

 

반응형