안녕하세요. 도깬리 포렌식스 입니다.
오늘부터는 프리페치 파일에 대해 알아보겠습니다. 혐의자의 컴퓨터 사용이력을 분석할 때 필수적으로 참조하는 시스템 파일입니다. 모두 화이팅 하세요.
가상 및 물리적 메모리
32비트 윈도우 시스템에서는 최대 4GB의 가상 메모리를 사용 할 수 있습니다.
가상 주소 영역은 2개의 파티션으로 나뉩니다.
- 디폴트 2GB + 시스템 사용 부분인 2GB
64비트 윈도우 시스템에서는 최대 8TB의 가상 메모리 사용할 수 있습니다.
메모리 페이지 (Memory Pages)
가상 메모리는 ‘페이지(Pages)’라는 단위로 쪼개집니다.
32비트, 64비트 윈도우 시스템 모두 페이지의 크기는 4KB 입니다.
프로세스가 사용하는 메모리 용량이 사용가능한 물리적 RAM 용량을 초과할 경우, 일정량의 메모리를 디스크에 ‘페이지 파일(pagefile)’로 할당합니다.
페이지 폴트 (Page Faults)
3가지 종류의 페이지 오류
Minor or soft page faults
메모리 안으로 페이지를 불러 들였지만, 프로세스의 현재 작업셋에 기록되지 않은 경우입니다.
Major or hard page faults
메모리 안으로 페이지가 전혀 불러 들어오지 않은 경우입니다.
Invalid page faults
프로세스가 자신의 가상 주소 영역의 일부가 아닌 다른 주소를 참조하는 경우입니다.
Minor, Major faults 는 일상적으로 발생하는 오류임
메모리 관리 (Memory Handling)
메모리 관리자(momory manager)가 가상 메모리를 물리적 메모리에 매핑하고, 이 프로세스는 ‘커널’ 단위에서 작동합니다.
메모리 관리자가 최적의 상태로 작동하도록 고안한 것이 prefetch 입니다.
- 메모리 관리자 : 윈도우 시스템에서 메모리를 관리하는 장치, 윈도우 동작의 핵심입니다.
- 프리페치 : 윈도우 시스템의 성능을 향상시켜주나, 비활성화 해도 됩니다.
프리페치 역할
Prefetch는 Windows XP 이후 등장했습니다.
디스크의 데이터를 메모리 페이지로 미리 불러와서 그 성능을 향상시킵니다.
디스크 속도가 RAM의 속도보다 느리기 때문에, 이러한 시스템의 병목현상을 줄이기 위해 고안된 것입니다.
Prefetch가 하는 2가지 작업
- 윈도우 부팅(Booting)
- 어플리케이션 로딩(Loading)
즉 Prefetch는 필요한 데이터를 모두 미리 불러와서 데이터가 연속적으로 읽혀지게 만들어 시스템의 병목현상을 줄입니다.
프리페치 작동 방법
윈도우 캐시 관리자는 부팅 프로세스가 시작되고 처음 2분, 모든 윈도우 서비스가 로딩된 후 60초, 사용자 쉘(Windows Exporer, Internet Explorer 등)이 시작된 후 30초 중에서 하나의 이벤트라도 먼저 일어나면 그 기간 동안의 페이지 폴트를 모니터링합니다.
어플리케이션이 시작된 후 처음 10초를 모니터하기도 합니다.
- 위치: \Windows\Prefetch 폴더에 저장합니다.
- 확장자 : .pf
- 파일이름 : 실행파일 이름.확장자-실행파일이 저장된 경로에 대한 해시값
- 예) 부팅 프로세스와 관련된 ‘트레이스 파일’
NTOSBOOT-B00DFAAD.pf
프리페치를 비활성화 할 수 있는가?
Prefetch 관련 설정 레지스트리 값의 위치
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\EnablePrefetcher
0 --> Prefetch 기능 비활성화
1 --> 어플리케이션 시작 데이터만 Prefetch 함
2 --> 부트 데이터만 Prefetch 함
3 --> 부트 및 어플리케이션 시작 데이터만 Prefetch 함
비활성화 되지 않았더라도 원하는 프리페치 파일을 삭제할 수 있다. 다만 관련 어플리케이션이 다시 실행되거나 컴퓨터가 다시 부팅을 하면 재생성된다.
감사합니다. 오늘도 즐거운 하루 되세요.
"좋아요"와 "구독하기"는 힘이 됩니다.
참고문서 : EnCase Advanced Forensics
'EnCase' 카테고리의 다른 글
[EnCase] 프리페치(Prefetch) 분석 (3) (0) | 2022.07.17 |
---|---|
[EnCase] 프리페치(Prefetch) 분석 (2) (0) | 2022.07.11 |
[EnCase] 암호 분석 (4) (0) | 2022.07.05 |
[EnCase] 암호 분석 (3) (0) | 2022.07.03 |
[EnCase] 암호 분석 (2) (0) | 2022.06.29 |