본문 바로가기

디지털 포렌식 (Forensic)/디지털포렌식전문가 2급 필기

[디지털포렌식전문가 2급 필기] 2-1-4. 파일 시스템의 유형

728x90
반응형

IBM AIX 운영체제 파일 시스템

- EXT2

- UFS

- HPS

Linux 운영체제 파일 시스템

- EXT2

- XFS

- UPS

Linux의 inode 구조체

- 파일이 저장된 디스크 블록 위치를 나타내기 위하여 15개의 포인터가 사용됨

- 디스크 블록 위치를 가리키는 포인터 정보는 직접 지정과 간접 지정 방식이 존재

- 작은 크기의 파일에 부여된 inode의 경우 간접 지정 포인터 값은 NULL임

Unix의 inode 구조체

- 파일이나 디렉토리 파일의 속성을 나타내는 정보들을 저장

슈퍼 블록

- Unix 계열 파일시스템 구조에서 디스크 파일시스템의 식별을 위한 Magic Number 등 전체 디스크에 대한 정보가 저장

 

 

Windows의 FAT 파일 시스템

- PBR : 파티션 부트 레코드의 약자로서 파티션 정보를 저장하고 있는 핵심적인 부분

- FAT 1/2 : 클러스터들을 관리하는 테이블이 모여 있는 공간으로 FAT2는 FAT1의 백업 역할을 함

- Root Directory : 파일 시스템의 최상위 디렉토리

- 루트 디렉토리는 최상위 디렉터리에 포함된 파일 또는 디렉토리에 대한 메타데이터를 저장

- FAT 파일 시스템 구조에서 일반적으로 FAT16은 1 섹터, FAT32에서는 32개의 섹터가 예약된 영역에 속함

- FAT32의 Data 영역에서 루트 디렉토리의 위치는 고정되어 있지 않음

- DOS 때 부터 사용된 FAT은 디스크 블록 할당 시 연결리스트 형태를 취함

- FAT32는 일정 이상 크기의 디스크에 대해서는 그 적용이 어려움

FAT32 파일시스템

- 크게 부트 레코드, 예약된 영역, FAT #1 영역, FAT #2 영역, 데이터 영역 5가지로 나뉨

- FAT #1 영역은 클러스터들을 관리하는 테이블이 모여 있는 매우 중요한 공간으로 손상이 발생하였을 때를 대비하여 백업본이 존재하며, 이것이 FAT #2 영역임

- 디렉토리 엔트리에는 파일의 이름, 확장자, 생성,수정,접근 시각, 크기 등이 저장됨

FAT32에서 파일을 삭제할 때 일어나는 일

- 삭제되는 파일의 디렉토리 엔트리의 첫 번째 바이트가 0xE5로 변경

- File Allocation Table에서 삭제하는 파일에 할당된 클러스터 정보가 모두 0으로 변경

- 삭제되는 파일의 롱 파일 네임 엔트리의 첫 번째 바이트가 0xE5로 변경

exFAT

- FAT 12/16/32 계열의 차세대 파일 시스템으로서 FAT32의 장점을 유지하면서 파일 크기와 디렉토리 제약의 문제를 해결한 파일시스템

- 가변형 섹터 크기를 지원

- 최대 255자 파일 이름을 지원

- 최대 32MB의 클러스터 크기를 지원

- 클러스터 힙 (exFAT 파일 시스템에서 실제 파일 데이터가 존재하는 영역)

FAT 파일 시스템의 첫 번째 섹터의 Offset 510 ~ 511의 시그니쳐

- 0xAA55

FAT 파일 시스템의 LFN Directory Entry

- 최대 255자까지 저장 가능

- 기존의 Short File Name과 호환

- 기존의 SFN보다 특수문자 허용 범위가 넓음

 

Windows의 NTFS 파일 시스템

- NTFS 파일 시스템으로 포맷하면 자체의 보안 기능을 사용 가능

- NTFS 파일 시스템이 압축 기능을 지원하므로 별도의 압축 프로그램을 사용하지 않아도 됨

- NTFS 파일 시스템이 암호화 기능을 지원하므로 별도의 암호화 프로그램을 사용하지 않아도 됨

- sparse 기능 (데이터가 모두 0인 파일을 저장할 때 실제 디스크를 할당하지 않고 크기만 저장하는 기능)

- 파일이 삭제되는 경우 해당 파일의 MFT 엔트리의 플래그 값이 0으로 설정됨

- MFT 엔트리에 저장되는 $STANDARD_INFORMATION 속성에는 Created, Modified, Accessed, MFT modified Time이 저장되어 있음

- $OBJECT_ID 속성은 파일 및 디렉토리의 16바이트 크기를 가진 고유값을 저장

- 저장하는 데이터의 암호화 기능과 저널링 기능을 포함하기도 함

- NTFS 사용자 권한은 공유 보안과 같이 Everyone 그룹에 대해서 모든 권한을 허용

- 파일과 폴더에 개별적인 보안을 설정할 수 있어 강력한 보안 정책 설정이 가능

- NTFS는 FAT 파일 시스템을 대체하기 위한 것으로 사용자마다 서로 다른 NTFS 보안을 설정할 수 있음

- 시스템 고장과 디스크 손상을 복구하는 능력이 있어 손상이 발생하면 NTFS는 디스크 볼륨을 재구성하여 일관성 있는 상태로 복구함

- NTFS 보안을 적용할 수 있는 대상은 로컬서버의 NTFS 볼륨 드라이버, 폴더, 파일임

- NTFS 보안의 상속은 하위 폴더 및 파일에 상속되도록 기본 설정되어 있으며, 허용 목록보다 거부 목록이 우선함

- 다중 데이터 스트림을 지원

- 파일 시스템 수준에서 압축을 지원

- 파일과 디렉토리를 표현하기 위하여 MFT 엔트리라는 자료구조를 제공

NTFS의 클러스터 런 (Cluster Runs)

- 많은 데이터가 연속적으로 저장되는 경우에 효율적으로 표현할 수 있음

- 각 런은 시작 클러스터 번호와 클러스터 개수로 표현

- Sparse 속성인 경우 런에 시작 클러스터 번호는 표시하지 않고 크기만 표현

NTFS에서 파일이 삭제되었을 때 파일시스템 변화

- 파일에 대한 MFT Entry의 in-use flag를 0으로 변경

- 해당 MFT Entry의 $Bitmap 속성을 0으로 변경

- $Bitmap 파일에서 삭제된 파일에 할당된 클러스터를 Unallocated로 변경

Attribute Name Description
$STANDARD_INFORMATION 파일의 생성/접근/수정 시간, 소유자 등의 일반적인 정보
$INDEX_ROOT 인덱스 트리의 루트 노드
$BITMAP $MFT와 인덱스의 할당 정보 관리

$FILE_NAME Attribute에 기록되는 정보

- 파일명

- 파일 플래그(Archive, Hidden 등)

- MAC (Modified, Accessed, Created) Time

NTFS 레코드 형식

- 파일 레코드 헤더에서는 파일 ID, 레코드의 저장 위치, 레코드의 실제 길이, 레코드의 할당 크기, 파일의 시작 위치, 다음번 속성 ID, 플래그 등을 저장

- FILE NAME 속성은 파일이 속한 디렉토리 위치, 파일 변경 횟수, 파일의 할당 크기, 파일의 실제 크기, 파일명 길이, 파일명 공간, 파일명 공간, (16비트) X (255자) 유니코드 기반 파일명 등

- DATA 속성은 파일의 데이터와 데이터를 찾는 인덱스에 대한 속성, 비상주 속성에 대한 설명, 속성의 이름, 압축 단위 크기, 속성의 할당 크기, 속성의 실제 크기, 데이터 시작 위치, 첫 데이터 스트림의 크기 등

 

EXT 파일 시스템의 특징

- 시간 소인 정밀도 및 범위 향상

- 블록 할당 지연

- 파일 레벨 사전 할당 및 멀티 블록 할당

Deletion Time

- ex2의 inode에만 존재

EXT3 파일시스템

- 저널링 기능

- ext2 파일시스템의 기능을 보완

- EXT3 이후부터는 갑작스런 시스템 장애 발생 시 복구를 위한 저널링 기능이 추가되고, 이를 위한 별도의 파일이 존재

- EXT3 저널링과 관련하여 저널링 기능 향상을 위한 저널링 체크섬 기능이 존재

EXT4

- 기존 EXT3의 공간 할당 방법을 개선하기 위하여 구현됨

- 슈퍼 블록과 디스크립터 사본을 저장

- 익스텐트를 사용한 디스크 공간 관리가 시작됨

- 일관성을 높이며, 동시에 속도를 향상시키기 위하여 선할당(preallocation)이라는 기법과 단편화의 방지를 위한 지연 할당(delayed allocation) 기법을 도입

- 파일 데이터의 할당 구조로 extent를 사용함

- 파일의 크기보다 실제로 할당된 크기가 작을 수 있음

- 안드로이드의 기본 파일 시스템

EXT4의 extent

- 파일에 할당된 블록정보의 리스트

- 시작 블록의 위치와 연속된 블록의 개수로 표현됨

- inode에서는 최대 4개의 extent만 포함될 수 있음

EXT4에서 파일을 삭제할 때 일어나는 일

- 삭제될 파일의 inode의 블럭 할당 정보를 초기화

- 삭제될 파일의 inode의 파일 크기를 0으로 변경

- 블록 비트맵에서 삭제될 파일에 할당된 블록의 위치에 해당하는 비트를 0으로 변경

EXT4 파일 시스템의 Ordered 모드 저널에 기록되는 내용

- 슈퍼 블록, inode, 블록 비트맵

EXT4의 슈퍼 블록이 지워졌을 때 슈퍼 블록을 복구하는 방법

- 다른 블록 그룹에 백업되어 있는 슈퍼블록을 찾거나 저널 파일에 존재하는 슈퍼블록을 찾음

EXT4에서 삭제된 파일의 정보와 내용을 복원하기 위해 하는 일

- 저널에서 inode 찾기

- 디렉토리 엔트리에서 삭제된 엔트리 찾기

- inode 테이블에서 삭제된 indoe 찾기

 

HFS+ 파일 시스템

- 볼륨 헤더의 복사본이 볼륨의 마지막 1024 바이트 앞쪽에 위치

- 카탈로그 파일은 B-Tree로 구성되고 파일 및 디렉토리의 구조 정보를 표현

- Apple 사의 Mac OS X와 iOS에서 사용되는 파일 시스템

- 파일과 폴더 이름을 UTF-16으로 표현하고 저널링을 지원

UFS 파일 시스템 (Unix File System)

- Unix 및 Unix 계열 운영체제에서 널리 사용되는 파일 시스템

- 시스템 상의 각 파일은 특정 사용자에게 소유되며, 원칙적으로 해당 사용자만이 해당 파일에 대한 조작을 수행할 수 있음

- 부트 블록, 슈퍼 블록, 실린더 그룹의 파일 시스템 구조를 가짐

- 시스템의 각 파일은 특정 사용자에게 소유되며, 원칙적으로는 해당 사용자만이 해당 파일에 대한 조작을 수행 가능

- 특권이 있는 사용자는 예외적으로 파일 시스템의 모든 파일에 대한 권한을 가짐

- 예외적 특권이 없는 일반 사용자들이 슈퍼 유저와 같은 특수 권한을 통하여 해당 파일에 접근할 수 있도록 함

- UFS 파일 시스템의 구조 : 부트 블록, 슈퍼 블록, 실린더 그룹

VFS (Virtual File System)

- 서로 다른 파일 시스템에 대하여 표준 인터페이스를 통하여 입출력을 할 수 있게 해주는 추상화 계층

- 사용자 프로세스는 마운트된 실제 파일 시스템에 대한 정보를 가질 필요 없음

- VFS의 주요 공통 오브젝트는 슈퍼 블록, inode, dentry, file

FTL (Flash Translation Layer)

- 파일 시스템의 논리적 섹터에 대한 플래시 메모리의 물리적 페이지 주소 변환

- Wear Leveling

- 가비지 컬렉션을 포함한 블록 관리

- FTL 구조 : Sector Translation, Block Management, Low Level Driver 

EFS2 파일 시스템

- 데이터 영역에는 데이터와 디렉터리 엔트리가 저장됨

YAFFS2

- 플래시 메모리 전용 파일 시스템

파일 시스템의 변환 함수 convert 함수

- FAT16 또는 FAT32 파일 시스템을 NTFS로 변환 가능

- NTFS는 다시 FAT16과 FAT32 형식으로의 변환으로 되돌릴 수 없음

728x90
반응형