[Windows Artifacts] $UsnJrnl

 

윈도우 아티팩트


(1) $UsnJrnl이란?

  • 응용 프로그램이 특정 파일의 변경 여부를 파악하기 위해 사용

  • 파일의 생성 / 변경 / 추가 등의 파악할 수 있는 중요한 로그

  • Windows 7 이후부터 기본 활성화, fsutil 이용하여 작업 가능

[그림 1] $UsnJrnl ($J) 아티팩트


(2) $UsnJrnl 상세 설명

2-1. Kind of

  • NTFS Filesystem Log 

2-2. Information

  • File Event such as Create, Overwrite, Close, Rename, Added Data, Etc.

2-3. Path

  • $MFT 10th Entry

2-4. Characteristic

  • Enable tracking of deleted files.

2-5. Tools

  • NTFS Log Tracker

  • JP

  • Log File Parser

 

2-5-1. NTFS Log Tracker : https://sites.google.com/site/forensicnote/ntfs-log-tracker

 

NTFS Log Tracker - blueangel's ForensicNote

NTFS Log TrackerThis tool can parse $LogFile, $UsnJrnl:$J of NTFS and carve UsnJrnl record in multiple files(unallocated dump, file slack, pagefile.sys, memory dump, vss, ...). A input of this tool is sample file extracted by another tool like Encase, Win

sites.google.com

 

2-5-2. JP : https://tzworks.net/prototype_page.php?proto_id=5

 

Windows Journal Parser

Windows Journal Parser (jp) Introduction jp is a command line tool that targets NTFS change log journals. The change journal is a component of NTFS that will, when enabled, record changes made to files. The change journal will record amongst other things:

tzworks.net

 

2-5-3. Log File Parser : https://code.google.com/archive/p/mft2csv/wikis/LogFileParser.wiki

 

Google Code Archive - Long-term storage for Google Code Project Hosting.

 

code.google.com


(3) 아티팩트 분석 실습

3-1. FTK Imager > Physical Drive > root > $Extend > $UsnJrnl > $J

 

[그림 2] FTK Imager - $J

 

3-2. $J - Export Files

 

[그림 3] $UsnJrnl 아티팩트 수집

 

여기서 중요한 것은, $UsnJrnl 아티팩트 수집(추출)이나 출력 결과물 저장은 수집 대상물의 데이터 무결성을 위해 분석 환경에서 진행해야 하며, 가상 환경 공유 폴더나 이동식 매체로 지정해야 한다.

 

즉, 수집 도구에 의한 수집물은 '이동식 매체'로 저장하고 분석 결과도 수집 대상물에 저장되지 않도록 분석은 수집 대상물 PC가 아닌 분석용 로컬 PC(호스트)에서 진행해야 한다.

 

수집된 파일이나, 디렉토리는 수집 대상물의 디스크에 바로 저장되어서는 안 되며, 바로 공유 폴더  등의 이동식 매체에 저장되어야 데이터 무결성이 깨지지 않는다.

 

또한, 아티팩트를 수집할 시에 MAC 타임 보존은 필수적으로 숙지하고 진행한다.

 

[그림 4] 해당 아티팩트 공우 푤더 지정 예시

 

위 [그림 4]는 해당 아티팩트 분석을 위해 분석 환경 공유 폴더로 해당 파일을 지정해 준 화면이다.

 

 

3-3. NTFS Log Tracker 활용, $UsnJrnl 아티팩트 분석

 

[그림 5] NTFS Log Tracker

 

분석 진행을 위해 $UsnJrnl($J) 아티팩트를 선택한 다음, 생성 될 DB 파일의 이름, 경로를 지정해주고 분석을 진행한다.

 

 

3-4. 분석(파싱) 완료 테이블 화면

 

[그림 6] 파싱 완료 테이블

 

3-5. 레코드 & 컬럼 분석

 

[그림 7] 분석 결과에 대한 레코드와 컬럼

 

하나의 레코드를 기준으로 컬럼 분석 결과에 대한 내용이다. 

  • 2020-04-07 03:01:50 = 타임스탬프이며, 이벤트가 발생한 시간

  • 22080515264 = Update Sequence Number를 의미

  • JavaScript = 해당 파일에 대한 이름

  • File Created, File Closed = 이벤트에 대한 정보를 의미

  • Normal = 변경 이벤트를 발생시킨 주체에 대한 정보를 의미

  • Compressed, Directory = 변경 이벤트의 대상이 되는 객체에 대한 정보를 의미


(4) 추가 내용 정리

  • $UsrJrnl은 보다 안정적인 파일 시스템 사용을 위해 Windows 7 이상에서 사용하는 파일 변경 이벤트 관리 로그 파일

  • 응용 프로그램이 특정 파일의 변경 여부를 파악하기 위해 사용하며, 레코드 단위로 순차적 저장하여 관리 (식별 값 사용 - USN(Update Sequence Number)

  • 레코드에는 파일에 어떠한 변화가 일어났는지에 관한 정보가 담겨 있기에 정확하게 분석한다면 $LogFile을 통해 얻은 정보와 조합하여 강력한 데이터의 흐름 정보를 얻을 수 있게 됨

  • 내 컴퓨터에서 다음과 같은 명령어로 실제 유저 저널링 데이터가 저장되고 있는지 확인 가능

    • fsutil usn readJournal C : 유저 저널링 데이터가 쌓이지 않는다면, 다음 명령어로 강제 유저 저널링 데이터를 생성하게 끔 설정 필요

    • fsutil usn createJournal C : 추가로 NTFS Log Tracker 도구에서 출력해주는 컬럼 정보 중 일부 컬럼 정보는 다음과 같음

      • SourceInfo 컬럼, 운영체제 생성 파일, 디렉토리 변경 정보 컬럼, 예를 들어 데이터를 외부에서 로컬로 이동 시에 flag 형태로 값 기록, 0x1, 0x2, 0x4 flag 값 존재, 각 flag 값은 다른 방식으로 데이터가 이동되었다를 의미

      • Carving Flag 컬럼, $UsnJrnl 표준 구조에는 없는 컬럼, 도구 제작자가 커스텀하게 생성한 컬럼으로 추정, 데이터 카빙(복원) 성공 여부 도구에서 표현해주는 각 컬럼은 도구 제작자에 의해 편의성을 고려해 추가되거나 합쳐진 컬럼들이 존재할 수 있음

 

 

[표 1] $UsrJrnl 파일 표준 컬럼

Offset Size Description  0x00 (4)
Size of entry  0x04 (2) 
Major Version  0x06 (2)
Minor Version 0x08 (2)
MFT Reference  0x10 (8)
Parent MFT Reference  0x18 (2)
Offset of this entry in $J  0x20 (8)
Timestamp 0x28 (4)
Reason  0x2C (4)
SourceInfo 0x30 (4)
SecurityID 0x34 (4)
FileAttributes 0x38 (2)
Size of Filename (in bytes) 0x3A (2)
Offset to filename 0x3C (V)
Filename V+0x3C P Padding Align to 8 bytes

# Reference

 

'Digital Forensics > Artifacts' 카테고리의 다른 글

[Windows Artifacts] Event Log  (0) 2020.05.25
[Windows Artifacts] Prefetch  (0) 2020.05.24
[Windows Artifacts] Registry  (0) 2020.05.24
[Windows Artifacts] $LogFile  (0) 2020.05.24
[Windows Artifacts] $MFT  (0) 2020.05.24

+ Recent posts