[Tech Report] 윈도우 8 포렌식 - 윈도우 아티팩트
<연재 목차>
1. 윈도우 8 포렌식(1) : 메트로 UI와 관련 아티팩트(2012년 7월호)
2. 윈도우 8 포렌식(2) : 윈도우 아티팩트(이번 호)
3. 윈도우 8 포렌식(3) : 새로운 기능(2012년 9월호)
2012년 7월호부터 3회에 걸쳐 윈도우 8의 마지막 프리뷰 버전인 릴리즈 프리뷰(Release Preview, 이하 RP)에 대해 살펴보고 있다. 지난 호에서는 차세대 윈도우인 윈도우 8에서 가장 많이 변한 메트로 UI와 관련 아티팩트를 살펴보았다.
이번 호에서는 기존 윈도우 분석에서 사용하는 다양한 아티팩트가 윈도우 8에서 어떻게 변했는지 살펴본다. 자세한 구조를 언급하기보다는 윈도우 8 출시에 대비해 분석 시 어떤 점을 준비하고 고려해야 하는지에 초점을 맞춰 설명하겠다.
기본적인 윈도우 아티팩트로는 다음과 같은 것이 있다. 여기서 다루는 아티팩트는 침해 사고 포렌식 분석을 하면서 가장 일반적으로 살펴보는 것이다.
- 물리 메모리, 가상 메모리
- 파일 시스템과 폴더 구조
- 레지스트리
- 프리•슈퍼패치
- 이벤트 로그
- 웹 브라우저 사용 흔적
- 휴지통
- 링크 파일
- 볼륨 섀도 복사본
물리 메모리
운영체계의 실행 정보는 메모리에 저장된다. 전원이 차단되면 메모리의 정보가 사라지지만, 전원이 유지되는 동안 메모리의 정보는 운영체계의 상태를 가장 잘 나타낼 수 있는 데이터다. 그 때문에, 라이브 포렌식 시 물리 메모리는 필수적으로 덤프하여 분석해야 한다.
윈도우 메모리 구조는 버전이 업데이트될 때마다 많은 부분이 변경되었다. 윈도우 8 RP에서도 메모리 구조가 변경되었기 때문에 기존 윈도우 메모리 분석 도구는 윈도우 8의 메모리를 제대로 분석하지 못한다. 따라서, 윈도우 8이 정식 출시된 이후 기존 메모리 분석 도구가 업데이트될 때까지 기다릴 수밖에 없다. 메모리 분석 도구를 개발하는 입장이라면 현재의 구조를 분석해 윈도우 8 정식 출시에 대비해야 할 것이다.
가상 메모리
윈도우는 물리 메모리의 한계를 극복하고 성능을 향상시키기 위해 가상 메모리를 사용한다. 가상 메모리 기능은 가상 메모리 파일을 통해 구현되어 있는데 가상 메모리 파일의 위치는 다음과 같다.
∙ %SystemDrive%\pagefile.sys
윈도우 8 RP에서도 가상 메모리 파일은 그대로 유지된다. 하지만 시스템 볼륨을 확인하면 눈에 띄는 새로운 파일을 볼 수 있다. 바로 ‘swapfile.sys’라는 이름을 가진 스왑 파일이다. [그림 1]은 시스템 볼륨 내용에 스왑 파일이 존재함을 확인할 수 있다.

[그림 1] 윈도우 8 시스템 볼륨 내용
스왑 파일은 CP(Consumer Preview) 버전부터 256MB의 고정된 크기를 가지고 있다. 스왑 파일의 목적에 대해서는 다양한 추측이 나돌지만, 아직 공식적인 설명이 없어 정식 출시 이후에야 알 수 있을 것으로 보인다. 하지만, 이름으로만 보면 기존 페이지 파일의 역할을 보조하기 위한 것으로, 윈도우 주요 기능이나 커널 기능의 향상을 위해 사용될 것으로 예상된다. 따라서, 기존의 라이브 포렌식 영역에 스왑 파일도 포함해야 할 것이다.
가상 메모리 파일(pagefile.sys)은 메모리의 페이지가 연속 저장되어 있는 형태이며, 특별한 구조를 가지고 있지 않다. 현재 포렌식 분석에서는 주로 텍스트 추출을 이용해 메모리 내용을 보조 분석하는 기능으로 사용하고 있다. 스왑 파일도 가상 메모리 파일과 마찬가지로 분석에 활용할 수 있을 것으로 기대된다.
파일 시스템과 폴더 구조
윈도우 8 RP의 파일 시스템은 기본적으로 이전과 동일한 NTFS를 사용한다. 마이크로소프트의 차세대 파일 시스템인 ReFS(Resilient File System)를 사용할 것으로 예상되었으나, ReFS는 윈도우 서버 2012 버전에만 도입되었다. 윈도우 서버 2012는 현재 RC(Release Candidate)가 공개된 상태이다.
윈도우 8 RP에서 NTFS를 그대로 사용함에 따라 기존의 분석 기법이나 도구에 대한 영향력은 여전히 유효할 것으로 보인다. 실제로 윈도우 8 RP에서 NTFS 버전을 살펴보면 이전 윈도우 버전에서 사용하던 NTFS 3.1 버전을 그대로 사용하고 있어 파일 시스템을 분석하는 데 어려움이 없다.
윈도우 8이 윈도우 7 커널에 기반하여 개발되었기 때문에 폴더나 파일 구조도 크게 달라진 점이 없다. 윈도우 분석 시 가장 중요한 역할을 담당하는 사용자 데이터 폴더나 윈도우 시스템 폴더도 구조의 변경이 없다.
∙ 사용자 데이터 폴더 : %SystemDrive%\Users\
∙ 윈도우 시스템 폴더 : %SystemDrive%\Windows
레지스트리
∙ %SystemRoot%\system32\config

[그림 2] 윈도우 8의 %SystemRoot%\system32\config 폴더 내용
다만, [그림 2]에서 확인할 수 있듯이 윈도우 7에는 없는 3개의 하이브 파일인 BBI, DRIVERS, ELAM이 추가되었다.
1) BBI
BBI 하이브 파일의 내용은 [그림 3]과 같다. 이벤트(Events)와 작업 아이템(WorkItems) 키 하위에 각 이벤트(Event), 작업(Task)에 대한 GUID 키가 생성되어 있다. 해당 파일의 내용을 레지스트리 편집기(regedit.exe)로 확인할 수 없는 것으로 미루어 윈도우 내부적으로 이벤트와 작업을 관리하기 위해 추가된 것으로 판단된다.

[그림 3] BBI 하이브 파일 내용
2) DRIVERS
DRIVERS 하이브 파일의 내용은 [그림 4]와 같다. 데이터베이스(DriverDatabase) 하위 키로 윈도우에 설치된 드라이버의 ID, 드라이버 파일, inf 파일, 패키지가 관리되고 있다.

[그림 4] DRIVERS 하이브 파일 내용
드라이버 데이터베이스 내용은 [그림 5]와 같이 HKLM\SYSTEM 키 하위에 추가되기 때문에 레지스트리 편집기로 확인할 수 있다.

[그림 5] 레지스트리 편집기 내용
3) ELAM
ELAM 하이브 파일의 내용을 확인해보면 [그림 6]과 같다. 이 파일은 이름에서도 알 수 있듯이 윈도우 디펜더(Windows Defender)에 대한 정보를 저장하는 파일이다. 윈도우 디펜더는 스파이웨어나 악성 소프트웨어를 탐지하는 윈도우의 기본 프로그램이다. ELAM 하이브 내용은 레지스트리 편집기를 통해 확인할 수 없다.

[그림 6] ELAM 하이브 내용
프리패치
윈도우는 가상 메모리 이외에도 메모리 성능을 향상시키기 위해 프리패칭 기법을 사용한다. 프리패칭은 운영체계의 부팅, 애플리케이션의 실행 속도를 향상시키기 위해 사용하는 방법이다. 프로그램 실행 시 초기에 사용하는 시스템 자원과 정보를 프리패치 파일에 기록해둔 후, 시스템 부팅 시 해당 파일을 메모리에 로드해둔다. 그러면 로드된 프로그램 실행 시 파일로부터 정보를 읽지 않아도 되므로 초기 실행 속도를 향상시킬 수 있다. 프리패칭의 대상이 부트 데이터냐 애플리케이션이냐에 따라 부트 프리패칭과 애플리케이션 프리패칭으로 나뉜다.
프리패칭 설정은 다음 레지스트리 경로에 ‘EnablePrefetcher’ 값으로 설정된다. 윈도우 8 RP의 프리패칭 레지스트리 설정을 확인해보면 윈도우 Vista/7과 동일하게 부트 프리패칭과 애플리케이션 프리패칭이 기본으로 모두 활성화되어 있다.
∙ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
프리패칭 정보가 저장된 프리패치 파일의 경로와 파일명의 구조는 다음과 같다. 동일한 파일명을 가진 파일이 있더라도 경로가 다르기 때문에 해시 값으로 구분되어 저장된다.
∙ 파일 경로 : %SystemRoot%\Prefetch
∙ 파일명 : <실행 파일명><파일 경로 해시>.pf
윈도우 8 RP의 프리패치 파일 구조는 윈도우 Vista/7과 동일하다. 따라서, 기존의 프리패치 파일 분석 도구로 분석할 수 있다. 프리패치 파일 분석을 통해 얻을 수 있는 정보는 다음과 같다.
∙ 애플리케이션 이름
∙ 애플리케이션 실행 횟수
∙ 애플리케이션 마지막 실행 시각
∙ 애플리케이션 참조 목록(실행에 필요한 DLL, SDB, NLS, INI 등)
∙ 프리패치 파일의 파일 시스템 시간 정보
프리패치 파일은 애플리케이션을 실행할 때 윈도우가 자동으로 생성하기 때문에 위 정보를 활용하면 악의적인 파일의 실행 흔적을 파악할 수 있다.
슈퍼패치
슈퍼패칭 정보가 저장된 슈퍼패치 파일의 경로와 파일명 구조는 다음과 같다.
∙ 파일 경로 : %SystemRoot%\Prefetch
∙ 파일명 : Ag<슈퍼패치 파일명>.db
슈퍼패치의 파일 구조에 대해서는 아직 완벽하게 알려지지 않았지만 중요한 구조는 일부 밝혀졌다. 하지만, 윈도우 8 RP에서는 슈퍼패치 파일 구조가 일부 변경되었다. 그로 인해, 기존에 분석된 구조 정보를 통해 윈도우 8 RP의 슈퍼패치를 분석하기는 힘들다.
슈퍼패치의 파일 구조가 정확히 분석되지는 않았지만, 파일 경로가 포함된 유용한 문자열 정보를 얻을 수 있다. 따라서, 슈퍼패치 파일에서 문자열을 추출하여 슈퍼패칭된 파일의 정보를 얻어낼 수 있다.
이벤트 로그
기본 설정은 이벤트 로그는 윈도우 환경에서 각종 이벤트에 대한 성공, 실패 정보가 저장되는 로그 파일이다. 다양한 이벤트 로그 설정이 기본적으로는 비활성화되어 있지만, 유용하게 설정해둔다면 포렌식 분석에 많은 도움이 된다. 윈도우 8 RP의 이벤트 로그는 윈도우 Vista/7과 동일하게 다음의 위치에 저장된다.
∙ %SystemRoot%\system32\winevt\Logs
이벤트 로그 폴더로 이동해보면 [그림 7]과 같이 시스템, 응용 프로그램, 보안, 설치 로그와 같은 전역 로그 이외에 인터넷 익스플로러, 윈도우 파워셸, 하드웨어 이벤트, 윈도우 구성 요소 이벤트 등 200여 개의 이벤트 로그 파일을 확인할 수 있다.
[그림 7] 윈도우 8의 이벤트 로그 폴더
윈도우 8 RP의 이벤트 로그 구조는 Vista/7부터 사용해온 XML 기반의 EVTX 구조를 사용하고 있다. 따라서, 기존의 이벤트 로그 분석 도구를 그대로 사용할 수 있다.
웹 브라우저 사용 흔적
웹 브라우저 사용 흔적은 최근 인터넷 환경에서 사용자의 행위를 판단하는 데 매우 중요한 자료이다. 웹 브라우저 사용 흔적에는 캐시, 히스토리, 쿠키, 다운로드 목록이 있다. 윈도우 8 RP를 설치하면 기본적으로 인터넷 익스플로러 버전 10이 설치된다.
인터넷 익스플로러 버전 10에서 캐시, 히스토리, 쿠키, 다운로드 목록 정보가 저장되는 경로를 살펴보면 기존의 8/9 버전과 다른 점이 없다. 다만, 중요하게 바뀐 점이 있다. 사용 흔적 파일의 경로는 변경되지 않았지만, 해당 파일들의 정보를 인덱싱하는 인덱스 파일이 변경되었다. 인터넷 익스플로러 버전 9까지는 ‘index.dat’라는 이름의 인덱싱 파일을 사용했다. 하지만 버전 10에서는 ‘index.dat’를 찾을 수 없다.
휴지통
휴지통은 사용자가 삭제한 파일이 임시로 머무는 공간이다. 윈도우 8 RP의 휴지통 경로는 Vista/7과 같다. 각 볼륨마다 사용자별로 독립된 휴지통 공간이 존재한다.
∙ <Volume>\$Recycle.Bin\<USER SID>
윈도우 8 RP의 휴지통 관리 구조는 Vista/7과 동일하다. 휴지통을 살펴보면 [그림 8]과 같이 $R과 $I 접두어가 붙은 파일을 확인할 수 있다.

[그림 8] 윈도우 8의 휴지통 관리 구조
$R 접두어 파일은 삭제한 파일의 데이터를 저장하고 있는 파일이고, $I는 삭제한 파일의 원본 경로, 이름, 시간 정보 등을 저장한 파일이다. 윈도우 8 RP에서 구조가 동일하기 때문에 기존의 분석 도구로 분석이 가능하다.
파일이 삭제될 때 휴지통을 거쳐간다면 해당 파일의 $I 파일이 생성된다. 따라서, 휴지통에 남겨진 $I 파일이나 파일 카빙을 통해 $I 파일을 복구하면 삭제된 파일의 정보를 얻을 수 있다.
링크 파일
∙ %SystemDrive%\Users\
실행 파일이 생성되면 동시에 관련된 링크 파일이 생성되는데 링크 파일 정보를 분석하면 링크 대상의 이름, 위치, 시간 정보를 비롯하여 링크 대상이 위치한 볼륨의 ID 정보와 심지어 NetBIOS, Mac 주소 정보도 얻을 수 있다. 윈도우 8 RP에서 링크 파일의 구조는 이전 윈도우 버전과 동일하기 때문에 기존 도구로 분석하는 데 어려움이 없다.
볼륨 섀도 복사본
볼륨 섀도 복사본은 시스템의 장애를 복구할 목적으로 윈도우 XP까지 사용하던 시스템 복원 지점(Restore Point)을 개선한 서비스로 Vista/7부터 계속해서 사용하고 있다. 윈도우 8 RP에서도 볼륨 섀도 복사본 파일은 다음 위치에 존재하며 Vista/7의 위치와 같다.
∙ %SystemDrive%\System Volume Information
볼륨 섀도 복사본에는 시스템의 주요 내용이 백업된다. 운영체계 버전에 따라 주기적으로 백업되거나 특별한 이벤트가 발생했을 때 백업된다. 볼륨 섀도 복사본은 백업 시점에 시스템 흔적을 파악할 수 있는 중요한 자료이기 때문에 포렌식 분석 시 매우 유용하다.
윈도우 8 RP에서 볼륨 섀도우 복사본의 구조는 이전과 다른 점이 없다. 따라서, 기존의 분석 도구나 분석 방법을 이용해 동일하게 분석할 수 있다.
지금까지 윈도우 8 RP에서 기존 윈도우의 포렌식 분석 데이터가 어떻게 변화되었는지를 살펴보았다. 다음 호에서는 윈도우 8에서 새롭게 추가된 기능 중 포렌식 분석에 유용한 기능을 살펴보고 어떤 흔적을 남기는지 분석해본다.@
- AhnLabA-FIRST팀 김진국 주임 연구원