26

V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 1 -

프리웨어 포렌식 툴킷 V1.0 (UNIX)

2003.4.25

심정재

jjshim AT Hanaro.com

Page 2: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 2 -

프리웨어 유닉스 포렌식 툴킷.

심정재 Hanaro Telecom. Inc.

Securitymap networks Project

E-Mail: jjshim AT hanaro.com

http://www.securitymap.net

윈도우 포렌식 툴킷 문서에 이은 두 번째 문서로 이 문서를 읽고 있는 당신은 유닉스 피해 시스템을 조사하는 보안

전문가이거나 피해 시스템 분석에 대해 공부하고자 하는 일반인 혹은 학생일 것이라고 가정한다. 당신은 피해 시스템 분석

시 증거가 손상되지 않고, 무결성을 확보한 상태에서 가능한 많은 정보를 획득 하고자 할 것이다. 당신이 피해 시스템에서

모으는 데이터는 실제로 해킹사고가 발생되었는지 결정하기에 충분 하여야 한다. 시스템이 불법적인 접근으로부터 피해를

입었는지를 결정하고 확인하는 과정은 아래 문서를 참고하여라.

Unix 피해시스템 분석 방법(http://www.securitymap.net/sp/docs/UNIX_analysis.doc)

시스템이 확실히 불법적인 접근으로부터 피해를 당했다는 결정을 내리기 위해서는 당신은 시스템이 손상된 시간을 기초로

하여 이전 상황을 완전히 재현하고 복구하여야 한다. 또한 아래와 같은 질문에도 답해야 한다:

1. 피해 시스템이 언제, 어디서, 어떻게 손상되었는가?

2. 피해 시스템은 어떠한 용도로 이용되었는가?

3. 피해 시스템으로 인하여 몇 개의 시스템이 영향을 받았는가?

4. 피해 시스템의 손상된 파일은 무엇이며 누가 이러한 정보를 이용하였는가?

5. 피해 시스템을 법률적으로 기소하기에 충분한 정보나 타당성이 있는가?

당신이 위와 같은 작업을 수행하려면 포렌식 툴을 필요로 할 것이다. 불행히도 상업용 패키지를 살만한 경제적인 여유가

없다면 프리웨어 포렌식 툴이 이 일을 대신할 수 있다. 상업용 툴은 국내의 몇 개 제품이 나와 있고 외산 제품이 상당수

시장을 형성하고 있다. 상업용 툴은 직관적인 사용자 인터페이스, 뛰어난 분석 결과와 보고서 작성 기능 등이 프리웨어

포렌식 툴 보다 훨씬 뛰어난 것은 말할 필요도 없다. 필자는 이러한 상업용 포렌식 툴을 구매할 수 없는 사람들을 위해서 이

문서를 작성하게 되었으며 일반적으로 널리 알려진 3개의 프리웨어 포렌식 툴킷에 대해 논의할 것이다. 이 툴들(TCT,

TCTUtils, Autopsy Forensic Browser)은 포렌식 데이터를 수집하기 위한 포괄적인 솔루션을 제공하고 있다.

컴퓨터 범죄를 분석하기 위한 방법, 절차 등의 가이드 라인은 이 문서에서 논의하지 않았다. 아래 참고할 만한 문서 일부를

소개한다.

(1) Clark, Franklin and Diliberto, Ken. "Investigating Computer Crime," CRC Press, New York, 1996.

(2) Saferstein, Richard. "Criminalistics: An Introduction to Forensic Science, Sixth Edition," Prentice Hall, Upper Saddle

River, New Jersey, 1998.

(3) Federal Bureau of Investigation, U.S. Department of Justice. "Handbook of Forensic Science," U.S. Government

Page 3: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 3 -

Printing Office, Washington D.C., 1994.

(4) "1998 Edition Federal Criminal Code and Rules," West Group, St. Paul, 1998

(5) Kevin Mandia and Chris Prosise. "Incident Response, Investigating computer crime" Osborne/Mc-Graw-Hill New York,

1997

피해 시스템에서 분석 데이터를 모을 때 당신은 TCT, TCTUtils와 Autopsy를 이용하여 관련된 데이터를 어떻게 모으는지에

대한 기초적인 단계를 배울 것이다. 이 분석 툴들은 되도록이면 CD나 안전한 분석 시스템 위에서 실행하는 것이 좋다.

필자의 분석 시스템은 리눅스(RedHat Linux 7.3 Valhalla)에서 수행하였으며 모든 명령어는 되도록 풀어 쓰려고 노력했다.

다른 유닉스에서는 위의 툴들이 수행되기 어려울 것이다.

포렌식 툴의 개요

The Coroner's Toolkit (TCT) - http://www.fish.com/tct

TCT는 유닉스 운영체제에서 실행되는 툴이다. Dan Farmer와 Wietse Venema가 제작하였다. TCT는 이전 이벤트를 재현하기

위한 포렌식 데이터를 분석하고 수집하기 위한 매우 강력한 기술을 제공하고 있으며, 네 개의 개별적인 그룹을 하나로 모아

둔 것이다. 일반적으로 TCT는 라이브 시스템에서 현재 상태정보를 캡쳐하고 분석할 수 있는 뛰어난 도구 이다. TCT는

법원에서 증거로 채택되기 위한 데이터를 모으기 위한 것이 아니라 어떻게 시스템을 손상시켰는지 알아 내도록 돕기 위한

것이다. TCT는 다음 프로그램을 포함하고 있다:

프로그램 설 명

grave-robber 다양한 휘발성 데이터를 재빨리 캡쳐하고 수집된 개별 증거의 무결성 확보를 위해 MD5

해쉬값을 만든다. grave-robber를 실행하는 가장 큰 목적은 라이브 시스템 위에서 휘발성

데이터를 수집하기 위한 것이다. grave-robber의 -f 옵션은 파일 시스템을 복사할 때

사용되고, 이 옵션을 통해 드라이브 이미지를 만든 다음에 시스템을 오프라인에서 분석

할 수 있다.

pcat, ils, icat, file inode 데이터와 프로세서를 분석하고 기록한다. pcat은 라이브 시스템으로부터 메모리에

있는 프로세서를 복사한다. ils는 inode정보를 나열한다. icat은 inode 숫자를 파일로

기록한다. File은 파일의 다양한 형태를 각각 분류한다.

unrm, lazarus 파일 시스템 위에서 할당되지 않은 디스크 블록 들을 분석하고 복구한다. unrm은 파일

시스템의 할당되지 않은 부분에서 정보를 복구한다. lazarus는 데이터의 형태가 어떠한

내용을 포함하고 있는지 분류하기 위해 unrm으로부터 raw 데이터를 분석한다.

mactime 파일 이름과 관련된 것으로, 파일의 inode 변경(MAC), 수정, 접근시간을 연대순으로

timeline을 만들어 준다(grave-robber의 -d 옵션이다).

Page 4: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 4 -

TCTUtils - http://www.cerias.purdue.edu/homes/carrier/forensics/

Brian Carrier에 의해 작성되었으며, TCTUtils는 TCT를 확장한 유틸리티이다. TCTUtils는 아래 프로그램을 포함하고 있다:

프로그램 설 명

bcat 블록의 내용을 표준출력으로 보여준다.

blockcalc 디스크 dd이미지와 unrm 결과 사이의 지도.

fls 삭제된 디렉터리내의 하위 디렉터리와 파일들을 보여준다. fls는 -d 옵션과 함께 이미지내의

삭제된 모든 이름을 기록할 수 있다.

find_file 이미지 내에서 파일이 inode의 어디에 위치해 있는지 확인한다.

find_inode 이미지 내에서 inode가 블록의 어디에 위치해 있는지 확인한다.

istat inode에 관련된 정보를 보여준다.

mac_merge TCT mactime으로 생성된 하나의 큰 timeline 출력과 'fls -m" 출력 내용을 합쳐준다.

Autopsy Forensic Browser - http://www.cerias.purdue.edu/homes/carrier/forensics/

Autopsy 포렌식 브라우저는 TCT와 TCTUtils를 위해 GUI형태의 브라우저를 기반으로 이용하기 쉽게 만든 것이다. 피해

시스템을 조사하는 사람이 포렌식 이미지를 파일, 블록, inode 레벨에서 분석하고 조사할 수 있다. 또한, 이미지 내에서

문자열 검색을 위한 편리한 인터페이스를 제공하고 있다.

포렌식 분석을 위한 사전 준비

사전 준비 단계로 필자는 리눅스 파일 시스템과 dd 명령에 의해 만들어진 디스크 이미지 파일(dev_sda1.img)을 이용할

것이다. 이 이미지는 실제 해킹사고를 당한 피해 시스템의 디스크 이미지를 덤프한 파일이다. 진행에 앞서 필자는 아래와

같은 파일 이름과 디렉터리를 이용할 것이다. 디스크 이미지 파일과 디렉터리는 여러분의 환경에 맞게 바꾸면 된다.

파일 및 디렉터리명 설 명

dev_sda2.img 이미지 파일(피해시스템 덤프파일)의 이름

/image 이미지 파일이 위치한 디렉터리

/mnt/forensics/ 이미지 파일을 마운트 하기 위한 디렉터리

/usr/local/tct/ tct 설치 디렉터리

/usr/local/tctutils/ tctutils 설치 디렉터리

/usr/local/sleuthkit Sleuth Kit 설치 디렉터리(이전의 TASK)

/usr/local/autopsy autopsy 설치 디렉터리

/tmp/deleted 삭제된 파일을 복구하여 저장한 디렉터리

Page 5: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 5 -

1. 디렉터리 생성

: 유틸리티를 실행하기에 앞서 먼저 분석에 필요한 디렉터리를 만들자

#mkdir /mnt/forensics

#mkdir /mnt/hack

#mkdir /image

2. 이미지 복사

: 이미지 파일이 저장되어 있는 곳(보통은 CD-ROM이나 FTP서버)으로부터 /image 디렉터리로 복사한다.

#mount /mnt/cdrom

#cp /mnt/cdrom/dev_sda2.img /image

※ 주의사항: 이미지 파일을 저장할 충분한 공간이 디스크에 남아 있어야 한다. 또한 피해시스템으로부터 덤프된 이미지

파일 사이즈가 2GB가 넘는다면 리눅스 커널패치를 통해 2GB이상의 단일 파일을 인식할 수 있게 만들어야 하며,

perl또한 32Bit나 64Bit로 컴파일 하여야 한다(여기에 방법을 설명하려니 너무 길어진다. 각자 이 부분은 관련 문서를

참고 하길 바란다).

3. 이미지 마운트

: 이미지 파일을 /mnt/forensics 디렉터리에 루프 디바이스로 마운트 한다(옵션은 ro, loop, nodev, noexec, nosuid,

noatime 을 사용).

#cd /

#mount –o ro,loop,nodev,noexec,nosuid,noatime /image/dev_sda2.img /mnt/forensics

Page 6: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 6 -

TCT(The Coroner's Toolkit)

TCT는 forensic 데이터를 분석하고 수집하기 위해 매우 강력한 기술을 제공하고 있으며, 4개의 개별적인 그룹을 묶어

하나의 툴로 모아 놓은 것이다.

TCT 1.1 설치

1. TCT Version 1.1이 있는 Source로부터 [/usr/local]로 복사한 후 압축을 해제하고 설치를 진행하자.

# cp /mnt/cdrom/tct-1.11.tar.gz /usr/local

# cd /usr/local/

# tar –xzvf tct-1.11.tar.gz

# mv /usr/local/tct-1.11/ /usr/local/tct/

# cd tct

# make

# echo "PATH=$PATH:/usr/local/tct/bin;/usr/usr/local/tct/extras;/usr/local/tct/lazarus" >>

/root/.bash_profile

Page 7: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 7 -

라이브 시스템 위에서 작업하기

피해 시스템이 살아 있는 상태에서 어떻게 유용한 데이터를 수집하는지에 대하여 설명한다.

1. grave-robber를 사용하여 네트워크, 호스트, 프로세서 등에 관련된 정보 수집

: grave-robber는 크게 3개의 옵션으로 구분되어 있으며(일반적인 옵션, 대량의 데이터를 수집하기 위한 옵션, 소량의

데이터를 수집하기 위한 옵션), 피해시스템의 네트워크 상태, 호스트 및 프로세서 등의 휘발성 데이터를 재빨리 수집하기

위한 툴이다.

# cd /usr/local/tct/bin

# ./grave-robber –h

옵 션 설 명

일반적인 옵션

-b grave-robber가 기본적으로 저장하는 곳($TCT_HOME/data/hostname/body)이외의 특정 디렉터리를

지정하여 lstat와 md5정보를 저장 할 수 있다.

-c 현재 운용하지 않는 시스템(not live)이나, 이미지로 마운트 된 디스크에서 패스워드 파일을 위해

/foo/etc/passwd를 점검하거나, 그 밖에 여러 가지 것들을 점검할 수 있다. 이를 수행하기 위해서는 –

o 옵션을 요구한다.

–o 점검하고자 하는 이미지의 OS를 지정하여야 한다(`OPENBSD3', `BSDI2', `BSDI3', `SUNOS4',

`SUNOS5', `LINUX2')

-v 표준 출력으로 상세한 정보를 보여준다.

-D 디버깅 출력으로 원하는 결과값을 얻지 못했을 경우 유용하다.

-M inode의 맥타임(MAC times)을 수집하고 모든 파일의 MD5sum을 수행한다.

대량의 데이터를 수집하기 위한 옵션

-E pcat처럼 위험한 동작을 포함하면서 가능한 모든 것을 수집한다(기본적으로 –l 과 –p 옵션을 포함).

-f 간략하게 매우 빨리 데이터를 수집한다(민감한 데이터나 MD5 값은 제외한다)

-n 모든 옵션의 기본 플래그 이다(-E, -f혹은 그 외 많은 옵션 사용시 기본적으로 추가되는 플래그이다).

소량의 데이터를 수집하기 위한 옵션

-F 파일이 계속 변동되는 동안에 파일 시스템으로부터 파일들을 수집한다(-m 옵션을 포함).

-i 파일 시스템의 할당되지 않은 곳으로부터 inode 데이터를 수집한다.

-I 동작중인 프로세서의 실행 파일을 캡쳐 한다.

-m mactime 프로그램을 위한 lstat() 결과값을 수집한다.

-O 열려있는 파일을 저장한다(디스크에서 삭제된 일부 환경파일, 실행파일 등등). 문제가 발생된

디바이스의 읽기 권한필요.

Page 8: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 8 -

-p pcat 명령과 함께 파일로 메모리상의 프로세서를 복사한다.

※주의 - 몇몇 시스템에서 이 옵션을 사용하는 것에 주의해야 한다. 종종 시스템이 Crash되거나

Halt되는 현상이 발생된다.

-P 프로세서 명령(ps, lsof, icat)을 수행한다.

-s 호스트 위에서 일반적인 쉘 명령어를 수행한다.

-t 호스트와 사용자 양쪽 트러스트 정보를 획득한다.

-d grave-robber의 결과값을 저장하기 위한 디렉터리 지정.

-V 디바이스 장치(/dev 디렉터리)의 major와 minor 수를 획득한다(디바이스 형태, 디바이스 번호 등등)

실행결과는 /usr/local/tct/data/host.domain에 저장된다(host.domain은 당신의 시스템 도메인 이름이다. 필자의 호스트명은

FR_Analysis이므로 /usr/local/tct/data/FR_Analysis로 저장된다).

2. grave-robber의 inode정보 수집

: grave-robber의 –l 옵션을 인자로 주어 실행하면 /usr/local/tct/data/host.domain 디렉터리에 시스템의 모든 파일 및

디렉터리에 대한 inode 정보를 수집한다(md5 verify정보, inode위치 정보, permission 정보, 링크 여부, uid, gid, rdev, 파일

사이즈, 파일 액세스 시간, 파일 수정 시간, 파일을 만든 시간, 블록 사이즈, 블록 개수 등등).

# cd /usr/local/tct/bin

# ./grave-robber –l

# ls –l /usr/local/tct/data/FR_Analysis

UTC 변환 사이트:

http://www.onlineconversion.com/unix_time.htm

Page 9: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 9 -

3. pcat을 이용한 메모리내의 프로세서 복사

: pcat은 메모리내의 프로세서 내용을 복사하여 표준출력으로 내보낼 수 있다. ps, netstat, 혹은 lsof를 사용하여 흥미 있는

프로세서를 찾는 과정을 아래에 간략히 설명하였다.

아래는 의심스런 프로세서(PID: 13949)에 대한 문자열 검색을 예로 든 것이다. 크래커가 설치한 프로그램의 ID와 패스워드를

확인하는 과정을 예로 들었다. pcat은 시스템 프로세서나 자신의 프로세서에 대해서는 검색할 수 없다. pcat은 /proc

디렉터리를 참고로 하며, 그 외 많은 응용은 상황에 맞게 적당한 스크립트를 작성하여 사용하면 된다.

# cd /usr/local/tct/bin

# ./pcat –v 13949 2> /dev/null > /tmp/pcat_PID13949.log

# strings /tmp/pcat_PID13949.log | grep “ID” | grep “password”

4. 숨겨진 데이터를 찾기 위한 ils사용.

: ils는 마운트 되어 있는 디바이스의 inode 정보를 리스트로 만들어 주며, 또한 삭제된 inode정보를 확인할 수 있다.

▶ ils 옵션 설명

옵션 설 명

-e 파일 시스템의 모든 inode 정보를 리스트로 만들어 준다.

-f 파일 시스템 타입을 정의한다. 거의 모든 UNIX 시스템의 기본 파일 시스템은 ffs(Berkeley

fast file system)이며, 리눅스는 기본적으로 ext2fs(second extended file system)을

사용하고 있다.

-o 아직 열려있거나 실행중인 삭제된 파일들의 inode정보를 만들어 준다(-aL과 동일).

-r 삭제된 파일들의 inode정보를 만들어 준다(-LZ와 동일).

-v 상세 모드 출력(stderr).

-V 상세 모드 출력(stdout).

▶ ils 출력 파일의 헤더 설명

인자값 헤 더 설 명 기 타

0 st_ino inode 번호

1 st_alloc inode의 상태(a: inode 할당, f: inode 비 할당)

2 st_uid 사용자 ID 소유자

Page 10: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 10 -

3 st_gid 그룹 ID 소유자

4 st_mtime 파일을 마지막으로 수정한 UNIX 시간 UTC

5 st_atime 파일을 마지막으로 접근한 UNIX 시간 UTC

6 st_ctime inode상태가 마지막으로 변경된 UNIX 시간 UTC

7 st_dtime 파일이 삭제된 유닉스 시간 리눅스만 존재

8 st_mode 파일 형태와 권한상태 8진수(octal)

9 st_nlink 파일이 하드 링크된 수

10 st_size 파일 사이즈(byte) 바이트

11 st_block0,st_block1 블록 주소 목록의 첫 번째와 두 번째 시작과 끝 위치

ⓐ. 아직 열려있거나 실행중인 삭제된 파일들의 inode정보(파일은 열려 있지만 링크가 되어 있지 않음)

# cd /usr/local/tct/bin

# ./ils –of ext2fs /dev/sda1

ⓑ. inode 2366~2372의 정보(ef옵션을 사용한 inode 2366~2372 목록)

# cd /usr/local/tct/bin

# ./ils –ef ext2fs /dev/sda1 2366-2372

Page 11: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 11 -

ⓒ. inode의 사용되지 않는 공간확인(unused files)

# cd /usr/local/tct/bin

# ./ils –zf ext2fs /dev/sda1 | more

디스크 이미지를 가지고 작업하기

라이브 시스템이 아닌 디스크 이미지를 가지고 유용한 데이터를 수집하는 과정을 설명한다.

1. grave-robber를 사용하여 디스크 이미지로부터 정보 수집.

아래는 피해 시스템 이미지를 /mnt/forensics 에 마운트 한 후 MivVt 옵션을 사용하여 이미지 정보를 획득하는 과정이다.

결과는 /usr/local/tct/data/FR_Analysis 디렉터리에 저장된다.

# cd /usr/local/tct/bin

# ./grave-robber –c /mnt/forensics/ -o LINUX2 –MivVt

2. ils를 사용하여 삭제된 파일들의 inode 정보 수집.

: 피해시스템의 이미지 위에서 삭제된 파일에 대한 inode정보를 수집하기 위해서는 –r, -f 옵션이 필요하다.

# cd /usr/local/tct/bin

# ./ils –rf ext2fs /image/dev_sda2.img

Page 12: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 12 -

ils2mac 유틸리티를 사용하여 더 자세한 정보를 수집할 수 있으며, 결과는 /tmp/deleted/dev_sda2.img.ilsbody 파일로

저장하였다.

# cd /usr/local/tct/bin

# ./ils -rf ext2fs /image/dev_sda2.img | ../extras/ils2mac > /tmp/deleted/dev_sda2.img.ilsbody

3. icat을 사용하여 지운 파일 복구

: inode 숫자에 해당되는 내용을 파일로 복사하기 위해서(보통 삭제된 파일의 inode 번호를 사용한다) icat을 사용한다.

여기서 2039는 /tmp/deleted/dev_sda2.img.ilsbody 파일에서 확인된 삭제된 inode 번호이다.

#cd /usr/local/tct/bin

#./icat –hf ext2fs /image/dev_sda2.img 2039

-h: 수행여부를 확인하기 위한 옵션으로 파일 사이즈는 0byte이다.

-f: 파일 시스템을 지정한다(리눅스는 기본적으로 ext2fs이다).

Page 13: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 13 -

ⓐ. inode 2038로부터 삭제된 파일 복구 하기

: 복구된 파일은 /tmp/deleted/recover-2039로 하였다.

# cd /usr/local/tct/bin

# ./icat –f ext2fs /image/dev_sda2.img 2039 > /tmp/deleted/recover-2039

# file /tmp/deleted/recover-2039

ⓑ. 이미지 위에서 삭제된 모든 파일을 /tmp/deleted 디렉터리로 복구하기

# mkdir /tmp/deleted

# cd /usr/local/tct/bin

# ./ils -rf ext2fs /image/dev_sda2.img | awk -F '|' '($2=="f") {print $1}' | while read i; do

/usr/local/tct/bin/icat /image/dev_sda2.img $i > /tmp/deleted/$i; done

5. file 명령어 사용

: file명령어를 사용하면 복구된 파일 유형을 분류할 수 있다.

# cd /usr/local/tct/bin

# ./file /tmp/deleted/*

Page 14: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 14 -

6. unrm사용하기

: unrm을 사용하면 파티션의 할당되지 않은 디스크 공간으로부터 데이터 복구가 가능하다(현재는 리눅스의 ext2fs와

유닉스의 ufs 파일 시스템만 지원한다).

# cd /usr/local/tct/bin

# ./unrm /image/dev_sda2.img > /tmp/deleted/sda2_unrm.results

7. lazarus 사용하기

: lazarus를 사용하여 unrm으로부터 수집된 law 데이터를 분석하여 데이터 형태와 그 내용이 무엇인지 확인할 수 있다.

※주의: 파일의 크기에 따라 lazarus는 많은 시간이 소요되며, 이미지파일 사이즈와 동일한 크기의 디스크 공간이 남아

있어야 한다. 환경설정 파일은 /usr/local/tct/conf/lazarus.cf이다.

# cd /usr/local/tct/lazarus/

# ./lazarus –h /tmp/deleted/sda2_unrm.results –w /tmp/deleted

-h: ASCII 텍스트보다 유연성이 뛰어난 HTML 코드로 만들어 준다. 3개의 파일로 저장된다.

-w: HTML 코드를 저장할 디렉터리를 설정한다.

Page 15: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 15 -

lazarus 결과는 3개의 html파일(/tmp/deleted/$ARGV.html, $ARGV.frame.html, $ARGV.menu.html)과 2개의

디렉터리(/usr/local/tct/www, /usr/local/tct/blocks)로 구성된다.

그림. sda2_unrm.results.html

그림. sda2_unrm.results.menu.html

8. mactime 사용

: mactime을 사용하면 파일의 수정(Modified), 접근(Accessed), 생성(Created) 시간을 확인 할 수 있다.

# cd /usr/local/tct/bin

# ./grave-rober –m /mnt/forensics/

# ./mactime 4/01/2001 | less

9. mactime을 이미지 위에서 사용

: 더 좋은 timeline을 만들기 위해서는 파일이 언제 삭제, 접근, 수정되었는지 확인할 수 있어야 하며 inode의 삭제된

정보와 삭제된 파일들도 포함하고 있어야 한다.

# cd /usr/local/tct/bin

# ./grave-robber -c /mnt/forensics/ -m -o LINUX2

# ./ils /image/dev_sda2.img | ils2mac > /usr/local/tct/data/ilsbody

# cat /usr/local/tct/data/ilsbody /usr/local/tct/data/FR_Analysis/body > /usr/local/tct/data/body-full

# ./mactime -p /mnt/forensics/etc/passwd -g /mnt/forensics/etc/group -b /usr/local/tct/data/body-full

1/27/2001 > /usr/local/tct/data/mactime.txt

# head -n 5 /usr/local/tct/data/mactime.txt

Page 16: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 16 -

TCTUtils

Brian Carrier에 의해 작성되었으며, TCTUtils는 TCT를 확장한 유틸리티이다.

1. TCTUTILS 설치

ⓐ. tctutils-1.00.tar.gz 소스 파일을 웹사이트에서 다운로드 한 상태에서 설치를 진행하자

# cd /usr/local/

# wget http://www.cerias.purdue.edu/homes/carrier/forensics/tctutils/tctutils-1.00.tar.gz

# tar –zxvf tctutils-1.00.tar.gz

# mv tctutils-1.00/ tctutils/

# cd tctutils/

# vi src/Makefile 설치 디렉터리 및 파일 위치와 관련한 변경사항이 있는지 수정한다.

# make

Page 17: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 17 -

2. fls를 이용한 mactime 획득

: fls를 사용하여 파일 및 디렉터리 목록을 얻을 수 있다. 여기에는 마운트 된 이미지를 원본 피해시스템 이미지와 비교하여

MAC시간을 획득할 수 있다. ils처럼 inode정보를 포함하고 있지는 않다.

옵 션 설 명

-a “.”과 “..”의 디렉터리 엔트리를 보여준다(기본 옵션이 아님)

-d 삭제된 파일 목록만 보여준다.

-D 삭제된 디렉터리 목록만 보여준다.

-f 디렉터리를 제외한 파일 목록만 보여준다.

-l 파일에 대한 상세정보를 보여준다(파일형태, inode정보, 파일이름, 등등)

-m 삭제된 파일들에 대한 mactime을 분석시스템 시간에 맞추어 보여준다.

-p 파일 및 디렉터리에 대한 완전한 경로명을 보여준다.

-r 디렉터리를 트리 형태로 보여준다.

-u 삭제되지 않은 모든 파일 및 디렉터리를 보여준다.

-Z 타임존을 변경한다(EST, CST).

3. 이미지를 가지고 작업하기

: timeline을 만들기 위해서는 파일이 언제 삭제, 접근, 수정되었는지 확인할 수 있어야 하며 삭제된 파일들도 포함하고

있어야 한다.

# cd /usr/local/tct/bin

# ./grave-robber -m /mnt/forensics/

Page 18: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 18 -

# cd /usr/local/tctutils/bin/

# ./fls -m /mnt/forensics/ /image/dev_sda2.img 2 >> /usr/local/tct/data/FR_Analysis/body

# cd /usr/local/tct/bin/

# ./mactime 1/27/2001 > /usr/local/tct/data/fls_mactime.txt

# head -n 5 /usr/local/tct/data/fls_mactime.txt

Autopsy

Autopsy 포렌식 브라우저는 TCT와 TCTUtils를 위해 GUI형태의 브라우저 기반으로 이용하기 쉽게 만든 것이다.

Autopsy Forensic Browser 실행하기

: Autopsy는 TCT와 TCTUtils로부터 수집된 정보를 GUI형태의 html로 보여준다.

1. Autopsy설치

: Autopsy는 4개의 소프트웨어를 필요로 한다.

ⓐ. Sleuth Kit(Version 1.61이상) - http://www.sleuthkit.org/sleuthkit/

ⓑ. PERL(version 5.002이상) - http://www.perl.com/

ⓒ. HTML Browser(접속할 클라이언트에 대부분 설치되어 있음) – Netscape, Mozilla, iexplorer

ⓓ. 표준 유닉스 유틸리티(리눅스에 이미 설치되어 있음)

- grep: http://www.gnu.org/software/grep/grep.html

- strings: http://www.gnu.org/software/binutils/binutils.html

2. Sleuth Kit 설치(이전의 TASK)

: Sleuth Kit은 마이크로 소프트와 유닉스 파일 시스템을 분석하기 위한 오픈 소스 포렌식 툴킷이다. Sleuth Kit은 침입 당한

시스템의 이미지나 라이브 시스템으로부터 증거를 수집하고 데이터를 복구할 수 있는 강력한 툴이며, Venema와 Dan

Farmer에 의해 작성된 TCT를 기반으로 작성된 프로그램이다. 소스파일은 http://www.sleuthkit.org/sleuthkit/download.php

Page 19: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 19 -

에서 다운로드 한 후 아래와 같이 설치를 진행한다.

# cd /usr/local/

# wget http://flow.dl.sourceforge.net/sourceforge/sleuthkit/sleuthkit-1.61.tar.gz

# tar -zxvf sleuthkit-1.61.tar.gz

# mv sleuthkit-1.61 sleuthkit/

# cd sleuthkit

# make

3. Autopsy 설치

: autopsy-1.70.tar.gz 소스파일을 다운로드 한 후 아래와 같이 설치를 진행한다. 원본 소스 파일은

http://autopsy.sourceforge.net 에서 다운로드 할 수 있다. 설치에 앞서 Autopsy가 수집한 증거를 보관할 디렉터리를

만들어 주어야 한다. 필자는 /opt/FR_cases를 사용할 것이다. 설치가 완료되면 /usr/local/autopsy/conf.pl 에서 설정사항을

변경할 수 있다.

# cd /usr/local/

# wget http://flow.dl.sourceforge.net/sourceforge/autopsy/autopsy-1.71.tar.gz

# tar -zxvf autopsy-1.71.tar.gz 1> /dev/null

# mv autopsy-1.71/ autopsy/

# cd autopsy

# make

Enter The Sleuth Kit Directory: /usr/local/ sleuthkit

Do you have the NIST National Software Reference Library (NSRL)? (y/n) [n] n

Enter the Evidence Locker Directory (where cases will be saved): /opt/FR_cases

Page 20: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 20 -

4. Autopsy 시작하기

: autopsy 데몬을 실행시키면 웹 브라우저를 통해 피해 시스템의 이미지를 분석 할 수 있다.

usage: #autopsy [port] [Client ip]

# cd /usr/local/autopsy

# ./autopsy 80 192.168.10.100

ⓐ. 192.168.10.100 클라이언트 브라우저에서 아래 URL을 입력하여 접속하면 초기 화면이 나오게 된다. 외부에서 접속 시

FR_Analysis는 분석 시스템의 IP주소로 변경한다. 쿠키는 autopsy데몬 실행 시 마다 매번 변경된다.

필자의 접속 URL: http:// FR_Analysis:80/1351236018551666641/autopsy

Page 21: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 21 -

ⓑ. autopsy Forensic Browser 접속

- Autopsy의 초기 화면은 아래와 같다. 분석을 위해 새로운 사건을 하나 만들자(NEW CASE 선택).

- 새로운 사건을 만들기 위해 아래 3가지 항목을 입력하자.

▶ Enter Case Name – 침해사고의 사건 이름을 기록

▶ Enter Description – 사건의 간단한 설명 기록

▶ Enter Investigator Logins(no spaces) – 본 사건을 담당할 조사자들의 이름 기록

Page 22: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 22 -

- 새로운 사건을 하나 만들었다면 아래와 같이 CASE GALLERY 목록에 나타날 것이다. 분석할 사건을 선택한 후 OK버튼을

클릭하면 새로운 호스트를 선택할 수 있는 화면으로 전환된다.

Page 23: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 23 -

- 사건에 관련된 호스트를 새롭게 추가하자

▶ Host Name – 조사할 호스트의 이름이나 디렉터리 이름을 입력

▶ Description – 호스트에 대한 간략한 설명

▶ Timezone – 타임존 기술

▶ Timeskew – 시간차이 기술

Page 24: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 24 -

- 새로운 이미지 추가

▶ Image Location – 이미지가 존재하는 전체 디렉터리와 파일명까지 기술

▶ Import Method – 이미지를 Locker 디렉터리로 어떻게 옮길 것인지 기술

▶ File System Type – 이미지의 파일 시스템 형태 선택

▶ Mounting Point – 이미지가 마운트된 디렉터리명 기술

▶ Image Integrity Check Options – 이미지의 무결성 점검 및 체크 방법 선택

Page 25: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 25 -

ⓒ. Autopsy 분석

: 모든 설정이 완료되면 사건을 분석할 수 있는 상태가 된다. 아래 화면은 위에서 만든 피해 시스템의 이미지 파일을

분석한 화면이다(FILE ANALYSIS).

그 외 참고 사이트

EXT2 파일시스템 소개

http://web.mit.edu/tytso/www/linux/ext2intro.html

http://en.tldp.org/HOWTO/mini/Ext2fs-Undeletion.html

- 용어 설명 -

▶ Forensic(포렌식): 사이버 범죄가 일어났을 경우 하드디스크나 플로피디스크 CD롬 등 각종 컴퓨터상 정보 처리장치를

분석, 범죄의 법적 증거가 될만한 자료를 추출·보관하는 기술과 이를 법정에 제시할 수 있도록 증거

를 확보할 수 있는 기술들을 통칭하는 것.

▶ Forensic System(포렌식 시스템): 사이버 범죄가 일어났을 경우 하드디스크나 플로피디스크 CD롬 등 각종 컴퓨터상

정보 처리장치를 분석, 범죄의 법적 증거가 될만한 자료를 추출·보관하는 시스템.

▶ Live system(라이브 시스템): 현재 계속 파워가 켜져 있고, 외부 해커로부터 피해를 당한 시스템이거나 타 시스템을

공격하는 컴퓨터 위에서 직접 사건을 조사하는 경우를 말한다.

이 문서는 필자가 주말시간을 이용하여 securityfocus 1503문서를 기본으로 작성하였다. 프리웨어 포렌식 툴에 대한 간략한

소개를 해달라는 부탁(?-거의 강압적 이었슴 -_-x)에 작성되었지만 깊이 있게 다루지 못한 것이 못내 아쉽다. 차후 F.I.R.E

에 관련된 bootable 포렌식 툴에 대해서 작성하게 되면 더 깊이 있는 문서가 되리라 믿는다.

해킹 사고는 더 이상 남의 일이 아닌 일반 시스템, 네트워크 관리자가 경험하게 되는 평범한 현상이다. 하지만 대부분의 시

스템/네트워크 관리자들은 이러한 인터넷 공격 및 공격자에 대한 지식, 경험 부족으로 인하여 피해 시스템에 대한 제대로 된

분석을 하지 못하고, 결국 반복적인 침입을 당하는 결과를 가져온다. 아무쪼록 이 문서가 이러한 행위들로부터 자신의 시스

Page 26: V1.0 (UNIX) - Inet · 2010-06-29 · Freeware Forensic toolkit - 1 - 프리웨어 포렌식 툴킷 V1.0 (UNIX) 2003.4.25 심정재 jjshim AT Hanaro.com

Freeware Forensic toolkit

- 26 -

템을 보호하고 해킹사고가 국내에 확산되는 것을 방지하였으면 하는 바램이다.

이 문서를 타 사이트로 이전 시에는 반드시 www.securitymap.net를 기술해 주길 바란다.

이 문서의 궁금한 사항이나 기타 문의는 아래 E-Mail로 질문해 주길 바란다.

jjshim AT hanaro.com 심정재