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 형식으로의 변환으로 되돌릴 수 없음
'디지털 포렌식 (Forensic) > 디지털포렌식전문가 2급 필기' 카테고리의 다른 글
[디지털포렌식전문가 2급 필기] 2-2-2. 운영체제의 분류 (0) | 2020.10.12 |
---|---|
[디지털포렌식전문가 2급 필기] 2-2-1. 운영체제의 역할 및 기능 (0) | 2020.10.12 |
[디지털포렌식전문가 2급 필기] 2-1-3. 파일 시스템의 구조 (0) | 2020.10.12 |
[디지털포렌식전문가 2급 필기] 2-1-2. 파일의 기반 요소 (0) | 2020.10.12 |
[디지털포렌식전문가 2급 필기] 2-1-1. 파일의 기본 개념 (0) | 2020.10.12 |