
Artifacts란 사용자의 직접적인 개입 없이, 자동으로 생성된 데이터 중 일정한 구조를 띄는 데이터이다.
레지스트리는 Windows 운영체제에서 사용자, 시스템, 프로그램 실행과 관련된 설정을 저장하는 데이터베이스이다. Win+R 키를 누른 후 'regedit'을 입력해 레지스트리 편집기를 실행할 수 있다.

위와 같이 5개의 루트 키가 존재하는 계층구조로 되어 있는데 각각의 역할은 아래와 같다.
HKCU가 HKU의 하위에 있는 등 각각의 루트 키가 서로 독립적이지 않으며, 겹치는 데이터가 있을 수 있다.
이 레지스트리는 하나의 파일이 아니며, 다음과 같은 파일로 나뉘어 저장된다.
C:\Users\[Username]\NTUSER.DATC:\Users\[Username]\AppData\Local\Microsoft\Windows\UsrClass.datC:\Windows\System32\config\DEFAULTC:\Windows\System32\config\SAMC:\Windows\System32\config\SECURITYC:\Windows\System32\config\SOFTWAREC:\Windows\System32\config\SYSTEM해당 파일을 복제하려면 드라이브를 이미징한 후 추출해야 한다. 이때 적용되지 않은 dirty 레지스트리가 .LOG1, .LOG2 파일에 남아있을 수 있는데, 여기에서 RLA라는 프로그램을 이용해 이 dirty 레지스트리를 clean하게 만들어야 한다.
rla.exe -d "[dirty 레지스트리 디렉토리]" --out "[clean 레지스트리 디렉토리]"
위와 같이 명령어를 사용하면 레지스트리가 clean하게 바뀐다.
Regripper 라는 프로그램을 사용해 레지스트리를 쉽게 분석할 수 있다. CLI 기반으로, 내장된 플러그인이 목적에 맞는 데이터를 추출하여 원하는 레지스트리 정보를 탐색하는데 도움을 준다.

Hive File:에는 레지스트리 하이브 파일을 넣고, Report File:에는 로그가 저장될 파일을 넣은 후 Rip! 버튼을 누르면 분석이 완료되고, 이후 여러 명령어를 통해 상세 정보를 확인할 수 있다.
| 레지스트리 | 내용 |
|---|---|
| HKLM\SYSTEM\ControlSet00?\Control\Windows | 부팅 횟수, Crash 정보 |
| HKLM\SYSTEM\CurrentControlSet\Enum\USB | USB 연결 기록 |
| HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR | USB 장치 연결 기록 |
| HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache | 실행된 프로그램 목록 |
| HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces | 네트워크 인터페이스 기록 |
| HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion | 현재 시스템의 정보 |
| HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList | 시스템에 존재하는 모든 사용자의 계정 목록 |
| HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall | 어떤 프로그램이 설치되어 있었는지 |
| HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run | 부팅 시 자동으로 실행되는 프로그램 |
| HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer | 파일 탐색기 관련 활동 |
| HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Applets | 최근 실행된 프로그램 |
| HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs | 최근 연 문서 |
| HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\UserAssist | 프로그램 실행 기록 |
| HKCU\SOFTWARE\Microsoft\Windows\Shell | 폴더 탐색 흔적 |
| HKCU\Environment | 현재 사용자의 환경 변수 |
| HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment | 시스템 환경 변수 |
CurrentControlSet은 ControlSet00?을 가리키는 가상 링크이다.
자동 실행프로그램의 경우, Run이 아닌 RunOnce나 RunOnceEx에서도 탐색해 볼 수도 있고, HKLM이 아닌 HKCU키의 하위에서 탐색할 수도 있다.
파일 시스템의 저널링(Journaling: 오류 발생 시 복구할 수 있도록 데이터의 변경을 디스크에 반영하기 전에 행위를 기록하는 것) 기능을 위해 기록되는 파일이다.
저널링의 단위인 트랜잭션(Transaction)을 기록하며, root 바로 하위에 위치한다.
이 사이트에서 "NTFS Log Tracker"를 설치해 $LogFile을 분석할 수 있다. $LogFile의 경로와 $MFT의 경로를 넣고 Parse 버튼을 누르면 알아서 분석해 준다.

이때 Event항목은
이며, EvectTime 열을 통해 이벤트 발생 시간을 알 수도 있다.
응용 프로그램이 특정 파일의 변경 여부를 파악하기 위해 사용하는 로그로, 복원 목적으로 작성되는 $LogFile과 달리 파일/디렉토리에 변화가 있었다는 내용을 작성한다.
root디렉토리에서 $Extend\$UsnJrnl\$J에 위치한다. $LogFile과 같이 NTFS Log Tracker를 이용해 분석할 수 있다.
Event 항목은 $LogFile과 비슷하나, 파일/디렉토리의 암/복호화, 열림/닫힘 등 조금 더 상세한 내용으로 작성되어 있다.
NTFS 시스템에서의 파일/디렉토리의 전체 메타데이터가 있다. 파일이 삭제되어도 메타데이터는 남아있기 때문에 삭제된 파일을 복구할 때 유용할 수 있다.
여기에서 MFTECmd(CLI) 혹은 MFTExplorer(GUI)를 설치해 $MFT를 분석가능하다.

Windows가 시스템에서 발생하는 일을 기록하는 로그로, C:\Windows\System32\winevt\Logs\ 위치에 .evtx확장자로 저장되어 있다. 각 이벤트 종류마다 이벤트 ID가 지정되어 있어, 원하는 이벤트를 탐색하기 용이하다. 주요 로그는 다음과 같다.
이벤트 ID를 모두 외우기는 어렵기 때문에 여기에서 카테고리 별로 분류된 이벤트 ID와 각 이벤트별 간략한 내용을 볼 수 있다.
웹 브라우저의 사용자가 브라우저를 통해 하는 검색, 로그인, 파일 다운로드 등의 활동에 대해 웹 브라우저 아티팩트가 생성된다.
| 브라우저 | 경로 |
|---|---|
| Chrome | C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default |
| Edge | C:\Users\<username>\AppData\Local\Microsoft\Edge\User Data\Default |
| Firefox | C:\Users\<username>\AppData\Roaming\Mozilla\Firefox\Profiles\ |
| Internet Explorer | C:\Users\<username>\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat |
Chrome, Edge의 경우 User Data\ 아래에 Default가 아닌 profile 폴더를 찾아 사용자 프로필 별 아티팩트를 확인할 수 있다.
프리패치(Prefetch)는 Windows에서 다시 실행될 가능성이 높은 프로그램을 효율적으로 실행하기 위해 만드는 캐시 파일이다. C:\Windows\prefetch에서 그 목록을 확인할 수 있으며, 원래의 프로그램 이름을 uppercase 한 상태로 표기된다.

프로그램 실행 후 10초를 초과할 시 생성되고, 최대 개수는 1024개로, 그 이상이 되면 오래된 프리패치부터 자동으로 삭제된다.
위 사진에서 보이는 .pf파일은 현재 압축된 상태로, 파일을 Hex Editor로 열어보면 MAM이라는 시그니처를 확인할 수 있고, 해제 시 SCCA라는 시그니처를 확인할 수 있다.
WinPrefetchView라는 툴을 이용해 열어볼 수 있다. 기본적으로 로컬의 프리패치 파일을 불러오는데, 상단 테이블은 로컬 프리패치 파일을 나타내고, 하단 테이블은 각 .pf 파일에서 가져온 프로그램 동작 시 로드했던 파일의 목록이다.

상단 테이블의 "Run Counter" 열은 프로그램이 실행된 횟수, 하단 테이블의 "Index"는 각 파일이 몇 번째로 로드되었는지를 나타낸다.

Windows에서 다중 언어을 지원하기 위한 캐시로, 레지스트리의 한 종류다.
HKCU\SOFTWARE\Classes\Local Settings\MuiCache 혹은 \HKCU\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache에서 볼 수 있고, 위 사진에서 볼 수 있듯이 Windows를 사용하다 보면 볼 수 있는 문자열이 저장되어 있다.
프로그램이 한번이라도 실행되어 이 MUICache에 저장되었다면, 사용자가 삭제하지 않는 한 자동으로 삭제되지 않기 때문에, 어떤 프로그램이 실행된 적이 있는지 확인하기 좋고, 실행되었던 프로그램의 경로도 확인할 수 있다.
현재 PC에서 실행된 프로그램과 파일의 상세 메타데이터를 기록한 캐시다.
C:\Windows\appcompat\Programs에 위치해 있으며, .hve파일이므로 레지스트리 편집기로 열람 가능하다. PC가 실행 중일때는 열 수 없기 때문에, 이미징 후 추출해야 한다. .LOG1과 .LOG2 파일도 같이 추출한 후 RLA로 병합하도록 하자.
열어보면 다음과 같은 것들이 있다.
프로그램 간의 호환성 문제를 해결하기 위해 생성된 파일로, 특성상 실행 파일의 경로, 실행 여부, 최근 수정 시간 등의 정보를 저장하기 때문에 프로그램의 실행 흔적을 분석할 때 유용하다.
AppCompatCache라고도 하며, HKLM\SYSTEM\CurrentControlSet 혹은 HKLM\SYSTEM\ControlSet00? 하위의 Control\Sesssion Manager\AppCompatCache\AppCompatCache에 위치해 있다.

여기에서 AppcompatCacheParser를 설치해 ShimCache를 csv 파일로 변환할 수 있다.
cmd에서 --csv 옵션으로 결과로 나올 csv 파일을 넣을 폴더를 만들면 로컬의 레지스트리에서 값을 파싱하고, -f 옵션으로 수집한 ShimCache를 지정할 수도 있다.
Windows에서 파일을 삭제하면 일반적으로 이동하는 곳이다. 보통 Windows에서 파일을 삭제할 때 마우스 오른쪽 클릭->삭제 혹은 Del 키를 눌러 삭제하는데, 이 경우 휴지통으로 이동하며 Shift+Del 키를 이용해 삭제할 경우 휴지통 이동없이 삭제된다.

위 사진은 cmd를 관리자 권한으로 열고 <drive>\$Recycle.Bin에 있는 휴지통으로 이동한 결과다. dir /a를 통해 경로를 탐색한 후 그 중 하나로 들어가 보면, 이름이 $I로 시작하는 파일과 $R로 시작하는 파일을 볼수 있는데, 해당 접두사 뒤의 6자리 문자열이 각 파일을 식별하는 식별자가 되며, 그러므로 같은 식별자를 가진 $I와 $R 파일은 항상 같은 확장자를 가진다.
$R 파일에는 원본 파일의 내용이 그대로 저장되어 있으며, $I파일에는 그에 대응하는 원본 파일의 이름을 포함한 메타데이터가 저장되어 있다.
PC에서 데이터 삭제 시 $R, $I 파일이 휴지통에 생성되고 휴지통을 비울 경우 $R, $I 파일이 모두 있는 데이터만 삭제되며, 휴지통에서 데이터를 복원할 때는 $R 파일만 원래 위치로 이동한다. 그러므로 한번 복원한 적이 있는 데이터는 휴지통을 비우더라도 메타데이터($I)가 휴지통에서 사라지지 않는다.
메타데이터인 $I 파일의 구조는 아래와 같다.

01 00 00 00 00 00 00 00 혹은 02 00 00 00 00 00 00 00| 아티팩트 | 설명 |
|---|---|
| 레지스트리 | 시스템 설정 데이터 |
| $LogFile | 시스템에서의 파일 데이터 변경 내역 |
| $UsnJrnl | 프로그램에서의 파일 데이터 변경 내역 |
| $MFT | 파일 메타 데이터 |
| 이벤트 로그 | 시스템 이벤트 기록 |
| 웹 브라우저 아티팩트 | 브라우저 사용(로그인, 검색) 기록 |
| 프리패치 | 실행된 프로그램의 흔적 |
| 캐시(MUICache, AmCache, ShimCache) | 실행된 프로그램의 흔적 |
| 휴지통 | 삭제된 파일 복구 |