Always-Try(정보보안 및 일상)

포렌식 기초 - Disk Image, Imaging and mounting, hash 본문

Forensic

포렌식 기초 - Disk Image, Imaging and mounting, hash

Always-Try 2021. 2. 27. 15:49
본 게시글은 인프런 '맥으로 배우는 윈도우즈 포렌식'를 참고하여 작성했습니다. (www.inflearn.com/course/forensic-2/dashboard)

그리고 일부 portable-forensics.blogspot.com/2014/08/disk-imaging.html  도 참고 했습니다. 
 

맥으로 배우는 윈도우즈 포렌식 - 인프런 | 강의

유료 도구가 아닌 무료 포렌식 도구를 통해 더욱 깊이 있는 포렌식 분석 방법을 배웁니다., 맥으로 배우는 윈도우즈 포렌식 안녕하세요. 도루묵입니다. 현업에서 도구 사용법도 중요하지만, 도

www.inflearn.com

 

#혼잣말

우연한 계기로 포렌식에 관심이 생겼다. 포렌식을 공부하려고 하다보니, 생각보다 진입 장벽이 높은 것 같았다. 검색을 해봐도 대부분 영양가 없는 광고 블로그들 뿐이었다. 

어떻게 해야 할까..? 일을 하는 직장인이다보니, 두꺼운 전공책을 다 읽어보기엔 엄두가 나지 않았고,, 가장 가성비(?) 좋게 포렌식 공부를 하고 싶었다. 그래서 한동안 많이 찾아보고 고민했었다.

그러다 인프런의 '맥으로 배우는 윈도우즈 포렌식' 강의를 우연히 발견했다. 강의 자료 설명이 너무 마음에 들었고, 마침 맥북을 샀던때라 운명인가? 하고 강의를 신청했다. 사실 기존 인프런 강의 중 비용대비 만족했던 강의는 하나도 없었기에, 이번에도 속는셈치고 별 기대없이 강의를 등록했다.

하지만, 뜻밖에도 강의는 너무 만족스러웠다. 강사님이 준비해두신 여러 샘플데이터와 코드를 통해 실습을 하면서 강사님의 의도한대로 포렌식에 대한 기초가 쌓여가고 있는 느낌이 들었다. 그래서, 복습 및 정리를 통해 다시 한번 강의를 리마인드 하고자 포스팅을 한다.

참고로 본 포스팅이 끝나면,  www.cfreds.nist.gov/ 에서 문제풀이를 하면서 다음 공부를 이어나가고자 한다. 

혹시 함께 스터디할 의사가 있으신 분은 댓글 부탁한다

 

 

#1. Disk Image

1-1. 이미지  

미디어의 전체 내용을 담고 있는 파일을 뜻한다.

 

1-2. 이미지 Type

RAW

실제 원본 데이터와 bit 단위로 완전 동일하게 복사하는 것을 의미한다. 실제 원본 데이터와 동일하게 복사하므로 좀 더 직관적이라고 할 수는 있겠지만, 데이터 저장 크기가 커서 사본 생성 과정에서의 오류 발생 가능성이 높고 저장 공간의 크기 및 소요 시간, 그리고 H/W 오류(특정 Sector Read 불가)등도 동일하게 복사되므로 사본에 결함이 있을 가능성이 있다. 보통 EWF를 지원하지 않는 도구를 사용하는 경우 RAW 포맷을 사용한다.

 

EWF(Expert Witness Compression Format)

전문 증거 압축 포맷의 줄임말로, 가디언스사의 Encase에서 사용하는 포맷이다. RAW 이미지와는 다르게 변조방지, 오류 검증, 압축 등의 알고리즘이 포함되어 있으며, 범용적인 포렌식 도구들은 EWF 포맷을 사용한다. 대표적인 확장자로는 E01, Ex01, S01이 있다. 주로 E01을 사용한다. 아래 사진과 같이 CRC, MD5를 통해 무결성을 보장한다. 

E01 확장자
E01 확장자 생성 시 생성되는 해시 값 파일

 

AFF(Advanced Forensics Format)

각종 포렌식 도구에서 지원하는 타입이긴 하지만, 실제 접할 기회는 별로 없다.

 

1-3. 디스크 이미징 하드웨어

임베디드 하드웨어로 이동하면서 가져 다닐 수 있다. 단, 비싸다.

 

 

1-4. 디스크 이미징 소프트웨어

이미징 하드웨어가 없으면 무료 소프트웨어를 사용하자. 가장 유명한 제품은 FTK Imager 사용법은 하드웨어와 거의 유사하다. 

이러한 도구를 사용할 때, 가장 중요한 것은 원본의 손상을 방지하는 쓰기 방지 기능이다. 이미징 하드웨어에는 이 기능이 포함되어 있지만, 이미징 소프트웨어를 사용할 때는 별도로 다운 받아야한다. Mac 에는 Disk Aribitrator가 이 기능을 제공한다. 아래 사진 중 Disk Mount Read-Only가 쓰기 방지 기능이다.

 

 

#2. Imaging and mounting

2-1. 클러스터  

디스크에 파일을 저장하는 논리적 단위를 뜻한다. 윈도우 NT 이상에서는 기본 클러스터 크기는 4096(4K)bytes이며 512bytes 크기를 가진 8개 섹터로 이루어진다. 클러스터 크기가 작으면 디스크에 더 많은 클러스터가 존재하여 처리 시간이 오래 걸릴 수 있다. 반대로 클러스터 크기가 너무 크면 하드 디스크 낭비가 커질 수 있다. 예를들어 아래와 같이 1024bytes의 데이터를 저장하더라도 4096bytes의 클러스터가 사용되며, 3072bytes의 공간은 남는 공간(slack)이 된다.

 

2-2. 이미징 실습

2-2-1. 실습 도구

FTK imager, Disk Aribitrator 를 통해 디스크를 이미징하고, autopsy로 이미징한 E01을 확인하고 최종적으로 xmount를 통해 E01을 mount 할 것이다. 

(윈도우, mac) ftkimager : accessdata.com/product-download/ftk-imager-version-4-5

(mac) disk arbitrator : git 주소 위에 캡쳐에 있음

(mac) autopsy : brew install autopsy

(mac) xmount : brew install xmount (몇가지 의존성 파일이 있는데 설치하고 재부팅하고 재부팅하고 삽질 좀 하다보면 됨)

(mac) hdiutil : xmount 설치하니까 설치되어 있음

 

2-2-2. FTK imager으로 추출한 E01을 autopsy에서 분석

VMware에서 5GB NTFS 디스크를 하나 추가하고 그 안에 테스트 파일들을 몇개 만들었다가 지워본다.

FTK Imager를 설치해서 진행하면 쉽게 E01 형식으로 파일을 만들 수 있으므로 과정은 생략한다. 추후 헷갈리는 메뉴가 있다고 생각되면 설명은 추가하도록 하겠다. 진행이 완료되면 xxx.e01, xxx.e01.csv, xxx.e01.txt 파일이 생성되는데, e01이 전문 증거 압축 포맷으로 압축된 파일이고 csv는 파일들에 대한 정보, txt는 e01 요약 정보가 들어있다. 

이 파일을 mac의 autopsy에서 간단하게 열어볼 것이다. 해당 파일을 mac으로 옮기고 mac에서 아래와 같이 autopsy 실행 및 대시보드에 접근한다.

이후 NEW CASE를 통해 카테고리를 생성, ADD HOST를 통해 사용자 폴더 생성 및 ADD Image File을 이용해서 E01 파일을 입력하면 분석할 수 있는 메뉴들이 나온다. (Analyze, File Analysis 등등)

 

 

2-2-2. FTK imager 추출한 E01 파일을 mac에 mount 해보기

위에서 추출한 E01을 .dmg 파일로 컨버팅하여, mac에서 Read-Only로 마운트할 것이다.

 

 

 

 

윈도우에서는 인케이스를 사용, 리눅스/맥에서는 autopsy, xmount, plaso를 이용한다.

 

#3. Hash

3-1. MD5SUM 

brew install md5sha1sum

find /Volumes/E01/ -type f -exec md5sum '{}' \; | sed 's/ /./g' > ~/Evidences/md5Hash.csv

단, MD5는 충돌위험성이 있다.

 

3-2. SHA2 

md5보다는 SHA2를 권장한다.

 

3-3. VirusTotal 연동 코드

md5_search.py (코드는 강의를 구독하면 제공한다.)

3-4. Fuzzy 

brew install ssdeep

비슷한 파일이 있는지 검사하는데 특화됨

아래 예시는, 하나의 볼륨에 대한 해시값을 구해서 2개의 csv 파일로 저장하고 그 2개의 csv 파일을 비교하는 것이다. 

결과는 당연히 100% 일치한다.

-l 옵션은 상대경로 (/Volumes/E01 을 지정하기 위함)

-r 옵션은 하위 폴더에 있는 파일들도 검사하기 위함

-c 옵션은 결과를 csv 형태로 남기기 위함

-k 옵션은 2개의 결과를 비교하기 위함

 

 

끝.

Comments