vol3 memory image forensics

agnusdei·2025년 10월 6일
0

CTF

목록 보기
141/154

1) Volatility 3 개요 — 핵심 포인트

  • Volatility 3는 메모리 포렌식을 위한 Python 기반 프레임워크입니다. 메모리 이미지에서 프로세스, 네트워크 연결, DLL, 명령행 등 런타임 상태를 추출합니다. 설치/사용 정보와 공식 문서는 Volatility 재단 GitHub 및 ReadTheDocs 문서가 권위 자료입니다. ([GitHub][1])

2) 설치 전 요구사항(요약)

  • Python 3.8 이상 권장 (Python 3.8.0 이상). vol3는 Python 패키지로 배포됩니다. ([GitHub][1])
  • pip(파이썬 패키지 관리자) 사용 가능해야 함.
  • 권장: 가상 환경(virtual environment) 사용 — 시스템 전역 패키지와 의존성 충돌 방지. ([LetsDefend][2])

3) 설치 방법 (Linux / Ubuntu 계열 — 권장 절차)

아래는 Ubuntu / REMnux (리눅스) 환경에서 널리 쓰이는 안전한 설치 단계입니다.

  1. 시스템 패키지 업데이트 및 Python, pip 설치
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3 python3-venv python3-pip build-essential
  1. (권장) 가상환경 생성 및 활성화
python3 -m venv ~/vol3-venv
source ~/vol3-venv/bin/activate
  1. Volatility 3 설치: PyPI(파이썬 패키지 인덱스)에서 직접 설치
pip install --upgrade pip
pip install volatility3
  • 또는 최신 개발 버전을 사용하려면 GitHub를 clone 후 requirements 설치:
git clone https://github.com/volatilityfoundation/volatility3.git
cd volatility3
pip install -r requirements.txt
pip install -e .

(개발 버전은 플러그인 업데이트가 빠르지만 안정성/호환성 확인 필요). ([GitHub][1])

  1. 설치 확인
vol -h
# 또는 설치 시 제공되는 실행 스크립트 예: vol3 -h 또는 python -m volatility3 --help

공식 명령어 이름은 설치 방식에 따라 vol, vol3 또는 python -m volatility3일 수 있으니 which vol, which vol3로 확인하세요. ([Volatility 3][3])


4) Windows에 설치 (간단 요약)

  1. Python 3.8+ 설치(Windows용 인스톨러 사용).
  2. (관리자 권한) 명령 프롬프트 또는 PowerShell 열기.
  3. pip install volatility3 또는 wheel 파일로 설치. ([LetsDefend][4])

5) REMnux 환경

  • REMnux 배포판은 악성코드 분석/포렌식 도구 모음으로, Volatility가 포함되어 있거나 쉽게 설치 가능합니다. REMnux 문서를 확인하면 memory forensics 도구 목록 및 권장 워크플로우가 제공됩니다. ([docs.remnux.org][5])

6) 기본 사용법 — 실행 구조와 옵션

Volatility 3는 플러그인 기반입니다. 일반 실행 구조:

# 일반형 (파일이름, 플러그인)
vol3 -f <memory_image> <plugin> [--plugin-options]

# 또는 (모듈 방식)
python -m volatility3 -f <memory_image> <plugin> [옵션]
  • -f : 메모리 이미지 파일 지정 (예: wcry.mem)
  • --output 또는 리디렉션(>)으로 텍스트 저장 가능
  • 일부 플러그인은 추가 옵션(예: --pid, --dump-dir, --output-file)을 가집니다.
  • Volatility 3는 OS 식별(예: windows.info 등)이나 심볼(심볼/모듈 맵) 정보를 요구할 수 있으니 ReadTheDocs 문서를 확인하세요. ([Volatility 3][3])

7) 자주 사용하는 플러그인 & 예시 명령 (Windows 중심)

아래는 질문에서 언급된 플러그인 포함, 실무에서 자주 쓰는 플러그인 예시와 사용 예입니다. (출력 저장 방법 포함)

기본 패턴:

vol3 -f wcry.mem windows.pslist.PsList > pslist.txt
  • 프로세스 목록: windows.pslist.PsList

    • 실행중인 프로세스 나열 (정상/비정상 프로세스 초기사찰).
    • 예: vol3 -f wcry.mem windows.pslist.PsList > pslist.txt ([blog.onfvp.com][6])
  • 프로세스 트리: windows.pstree.PsTree

    • 부모-자식 관계로 프로세스 계층 표시. 악성 행위 추적에 유용.
    • 예: vol3 -f wcry.mem windows.pstree.PsTree > pstree.txt ([Volatility 3][3])
  • 명령행 인자: windows.cmdline.CmdLine

    • 프로세스가 시작될 때 사용된 커맨드 라인을 보여줌. 공격 명령 확인에 필수.
    • 예: vol3 -f wcry.mem windows.cmdline.CmdLine > cmdline.txt ([Volatility 3][3])
  • 파일 핸들/파일 스캔: windows.filescan.FileScan

    • 메모리에서 열려있는 파일 구조(핸들) 탐색. I/O 관련 증거 확보.
    • 예: vol3 -f wcry.mem windows.filescan.FileScan > filescan.txt ([Volatility 3][3])
  • DLL 리스트: windows.dlllist.DllList

    • 프로세스별 로드된 DLL(동적연결라이브러리) 나열. 인젝션/의심 DLL 확인.
    • 예: vol3 -f wcry.mem windows.dlllist.DllList --pid 1234 > dlllist_pid1234.txt ([blog.onfvp.com][6])
  • 악성 흔적 탐색: windows.malfind.Malfind

    • 사용자모드에 숨겨진/주입된 코드 영역(예: 쉘코드, 인젝션 코드) 탐지. 발견 시 덤프 옵션으로 메모리 덤프 가능.
    • 예: vol3 -f wcry.mem windows.malfind.Malfind --dump-dir=./dumps ([GitHub][7])
  • 프로세스 스캔(숨겨진/삭제된 프로세스): windows.psscan.PsScan

    • 메모리 전체 스캔을 통해 흔적만 남은(삭제됐지만 메모리에 남아있는) 프로세스도 탐지.
    • 예: vol3 -f wcry.mem windows.psscan.PsScan > psscan.txt ([Volatility 3][3])

8) 출력 저장 / 자동화 (사전처리 워크플로우)

  • 각 플러그인 결과를 텍스트 또는 JSON으로 저장해 두면 후속 분석(파싱, 색인, SIEM 연계)에 유리합니다.

    • 리디렉션: > pslist.txt 또는 2> err.log
    • JSON 출력(플러그인/버전에 따라 지원): --output json 혹은 ReadTheDocs의 출력 옵션 확인. ([Volatility 3][3])
  • 스크립트 자동화 예 (bash):

#!/bin/bash
IMG="wcry.mem"
OUTDIR="./vol3_output"
mkdir -p "$OUTDIR"
for plugin in windows.pslist.PsList windows.pstree.PsTree windows.cmdline.CmdLine \
              windows.filescan.FileScan windows.dlllist.DllList windows.malfind.Malfind windows.psscan.PsScan
do
  echo "Running $plugin..."
  vol3 -f "$IMG" $plugin > "$OUTDIR/${plugin##*.}.txt" 2>> "$OUTDIR/errors.log"
done
  • 권장: 출력 파일에 타임스탬프와 메타(이미지 파일명, 수집자, 수집일시) 포함.

9) 실무 팁 / 문제해결

  1. 심볼(symbols) / 레이어 문제: vol3는 메모리의 아키텍처, OS 종류에 따른 레이어 구성이 필요할 수 있음. windows.info 같은 플러그인으로 메모리 이미지의 기본 정보를 먼저 확인하세요. ([Volatility 3][8])
  2. 권한/환경: 루트/관리자 권한으로 실행해야 접근성이 나은 경우가 있음. 다만 파일 권한/증거 무결성(체인 오브 커스터디)에 신경 쓸 것.
  3. 가상환경 사용: 시스템 Python과 충돌 방지. 의존성 문제가 발생하면 pip install -r requirements.txt로 해결. ([LetsDefend][2])
  4. Volatility2 vs Volatility3: 일부 플러그인 또는 출력 형식이 변경됨(명령어 네임스페이스 등). 기존 Volatility 2 자료를 그대로 쓰면 혼동될 수 있으니 v3 문서 확인 필수. ([blog.onfvp.com][6])

10) 권장 학습/참고 자료

  • Volatility 3 공식 GitHub: volatilityfoundation/volatility3 (설치, 이슈, 최신 릴리스). ([GitHub][1])
  • Volatility 3 문서(ReadTheDocs): 플러그인 레퍼런스, 튜토리얼. ([Volatility 3][3])
  • REMnux memory forensics 안내(도구 목록 및 워크플로우). ([docs.remnux.org][5])
  • 설치/가이드 블로그(예: LetsDefend, Seanthegeek) — 실습 예제 참고. ([LetsDefend][2])

11) 빠른 점검표 (체크리스트)

  • Python 3.8+ 설치
  • 가상환경(권장) 생성 및 활성화
  • pip install volatility3 또는 Git clone + pip install -r requirements.txt
  • vol3 -f <image> windows.info로 이미지 정보 확인
  • 핵심 플러그인(예: pslist, pstree, cmdline, filescan, dlllist, malfind, psscan) 순차 실행 및 결과 저장
  • 덤프/발견 항목은 별도 디렉토리에 저장(권한/타임스탬프 포함)

profile
DevSecOps ⚙️ + CTF🚩

0개의 댓글