-
File Carving 이란?$ 포렌식 $/$ 포렌식 기술적 이론 $ 2019. 6. 12. 20:21
이번에는 File Carving 이라는 단어에 대해서 이야기 해보겠습니다.
파일 카빙( File Carving )
matadata 보다는 파일 자체의 바이너리 데이터(content, signature, header, ... )를 이용해 디스크의 비활당 영역에서 파일을 복구하는 방식을 파일 카빙이라고 합니다.
* 파일이 디스크에 분할되어 저장되어 있는 경우, 비연속적 카빙을 사용해야 합니다.
쉽게 이야기 해서 바이너리 데이터에서 정보 획득 후 할당 되지 않은 영역에서 파일을 복구를 이야기 합니다.
연속적인 카빙과 비연속 적인 카빙에 대한 차이는 파일이 저장될 때 분할이 되서 저장 되는가 아닌가에 차이를 둔다.
또한 파일 카빙은 시그니처 기반 카빙, 램 슬랙 카빙, 파일 구조체 카빙, 파일 크기 획득 방법 기반의 카빙, 파일 구조 검증 방법 기반의 카빙 등이 있습니다.
시그니처 기반 카빙 :
파일 카빙은 메타 데이터를 이용 하지 않기 때문에 고유의 특성으로 복구를 해야하는데 각 파일의 포맷 별로 존재하는 파일 시그니처를 이용하는 방법입니다.
시그니처는 Header 시그니처와 Footer 시그니처가 존재 합니다.
Header 시그니처를 시작으로 Footer 시그니처를 확인 할 수 있다면 그 사이의 데이터는 해당 시그니처에 해당하는 파일 일것입니다.
램 슬랙 카빙 :
램 슬랙이란?
파일의 내용을 디스크에 기록할 때 512의 배수가 되지 않아 생긴 0x00 영역을 이야기 합니다.
Footer 시그니처 이후에 램 슬랙이 대체로 존재 하는데, 램 슬랙 카빙을 바탕으로 Footer 시그니처와 램 슬랙을 확인이 가능하면 많은 오탐을 줄일 수 있습니다.
파일 구조체 카빙 :
파일의 미리보기를 제공하는 파일에는 실제 내용 이외에도 파일 포맷에 썸네일 을 포함합니다.
실제 파일의 포맷과 썸네일의 파일 포멧이 동일한 구조로 이루어져 있습니다.
파일의 포맷에 Header 시그니처는 존재 하지만 Footer 시그니처가 존재 하지 않을 때 파일 포맷 내부에 존재하는 여러개의 시그니처를 보고 구조를 분석하는 기법으로 통하고 있습니다. 파일 구조체 카빙 안에서 파일 크기 획득 방법과 파일 구조 검증 방법이 있습니다.
파일 크기 획득 방법 기반 카빙 :
파일은 대부분 데이터 표현을 하기 위해서 가장 맨 윗단에 파일 구조체가 존재 합니다.
파일의 구조체 안에 파일의 크기를 알려주는 부분이 존재 합니다. 파일 구조체에서 제공해 주는 정보를 획득하여 카빙하는 방법입니다.
파일 구조 검증 방법 기반 카빙 :
문서 파일과 같이 빈번한 수정이 이루어 지는 경우에 데이터 표현을 위해 고유한 계층 구조를 사용하는데 파일 구조 검증은 이러한 계층 구조를 검증해서 카빙하는 방식 입니다.
특히 Microsoft 복합 문서나 압축 파일 같은 경우에는 계층 구조 마다 고유한 시그니처가 존재 합니다.
그래서 파일의 시작위치를 지정하고 계층 구조를 확인해 가면서 옳바른 구조라면 정상적인 파일이다 라고 판단을 내릴 수 있습니다.
'$ 포렌식 $ > $ 포렌식 기술적 이론 $' 카테고리의 다른 글
썸네일 포렌식(Thumbnail Forensics) (0) 2019.07.07 MBR (Master Boot Record) (0) 2019.06.24 하드디스크(Hard Disk Drive, HDD) 구조와 작동 원리 및 각종 규격 (0) 2019.06.24 FTK Imager을 이용해서 디스크 이미지 만들기 (3) 2019.06.13 포렌식 분석에서 중요한 타임 스탬프(Time Stemp)!! (0) 2019.06.09