[Tool] 디지털 포렌식 유용 도구 소개 (Digital Forensics Tool)
디지털 포렌식 업무를 수행하는데 도구는 필수적인 요소 중 하나이다.
디지털 포렌식만을 위한 전문적인 포렌식 도구가 있는 반면 포렌식을 위해 개발되지는 않았지만 포렌식 업무에 사용되는 도구가 있다.
또 여러 기능을 종합해 놓은 종합 도구도 존재한다.
하지만 디지털 포렌식 도구는 대부분 상용 소프트웨어이기 때문에 개인적으로 사용할만한 도구는 많지 않다.
본 글은 사용자가 아무런 제약 없이 사용할 수 있는 무료 디지털 포렌식 도구나 디지털 포렌식이 목적은 아니지만 포렌식 업무에 적용할 수 있는 도구, 세계적으로 검증된 도구 등을 위주로 소개한다.
(1) Live CD
-
도구가 실행되는 환경에 구애 받지 않고 이동 장치 단에서 실행되는 도구
-
대부분 여러 가지 도구가 설치되어 있는 OS로 배포
-
Live CD에서 생성한 파일 또한 Live CD가 실행되고 있는 장치에 저장되므로 설치할 때에는 데이터 용량이 충분한 이동 장치 준비 필요
1-1) Kali
-
설치 / 참조 사이트 : https://www.kali.org/
-
포렌식 보다 모의해킹에 특화된 Live CD이긴 하지만 포렌식을 수행하기에 있어 필요한 대부분의 도구들은 갖춰짐
-
지속적으로 디지털 포렌식 분야의 도구들이 추가되고 있음
-
2013년까지는 BackTrack이었으며, 이후 Kali라는 이름으로 바뀜
-
처음 Live CD로 만들어 사용할 때에는 설정이 정상적으로 되어 있지 않아 작동되지 않는 도구들도 있음
-
디지털 포렌식 업무 수행 전에 간단히 도구들을 모두 테스트해 보는 것이 좋음
1-2) SIFT
- 설치 / 참조 사이트 : https://digital-forensics.sans.org/community/downloads/
-
세계적인 정보보호 교육 기관인 SANS에서 개발한 포렌식 도구이며, 무료로 제공되는 도구 중 하나
-
해당 도구는 다른 Live CD 도구들에 비해 설치된 도구가 적음
-
해당 도구를 사용할 때에는 어떠한 도구가 설치되어 있는지 확인하고 자신이 필요한 도구를 더 설치해 사용하는 것이 좋음
1-3) DEFT
-
설치 / 참조 사이트 : http://www.linuxandubuntu.com/home/deft-linux-a-linux-distribution-for-computer-forensics
-
해당 도구는 Windows를 대상으로 한 Live CD 도구로 SIFT와 동일한 포렌식만을 위한 Live CD 도구
-
SIFT와 비교 했을 때 DEFT의 도구 개수가 2배 넘게 많은 편
-
하지만 도구가 많다고 좋은 것은 아님
-
얼마나 도구가 문제 없이 실행되는지가 문제
-
그리고 네트워크 카테고리 부분의 툴이 조금은 부족한 것이 특징
1-4) Santoku
-
설치 / 참조 사이트 : https://santoku-linux.com/
-
ViaForensics에서 만든 우분투 기반의 악성코드 분석 전용 Live CD 포렌식 도구
-
특히 모바일 앱이 주 목적이며, 부수적으로 일반 악성코드 분석도 가능
-
설치되어 있는 도구들은 악성 앱 분석에 주로 사용되는 것들
-
일반적인 메모리 분석, 파일 시스템 분석에는 적합하지 않은 도구
(2) Disk Imaging
-
디스크 이미징 도구는 필수적인 도구 중 하나이며, 제일 디지털 흔적을 많이 발견할 수 있는 부분이 하드 디스크와 파일 시스템
-
그렇기 때문에 현재까지도 가장 많이 분석을 시도하는 부분이며, 향후에도 계속 그러할 것
-
하드 디스크 전체를 복사하거나 덤프할 때는 숨김 영역을 고려해야 하는데 하드 디스크 복제나 복사는 대부분 하드웨어 이미징 도구로 이루어짐
-
도구 선택 시 숨김 영역까지 복제 및 덤프를 시도하는지 알아보고 선택해야 함
2-1) FTK Imager
-
설치 / 참조 사이트 : https://accessdata.com/product-download
-
AccessData사에서 개발한 도구로 무료로 제공되고 있음
-
디스크 이미징 기능뿐만 아닌 메모리 캡처, 디스크 이미지 분석 기능까지 제공
-
개인적으로 사용할 때에는 해당 도구를 사용해도 무리없이 분석 가능
-
Lite 버전도 함께 무료로 제공되어 포터블 파일로 분석 가능
2-2) dd
-
설치 / 참조 사이트 : http://gmgsystemsinc.com/fau/
-
George M. 와 Garner Jr.가 개발한 도구로 무료로 제공되며 이미징 기능 또한 강력함
-
해당 도구와 nc 등을 같이 사용하면 원격에서 디스크 이미징을 수행 가능
-
가장 좋은 것은 모든 OS 플랫폼에서 실행 가능하다는 것
(3) Memory
-
메모리 분석 도구는 계속해서 급격히 많은 발전과 수요가 증가
-
악성코드의 언패킹이 날로 어려워져 메모리를 덤프하여 덤프 파일로 악성코드를 분석하는 경우가 많음
-
이러한 이유 때문에, 메모리 분석 도구가 많이 사용됨
3-1) Volatility
-
설치 / 참조 사이트 : https://www.volatilityfoundation.org/
-
현재 나온 메모리 분석 도구 중 단연 으뜸인 도구로 Volatile system 사에서 개발한 도구
-
메모리 이미지를 통한 프로세스 덤프, 프로세스 메모리 덤프, 레지스트리 분석 기능 등 많은 기능 지원
-
현재 버전은 베타 버전인 3 버전까지 나온 상태
-
해당 도구는 Python으로 제작되어 대부분의 OS 플랫폼에서 동작이 가능
-
Windows, Mac OS X, Linux 메모리 분석을 지원
3-2) RedLine
-
설치 / 참조 사이트 : https://www.fireeye.kr/services/freeware/redline.html
-
해당 도구는 Memoryze 도구를 기초로 GUI 기반의 메모리 분석 도구
-
메모리 분석 속도를 위해 메모리 분석 모드가 3가지로 나뉨
-
Mandiant 사에서 개발, 배포
-
메모리 분석에 대한 갖가지 레포트 기능도 있어 시각화에서는 volatility보다 우수
-
하지만 volatility보다 많은 기능을 지원하지는 않고 메모리 이미지에 대한 내용만 시각화해 주므로 프로세스 덤프 등의 기능은 존재하지 않음
3-3) Volafox
-
설치 / 참조 사이트 : https://code.google.com/archive/p/volafox/
-
포렌식 연구를 하시는 n0fate라는 닉네임을 사용하시는 우리나라 사람이 만든 메모리 분석 도구
-
Volatility와 마찬가지로 Python 기반의 메모리 분석 도구
-
하지만 Volatility처럼 모든 OS를 지원하는 것이 아닌 Mac OS X 메모리 분석에 특화되어 있는 도구
-
또 다른 도구로 Volafunx가 있으며, 이것은 FreeBSD 메모리 분석에 특화된 도구
(4) Network
-
인터넷은 사람들의 일상 생활과 아주 밀접한 관계에 있어 포렌식 업무 수행에 있어 분석 대상 시스템에 인터넷 활동을 빼놓으면 안 됨
-
분석 대상 시스템에서 어떠한 인터넷 활동을 했는지 파악할 수 있는 부분은 인터넷 브라우저를 분석하는 경우도 있지만 네트워크 패킷 분석을 수행하는 경우도 적지 않음
-
예를 들어, 파일을 전송했을 때 인터넷 브라우저에서는 그 흔적을 찾기 힘들고, 이유는 인터넷 브라우저에는 대부분 다운로드 흔적만 남기 때문
-
하지만 네트워크 패킷을 분석해보면 파일의 전송 흔적을 쉽게 찾을 수 있음
-
이렇듯 상황에 따라 분석 방향을 잘 잡아야 효율적인 포렌식 업무 수행이 됨
4-1) Wireshark
-
설치 / 참조 사이트 : https://www.wireshark.org/download.html
-
패킷 캡처와 분석에 있어서 유명한 도구 중 하나
-
특히 프리웨어이고 지원하는 기능이 다양하여 더 많은 관심을 받는 도구
-
패킷의 다양한 프로토콜들을 지원하며 몇몇 암호화 프로토콜의 복호화 기능을 지원
-
사용자 편의를 위해 Visualization 기능을 지원
-
대부분 OS 플랫폼에서 동작이 가능하다는 점도 관심 받는 이유 중 하나
-
해당 도구는 기본적으로 GUI를 제공하고, Tshark라는 도구는 CLI도 지원
4-2) Tcpdump
-
설치 / 참조 사이트 : http://www.tcpdump.org/
-
리눅스에서 가장 많이 사용하는 패킷 캡처 도구
-
CLI 기반으로 여러 가지 옵션과 조건을 설정해 자신이 보고 싶은 패킷만 필터해서 볼 수 있는 강력한 필터 기능 제공
-
사용법을 알면 알수록 편한 도구여서 전문가들이 자주 애용
4-3) Scapy
-
설치 / 참조 사이트 : https://scapy.net/
-
Python 모듈로 Python script 작성을 불러와 사용할 수 있는 도구
-
모듈로 사용하지 않고 바로 인터프리터에서 사용해도 상관 없음
-
raw socket을 지원하여 패킷 캡처는 물론 인터프리터를 통해 임의로 소켓을 조작하여 여러 가지 플래그의 패킷을 사용자가 실시간으로 전송할 수 있는 장점을 지님
(5) File System
-
시스템에서 생성되는 모든 파일이나 데이터들은 하드 디스크 또는 메모리에 저장 됨
-
하지만 반 영구적으로 저장하기 위해서는 하드 디스크에 저장해야 하는데 하드 디스크에는 파일과 디렉토리를 효율적으로 저장하고 처리하기 위해 파일 시스템이 존재
-
사용자나 시스템이 남긴 흔적을 찾기 위해서는 파일 시스템을 분석하는 것이 가장 좋으며 많은 흔적을 발견할 수 있는 좋은 곳이 바로 파일 시스템
5-1) TSK
-
설치 / 참조 사이트 : http://www.sleuthkit.org/sleuthkit/download.php
-
The Sleuth Kit이라는 풀 네임을 가지는 해당 도구는 파일 시스템에 특화된 도구
-
현존하고 있는 대부분의 파일 시스템 분석을 지원
-
지원하는 파일 시스템은 NTFS, FAT, HFS+, Ext2, Ext3, UFS1, UFS2
-
대부분의 OS와 Cygwin에서도 해당 도구는 작동
5-2) Autopsy
-
설치 / 참조 사이트 : http://www.sleuthkit.org/autopsy/index.php
-
TSK의 GUI 버전으로 웹 브라우저 형식
-
TSK에서 지원하는 기능 대부분을 지원하며, 버튼 클릭만으로 파일 시스템을 분석, 삭제 파일 복구 등을 할 수 있는 유용 도구
(6) File Carving
-
파일 카빙과 관련된 도구들은 그렇게 많지는 않음
-
파일이 조각화 되어 디스크에 존재할 때 파일 카빙 도구나 파일 복구 도구는 완벽하게 복구하지 못함
-
이 부분은 아직까지 연구 중이며, 앞으로도 계속 연구 되어야 하는 부분
6-1) foremost
-
설치 / 참조 사이트 : http://foremost.sourceforge.net/
-
해당 도구는 특별 수사 및 보안 연구를 하는 미공군 연구실에서 개발된 도구
-
파일 시그니처를 기반으로 대상 파일에서 여러 파일들을 카빙하는 도구
-
옵션으로 카빙하고자 하는 파일의 확장자를 지정하면 해당 확장자 파일만 카빙
-
all이나 옵션을 지정하지 않으면 foremost에서 지원하는 모든 확장자 파일을 카빙
6-2) scalpel
-
설치 / 참조 사이트 : https://github.com/machn1k/Scalpel-2.0
-
해당 도구도 foremost와 동일하게 시그니처 기반으로 파일을 복구하지만 또 하나의 카빙 패턴을 가짐
-
파일 시스템에서 데이터 조각들을 검색하여 하나로 모아 파일을 카빙
-
지원하는 파일 시스템은 FAT, NTFS, ext2/3, HFS+가 있음
6-3) recoverjpeg
-
설치 / 참조 사이트 : https://rfc1149.net/devel/recoverjpeg.html
-
jpeg 파일과 동영상 파일만을 카빙하는 도구로 무료로 배포
(7) 기타 도구
-
부수적으로 포렌식에 도움이 되는 도구들이 해당
-
포렌식 업무 수행 목적이 아닌 다른 프로그래밍, 디버깅 등이 목적인 도구들
-
하지만 포렌식 업무에서도 필요한 도구들이므로 사용법이나 어떤 기능을 하는지 정도는 알아두는 것이 좋음
7-1) HxD
-
설치 / 참조 사이트 : https://mh-nexus.de/en/hxd/
-
해당 도구는 HexViewer로 일반 HexViewer랑 대부분 비슷한 기능을 가짐
-
해당 도구에는 파일 비교 기능과 복사할 때의 타입 결정 기능, 프로세스 메모리 덤프 기능 등의 기능이 존재
-
현재 여러 가지 나라의 언어로 지원
7-2) SQLite Database Browser
-
설치 / 참조 사이트 : https://sqlitebrowser.org/
-
해당 도구는 SQLite 파일 포맷을 분석할 때 유용하게 사용되는 도구
-
요즘 스마트폰의 파일들을 보면 거의 SQLite 파일 포맷이고, firefox, chrome 등이 브라우저도 여러 가지 정보를 SQLite 파일 포맷으로 저장
-
이러한 파일들은 HexViewer로 수동 분석해도 되지만, 간편하게 해당 도구를 사용하면 테이블 별로 정보들을 볼 수 있어 분석하기가 더욱 더 쉬움
-
더구나 SQLite는 어떠한 정보를 지워도 기본적으로 SQLite 파일 포맷에서는 지워지지 않기 때문에 포렌식에 있어 중요한 의미를 지님
7-3) AnalyzeMFT
-
해당 도구는 MFT 파일 분석 도구로 사용법이 간단
-
해당 도구의 결과를 저장할 파일을 사용자가 지정
-
CSV 파일 등으로 지정하여 excel을 사용하여 간편하게 그 결과를 보고 MFT 엔트리들을 분석 가능
-
해당 도구는 CLI 기반
7-4) Inkanalyser
-
Windows의 링크 파일(바로가기)을 분석해주는 도구
-
Windows의 링크 파일은 여러 가지 많은 정보를 담고 있고 포렌식 관점에서의 의미도 상당함
-
사용법도 간단하며 CLI 기반 도구
7-5) DCode, TimeLord
-
DCode 설치 / 참조 사이트 : https://www.digital-detective.net/dcode/
-
TimeLord 설치 / 참조 사이트 : http://computerforensics.parsonage.co.uk/timelord/timelord.htm
-
해당 도구들은 TimeStamp 변환 도구
-
포렌식에서 시간은 아무 큰 의미이며 절대로 추측이 되어서는 안될 정보
-
대부분 파일이나 디렉토리 또 이벤트 등은 시간이 기록되는데 이 시간은 분석 대상 컴퓨터가 위치했던 장소나 파일 시스템의 정책 등에 의해 여러 가지 표준 시간으로 기록
-
표준 시간은 각각 시차가 있어 표준 시간 변환도 여러 가지 의미로 중요하게 작용
-
해당 도구들은 이러한 시간 변환을 해주는 도구들로서 GUI 기반
7-6) BinText
-
설치 / 참조 사이트 : https://softfamous.com/bintext/
-
스트링을 나열해 주는 도구
-
여러 가지 스트링 검색 도구들이 있지만 해당 도구가 제일 많이 쓰임
-
GUI 기반으로, 스트링 검색은 악성코드 분석이나 실행 파일 분석을 수행할 때 자주 사용
7-7) Lnk Parser
-
설치 / 참조 사이트 : https://tzworks.net/prototype_page.php?proto_id=11
-
해당 도구도 lnkanalyser처럼 lnk 파일을 분석해 주는 도구
-
각 오프셋을 parsing 하여 정보를 분석해 보기 좋게 출력해 줌
-
32bit와 64bit 모두 지원
-
Windows, Linux, Mac OS X 모두 지원하는 CLI 기반의 도구
7-8) AliveRegistry Viewer
-
설치 / 참조 사이트 : http://lastbit.com/arv/default.asp
-
레지스트리 하이브를 트리 구조로 만들어 주고 각 하이브의 value와 데이터를 regedit과 동일하게 보여주는 도구
-
해당 도구를 이용하면 활성 시스템의 레지스트리가 아닌 비활성 레지스트리도 분석이 가능
-
하이브를 txt 파일로 export하면 하이브의 마지막 수정 시간 등 여러 가지 파악 가능
7-9) WFT
-
설치 / 참조 사이트 : http://www.foolmoon.net/security/wft/
-
Windows Forensics ToolChest의 약자
-
포렌식에 필요한 Windows OS의 정보를 자동적으로 수집하고 보고서를 작성해 주는 도구
-
특징으로 CD-ROM에서 작동이 가능
-
해당 도구는 따로 cmd.exe의 경로를 지정해주어 하며, 침해 시스템의 cmd.exe보다는 직접 가지고 다니는 무결성이 보장된 cmd.exe를 지정해 주는 것이 좋음
# Reference
'Tool' 카테고리의 다른 글
[Tool] Volatility (0) | 2020.05.22 |
---|---|
[Tool] FTK Imager (0) | 2020.03.01 |
[Tool] HxD Editor (0) | 2020.03.01 |