2019. 6. 28. 14:23ㆍ카테고리 없음
preFetch란
: 윈도우 운영체제에서 사용하는 메모리 관리 기술입니다.
- 실행 파일이 사용하는 시스템 자원 정보를 pf 파일에 미리 저장
- 미리(pre) 저장한 정보를 이용해서 실행 속도를 향상 시킵니다.
- 다음번 실행시부터는 메모리에서 pf파일에 저장된 정보를 load 해서 속도가 붙게 됩니다.
- 운영체제의 부팅시에도 속도 향상을 위해서 pf 파일 모두를 메모리에 올려놓습니다.
prefetch 파일의 유형
부트 프리패칭
- 부팅과 관련 된 파일을 pf파일로 만들어 놓고 부팅 시 메모리에 올립니다.
ex) 윈도우는 부팅 중 다양한 파일을 사용합니다.
만약, 부팅과 관련된 파일이 저장매체에 단편화(서로 떨어져) 있으면 부팅 시 속도가 저하 됩니다.
-> 때문에 미리 프리패칭 된 파일을 이용하여 부팅 시 속도 향상을 시킵니다.
- 윈도우는 부팅 시에 120초를 모니터링 한다.
응용 프로그램 프리패칭
- 응용 프로그램을 시작할 경우에는 10초 모티터링을 한다.
- 응용 프로그램이 한 번이라도 실행된다면 이전에 만들어진 pf 파일을 이용해 실행 속도 향상
모니터링 한 정보를 바탕으로 프리패치 파일을 생성한다. 여기서 생성된 프리패치 파일은 재부팅할 혹은 응용 프로그램을 재실행 할 때 속도를 향상 시켜준다.
만약 메모리에 로드되어 있던 프리패치 파일이 있었는데, 사용자가 그 프리패치 파일과 매칭되는 프로그램을
실행할 경우 HDD에서 시행하는 것이 나이나, 메모리에서 프로그램을 실행하기 때문에 속도가 향상된다.
prefetch 파일로 획득 가능한 정보
- 파일 사이즈
- 응용 프로그램 이름
- 응용 프로그램 실행 횟수
- 응용 프로그램 마지막 실행 시각
- 참조 목록(dll, sdb, nlsm ini 등의 경로)
- 파일 시스템 시간 정보(생성/ 수정/ 접근 시간)을 이용한 통합 분석
활용 할 수 있는 것
- 악성 코드가 실행될 경우 프리패치 파일 생성
- 부트 프리패치 파일을 이용해 부팅 시 로드 되는 악성 코드 탐지
- 참조 목록을 통해 로드된 라이브러리와 파일 목록 확인이 가능
Prefetch 파일의 저장 경우
-> c::\windows\PreFectch

프리패치 파일의 구조

0~3까지는 프리패치의 버전입니다.
4~7: 프리패치 파일임을 알리는 시그니처
윈도우 10은 prefetch 파일을 압축한다. 때문에 ptrhon으로 해제 후에야 볼 수 있다.
-> MAM 형식(xpress Huffman Algorithm) 압축
그래서 이전의 윈도우 버전과 같이는 바로 볼 수 없어 파이썬으로 압축 해제 후 볼 수 있습니다.
시작이 MAN으로 보이면 압축되어 있는 prefetch 파일로 봅니다.

prefetch 파일과 pagefile.sys 파일의 관계
pagefile.sys를 분석하면 메모리상에 존재했던 데이터를 찾을 수 있음.
- 사용자의 아이디, 패스워드 정보나 이미지 파일, 문자열 확인 가능
- 복호화 된 문자열이나 키 값이 존재할 수 있기에 이것으로 사전 공격의 데이터로 사용되기도 함.
- pagefile.sys는 시스템을 종료해도 삭제되지 않고, 재부팅 시 해당 파일에 관련 내용을 덮어씀
- 레지스트리 설정을 통해 시스템 종료 시 pagefile을 삭제 가능
※ 삭제 되더라도 비 할당 영역에서 볼 수 있음
- pagefile.sys는 제한된 물리메모리 상에서 스왑 아웃(swap-out)된 메모리 페이지가 존재
레지스트리 pagefile.sys 설정
경로:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

ClearPageFileAtShutdown의 값을 1로 변경하였을 때 컴퓨터를 종료하면
pagefile.sys 내용을 삭제합니다.
preFetch 분석
prefetch 분석 도구
winprefetchview
다운로드 - https://nirsoft.net/utils/win_prefetch_view.html
View the content of Windows Prefetch (.pf) files
WinPrefetchView v1.35 Copyright (c) 2010 - 2016 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. The
nirsoft.net

winprefetchview를 실행 시키면
바로 로컬에 있는 프리패치 파일을 불러와 분석해줍니다.
윗 부분이 응용 프로그램 프리패치 파일이고
아랫 부분이 실행시 10초 동안 참조되는 파일입니다.

옵션에서 고급 옵션을 선택하면 프리패치 폴더를 지정하라는 대화창이 뜨는데요.
이것으로 로컬 컴퓨터 외에 다른 곳에서 수집한 파일을 분석할 수 있습니다.