본문 바로가기

[+] Forensic

File System - NTFS (8)

이번 글에서는 NTFS에서 내용 참조 모델에 해당하는 것에 대해 알아 볼 것이다.

[클러스터]
NTFS에서 파일은 속성의 집합이라고 말 할 수 있는데, 일부 속성은 거주 속성으로 MFT 엔트리에 존재하게 되고, 나머지 속성들은 비거주 속성으로 MFT 엔트리가 아닌 클러스터에 그 내용이 존재하게 된다.
NTFS에서 클러스터는 다른 파일시스템과 마찬가지로 연속적인 섹터의 그룹을 의미한다. 클러스터 수는 2의 제곱이어야 한다. 
FAT 파일시스템과는 다르게 NTFS에서는 클러스터 주소가 0으로 시작하며, 클러스터 0은 파일시스템의 첫 번째 섹터를 포함한다. 클러스터 주소를 섹터 주소로 변환하기 위해서는 아래와 같은 공식을 적용한다.

 - 섹터 = 클러스터 * 클러스터 별 섹터 수

NTFS에서는 클러스터가 어떠한 파일이나 속성에도 할당 될 수 있지만, $Boot 파일은 예외이다. $Boot 파일은 부트 섹터를 포함하기 때문에 무조건 첫 번째 클러스터에 할당되기 때문이다. 


[$Bitmap]
해당 파일은 클러스터의 할당 상태를 결정한다. 해당 파일 $DATA 속성은 파일시스템 내 모든 클러스터와 매칭되는 1개의 비트를 가지고 있다. 비트가 1로 설정되면 해당 클러스터는 할당 상태인 것을 의미하며, 비트가 0으로 설정되면 해당 클러스터는 비 할당 상태인 것을 의미한다. 


[$BadClus]
해당 파일은 불량 클러스터를 관리하는 메타데이터 파일로, MFT 아홉 번째 엔트리이다. 해당 파일에는 $DATA 속성이 2개 있는데 하나는 기본적인 $DATA 속성으로 크기가 0이다. 나머지 하나는 $Bad라고 불리는데 sparse 파일이며, 클러스터가 손상되었다고 보고 될 시 클러스터 주소가 해당 속성에 포함된다.
처음에 $Bad 라고 불리는 이 $DATA 속성에는 아무것도 포함되어 있지 않다. 


NTFS는 할당 알고리즘으로 "best-fit" 을 사용한다. 

간단하게 best-fit 알고리즘을 설명하자면, 해당 알고리즘은 할당 가능한 클러스터 크기 중 제일 작은 클러스터 크기에 할당하는 알고리즘이다. 다른 알고리즘에 비해 공간 효율성이 제일 좋은 알고리즘이다.

[파일시스템 레이아웃]
NTFS의 레이아웃은 윈도우 버전마다 조금씩 다르지만 기본 개념은 동일하다. NTFS를 사용하는 윈도우 버전 모두 MFT 예약 영역이라는 것을 사용하는데, MFT 예약 영역이란, 파일 할당으로 인해 MFT 엔트리가 생성되고 MFT가 확장되면 MFT가 파일에 할당 되고 난 이후 해당 영역이 쉽게 단편화 될 수 있는 것을 막기 위해 파일시스템에 MFT만을 위한 클러스터 집합을 정해놓은 것을 말한다. 영역의 크기는 파일시스템의 12.5%이다.
만약 파일시스템이 모든 영역을 파일과 디렉토리 할당에 사용했다면 추후 파일과 디렉토리를 할당 할 시 MFT 예약 영역을 사용하게 된다. 그리고 모든 윈도우 버전들은 $Boot 파일을 첫 번째 클러스터에 할당한다.
위 조건을 제외하면 각 윈도우 별 레이아웃이 조금씩 다르다. 아래는 window 2000 과 XP를 비교한 그림이다.
 

[그림 1 - 윈도우 버전 별 NTFS 레이아웃]

Windows 2000의 경우 파일시스템 1/2 지점에 $Boot, $AttrDef, $MFT 파일을 제외한 다른 메타데이터 파일들이 위치하고, Windows XP의 경우 1/3 지점에 메타데이터 파일이 위치한다. 


[분석 시 주의사항]
해당 참조 모델의 분석을 수행 할 경우 주의해야 할 사항은 다른 파일시스템과 대부분 동일하며, 특이점이라면 해당 파일시스템은 모든 섹터에 클러스터가 할당 되기 때문에 키워드 검색 기술인 논리적 볼륨 검색과 논리적 파일시스템 검색의 결과 차이가 없다. 한가지 참고로 수행해야 할 것은 불량 클러스터들을 검사하는 것이다. 대부분의 불량 클러스터들은 파일시스템이 처리하기전에 디스크에서 먼저 처리하여 다시 할당되기 때문이다. 

'[+] Forensic' 카테고리의 다른 글

File System - NTFS (10)  (0) 2012.02.13
File System - NTFS (9)  (0) 2012.02.10
File System - NTFS (7)  (0) 2012.02.09
File System - NTFS (6)  (0) 2012.02.09