CaelInceptus/Volatility_Report_Generator

GitHub: CaelInceptus/Volatility_Report_Generator

基于 Volatility3 的自动化内存取证分诊工具,批量运行插件、关联分析工件并对可疑进程评分,生成 HTML 报告和 IOC 导出。

Stars: 0 | Forks: 0

# VolaTriage 基于 **Volatility3 Python API** 构建的自动化内存取证分类工具。 针对内存转储运行全套插件,关联分析工件,对可疑进程进行评分,并生成独立的 HTML 报告及导出 IOC JSON。 ## 功能 - 自动执行插件(20 个 Windows / 7 个 Linux / 4 个 macOS 插件) - 工件关联引擎(DKOM、进程注入、可疑父进程、隐藏模块等) - 基于启发式算法的进程可疑度评分(CLEAN → LOW → MEDIUM → HIGH → CRITICAL) - 独立的深色主题 HTML 报告(无 CDN,内嵌 CSS + JS) - 导出 IOC JSON(IP、文件路径、注入、隐藏进程) ## 环境要求 ``` Python 3.9+ volatility3 >= 2.4.0 jinja2 >= 3.1.0 ``` ``` pip install volatility3 jinja2 ``` ## 支持的转储格式 | 格式 | 扩展名 | |--------|-----------| | 原始物理内存 | `.raw` `.dd` `.mem` `.img` `.bin` | | Windows 崩溃转储 / WinPmem | `.dmp` | | Windows 休眠文件 | `hiberfil.sys` | | VMware 快照 / 挂起 | `.vmem` `.vmsn` `.vmss` | | VirtualBox 保存的状态 | `.sav` | | LiME (Linux Memory Extractor) | `.lime` | | Expert Witness Format | `.E01` `.e01` *(需要 libewf)* | ## 用法 ``` python main.py -d [options] ``` ### 选项 | 标志 | 描述 | 默认值 | |------|-------------|---------| | `-d`, `--dump` | 内存转储路径 *(必填)* | — | | `-o`, `--output` | 报告的输出目录 | `./reports/` | | `--os` | 强制指定操作系统:`windows` / `linux` / `mac` | 自动检测 | | `--plugins` | 以逗号分隔的插件列表,用于覆盖默认设置 | 全部 | | `-v`, `--verbose` | 启用调试日志 | 关闭 | | `--no-color` | 禁用 ANSI 颜色 | 关闭 | ### 示例 ``` # 基础 Windows dump 分析 python main.py -d MemoryDump.mem # 指定 OS 和自定义输出目录 python main.py -d memdump.dmp --os windows -o /tmp/forensics/ # Linux LiMe dump,仅特定 plugins python main.py -d memory.lime --os linux --plugins linux.pslist,linux.netstat # Verbose 模式(显示每个 plugin 的 debug 输出) python main.py -d dump.vmem -v ``` ## 输出 ``` reports/ ├── volatriage_report_YYYYMMDD_HHMMSS.html # Full HTML report └── volatriage_iocs_YYYYMMDD_HHMMSS.json # IOC export ``` ### HTML 报告部分 1. **执行摘要** — 进程数、注入、隐藏进程、网络连接 2. **首要嫌疑** — 按可疑评分排序的进程及关键指标 3. **严重与高危发现** — 按严重程度分组的关联发现 4. **网络活动** — 所有外部连接及其关联进程 5. **代码注入** — malfind 结果及十六进制预览 6. **所有进程** — 完整的可排序进程表 7. **原始插件数据** — 可折叠部分(pslist、psscan、modules、svcscan、netscan、cmdline) ### IOC JSON 结构 ``` { "metadata": { "generated_at": "...", "tool": "VolaTriage v1.0.0" }, "iocs": { "ip_addresses": [...], "file_paths": [...], "process_names": [...] }, "suspicious_processes": [...], "network_connections": [...], "injections": [...], "hidden_processes": [...] } ``` ## 评分 每个进程初始分为 0,并根据关联的发现累积分数: | 指标 | 分数 | |-----------|-------| | 隐藏进程(DKOM — 在 psscan 中,但不在 pslist 中) | +80 | | 代码注入(malfind) | +70 | | 已注入进程上的网络连接 | +40 *(附加)* | | 可疑的父子进程关系 | +40 | | 隐藏模块(ldrmodules InLoad/InInit/InMem = False) | +50 | | 可疑的服务二进制文件路径 | +60 | | 可疑的 DLL 路径(Temp、AppData…) | +25 *(最高 +60)* | | 可疑的命令行(Base64、IEX、certutil…) | +35 | | 已启用的危险权限(SeDebugPrivilege…) | +30 | | 分数 | 等级 | |-------|-------| | 0 – 10 | CLEAN | | 11 – 30 | LOW | | 31 – 60 | MEDIUM | | 61 – 100 | HIGH | | > 100 | CRITICAL | ## 项目结构 ``` ├── main.py # CLI entry point └── vola_triage/ ├── runner.py # Volatility3 Python API — plugin execution ├── correlator.py # Artifact correlation (DKOM, injection, parents…) ├── scorer.py # Heuristic suspicion scoring ├── report.py # HTML report generation (Jinja2) └── ioc_exporter.py # IOC JSON export ``` ## 待办事项 - [ ] **进程白名单** — 在评分时排除已知的合法进程(FTK Imager、vmtoolsd、在虚拟机环境中运行的系统进程),以减少误报 - [ ] **针对误报的评分器优化** — 调整 ldrmodules 权重(目前在 81 个合法 DLL 的隐藏模块中出现过多代表性问题),添加单项指标置信度,并根据进程上下文(系统进程与用户态进程)调整阈值
标签:JARM, Python, Volatility3, 内存分析, 安全, 库, 应急响应, 数字取证, 无后门, 自动化脚本, 超时处理, 逆向工具