I. 파티션의 구조
파티션
디스크를 여러 개의 독립된 영역으로 나누는 것.
MBR (Master Boot Record)
하드 디스크의 첫 번째 저장 공간, 0번 섹터에 위치하는 영역.
하드 디스크의 파티션 정보를 가지고 있는 512바이트 크기의 영역.
단일 파티션에는 존재하지 않고 다중 파티션에만 존재한다.
다중 파티션일 경우 MBR에는 VBR의 정보도 저장한다.
해당 파티션에 OS가 설치되어 있다면 OS를 부팅하는 역할을 한다.
운영체제가 어디에 어떻게 위치해 있는지를 식별하여 컴퓨터의 주기억장치에 적재할 수 있는 정보를 가지고 있기 때문이다.
Microsoft의 MBR은 부트 코드 영역과 파티션 테이블 영역으로 구분한다.
- 부트 코드 영역 : 디스크 부팅에 사용하는 기계어 집합
- 파티션 테이블 : 디스크의 파티션 갯수 및 정보를 담고 있는 영역
디스크 최대 용량은 2TB, 최대 파티션 갯수는 4개까지 가능하다.
VBR (Volume Boot Record)
파티션의 0번 섹터에 위치한다. 하나의 파티션마다 하나의 VBR이 존재함.
파티션에 설치한 OS를 부팅하는 역할을 담당한다.
GPT (Guid Partition Table)
기존 MBR의 단점을 보완한 파티션 테이블 저장 방식.
디스크 최대 용량은 9ZB, 최대 파티션 갯수는 128개까지 가능하다.
헤더의 시그니처는 EFI PART이다.
파티션 엔트리에서 해당 파티션의 시작 블록 주소는 8바이트이다.
각 엔트리는 GUID 값을 가진다.
II. 파일 시스템의 구조
파일 시스템
하드 디스크에 저장한 데이터를 더 빠르고 쉽게 접근하도록 도와 읽기, 쓰기, 검색 속도가 향상된다.
부가적으로 시스템의 오류 교정, 중요 데이터의 백업 및 복원, 데이터 보안 및 암호화 기능이 있다.
메타데이터
데이터를 설명하거나 관리하기 위한 데이터.
응용 프로그램에서 자동으로 생성하며 사용자에게는 보이지 않는다.
I/O 버퍼링
입출력 장치의 느린 처리 속도 보완을 위해 한꺼번에 여러 개의 레코드를 주기억장치에 모아 입출력하는 기법
이러한 용도로 사용하는 주기억장치 공간은 버퍼라고 한다.
두 개의 버퍼를 사용하는 경우 CPU가 한 쪽 버퍼의 내용을 처리하는 동안 입력 장치는 다른 쪽 버퍼에 입력을 수행한다.
블로킹
기억 공간과 I/O 효율을 위해 몇 개의 논리적 레코드를 하나의 블록에 저장하는 것.
블로킹 인수(한 블록에 저장 가능한 레코드 수) = (블록 크기 - 블록 헤드 크기) / 레코드 크기
총 블록수 = 레코드 수 / 블로킹 인수
디스크 자유 공간 (Free space)
디스크 공간은 제한되어 있기 때문에 새로운 파일 입력을 위해 삭제할 파일이 있는 공간을 재사용한다.
디스크는 자유 공간 리스트에 모든 자유 블록을 등록한다.
새로운 파일을 만들 때는 자유 공간 리스트를 탐색하여 공간을 할당받아야 한다.
할당된 공간은 자유 공간 리스트에서 삭제된다.
자유 공간 관리방법은 다음과 같다
비트 벡터(Bit Vector)
디스크 블록마다 한 개의 비트를 할당하여 관리한다.
비트가 1이면 데이터가 있는 블록, 0이면 가용 가능한 블록이다.
관리가 편하고 연속적인 n개의 가용 블록을 찾는데 효과적이다.
단 오버헤드가 크며 디스크 용량이 클수록 사용하기 힘들다.
연결 리스트 (Linked List)
모든 자유 공간을 링크로 연결하여 관리한다.
가용한 블록은 자신과 같은 구조를 가진 블록의 포인터를 가지고 있다.
공간의 낭비가 없지만 연속적인 가용공간을 찾는 것이 어렵다.
가용한 블록이 n개이면 n번 디스크를 읽어야 한다.
그룹핑 (Grouping)
연결 리스트 방법의 변형
여러 개의 자유 블럭을 하나의 그룹으로 묶고, 이 그룹을 연결 리스트로 묶는 구조.
연속된 자유 공간을 쉽게 찾을 수 있다.
첫 번째 자유 블록 안에 n개의 블록 주소를 저장한다.
카운팅 (Counting)
연속된 자유 블럭 중 첫 번째 자유 블럭의 주소와 해당 블록 이후의 자유 블럭 갯수를 count라는 변수에 저장하여 관리하는 방식.
III. 파일 시스템의 유형
1. FAT(File Allocation Table) 파일 시스템
FAT의 섹터 영역
Boot Sector : 운영체제의 부트로더가 들어 있는 부분. 전원을 켜고 MRB 또는 마스터 부트 레코드 파티션 테이블을 사용하는 컴퓨터 장치를 담당한다.
FAT 영역 : 시스템이 각 데이터 스트림에 특정 클러스터를 할당할 수 있도록 파일 할당 테이블에서 파일의 복사본을 식별함.
데이터 영역 : 이미지, 문서, 오디오 파일 등의 데이터를 저장하는 곳.
루트 디렉터리 영역 : 파일 및 해당 디렉터리에 관한 정보를 지정하는 테이블. 최상위 디렉터리에 포함된 파일/디렉터리에 대한 메타데이터를 저장하고 있다. FAT32는 데이터 영역에 루트 디렉터리를 저장하기 때문에 FAT12나 FAT16에서 사용한다.
FAT 16
최대 클러스터의 갯수는 2^16개. 최대 2GB 용량을 지원한다.
FAT 32
최대 클러스터의 갯수는 2^28개. 4GB까지의 파일 크기를 지원함.
exFAT
대용량, 고속의 플래시 메모리를 효율적으로 다루기 위해 개발함.
FAT32의 장점을 유지하며 파일 크리과 디렉터리 제약 문제를 해결한 파일 시스템.
최대 파일/파티션 크기는 512TB.
2. EXT(EXTended file system) 파일시스템
리눅스용 파일 시스템 중 하나.
ext / ext2
파일 구조는 테이블(메타데이터)와 비트맵으로 구성된다.
암호화는 지원하지 않는다.
ext3
ext2에서 자료 삭제 및 손실 없이 ext3로 변경할 수 있다.
예기치 않게 시스템이 중단되었을 때 복구할 수 있는 저널링 기능이 추가되었다.
ext4
64비트 기억 공간 제한을 없애고 ext3의 성능을 향상시키며 하위 호환성이 있는 확장 버전.
ext3의 공간 할당 방법을 개선하기 위해 구현되었따.
블록맵핑 대신 익스텐드 방식을 이용하여 파일 조각화 현상을 최소화하는 디스크 공간 관리가 시작되었다.
수퍼블록과 디스크립터 사본을 저장한다.
3. NTFS(New Technology File System) 파일시스템
Microsoft Windows의 파일 시스템. FAT을 대체하기 위해 Windows NT 3.1과 함께 발표.
메타데이터 지원
고급 데이터 구조 사용
신뢰성
추가 확장 기능을 더한 디스크 공간 활용
NTFS 제공 기능
데이터 복구 : $LogFile등에 저장된 기록을 통해 에러 발생 시 데이터 복구가 가능
암호화 : 별도의 암호화 프로그램 없이 암호화 기능 사용 가능
ADS : 기본적인 $DATA 속성 외에 추가적으로 데이터를 저장할 수 있는 공간. 파일 크기에 포함되지 않아 비밀 데이터나 악성코드를 은닉하기도 함.
압축 : 별도의 프로그램 없이 파일시스템이 직접 압축 기능을 제공함.
Sparse : 파일의 데이터가 대부분 0의 값을 가질 때 실제 디스크에 할당하지 않고 크기만 MFT Entry에 저장한다.
NTFS에서 파일 삭제 시 동작 방식
파일에 대응하는 MFT Entry의 flag 값 중 in-use 속성을 '사용하지 않음'으로 변경
파일에 대응하는 MFT Entry의 $Bitmap 속성을 0(할당되지 않음)으로 변경
$Bitmap 파일에서 삭제된 파일에 대응하는 Cluster 할당을 0(할당되지 않음)으로 변경
MFT (Master File Table)
볼륨에 존재하는 모든 파일과 디렉토리 정보를 가진 테이블
파일, 디렉터리, 메타데이터를 모두 파일 형태로 관리한다.
NTFS의 가장 중요한 구조체. 파일이 많이질수록 윈도우는 MFT의 크기도 늘려간다. 단 늘어난 MFT는 줄어들지 않는다.
IV. 파일 보호
파일 보호는 컴퓨터 시스템에서 사용자, 프로세스 같은 주체가 프로세스, CPU, 기억장치 등과 같은 객체에 불법적으로 접근하는 것을 제어하고 객체의 물리적 손상을 예방하는 기법.
주체는 접근 권한이 부여된 객체에만 접근할 수 있다.
접근 제어 행렬(Acess Control Matrix) 기법
객체에 대한 접근 권한을 행렬로 표시한 기법
행(Row)은 영역(사용자, 프로세스), 열(Column)은 객체, 각 항은 접근 권한의 집합으로 구성됨
전역 테이블(Global Table) 기법
가장 단순한 구현 방법.
영역, 객체, 접근 권한의 집합을 목록 형태로 구성한 기법
테이블이 매우 커서 주기억장치에 저장할 수 없으므로 가상기억장치 기법을 사용
접근 제어 리스트 (Access Control List) 기법
접근 제어 행렬에 있는 객체를 중심으로 접근 리스트를 구성한 것.
각 객체에 대한 리스트는 영역, 접근 권한의 순서쌍으로 구성.
권한 리스트 (Capability List) 기법
접근 제어 행렬에 있는 각 행, 즉 영역을 중심으로 권한 리스트를 구성한 것.
객체와 객체에 허용된 조작 리스트로 구서오딤.
록-키(Lock-Key) 기법
접근 제어 리스트와 권한 리스트를 절충한 기법
객체는 Lock, 영역은 Key라 불리는 유일한 값을 가지고 있어서 영역과 객체가 일치하는 경우에만 해당 객체에 접근 가능하다.
'자격증 공부노트 > 디지털 포렌식 전문가 2급' 카테고리의 다른 글
[디지털 포렌식 전문가] 9. 파일시스템과 운영체제 _ 프로세스 (0) | 2024.04.27 |
---|---|
[디지털 포렌식 전문가] 8. 파일시스템과 운영체제 _ 디스크 스케줄링 (0) | 2024.04.26 |
[디지털 포렌식 전문가] 6. 컴퓨터 구조와 디지털 저장매체 (2) | 2024.04.19 |
[디지털 포렌식 전문가] 5. 디지털 포렌식 기초실무_디지털 포렌식 관련 법률 (0) | 2024.04.18 |
[디지털 포렌식 전문가] 4. 디지털 포렌식 기초실무_디지털 증거 분석 기술, 포렌식 도구 (0) | 2024.04.15 |