SUA 멘토링 "기초부터 따라하는 디지털포렌식" 0주차 과제에 대한 내용이다.
B과제: 포렌식 분석을 위한 최선의 도구 모음과 환경 설정에 대해 고민해보고, 정리해서 보고서 제출. (도구 종류 및 정리, 단축키, 환경 변수 등)
1. 디지털 포렌식 수행 과정
디지털 포렌식 수행 과정을 보았을 때, 각 과정에서 사용되는 도구들이 존재할 것이다.
예를 들어, 사전 준비 과정에서도 도구를 검증하기 위한 도구가 존재할 것이고, 포장 및 이송 단계에서도 증거물을 포장 이송 보관하기 위한 도구들 (물리적 장비/절차 등)이 있을 것이라고 생각했다.
이것들을 모두 알기에는 내 경험이 턱없이 부족하고, 너무나 짧기 때문에 이 글에서는 증거 수집, 조사 분석 단계로 한정하여 도구를 정리해보려고 한다. 두 단계로 한정한다고 하더라도 모든 도구를 테스트하고 객관적으로 비교 검증하는 일은 현실적으로 쉽지 않다. 이 글은 디지털포렌식을 수행하는 데에 있어 어떤 도구들이 존재하고, 해당 도구들에는 어떤 장단점이 있구나 정도의 가벼운 정보획득의 수단으로 읽히기를 바란다.
무료 도구들에는 * 표시를 추가해두었다.유료 도구들이 기능면에서 더 좋은 것은 어쩔 수 없지만, 학습용으로는 무료 도구들을 선호하는 편이다.
출처: http://forensic-proof.com/archives/3357
2. 증거 수집(PC)
많은 경험이 없어, 아는 만큼 서술하고 추후에 계속 보충이 필요한 영역이다.
2.1. PC 이미징 도구(HDD, SSD)
소프트웨어 이미징
소프트웨어를 구동하기 위한 호스트 컴퓨터가 필요하고, 이미징 대상 저장장치를 호스트 컴퓨터에 연결하는 방식으로 이미징을 수행한다. 연결하는 것만으로도 저장장치 내부에 변경이 있을 수 있기 때문에 쓰기방지장치(Write Blocker)를 함께 사용한다. 나는 이미징 이외에 추출 기능을 지원하고 조금 더 보편적인 FTK Imager를 사용하고 있다. (출처)
- FTK Imager*
- Tableau Imager*
- Guymager*: 리눅스 기반의 GUI 이미징 도구라니!!!!, dd와 E01 포맷을 지원한다
하드웨어 이미징
별도의 호스트 컴퓨터가 필요하지 않으며, Source 저장장치와 Target 저장장치를 이미징 장비에 연결하여 이미징하는 방식으로 동작한다. 압축 이미징 방식인 E01 방식을 많이 사용한다고 알고 있다. 아래 도구들은 속도 면에서 차이를 보이고 있지만, 기기나 환경마다 너무 다른 소요시간을 보이고 있어 무엇이 우세하다고 말하기는 힘들다 (출처)
- Atola TaskForce
- Tableau TX1
- Logicube Forensic Falcon
2.2. 모바일 이미징 도구(방법) - 출처
하드웨어 기반
chip off는 메모리를 기기에서 떼어내는 방식이고 분해 과정에서 메모리에 저장된 데이터와 스마트폰 자체가 손상될 우려가 존재한다. 메모리 자체가 암호화되어 있는 경우에는 chip off해도 데이터를 얻을 수 없다. JTAG은 JTAG 포트를 이용하여 데이터를 추출하는 방식이다. 최신 출시되는 스마트폰의 경우에는 JTAG 인터페이스를 숨기거나 제거하는 경우가 많다.
소프트웨어 기반
1) 논리적
- dd* : 데이터 덤프 명령어
- ADB* : 백업기능 활용,
adb backup -apk -shared -all -f TargetDevice.adb
- Android Content Provider 기반
- Samsung SmartSwitch* : PC용 백업 프로그램
2) 물리적
물리적 수집을 위한 방법으로는 bootloader 취약점을 이용한 방법들이 많이 쓰인다. 휴대폰이 새롭게 출시될 때마다 신규 취약점에 대한 연구가 선행되어야 한다. 상용 도구들에서 일반적으로 많이 이용한다.
- Cellebrie UFED
- MD-NEXT
- MD-LIVE (선별 수집)
2.3. 메모리 덤프
Windows
켜져 있는 PC에서 증거를 수집할 때에는 메모리 덤프를 수행한다. 아래 3개의 도구는 메모리 전체에 대한 덤프를 수행한다(16G 램을 쓰면 사용하고 있는 부분에 대해 덤프). FTK Imager와 DumpIt은 가상화 모드를 사용하고 있는 PC에 대해 사용이 제한되는 반면, WinPmem은 사용이 가능하다. (출처) 한편, WinPmem은 Volatility 2와는 호환이 되지 않는다고 한다.
- FTK Imager*
- DumpIt*
- WinPmem*
- Belka RamCapturer*: 성능(원본 시스템 변경, 속도)에서 높은 결과를 보인다. FTK Imager와 달리 portable exe인 점 등 기회가 되면 써보는 것도 추천! (출처)
Linux/Android
아래의 도구들이 있다고 하는데, 직접 경험해보지는 못했다. 특히 Android는 권한이 중요할 것 같은데, 어떤 권한으로 돌아가는 프로그램인지 궁금하다.
- fmem*
- Lime*
- AVMl*: 리눅스 메모리 수집 도구
2.4. 선별 수집 도구
- KAPE*: EricZimmerman 갓갓님의 끝판왕 도구라고 생각한다. 데이터 선별 수집부터 분석까지 모두 지원하는 도구. 이미징 돌리기 전에 빠르게 중요한 파일들을 수집하는 데에 이용하면 효율적이다. 별도로 공부해서 링크 추가 예정
- BITLive_win*: Plainbit에서 만든 bat 스크립트. 수집 목록은 아래와 같다.
- 시스템 정보, Prefetch, RecentFileCache, Amcache
- 활성 데이터(네트워크 설정, 메모리 덤프, 프로세스 정보, 로그인 정보, 시스템 정보, 패스워드 정보)
- 비활성 데이터(MBR, VBR, $MFT, $LogFile, registry, event logs, LNK, Jumplist, driver, system profile, Browser artifacts, IconCache, Thumbcache, Downloaded Program Files, Java IDX Cache, WER, Timeline, Windows Search)
3. 증거 분석
일반적인 증거 분석과 관련된 모든 도구들을 소개한다. Windows 포렌식을 기준으로 작성하고, 일부 Linux 기반에서 동작하는 소프트웨어도 포함한다. Linux나 모바일 기반의 아티팩트만을 분석하는 도구들은 여기에서 다루지 않는다.
3.1. 유틸리티
디지털포렌식을 하기에 가장 효율적이면서도 꼭 필요한 도구들을 리스팅한다. 아티팩트와 직접적인 관련은 없지만 꼭 필요한 도구의 설치 및 환경 세팅에 대해 정리하였다.
- Windows Terminal*: cmd 대체
- Notepad++*: 메모장 대체, 여러 파일 동시 열기, 고급 검색 기능 지원
- VM Workstation*: 가상머신 구동 (PRO 부터는 유료)
- CyberChef(Online)*: 각종 hex 변환
- 알캡쳐*: 보고서용 깔끔한 캡쳐
- VSCode*: 코드 작성
3.2. 기초 분석 도구
분석 도구 중에서 어디에나 잘 쓰이는 도구들을 정리하였다.
Hex 데이터
- HxD*: hex 데이터 보기, 편집
- 010editor: hex 데이터 보기, 플러그인 지원으로 구조 분석이 쉽다!
파일 검색
- everything*: 파일 검색, 15버전 업그레이드시 고급 검색 기능 지원
- astrogrep*: 특정 경로 내부 문자열 검색, 파일 이름 내용까지 GUI로 검색 지원
해시값 계산
- HashCalc*: 파일 및 문자열 해시값 계산
- certutil*: 해시값 계산, Windows 내장 명령어
certutil -hashfile aaa.exe SHA1
- HashTab*: Windows 탐색기와 연동되어 파일 속성 창에서 파일에 대한 해시를 쉽게 볼 수 있도록 해준다!
기타
- DB Browser for SQLite*: DB 뷰어
- DCode*: 시간 변환
- forecopy*: filestamp를 변경하지 않는 복사도구
- Sysinternals Suite*: Strings, Process Explorer, Process Moniter, Autorun 등 포함
3.3. 통합 분석 도구
디스크 이미지를 입력받아 내부에서 다양한 아티팩트들을 자동으로 분석해주는 도구들이다.
AXIOM과 X-Ways 모두 사용 경험이 없어 출처의 설명을 참고하였다.
- X-Ways Forensics: 파일시스템의 상세구조까지 직접 확인가능하고 필터링, 검색 기능이 뛰어나며 무엇보다도 가볍다.
- Magnet AXIOM: 아티팩트 분석 기능, 레코드 복구 기능이 탁월한 도구로 전문적 지식 없이도 쉽게 사용 흔적 확인 가능
- Autopsy*: 무료 도구임에도 다양한 기능을 제공한다. 대표적으로 파일 타입별(이미지, 문서) 정리, 타임라인 분석 등
- FTK Imager*: 아티팩트 분석은 자동으로 수행할 수 없지만, 파일시스템을 인식하여 데이터 추출이 가능하다. 가볍다!!
- KAPE*: EricZimmerman 갓갓님의 끝판왕 도구라고 생각한다. 데이터 선별 수집부터 분석까지 모두 지원하는 도구. 이미징 돌리기 전에 빠르게 중요한 파일들을 수집하는 데에 이용하면 효율적이다. 별도로 공부해서 링크 추가 예정
3.4. 통합 분석 환경(Live CD 형태) - 출처
도구가 실행되는 환경에 구애 받지 않고 이동 장치 단에서 실행되는 도구. 대부분 여러 가지 도구가 설치되어 있는 OS로 배포. Live CD에서 생성한 파일 또한 Live CD가 실행되고 있는 장치에 저장되므로 설치할 때에는 데이터 용량이 충분한 이동 장치 준비 필요
- Kali Linux*
- SIFT*: Live CD 형태로 소개하고 있지만, ubuntu와 Windows WSL에서 설치하여 사용도 가능하다
- DEFT*
- Tsurugi Linux*
- CSI Linux*
- SOF-ELK*: 빅데이터(대용량 로그) 분석을 위한 VM. ElasticSearch 기반
3.4. 아티팩트 분석 도구
출처: DFRC 파일시스템 세미나, Plainbit 블로그
추가) 타임라인 구성:
- Timeline Explorer: CSV 형태로 결과를 생성하는 도구들에 대해 타임라인을 구성해줌
- Plaso(log2timeline): 이미지 전체에 대해서 타임라인을 생성해준다!! 이것 역시 조금 더 공부하고 정리해서 링크 추가 예정
1) 메모리 덤프
Volatility 3버전 역시 경험해보지 못했다. Rekall은 deprecated되어 목록에서 제거하였다.
- Volatility*: 2버전은 Windows 10 최신버전 지원 불가, 3버전을 권장
2) 레지스트리
- Registry Explorer*
- regripper*
- REGA*
- regedit*(기본) : Windows 내장 레지스트리 편집기
레지스트리 내부에서 특정 정보를 추출하는 도구들
- Autoruns*: 자동실행 관련
- UserAssistView*: UserAssist 관련
- ShellbagExplorer*: Shellbag 데이터 조회
3) Link File(LNK)
4) Jump List
- Jump List Explorer*
- JLECmd*
5) Thumbnail/IconCache
6) SRUM/DRUM
7) Recycle Bin
- Windows File Analayzer*
- RBCmd
8) Windows Indexing
9) Prefetch/Superfetch
- WinPrefetchView*: GUI, 자동 수집
- PECmd*: CLI
- CrowdResponse*: Superfetch 수집 및 분석 도구
10) Windows Timeline
11) VSS(Volume Shadow Copy Services)
12) Telemetry
- Diagnostic Data Viewer*: Microsoft Store에서 다운로드 가능
13) $MFT
14) Apache/IIS Log
15) LogFile/UsnJrnl
16) Event Logs
- Microsoft Message Analyzer*: 현재 지원 중단. 다운로드 링크
17) Web Browser
- BrowsingHistoryView*: Chrome, IE/Edge, FireFox, Opera 지원. 자동 추출 지원.
- Hindsight*: URL, 다운로드 기록, 캐시 기록, 책갈피, 자동 완성 기록, 저장된 암호, 기본 설정, 브라우저 확장, HTTP 쿠키 및 로컬 저장소 기록(HTML5 쿠키)을 비롯한 다양한 유형의 웹 아티팩트를 구문 분석 가능함
- WEFA: 웹브라우저 아티팩트 분석도구. REGA와 사용법, UI가 비슷하여 마음이 편안하다
- 기타 도구들 : 링크
18) Amcache/ShimCache(AppCompatCache)/RecentFileCache
- AmcacheParser*
- AppCompatCacheParser*
- RecentFileCacheParser*
19) RDP Bitmap Cache
- BMC-Tools*: 원격 데스크톱 클라이언트(RDP)에서 이미지 및 비트맵 리소스를 캐싱해둔 것을 파싱함. (설명)
20) Compound Document
21) USB 등 저장장치 연결 흔적
3.5. 디버깅
1) 동적
- x64dbg*: ollydbg와 단축키 동일. 64비트 지원
- windbg*: Windows Application 분석에 좋음
2) 정적
- IDA PRO: Hex-ray 기능, IDA-Python 기능 지원
- ghidra*: 무료!
- cutter*: 무료!
3.6. 네트워크
- WireShark*: 네트워크 패킷 캡쳐, 분석 등 지원
- Networkminer*
- tshark*
3.7. 파일 카빙
- binwalk*
- foremost*
- bulk_extractor*
- scalpel*: 지원하는 파일 시스템은 FAT, NTFS, ext2/3, HFS+가 있음
- R Studio: 파일 카빙 툴. Windows에서 잘 돌아간다
3.8. 기타 분석
- ipnetinfo: IP 국가 정보 확인
- webshellkill: 웹셸 확인 용도
- Sleuth Kit*: 포렌식 CLI 툴킷. 디스크 이미지 분석과 파일 복구를 지원함
- sysmon: 이벤트로그를 확장하여, 침해사고/악성코드 분석 시에 더 나은 정보를 얻을 수 있게 해준다
- openstego: 스테가노그래피 분석
4. 증거 분석(PC/Linux)
네트워크 분석
파일시스템 분석
- Sleuth Kit*: 포렌식 CLI 툴킷. 디스크 이미지 분석과 파일 복구를 지원함
5. 증거 분석(모바일)
아직 경험이 많이 없네요. 더 경험해보고 추가하겠습니다!
- MD-NEXT: 통합 분석 도구
- autopsy*: 통합 분석 도구
- SANTOKU*: 통합 분석 도구(Live CD 형태)
- jadx-gui*: 안드로이드 정적 분석 도구
- frida*: 동적 분석 도구
6. TBD
- Plaso(log2timeline) 사용해보고 블로그 정리글 남기기
- KAPE 사용해보고 블로그 정리글 남기기
- Registry 여러 도구들을 어떻게 사용해야 가장 효율적인지 판단하기
- MiTec 도구 모음 써보고 필요한 도구들 건져내기
도움 주신 분들
- <F_ACTIVE> 이충호님, 강현수님, 정현우님, 하정희님, 정상수님
- SUA 멘토링 권경민님, 이서현님, 강정윤님, 조준영님
- 오동빈님, 김동현님, 김동현님😁, Yongsoo Gordon Park님