AI渗透测试背后的Cairn

admin 2026-05-19 05:33:04 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Cairn是oritera开源的AI通用状态空间搜索引擎,通过Fact/Intent图建模解决起点明确但路径未知的问题。核心采用黑板架构和stigmergy机制,Worker通过共享环境间接协作,动态生成探索任务。系统已验证应用于AI渗透测试、CTF解题、漏洞研究等场景,支持ClaudeCode等多Agent并行探索。项目提供Docker部署方案,强调将原始日志转化为结构化Fact/Intent以优化上下文管理。 综合评分: 75 文章分类: AI安全,渗透测试,红队,漏洞分析,安全工具


cover_image

AI 渗透测试背后的 Cairn

原创

攻防路 攻防路

攻防录

2026年5月18日 18:05 北京

在小说阅读器读本章

去阅读

简介

Cairn 是 oritera 开源的 AI 通用状态空间搜索引擎。它把“从起点到目标,但路径未知”的问题建模成一张 Fact / Intent 图,再让多个 Agent 围绕这张图持续探索。

项目地址: https://github.com/oritera/Cairn

AI 渗透测试只是 Cairn 已经验证过的第一个场景。它真正想抽象的是一类问题:起点明确,目标明确,中间路径未知。

这类系统可以用于 CTF、授权安全评估、漏洞研究、数学证明、复杂任务探索。

技术原理

Cairn 的核心不是给 Agent 预设“侦察员”“漏洞利用员”“报告员”这种角色,而是把探索过程放进一张共享图里。

图里只有三个核心对象:

| 概念 | 含义 | 作用 | | — | — | — | | Fact | 已确认的客观事实 | 作为后续探索的踏脚石 | | Intent | 还没执行的探索方向 | 让 Agent 知道下一步可以查什么 | | Hint | 人或系统补充的策略提示 | 不进入因果图,只影响下一轮判断 |

Fact 像路标,Intent 像下一段路。Agent 不直接互相聊天,也不靠固定分工协作。它们都读同一张图,把自己的探索结果写回图里,后来的 Agent 再接着读。

这种方式对应 README 里提到的黑板架构和 stigmergy:多个执行者不直接通信,而是通过共享环境间接协作。

执行循环

每个 Worker 都执行同一套 OODA 循环:

| 阶段 | Cairn 里的动作 | | — | — | | Observe | 读取完整 Fact / Intent / Hint 图 | | Orient | 判断当前状态离 goal 还有多远 | | Decide | 生成新的 Intent,或认领已有 Intent | | Act | 执行探索,写回新的 Fact |

任务类型只有三种:

| 任务 | 触发时机 | 输出 | | — | — | — | | Bootstrap | 项目刚开始时,直接尝试推进整个问题 | Fact,必要时 Complete | | Reason | 读全图,判断是否完成或提出新方向 | Complete / Intent / no-op | | Explore | 认领一个 Intent 并执行 | 一个新的 Fact |

这个设计的重点是“少角色,多协议”。Agent 不需要知道自己是谁,只需要知道当前图是什么、目标是什么、自己能补哪块事实。

系统结构

Cairn 分成 Server 和 Dispatcher 两层。

| 组件 | 职责 | | — | — | | Cairn Server | 保存 Project、Fact、Intent、Hint,维护图一致性 | | Dispatcher | 读取图、调度任务、管理容器、解析 Agent 输出 | | Worker Container | 每个项目的隔离执行环境 | | Agent Worker | Claude Code、Codex、Pi 等实际执行器 |

Server 不做推理,只做协议真相源。Dispatcher 才负责调度:选择任务、选择 Worker、启动容器内进程、把结构化结果写回 Server。

README 里的架构图可以概括成这样:

Cairn Server
  Facts / Intents / Hints
        ↓
Dispatcher
  Scheduling / Container / Protocol Writeback
        ↓
Worker Containers
  Claude Code / Codex / Pi

为什么不固定角色

固定角色的多 Agent 系统容易遇到两个问题:

  1. 角色边界写死后,任务变化时很难调整。
  2. 某个角色漏掉的信息,其他角色未必能补回来。

Cairn 的做法是让任务从图里长出来。图上有什么 Fact,当前还有什么 Intent,目标是否已经满足,这些信息决定下一步该做什么。

| 设计方式 | 典型问题 | Cairn 的处理 | | — | — | — | | 固定角色 | 角色边界僵硬 | Worker 不绑定角色 | | 固定流程 | 未知路径容易卡死 | Intent 动态生成 | | Agent 互聊 | 信息容易散落在对话里 | 所有结论落到 Fact 图 | | 中心调度推理 | 调度器变成瓶颈 | Server 只维护一致性 |

快速上手

Cairn 需要 macOS 或 Linux、Python 3.12+、Docker。README 推荐用 Docker Compose 启动。

  1. 克隆仓库。
git clone https://github.com/oritera/Cairn.git
cd Cairn
  1. 拉取 Worker 容器镜像。
docker pull --platform=linux/amd64 ghcr.io/oritera/cairn-worker-container:latest
  1. 使用 Docker Compose 启动。
docker pull ghcr.io/astral-sh/uv:python3.13-trixie
docker compose up --build

启动后,cairn-server 默认监听 8000 端口。数据会持久化到:

./datas/cairn/
  1. 手动启动方式。
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
  1. 配置 Worker。

运行前需要编辑 dispatch.yaml,填写 LLM endpoint 和 API key。配置里主要有四块:

| 配置块 | 作用 | | — | — | | server | Cairn Server 地址 | | runtime | 调度间隔、全局并发、项目并发 | | tasks | bootstrap / reason / explore 超时策略 | | workers | Claude Code、Codex、Pi 等 Worker 配置 |

默认示例里,单个项目最多 4 个 worker,全局最多 8 个 worker,调度间隔是 3 秒。

使用场景

1. CTF 和靶场解题

任务示例:给定靶机地址和 flag 目标,让多个 Agent 并行探索端口、Web 服务、凭证、权限路径。

技术要点:不要把扫描输出直接塞满上下文。把结论写成 Fact,把下一步方向写成 Intent,原始日志放文件引用。

2. 授权安全评估

任务示例:在明确授权的内网或演练环境中,让 Agent 逐步确认攻击面、误配置、权限边界和可达路径。

技术要点:授权边界必须写进 origin、goal 或 Hint。不要让系统对未知外部目标自由探索。

3. 漏洞研究流程管理

任务示例:围绕某个组件,从复现条件、影响版本、触发路径、补丁差异逐步推进。

技术要点:Fact 只写已确认事实。猜测和方向放 Intent,人工判断放 Hint,避免把未证实结论写进图。

4. 复杂问题求解

任务示例:不是安全问题,而是数学证明、代码迁移、复杂调试,目标明确但路径不明确。

技术要点:把“状态空间搜索”抽出来用。Cairn 不要求任务一定是渗透测试,只要求有 origin、goal 和可验证的中间事实。

结尾

Cairn 值得关注的点,不是“又一个 AI 渗透测试 Agent”。它把 Agent 协作压缩成一套图协议:Fact 记录已经知道的事,Intent 记录下一步要探索的方向,Hint 承载人工判断。

这种设计更像给 Agent 铺路标。每个 Agent 不需要知道全局剧本,只要读图、补图、继续往目标推进。

往期推荐 📚

对Auth/Waf 自动化bypass的burpsuite插件

anything-analyzer:AI抓包分析器

taste-skill:AI前端审美外挂

欢迎关注“攻防录”✨


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:攻防录 攻防路 攻防路《AI 渗透测试背后的 Cairn》

评论:0   参与:  0