본문 바로가기

[+] Forensic

[정리] 슈퍼패치 활용

 윈도우 운영체제에서 실행 파일의 흔적을 알 수 있는 대표적인 흔적으로 프리패치(Prefetch) 파일이 있다. 프리패치 파일을 분석하면 프로그램의 실행 날짜, 실행 횟수, 프로그램 경로 등을 알 수 있는데, 프리패치는 메모리의 한계와 페이징으로 프리패칭 기능의 원래 목적 상실, 운영체제에서 프리패치 파일을 관리하는 정책 상 최대 128개의 프리패치 파일 생성이라는 문제로 인해 빠른 대응과 운이 따라주지 않는다면 프리패치를 통한 실행 프로그램의 정보를 획득하기는 쉽지 않다. 프리패치 파일을 카빙하면 이 부분을 어느정도 해소할 수 있지만 복구라는 것은 상황에 따라 결과물이 다르기 때문에 이를 해결책으로 생각해서는 안된다.


 또, 특별한 권한 없이 프리패치 파일에 접근 할 수 있어 많은 악성코드 또는 도구에서 안티 포렌식 대상으로 삼기도 해 요즘은 사실 프리패치에서 많은 정보를 얻진 못한다. 


 이러한 이유들로 예전에는 분석에 초점을 두지 않았던 슈퍼패치가 다시 분석 대상에 오르기 시작하였다. 슈퍼패치는 프리패치와 함께 윈도우 운영체제에서 사용하는 메모리 관리 기술로, 사용자의 프로그램 사용 패턴(얼마나 자주, 언제, 얼마 동안)을 디비 형태의 파일에 기록하고 추적하는 기술이다. 슈퍼패치의 저장 경로는 다음의 경로로 프리패치와 동일하다.


 - %SystemRoot%\Prefetch


 슈퍼패치 기능은 윈도우 운영체제가 설치된 컴퓨터 환경에 따라 기능이 Off 되어 있을 수 있다. 대표적으로 SSD를 사용하는 컴퓨터에 설치된 윈도우 운영체제라면 슈퍼패치와 프리패치 기능은 기본으로 꺼져 있다. 시스템의 성능을 빠르게 하기 위하여 생겨난 메모리 관리 기술이나 SSD는 저장매체 자체가 메모리이기 때문에 그 속도가 HDD와는 다르게 빨라 메모리 관리 기술이 필요 없는 것이다. 오히려 해당 기술로 인해 시스템의 불필요한 퍼포먼스만 추가하게 되는 셈이다. 슈퍼패치는 다음과 같이 슈퍼패치 서비스가 시작되어야 운영체제에서 슈퍼패치 기능을 실행한다.


[그림 1 - 슈퍼패치 서비스]


 또 레지스트리 설정으로 슈퍼패치 기능을 활성화 시킬 수 있다. 이는 인터넷에 자료가 많으니 참고하기 바란다.


 슈퍼패치일 파일은 저장 경로에 접두어 "Ag"로 시작하는 파일이다. 해당 파일의 구조는 다음 문서를 참고하기 바란다.


 - 슈퍼패치 파일 구조


슈퍼패치 파일에서 포렌식 관점의 필요한 데이터는 정리하면 다음과 같다.


1. 실행 프로그램의 이름

2. 실행 횟수

3. Foreground 실행 횟수

4. 실행 프로그램이 메모리에 로드한 파일

 - dll 파일

 - 압축 파일

 - 문서 파일

 - 데이터베이스 파일

 - 이 외의 파일 및 폴더 등

5. 실행 프로그램의 전체 경로

6. 실행 프로그램의 실행 시간대

 - 평일 오전 6시 ~ 오후 12시 (Weekday 6AM to 12PM)

 - 평일 오후 12시 ~ 오후 6시 (Weekday 12PM to 6PM)

 - 평일 오후 6시 ~ 오전 12시 (Weekday 6PM to 12AM)

 - 평일 전체 (Weekday Global)

 - 주말 오전 6시 ~ 오후 12시 (Weekend 6AM to 12PM)

 - 주말 오후 12시 ~ 오후 6시 (Weekend 12PM to 6PM)

 - 주말 오후 6시 ~ 오전 12시 (Weekend 6PM to 12AM)

 - 주말 전체 (Weekend Global)

7. 타임스탬프


슈퍼패치를 분석할 수 있는 도구는 Superfetchlist 도구와 CrowdResponse 도구가 있다. 입맛에 맞는 도구를 사용하면 된다. 다만, Superfetchlist 도구의 경우 CLI 기반과 GUI 기반의 도구로 나뉘어져 있고 파싱되어 출력된 정보가 CrowdResponse 도구에 비해 많지 않아 필요로 하는 정보를 얻지 못할 수 있다. 다음은 두 도구의 실행 화면이다.


[그림 2 - Superfetchlist 도구 실행 화면 (출처: http://www.tmurgent.com/)


[그림 3 - CrowdResponse 도구 HTML 보고서 (출처: http://digital-forensics.sans.org/)]


[그림 4 - CrowdResponse 도구 csv 보고서 (출처: http://digital-forensics.sans.org/)]


프리패치보다 정보가 많고 데이터베이스 구조이기 때문에 프리패치처럼 정보가 쉽게 날라가지 않아 프리패치보다 정보를 얻을 확률이 더 높고 프리패치 만큼의 정보를 얻을 수 있다. 하지만 환경에 따라 기본 설정이 Off 되어 있는 만큼 기존에 설정을 해줄 필요가 있다.