@tom_doerr: 通过状态空间搜索进行渗透测试的自主AI代理 https://github.com/oritera/Cairn

X AI KOLs Timeline 工具

摘要

Cairn是一个开源的通用问题解决引擎,利用状态空间搜索进行自主AI渗透测试,基于黑板架构和事实-意图图构建。

通过状态空间搜索进行渗透测试的自主AI代理 https://t.co/UrEyBKGBhW https://t.co/LXMt9THIWL
查看原文
查看缓存全文

缓存时间: 2026/05/14 12:35

基于状态空间搜索的自主AI渗透测试代理 https://t.co/UrEyBKGBhW https://t.co/LXMt9THIWL — # oritera/Cairn 来源:https://github.com/oritera/Cairn # Cairn ### 不仅仅是AI渗透测试——迈向通用状态空间搜索 Cairn 是一个通用问题求解引擎。它不定义角色,也不定义工作流。给定起点和目标,它会在未知状态空间中搜索路径。AI渗透测试只是这类问题之一——并且是经过验证的问题。 ## 什么是 Cairn? 渗透测试本质上是在近乎无限的状态空间中进行定向搜索: - 起点:已知(目标IP、目标系统) - 目标:已定义(获取Shell、捕获Flag) - 路径:未知 这种结构并非渗透测试独有。漏洞研究、数学证明、CTF挑战——任何具有明确起点、明确的成功条件以及未知路径的问题都具有相同的形态。 Cairn 就是为解决这类问题而构建的。渗透测试是其得到验证的第一个领域。 该引擎基于黑板架构,并具有显式的事实-意图图。只需要三个基本概念: | 概念 | 含义 | |——|——| | 事实 | 写入黑板的已确认、客观的发现 | | 意图 | 声明但尚未执行的探索方向 | | 提示 | 在任何时刻注入的人类判断;代理在下一次读取时吸收 | 图从起点目标生长。每一个新事实都是一块垫脚石;每一个意图都是迈向未知的一步。 代理工作者运行OODA循环——观察完整的图,定向到当前状态,决定下一个意图,行动探索——并将发现作为新事实写回。工作者没有固定角色。任务在运行时根据图的当前状态生成,而不是来自预定义的任务描述。代理完全通过共享黑板进行协调(斯托克马机制)。无直接通信,无信息孤岛。 ## Cairn 实际运行 https://github.com/user-attachments/assets/e557b1ac-dda4-41cb-87dd-9d56dbf05133 ## 工作原理 三种任务类型,均由同一个工作者执行: | 任务 | 功能 | 输出 | |——|——|——| | Bootstrap | 项目启动时,直接尝试解决问题 | 事实 + 可能完成 | | Reason | 读取完整图:目标是否达到?下一步应探索什么? | 完成 / 新意图 / 无操作 | | Explore | 认领一个意图,执行探索,报告发现 | 一个事实 | 系统架构: ┌──────────────────────────────────┐ │ Cairn 服务器 │ │ 事实 + 意图 + 提示 │ └─────────────────┬────────────────┘ │ 读/写 API │ ┌─────────────────┴────────────────┐ │ 调度器 │ │ 调度任务、管理容器、写入协议 │ └──────────┬───────────────┬───────┘ │ │ ┌───────────────┴──┐ ┌──────┴──────────────┐ │ 工作者容器 │ │ 工作者容器 │ │ (项目 A) │ │ (项目 B) │ │ ┌────┐ ┌────┐ │ │ ┌────┐ ┌────┐ │ │ │ W. │ │ W. │ │ │ │ W. │ │ W. │ │ │ └────┘ └────┘ │ │ └────┘ └────┘ │ └──────────────────┘ └─────────────────────┘ Cairn 服务器仅维护图的一致性。 Cairn 调度器读取图、调度任务、启动和关闭工作者容器,并且是协议的唯一写入者。每个项目拥有自己的工作者容器;多个代理工作者在其内部并发运行。代理工作者只接收提示并返回结构化输出。支持的 Worker 后端:Claude CodeCodexPi。 ## 结果 腾讯云黑客马拉松·AI渗透测试挑战赛·第二届 610 支队伍 · 1345 名参赛者 · 涵盖了顶尖高校和安全企业 | 指标 | 值 | |——|—–| | 解决的问题 | 54 / 54 — 唯一全解队伍 | | 最终排名 | 第3名 | > 该系统在比赛前从未测试过。整个流水线在比赛当天凌晨4点首次上线。无训练、无调参、无领域专用工具。零 MCP 工具、零 RAG、零预定义代理角色。 ## 深入阅读 - 最强 AI 渗透测试代理:TCH 腾讯云黑客马拉松智能渗透测试挑战赛(第二届)唯一 AK 队伍的事后分析 - 无径之路:从渗透测试到通用问题求解的 Cairn AI ## 快速开始 前置条件 - macOS 或 Linux - Python ≥ 3.12 - Docker ### 拉取所需镜像 两种设置方式均需要工作者容器镜像: bash docker pull --platform=linux/amd64 ghcr.io/oritera/cairn-worker-container:latest ### Docker Compose(推荐) 拉取用于构建 Cairn 的基础镜像: bash docker pull ghcr.io/astral-sh/uv:python3.13-trixie 编辑 dispatch.yaml,填入 LLM 端点与 API 密钥,然后启动两个服务: bash docker compose up --build 这会启动 cairn-server(端口 8000),并在服务器通过健康检查后启动 cairn-dispatcher。调度器挂载项目根目录下的 dispatch.yaml,并通过宿主机 Socket 连接 Docker。数据持久化到 ./datas/cairn/。 ### 手动启动 编辑 dispatch.yaml,填入 LLM 端点与 API 密钥,然后: bash # 启动服务器 uv run --project cairn cairn serve # 运行调度器 uv run --project cairn cairn dispatch --config dispatch.yaml # 仅运行启动健康检查 uv run --project cairn cairn dispatch --config dispatch.yaml --startup-healthcheck-only ## 免责声明 Cairn 是一个通用问题求解引擎。虽然它支持渗透测试、CTF 解题、安全评估和漏洞研究工作流,但其设计仅供在您拥有明确授权操作的环境中使用。您需自行承担使用该项目的全部责任。未经所有者或运营者事先明确许可,请勿对系统、网络、应用或数据使用 Cairn。未经授权进行安全测试、利用或数据访问可能构成违法并造成损害。本项目的开发者和贡献者不对因使用本项目而产生的任何误用、滥用、损坏、损失或法律后果表示认可或承担责任。使用本项目即表示您同意确保自身活动符合所在司法管辖区所有适用法律、法规、合同义务以及专业或组织政策。 ## 星标历史 ## ⚖️ 许可证 本项目采用 GNU AGPLv3 许可证,适用于个人和教育用途。 商业用途:若您希望在商业或专有环境中使用本项目而无需承担 AGPL-3.0 的开源义务,请联系我获取商业许可证。 贡献:提交 Pull Request 即表示您同意您的贡献可在 AGPL-3.0 与本项目的商业许可证下使用。

相似文章