[Windows Artifacts] Prefetch

 

윈도우 아티팩트


(1) Prefetch란?

  • 부팅 시 혹은 응용 프로그램을 실행할 때 속도를 높이기 위해 사용

  • Windows 내에서 메모리를 효율적으로 관리하기 위한 한 방법

  • Process

    • 부팅 시에는 120초 동안 모니터링하고, 응용 프로그램 시작 시에는 10초 모니터링

    • 모니터링 시간 동안 메모리에 올라온 프로세스 모니터링

    • 모니터링 시간 동안 메모리에 올라온 프로세스의 시스템 자원 모니터링

    • 메모리에 올라온 프로세스 모니터링 정보로 프리패치 파일 생성

    • 부팅 혹은 응용 프로그램 실행

    • 미리 저장된 프리패치 파일에 남겨진 정보를 메모리에 미리 실행

    • 프로세스 로딩 속도 향상


(2) Prefetch 상세 내용

2-1. Kind of

  • Windows OS Function

2-2. Information

  • Executed Process, Process Path, Created / Modified Time

  • Loaded DLL, Loaded File

2-3. Path

  • %Systemroot%Prefetch

2-4. Characteristic

  • Store 128 limited file, Delete old files when the number exceeds

  • It must be in memory for a certain period of time to be stored...

2-5. Tools

  • PECmd

  • WinPrefetchView

 

2-5-1. PECmd : https://ericzimmerman.github.io

 

Eric Zimmerman's tools

 

ericzimmerman.github.io

 

2-5-2. WinPrefetchView : https://www.nirsoft.net/utils/win_prefetch_view.html

 

View the content of Windows Prefetch (.pf) files

    WinPrefetchView v1.36 Copyright (c) 2010 - 2020 Nir Sofer Description Each time that you run an application in your system, a Prefetch file which contains information about the files loaded by the application is created by Windows operating system. T

www.nirsoft.net

 

[그림 1] WinPrefetchView 실행 화면 예시


(3) 아티팩트 분석 실습

3-1. FTK Imager > Windows > Prefetch(.pf)

 

[그림 2] FTK Imager - Prefetch 수집

 

여기서 중요한 것은, Prefetch 파일 수집(추출)이나 출력 결과물 저장은 수집 대상물의 데이터 무결성을 위해 분석 환경에서 진행해야 하며, 가상 환경 공유 폴더나 이동식 매체로 지정해야 한다.

 

즉, 수집 도구에 의한 수집물은 '이동식 매체'로 저장하고 분석 결과도 수집 대상물에 저장되지 않도록 분석은 수집 대상물 PC가 아닌 분석용 로컬 PC(호스트)에서 진행해야 한다.

 

수집된 파일이나, 디렉토리는 수집 대상물의 디스크에 바로 저장되어서는 안 되며, 바로 공유 폴더  등의 이동식 매체에 저장되어야 데이터 무결성이 깨지지 않는다.

 

또한, 아티팩트를 수집할 시에 MAC 타임 보존은 필수적으로 숙지하고 진행한다.

 

 

[그림 3] 해당 아티팩트 공유 폴더 지정 예시

 

위 [그림 3]은 해당 아티팩트 분석을 위해 분석 환경 공유 폴더로 해당 파일을 지정해 준 화면이다.

 

 

3-2. WinPrefetchView 활용, 프리패치 분석

 

[그림 4] WinPrefetchView 아티팩트 분석

 

WinPrefetchView 도구를 사용하여 확인해보면, 여러 프리패치 파일들을 확인할 수 있다.

 

파일 이름, 생성 시간, 수정 시간 등 정렬 기준을 마음대로 하여 파일 확인도 가능하다.

 

 

3-3. 레코드 & 컬럼 분석

 

[그림 5] 레코드 & 컬럼 분석

 

메모장에 대한 프리패치 파일을 예로 들어 분석한 내용이다.

  • 노트패드(메모장)에 대한 프리패치 파일

  • 생성 시간, 수정 시간, 파일 크기, 실행 된 프로세스, 프로세스 경로에 대한 정보 확인 가능

  • 마지막 런 타임, 런 카운터, Missing Process에 대한 결과 값도 같이 확인 가능

 

Missing process ?

  • nirsoft WinPrefetchView 해당 도구가 추가한 커스텀 컬럼

  • 원래의 prefetch 파일 설계 레이아웃에는 존재하지 않음

  • Process Hollowing 기법을 탐지하기 위해 만들어진 컬럼 (오탐 가능성 존재)

 

Process Hollowing ?

  • 프로세스 시작 시에 suspend 옵션을 주어 잠시 일시중지 후 해당 프로세스의 실행 섹션에 악성코드 인젝션 후, 재시작 시키는 공격자의 악성코드 삽입 기법

  • 코드 인젝션을 용이하기 하기 위한 기법이며, 이런 기법이 사용될 경우 prefetch 파일에 이상 동작이 기록

  • 'Missing Process' 컬럼에 'yes'가 표현되는 이유는 해당 prefetch 파일 내에 프로세스 경로나 위치가 정상적으로 기록되지 않아서 기록

 

Prefetch 파일과 Process Hollowing 상관관계

  • 프로세스는 실행되기 위해 7가지 세부 단계를 거침 (세부 단계 생략, Windows Internals 참조)

  • Prefetch 기능은 7번째 단계에서 동작

  • Process Hollowing 기법은 6번째 단계에서 시작 (프로세스 일시중지 - 6번째 단계 / 재시작 - 7번째 단계)

  • 따라서, 7번째 단계에 악성코드가 재시작되므로 인젝션 된 프로세스의 Prefetch 파일에는 악성코드가 로드하는 리소스들이 기록

  • 예를 들어, 정상 calc..exe 프로세스의 Prefetch 파일에는 정상적인 리소스들이 로드된 기록이 남겠지만 Process Hollowing 기법으로 인젝션 된 calc.exe 프로세스의 Prefetch 파일에는 악성코드가 로드한 리소스들이 남을 것

 

즉, Process Hollowing 기법의 타겟이 된 프로세스의 Prefetch 파일은 인젝션되어 오작동하기 때문에 정상적으로 원본 프로세스의 경로를 읽지 못한다거나, 원래는 불러와야 할 리소스를 불러오지 못한다.

 

이 과정에서 정상적인 Prefetch 파일이 제대로 기록되지 못하고, 무언가 누락된 Prefetch 파일이 생성되게 된다.

 

 

3-4. DLL / INI 파일 확인

 

[그림 6] 프리패치 관련 DLL 파일

 

하단을 보면 메모장 프로그램에 대한 프리패치 파일과 관련된 여러 DLL 파일이나 INI 등 관련 파일들에 대한 디바이스 경로와 인덱스 번호에 대한 결과 값 확인도 가능하다.

 

이를 통하여 로드 된 악성 파일의 실행 흔적 확인도 가능하다.


(4) 추가 내용 정리

  • 윈도우 프리패치는 실행 파일이 사용하는 시스템 자원을 특정 파일에 미리 저장하는 파일

  • 윈도우 부팅 시에 프리패치 파일을 모두 메모리에 로드

  • 사용자가 파일을 실행할 경우, 미리 저장된 정보를 메모리에서 실행하여 실행 속도를 향상 시킴

  • 프리패치 파일의 포렌식적 의미로는 다양한 정보를 저장하므로 포렌식적으로 중요한 정보 활용이 가능

  • 프리패치 파일에서 획득 가능한 정보는 응용 프로그램 이름, 응용 프로그램 실행 횟수, 응용 프로그램 마지막 실행 시각, 참조 목록, 파일 시스템 시간 정보(MAC 타임)를 이용한 통합 타임라인 분석 등이 있음

  • Missing Process 컬럼은 해당 도구(nirsoft Winprefetchview)가 추가한 커스텀 컬럼으로, Process Hollowing 기법을 탐지하기 위해 만들어진 컬럼 (오탐 가능성 존재, 오탐 이유)

  • Process Hollowing 기법 타겟이 된 프리패치 파일은 인젝션되어 정상적 원본 프로세스 경로를 읽지 못하거나 기존에 불러와야 하는 리소스를 불러오지 못하게 되어 정상 프리패치 파일이 제대로 기록되지 못하고 누락된 프리패치 파일이 생성됨


# Reference

 

http://forensic-proof.com/archives/6103

 

(FP) 프리, 슈퍼 패치 포렌식

'Digital Forensics > Artifacts' 카테고리의 다른 글

[Windows Artifacts] Shortcut (LNK)  (0) 2020.05.25
[Windows Artifacts] Event Log  (0) 2020.05.25
[Windows Artifacts] Registry  (0) 2020.05.24
[Windows Artifacts] $UsnJrnl  (0) 2020.05.24
[Windows Artifacts] $LogFile  (0) 2020.05.24

+ Recent posts