Kuyenda18/n8n-volatility-memory-forensics-automation

GitHub: Kuyenda18/n8n-volatility-memory-forensics-automation

基于 n8n 与 Volatility3 的本地内存取证分流自动化工作流,自动分析内存镜像并通过 Streamlit 仪表板展示进程、网络和注入内存结果。

Stars: 0 | Forks: 0

# n8n Volatility 内存取证自动化 本项目演示了一个轻量级的 DFIR 自动化工作流,当内存镜像被添加到受监视的文件夹时,它使用 n8n 触发 Volatility3 分析。该工作流运行常见的分流插件,保存结构化的 JSON 报告,并提供一个 Streamlit 仪表板以供审查结果。 本项目旨在作为蓝队、SOC 和 DFIR 实习的作品集项目。它不声称用于生产环境的事件响应部署或真实的公司实战经验。 ## 它的功能 自动化流程旨在支持内存取证分流工作流: 1. 监视本地文件夹以查找新的内存镜像文件。 2. 针对上传的内存镜像运行 Volatility3 插件。 3. 收集网络连接、进程列表和注入内存的发现结果。 4. 将组合输出保存为 `triage_lockdown_report.json`。 5. 通过 Streamlit 仪表板审查 JSON 输出。 无需外部 API 密钥。该项目在本地运行,使用 Docker、n8n、Volatility3、Python 和 Streamlit。 ## 安全用例 该项目涉及: - DFIR 内存分流自动化。 - 基于 Volatility3 的取证痕迹收集。 - 进程、网络和注入内存的审查。 - SOC 调查工作流支持。 - 为分析师审查生成可重复的分流输出。 ## 架构 该设计遵循原始项目报告中描述的四层结构: - 基础设施与 I/O 层:WSL2/Docker 运行时、挂载的输入/输出文件夹以及本地内存镜像处理。 - 编排层:n8n 监视新的内存镜像并控制分析工作流。 - 核心分析层:Volatility3 提取进程、网络和注入内存的取证痕迹。 - 规范化与可视化层:插件输出被合并为 JSON,并在 Streamlit 仪表板中进行审查。 仓库保持这些层相互分离,以便可以在不更改整个流水线的情况下,使用额外的 Volatility 插件、富化逻辑或报告模块来扩展工作流。 ## 技术栈 - n8n - Docker 和 Docker Compose - 兼容 WSL2 的本地实验室设置 - Volatility3 - Python - Streamlit - Pandas - JSON ## 仓库结构 ``` . |-- Dockerfile |-- docker-compose.yml |-- README.md |-- requirements.txt |-- .env.example |-- .gitignore |-- docs/ | |-- architecture.md | |-- sample-memory-dump.md | `-- security-review.md |-- sample-data/ | `-- triage_lockdown_report.sample.json |-- scripts/ | `-- dfir_dashboard.py `-- workflows/ `-- memory-forensics-auto-triage.json ``` ## 工作流概览 ``` Memory image added to watch-folder/ | v n8n Local File Trigger | v Volatility3 plugins: - windows.netscan - windows.pslist - windows.malfind | v Combined JSON report | v Streamlit dashboard review ``` 默认工作流使用这些 Volatility3 插件: | Plugin | 用途 | | --- | --- | | `windows.pslist` | 列出内存中的运行进程。 | | `windows.netscan` | 提取套接字和网络连接。 | | `windows.malfind` | 识别可疑的可执行内存区域。 | 合并后的报告将输出分组在以下类别下: - `network_connections` - `process_list` - `injected_memory` ## 设置 创建本地运行时文件夹: ``` mkdir -p n8n-data watch-folder output-json tools ``` 在本地克隆 Volatility3: ``` git clone https://github.com/volatilityfoundation/volatility3.git tools/volatility3 ``` 创建本地环境文件: ``` cp .env.example .env ``` 启动 n8n: ``` docker compose up --build ``` 在以下地址打开 n8n: ``` http://localhost:5678 ``` 从以下位置导入工作流: ``` workflows/memory-forensics-auto-triage.json ``` ## 用法 将经过授权的内存镜像放入: ``` watch-folder/ ``` n8n 工作流将运行 Volatility3 并写入: ``` output-json/triage_lockdown_report.json ``` 运行仪表板: ``` pip install -r requirements.txt streamlit run scripts/dfir_dashboard.py ``` 如果不存在运行时报告,仪表板将回退到: ``` sample-data/triage_lockdown_report.sample.json ``` ## 注意事项与限制 - 本仓库不包含内存转储、原始取证输出、n8n 运行时数据库或第三方工具检出。 - 包含的工作流是经过脱敏处理的导出文件,旨在用于实验室和作品集审查。 - 原始的实验室内存转储约为 4.7 GB。故意未将其提交,因为普通的 GitHub 仓库不适合存放此大小的文件。 - Volatility3 插件结果取决于内存镜像、操作系统、符号和插件兼容性。 - 该仪表板是分流辅助工具,而不是完整的取证报告。 - 仅分析您获得授权进行检查的内存镜像。 ## GitHub 安全性 原始的本地工作区包含内存转储、n8n SQLite 数据库、n8n 加密密钥、日志、原始分流报告、本地虚拟环境、完整的 Volatility3 检出以及个人报告文档。这些项目已被忽略,未包含在可发布的项目结构中。有关详细信息,请参见 `docs/security-review.md`。
标签:Homebrew安装, IP 地址批量处理, JARM, Kubernetes, n8n, Streamlit, Volatility3, 内存分析, 库, 应急响应, 数字取证, 版权保护, 自动化脚本, 访问控制, 请求拦截, 逆向工具