파일시스템이란?
컴퓨터들은 데이터를 장기간 저장할 방법과, 데이터를 검색할 수 있는 방법이 필요했습니다. 파일시스템은 사용자들에게 파일과 디렉토리에 데이터를 자장할 수 있도록 장치를 제공하며, 파일시스템은 컴퓨터가 그 데이터들을 어디서 찾을 수 있는지를 알려주는 구조적 데이터와 사용자 데이터로 구성됩니다. 대부분의 경우 파일시스템은 특정 컴퓨터로부터 독립적입니다.
파일시스템은 기록-저장 방법과 비슷합니다. 파일시스템은 플로피디스크에 파일 한 개을 저장하건, 다중 디스크 내에 수 만개의 파일을 저장하는데 사용됩니다. 각 파일시스템 요소는 고유의 크기를 갖지만, 기본적인 구조체는 그 파일시스템 타입을 지원하는 어떤 컴퓨터든지 그 크기를 처리하도록 합니다.
파일시스템 분석은?
파일시스템 분석은 볼륨(파티션 또는 디스크 등)의 내부 데이터를 조사하고, 파일시스템을 해석하는 것이며, 디펙토리에 파일 목록을 작성하거나, 지워진 파일을 복구하고, 섹터의 내용을 확인하는 것입니다.
파일의 상태정보
모든 파일은 그 파일 내에 저장되는 내용 외에도 그 파일에 대한 상태 정보를 수반하게 됩니다. 이와 같은 파일의 상태 정보들로는 대표적으로 다음과 같은 것들이 있습니다.
파일 이름 (File name)
파일 종류 (File type)
파일의 크기 (File Size)
파일 생성시간 (Created time)
최근 파일 접근 시간 (Last Accessed time)
최근 파일 갱신 시간 (Modified time)
파일의 소유자 (File owner)
파일 속성(Attributes) 또는 접근 권한(Access rights)
파일의 저장 위치 (Physical location)
파일시스템의 유형(FAT, NTFS)
FAT 파일시스템
FAT(File Allocation Table) 파일시스템은 1976년에 Microsoft의 빌 게이츠에 의해 최초로 구현되었습니다. 빌 게이츠가 FAT 파일시스템을 구현하게 된 목적은 자신의 회사 제품인 BASIC에서 플로피디스크를 관리하는데 이용하기 위해서였습니다. 이것이 FAT 파일시 스템의 최초 버전인 FAT12의 시작입니다. 이런 FAT 파일시스템이 정작 PC 환경에서 널리 쓰이게 된 계기는 Tim Paterson이 QDOS라는 운영체제를 개발하면서 FAT 파일시스템을 선택했기 때문입니다. 그 이유는 FAT 파일시스템이 매우 단순한 구조를 가지고 있었기 때문이다. 이를 계기로 FAT 파일시스템은 자연스럽게 PC에서 가장 많이 쓰이는 파일시스템으로 자리를 잡게 되었다.
FAT12
• FAT 파일시스템의 최초의 표준
• 플로피디스크에 파일을 저장하기 위해 개발됨
FAT16
• 하드디스크를 지원하기 위해 개발됨
• 최대 클러스터 개수가 65,535개로 늘어남으로 인해 최대 2GBytes까지 지원
VFAT
• 32bit 보호모드에 적합하도록 수정하여 성능 향상
• LFNs(Long File Names) 지원
FAT32
• 최대파일 크기 4GBytes 지원
• 최대 볼륨 크기를 2TBytes 지원
exFAT(Extended FAT)
・FAT32의 한계를 극복하고자 개발되었으며 고용량의 플래시 메모리 미디어를 위한 파일시스템
・여유공간 계산과 파일 삭제 또한 빨라짐 • exFAT는 특허 출원 중인 사유 파일시스템으로, Microsoft사가 Windows CE 6.0 장치와 Windows Vista 서비스 팩 1 및 Windows 7 이상의 데스크톱 운영체제 그리고 자사의 Windows 서버 2008 이상의 서버 운영체제에 도입하기 위해 만들어짐 • exFAT는 NTFS 파일시스템이 자료구조 오버헤드 등의 문제로 적절치 못할 경우, 또는 이전 버전인 FAT 파일 시스템의 파일 크기/디렉토리 제약이 문제가 되는 경 우에 사용가능
• Windows XP와 Windows Server 2003 사용자들은 Microsoft사로부터 업데이트 KB955704 를 내려받아 설치하면 exFAT 지원을 사용가능
• 이론적인 최대 볼륨크기 최대 64ZBytes, 권장 최대 512TBytes 지원
• 이론적인 최대 파일크기 최대 64ZBytes, 권장 최대 512TBytes 지원
• UTC 시간표 지원 (Windows Vista SP2부터 지원)
• 한 디렉터리에 최대 2,796,202개의 파일을 담을 수 있음
FAT 표준의 주요 특징
여러 파일시스템 중 가장 간단한 구조를 가지고 있음.
볼륨 맨 위에 존재하는 FAT(파일 할당 테이블) 영역에서 파일들을 관리함
FAT영역이 손상되는 것을 방지하기 위해 FAT1/2로 나누어 복사본을 관리
데이터 영역은 클러스터로 관리하고, 이외의 영역은 섹터 단위로 관리함
FAT을 업데이트하는 과정에서 오버헤드가 큼
매우 적은 오버헤드로 시작하기 때문에 200MB 미만의 드라이브/파티션에 적합함
디지털카메라, 게임기, Microsoft Windows 계열 운영체제와 Linux, OS X 등과 같은 다양한 운영체제에서 사용할 때 호환성이 좋은 편임
FAT(파일 할당 테이블) 구조
• Boot Sector: 운영체제의 부트로더가 들어 있는 부분입니다. 따라서 전원을 켜고 MRB 또는 마스터 부트 레코드 파티션 테이블을 사용하는 컴퓨터 장치를 담당합니다. 예약 섹터라고도 합니다.
• FAT 영역: 이 부분은 시스템이 각 데이터 스트림에 특정 클러스터를 할당할 수 있도록 파일 할당 테이블에서 파일의 복사본을 식별합니다
• 데이터 영역: 이미지, 문서, 오디오 파일 또는 기타 미디어 파일과 같이 사용하는 데이터가 저장되는 곳입니다. 또한 일반적으로 가장 많은 클러스터와 FAT 파티션의 대부분을 차지하는 부분이기도 합니다.
• 루트 디렉터리 영역: 이 섹터는 파일 및 해당 디렉터리에 관한 정보를 지정하는 디렉터리 테이블에 가깝습니다. 이것은 FAT32가 데이터 영역에 루트 디렉토리를 저장하기 때문에 주로 FAT16 및 FAT12에서 발견됩니다.
NTFS 파일시스템
NTFS(New Technology File System)는 Windows NT부터 XP, 2000, 2003, 2008, Vista, 7, 8,10에 이르기까지 사용되고 있다. Windows NT는 Windows 95, 98에서 개인 사용자를 겨냥하던 Microsoft사가 최초로 출시한 서버형 운영체제입니다. Windows NT가 개발되면서 FAT의 구조상의 한계점을 개선하기 위한 새로운 파일시스템인 NTFS가 함께 개발 되었습니다. NTFS는 FAT와 OS/2에서 사용되던 HPFS(High Performance File Systern)의 내 용을 기반으로 개발되었으며, 이후 운영체제의 발전에 따라 많은 발전을 거듭해왔다.
NTFS는 이전 FAT32 파일 시스템에 비해 디스크 관련 오류로부터 자동적으로 복구할 수 있는 기능, 대용량 하드 디스크에 대한 지원 개선, 보안 강화로 사용 권한 및 암호화 를 통해 특정 파일에 대한 특정 사용자의 액세스 제한 등의 장점을 가지고 있다. FAT32 에는 NTFS와 같은 보안 관련 기능이 없으므로 Windows 7에서 FAT32 하드 디스크 또는 파티션을 가지고 있다면 사용자의 컴퓨터에 액세스하는 사람은 누구나 컴퓨터의 파일을 읽을 수 있다. FAT32에는 용량 제한도 있습니다. 사용자는 FAT32 파티션에 저장 하는 단일 파일의 크기가 4GB를 초과할 수 없습니다. 일반적으로 파티션을 FAT32 파일 시스템에서 NTFS로 변환할 수 있다."
NTFS 1.0
Windows NT의 최초 판매 버전인 Windows NT 3.1에 포함된 버전으로 최초로 공개된 버전.
NTFS 1.2
Windows NT 4.0에 포함된 버전. NT 4.0이 나온 뒤 Windows NT가 많이 사용되기 시 작하면서 실제적으로 가장 널리 쓰이고 있는 버전
NTFS 3.0(NTFS 5.0)
Windows 2000 (Windows NT 5.0)에 포함된 버전으로 다음과 같은 기능들이 추가됨
- Reparse Point 지원 -개선된 보안과 권한
- 개선된 보안과 권한
- 변경 일지(Change Journals) 기능
- 암호화
- 디스크 쿼터(Disk Quota) 기능
-Sparse 파일 지원
-디스크 조각 모음 지원
NTFS 3.1(NTFS 5.1)
Windows XP와 Windows Server 2003에 포함된 버전. 기본적으로 5.0과 거의 동일하며 호환 가능하다.
NTFS 구조
NTFS의 가장 큰 특징은 모든 데이터를 파일 형태로 관리한다는 점입니다. 이로 인해 파 일시스템 관리 데이터 역시 데이터 영역에 파일 형태로 관리되며, 다른 파일시스템처럼 정형화된 볼륨 레이아웃이 존재하지 않습니다. NTFS에서 유일하게 위치가 고정되어 있는 영역은 Boat Record 영역입니다.
Boot Record: 이 영역은 반드시 볼륨의 첫 번째 섹터에 위치해야 한다. 이 영역에는 부팅을 위한 로드(기제어)와 NTFS의 설정 값들이 있습니다. 사용자는 Boot Record를 분석함으로써 볼륨의 크기, 클러스터 크기, MFT의 시작 주소와 같은 중요한 정보를 알 수 있습니다.
MFT(Master File Table): NTFS에서 가장 중요한 부분으로, NTFS는 정형화된 볼륨 구조 대신 MFT가 존재하 는데 이는 볼륨에 존재하는 모든 파일과 디렉터리 정보를 담고 있습니다. MFT는 데이터 영역에 존재하는 파일로 관리되며, MFT Entry라는 자료들의 집합으로 구성 됩니다. MFT Entry는 0번부터 시작하는 고유한 주소를 가지며, 0번부터 15번까지의 16개 MFT Entry는 시스템 파일용으로 예약되어 있습니다.
Data Area: 파일과 디렉터리를 담는 영역으로 FAT 파일시스템과 같이 클러스터 단위로 읽기/쓰 기가 이루어진다. NTFS는 볼륨의 크기가 크더라도 클러스터 크기를 4,096Bytes로 고정 하는데 이는 NTFS의 압축 기능과 관련된다.
NTFS 특징
데이터 복구 기능
NTFS는 데이터의 신뢰성을 높이기 위해서 볼륨에 수행하는 모든 작업에 대해 트랜 잭션 단위로 기록하고 있습니다. 이는 작업 도중에 어떤 문제가 발생하였을 경우 이런 기록을 조사해 봄으로써 볼륨의 상태를 정상적으로 복구할 수 있게 합니다.
암호화 기능
암호화 기능을 EFS(Encrypting File System)라고 부릅니다. 이는 5.0 버전 이후부터 지원 하며, EFS는 인증 받지 않은 사용자들이나 프로그램으로부터 사용자의 데이터를 보호 해 줍니다. 파일을 암호화할 때는 암호화 키 (FEK)"로 암호화합니다. 이 FEK를 파일을 암 호화한 사용자가 가진 공개 키로 암호화해 암호화된 파일의 SEFS 대체 데이터 스트림 (Alternate Data Stream, ADS)에 저장합니다. 파일을 복호화 할 때는 EFS 컴포넌트 드라이버가 파일 암호화에 사용했던 EFS 인증서에 맞는 개인 키로 SEFS 스트림에 저장된 암호화된 FEK를 복호화합니다. 그 다음 암호화가 풀린 FEK 대칭 키로 파일을 복호화합니다.
암호화와 복호화가 NTFS 단계 아래에서 이루어지기 때문에 사용자와 프로그램은 암호화된 파일을 일반 파일처럼 쓸 수 있습니다. 파일 시스템에서 폴더에 암호화 속성을 걸 수 있습니다. EFS 컴포넌트 드라이버는 이 암호화 속성을 NTFS의 권한 상속처럼 다룹니다. 예를 들어 암호화 속성이 걸린 폴더가 있고 그 안에 새로운 파일이나 폴더를 만들면 기본적 으로 모두 암호화가 걸립니다. 암호화된 파일을 NTFS 볼륨 안에서 옮겨도 암호화 속성은 유지됩니다.
압축
NTFS는 파일시스템 수준의 압축 기능을 제공합다. 압축 알고리즘은 ZIP 파일 포맷으 로 유명한 'LZ77'의 변형된 방식을 사용합니다.
디스크 쿼터
사용자마다 디스크의 사용량을 제한하는 기능입니다. NTFS는 다수의 사용자들이 하나 의 컴퓨터를 쓰는 것을 기본으로 설계했는데, 다른 사람이 디스크 용량을 모두 다 사용하는 것을 막기 위해 관리자가 사용자들마다 할당량을 설정할 수 있게 한 것입니다.
ADS(Altemate Data Stream)
NTFS는 다중 데이터 스트림을 지원한다. 이것은 하나의 파일이 하나 이상의 데이터 를 담을 수 있다는 의미입니다. 예를 들어 파일의 첫 번째 스트림에는 파일의 내용을 담고, 두 번째 스트림에는 파일의 요약 정보나 파일의 아이콘 등 여러 정보를 담아 둘 수 있습니다. 파일에 추가된 ADS는 Windows 탐색기를 통해 확인할 수가 없어 정보 은닉 용도로 사용될 수 있습니다.
Sparse 파일
이것은 파일의 내용이 대부분 ()으로 차있을 경우 해당 파일의 내용을 그대로 볼륨에 저장하지 않고, 그 정보만을 유지하는 파일을 말합니다. 예를 들어 1MB의 파일의 맨 처음 4KB에만 의미 있는 데이터가 있고 나머지에는 전부 0이 적혀 있다면, 이 파일에는 의미 있는 4KB만을 저장하고 나머지 영역이 0으로 채워져 있다는 정보만을 기록합니다.
대용량 파일 지원
NTFS는 이론상 무려 Exa Byte(2의 64승)까지의 용량을 표현할 수 있습니다. 그러나 이것은 이론상의 값이며, 실제는 2의 44승 약 16TB 정도까지 표현할 수 있는 크기입니다.
vSS(Volume Shadow Copy Service) 지원
새롭게 수정된 파일 및 폴더에 대해 백업본을 유지하는 기능
동적 Bad Cluster 재할당
Bad Sector가 발생한 클러스터에 있는 정상 데이터를 자동으로 새롭게 할당한 클러스 터에 복사하는 기능
Unicode 지원
#디지털포렌식 #포렌식 #컴퓨터일반 #파일시스템
'IT_TOOL' 카테고리의 다른 글
데이터베이스와 SQL (0) | 2023.05.24 |
---|---|
운영체제를 알면 좋아요. (0) | 2023.05.24 |
전자적 증거의 의의와 특성 (0) | 2023.05.10 |
디지털 포렌식에 필요한 기술은? (0) | 2023.05.09 |
디지털 포렌식 수행과정은? (0) | 2023.05.09 |