forensic 1

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 

 

프리패치 파일의 구조

출처: https://www.youtube.com/watch?v=jmKYCyFf9XA

0~3까지는 프리패치의 버전입니다.

4~7: 프리패치 파일임을 알리는 시그니처

 

윈도우 10은 prefetch 파일을 압축한다. 때문에 ptrhon으로 해제 후에야 볼 수 있다.

-> MAM 형식(xpress Huffman Algorithm) 압축

그래서 이전의 윈도우 버전과 같이는 바로 볼 수 없어 파이썬으로 압축 해제 후 볼 수 있습니다.

시작이 MAN으로 보이면 압축되어 있는 prefetch 파일로 봅니다.

 

 압축된 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초 동안 참조되는 파일입니다. 

 

옵션에서 고급 옵션을 선택하면 프리패치 폴더를 지정하라는 대화창이 뜨는데요.

이것으로 로컬 컴퓨터 외에 다른 곳에서 수집한 파일을 분석할 수 있습니다.