컴퓨터공학 전공생의 보안 도전기✌

[SUA] 프리패치(Prefetch) 본문

Security/Digital Forensic&Incident Response

[SUA] 프리패치(Prefetch)

A7uly 2022. 4. 9. 11:37

프리패치(Prefetch)

부팅 시 또는 응용프로그램이 처음 실행될 때 성능 향상을 위해, 실행 파일이 사용하는 시스템 자원을 특정 파일에 저장해두는 파일.

윈도우 부팅 시, 프리패치 파일들을 전부 메모리에 로드시키면 사용자가 응용프로그램을 실행할 때,

프리패치 파일에 저장된 정보를 하드디스크가 아닌 메모리에서 읽어와 바로 실행하여 실행 속도를 향상시킨다.

Windows XP 이후 OS부터 기능을 제공하지만, 10부터는 또 사라졌다. => 빠른 실행 기능이 도입되어 사라짐.

 

이 기능을 비활성화도 가능. But 침해사고 발생 시 흔적 추적을 위해서 설정해두는 것이 좋다.

왜냐하면 프리패치 파일을 통해 어떤 응용프로그램이 실행되었고, 언제 사용되었는지 등 그 흔적을 찾을 수 있기 때문이다.

그렇지만 응용프로그램을 실행했어도 프리패치 파일에 흔적이 남지 않는 경우도 존재하는데,

이는 안티 포렌식 기술이 적용된 것으로 볼 수 있다. (맨 아래에서 관련 설명)

이 경우 프리패치 카빙 기술로 복구 시도 - 시그니처 SCSA(0x41434353)

저장 위치 및 형식

프리패치 파일에는 응용프로그램의 이름과 실행 횟수, 생성 시간, 마지막 실행 시간, 경로, 참조 목록 등이 포함.

%SYSTEMDRIVE%prefetch 에 .pf 형식으로 저장되고, 최대 128개의 프리패치 파일까지를 유지한다.

새로운 응용프로그램을 실행하여 프리패치 파일이 새로 생성해야 하는데 이미 공간이 꽉 찼다면,

LRU 알고리즘에 의해 가장 오래 사용하지 않은 응용프로그램의 프리패치 파일을 삭제하고 추가한다.

오래된 프리패치 파일을 삭제하면 비할당영역에서 프리패치 파일을 카빙했을 때, 상당히 많은 파일을 발견할 수 있다.

 

즉 원본 실행프로그램을 제거해도 프리패치 파일은 남아있고, 프리패치 파일이 존재하지 않는다고 해서 그 응용프로그램이 실행되지 않았다는 의미도 아니다.

종류

부트 프리패치

윈도우가 부팅될 때, 최대 120초 동안을 모니터링하여 부팅 시 사용되는 코드와 관련 데이터를 파일로 저장해둔 것.

Windows XP, 2003, Vista 2008, 7에서 지원.

NTOSBOOT-BOODFAAD.pf 라는 이름을 가지며, 단일 파일로 존재한다.

시스템이 부팅되는 속도를 좀 더 빠르게 하기 위해 사용된다.

 

응용프로그램 프리패치

Windows XP, Vista, 7, 8에서 지원.

응용프로그램을 처음 실행할 때 프로그램이 사용하는 자원 및 관련 데이터를 한 곳에 모아 저장해두는 파일.

위의 프리패치에 대하여 설명한 것들이 이에 해당한다.

관련해서 찾아본 단어

파일 카빙

메타 데이터가 손상 또는 변조된 경우 복구가 불가능하기 때문에, 직접 저장장치에서 원하는 파일을 찾아내는 것.

저장장치의 모든 영역에 대해서 해당 파일의 시그니처를 탐색해야 한다.

그것을 효율적으로 하기 위해서 비할당영역에의 카빙, 즉 지워진 파일의 경우로 한정하기도 한다.

비할당영역은 파일에 할당되지 않은 공간 + 파일이 삭제되어 할당이 해제된 공간을 말한다.

안티 포렌식

디지털 데이터를 조작, 삭제 또는 난독화하여 조사를 어렵게 만들거나, 시간이 많이 소요되도록 하거나, 아니면 거의 불가능하게 만드는 것.

데이터 은폐, 크랙, 스테가노그래피, 데이터 파괴 등의 기법이 있다.

(이에 대해서는 나중에 따로 포스팅하도록 할 것!)

Reference

https://secuworld.tistory.com/21

 

응용 프로그램 실행 분석-프리패치분석

prefetch 분석 윈도우의 프리패칭은 부팅할 때나 응용프로그램을 시작할 때 성능을 향샹시키기 위해 구현된 기능이다. 부팅 시에는 120초를 모니터링하고 응용프로그램 시작 시에는 10초를 모니터

secuworld.tistory.com

https://ws1004-4n6.notion.site/Prefetch-Structure-Analysis-071a648fdb4445d9bfee8be3a6e4e107#7efafd87357a401f88ef2bafeefb8f7d

 

Prefetch Structure Analysis

프리패치 파일이란?

ws1004-4n6.notion.site

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=nobless_05&logNo=50192636298 

 

[윈도우 포렌식] 파일 실행 흔적 - Prefetch

Prefetch(이하. 프리패치)란? - 프리패칭은 부팅, 응용프로그램 시작 시 성능 향상을 위해 마이크로소프트...

blog.naver.com