윈도우 XP 이후 운영체제에서 제공하는 메모리 관리 정책으로 인해 부팅 또는 응용프로그램을 시작할 때 성능 향상을 위해 구현된 기능이다. 프리패치 파일에 실행 파일이 사용하는 시스템 자원을 미리 저장하였다가 윈도우 부팅 시 프리패치 파일을 모두 메모리에 로드하여 실행 속도를 향상시킨다.
프리패치 파일은 최대 128개 파일을 유지하며, 새로운 응용프로그램이 실행되면 가장 오래 사용하지 않은 응용프로그램의 프리패치 파일을 삭제하여 새로운 응용프로그램의 프리패치 파일 생성하며, 부팅시 120초, 응용프로그램 시작 시 10초간 모니터링한 응용프로그램 정보로 파일을 생성한다.
프리패치 파일은 %SystemRoot%\Prefetch 경로에 생성되며, 생성되는 파일명은 [실행 파일명]-[파일 경로에 대한 해쉬].pf와 같은 규칙으로 생성이 된다.
[그림 1] 프리패치 파일 폴더
이러한 프리패치 파일을 분석하여 얻을 수 있는 정보는 아래와 같으며, NirSoft 사의 WinPrefetchView 툴을 사용하여 쉽게 분석이 가능하다.
1) 실행 파일 정보 (실행 파일명, 파일경로 등)
2) 실행 파일의 실행 횟수
3) 실행 파일의 마지막 실행 시간
4) 실행 파일의 최초 실행 시간 (프리패치 파일 생성 시간)
[그림 2] WinPrefetchView 화면
5) 실행파일이 실행된 볼륨의 정보
볼륨 정보를 통해서 외장저장장치 등의 사용 흔적을 찾을 수 있다.
[그림 3] 프리패치 분석을 통해 확인 가능한 볼륨 정보
6) 실행파일 실행 시 참조된 파일 목록
압축 응용프로그램의 프리패치를 분석을 통해 압축해제된 파일의 흔적이 확인 가능하며, 문서관련 응용프로그램의 프리패치 분석을 통한 문서파일 사용 관련 정보를 확인 가능하다.
[그림 4] 참조된 파일 목록
7) 부팅 과정 정보
NTOSBOOT-B00DFAAD.pf 파일의 참조 목록을 확인하여 부팅시 참조된 파일의 정보가 확인이되며, Index로 정렬하면 부팅시 실행한 순서로 확인이 가능하다.
[그림 5] 부팅시 로드된 정보
프리패치를 분석함으로써 위와같은 정보들을 얻을 수 있지만, 프리패치 분석중 고려해야할 몇가지 사항들이 있다.
1) 오래된 프리패치 파일은 삭제되어 비할당 영역에 존재할 수 있으므로 카빙을 통해 분석이 가능하다.
2) 원본 실행파일이 제거되어도 프리패치 파일은 시스템에 남아있다.
3) 프리패치파일이 존재하지 않는다고 특정 프로그램이 실행되지 않았다는 의미는 아니다.
4) 윈도우 XP이후의 모든 운영체제에서 프리패치 파일을 생성하는 것은 아니다.
윈도우 7이상의 운영체제에서 SSD를 사용할 경우 메모리 최적화 기능으로 인해 프리패치 생성이 비활성화 되있을 수 있으며, 운영체제의 세부적인 버전별로 차이가 존재한다. 또한 프리페치 관련 레지스트리(HKLM\SYSTEM\ControlSet00#\Control\Session Manager\Memory Management\Prefetch Parameter\EnablePrefetcher)에서 비활성화되어 있을 경우도 존재한다.
※ 참고자료
http://forensic-proof.com/archives/6103
http://portable-forensics.blogspot.kr/2014/11/prefetch-and-superfetch.html
'Forensic > Windows Artifact' 카테고리의 다른 글
휴지통 분석 (Recycle Analysis) (0) | 2017.03.10 |
---|