파일카빙 기법에 관한 연구(2008)

Hunjison·2022년 3월 8일
0

Reading Papers

목록 보기
12/18

2008년에 나온 논문이지만, 국내에서 포렌식하면 알아주는 분들이 남기신 논문이라 읽고 메모해둔다. 블로그를 쓰게 된 계기는 대부분의 블로그가 복사-붙여넣기로 대략적인 내용을 서술하고 있지만 정확히 논문에 나온 요지를 전달하고 있지 않기 때문이다.


이 논문은 연속적인 카빙 기법에 초점을 맞춘다.

Ram-Slack 카빙

우선 Ram-Slack은 헤더와 푸터가 모두 존재하는 포맷을 대상으로 적용할 수 있다.

RAM에 상주하는 데이터가 저장매체에 저장될 때 섹터 단위로 저장되는 특성 때문에 발생한다. 데이터가 저장될 때 섹터 단위로 저장이 되고 남은 섹터 부분은 0x00으로 채우는데, 이것을 이용하는 것이다. 핵심은 파일의 푸터 시그니처 뒤에 섹터의 끝 영역까지 0x00으로 채워진 데이터가 와야 한다는 것이다. 이렇게 했을 때에 false-positive를 줄일 수 있다는 것이 Ram-Slack이다.

File-Structure 카빙

File-Structure 카빙 기법은 푸터 시그니처가 존재하지 않거나 파일데이터 내에 여러 개의 시그니처가 존재하는 경우에 사용된다. 파일의 구조를 분석하는 기법을 사용한다.

논문에서는 크게 1) 파일크기 획득 방법 2) 파일 구조 검증 방법으로 나누어 보고 있다.
1)의 경우에는 파일 구조체에서 "크기" 부분만으로 빠르게 카빙을 수행하는 방법이다. 속도가 빠르다는 장점이 있으나, 파일의 종류에 따라 오탐의 가능성도 종종 있다고 한다. 파일의 크기가 큰 포맷에서 주로 사용된다고 한다.
2)의 경우에는 파일의 시작 위치를 찾은 후, 계층 구조를 검증하여(계층의 시그니처를 보는 것도 하나의 예) 올바른 구조를 가지고 있는지 파악한 뒤에 파일 카빙을 실시한다. 당연히 정확성이 올라가는 대신에 속도가 내려간다.

두 가지 방법은 모두 장단점이 존재하므로, 파일 확장자별로 미리 구조를 분석해서 어떤 확장자에 어떤 기법을 쓸지 정하는 것이 중요하다고 하겠다.

profile
비전공자 출신 화이트햇 해커

0개의 댓글