# 40小时的渗透测试，AI只要28分钟：GitHub Copilot之父教AI当黑客

> Training Data No. 26 中文精读

- 原标题：XBOW CEO and GitHub Copilot Creator Oege de Moor: Cracking the Code on Offensive Security With AI
- 发布日期：2024-12-10
- 主持：Sonya Huang · Pat Grady · Konstantine Buhler 等
- 网页版：https://trainingdata.qiaomu.ai/ep/026-xbow-ceo-and-github-copilot-creator-oege-de-moor-cracking-th-9mIphD.html
- 精读字数：约 5314 字（阅读约 12 分钟）

> 本文为 trainingdata.qiaomu.ai 基于原始访谈的 AI 改写中文精读，非官方翻译；引用请注明出处并链接网页版。

104道黑客挑战题，5位职业渗透测试专家同场竞技。其中一位是行业金字塔尖的人物，那种会被请去保护几十亿美元规模对冲基金的顶级专家。最终，他和一个AI打成了平手。

人类花了40小时，AI用了28分钟，速度差了85倍。

这是2024年12月红杉资本播客Training Data公布的结果。做这个AI的公司叫XBOW，今年刚亮相就被评为最受关注的AI原生公司之一。创始人是Oege de Moor：牛津大学计算机教授出身，上一家公司Semmle被GitHub收购后，他在GitHub内部创办了Copilot项目，就是那个全球使用最广的AI编程工具。

现在他出来再创业，方向听起来有点危险：让AI自动模拟黑客攻击，替企业找漏洞。红杉是XBOW的投资方，合伙人Konstantine Buhler回忆，刚合作那会儿“这还是一门科学”，没人知道AI能不能摸到人类专家的水平。Oege自己当时的估计也保守：至少一年才能达到平庸渗透测试员的水平，顶级的想都别想。结果几个月后，AI直接追平了最顶尖的那个人类。

## 一次1.8万美元、一年只测两次，这门生意的缝隙在哪

先解释背景。目前保护软件系统最有效的手段叫进攻性安全（offensive security）：请外部专家模拟黑客攻击你的系统，把找到的漏洞报给你，赶在真正的坏人动手之前修掉。这个工种叫渗透测试，培养一个合格的人要多年训练，又贵又慢。

贵到什么程度？Oege给了一个数字：一次渗透测试的典型报价在1.8万美元上下。因为贵、慢，企业一般一年只做一两次。

缝隙就在这里。**系统天天在变，测试一年才两次，中间的时间窗里，跑在线上的可能就是不安全的版本。**XBOW把这套高度依赖专家经验的流程自动化，渗透测试从一年一两次变成持续运行，每次代码变更之后都跑一遍，问题在上线前就被抓出来。Oege的判断很直接：大量例行的人类工作会被完整自动化取代，人被解放出来做真正有创造性的部分，这就是“服务即软件”（service as software）。

为什么选这个方向？他的路径很顺。Semmle本身就是做安全的，从源代码里找缺陷，内部还有一支进攻性安全团队。当年让他觉得难堪的是最后一步：找到漏洞之后，写出利用（exploit）全靠手工。后来GitHub收购Semmle，他在里面创办Copilot，学会了AI这一手，两条线自然汇合。Semmle的明星安全研究员Nico Waisman跟他一起创办了XBOW。

主持人Sonya Huang问了个尖锐问题：渗透测试市场跟端点安全、网络安全比，又小又重服务，AI能改变什么？

Oege的回答分两层。这个市场小，是因为它被一小撮高技能专家的产能卡死了。供给瓶颈一旦打开，需求会跟着爆炸，因为两件事正在同时发生：**AI让所有人都能写代码，但模型是用公开代码训练的，公开代码里堆满历史漏洞，生成的新代码天然带着更多安全问题；另一边，攻击者已经在用AI提高效率。代码更多，攻击更猛，自动化防御就成了刚需。**

## 拆开看：题库当课程表，专用浏览器，和一个要盯住的“天才少年”

很多人的第一反应：这不就是套壳？

Oege的答案很干脆：大部分魔法在模型之上。XBOW同时接几家基础模型厂商，看它们像跳格子一样轮流领先，模型每变强一次，产品跟着受益。真正的护城河是XBOW自己的安全团队，里面有一批世界顶级黑客，领域知识决定了产品怎么设计。

具体拆开有四块。

第一块，基准测试。Oege的原话："Benchmarks, benchmarks, benchmarks，它是这类产品的命脉。"XBOW把大量测试题组织成一套课程表，用来教模型解安全问题，也用来评估每次改动的效果。

这里有个插曲。第一版产品在PortSwigger、PentesterLab这些知名题库上拿了75%的得分。Oege的第一反应是怀疑：分数高得离谱，多半是题目太有名，混进了训练数据，模型在背答案。团队干脆自己出一套全新的104道题，保证不在任何训练集里，结果拿了85%，比旧题库还高。

第二块，给LLM定制的工具。人类渗透测试员有一套趁手的工具箱，XBOW给模型的工具专门为LLM改造过。专注Web安全的阶段，他们自己造了一个由LLM驱动的浏览器，让模型能点按钮、填表单。

第三块，护栏。Oege形容自家产品像个“过度热情的天才少年”：

> 它做了一堆攻击，找到一个SQL注入，然后兴奋起来：“看我多厉害！Drop table！”在客户环境里这么干是灾难。

渗透测试和真黑客攻击的差别，就在于你不能真的造成破坏。XBOW建了一整套护栏盯着这个天才少年，它要做危险动作时就按住。

第四块，攻击面发现。模型本身是顶级的漏洞利用器，但得先告诉它往哪打。XBOW先用一批工具对目标做侦察、排优先级，再放模型进场。剩下是提示工程的活，比如用思维树（tree of thoughts）提示，让模型盯住一个目标做完，再进下一个。

幻觉和随机性怎么办？Sonya问得很直接：别的领域LLM对六成就够用，安全显然不行。Oege的答案很实用：**自动化的好处就是可以反复跑。**一次不成跑十次，而且模型越强，需要的尝试次数越少。找到漏洞后还有一道自动验证器，确认报告正确、可复现，才交给人去看、去修。

## 从PHP源码摸到密码文件，然后是华盛顿的电话

节目录制当天早上，XBOW在一家早期设计伙伴那里发现了一个严重漏洞。Konstantine补充了背景：一家所有人都听说过的超大型金融机构，安全预算巨大，常年养着人类渗透测试团队。

AI的攻击路径值得完整复述一遍。它先爬取这个Web应用，发现一段PHP源代码。代码本来用来访问另一台主机，但用了不安全的签名算法。XBOW顺着摸到那台主机，生成链接进去转了一圈，没发现有价值的东西，回头继续爬，找到另一个接口，决定复用刚才那招。差一个参数，进不去。它接着翻，又找到一段JavaScript源代码，里面有若干候选参数，挨个试，其中一个能用。进去了。这个接口本来用来下载PDF文件，但XBOW发现，它还能下载一个密码文件。

Oege说，这种级别的事件，他们每隔一天就发生一次。

另一个实验更能看出LLM和传统安全工具的代差。最早的测试题都带明确指令，比如“这是一个管理医疗处方的应用，试着登录并访问另一个用户的处方”。AI照做，成功。后来团队把指令全删掉，只说“这是个Web应用，去探索吧”。AI照样找到了同一个漏洞：它读了页面内容，判断出这是医疗处方系统，一个用户能看另一个用户的处方，多半有问题。

Oege认为这是和以往所有安全工具的本质区别：**LLM对真实世界有理解，能判断什么值得测，不用穷举所有可能性。**

主持人拿AlphaGo的第37手做类比，问AI会不会走出人类想不到的攻击。Oege说，今天看它的攻击路径，跟优秀人类做的事差不多，但他时刻警惕Rich Sutton的“苦涩教训”：等它吃进更多数据、做更多强化学习，迟早会找到人类视角无法想象的攻击，他预计几个月内就会超越人类打法。

训练数据从哪来？两条路。请安全专家持续出题；挖开源软件，最近刚开始把模型放出去扫Docker Hub上海量镜像，每找到一个漏洞就是一条新的学习数据。模型可能试一百次才成功，这在客户环境里早被拦截了，但在自家服务器上随便试，一百次尝试的失败过程全变成养料，让模型下次更快得手。

Konstantine追问了一个理论问题：为什么安全可能最先被AI完全自动化？他的模型是，黑客攻击面对几十亿种可能状态，AI带着聪明的启发式去探索，找到一个漏洞就价值巨大，客户并不要求穷举。Oege补了另一半：客户最终要的是安心，你得拿出证据，证明熟练人类能找到的东西你全找到了。所以XBOW正在造第二套基准题库，专门验证覆盖度。

Konstantine给XBOW的定位比工具高得多。他的类比是军事推演：各国军队几十年上百年都在搞红蓝对抗，网络安全的对抗属性一模一样。他称这是“有史以来第一个AI赛博战士”。XBOW公布结果后，他接到不少来自华盛顿特区的电话，反应清一色是：这件事影响重大。

怎么保持领先、怎么防止滥用？Oege给了两条。一是快，XBOW跟几家顶级基础模型的创造团队紧密合作。二是控制：**XBOW只提供云服务，不出可下载版本，所有攻击目标必须由客户证明归属合法。**云上运行意味着公司能看到每一次扫描的范围，发现滥用可以掐断。

使命层面，Oege说得更硬：

> 我们必须造出XBOW，因为如果我们不做，坏人会先做出来。这对自由世界是一项必须完成的任务：保护自由世界的所有软件。

## 卖“攻击小时”：服务即软件的第一份定价样本

AI agent产品怎么定价，全行业都还在摸，XBOW是第一批交卷的。

Oege的方案分两层。基础层是订阅费，按工程团队规模收费，类似GitHub Advanced Security的模式，订阅自带一定数量的“攻击小时”（attack hours）。增值层是加购：想要更彻底的测试，把可利用的漏洞都挖干净，就额外买更多攻击小时。

这个逻辑跟人类渗透测试的计费方式完全对齐：请人做测试本来就按人时付费，试得越久、试得越多，越贵。区别在于，XBOW后端是软件的毛利结构，前端接的却是服务预算。

Oege补了一个判断：**企业软件整体在转向按用量计费，关键是让客户消耗的资源和拿到的收益之间有清晰的对应关系。**攻击小时恰好满足这一点：买多少小时的攻击，换多深的测试。推理成本下降对他们也是纯利好，同样的价值，交付价格一路往下走，XBOW成立至今这条曲线已经兑现。

至于一年后能走到哪，Oege说现在还在少数设计伙伴阶段，需要人工盯着那个天才少年。等确认可以放手，一切会非常快，因为这类产品部署极简，指向一个现有服务器立刻出结果。他预计到第二年夏天，Web安全的状态会被显著改变，包括在开源项目和HackerOne这类平台上公开验证。

## Copilot往事：10个人的团队，1000次尝试

2020年12月，Oege写了一份备忘录，勾画了后来Copilot的雏形，当时就在猜测这个技术也许能自动修bug：看一眼issue工单，自己改代码。这个功能现在正在变成现实。

让他确信模型能干整件事的瞬间，是拿牛津面试题做实验。模型一次尝试解不出来，给一百次、一千次机会，大部分题都能解。**那一刻他就明白：模型会越来越强，需要的尝试次数越来越少，总有一天能自动完成整个流程。**

另一个细节是团队规模。Copilot发布时团队只有10个人左右。XBOW公布那组成绩时，全公司13个人。Oege说这证明了一件事：一支信念一致的专注小团队，速度可以快到什么程度。

他离开牛津Magdalen学院的故事也和速度有关。他写人生第一个程序是为了当闪米特语言教授的父亲，那是一个文字处理器，方便老人在电脑上敲手稿。他本来爱编程，读博时一头扎进数学和基础理论，当了教授又绕回编程工具，做出了Semmle。最终离开学院，是因为他看清楚一件事：**基础研究，大学是最好的地方；应用研究，没有比创业公司更快的地方，速度只能靠有利润动机的小团队跑出来。**写论文赶的是会议截稿日，做产品赶的是客户签约，他喜欢后一种压力。

对当下火热的AI编程创业潮，他的看法很冷静。他欣赏Cursor和Factory，但直言很难正面刚GitHub的分发优势。机会在别处：GitHub统治着职业开发者，给不以写代码为生的人做产品还有空间，Replit就做得不错。

再往远看，他给了一个激进预测：**长远的未来，开发者交付的工件可能就是和模型的对话记录本身。对话保存了这段代码“应该做什么”，比某个具体语言里的实现细节更本质。**英语才是编程语言，也许再加几张图。这是抽象层级上移的又一步：从机器语言，到高级语言，到自然语言和图像。

闲聊环节他还给了两个观察：短期看，客户支持会最先被“服务即软件”改造；长期他最看好健康和生物，推荐了Dario Amodei的文章《Machines of Loving Grace》。他自己用Suno给妻子写过一首关于马耳他家里阳台的歌。

## 明天就能用上的几件事

如果你管工程或安全，明天可以做两件事：

- 算时间差：代码每周部署多少次，渗透测试一年跑几次？1.8万美元一次的年检模式，覆盖不了每周都在变的系统。把“每次重大变更后自动扫一遍”写进明年的安全预算，先用现有工具起步也行。
- 自查攻击面：生产环境有没有暴露源码、注释、调试接口？XBOW那个密码文件案例的路径，本质就是源码泄漏、接口复用、参数枚举，一个下午能扫完。

如果你在做AI产品，先建评测集，而且要建训练数据里没有的私有评测集。XBOW的75%到85%故事，前半段是数据污染虚惊，后半段才是真本事。没有干净基准，你连产品好坏都判断不了。架构上学它：多次尝试加自动验证，单次六成把握的事，独立跑五次，综合成功率能到99%左右，再用验证器把幻觉挡在人前面。

定价上可以抄作业：订阅打底，按用量加购，让客户花的钱和拿到的收益对得上账。Oege的关键词是攻击小时，消耗和收益之间必须有清晰对应关系。

最后是Oege给所有创始人的建议，只有两句：**专注一件事，用最快的速度跑。**Copilot是10个人做出来的，XBOW的成绩单是13个人交的。人少，反而是快的前提。
