◎ 배경 및 개요
- MemProcFS는 물리 메모리를 가상 파일 시스템으로 마운트해 분석하는 방식의 메모리 포렌식 도구입니다.
- 전통적인 메모리 분석이 전용 명령어와 복잡한 파싱에 의존했다면, MemProcFS는 프로세스, 레지스트리, 네트워크, 커널 객체, 포렌식 산출물을 디렉터리와 파일처럼 보여 주어 훨씬 직관적인 접근을 가능하게 합니다.
- 프로젝트 소개에서도 “파일처럼 보는 물리 메모리”와 “간단한 클릭 기반 분석”을 핵심 가치로 강조하고 있습니다.
- 이 도구의 강점은 단순히 덤프 파일만 여는 데 있지 않습니다.
- 정적 메모리 덤프는 물론, DumpIt, WinPMEM, PCILeech FPGA, 가상머신, 원격 LeechAgent까지 폭넓게 지원하여 사고 대응(IR)과 현장 분석에 모두 대응합니다.
- 즉, MemProcFS는 메모리 포렌식의 접근성을 높이면서도 실제 운영 환경에서 필요한 유연성을 함께 제공하는 프레임워크라고 보시면 됩니다.
◎ 주요 변경 사항
- 공식 저장소의 변경 이력을 보면,
- MemProcFS는 초기에 단순한 메모리 파일 시스템에서 시작해 점차 고급 포렌식 자동화와 API 중심 프레임워크로 발전해 왔습니다.
- v5.0에서는 병렬 분석 작업, 포렌식 기능 확장, CSV 지원, Linux 플러그인, Java API가 크게 추가되었고, 이후 버전에서 Virtual Machine 지원, ARM64 Windows 지원, Rust API, Yara 기반 탐지, 원격 분석 기능 강화가 이어졌습니다.
- 최근 릴리스 흐름에서는 성능 개선, 새로운 탐지 시그니처, Linux/ARM64 확장, Proxmox 덤프 지원, Hibernation 파일 지원, DNS 캐시 파싱 같은 실전형 기능이 눈에 띕니다.
- 명령줄 위키를 보면,
- 포렌식 모드의 신뢰성과 재현성도 상당히 강화된 것을 확인할 수 있습니다.
- 예를 들어 -forensic 모드는 분석 결과를 SQLite 기반으로 저장하며, 1~4 단계로 결과 보존 방식이 달라집니다.
- 또한 -forensic-yara-rules, -license-accept-elastic-license-2-0, -pagefileX, -pythonexec, -remote, -remotefs 같은 옵션이 추가되어, 단순 마운트 도구가 아니라 분석 파이프라인을 구성하는 엔진에 가까운 형태로 진화했습니다.
◎ 상세 기능 설명
- MemProcFS의 핵심은 루트 파일 시스템 구조입니다.
- 공식 위키 기준으로 /sys, /registry, /forensic, /misc, /vm 같은 상위 디렉터리가 있고, 그 아래에 프로세스, 서비스, 네트워크, 드라이버, 사용자, 이벤트 로그, 타임라인, Prefetch, Yara 결과 등이 체계적으로 정리됩니다.
- 프로세스별로도 /process 계열 구조를 통해 핸들, 모듈, 힙, 메모리 맵, 토큰, 스레드, VAD, 최소 덤프 등 세부 정보를 파일처럼 열람할 수 있습니다.
- 덕분에 조사자는 “무슨 데이터가 있는지”를 탐색하는 과정 자체를 파일 탐색과 비슷하게 수행할 수 있습니다.
- 포렌식 관점에서 특히 유용한 것은 자동 분석 결과입니다.
- forensic 영역은 시간대 분석, NTFS/MFT, Prefetch, JSON/CSV 출력, 파일 복구, Yara 검사, FindEvil 탐지를 포함하며, 대량 분석 결과를 구조화된 형태로 제공합니다.
- 또한 -forensic 모드는 결과를 SQLite로 남기므로, 반복 조사나 스크립트 기반 후처리에 적합합니다.
- 여기에 Python, Rust, Java, C#, C/C++ API가 제공되어, 연구자가 원하는 방식으로 커스텀 플러그인이나 자동화 스크립트를 붙일 수 있습니다.
◎ 기획 의도와 개선점
- MemProcFS의 기획 의도는,
- “메모리 분석을 파일 시스템처럼 단순화하되, 내부적으로는 고급 분석 엔진을 제공하자”는 방향으로 보입니다.
- 공식 소개문에서도 GUI에 가까운 직관성과 함께, hex editor·WinDbg·PowerShell·Python 같은 기존 도구를 그대로 활용할 수 있도록 읽기/쓰기를 파일 인터페이스로 노출하는 점을 강조합니다.
- 이는 기존 메모리 포렌식 워크플로우를 대체하기보다, 기존 도구를 더 쉽게 연결하는 중간 계층으로서의 역할을 의도한 설계로 해석할 수 있습니다.
- 기술적 개선 측면에서는,
- 확장성과 원격성, 그리고 반복 분석의 자동화가 핵심입니다.
- 원격 LeechAgent 연결과 -remotefs는 네트워크 상의 지연이 있는 환경에서도 현장 대응을 가능하게 하고, Python batch 실행은 마운트 없이도 머리 없이(headless) 분석을 돌릴 수 있게 합니다.
- 또한 Yara, Elastic 기반 built-in 룰, FindEvil, 시스템 정보 모듈, 이벤트 로그 모듈, 가상머신 감지 같은 기능은 메모리 분석을 단순 조회가 아니라 “탐지와 분류” 중심으로 끌어올린 변화입니다.
◎ 사용방법 가이드
- 가장 기본적인 사용법은 메모리 덤프를 마운트하는 것입니다.
- Windows에서는 기본적으로 M: 드라이브로 마운트되며, Linux에서는 -mount 뒤에 마운트 경로를 지정합니다.
- 예를 들어 memprocfs.exe -device c:\temp\win10x64-dump.raw처럼 덤프 파일을 지정하면 되고, Linux에서는 ./memprocfs -mount /home/pi/mnt -device /dumps/win10x64-dump.raw 형태로 사용할 수 있습니다.
- 실무에서는 -v 또는 -vv로 로그를 늘려 초기 상태를 확인하고, 필요 시 -pagefile0 pagefile.sys -pagefile1 swapfile.sys를 붙여 분석 품질을 높이는 방식이 유용합니다.
- 포렌식 모드를 쓰실 때는,
- -forensic 1처럼 명시적으로 실행하는 편이 좋습니다.
- 이 모드는 분석을 구조화하고 SQLite 결과를 남기기 때문에, 동일 버전에서 재현 가능한 결과를 얻는 데 유리합니다.
- 또한 -forensic-yara-rules로 사용자 정의 Yara 룰을 넣을 수 있고, -license-accept-elastic-license-2-0를 통해 Elastic 기반 내장 룰도 사용할 수 있습니다.
- 자동화가 필요하시면 -pythonexec를 활용해 시작 시 Python 스크립트를 실행하고, API 기반으로 프로세스 목록 수집, RWX 섹션 탐색, CSV 추출 등을 일괄 처리하시면 됩니다.
◎ 기대효과와 주의사항
- MemProcFS를 쓰면 메모리 분석의 진입 장벽이 크게 낮아집니다.
- 프로세스와 레지스트리, 네트워크, 드라이버, 사용자, 포렌식 결과를 파일처럼 다룰 수 있어 조사 속도가 빨라지고, 다른 분석 도구와의 연동도 쉬워집니다.
- 특히 현장 대응에서는 원격 분석, 라이브 메모리, 스크립트 자동화가 결합되면서 “덤프를 뜨고 나중에 보는” 방식보다 훨씬 빠른 판단이 가능합니다.
- 메모리 포렌식의 복잡성을 줄이면서도 실제 증거 탐색 능력을 유지할 수 있다는 점이 가장 큰 장점입니다.
- 다만 주의하실 점도 분명합니다.
- pagefile이나 swapfile은 생성 시점 차이로 인해 데이터 품질이 떨어질 수 있으므로, 가능한 한 덤프와 시간적으로 가까운 파일만 사용하셔야 합니다.
- 또한 -disable-symbolserver, -disable-infodb, -disable-yara 같은 옵션을 잘못 쓰면 분석 품질이 떨어질 수 있고, 포렌식 모드의 Elastic 룰은 라이선스 동의가 필요합니다.
- 마지막으로 라이브 메모리와 원격 분석은 환경 의존성이 있으므로, 실제 운영 전에는 Dokany, libusb, FUSE, Python 경로, 드라이버 서명 상태를 미리 점검하시는 것이 좋습니다.
◎ 마무리
- MemProcFS는 “메모리를 파일처럼 읽는” 수준을 넘어, 메모리 포렌식과 사고 대응을 하나의 분석 플랫폼으로 묶어 주는 도구입니다.
- 그래서 단순 사용법만 익히는 것보다, 루트 파일 시스템 구조와 포렌식 모드, API, 원격 연결까지 함께 이해하시면 실무 활용도가 훨씬 높아집니다.
반응형
'DEFENSIVE > Memory Forensics' 카테고리의 다른 글
| [Bulk Extractor] Bulk Extractor 메모리 포렌식 도구 (0) | 2026.06.30 |
|---|---|
| [Volatility] Volatility3 2.28.0 release (0) | 2026.05.02 |
| [Volatility] Volatility 3 설치(For offline Windows) (0) | 2026.04.18 |
| [Volatility] Volatility 볼라틸리티 2 설치(For offline Windows) (0) | 2026.03.31 |
| [Volatility] Volatility 볼라틸리티 3 설치 (0) | 2025.05.22 |
