cheng-lin-max/sift-self-correction-agent

GitHub: cheng-lin-max/sift-self-correction-agent

该项目是一个用于自动化数字取证(DFIR)的 AI 自我纠正 Agent,通过强制审查循环减少分析幻觉,提升调查报告的可信度。

Stars: 0 | Forks: 0

# SIFT 自我纠正 Agent 这是一个 Protocol SIFT 扩展,它教会 AI 分析员反复核对自身的工作——从而减少幻觉,并使自动化 DFIR 结果更加值得信赖。 **FIND EVIL! Hackathon 2026 参赛作品** ## 架构 ![架构图](https://static.pigsec.cn/wp-content/uploads/repos/cas/dc/dcbfc63967af1b3d20fddb3ac3216818e0695b725fa58d831ed21899a5c8a918.png) 本项目采用 **Direct Agent Extension**(直接 Agent 扩展)架构: ┌─────────────────┐ SSH ┌────────────────────┐ │ OpenClaw (Agent)│ ◄─────► │ SIFT Workstation │ │ (推理 + │ │ (取证工具) │ │ 自我纠正) │ │ IP: 192.168.192.129│ └─────────────────┘ └────────────────────┘ - **基于 Prompt 的护栏**:Agent 指令强制执行只读工具的使用,并强制进行自我纠正。 - 有关详细的组件图,请参阅 `architecture.png`。 ## 自我纠正工作流 ![自我纠正流程图](https://static.pigsec.cn/wp-content/uploads/repos/cas/b3/b3d3a78698f8d6fca20b36f6096a304400704ebd54a5bf08d0be6f6988219f3e.png) 该 Agent 遵循强制性的三阶段工作流:初始分析 → 强制自我审查(真实性、一致性、完整性检查) → 纠正后的报告。如果在自我审查期间发现错误,Agent 将返回分析阶段进行纠正,然后再生成最终报告。 ## 项目结构 ├── self_correction_agent_prompt.md # 核心 Agent 系统指令 ├── skills/ # Protocol SIFT 技能包(5 个技能) ├── analysis_report.md # 完整调查报告 (ROCBA-001) ├── accuracy_report.md # 准确性自我评估 ├── execution_log.md # 结构化工具执行日志 ├── architecture.png # 架构图 ├── README.md └── LICENSE # MIT 许可证 ## 核心特性 ![攻击时间线](https://static.pigsec.cn/wp-content/uploads/repos/cas/0b/0b8f6b9c9d0478731afd33ac11ec8f65a2b21c228147527937ebac86a95e4a57.png) ·自我纠正循环:在最终定稿报告之前,Agent 会检查自身结论中是否存在幻觉、不一致之处以及遗漏的 artifacts。 ·诚实面对不确定性:明确区分已确认的发现与推论;如实记录跳过的分析。 ·实验方法论:受数据科学竞赛工作流启发——控制变量、基线对比、迭代测试。 ## 构建工具 ·OpenClaw(Agent 框架) ·SIFT Workstation(取证平台) ·Protocol SIFT(AI-DFIR 集成) ·Sleuth Kit(fls, icat) ·Python(pptx 解析,数据提取) ·Bash ## 作者 Cheng Lin — FIND EVIL! 2026 独立参赛者 ## 许可证 MIT — 详见 LICENSE 文件 ## 局限性与未来工作 ### 已知局限性 1. **Prompt 级别的护栏**:当前架构使用基于 prompt 的限制来强制执行只读工具的使用。虽然 Agent 在测试期间确认未执行任何写入命令,但恶意构造的 prompt 理论上可以绕过这些限制。这一点已在准确性报告中如实记录。 2. **单 Agent 架构**:当前实现使用单个 Agent 同时进行分析和自我审查。多 Agent 架构——即由一个 Agent 进行分析,另一个进行独立验证——可以提供更强大的职责分离。 3. **跳过的分析**:根据止损规则,跳过了三个分析维度(事件日志、通过 Volatility 进行的内存分析以及 Prefetch 时间戳)。内存分析由于缺少 Windows ISF 符号文件(符号服务器返回 HTTP 204)而受阻。注册表配置单元 (Registry hive) 分析已在补充更新 (2026-05-31) 中完成。这些缺口已如实记录。 4. **手动 SSH 设置**:当前工作流需要手动配置 SSH。未来版本可以通过基于 MCP 的 Agent 与 Workstation 集成来实现连接设置的自动化。 ### 计划改进 1. **自定义 MCP 服务器架构**:从 Direct Agent Extension 迁移到自定义 MCP 服务器。这将仅公开类型安全的、只读的取证功能——从架构层面杜绝证据篡改,而非依赖 prompt 约束。 2. **多 Agent 拆分**:实现双 Agent 系统:分析 Agent + 验证 Agent。验证 Agent 独立检查分析 Agent 的发现,从而提供更强大的自我纠正保障。 3. **扩大分析覆盖范围**:完成事件日志解析、Volatility 内存分析(待符号文件可用后)以及 Prefetch 时间戳提取。 4. **自动化证据完整性验证**:在分析前后对证据文件添加加密哈希,以提供防篡改的证据保管链文档。 ## 演示视频 🎥 [观看 5 分钟演示](https://youtube.com/placeholder) *(链接即将推出)* ## 设置与试用指南 ### 前置条件 - SIFT Workstation 虚拟机([在此下载](https://www.sans.org/tools/sift-workstation/)) - OpenClaw 或其他 Agentic 框架 - 连接在同一网络中的两台虚拟机(推荐使用桥接模式) - 位于 SIFT 上 `/cases/` 目录下的案件数据(E01 取证镜像) ### 快速开始(5 分钟) 想在你自己的 SIFT Workstation 上验证已发布的 ROCBA-001 发现吗? 1. **放置案件数据** — 将 E01 镜像复制到 SIFT 上的 `/cases/rocba-cdrive.e01` **(约 1 分钟)** 2. **下载复现脚本** — `wget -O /tmp/reproduce_findings.sh https://raw.githubusercontent.com/cheng-lin-max/sift-self-correction-agent/main/reproduce_findings.sh && chmod +x /tmp/reproduce_findings.sh` **(约 1 分钟)** 3. **运行它** — `sudo bash /tmp/reproduce_findings.sh` **(约 3 分钟,主要为 ewfmount I/O 耗时)** 该脚本将挂载 E01,对所有关键 artifacts 运行 `fls`/`istat`/`icat`,提取注册表字符串,并将所有内容保存到 `/cases/reproduce_output//`。将输出与已发布的 `analysis_report.md` 进行比较,以确认可复现性。 ### 完整设置 预计总耗时:**20–30 分钟** | 步骤 | 操作内容 | 预计耗时 | |------|-----------|-----------| | 1 | **启动 SIFT Workstation 虚拟机** — 以 `sansforensics` 登录(密码:`forensics`) | 2 分钟 | | 2 | **安装 Protocol SIFT 组件** — `curl -fsSL https://raw.githubusercontent.com/teamdfir/protocol-sift/main/install.sh \| bash` | 3 分钟 | | 3 | **配置 SSH 访问** — 在你的 Agent 机器上,生成密钥并复制它:`ssh-keygen -t ed25519 && ssh-copy-id sansforensics@` | 2 分钟 | | 4 | **将技能包复制到 Agent 机器** — `scp -r sansforensics@:/home/sansforensics/.claude/skills ~/protocol-sift-skills/` | 2 分钟 | | 5 | **在 SIFT 上放置案件数据** — 从 FIND EVIL! 资源页面下载标准取证案件并将其解压到 `/cases/` | 5 分钟 | | 6 | **加载 Agent prompt** — 使用 `self_correction_agent_prompt.md` 作为你的 Agent 的系统指令 | 2 分钟 | | 7 | **运行分析** — 指示你的 Agent 通过 SSH 连接到 SIFT 并分析 `/cases/` | 5–10 分钟 | 分析完成后,Agent 将生成: - `analysis_report.md` — 包含已验证发现的完整调查报告 - `accuracy_report.md` — 包含证据验证矩阵的自我评估 - `execution_log.md` — 原始工具命令及输出 ### 故障排除 | 问题 | 可能原因 | 解决方案 | |---------|-------------|----------| | **拒绝 SSH 连接** | SIFT 虚拟机未运行或 IP 错误 | 在 SIFT 虚拟机上运行 `ip addr` 查找其 IP。确保两台虚拟机在同一个桥接网络中。使用 `ssh sansforensics@ -o StrictHostKeyChecking=no` 进行测试。 | | **`ewfmount: command not found`** | SIFT 上未安装 ewftools | 使用 `sudo apt-get update && sudo apt-get install -y ewftools` 安装。SIFT Workstation 通常包含此项,但最小化安装可能未包含。 | | **Agent 运行 `fls` 但输出为空** | 分区偏移量错误 | E01 可能需要非零的分区偏移量。运行 `mmls /mnt/ewf2/ewf1` 列出分区,然后传入正确的偏移量:`fls -f ntfs -o /mnt/ewf2/ewf1`。常见偏移量:0(superfloppy)、2048(标准)、206848(Windows 10 默认)。 | ## 核心特性 ![攻击时间线](https://static.pigsec.cn/wp-content/uploads/repos/cas/0b/0b8f6b9c9d0478731afd33ac11ec8f65a2b21c228147527937ebac86a95e4a57.png) ·自我纠正循环:在最终定稿报告之前,Agent 会检查自身结论中是否存在幻觉、不一致之处以及遗漏的 artifacts。 ·诚实面对不确定性:明确区分已确认的发现与推论;如实记录跳过的分析。 ·实验方法论:受数据科学竞赛工作流启发——控制变量、基线对比、迭代测试。 ## 构建工具 ·OpenClaw(Agent 框架) ·SIFT Workstation(取证平台) ·Protocol SIFT(AI-DFIR 集成) ·Sleuth Kit(fls, icat) ·Python(pptx 解析,数据提取) ·Bash ## 作者 Cheng Lin — FIND EVIL! 2026 独立参赛者 ## 许可证 MIT — 详见 LICENSE 文件 ## 局限性与未来工作 ### 已知局限性 1. **Prompt 级别的护栏**:当前架构使用基于 prompt 的限制来强制执行只读工具的使用。虽然 Agent 在测试期间确认未执行任何写入命令,但恶意构造的 prompt 理论上可以绕过这些限制。这一点已在准确性报告中如实记录。 2. **单 Agent 架构**:当前实现使用单个 Agent 同时进行分析和自我审查。多 Agent 架构——即由一个 Agent 进行分析,另一个进行独立验证——可以提供更强大的职责分离。 3. **跳过的分析**:根据止损规则,跳过了三个分析维度(事件日志、通过 Volatility 进行的内存分析以及 Prefetch 时间戳)。内存分析由于缺少 Windows ISF 符号文件(符号服务器返回 HTTP 204)而受阻。注册表配置单元 (Registry hive) 分析已在补充更新 (2026-05-31) 中完成。这些缺口已如实记录。 4. **手动 SSH 设置**:当前工作流需要手动配置 SSH。未来版本可以通过基于 MCP 的 Agent 与 Workstation 集成来实现连接设置的自动化。 ### 计划改进 1. **自定义 MCP 服务器架构**:从 Direct Agent Extension 迁移到自定义 MCP 服务器。这将仅公开类型安全的、只读的取证功能——从架构层面杜绝证据篡改,而非依赖 prompt 约束。 2. **多 Agent 拆分**:实现双 Agent 系统:分析 Agent + 验证 Agent。验证 Agent 独立检查分析 Agent 的发现,从而提供更强大的自我纠正保障。 3. **扩大分析覆盖范围**:完成事件日志解析、Volatility 内存分析(待符号文件可用后)以及 Prefetch 时间戳提取。 4. **自动化证据完整性验证**:在分析前后对证据文件添加加密哈希,以提供防篡改的证据保管链文档。 ## 演示视频 🎥 [观看 5 分钟演示](https://youtube.com/placeholder) *(链接即将推出)*
标签:AI智能体, Clair, 库, 应急响应, 应用安全, 数字取证, 自动化分析, 自动化脚本, 跨站脚本, 逆向工具