본문 바로가기

디지털 포렌식 (Forensic)/디스크 포렌식 (Disk)

[디스크 포렌식] NTFS 파일 시스템

728x90
반응형

NTFS 파일 시스템

 

NTFS 파일 시스템의 구조는 위와 같습니다.

 

1. Boot Sector (BR) 영역

NTFS 파일 시스템의 BR 영역도 FAT32와 같이 특정 오프셋 별로 의미하는 바가 다릅니다.

 

0byte ~ 2byte : Boot Code

3byte ~ 83byte : BIOS Parameter Block

84byte ~ 509byte : Boot Code와 Error Message

510byte ~ 511byte : 시그니쳐 2바이트

 

위는 NTFS 파일 시스템의 BR 영역 구조입니다. FAT32 파일 시스템보다 구조가 간단해졌다는 점을 확인할 수 있습니다.

 

이는 FAT32 파일 시스템은 모든 파일을 클러스터에서 직접 관리하지만, NTFS 파일 시스템은 파일에 대한 메타데이터를 파일에 기록하기 때문입니다.

 

의미 내용
Jump Boot Code Boot Strap Code로 점프하기 위한 부분
OEM Name OEM 회사를 나타내는 문자열 (FAT32는 MSDOS 5.X로 표시)
Byte Per Sector 한 섹터가 몇 바이트로 구성되어 있는지 나타냄 (기본 512바이트)
SP 클러스터를 구성하는 섹터의 수. 기본적으로 8개의 섹터 사용 (4096바이트)
RS (Reserved Sector) 예약된 섹터의 개수
Media Type 볼륨이 어떤 미디어 매체를 이용하는지를 나타냄 (고정식 디스크는 0xF8)
Total Sector 파티션 상의 총 섹터 개수
Start MFT MFT의 시작 주소
Start of MFT Mirr MFT의 복사본 시작 주소
MFT Size MFT 파일의 크기
Index Record Size Index Record의 크기
Serial Number 볼륨 시리얼 번호

 

2. Master File Table 영역

MFT 영역은 파일과 디렉토리를 관리하기 위한 MFT Entry의 집합체입니다.

 

각 파일은 위치, 시간 정보, 크기, 파일 이름 등의 정보를 모두 MFT Entry라 불리는 구조로 저장하게 됩니다.

 

크기가 가변적이며, MFT가 모두 사용되면 동적으로 클러스터를 추가로 할당하여 파일 시스템의 여러 부분에서 조각되어 저장될 수 있습니다.

 

MFT Entry의 0번 ~ 15번은 파일 시스템 생성 시 자동으로 함께 생성되며 특별한 용도로 사용됩니다.

 

상위 MFT Entry 구조

Entry No. 파일명 설명
0 $MFT MFT를 담고 있는 파일
1 $MFT Mirr MFT 파일 백업본
2 $LogFile 트랜잭션 저널 기록을 저장
3 $Volume 볼륨의 레이블, 버전 등 볼륨에 대한 정보 저장
4 $AttrDef 인자값, 이름, 크기 등 여러 속성 저장
5 - 파일 시스템 루트 디렉토리 저장
6 $Bitmap 파일 시스템의 클러스터 할당 관리 정보 저장
7 $Boot 부트 레코드 영역의 정보 저장
8 $BadCluster 배드 클러스터에 대한 정보 저장
9 $Secure 파일에 대한 보안/접근 권한 정보 저장
10 $Upcase 모든 유니코드 문자에 대한 정보 저장
11 $Extend 추가적인 확장을 담고 있는 디렉토리 (일반적으로 사용 안 함)
12~15 사용 안 함 사용 중이라 설정되어 있지만 비어 있음
16~23 사용 안 함  예약 공간
- $Objld 파일의 고유 ID 정보 저장
- $Quota 사용량 정보 저장
- $Reparse Reparse Point에 대한 정보 저장
- $UsrJrnl 파일이나 디렉토리 변경 사항에 대한 정보 저장
24~ 일반 파일 일반적인 파일이나 디렉토리 실제 저장 위치

 

하위 MFT Entry 구조

속성 식별 값 속성 이름 내용
0x10 $Standard_Information 파일의 생성/접근/수정 시간, 소유자 정보 등
0x20 $Attribute_List 추가적인 속성들의 리스트
0x30 $File_Name 파일 이름(유니코드), 파일의 생성/접근/수정 시간 정보 등
0x40 $Volume_Version 볼륨 정보
0x40 $Object_Id 16바이트 파일, 디렉터리 고유값
0x50 $Security_Descriptor 파일의 접근 제어와 보안 속성
0x60 $Volume_Name 볼륨 이름
0x70 $Volume_Information 파일 시스템 버전과 다양한 플래그 정보
0x80 $Data 파일 내용
0x90 $Index_Root 인덱스 트리의 루트 노드
0xA0 $Index_Allocation 인덱스 트리의 루트와 연결된 노드
0xB0 $Bitmap $MFT와 인덱스 할당 정보 관리
0xC0 $Symbolic_Link 심볼릭 링크 정보
0xC0 $Reparse_Point 심볼릭 링크 정보에서 사용하는 Reparse Point 정보

하위 MFT Entry 구조에서 나타나는 식별 값 중 0x10, 0x30, 0x80은 NTFS에서 파일의 시간 정보, 실제 데이터 위치를 알기 위한 중요한 정보가 됩니다.

728x90
반응형