반응형

FAT와 NTFS에 대해서 간단하게 알아보도록 합시다. 그 전에 앞서 부팅은 어떻게 되는 것일까?

부팅과정

MB

MBR(Master Boot Record)는 운영체제 부팅 시 POST(Power on Self-Test)과정을 마친 후 저장매체의 첫 번째 섹터를 호출하는 것으로 이 때 해당 부트 코드가 수행되게 한다. 부트 코드의 역할은 파티션 테이블에서 부팅 가능한 파티션을 찾아 해당 파티션의 부트 섹터를 호출해 주는 것인데, 부팅 가능한 파티션이 없을 경우 정의된 메시지를 출력하게 한다. 부팅가능한 파티션을 찾았을 경우 파티션 시작위치의 부트섹터를 로드한다. NTFS.sys 파일 시스템 드라이버가 있어야 해석이 가능하다.

파일 시스템?

파일 시스템이란 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제를 가리키는 말이다. (위키백과)

파일 시스템의 종류에는 흔히들 알고 있는 FAT, NTFS, HFS, exFAT, ext2,3,4 등이 있다. 또한 더불어 파티션이라는 개념을 알아야 한다. 파티션이란 물리적으로 하드디스크에 분할영역을 설정하는 것을 말하며 파티션이 없으면 비할당 영역이 되기 때문에 아무리 용량이 남아있더라 하더라도 사용할 수 없다. 운영체제가 최소한 한 개의 디스크가 할당 되어 있다는 것을 알아야 사용이 가능하기 때문이다.

실험결과 디스크 인식은 하나 사용은 불가능하다.

FAT란

  • 파일 할당 테이블, FAT(File Allocation Table)
  • MS-DOS시절부터 사용
  • 단순한 구조로 메모리카드, 디지털카메라, 플래시메모리 등에 널리 사용
  • FAT12, FAT16, FAT32. 뒤의 숫자는 표현 가능한 최대 클러스터 수를 말한다
  • 최근 FAT의 단점을 보완하면서 FAT64(exFAT)가 등장했다

표현 가능한 최대 클러스터 수(FAT32 최대 클러스터수는 제한)
볼륨 크기에 따른 클러스터 크기(FAT32)

exFAT(extend FAT)

  • 윈도우 Embedded EC 6.0부터 사용
  • 클러스터 표현 비트를 64bit로 확장
  • 비트맵 사용
  • UTC 지원
    • 시간 정밀도 10ns ( NTFS - 100ns )

FAT 기본 구조

예약된 영역 | FAT 영역 | 데이터 영역

 

NTFS란

FAT파일 시스템은 개인용 운영체제를 위해서 사용되었다. 윈도우 NT가 나오면서 서버용 파일 시스템이 필요로 하게 되었다. FAT방식보다 안정성, 확장성, 보안성 등이 강화되었으며, 2^64-1 클러스터를 가진다. 무엇보다 NTFS의 가장 큰 장점은 용량 관리가 효율적이라는 것이다. 즉, NTFS는 클러스터 단위를 사용한다.

아래의 표는 윈도우 히스토리이다. 

NTFS 클러스터 크기는 다음 표와 같다.

보통 사용하게 되면 4KB를 사용하게 된다. 다음은 NTFS에서 사용 가능한 파일 및 볼륨 크기이다.

우리가 사용하기엔 현실적으로 제한이 없는 크기이다. 다음으로는 NTFS의 특징이다.
NTFS - Digital Forensic Wikipedia (korea.ac.kr)

- 저널링(Journaling) : 볼륨에 수행되는 모든 작업에 대해서 트랜잭션 단위로 기록함. Ext3와 같은 다른 파일시스템에도 적용됨

- ADS : NTFS는 다중 스트림을 지원한다. 즉, 하나의 파일이 하나 이상의 데이터를 담을 수 있다는 의미이다. 첫 번째 스트림에는 파일 내용이 있고, 두 번째 스트림에는 파일의 요약 정보 및 파일 아이콘 등 여러 정보를 담을 수 있다. 또한, 정보 은닉용도로 사용이 된다.

ADS 사용

- Sparse 파일 : 파일의 내용이 0으로 되어있을 경우 해당 파일의 내용을 그대로 볼륨에 저장하지 않고, 그 정보만을 유지하는 파일을 말한다. 예를 들어서 10MB의 파일의 맨 처음 4KB에만 의미 있는 데이터가 있고 나머지에는 전부 0으로 기록이 되어 있다면, 이 파일에는 의미있는 4KB만을 저장하고 나머지 영역이 0으로 채워져 있다는 정보만을 기록하게 된다. NTFS의 단점이기도 하다.

- Quotas : 디스크 쿼터. 사용자마다 디스크 사용량을 제한한다. NTFS는 다수의 사용자들이 하나의 컴퓨터를 쓰는 것으로 설계했다. 다른 사람이 디스크 용량을 사용하는 것을 막기 위해 관리자가 사용자들마다 개인 용량을 할당할 수 있게 했다.

- EFS : 파일을 FEK로 암호화한 후 이것을 사용자가 가진 공개키로 암호화하여 파일의 $EFS ADS에 저장한다. 복호화 할 때는 개인 키로 $EFS 스트림에 저장된 암호화된 FEK를 복호화한다. 그 다음으로 암호화가 풀린 FEK대칭 키로 파일을 복호화한다. 암/복호화가 NTFS 단계 아래에서 이루어지기 때문에 사용자와 프로그램은 암호화된 파일을 일반 파일 처럼 사용이 가능하다. NTFS5.0 부터 지원된다.

MFT(Master File Table) : NTFS는 정형화된 볼륨 레이아웃이 없고, 전체를 데이터 영역으로 관리한다. NFTS만 파싱함으로써 빠르게 파일 시스템을 분석할 수 있다. 파일이나 디렉토리가 많아질 수록 MFT 사이즈도 커진다. 삭제된 파일이나 디렉토리도 포함하기 때문에 사이즈가 줄어들지 않는다.

 

 

참고

디지털 포렌식(노명훈, 백명훈 저)
FORENSIC-PROOF | Digital Forensics, Incident investigation and Response… (forensic-proof.com)

반응형

+ Recent posts