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, 内存分析, 库, 应急响应, 数字取证, 版权保护, 自动化脚本, 访问控制, 请求拦截, 逆向工具