리눅스 포렌식 두번째입니다

파일 복구 관련 내용을 포스팅 하기로 했죠..

 

파일이 오픈되어 메모리상에 올라와 있을경우 해당 파일이 삭제되도러도 복구가 가능한 상태가 있는데요..이런경우 어떻게 하는지 알아보겟습니다.

현재 프로세스 정보는 /proc/<PID>에서 확인 가능합니다.

 

메모리상에 올라온 파일 점유시 /proc 디렉토리 상태

#cd /proc/<PID>/fd  <PID>는 해당 프로세스 번호입니다.

#ls -al

lrwx------ 1 root root 64 Apr 29 13:03 3 -> /dev/tty

lrwx------ 1 root root 64 Apr 29 13:03 4 -> /root/hidden.txt

 

메모리상 올라온 파일 삭제시 /proc 디렉토리 상태

# ls -al

lrwx------ 1 root root 64 Apr 29 13:03 3 -> /dev/tty

lrwx------ 1 root root 64 Apr 29 13:03 4 -> /root/hidden.txt (deleted)

 

삭제된 파일의 복구는 파일 디스크립터 번호만 복사해 주는 것으로 가능

# ls -al

lrwx------ 1 root root 64 Apr 29 13:03 3 -> /dev/tty

lrwx------ 1 root root 64 Apr 29 13:03 4 -> /root/hidden.txt (deleted)

#cp 4 /tmp/4.recovered

 

이제 파일시스템 상의 삭제 파일복구에 대해 알아보기로 합니다.

리눅스 자체적으로 지원하는 파일시스템의 삭제파일 복구는 debugfs를 이용 합니다.

대부분의 리눅스 배포본에서 기본적으로 설치 되어 있습니다.

 

ext2파일 시스템에서는 특정 파일이 삭제시 실제 파일은 데이터 블록에 그대로 위치 하며,

i-node 테이블의 정보맘ㄴ 삭제되어 복구 가능합니다.

 

ext3 시스템에서는 i-node테이블 정보뿐만 아니라 디렉토리 엔트리, 해당 블록의 주소 정보까지 지워짐으로 파일의 위치정보가 대부분 삭제 됩니다. Logdump 이용 방법이 있으나 완벽하지 않습니다.

 

 

ext2에서 debugfs를 이용한 파일 복구를 알아봅니다.

안전한 파일 복구를 위해 마운트된 파티션을 해지하고 작업하도록 합니다.

# debugfs /dev/hda3

debugfs 1.39 (29-May-2006)

debugfs:  è debugfs 명령 프롬프트

debugfs:  lsdel è 삭제된 파일 리스트

 Inode  Owner  Mode    Size    Blocks   Time deleted

   22       0  100644  58313   13 / 13 Sat Apr 4  13:00:02 2009

43       0  100644   3013    4 /  4 Sat Apr 4  13:03:02 2009

16       0  100644   5413   13 / 13 Sat Apr 4  13:10:02 2009

3 deleted inodes found.

 

debugfs : stat <16> è 삭제된 파일의 상세 정보확인

: i-node, mode, MAC Time,  Size 등 정보 출력, < > 사용 필수

 

복구는 dump 명령어 이용하며 비 할당 영역에 위치한 파일을 지정된 파일명으로 복구한다.

 

debugfs : dum <16> /recover/16.dumped (16 stat 명령으로 확인한 i-node 번호)

debugfs : quit

 

# ls –al /recover/16.dumped

-rw-r--r--  1 root    root     5413 Apr 29 22:24 /recover/16.dumped

위와 같이 복구 되었음을 확인할수 있다.

 

그러면 리눅스 기반의 포렌식 도구들은 어떤게 있을까..

 

일단 command 기반 포렌식 도구들을 살펴보면..

 

l  The Coroner’s Tool kit

: 초기 유닉스 기반의 포레식 toolkit으로 리눅스에서 사용가능하며, 뒤에 나오는 포렌식 tool에 영향

l  The Sleuth Kit

: TCT 기반으로 리눅스뿐만 아니라 윈도우 용으로 개발되어 배포 되고 있음.

l  Foremost, Scalpel

: 파일 복구전용 Toolkit으로 삭제,손상 파일의 header footer 정보 이용하여

. 빠르고 쉽게 복구 지원함

 

Bootable CD로는

l  FIRE

l  KNOPPIX

l  FCCU GNU / Linux Forensic Bootable CD

l  Penguin Sleuth Kit Bootable CD

l  Helix

l  STD

l  BackTrack

 

우선 Sleuthkit에 대해 알아봅니다.

다운로드는 http://www.sleuthkit.org/sleuthkit/download.php 에서 하시면 됩니다.

현재 V 3.0.1이 최신이네요..(저도 설치는 아직 안해봤슴다..)

설치는 간단히 ./configure ;make; make install 하시면 됩니다.

 

중요 Sleuthkit 명령어(?)에 대해서 알아 봅니다.

mmls : 분석할 디스크 레이아웃과 전체 파티션 스키마 취득, 물리적 디스크만 분석 가능

(스냅샷으로 획득한 이미지 파일에서는 사용 못함)

img_stat : 스냅샷을 작성한 파일과 원본 디스크 또는 파티션 정보 확인

 

fsstat : 파일시스템 정보 확인, 블록수와 파일시스템 종류등의 기본정보 확인

fls : 지정된 파티션의 파일과 디렉토리들의 삭제 정보 확인, 삭제된 파일들 리스트 출력시 사용

ils : 파일의 i-node값과 복구 가능여부 확인

icat : 실제 삭제 파일 복구

 

나머지 tool은 개별적으로 확인 해보시기 바랍니다. 수업시간에는 Helix 하고, autopsy 정도

화면 본듯합니다.

 

다음 포스팅은 디비 포렌식으로 접근해봅니다..

 

 

'업무 > 보안' 카테고리의 다른 글

포렌식 - 네트워크포렌식  (0) 2009.05.11
포렌식 - DB포렌식  (0) 2009.05.07
포렌식 - 리눅스 포렌식 1  (0) 2009.04.27
포렌식 - 윈도우 포렌식2  (0) 2009.04.23
포렌식 - 윈도우 포렌식1  (0) 2009.04.19
Posted by ^________________^
,