파일 카빙
IT 위키
- File Carving; 카빙
- 파일시스템의 메타데이터에 의존하지 않고, 저장매체의 비구조화된 데이터 스트림에서 파일의 시그니처와 구조만으로 파일을 식별·복원하는 기법
파일을 삭제하면 디렉터리 엔트리나 아이노드 같은 메타데이터는 지워지지만, 실제 데이터가 기록된 영역은 다른 파일에 덮어쓰이기 전까지 그대로 남는다. 카빙은 이 남아 있는 영역을 직접 훑어 의미 있는 내용을 추출한다. 슬랙 공간, 비할당 영역, 포맷된 디스크 등 파일시스템 정보를 쓸 수 없는 상황에서 사용한다.
- 헤더-푸터 카빙 (Header-Footer Carving)
- 파일 종류마다 고정된 시그니처(매직 넘버)를 찾아 헤더부터 푸터까지를 하나의 파일로 추출한다.
- 가장 기본적이고 널리 쓰이는 방식이다.
- 시그니처 예시
- JPEG : FF D8 FF ~ FF D9
- PNG : 89 50 4E 47 ~ 49 45 4E 44 AE 42 60 82
- GIF : 47 49 46 38 ~ 00 3B
- PDF : 25 50 44 46 ~ 25 25 45 4F 46
- ZIP : 50 4B 03 04
- 파일 구조 기반 카빙 (File Structure Based Carving)
- 헤더에 기록된 길이 정보나 내부 블록 구조를 해석해 파일의 끝을 판정한다.
- 푸터가 정의되어 있지 않은 포맷(BMP, WAV 등)에 유효하다.
- 콘텐츠 기반 카빙 (Content Based Carving)
- 문자 집합, 엔트로피, 통계적 특성 등 데이터의 성격을 분석해 영역을 구분한다.
- 시그니처가 손상된 경우에도 적용할 수 있다.
- 단편화(Fragmentation)
- 파일이 연속되지 않은 클러스터에 흩어져 저장된 경우, 헤더-푸터 방식으로는 온전한 파일을 얻지 못한다.
- 단편화를 고려한 스마트 카빙(SmartCarving) 기법이 연구되고 있다.
- 덮어쓰기
- 해당 영역이 다른 파일에 재사용되었다면 복구가 불가능하다.
- 오탐
- 시그니처와 동일한 바이트열이 우연히 나타나면 잘못된 파일이 추출된다.
- Foremost
- Scalpel
- PhotoRec
- Encase, FTK 등 통합 포렌식 도구의 카빙 기능
