SWLUG/forensic

[디지털포렌식] 5. $MTF, $LogFile, $UsnJrl 개념 및 실습

keemnh 2024. 5. 6. 14:26
 

[지금 무료] 기초부터 따라하는 디지털포렌식 | 훈지손 - 인프런

훈지손 | 기초부터 따라하는 디지털포렌식 강의입니다. 강의를 따라하다보면 "물 흐르듯, 자연스럽게" 실력이 늘어가는 강의를 추구합니다., 초보자 눈높이에 딱 맞춘, 원리를 이해하는 디지털

www.inflearn.com

해당 영상 참고하여 작성한 글입니다.

 

 

 

 

 

$MTF, $LogFile, $UsnJrl : 윈도우 artifact
$ : 시스템 파일
$MTF : 윈도우즈의 전반적인 구조. 파일과 폴더 디렉토리와 같은... 
$LogFile, $UsnJrl : 변경 및 생성, 수정, 삭제하는 등 사용자의 동작을 기록해둔 구조. 사용자 행위의 세밀한 분석이 가능.

 

 

 $MTF 개념 및 실습

 

MFT(Master File Table) 란?

• * NTFS 파일시스템에서 파일, 디렉터리를 관리하기 위한 구조
• 하나의 파일이나 디렉터리가 하나의 MFT 엔트리를 가짐
• $MFT =  MFT 엔트리들의 집합

 

 

* NTFS 파일시스템이란?

윈도우즈가 사용하는 파일 시스템. 

 

더보기

NTFS 파일시스템 > $MFT > MFT 엔트리 > 각 파일 정보

 


MFT 엔트리

 

운영체제는 수없이 많은 파일들을 어떻게 불러올 수 있는가?  

파일들은 디스크 전반에 분포되어있는데.. 이를 $MFT라는 파일 한 곳에 모아 관리하는 것

각각의 파일들에 대한 정보가 하나의 MFT 엔트리에 들어오게 되는 것.. 이 구조를 통해 각 파일의 정보를 담고 있는 것

 

어떠한 정보를 담고있는가?

• 파일의 이름, 생성·수정·변경시간, 크기, 속성 등을 가지고 있음
• 파일의 디스크 내부 위치, 파일의 시스템 경로를 알 수 있음

 


 

 

필요한 도구 : MFTExplorer 

 

 

 

1) MFTExplorer  다운로드

 

Ctrl+F 'MFT' -> MFTExplorer  다운로드

(영상에서는 0.5.1.0을 다운로드 하시던데.. 없는 관계로 2.0.0.0을 다운받는다.)

 

 

MDwiki

 

ericzimmerman.github.io

 

 

 

2) [root]\$MFT 추출

 

[ FTK imager 실행 -> 상단 맨 좌측의 add evidence item -> Local Drive -> C drive -> Finish ]

 

 

 

[root]\$MFT 파일 확인 

 

 

 

바탕화면에 'MFT' 파일 생성

 

 

[ $MFT 파일 우클릭 -> export files -> 추출 경로 선택 ] 

 

 

추출한 파일을 NFT Explorer 에서 확인해준다.

좌측 구조가 C드라이브 아래의 구조와 동일한 것을 확인할 수 있다.

 

장점 : hex 값을 바로 볼 수 있음. 윈도우에서 지원하는 ADS라는 특별 기능이 지원됨. 

단점 : 얻을 수 있는 정보가 많지는 않음.

 

 

 

 


 

 

$LogFile, $UsnJrl 개념 및 실습

 

$LogFile

저널링(Jounaling)
• 데이터 변경(e.g.,수정,삭제)을 디스크에 반영하기 전에 행위를 기록하여 추후 오류 복구에 활용

 

장점 : 데이터를 기록하는 동안 시스템에 문제가 생기면 데이터가 손실됨
문제가 발생하면 기록을 토대로 작업이 이루어지기 전 상태로 시스템을 복원

( 저널링을 통해 문제가 발생하기 전에 “어떤 데이터를, 언제, 어디에 쓰는지” 기록)



트랜잭션(Transaction)
• "쪼갤 수 없는 업무 처리의 최소 단위”

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


• $LogFile : 메타데이터의 트랜잭션 저널 정보 (저널링을 위해 이용하는 데이터)

 

* 메타데이터 : 파일의 속성 데이터 (e.g., 생성시간, 권한...)

 

 

$UsnJrl (UsnJernal)

• 파일이나 디렉토리에 변경 사항이 생길 때 이를 기록하는 로그 파일
• 파일 복원의 목적이 아니라, 단순 파일 작업이 있었다는 사실을 확인하기 위함
• 시간 순서대로 엔트리를 저장하고, 기본 크기는 32MB (용량이 차면 덮어쓰는 방식)
• 하루 8시간 사용시 4~5일 정도의 데이터를 저장하고 있음 

 

 

 


 

 



1) NTFS Log Tracker 다운로드

 

 

NTFS Log Tracker v1.71.zip

 

drive.google.com

 

 

 

 

2) [root]\$LogFile , [root]\$Extend\$UnnJrnl\$J 추출 & DB 생성

 

• FTK Imager를 이용하여 두 개의 파일 추출

 

파일이 끝났으면 아래 사진과 같이 파일 경로 설정해준다.

 

 

 

생성할 DB의 이름을 설정하고 한국시간(UTC+9)에 맞춰 DB 생성

 

 

 

<파일 확인을 위한 설정>

점 세개 -> 옵션 -> 보기 -> '보호된 운영 체제 파일 숨기기(권장)' 해제, '숨김 파일, 폴더 및 드라이브 표시' 선택, '알려진 파일 형식의 파일 확장명 숨기기' 해제

 

 

 

3) DB Browser for sqlite 설치 후 실행

 

 

Downloads - DB Browser for SQLite

(Please consider sponsoring us on Patreon 😄) Windows Our latest release (3.12.2) for Windows: Free code signing provided by SignPath.io, certificate by SignPath Foundation. Windows PortableApp Note - If for any reason the standard Windows release does n

sqlitebrowser.org

 

실행하고 데이터베이스 열기를 통해 아래와 같은 정보들을 확인할 수 있다.

 

$LogFile

 

 

$UsnJrl

(일반적으로는 모든 파일을 다 보지 않고, 특정 파일들을 추린 후 원하는 기준으로 정보를 확인하는 데 사용하곤 함)

 

 

 

 

수없이 많은 파일들을 관리하고 분류하는 방법 또한 몹시 복잡하고 앞으로 배워나가야 할 부분들이 많은 것 같다. 한 파일의 정보를 통해 사용자의 많은 부분을 추측할 수 있는 것 또한 흥미로운 부분인 것 같다.

 

 

참고

 

2강 자료.pdf

 

drive.google.com