ExFAT

Digital Forensic Wikipedia
둘러보기로 가기 검색하러 가기

파일 시스템 역사[편집]

널리 사용되는 파일시스템 중 하나인 FAT은 단일 파일의 최대 저장크기가 4GB를 넘지 못한다는 한계점이 있다. 최근 스마트폰, 태블릿PC, 디지털 카메라 등의 발달로 멀티미디어 파일과 같은 대용량 파일이 증가하면서 새로운 포맷의 FAT 파일시스템의 필요성이 제기되었다. 이러한 수요에 부합하기 위해 마이크로소프트사가 기존의 FAT 파일시스템과 호환되면서 한계점을 개선한 파일시스템exFAT을 선보였다. exFAT은 Extended File Allocation Table의 약자로써, FAT64이라고도 한다. 2006년 마이크로소프트사가 Windows CE 6.0에서 처음 선을 보였다. Desktop 운영 체제 Windows Vista SP1, Windows 7 그리고 자사의 서버 운영 체제인 Windows Server 2008에 도입하기 위해 만들어졌다. 그 외 Windows Vista SP1, Windows XP SP2, Windows XP SP3, Windows Server 2003, Windows Server 2008, Windows CE 6.0을 지원한다

파일시스템 특징[편집]

exFAT은 이름에서 알 수 있듯이 기존의 FAT 파일시스템과 유사한 점이 많다. FAT영역을 그대로 사용하고 있고, 32바이트 크기의 Directory Entry를 사용한다. 기존 FAT 파일시스템의 단점이었던 최대 볼륨 크기와 파일 크기가 크게 늘었으며 마이크로소프트사의 또 다른 파일시스템NTFS보다 훨씬 크다. 아래 표는 파일시스템간의 특성을 정리한 표이다.

최대 볼륨 및 파일 크기 제한
특성 FAT 12 FAT 16 FAT 32 NTFS UDF exFAT
최대 볼륨 크기 32MB 2GB 8TB 16TB 2TB 16EB
최대 파일 크기 32MB 2GB 4GB 16EB 16EB 128PB
성능 Low Low Low High Low Low
고장 저항력 No No No Yes No Yes
객체 권한 No No No Yes No Yes
파일이름 최대길이 255 255 256 256 127Unicode
254ASCII
255Unicode


이외에 exFAT은 대용량을 지원하면서도 자료를 찾는데 발생하는 오버헤드를 최소화했다는 특성이 있다. TexFAT(Transactional FAT)과 호환이 되고 9섹터 크기의 VBR 영역을 사용할 수 있어 대용량 부트 프로그램이 가능하다.

구조분석[편집]

exFAT영역은 아래그림과 같이 크게 VBR, BVBR, FAT, 비할당 영역으로 나뉜다.

Volume Boot Record의 구성도

메타데이터[편집]

클러스터 힙(Cluster Heap)은 실제 데이터가 저장되는 영역이다. 클러스터 단위로 데이터를 저장하며, 32바이트 크기의 디렉터리 엔트리(Directory Entry) 자료형에 맞게 저장된다. 디렉터리 엔트리의 종류는 9가지이며 각각 Entry Type에 고유한 시그니쳐로 구별한다. Volume Label, Allocation Bitmap, Up-Case, File Directory, Stream Extension Directory Entry 등이 있다.

파일 추출 기법[편집]

exFATFAT 파일 추출 기법과 동일하다.

데이터 복구[편집]

exFAT은 파일 삭제 시, 비트맵 테이블클러스터 할당 상태를 0으로 변경만 할 뿐, 실제 데이터와 FAT 영역의 Cluster Chain 정보를 삭제하지 않는다. 따라서 파일 복구 시에 FAT 영역을 참조하면 파일이 비연속적으로 할당돼 있더라도 메타데이터에서 데이터의 시작 클러스터 번호와 사이즈를 구해 파일을 온전히 복구할 수 있다

은폐 대응[편집]

파일 은폐 대응은 컴퓨터 사용자가 운영체제의 기본적인 숨긴 설정된 시스템 파일 이외에 의도적으로 데이터를 은닉하고자 한 가능성을 열어두고 그에 대한 꼼꼼한 분석을 하자는 데 그 의의가 있다. 먼저, exFAT의 숨긴 속성을 확인하기 위해서는 File Directory Entry의 파일 속성 값이 0x02를 가지는 파일이 있는지 탐색한다. 이외에 Boot Sector 분석과 낭비된 영역을 분석하여 악의적으로 데이터 은닉 행위가 있는지 살펴보아야 한다. 루트킷을 이용해 부트 코드를 의도적으로 수정하였을 수도 있다. 때문에 Boot code 분석을 통해 임의적인 흐름 변경이 있는지 확인해야 한다. exFAT의 낭비된 영역 분석의 경우 두 영역을 살펴 볼 수 있다. 먼저 모든 파일시스템에서 공통적으로 나타타는 MBR 사용으로 인해 낭비되는 62 Sector의 MBR Slack 부분을 살펴본다. 마지막으로 Volume Boot Record의 Extended Boot Sector(1~8 Sector)과 Reserved Sector(10 Sector)를 확인해 보는 과정을 거친다. Backup Volume Boot Record 역시 동일한 과정을 거쳐 확인한다. 이런 과정을 통해 exFAT에서 악의적으로 숨긴 파일이 존재하는지 확인할 수 있다.