개요
파일들은 각각 고유한 포맷을 가지고 있으며, 포맷에서 기본이 되는 내용을 파일 시그니처(File Signature)라 부른다. 파일 시그니처는 파일의 가장 처음에 위치하는 특정 바이트로 파일 포맷을 구분하기 위해 사용된다. 파일 시그니처는 파일 포맷에 따라 처음에만 존재하는 경우도 있지만, 마지막에도 존재하는 경우도 있다. 파일의 처음에 존재하는 시그니처는 보통 헤더(Header) 시그니처라 부르며, 파일의 마지막에 존재하는 시그니처는 푸터(Footer or Tailer)시그니처라고 부른다. 파일 시그니처는 파일 포맷 분석, 악성코드 분석, 파일 복구등에 중요하게 사용된다.
Scalpel은 앞서 설명한 파일 시그니처를 기반으로 삭제 된 데이터를 복구하기위한 오픈 소스 도구이다.
테스트 환경
운영 체제 (OS) : Kali Linux 1.0.3 테스트에 사용된 도구 버전 : v1.60 |
상세 분석
아래는 -h 옵션을 적용하여, Scalpel에서 사용 가능한 옵션 정보를 확인하였다.
[옵션은 이후 추가 작성 예정!!]
scalpel을 사용하기 위해서는 설정 파일을 변경하거나 추가 시켜줘야한다. scalpel 설정 파일은 /etc/scalpel/ scalpel.conf 파일로 존재한다. scalpel.conf 파일은 각 파일 포맷의 시그니처들을 정의해 놓은 파일로, vi 에디터로 열어 보면 아래와 같이 파일 포맷의 시그니처들을 확인할 수 있다. 파일 포맷 시그니처는 다음과 같은 형식으로 작성되어 있다.
파일 포맷 | y | max carve size | 헤더 시그니처 | 푸더 시그니처 |
여기서는 디스크 이미지 파일에서 삭제된 JPG 파일을 복구한다는 조건하에 진행하겠다. scalpel.conf 파일에서 아래와 같이 jpg 앞에 존재하는 주석 (#)을 삭제한 후 jpg 파일 시그니처를 입력한다. 주석을 삭제하면, scalpel을 이용하여 삭제된 파일을 복구시 삭제된 데이터 중 해당 시그니처가 존재할 경우 파일을 복구시킨다.
[JPG 파일의 헤더 시그니처]
[JPG 파일의 푸더 시그니처]
앞에서 언급한 scalpel.conf 파일에서 jpg 파일 헤더 시그니처가 1가지가 아닌것에 대해 의문이 생길것이다. jpg 파일 헤더 시그니처를 자세히 살펴 보면, 파일 헤더 시그니처에서 앞의 3개 16진수(xff xd8 xff)는 동일하지만, 마지막 4번째 16진수는 모두 다른것을 확인 할 수 있다. 마지막 4번째 16진수의 의미는 JPEG 콘텐츠를 나타내며, 그 내용은 아래와 같다.
FF-D8-FF-DB | 삼성전자 SGH-D807 JPEG 파일 (GSM폰) |
FF-D8-FF-E0 | 표준 JPEG/JFIF 파일 |
FF-D8-FF-E1 | 표준 JPEG/JFIF 파일 |
FF-D8-FF-E2 | Canon EOS-1D JPEG 파일 |
FF-D8-FF-E3 | 삼성전자 SGH-D500 JPEG 파일 (GSM폰) |
FF-D8-FF-E8 | Still Picture Interchange File Format (SPIFF) |
scalpel.conf 파일을 수정하였다면, 본격적으로 scalpel을 이용하여 삭제된 jpg 파일을 복구하여보자. 필자는 현재 사용하고 있는 Kali Linux의 부트 파티션을 이용하였다.
scalpel 사용법은 아래와 같다.
root@DarkSoul:~# scalpel [옵션] [디스크 파티션] |
복구된 이미지 파일은 각 폴더를 생성하여 저장하는데. 각 폴더 마다 1000개의 파일을 저장한다. 참고로 복구된 파일 및 로그 파일이 저장되는 output 디렉터리를 동일하게 지정한 후 scalpel를 실행 시키면 아래와 같이 에러 메시지를 출력한다.
참고 URL 및 도서
- http://www.filesignatures.net/
- http://www.garykessler.net/library/file_sigs.html
- http://www.garykessler.net/library/file_sigs.html#acks
- http://www.faqs.org/faqs/jpeg-faq/part1/section-15.html
- http://en.wikipedia.org/wiki/JPEG
Installing VMware Tools in Kali (0) | 2013.08.20 |
---|---|
Kali Linux Summer Update Release (v1.0.4) (0) | 2013.08.14 |
Kali Linux Password Recovery (0) | 2013.07.04 |
[Network Sniffers] Netsniff-NG Tool Kit (2) - flowtop On Kali Linux (0) | 2013.07.02 |
[Network Sniffers] Netsniff-NG Tool Kit (2) - ifpps On Kali Linux (0) | 2013.07.01 |