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, 自动化应急响应, 自我纠正, 证据存储, 证据链, 运行时操纵, 进程树分析, 逆向工具, 隐私保护