文章总结: 本文聚焦AI解CTF工具的安全边界问题,核心观点是AI解题能力已非关键,真正价值在于沙箱隔离设计。文章介绍CTF-BTFly与CTF_Agent两个开源项目,强调容器隔离、临时凭据、网络白名单等安全基线,并给出AI解CTF能力数据(顶级模型配Kali可达50%-60%解题率)。可操作建议:检查Agent配置中模型APIKey是否为临时凭据,避免长期密钥泄露风险。
综合评分: 85
文章分类: AI安全,渗透测试,红队,安全工具
渗透测试从业者注意 AI 解 CTF 已到 52/52,真功夫在”沙箱边界”
宝十八
宝十八
网络安全老宋
2026年9月28日 12:00
山东
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
导语: 你好,我是网络安全老宋。安全攻防干货准时送达!
网络安全老宋// 工具测评 · 红蓝对抗
// 工具测评 · 红蓝对抗
渗透测试从业者注意 AI 解 CTF 已到 52/52,真功夫在”沙箱边界”
把 AI 放进你的环境里让它自己跑命令,边界该怎么画——这两个开源项目给了答案。
🔑 一句话精华
AI 能不能解题早就不是问题了,问题是你敢不敢让它在你的机器上自己跑命令。
目录 · Table of Contents
01这波工具的价值,不在”能解题”
02两个项目长什么样
03最值钱的:沙箱边界怎么画
04AI 解 CTF,到底什么水平
05想自己跑一个?先看这七条
06老宋说
01这波工具的价值,不在”能解题”
CTF-BTFly 的作者在 README 末尾写了句大实话:”大部分代码都是 AI 写的,我只负责给出技术栈和实现流程,还在测试阶段,不一定好用。”
这话听着谦虚,其实挺吓人。一个开发者花一个暑假,就能攒出一套”提交题目、AI 自己在容器里分析、产出 flag 和中文 Writeup”的桌面工具。而同一个赛道上,Veria Labs 的 ctf-agent 用一个周末写出来,在 BSidesSF 2026 上解了 52/52 题,拿了第一。
所以这篇不聊”AI 能不能解 CTF”,那个问题 2024 年就有答案了。这篇聊一个更实在的问题:把 AI 放进你的环境里让它自己跑命令,边界该怎么画。
这个问题跟你有关系。因为你手里的那台工作机,可能比一场 CTF 比赛更值钱。
大多数人第一眼看到这类项目,关注点是”AI 能解几道题”。这个视角其实是错的。
真正决定这类工具能不能进你环境、能不能上生产的,是另一件事:它的失败后果有多大。一个解题率 80% 但能碰到宿主机的 Agent,比一个解题率 40% 老实待在容器里的 Agent,危险得多。
Agent 可以在沙箱中自由解题,但不能突破沙箱边界。—— CTF-BTFly README
这句话是整套设计的地基。它承认了一个前提——Agent 会做傻事,会做超出任务范围的事,所以不靠提示词约束它,靠基础设施隔离它。这才是这两个开源项目最值得抄的地方。
02两个项目长什么样
先把两个项目摆清楚,它们的定位不一样。
CTF-BTFly(作者 huihuilikaile,参考项目 dlongx/CTF_Agent):Wails v3 + React 19 + Go daemon 桌面应用。每题一个独立 Docker 容器,覆盖 Web / Crypto / Pwn / Reverse / Forensics / Misc 六个方向。核心卖点是”可追踪的解题工作台”——Agent 状态、工具调用、沙箱事件、文件产物、最终 flag、可下载的 Writeup,全都在界面上摊开。
CTF_Agent(作者 dlongx):更克制。Go 单体服务 + 原生 HTML / ES Modules 前端,不引入 Vue、不引入 SQLite、不引入微服务。Go 服务负责持久化和排队,Docker 给每个任务建隔离环境,容器内 OpenCode 通过 Python 桥接脚本调用你配置的模型 Provider。自动续跑最多 6 轮,带并发上限、总任务超时、单轮超时、无输出超时。
| | | |
| — | — | — |
| 维度 | CTF-BTFly | CTF_Agent |
| 前端 | Wails v3 + React 19 | 原生 HTML,无构建 |
| 后端 | 独立 Go daemon | Go 单体服务 |
| 隔离 | 每题一容器,可选 gVisor | 每题一 Docker 容器 |
| Agent | Pi Agent(RPC) | OpenCode + Python 桥接 |
| 输出 | WRITEUP.md + 脚本 + 产物 | 任务日志 + 自动续跑 |
| 定位 | 可视化工作台 | 排队调度平台 |
有意思的是,这两个项目的关系是互相致谢的——CTF_Agent 的作者帮 CTF-BTFly 完善了文档。同一批人在做同一件事,只是路线不同:一个往前端可视化走,一个往服务端调度走。
这个赛道值得你留意,因为它已经不是一个人在干了。下面这张是能力和边界都做得比较完整的两个样本。
📌 如果你身边有同事正准备把这类工具拉到自己机器上跑,先把这篇转给他看看。
03最值钱的:沙箱边界怎么画
如果只让我保留一页 README,我保留 CTF-BTFly 那节”Agent 有自主权,但没有宿主机权限”。
它明确列了容器不会拿到什么。我逐条说一遍为什么,因为这份清单基本就是这类工具的”安全基线”:
| | |
| — | — |
| 容器不会拿到 | 为什么这一条很关键 |
| Docker Socket | 能访问它就等于没隔离,Agent 可以直接起一个新特权容器 |
| –privileged 特权 | 给了这个参数,隔离形同虚设 |
| 宿主机目录挂载 | 工作区必须独立,不能挂家目录、不能挂 /etc |
| 宿主机 SSH 私钥 | 拿到就是横向移动的起点 |
| 数据库凭据 | 数据面直接暴露给它 |
| 长期模型 API Key | 泄露等于无限刷账单 + 横向调用其他服务 |
| 未授权目标访问 | 这不是技术问题,是能不能用的问题 |
第一条踩过的人最多。挂载 /var/run/docker.sock 是 Agent 类工具最常见的自杀式设计,一旦容器内能访问它,Agent 可以直接拉一个新容器出来,前面做的隔离全部归零。
第六条最容易被忽略,也最贵。CTF-BTFly 的做法是:真实模型密钥由本机 daemon 管理,容器只拿到任务级临时访问凭据。这意味着即使 Agent 被提示注入接管、或者容器真被突破,攻击者偷到的也是一把几分钟后就过期的钥匙,而不是能无限刷你账单、能横向调用其他服务的长期密钥。
// 老宋说一句:凭证的生命周期,就是爆炸半径。长期有效的密钥,等于把爆炸半径设成了无限大。
最后一条是合规底线。CTF-BTFly 在 README 里反复强调:仅用于明确授权的比赛、靶场、教学与本地环境;比赛规则优先于工具能力,赛事禁止自动化或联网检索时要遵守规则。这条底线不是免责声明式的摆设,它决定了这个工具能不能拿出去给同事用。
04AI 解 CTF,到底什么水平
说完成本,说能力边界。下面这几组数据都是公开基准,可以直接查。
NYU CTF Bench(200 道题,2024 年发布)是学术界用得最多的一个。解题率这几年的变化很能说明问题:
| | | |
| — | — | — |
| 系统 | 模型 | pass@1 |
| NYU CTF 基线 | GPT-4-0125 | 约 5% |
| EnIGMA | Claude 3.5 Sonnet | 13.5% |
| D-CIPHER | Claude 3.7 Sonnet | 22.0% |
| CRAKEN | Claude 3.5 Sonnet(带检索) | 22.0% |
| EnIGMA + Kali | Claude 4.5 Opus | 59.0% |
| EnIGMA + Kali | Gemini 3 Pro | 52.0% |
注意最后两行。同一个 Agent 框架、同一个模型,只是把容器基础镜像从 Ubuntu 换成装了完整渗透工具链的 Kali,解题率就涨了 9.5 个百分点。到 2026 年,顶级模型配上 Kali 加多智能体,CTF 基准上的解题率已经到了 50%~60%。
但真正要看的是另一组数字。
有研究报告做了对照:GPT-4 在给出漏洞公告描述的条件下,能利用 87% 的”一日漏洞”。换成 CVE-Bench 的真实条件——不给描述、只有目标——只能解决 13% 的真实 CVE。到了困难的 HackTheBox 靶机,接近 0%。
⚠️ 从 87% 到 13%,这道沟叫”实验室到现实的落差”。再补一组:斯坦福 2025 年底实测,最强自主 Agent 在一张 8000 台主机的真实企业网络里跑测试,总分拿到第二,但漏掉了一个 80% 的人类测试员都能发现的关键 RCE。
所以结论很清楚:AI 在”有人写过解题套路”的地方很强,在”需要自己创造一个思路”的地方很弱。这个结论反过来,正好定义了你该防什么。
📌 觉得这几组数据有用,先收藏。下次年度安全汇报里要”AI 攻防现状”的材料,直接拿去用。
05想自己跑一个?先看这七条
如果你打算把这类工具拉到自己环境里跑(只在你拥有授权的靶场或本地环境),建议逐条核对:
| | |
| — | — |
| R1 | 容器里有没有 Docker Socket有就别跑。这一条是红线中的红线,没有例外。 |
| R2 | 是不是 –privileged给了这个参数,隔离基本等于零。 |
| R3 | 模型 Key 是长期还是临时如果是长期写在环境变量里,先换成任务级临时凭据,或者至少做到一题一个 key、用完即焚。 |
| R4 | 有没有挂宿主机目录工作区必须独立,不能挂家目录,不能挂任何包含凭据的路径。 |
| R5 | 出网有没有白名单沙箱如果有不受限的网络出口,等于没有沙箱。默认拒绝、显式放行模型网关和题目目标。 |
| R6 | 有没有资源上限和超时内存、CPU、磁盘、单任务时长、单轮时长、无输出超时,全部要有。没有频率限制的 Agent,等于油门焊死。 |
| R7 | 出网目标是不是你授权的这条不是技术问题,是能不能用的问题。CTF-BTFly 自己的说法是”比赛规则优先于工具能力”。 |
这七条不需要你写代码,只需要你看配置文件。但你得看。
地址:https://github.com/dlongx/CTF_Agenthttps://github.com/huihuilikaile/CTF-BTFly
06老宋说
// 老宋说:这件事的本质,不是 AI 变聪明了,而是”自主执行”这类工具的安全模型换了。以前是”证明它不会做坏事”——用提示词写满”不要越界”;现在是”假设它一定会做坏事”——然后用容器、临时凭据、网络白名单把损失圈住。提示词越写越长,说明防护越做越虚。
// 从行业看,这类项目真正的门槛已经不在”能不能解出来”,而在”敢不敢让它跑”。2026 年不是比谁家 Agent 解题率高的阶段了,是比谁家沙箱边界画得干净、谁家凭证管得住的阶段。CTF-BTFly 那份”容器不会拿到什么”的清单写得比解题功能还认真——这个顺序是对的。
// 给你的建议就一件:现在去翻一下你手上任何一个”能执行命令的 Agent”的配置,看它的模型 API Key 是长期还是临时。如果是长期写在环境变量里,那今天剩下的时间就有事干了。这不是危言耸听,这是最便宜的一次加固。
网络安全老宋 · 转载请注明出处
防御,不是在演练期间发现攻击,而是在演练开始前就把攻击面收敛到最小。
end
不想错过文章内容?读完请点一下“在看”,加个“关注”,您的支持是我创作的动力
期待您的一键三连支持(点赞、在看、分享~)
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:网络安全老宋 宝十八
宝十八《渗透测试从业者注意 AI 解 CTF 已到 52/52,真功夫在”沙箱边界”》