Sanjeyj/AutoDFIR
GitHub: Sanjeyj/AutoDFIR
一款具备自纠错能力的自主事件响应智能体,通过 LLM 驱动的六步推理框架和多源证据交叉验证,自动化完成数字取证与事件调查分析。
Stars: 0 | Forks: 0
# AutoDFIR – 自纠错自主事件响应智能体
## 架构
```
┌─────────────────────────────────────────────────────────────────┐
│ AutoDFIR Agent │
│ ┌────────────┐ ┌──────────────────┐ ┌─────────────────────┐ │
│ │ Reasoning │ │ Contradiction │ │ Evidence Store │ │
│ │ Engine │──│ Detector │──│ (JSON + SHA-256) │ │
│ └─────┬──────┘ └──────────────────┘ └─────────────────────┘ │
│ │ │
│ │ Structured Requests │
├────────┼─────────────────────────────────────────────────────────┤
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ MCP Server (FastAPI) │ │
│ │ ┌──────────┐ ┌──────────┐ ┌────────┐ ┌─────┐ ┌──────────┐│ │
│ │ │ Process │ │ Network │ │Autoruns│ │ MFT │ │ Logs ││ │
│ │ │ Tree │ │ Conns │ │ │ │ │ │ Scanner ││ │
│ │ └──────────┘ └──────────┘ └────────┘ └─────┘ └──────────┘│ │
│ │ Security Layer (Read-Only Allowlist) │ │
│ └─────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
## 快速入门
```
# 安装依赖
pip install -r requirements.txt
# 运行 demo (Windows)
set PYTHONIOENCODING=utf-8
python demo/run_demo.py
# 运行 demo (PowerShell)
$env:PYTHONIOENCODING='utf-8'; python demo/run_demo.py
```
## 核心功能
| 功能 | 描述 |
|---------|-------------|
| **5 种 DFIR 工具** | 进程树、网络连接、自启动项、MFT 时间线、日志扫描器 |
| **6 步推理** | 假设 → 选择工具 → 执行 → 收集 → 验证 → 评分 |
| **自我纠错** | 当与证据相矛盾时自动修正假设 |
| **矛盾检测** | 交叉比对来自多个工具的证据以发现冲突 |
| **证据完整性** | 对所有证据进行 SHA-256 哈希处理,具备防篡改检测能力 |
| **完全可追溯** | 每一项发现均通过证据图关联至工具输出 |
| **零幻觉** | 无证据不妄下断言;对一切输出提供置信度评分 |
| **强制安全** | 只读命令白名单;无破坏性操作 |
## 推理框架
```
Step 1: Define hypothesis (based on triage observations)
Step 2: Select appropriate forensic tool
Step 3: Execute tool via MCP server
Step 4: Collect and store structured evidence
Step 5: Validate hypothesis against evidence
Step 6: Assign confidence score (0.0 - 1.0)
If CONTRADICTED → Revise hypothesis → Loop (max 5 iterations)
If CONFIRMED (≥0.7 confidence) → Create formal finding
```
## 演示场景
演示模拟了一个从钓鱼攻击到权限驻留的攻击链:
1. **钓鱼邮件** → 用户在 Outlook 中打开 `Q4_Report.docm`
2. **宏代码执行** → Word 启动隐藏的 PowerShell
3. **载荷下载** → PowerShell 连接到位于 `185.220.101.42` 的 C2 服务器
4. **恶意软件部署** → `svchost.exe` 被释放到 `%TEMP%` 目录(伪装)
5. **权限驻留** → 安装伪造服务 + 自启动项 + 计划任务
6. **反取证** → 安全日志被清除,时间戳被修改
7. **横向移动** → 网络登录到域管理员账户
### 自我纠错演示
- **初始假设**:“svchost.exe (PID 6784) 是具有异常父进程的合法进程”
- **证据表明**:由 explorer.exe 启动,且在 Temp 目录下运行
- **自我纠错**:修正为“svchost.exe 是伪装成系统进程的恶意软件”
### 矛盾检测演示
- 事件日志显示 PID 6784 正在执行网络命令(`ipconfig`,`net user`)
- 但网络扫描显示 PID 6784 没有任何网络连接
- 系统将此标记为需要重新分析的矛盾情况
## 输出产物
每次调查结束后,会在 `output/` 目录下生成 4 项产物:
| 文件 | 描述 |
|------|-------------|
| `incident_report_*.md` | 人类可读的 Markdown 报告,包含时间线、发现与建议 |
| `evidence_graph_*.json` | 将假设 → 发现 → 证据 → 工具完整关联的图谱 |
| `evidence_store_*.json` | 包含完整性哈希值的完整证据数据库 |
| `execution_log_*.json` | 记录智能体每一次决策和工具调用的带时间戳日志 |
## 项目结构
```
AutoDFIR/
├── agent/ # LLM Agent (decision engine)
│ ├── agent.py # Main orchestrator
│ ├── reasoning_engine.py # 6-step reasoning + self-correction
│ ├── contradiction_detector.py
│ ├── mcp_client.py # HTTP client for MCP server
│ └── prompts.py # Evidence-enforcement prompts
├── mcp_server/ # MCP Server (FastAPI)
│ ├── server.py # REST API endpoints
│ ├── tool_registry.py # Tool registration & dispatch
│ ├── security.py # Command allowlist
│ └── tools/ # 5 DFIR tool wrappers
├── evidence/ # Evidence Store
│ ├── models.py # Pydantic data models
│ ├── store.py # CRUD + integrity checks
│ └── graph.py # Evidence graph builder
├── logging_system/ # Structured logging
├── reporting/ # Report generation
├── demo/ # Demo scenario + sample data
└── output/ # Generated reports & logs
```
## 技术栈
- **Python 3.10+** — 核心开发语言
- **FastAPI** — MCP 服务器
- **Pydantic v2** — 数据校验
- **httpx** — 异步 HTTP 客户端
- **Jinja2** — 报告模板
- **Rich** — 终端输出格式化
## 安全模型
- 严格的命令白名单(仅允许运行取证工具)
- 已拦截:`rm`、`del`、`format`、`powershell`、`cmd` 及命令行注入模式
- 所有证据均具有 SHA-256 完整性哈希
- 仅限只读分析 — 无任何写入/破坏性操作
- 对所有文件参数进行路径遍历防护
标签:AutoDFIR, AV绕过, FastAPI, JSON结构化数据, MCP服务器, MFT解析, Mr. Robot, Python, SHA-256校验, 可追溯性, 后渗透, 大语言模型代理, 子域名变形, 安全智能, 推理引擎, 数字取证与应急响应, 无后门, 无线安全, 日志扫描, 流量嗅探, 生产级系统, 矛盾检测, 网络安全, 网络连接, 自主Agent, 自动化应急响应, 自我纠正, 证据存储, 证据链, 运行时操纵, 进程树分析, 逆向工具, 隐私保护