디지털포렌식

파일시스템 기초

ruming 2022. 5. 9. 03:23

파일시스템

저장장치 구조

- 주기억장치

- 가상기억장치

- 보조기억장치

파일시스템 구조

파일시스템 유형

- FAT

- NTFS

- EXT

이미지 파일 통합 분석 도구 장단점 조사

- FTK Imgaer

- Encase

- Forensic Explorer

 

디스크 포렌식에 필요한 파일시스템 기초 지식

포렌식 입문 때 조사한거라 오류 있을 수 있음.

 

파일시스템

컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제

하드디스크나 CD-ROM 같은 실제 자료 보관 장치를 사용해 파일의 물리적 소재를 관리하는 것

파일과 그 안에 든 자료를 저장하고 찾기 쉽도록 유지, 관리하는 방법

저장장치 구조

이미지 출처 : https://twinparadox.tistory.com/310

 

주기억장치 (Main Memory)

프로세스가 올라가는 공간

RAM과 같은 의미로 사용

프로세서가 직접 접근할 수 있는 대량 저장 장치로서 워드의 배열로 구성

*워드 : CPU가 한번에 처리할 수 있는 단위. 운영체제가 32bit시스템이면 워드는 32bit

워드 단위로 CPU와 상호 작용 가능. 상호작용 할 때는 특정 기억장치 주소에 일련의 Load 혹은 Store 명령 등을 통해 수행

적재(Load) : [주기억장치 → CPU 내부의 레지스터]로 한 워드만큼의 데이터를 이동

저장(Store) : [CPU 내부의 레지스터의 내용 → 주기억장치]로 이동

 

하나의 명령이 실행되는 사이클

  1. 기억장치(RAM)로부터 명령을 인출해서 CPU 내부의 명령 레지스터에 저장
  2. CPU가 명령 해독
  3. 피연산자를 CPU 내부의 레지스터에 저장
  4. 명령 실행
  5. 결과를 기억장치에 저장
  • 모든 프로그램과 자료를 영구히 저장하기에는 용량이 적음.
  • 보조기억장치보다 접근 속도가 훨씬 빠름.
  • 휘발성 저장장치 : 전원이 있어야 저장됨.

주기억장치와 CPU 자체에 내장되어 있는 레지스터는 CPU가 직접 접근할 수 있는 유일한 저장장치.

실행 중인 모든 명령과 사용되는 데이터는 CPU가 직접 접근이 가능한 저장 장치 중 하나에 있어야 함.

http://itnovice1.blogspot.com/2019/08/blog-post_78.html  

 

가상기억장치

주기억장치 안의 프로그램 양이 많아질 때, 사용하지 않는 프로그램을 보조기억장치 안의 특별한 영역으로 옮겨서 그 보조기억장치 부분을 주기억장치처럼 사용 가능 → 이 때 사용되는 보조기억장치의 일부분

프로그램을 여러 개의 작은 블록 단위로 나누어서 보관해 놓고, 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당

→ 주기억장치의 크기보다 큰 프로그램 실행 가능

→ 다중 프로그램의 효율 높임.

 

블록 분할 방법

페이징 기법

메인메모리의 용량이 45K일때 동일한 크기(7K)로 분할된 페이지를 주기억장치에 적재 시키면 마지막에 내부 단편화가 발생

내부단편화&외부단편화

  • 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜서 실행
  • 외부 단편화는 발생하지 않지만 내부 단편화는 발생 가능함.

*페이지 : 프로그램을 일정한 크기로 나눈 단위

*페이지 프레임 : 페이지 크기로 일정하게 나눠진 주기억장치의 단위

 

※ 페이지 크기가 작아질수록 발생하는 현상 (커지는 것은 반대)

  1. 페이지 단편화 감소
  2. 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어듦
  3. 프로세스 수행에 필요한 내용만 주 기억장치에 적재 가능
  4. 기억장치 효율성이 높아짐
  5. 페이지 맵 테이블의 크기가 커짐
  6. 매핑 속도가 늦어짐
  7. 입출력 시간의 증가

Segmentation 기법

가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜서 실행

배열이나 함수 등과 같은 논리적인 방법으로 분할한 방법

기억공간을 최대한 낭비없이 효율적으로 사용하기 위해 사용

페이징 기법과 반대 : 내부단편화 x, 마지막에 외부 단편화가 1번 발생할 수도 있음.

 

보조기억장치

프로그램을 영구히 저장할 수 있는 저장장치

일반적으로 프로그램들은 보조기억장치에 저장되며 그 중에서 실행을 한 프로그램이 프로세스가 되어 주기억장치에 적재되어 CPU가 처리해 프로그램이 작동하게 됨.

 

하드 디스크(자기 디스크의 일종), SSD

캐시 메모리, CD-ROM, 자기 테이프

속도, 가격 ,크기, 휘발성 → 장단점 구분

 

파일시스템 유형

FAT (File Allocation Table)

파일을 할당한 정보를 테이블로 표현한 것

FAT12, FAR16, FAT32

*숫자 : 최대 표현 가능한 클러스터의 수를 비트 수로 나타낸 것 (FAT12는 2^12개의 클러스터 표현 가능-예약된 클러스터 12개 제외)

Reserved 영역 : 부트섹터, FSINFO 등의 내용을 표현하거나 사용되지 않는 부분

FAT 영역 : DATA 영역을 효과적으로 관리하기 위해 사용되는 부분

Data 영역 : 실제 데이터가 저장되어 있는 공간

 

FAT16

장점 : 대부분의 MS OS에서 호환이 됨.

단점 : 하나의 파티션으로 최대 2GB밖에 설정을 할 수 없고, 보안이나 암호화 및 압축 기능들을 지원하지 않음.

영문 8문자(한글4문자)까지의 파일 이름 제한

한 클러스터에 1632KB를 할당하여 용량 낭비가 심함.

 

FAT32

FAT 파일 시스템을 보강한 파일시스템

2GB밖에 지원하지 않던 것을 해결 → 2TB까지 지원

영문256문자(한글128문자)까지 파일 이름 지원

클러스터당 4K 배정 → 용량 낭비 줄어듦

단점 : 보안, 암호, 압축 기능 지원X

 

FAT의 장단점

장점

호환성 : NT, DOS, 윈도우 95, 윈도우 3.x등에서 모두 FAT 사용 가능

단순성 : 디스크 용량 많이 소모안함

저용량 볼륨 : 저용량 볼륨에서 최적화

단점

보안에 취약 : 볼륨에 있는 파일에 대한 접근 제어 불가능

대용량 볼륨의 비효율적 이용 : 디스크 공간 이용에 낭비적

 

NTFS(New Technology File System)

윈도우에서 흔히 사용되는 파일시스템

파일 및 폴더는 MBR부분에 하나 또는 이상의 MFT entry가 할당됨. 데이터가 많아져서 MFT 영역을 초과하게 된다면 DATA 영역을 사용해 MFT 영역을 늘림(MBR 크기가 정해져 있지 않음)

VBR 영역 : 부트 섹터와 추가 부트 섹터로 이루어짐

MFT 영역 : 초기에 1024byte 크기로, 파일 및 디렉터리의 MFT entry 정보를 가지고 있음. → 파일의 이름, MAX타임(Modifiend, Accessed, Created), 파일의 실제 위치 등에 대한 정보

 

장점

대용량 볼륨에 대한 효과적 지원 : 빠른 파일 접근

디스크 공간의 효과적 사용 : 작은 클러스터 크기

보안 기능 : 파일과 디렉토리에 권한. 다른 운영체제로 부트하여 보안 기능 통과할 수 없게 할 수 있음.

견고함 : 데이터의 손실을 줄일 수 있음

자동압축 : 특정 파일이나 디렉토리를 자동 압축 가능

향상된 파일 이름 : 대소문자, Unicode 254문자까지 지원.

 

단점

다른 운영체제에서 호환X

저용량 볼륨에서 FAT보다 속도가 느릴 수 있음

 

EXT(Exteded File System)

리눅스에서 사용되는 파일 시스템

Ext : 리눅스 초기에 사용되던 파일시스템. 호환성 없음

Ext2 : 호환성이 좋고 안정성과 속도가 좋음. 리눅스 파일시스템의 대부분의 기능을 제공. 파일 복구에 강함.

파일 시스템의 최대 크기는 2TB~32TB, 서브 디렉토리 개수 제한은 32768개

장점 : fsck를 이용해 시스템 손상시 복구 가능, 간단명료해 사용하기 쉬움

단점

캐시에 저장되어 있는 데이터들을 디스크로 저장하는 도중 문제가 발생할 경우 파일 시스템이 손상됨.

fsck 복구 시간이 오래 걸림.

시스템 복구 기능을 사용하는 동안 다른 시스템 작업을 할 수 없음.

Ext3 : Ext2를 기반으로 개발, 저널링(Journaling)을 지원함. 현재 가장 많이 사용되고 있는 파일시스템

Ext4 : 파일 접근 속도를 향상시키고 단편화를 줄이도록 설계됨.

Block Mapping 방식 대신 Extends 방식을 새로 사용해 조각화 현상을 줄이고 큰 파일 처리가 개선됨.

저널 체크섬 기능이 추가되어 파일 시스템 손상 가능성이 더 줄어듦

온라인 조각모음 지원.

빠른 시스템 검사 지원.

영속적 선행할당 가능.

디스크 공간 할당을 마지막까지 지연하므로 성능 향상

*저널링 : 로그를 만들어서 시스템이 비정상적으로 종료되었을 경우 파일 시스템을 복구하는 기능)

https://hackforus.tistory.com/1

https://aroundck.tistory.com/774  

 

이미지 파일 통합 분석 도구 장단점 조사

FTK Imager

무료 툴

디지털 미디어를 수집하는 데 사용

수집된 데이터 무결성 보장을 위해 비트 단위 또는 비트 스트림으로 알려진 정확한 복사본을 생성

데이터 사전 분석, 정보 검색 RAM 같은 휘발성 데이터 수집 가능

포렌식 이미지는 원본 장치와 일치하는 복사본으로, 파일 슬랙과 비할당된 공간을 포함하며, 삭제된 파일 복구도 가능하다.

포렌식 복제는 이미지를 사용해 조사과정이 수행되므로 원본 미디어를 보존할 수 있다.

 

지원 파일 시스템

ㅇ DVD(UDF)

ㅇ CD(ISO, Joliet, CDSF)

ㅇ FAT(12, 16, 32)

ㅇ exFAT

ㅇ VXFS

ㅇ EXT(2, 3, 4)

ㅇ NTFS(압축 NTFS)

ㅇ HFS, HFS+, HFSX

 

포맷

ㅇ E01, S01, L01

ㅇ AFF

ㅇ AD1

ㅇ RAW/DD

https://k-dfc.tistory.com/34

Encase

지원 파일 시스템

  • FAT12, FAT16, FAT32
  • NTFS
  • EXT2,EXT3
  • CDFS
  • HFS, HFS+(MAC파일시스템)
  • PALM(Palm-PAD파일시스템)
  • UFS(unix 파일시스템)

https://blog.pages.kr/519

NIST의 CFTT를 받아 법률적인 영향이 있음(분석 보고서가 법적으로 인정될 가능성이 높음)

장점 : 이미지파일 변경없이 가상으로 파티션을 생성하여 복구하기 때문에 해시값이 달라지지 않는다.

종합 분석 도구 : 레지스트리, 프리패치, 인터넷 사용 흔적 등과 같은 기능이 분석하는데 큰 도움X

Forensic Explorer

가장 성능이 좋은 도구

수집될 수 있는 아티팩트 종류별로 탭을 분류하여 직관적인 인터페이스를 사용하기에 다른 도구들보다 편의성이 높음.

레지스트리 분석의 경우 자동 파싱하여 중요 키 정보를 출력하는 기능 지원

http://forensic.korea.ac.kr/DFWIKI/index.php/통합_디지털_포렌식_도구