Study/Digital Forensic

3. $MFT, $LogFile, $UsnJrnl (윈도우 Artifactor) 개념 및 실습

햄친구베이컨 2022. 7. 26. 02:21

$ : 윈도우의 시스템 파일

$MFT : 윈도우의 전반적인 구조 (파일, 디렉터리)

$LogFile, $UsnJrnl : 유저가 변경, 생성, 수정, 삭제한 행위에 대한 기록

 

1. $MFT

MFT (Master File Table)

- NTFS 파일 시스템에서 파일, 디렉터리를 관리하기 위한 구조

- 하나의 파일당 하나의 MFT 엔트리를 가진다.

- $MFT : MFT 엔트리들의 집합

 

MFT 엔트리가 가지고 있는 정보들

- 파일의 이름, 생성, 수정, 변경시간, 크기, 속성 등을 가지고 있다.

- 파일의 디스크 내부 위치, 파일의 시스템 경로를 알 수 있다.

* 파일들을 한 곳에 모아서 $MFT에서 관리한다.

* 각각의 파일들에 대한 정보가 하나의 MFT 엔트리에 저장되고 MFT 엔트리라는 구조를 통해 각 파일의 정보를 담고 있게 된다.

 

$MFT 실습

- FTK Imager 이용 : [root]\$MFT 추출

- MFT 도구 : MFTExplorer 다운로드

 

FTK Imager -> Add Evidence Item -> File -> Logical Driver -> C 드라이브 선택

* Scanning MFT : MFT를 스캔해서 폴더 구조를 파악한다.

[root] -> $MFT -> Export Files -> 경로 설정

MFTExplorer 실행 -> 추출한 MFT 파일 가져오기

* Hex , MFT 엔트리에서 얻을 수 있는 값도 확인 가능


2. $LogFile, $UsnJrnl

$LogFile, $UsnJrnl : 유저가 파일을 변경하거나 수정, 생성, 삭제했을 때 로그가 남은 것

 

저널링 (Jounaling)

- 파일 시스템이 해주는 복구 기능

- 유저 -> 데이터 변경/삭제/생성 -> 디스크에 반영하기 전에 행위를 기록 -> 추후 오류 복구에 활용

- 데이터를 기록하는 동안 시스템에 문제가 생기면 데이터가 손실되므로 

   문제가 발생하기 전에 '어떤 데이터를, 언제, 어디에 쓰는지' 기록한다.

- 문제가 발생하면 기록을 토대로 작업이 이루어지기 전 상태로 시스템 복원

 

트랜젝션 (Transaction)

- 쪼갤 수 없는 업무 처리의 최소 단위

- 파일이나 디렉토리 생성, 수정, 삭제, MFT 레코드 변경 등

 

$LogFile : 메타데이터의 트랜잭션 저널 정보 

* 메타데이터 : 파일이 가지고 있는 속성 데이터

-> 파일이 변경될 때 저널링 하기 위한 데이터

 

$UsnJrnl

- 파일이나 디렉토리에 변경 사항이 생길 때 이를 기록하는 로그 파일 

- 파일 복원의 목적이 아닌, 단순 파일 작업이 있었다는 사실을 확인하기 위한 정보 

- 시간 순서대로 엔트리 저장, 기본 크기는 32MB (하루 8시간 사용 시 4~5일 정도의 데이터를 저장하고 있다.)

 

$LogFile & UsnJrnl 실습

1. FTK Imager 이용 -> [root]\$LogFile, [root]\$Extend\$UsnJrnl\$J 추출

2. NTFS Log Tracker 다운로드 -> 추출한 파일 선택

3. 결과로 생성될 DB 이름 설정

4. DB Browser for Site에서 다운로드 후 생성한 DB 열기 

* 생성했던 UsnJrnl, LogFile를 분리해서 데이터로 볼 수 있다. 

 

LogFile 에 있는 데이터

- EventTime

- 파일 이름, 생성된 시각, 수정된 시각, 접근했던 시각

- 삭제된 파일 (File Deletion)

- Writing content : 데이터를 씀

UsnJrnl에 있는 데이터

- TimeStamp 정보

- FileName, Event (데이터 추가, 파일 닫힘)

- 파일 수정 관련 데이터

- 접근 권한 변경 

- FullPath (파일 경로)

 

 

* 다른 파일들에서 증거를 먼저 찾은 다음 LogFile과 UsnJrnl에서 검색할 키워드를 생각한다. 

ex) 메모리 분석하다가 수상한 파일, 악성코드 발견 -> 언제 생성, 변경되었는지 검색

ex) 악성코드가 언제부터 언제까지 실행되었는지 확인한 후에 시간대를 기준으로 어떤 일이 있었는지 확인

ex) 유출된 파일을 검색해서 언제 어디에 저장했다가 어떻게 유출되었는지 검색