那一次热身赛,我印象很深。新队友把一道常规 Web 题目的页面和源码片段直接粘进 AI 助手,不到五分钟,AI 给出了完整的利用思路和构造方式,他照着操作,拿到了 flag。坐在旁边的老选手还在逐行读源码,表情从疑惑变成无奈。这个场景在未来只会越来越常见:当 AI 能以接近“秒懂”的速度覆盖公开知识型题目时,传统 CTF 的“快速夺旗”逻辑就开始被稀释。
如果把“后 AI 时代的 CTF”简单理解成“禁掉 AI”,那多半会陷入无休止的监督博弈。更值得思考的方向是:CTF 赛制能不能从一场“解题比赛”变成一次“研究静修营”——英文里叫 Research Retreat。它不是要求大家跑得更快,而是给大家一个可以慢下来、深进去、围绕一个真实问题做长期探索的环境。后 AI 的 CTF 不一定是一个更快更强的竞赛,反而可能是一次更接近研究本质的深度练习。这个判断,是我在反复观察 AI 辅助解题的边界之后得出的。
1. 为什么传统 CTF 的核心逻辑正在被 AI 稀释
1.1 CTF 的本质里,有相当一部分是模式识别
传统 CTF 的题目看起来五花八门,但拆开来看,很多题目在本质上考的是:能不能认出这是一个什么类型的问题,并且快速套用已知方法。Web 题里常见的逻辑漏洞、文件上传、序列化结构;Misc 题里的隐写格式、编码方式;密码学里的常见攻击模型;逆向题里最常见的混淆手法。这些内容在公开博客、GitHub、历年 writeup 里都有大量沉淀。
AI 大模型恰恰最擅长处理这种“已知知识覆盖”的问题。它可以把一个题目的特征描述、代码片段和历史套路做快速匹配,几秒钟给出建议方向。对出题人来说,这是非常头疼的事:你设计了一个自以为精巧的题目,实际上只是把多个公开套路组合了一遍,AI 一旦能识别中间的关键特征,绕开人类选手需要逐个试错的探索过程。
这里要分清一个边界:AI 并不能秒杀所有 CTF 题目。比如需要真实环境交互、需要大量调试、需要处理非标准二进制协议、需要结合运行时动态状态做多步推理的题目,AI 的表现依然不稳定。但问题在于,每年大量入门题和中等题都处在“已有套路”覆盖范围内。如果比赛依然以这些题为主体,AI 辅助会显著削弱考核的区分度。
1.2 单次跑通不等于理解,更不等于能力迁移
我在不少公开讨论里看到一种乐观说法:AI 既然能帮我们做题,那人类选手就可以专注于更高层的策略。这种说法有一定道理,但忽略了一个关键问题:CTF 的分数系统只能记录结果,无法记录过程中到底是谁完成的推理。选手把题目丢给 AI,拿到 flag 后,可能完全不知道中间某一步为什么生效。
这就像一个学生请人代写了作业:交上的答案是对的,但自己的理解没有增加。放在实际工作里,CTF 培养的能力应该是“面对一个未知系统时,能自主建立假设、设计验证、定位问题、给出修复”。如果 AI 把中间过程黑盒化,选手只是把题目描述和 AI 的输出复制到提交框里,那这场竞赛就在评价“提问工具的能力”,而不是“选手的能力”。
所以,传统 CTF 危机的本质不是“AI 太强”,而是“赛制只评价结果,不评价过程”。只要结果可以被轻松替代,赛制就需要改变评价对象。
2. “后 AI CTF”不是禁止 AI,而是重新定义赛制目标
2.1 从“提交 flag”到“提交研究报告”
如果目标从“找到正确答案”变成“提交一份可复现的安全分析报告”,AI 的角色就会从“答案生成器”变成“研究助手”。选手可以把 AI 当作一个可以快速整理知识的协作者,但最终必须用自己的语言和逻辑解释整个问题。
一份合格的研究型 CTF 报告大致包含五块内容:
- 问题定义:这个目标有什么异常?它在什么场景下会出现?
- 分析过程:我检查了哪几个模块,用了什么手段,排除了哪些可能。
- 实验记录:我做了什么最小验证,结果是什么,失败了几次。
- 结论论证:我如何确认根因,如何证明它和现象之间的关系。
- 修复建议:对这个问题,当前最合理的缓解方案是什么。
这种赛制下,AI 能帮选手快速检索历史漏洞模式、生成测试用例、建议排查方向,但选手必须亲自动手验证。更重要的是,选手得能向评审解释“为什么这一步是必要的”,这恰好是 AI 输出最薄弱的地方。AI 擅长叙述“怎么做”,但很少能解释“为什么在那些看似无关的路径里选择这一条”。后者依赖人的判断。
这种设计并非凭空想象。它很像真实安全研究中的日常:先收到一个模糊的安全事件线索,然后花几个小时甚至几天去还原现场、分析根因、验证影响,最后输出一份别人能照着复现的报告。CTF 如果变成一个短期、小规模的研究训练场,它对人的帮助会比单纯比反应速度更长远。
2.2 传统 CTF 与研究型 CTF 的四个维度差异
可以用一个表格来理解这两种赛制的差异:
| 维度 | 传统 CTF | 后 AI 研究型 CTF |
|---|---|---|
| 时间尺度 | 几小时到一天 | 几天到几周 |
| 题目答案 | 固定 flag,唯一解 | 开放问题,多种有效结论 |
| 评价内容 | 是否正确提交 | 是否清楚论证、可复现 |
| 工具使用 | 手工 + 脚本 | AI 辅助 + 人工验证 |
| 协作模式 | 小队内部协作 | 人机协作 + 评审问答 |
| 学习目标 | 快速掌握常见套路 | 建立深度问题理解 |
这个对比说明,后 AI CTF 不是“禁止 AI”的复古路线,而是顺势把考核重心迁移到 AI 最不擅长的那一层。
有人会担心:开放题会不会拉长比赛时间,降低观赏性?这是事实。传统 CTF 的紧张感来自时间压力,而研究型 CTF 更像论文答辩。但我们需要意识到,CTF 本身不是综艺节目,它的第一目标是训练和筛选能力。如果一项比赛制度已经无法有效区分选手真实水平,那保留它的紧张感和观赏性就没有意义。
2.3 为什么叫 Research Retreat
Retreat 这个词在学术和研究机构里通常指“一段时间内放下日常事务,专注一个核心问题”的活动。它不强调竞赛,而是强调深度思考、自由讨论和试错。后 AI 时代的 CTF 完全可以往这个方向走。
想象一个场景:选手拿着同一个真实世界里的软件副本,用一周时间分析其安全边界;每天早上和同行讨论思路,下午做实验,晚上记录日志;第五天提交一份像样的小型研究报告。这个场景既保留了 CTF 的挑战性,又加入了研究最重要的元素——时间、耐心、怀疑和验证。
这让我想起第一次接触漏洞挖掘时的感受:真正困难的地方不是“知道某个 CVE”,而是能在一个庞大的代码库里找到那个被忽略的入口。这需要的不只是技巧,更是一种愿意慢下来反复确认的耐心。研究型 CTF 恰恰能锻炼这种耐心。
3. 如果要办一场后 AI CTF,应该怎么设计
3.1 题目分层:基础题、进阶题、研究题
如果直接把整场比赛都改成开放题,对新手并不友好。更好的做法是分层设计,让不同阶段的选手都能找到适合自己的挑战。
第一层是基础题,可以允许 AI 辅助。这类题目的目标不是拉开差距,而是让新选手快速熟悉环境,知道 CTF 到底在做什么。AI 可以帮助新手降低入门门槛,比如解释一个框架的请求流程、提示常见的入手点。这个阶段成绩的意义不大,更多是热身和引导。
第二层是进阶题,要限制 AI,或者至少要求选手实时记录思考过程。题型可以是需要和实际环境交互的题目,比如动态调试、条件竞争、复杂状态分析。这类题目的价值在于:即使 AI 给出了方向,选手也要花时间验证和调整,因为环境状态是实时变化的。
第三层是研究题,不设唯一解。题目可以来自真实开源项目的已知问题,但要求选手不能只交一个答案,而是要写分析过程和修复建议。比如:给定一个教学中常用的 Web 应用,请分析某个模块是否在处理外部输入时存在安全风险,并用最小实验验证你的结论。这里不对具体漏洞利用做演示,只要求选手展示排查思路、日志证据和修复方案。这是一种可落地、合规、有研究价值的题目形式。
3.2 评分规则:结果分、过程分、表达分
研究型赛制不能使用简单的对错判定,需要设计一个多维评分模型。可以按以下三个维度来打分:
- 结果正确性:结论是否成立,关键证据是否有效。
- 过程完整性:是否记录了失败的尝试,是否展示了排除其他可能的过程。
- 表达清晰度:报告是否能被其他人理解并复现。
一个常见的评分公式可以是:
最终分 = 结果验证分 × 40% + 过程记录分 × 35% + 表达与可复现分 × 25%
这不是唯一标准,但它强调了一件事:把过程写清楚,和得出结论一样重要。在传统 CTF 里,没有人关心你的失败过程;在研究型 CTF 里,失败过程反而是重要的学习资产。
3.3 平台和环境准备有哪些关键点
如果要实际操作,环境准备会比传统 CTF 复杂不少。需要考虑几件事:
- 隔离环境:每个选手或每组选手需要独立的靶场实例,避免互相干扰。
- 日志与审计:平台要记录选手的操作行为,方便评审回溯。
- AI 资源:如果允许 AI 辅助,要么提供本地模型接口,要么允许选手自带工具,但要约定输入信息边界。
- 固定依赖:靶场镜像需要固定操作系统版本、软件版本和配置,否则复现会出现偏差。
这些要求看起来繁琐,但也是真实研究环境的缩影。越是接近真实,越能考验选手对环境的掌控能力。
建议:如果只是小规模实验,不必一开始就追求完整平台。可以用一个 Git 仓库保存题目环境和报告模板,用 GitLab/GitHub 的提交记录代替过程日志。先把规则跑通,再考虑平台化。
3.4 一个最小可执行的题目样例
假设我们要出一道研究型 CTF 题,可以这样设计:
题目名称:一个教学级 Web 应用的输入处理分析
目标环境:一个部署在 Docker 容器里的教学 Web 应用,它有一个搜索功能和一个导出报表功能。
要求:
- 在不修改目标代码的前提下,通过黑盒测试和阅读源码,判断导出报表功能是否存在用户可控参数可能引发的安全问题。
- 用最小请求样例证明你的判断。
- 给出可操作的安全修复建议。
- 提交一份不超过 2000 字的报告,包含分析过程、证据日志和结论。
这类题目的答案不是唯一的。选手可以得出“存在风险”“不存在风险但需要加固”“存在风险但不是高危”等不同结论,只要证据链完整、方法正确,都是有效答案。AI 可以帮忙查资料、整理日志,但最终能不能找到问题、怎么验证,仍然需要人来完成。
4. 真正落地时会遇到哪些坑,怎么排查
4.1 AI 输出的幻觉常常伪装成“合理结论”
研究型赛制允许 AI 辅助,但随之而来的最大坑是 AI 幻觉。AI 在不确定时可能生成一段听起来非常合理的解释,甚至引用不存在的源码位置或根本不存在的 CVE 编号。如果没有验证习惯,选手很容易把幻觉当作事实写进报告。
排查链路应该按顺序走:
- 要求 AI 给出依据来源,比如具体源码行号、函数名或文档章节。
- 到原始环境中核对这些依据是否存在。
- 用最小用例验证 AI 提出的假设。
- 如果 AI 输出的关键事实找不到原始出处,直接标记为“未验证”。
- 在报告里明确区分“已验证事实”“AI 建议”和“个人推测”。
这其实是把日常使用 AI 时需要养成的习惯,变成比赛里的强制要求,对长期工作很有帮助。
4.2 环境不一致导致结果不可复现
很多人在解题时经常遇到一个问题:同一道题在自己的环境里能得到结果,评委环境里却不行。常见原因往往是环境差异,而不一定是选手造假或题目有误。
可以从这几个方面排查:
- 版本差异:目标软件、依赖库、操作系统版本是否一致。
- 文件路径:是否有绝对路径写死在配置里。
- 权限问题:是否用了 root 或特定用户,权限模型是否不同。
- 资源限制:内存、CPU、文件描述符限制是否一致。
- 外部依赖:是否访问了外网、是否需要特定时间戳。
解决办法是提前把环境固化成镜像,并提供环境校验脚本。选手提交报告时,必须附带环境清单,包括 Dockerfile、依赖版本、启动命令等。这样就极大地减少了“在我电脑上能跑”这类尴尬。
4.3 如何防止“AI 代答但人没有理解”
研究型 CTF 比传统 CTF 更能防止 AI 代答,但依然可能出现选手直接把 AI 写的报告交上来。一个有效的做法是增加答辩或面试环节。
可以设计成小规模的评审会:每个选手用 10 分钟讲解自己的报告,评审随机从报告里挑选 3 个关键点提问。如果选手解释不清楚,过程分会明显损失。这样会让选手认识到:AI 可以作为工具,但不能替代理解。
如果比赛是线上开展,无法组织实时答辩,可以在提交模板中设置“必答反思题”。例如:
- 你在分析过程中遇到的最大误区是什么?
- 你如何确定某个模块不是风险点?
- 如果你有 AI 助手,它给出的哪条建议最终被你否决了?为什么?
这类问题没有标准答案,但能促使选手回顾自己的思考路径。AI 可以生成一份很漂亮的回答,但很难编出一套真实且经过验证的失败经验。
4.4 资源限制和信息边界
研究型 CTF 的耗时更长,资源消耗也更大。如果大量选手同时调用外部 AI 接口,成本会很快上升。更关键的是,比赛靶场内部可能存在敏感信息,不应该被送到外部公开 AI 服务。
一个比较稳妥的做法是:
- 优先使用本地部署的开源模型,让选手在比赛环境内完成推理。
- 如果必须使用外部服务,约定禁止上传源码、日志和内部网络信息。
- 题目环境默认不连外网,选手只能使用比赛方提供的工具集。
这些限制不是在削弱 AI 的使用,而是保证比赛的公平性和信息安全性。真实研究环境里,同样需要遵守数据边界和合规要求。
5. 对普通选手的意义:从“刷题”转向“做研究”
5.1 一个可复用的个人训练框架
即使暂时没有参加研究型 CTF 的机会,个人也可以把日常训练方式往研究方向调整。我建议一个三步走的小框架:
第一步:让 AI 先给思路,但不要直接采用。拿到题目后,先自己想 20 分钟,记录下当前的分析假设。然后把 AI 的建议作为参考,逐条和自己的假设对比,找出差异点。
第二步:复现 AI 的建议,并给每一步加上“为什么”。不要只是粘贴运行。问自己:它为什么选择这个参数?为什么检查这个位置?如果环境变化,这招还适用吗?
第三步:每周选一道已经做过的题目,写一份不超过 3 页的小报告。报告里不要只写“我找到了 flag”,要写“我通过排除 A 和 B,最后确认 C”。这种输出才是能力沉淀。
这个框架的本质是把“做题”变成“研究”:有假设、有验证、有记录、有反思。AI 可以帮我们节省检索信息的时间,但无法替我们建立对问题的直觉。而 CTF 里最宝贵的东西,恰恰就是这种直觉。
5.2 这种训练适合哪些人,不适合哪些人
研究型 CTF 并不适合所有人。它更适合那些愿意花时间深入了解系统,享受“慢慢接近答案”过程的人。对这样的人来说,AI 不是威胁,而是能帮他们节省大量检索时间,让注意力集中在真正重要的判断上。
不太适合的,是那些追求短期快感、靠快速拿分获得满足感的人。传统 CTF 里那种十分钟解一题的多巴胺刺激,研究型赛制很难提供。但这不代表后者更高级,只是目标不同。如果你发现自己更喜欢快速挑战,依然可以在保留传统 CTF 的同时,加入研究型环节作为补充。
关键不是“禁止 AI”或“拥抱 AI”,而是明确你想从 CTF 里获得什么。如果只是玩,怎么都可以;如果想把 CTF 变成个人能力成长的训练工具,那就需要重新设计训练目标。
5.3 为什么这个方向会持续成为长期趋势
我在这个方向上的判断是:AI 不会取代所有 CTF,但会持续挤压“纯知识型”题目的生存空间。未来赛制一定会走向更强调人机协作和判断力的方向。原因有三个:
第一,公开知识会被 AI 整合得更彻底。以后越来越多传统题目的解题思路会被 AI 直接生成。赛出题方的成本会大幅上升,因为旧套路很容易失效。
第二,真实安全工作的重心正在改变。防御者需要从海量日志里快速抓住重点,需要判断一个告警是误报还是真实风险,需要在 AI 生成的结论里发现错误。这些能力无法靠“提交 flag”来测量。
第三,AI 本身会成为安全研究的对象。让选手分析一个 AI 系统的行为边界、推理漏洞、误报机制,这也是一种实实在在的研究型 CTF 方向。这类题目更需要结构化分析和表达能力,而不是快速猜答案。
所以,后 AI CTF 把“研究”放在“比赛”前面,并不是在逃避 AI,而是在寻找一条更经得起时间考验的评价体系。
结尾不必写太长。我记得那次热身赛之后,我拿回那道题,用 AI 重新解了一遍。AI 在一个小时内给出了三种思路,其中一种确实可行。但当我想知道为什么另外两种不行时,它没有给出让人满意的解释。那一刻我意识到,CTF 的答案从来不是终点,理解才是。后 AI 时代的 CTF,也许真正要做的不是让 AI 替我们思考,而是逼迫我们思考得更深。 Research Retreat 的意义,正在于此。