Volatility 3 — 보안 분석 및 진단
RAM 덤프 파일을 분석해 실행 중이던 프로세스·파일·네트워크 흔적을 복원하는 메모리 포렌식 프레임워크입니다.
기본 정보
| 프로그램 이름 | Volatility 3 (볼러틸리티 3) |
|---|---|
| 한 줄 소개 | RAM 덤프 파일을 분석해 실행 중이던 프로세스·파일·네트워크 흔적을 복원하는 메모리 포렌식 프레임워크입니다. |
| 개발·유지 | The Volatility Foundation |
| 공식 홈페이지 | https://www.volatilityfoundation.org/ |
| 공식 문서 | https://github.com/volatilityfoundation/volatility3/wiki |
| 공식 다운로드 | https://github.com/volatilityfoundation/volatility3/releases |
| 지원 운영체제 | Linux, macOS, Windows (Python 3.7 이상) |
| 라이선스 | GPL-3.0-or-later (Volatility 3 프레임워크) |
| 안정 버전 | 2.28.2 (2026-09-17 출시) — 확인일 2026-10-18 |
| GitHub 저장소 | https://github.com/volatilityfoundation/volatility3 |
| 분류 | 보안 분석 및 진단 (태그: 포렌식, 메모리 분석, 디지털 증거, 사고 대응) |
이 프로그램은 무엇인가?
Volatility 3는 시스템 RAM을 덤프한 이미지를 분석해 그 시점의 메모리에 남았던 정보를 뽑아 내는 포렌식 프레임워크입니다. 실행 중이던 프로세스 목록, 열려 있던 파일·소켓, 로그인 세션, 주입된 코드 흔적 등을 사후에 복원할 수 있습니다.
분석 작업은 플러그인 단위로 수행합니다. OS 버전에 맞는 심볼을 제공하면 windows.pslist·linux.pslist 같은 플러그인이 목록을 출력합니다. 2025년 Volatility 2가 폐기되면서 현재 표준은 Volatility 3입니다.
어떤 문제를 해결하는가?
- ('침해 사고 대응에서', '감염 시점의 프로세스·네트워크 연결을 확인해야 할 때', 'RAM 덤프만으로 당시 실행 상태를 재구성할 수 있습니다.')
- ('포렌식에서', '파일이 지워져도 메모리에 남은 흔적이 필요한 때', '삭제된 파일 조각·명령줄 인자 등을 복원할 수 있습니다.')
- ('악성코드 분석에서', '파일 시스템 없이 메모리에 상주한 악성 코드를 볼 때', '프로세스 메모리 덤프·주입 흔적을 플러그인으로 확인합니다.')
주요 기능
프로세스 목록 복원
메모리에서 실행 중이던 프로세스 정보를 추출
- 활용 상황: 침해 시점 프로세스 확인
- 얻는 결과: 정상·비정상 프로세스 목록 확보
- 제한 사항: 스텔스화된 프로세스는 추가 플러그인 필요.
네트워크 연결 복원
열려 있던 소켓·연결 정보를 추출
- 활용 상황: C2 서버 연결 흔적 확인
- 얻는 결과: 외부 통신 대상·포트 목록 확보
- 제한 사항: 단순 메모리 덤프에는 없는 정보는 불가.
DLL/모듈 주입 분석
프로세스에 비정상적으로 매핑된 모듈을 탐지
- 활용 상황: 코드 주입 탐지
- 얻는 결과: 비정상 메모리 영역 식별
- 제한 사항: 난독화된 주입은 해석에 시간이 필요.
플러그인 구조
OS별·목적별 플러그인을 추가·작성 가능
- 활용 상황: 특수 환경 분석 요구
- 얻는 결과: 필요한 증거만 커스텀 추출
- 제한 사항: 심볼(Dwarf·PDB) 제공이 선행되어야 함.
설치 및 실행
Linux (pip)
Python 3.7 이상에서 pip로 설치합니다. 디스크 이미지 처리에는 pycryptodome 등 선택적 의존성이 있습니다.
git clone https://github.com/volatilityfoundation/volatility3.git
cd volatility3
python3 -m pip install -e .
Linux (직접 실행)
git으로 받아 python으로 실행하는 방식도 지원합니다.
python3 vol.py -h
python3 vol.py -f memory.dmp windows.pslist
macOS / Windows
동일하게 Python 환경에서 소스를 받아 실행합니다.
python vol.py -f memory.dmp windows.pslist
실제 사용 예제
프로세스 목록 확인
-f로 메모리 덤프를 지정하고 windows.pslist(또는 linux.pslist) 플러그인을 실행합니다.
$ python3 vol.py -f memory.dmp windows.pslist
PID PPID Image Created
4 0 System 2026-10-18 01:12:03
912 901 nginx 2026-10-18 01:12:07
네트워크 연결 확인
windows.netscan 플러그인으로 열려 있던 연결과 리스닝 포트를 확인합니다.
$ python3 vol.py -f memory.dmp windows.netscan
Proto Local Address Remote Address State Owner
TCP 0.0.0.0:443 0.0.0.0:0 LISTEN nginx
TCP 192.0.2.20:51423 198.51.100.7:443 CLOSE_WAIT python3
기억 영역 덤프
프로세스 PID를 지정해 해당 프로세스 메모리를 파일로 덤프해 후속 분석에 씁니다.
$ python3 vol.py -f memory.dmp -p 912 windows.memmap --dump
.dumped.912.dmp 생성 (912번 프로세스 메모리)
장점과 한계
장점
- 무료·오픈소스(GPL) — 상용 포렌식 도구 없이 메모리 분석 가능
- OS별 플러그인 생태계가 풍부(Windows·Linux·macOS)
- Volatility 2 대비 성능·플러그인 정리 완료(현재 표준)
- 스크립트 기반이라 대량 덤프 일괄 분석에 유리
사용 전에 고려할 점
- 분석하려는 OS의 심볼 파일을 확보해야 정확한 결과가 나옵니다.
- 메모리 덤프 확보(라이브 액퀴시션) 과정은 별도 도구가 필요합니다.
- 플러그인·심볼 버전 mismatch 시 오류가 잦아 초기 설정 학습이 필요합니다.
비슷한 프로그램과 비교
| 프로그램 | 특징 | 이런 경우에 적합 |
|---|---|---|
| Rekall | Volatility에서 파생된 포렌식 프레임워크 | 특정 환경의 레거시 파이프라인 |
| LiME | Linux에서 RAM을 덤프하는 커널 모듈(추출 도구) | Volatility 이전 단계인 덤프 확보 |
| KAPE | Windows 중심 증거 수집·처리 도구 | Windows 사고 대응 워크플로 |
공식 자료 및 추가 학습
- 공식 홈페이지 — https://www.volatilityfoundation.org/
- 공식 문서 / 지식베이스 — https://github.com/volatilityfoundation/volatility3/wiki
- 공식 다운로드 — https://github.com/volatilityfoundation/volatility3/releases
- 릴리스 노트 — https://volatilityfoundation.org/volatility-timeline
- 소스 / 개발 자료 — https://github.com/volatilityfoundation/volatility3
버전·지원 환경 정보는 2026-10-18 기준으로 공식 사이트에서 확인한 값입니다. 설치 명령은 사용하는 배포판과 버전에 따라 달라질 수 있으므로 공식 설치 문서를 함께 확인하세요.
실제 실행 화면
아래는 사용 흐름을 이해하기 위해 만든 합성 예시 화면입니다(실제 실행 결과 아님). 화면은 합성 예시이며 실제 실행 결과가 아닙니다.
!Volatility 3 예시: 메모리 덤프에서 프로세스 목록·네트워크 연결 복원
실제 운영 중인 서버
원문(HTML): https://games.cursorai.co.kr/programs/apps/security/volatility.html
AI Knowledge Hub
방문자 댓글