본문 바로가기
Degital Forensic/악성코드 분석을 위한 메모리 포렌식

[운영체제] MTF 분석을 위한 NTFS 파일 시스템 이론

by Y06 2021. 11. 30.

File System

- 파일시스템은 보조 기억 장치에 데이터의 저장과 검색 방법을 제어하는데 사용

→ 체계적인 저장 방식과 검색 방식을 사용하여 데이터 저장, 검색 등을 최적화

파일시스템이 NTFS임을 알 수 있는 사진

NTFS(New Technology File System)

- 마이크로소프트에 의해 개발

- 1993년 Windows NT 3.1과 함께 발표

- Bitmap, MFT(Master File Table)

 

MFT(Master File Table)

- 파일에 대한 meta data를 저장하는 곳

*meta data: 데이터 관리상 필요한 작성자, 목적, 저장 장소 등 속성에 관한 데이터

 

NTFS에서 모든 파일과 디렉터리, 메타 파일은 meta data로 MFT에 저장

 

MTF Entry 구조

- MTF를 구성하는 각 요소

- Entry Header와 Attrubute로 구성

- 하나의 Entry에 하나의 파일 또는 디렉터리 정보를 가짐

 

MFT Entry
Header
Attr1 Attr2 Attr3 ... 0xFFFF FFFF Unused

- 0xFFFF FFFF가 있으면 마지막을 나타냄

 

MFT header

- MFT Entry의 맨 앞 56Bytes

- Entry의 상태를 담고 있음

- 특별한 내용은 없음

 

Attribute

: 파일 속성 저장 방식

- MFT Entry는 MFT Entry Header와 Attribute로 구성

- Attribute는 Header와 Content로 구성

- End Marker (0xFFFF FFFF)

 

Attr1

- Attribute Header(이름, 다음 Attribute 위치), Attribute Content

 

주요 Attribute Type

Type Number Attribute Name Description
16(0x10) $STANDARD_INFORMATION 최근 접근 시간, 수유자, 보안 아이디와 같은 일반 정보
48(0x30) $FILE_NAME 파일 이름(유니코드 형식)
64(0x40) $OBJECT_ID 파일이나 디렉터리의 고유 값, 16 Bytes로 구성(Windows 2000 이상)
128(0x80) $DATA 파일의 내용
176(0xB0) $BITMAP 할당 정보를 관리하는 속성

Attribute Header 구성

Offset Name Description Value
0~34 Bytes Attribute Type Identifier 해당 Attribute가 어떤 것인지를 지정.
각 Attribute들은 고유의 Type ID를 가짐.
더 이상 속성이 없을 경우, 0xFFFFFFFF라는 End Maker 표시
가변
4~74 Bytes Length of Attribute Attribute Header와 내용을 포함한 길이 가변
81 Byte Non-Resident Flag 1이면 Non-Resident Flag를 의미 0 or 1
91 Byte Length of Name 각각의 Attribute는 고유의 이름을 가질 수 있음.
이 이름의 길이를 표시
가변
10~112 Bytes Offset to Name 속성 이름의 시작 위치를 나타냄 가변
12~132 Bytes Flags Attribute의 여러 상태를 가짐
Flag 내용
0x0001: Attribute가 압축
0x4000: Attribute가 암호화
0x8000: Sparse 속성
가변
14~152 Bytes Attribute Identifier 속성의 고유한 식별자로 MFT 엔트리에 같은 속성이 여러 개일 경우 서로 다른 값을 가짐 가변