File System Forensics

[File System] FAT 파일시스템 (3)

도깬리 2023. 6. 1. 06:23

안녕하세요. 도깬리 포렌식스 입니다.

오늘은 FAT 파일시스템 3회차 입니다. 모두 화이팅 하세요!!!

 

디렉토리 엔트리

엔트리 크기는 32바이트 입니다.

파일 속성, 크기, 클러스터 시작 주소, 날짜/시간 정보를 포함합니다.

파일명도 포함합니다.

디렉토리 엔트리는 데이터 영역 어느 곳이든 존재할 수 있습니다.

디렉토리 엔트리는 클러스터처럼 고유 번호로 된 주소를 사용하지 않습니다.

 

7개의 파일 속성

- 디렉토리 속성

- 긴 파일명 속성(Long File Name)

- 볼륨 레이블

- 읽기 전용 속성

- 숨김 속성

- 시스템 속성

- 아카이브 속성

 

3개의 시간 정보

생성일시, 수정일시, 접근날짜

3개의 시간 정보는 각각 다른 정확도를 갖습니다.

- 생성일시 : 0.1초 단위

- 수정일시 : 2초 단위

- 접근날짜 : 날짜 단위

 

디렉토리 할당 상태 표시

첫 바이트를 사용해서 표시합니다.

- 할당된 엔트리 : 첫 바이트 = 파일명의 첫 문자

- 비할당 엔트리 : 첫 바이트 = 0xE5

 

클러스터 연결 (Cluster Chain)

디렉토리 엔트리는 파일의 시작 클러스터 값을 갖고 있습니다.

파일에 할당된 클러스터를 찾을 때 FAT 구조체를 참조합니다.

FAT 엔트리의 값이 0이 아니면 해당 클러스터는 할당된 것 입니다.

0이 아닌 엔트리는 다음 3개의 값 중 1개를 갖고 있습니다.

- 다음 클러스터 주소

- 파일의 끝(EOF)

- 불량섹터가 있음을 보여주는 값

 

FAT 파일시스템의 최대 크기는 FAT 엔트리의 크기에 따라 좌우됩니다.

FAT32 : 28비트 사용 --> 268,435,456개의 클러스터를 표현 가능합니다.

 

 

디렉토리 엔트리의 할당과 고아 파일

파일을 삭제할 경우 해당 디렉토리 엔트리는 비할당으로 처리됩니다.

비할당된 디렉토리 엔트리는 여전히 존재합니다.

그러나 부모 디렉토리를 찾을 수 없습니다. --> 즉 고아 파일(Orphan file)이 발생하게 됩니다.

 

고아 파일을 찾기 위한 방법

데이터 영역의 모든 섹터를 찾아 각 섹터의 첫 번째 32바이트가 디렉토리 엔트리 구조체로 되어 있는지 확인합니다.

클러스터의 슬랙공간에 혹시 있을지도 모르는 디렉토리 엔트리도 수색합니다.

데이터 영역의 모든 클러스터를 찾아 각 클러스터의 첫 번째 32바이트가 . 또는 .. 엔트리 구조체로 되어 있는지 확인합니다.

 

 

 

 

 

감사합니다. 오늘도 즐거운 하루 되세요.

"좋아요"와 "구독하기"는 힘이 됩니다.

참고문서 : File System Forensic Analysis (Brian Carrier)