Windows 아티팩트 수집 완전 가이드: Prefetch부터 USN Journal까지

Windows 아티팩트 수집 완전 가이드#
디지털 포렌식에서 아티팩트(Artifact)란 운영체제와 애플리케이션이 동작하면서 자동으로 생성하는 흔적 데이터를 의미합니다. Windows 시스템은 사용자 활동에 대한 방대한 양의 아티팩트를 생성하며, 이를 체계적으로 수집하고 분석하는 것이 포렌식 조사의 핵심입니다.
1. Prefetch 파일#
개요#
Prefetch는 Windows가 애플리케이션 로딩 속도를 최적화하기 위해 생성하는 파일입니다. 프로그램이 실행될 때마다 해당 프로그램의 로딩 정보가 Prefetch 파일로 기록됩니다.
위치#
C:\Windows\Prefetch\*.pf
포렌식 가치#
- 프로그램 실행 증거: 특정 프로그램이 언제, 몇 번 실행되었는지 확인
- 최초 실행 시간: 프로그램이 처음 실행된 시점 파악
- 마지막 실행 시간: 가장 최근 실행 시점 확인
- 실행 횟수: 총 실행 횟수 기록
- 참조된 파일 목록: 프로그램 실행 시 접근한 파일/DLL 목록
분석 포인트#
악성코드 분석에서 특히 유용한 정보:
- 의심스러운 실행 파일 (예:
POWERSHELL.EXE,CMD.EXE가 비정상적 시간에 실행) - 삭제된 프로그램의 실행 흔적 (파일은 삭제되었지만 Prefetch는 남아있는 경우)
- 랜섬웨어 실행 타임라인 재구성
2. Windows EventLog#
개요#
Windows Event Log는 시스템, 보안, 애플리케이션 이벤트를 기록하는 중앙 로깅 시스템입니다.
위치#
C:\Windows\System32\winevt\Logs\*.evtx
핵심 로그 파일#
| 로그 파일 | 내용 | 주요 이벤트 ID |
|---|---|---|
| Security.evtx | 인증, 계정 관리, 감사 | 4624, 4625, 4648, 4720 |
| System.evtx | 서비스, 드라이버, 시스템 이벤트 | 7034, 7036, 7045, 6005 |
| Application.evtx | 애플리케이션 오류, 경고 | 1000, 1001, 1002 |
| PowerShell/Operational.evtx | PowerShell 명령 실행 기록 | 4104, 4103 |
| TaskScheduler/Operational.evtx | 예약 작업 실행 기록 | 106, 200, 201 |
보안 분석에서 중요한 이벤트 ID#
- 4624: 성공적인 로그인 (로그인 유형 포함)
- 4625: 실패한 로그인 시도 (무차별 대입 공격 탐지)
- 4648: 명시적 자격 증명을 사용한 로그인 (패스더해시 탐지)
- 4720: 새 계정 생성 (백도어 계정 생성 탐지)
- 7045: 새 서비스 설치 (악성 서비스 탐지)
- 4104: PowerShell 스크립트 블록 로깅 (악성 스크립트 탐지)
3. Windows Registry#
개요#
레지스트리는 Windows의 중앙 설정 데이터베이스로, 시스템 설정, 사용자 환경, 소프트웨어 구성 정보를 계층적 구조로 저장합니다.
주요 하이브 파일 위치#
SYSTEM: C:\Windows\System32\config\SYSTEM
SOFTWARE: C:\Windows\System32\config\SOFTWARE
SAM: C:\Windows\System32\config\SAM
SECURITY: C:\Windows\System32\config\SECURITY
NTUSER.DAT: C:\Users\<username>\NTUSER.DAT
UsrClass.dat: C:\Users\<username>\AppData\Local\Microsoft\Windows\UsrClass.dat
포렌식 핵심 레지스트리 키#
자동 실행 (Persistence 탐지):
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM\SYSTEM\CurrentControlSet\Services
USB 장치 기록:
HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR
HKLM\SYSTEM\CurrentControlSet\Enum\USB
HKLM\SYSTEM\MountedDevices
최근 문서 접근:
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU
네트워크 연결 기록:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures
4. $MFT (Master File Table)#
개요#
$MFT는 NTFS 파일 시스템의 핵심 메타데이터 구조로, 볼륨의 모든 파일과 디렉토리에 대한 레코드를 포함합니다.
위치#
볼륨 루트의 $MFT (숨김, 시스템 파일)
포렌식 가치#
- 파일 존재 증거: 삭제된 파일의 $MFT 레코드가 남아있는 경우, 해당 파일이 존재했음을 증명
- 타임스탬프 분석: 생성, 수정, 접근, MFT 변경 시간의 4가지 타임스탬프
- $STANDARD_INFORMATION vs $FILE_NAME: 두 속성의 타임스탬프 불일치는 타임스탬프 위조의 증거가 될 수 있음
- 파일 크기 변화: 파일이 어떻게 변경되었는지 추적
- 대체 데이터 스트림 (ADS): 숨겨진 데이터 탐지
타임스탬프 분석 기법#
$MFT의 각 파일 레코드에는 두 세트의 타임스탬프가 있습니다:
| 속성 | Created | Modified | Accessed | MFT Modified |
|---|---|---|---|---|
| $STANDARD_INFORMATION | SI_C | SI_M | SI_A | SI_E |
| $FILE_NAME | FN_C | FN_M | FN_A | FN_E |
타임스탬프 위조를 탐지하는 규칙:
FN_C > SI_C: $FILE_NAME의 생성 시간이 $STANDARD_INFORMATION보다 나중이면 위조 가능성SI_C > SI_M: 생성 시간이 수정 시간보다 나중이면 비정상
5. USN Journal (Update Sequence Number Journal)#
개요#
USN Journal은 NTFS 볼륨에서 파일과 디렉토리에 대한 변경 사항을 시간순으로 기록하는 변경 저널입니다.
위치#
$Extend\$UsnJrnl:$J (대체 데이터 스트림)
포렌식 가치#
- 파일 변경 이력: 파일 생성, 삭제, 이름 변경, 내용 변경 등 모든 변경 사항 기록
- 안티포렌식 탐지: 파일 삭제 후 덮어쓰기 시도 감지
- 랜섬웨어 활동: 대량 파일 이름 변경 패턴 (예: .encrypted 확장자 추가)
- 데이터 유출: 특정 시간대의 대량 파일 복사/이동 감지
기록되는 변경 유형#
FILE_CREATE - 파일 생성
FILE_DELETE - 파일 삭제
DATA_OVERWRITE - 데이터 덮어쓰기
DATA_EXTEND - 데이터 확장
DATA_TRUNCATION - 데이터 축소
RENAME_OLD_NAME - 이름 변경 (이전 이름)
RENAME_NEW_NAME - 이름 변경 (새 이름)
SECURITY_CHANGE - 보안 속성 변경
6. 브라우저 아티팩트#
수집 대상#
각 브라우저별 프로필 디렉토리에서 다음 파일들을 수집합니다:
Chrome/Edge (Chromium 기반):
%LocalAppData%\Google\Chrome\User Data\Default\
- History (방문 기록, 다운로드 기록)
- Cookies
- Login Data (저장된 자격 증명)
- Web Data (자동완성 데이터)
- Bookmarks
- Preferences
Firefox:
%AppData%\Mozilla\Firefox\Profiles\<profile>\
- places.sqlite (방문 기록, 북마크)
- cookies.sqlite
- formhistory.sqlite
- logins.json + key4.db
포렌식 활용#
- 피싱 사이트 접근 기록: 악성 URL 방문 여부 확인
- 파일 다운로드 경로: 악성코드 다운로드 출처 추적
- 검색 기록: 사용자 의도 파악 (예: "how to delete evidence")
- 자동완성 데이터: 입력된 정보 복원
7. 기타 중요 아티팩트#
Shellbags#
사용자가 탐색한 폴더의 뷰 설정을 기록합니다. 삭제된 폴더나 외부 저장매체의 폴더 탐색 흔적을 확인할 수 있습니다.
Jump Lists#
작업 표시줄의 고정 및 최근 항목 목록으로, 최근 열어본 파일과 애플리케이션 사용 기록을 보여줍니다.
LNK 파일 (바로가기)#
최근 열어본 파일에 대한 Windows 바로가기 파일로, 원본 파일의 경로, 크기, MAC 타임스탬프, 볼륨 정보를 포함합니다.
AmCache / Shimcache#
프로그램 호환성 데이터베이스로, 설치/실행된 프로그램의 경로, 해시, 설치 시간 정보를 기록합니다.
SRUM (System Resource Usage Monitor)#
Windows 8 이후 도입된 시스템 리소스 사용 모니터로, 애플리케이션별 네트워크 사용량, 실행 시간 등을 30-60일 간 기록합니다.
수집 자동화의 중요성#
위에 나열된 아티팩트들을 수동으로 수집하는 것은 시간이 많이 걸리고 실수가 발생하기 쉽습니다. 자동화된 수집 도구를 사용하면:
- 일관성: 매번 동일한 아티팩트를 빠짐없이 수집
- 무결성: 수집 과정에서의 데이터 변조 방지
- 속도: 수십 가지 아티팩트를 분 단위로 수집
- 증거 보관 체인: 수집 시간, 해시값 자동 기록
unJaena Collector는 위에서 설명한 105가지 이상의 Windows 아티팩트를 원클릭으로 수집하는 오픈소스 도구입니다. 수집된 데이터는 AI 분석 플랫폼에 업로드하여 즉시 분석을 시작할 수 있습니다.