[Windows Artifacts] $MFT
(1) $MFT란?
-
NTFS 파일 시스템의 가장 핵심적인 부분
-
모든 파일에 대해서 적어도 한 개의 엔트리 소유
-
삭제된 비할당 파일 포함
-
-
MFT는 파일에 대한 메타데이터 저장
-
파일명, 크기, 생성/수정/접근 일자, 속성 등
-
-
실제 데이터는 'Data Area'(데이터 영역)에 저장
(2) $MFT 상세 내용
2-1. Kind of
-
NTFS FileSystem Metadata
2-2. Information
-
File's All Metadata
2-3. Path
-
$MFT
2-4. Characteristic
-
Variable Path, VBR offset, 48-55, Logical cluster Number for the file $MFT
2-5. Tools
-
MFTExplorer
-
MFTECmd
-
Mft2Csv
-
analyzeMFT
2-5-1. MFTExplorer, MFTECmd : https://ericzimmerman.github.io
2-5-2. Mft2Csv : https://github.com/jschicht/Mft2Csv
2-5-3. analyzeMFT : https://github.com/dkovar/analyzeMFT
(3) 분석 실습
3-1. FTK Imager > Physical Drive > NTFS 파일 시스템 root 디렉토리에 $MFT 파일 존재
3-2. $MFT 파일 Export Files
여기서 중요한 것은, $MFT 파일 수집(추출)이나 출력 결과물 저장은 수집 대상물의 데이터 무결성을 위해 분석 환경에서 진행해야 하며, 가상 환경 공유 폴더나 이동식 매체로 지정해야 한다.
즉, 수집 도구에 의한 수집물은 '이동식 매체'로 저장하고 분석 결과도 수집 대상물에 저장되지 않도록 분석은 수집 대상물 PC가 아닌 분석용 로컬 PC(호스트)에서 진행해야 한다.
수집된 파일이나, 디렉토리는 수집 대상물의 디스크에 바로 저장되어서는 안 되며, 바로 공유 폴더 등의 이동식 매체에 저장되어야 데이터 무결성이 깨지지 않는다.
또한, 아티팩트를 수집할 시에 MAC 타임 보존은 필수적으로 숙지하고 진행한다.
위 [그림 5]는 해당 아티팩트 분석을 위해 분석 환경 공유 폴더로 해당 파일을 지정해준 화면이다.
3-3. MFT Explorer 분석
3-4. 하나의 테이블 선택, 각각 컬럼 분석
-
해당 정보는 Download 폴더에 대한 정보이며, 옆에 체크 항목은 디렉토리인지, 삭제된 파일인지에 대한 정보
-
시간은 $SI (Standard_Information) 과 $FN (File_Name) 두 속성으로 구분
-
각각 생성 시간, 수정 시간, 접근 시간, 레코드 변경 시간이 기록
-
그 외에 체크 항목은 타임스탬프에 대한 여부, 복사본에 대한 여부
-
도구 하단에서는 해당 파일에 대한 상세 정보와 Hex 값을 자세하게 분석 및 확인이 가능
-
도구 좌측에서는 폴더 / 파일 특정 선택과 Properties 체크를 따로 구분하여 확인 가능
(4) 추가 내용 정리
-
윈도우 사용자라면 기본적으로 많이 사용되는 NTFS 파일 시스템을 사용함에 있어 파일에 대한 메타데이터 파일(파일 정보, 위치 등)을 담고 있는 파일을 $MFT라고 함
-
MFT 영역은 MFT 엔트리들의 집합으로써 MFT Record 또는 File Record 라고 불리며, NTFS 내에 존재하는 모든 파일 또는 디렉토리는 파일 당 하나 이상의 MFT 엔트리가 할당 됨
-
MFT 엔트리는 1024byte 크기로 각 파일 및 디렉토리 위치, 시간 정보, 파일 이름, 크기 등의 속성 정보를 담고 있음
-
$MFT 파일은 각 파일 정보를 기록하는 단위인 MFT 엔트리의 나열로 이루어져 있으며, MFT Entry에는 연결되는 파일의 MAC(수정, 접근, 생성)시간을 비롯하여 MFT 엔트리 자체를 수정한 시간도 기록
-
MFT 엔트리는 파일 정보를 기록하기 위해 여러 가지 속성을 활용하는 데, 이때 시간 정보를 기록하는 속성은 $Standard_information 속성과 $File_Name 속성이 존재
-
$Standard_information은 플래그, MAC(수정/접근/생성)시간, 소유자와 보안 ID 등의 정보를 저장
-
$File_Name은 파일 이름(Unicode), MAC(수정/접근/생성)시간을 저장
-
MFT 분석 도구인 MFT Explorer는 한 눈에 쉽게 보기 편한 장점이 있지만, 파싱 속도가 매우 느리다는 단점을 가지고 있어 속도면에서는 analyzeMFT 또는 mft2csv 같은 CLI 버전 도구 권장
다음은 $Standard_information과 $File_Name 속성을 이용한 시간 속성 분석법 자료이다.
#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] $UsnJrnl (0) | 2020.05.24 |
[Windows Artifacts] $LogFile (0) | 2020.05.24 |