What is File Carving?
파일 카빙 (File Carving)
: metadata 보다는 파일 자체의 바이너리 데이터(content, signature, header ...)를 이용하여 디스크의 비할당 영역에서 파일을 복구하는 방식
** 파일이 디스크에 분할되어 저장되어 있는 경우, 비연속적 카빙을 사용해야 함
> 바이너리 데이터에서 정보 획득 후 할당되지 않은 영역에서 파일을 복구
- 연속적인 카빙 vs 비연속적 카빙 차이: 파일이 저장될 때 분할이 되어서 저장되는가/아닌가에 차이를 둔다.
* 종류
1. 시그니처 기반 카빙
파일 카빙은 metadata를 이용하지 않기 때문에 고유의 특성으로 복구해야 한다.
>> 각 파일의 포맷별로 존재하는 파일 시그니처를 이용하는 방법
- 시그니처는 1) Header 시그니처, 2) Footer 시그니처 가 존재한다.
- Header 시그니처를 시작으로 Footer 시그니처를 확인할 수 있다면 그 사이의 데이터는 해당 시그니처에 해당하는 파일일 것!
2. 램 슬랙 카빙
** 램 슬랙: 파일 내용을 디스크에 기록할 때 512의 배수가 되지 않아 생긴 0x00 영역을 뜻함
>> Footer 시그니처 이후에 램 슬랙이 대체로 존재하는데, 램 슬랙 카빙을 바탕으로 Footer 시그니처와 램 슬랙을 확인할 수 있으면
많은 오탐을 줄일 수 있다.
3. 파일 구조체 카빙
- 파일의 미리보기를 제공하는 파일에는 실제 내용 이외에도 파일 포맷에 썸네일을 포함한다.
- 실제 파일의 포맷과 썸네일의 파일 포맷은 동일 구조로 이루어져 있다.
>> 파일 포맷에 Header 시그니처는 존재하지만, Footer 시그니처가 존재하지 않을 때 파일 포맷 내부에 존재하는 여러 개의 시그니처를 보고 구조를 분석하는 기법
1) 파일 크기 획득 방법 기반의 카빙
- 파일은 대부분 데이터 표현을 위해서 가장 맨 윗단에 파일 구조체가 존재한다.
- 파일의 구조체 안에 파일의 크기를 알려주는 부분이 존재한다.
>> 파일 구조체에서 제공해주는 파일 크기 정보를 획득하여 카빙하는 방법
2) 파일 구조 검증 방법 기반의 카빙
- 문서 파일과 같이 빈번한 수정이 이뤄지는 경우에 데이터 표현을 위해서 고유한 계층 구조를 사용한다.
>> 이러한 계층 구조를 검증해서 카빙하는 방법
- 특히 Microsoft 복합 문서, 압축 파일 같은 경우에 계층 구조마다 고유한 시그니처가 존재
- 파일의 시작 위치를 지정하고 계층 구조를 확인해가면서 올바른 구조라면 '정상적인 파일이다' 라고 판단을 내릴 수 있다.
'디지털포렌식' 카테고리의 다른 글
[USB 파일 복구 툴 제작] USB 분석 (0) | 2020.04.05 |
---|---|
파일 카빙을 통한 데이터 복구 (0) | 2020.04.05 |
[USB 파일 복구 툴 제작] 1. USB 장치 인식 절차 (0) | 2020.04.04 |
댓글