录这期那天 PHP2Shell 刚爆。VulnCheck 的利用开发总监把「AI 找得到洞」和「拿不到 shell」之间那三级台阶,一级一级拆开。
这一期是什么
Practical AI 第 377 期,2026 年 10 月 22 日发布,全长 45 分 13 秒,官方给了 15 段时间点。出场三个人:主持人丹尼尔·怀特纳克(Prediction Guard 创始人兼 CEO)、联合主持克里斯·本森(AI 与自主系统方向首席研究工程师),嘉宾斯宾塞·麦金太尔,VulnCheck 的漏洞利用开发总监,管着一条叫 Initial Access Intelligence 的数据线 1。
整期其实在讲一件被媒体标题盖住的事:从「这个洞存在」到「攻击者能用它拿到东西」,中间隔着验证、POC 和武器化三段。AI 把第一段铺得很平,第二、三段堆满了噪声,最后一段还站着人。这个分法不是节目给的现成框架,是三个人聊出来的顺序,我把台阶留在了图片上。
逐段要点整理
一、录这期那天,新闻正在爆(00:59–02:34)
丹尼尔开场先摆当天的新闻:他提到《华尔街日报》的一条报道,说 AI 找到一个影响约七成网站的漏洞。录制日是 2026 年 10 月 21 日,三个人都还没把细节看全,所以这一期不追那条新闻的具体细节,只谈机制——AI 和网络安全这件事是怎么接上的,尤其是「发现漏洞」「开发利用」这两件常被混为一谈的事。
这也是整期的语气:不抢新闻,先把词定义清楚。丹尼尔对嘉宾说,你就把我当成不懂安全的读者。
二、什么叫「利用开发」(02:34–06:35)
斯宾塞先解释自己的头衔:VulnCheck 给他「漏洞利用开发总监」这个职位名时,他自己也觉得挺酷。他所在的团队是初始访问团队,产出的东西喂给 Initial Access Intelligence 那条数据线。
他的入行路径有代表性:先做咨询,一直对利用开发有兴趣。当年别人告诉他,想当渗透测试工程师,先得有扎实的漏洞研究背景和一口袋未公开的漏洞;他后来发现这既不是当年的必要条件,也不是今天的。
咨询那几年,他的客户横跨私营公司、几家政府机构、医院、学校、零售和酒店。之后才全职转到研究与开发。
他提到 Metasploit,用的是亲身经历:他在那套框架上写了很多模块。按他的说法,Metasploit 曾经是 Ruby 世界第二大的项目,仅次于 Rails,去年过了 21 岁生日,起于 Ruby 1.8。那套框架的作用是让研究者把利用开发出来,用统一的格式放进去、互相共享。
但分发这件事在过去十年散了:不再是几个中心化的论坛,信息散到各处。VulnCheck 卖的第一件事,就是把这些散掉的东西重新收拢成一条线——快、全、带检测、带对漏洞怎么运作的解释,四样一起给。官方产品页把这个定义写得很清楚:自研利用 POC、PCAP、Suricata 签名,用来防初始访问类漏洞 2。
三、漏洞是可能,利用是实现(06:35–09:21)
这一段是整期的地基。斯宾塞说,「漏洞」指的是「可能出事」这个抽象概念;「利用」是真正把这件事做出来的那段代码。中间还有一个更模糊的词——验证。
他说行业认的验证,门槛其实比操作者要的低:研究者只要证明「理论上可能造成这种坏结果」,就会认真去修、去打补丁。他强调这是好事,不是偷懒:防守方愿意为一个假设性的坏结果提前付账。
落差就在这里。真正拿利用去干活的人,不管动机是渗透测试、红队还是别的,要的门槛几乎总是更高——他要的是能证明攻击者效用的东西。于是当模型能指出「这个字节被覆盖了」时,分析常常就停在那儿:人们知道这是缺陷,愿意修,却没人算过攻击者拿它能得到什么。
丹尼尔把问题拉回现实:一个公司里的人被这么多新闻轰炸,该怎么判断今天要不要停下手里的活。斯宾塞给的是他自己的直觉——一个大洞出来,时间过去还没人证明它是被夸大的,通常说明它真能打;这条直觉来自 React2Shell 和 Log4j 那几次。在研究公开之前的那段灰色期,是防守方唯一确定拥有的时间,该做的是先把系统补上。
还有一层是「你控不控得住」:PHP 跑在路由器、摄像头、家电上,跨好几种架构,还有公司已经不在的老版本;按他的说法,这个洞往回影响到 PHP 5。你控制得了自己的栈,控制不了供应商那一层。
关于优先级,他给了很具体的一句:一天里有二十个 9 分以上的漏洞时,CVSS 帮不了你做决定,你得把它放进自己的业务里,问「如果这件事发生,对我意味着什么」。
四、AI 找洞很行,桥是断的(09:21–12:23)
斯宾塞先划清一条线:他自己没被批准使用 Mythos,但用过不少别的模型,都是手上真跑过的。
他的观察是,各家模型在「识别漏洞」这件事上表现都不错——Mythos、Opus 5.5、OpenAI 的模型、GLM,都算能干。问题不在这一级。
问题在下一级:分析常常停在「这一行有问题」,而 hype 恰恰长在「有问题」和「能被利用」之间那段空白里。他把这称为 disconnect——大量披露被放大成危机,实际影响没人算。
这一段是本期的核心判断:AI 把发现这件事变得便宜,没有把「证明攻击者效用」这件事变得便宜。
五、把这套话放进噪声里(12:23–15:03)
丹尼尔追问具体操作:如果我不是安全团队,只是一个业务负责人,看到今天这种规模的新闻,怎么决定是停下还是排进 backlog。
斯宾塞的回答分两层。第一层是时间:越久还没被证伪,越不是好信号;灰色期先打补丁。第二层是范围:先弄清自己到底跑了多少 PHP——包括自己不知道的那部分,因为 PHP 会藏在供应商的产品、IoT 设备、家电里。
他特别讲了变量:硬件、构建、操作系统,这三个维度在 PHP 上的组合数量远大于一个自建服务;再加上跨架构和无人维护的老版本,噪声就是这么来的。
(10 月 22 日,也就是节目上线几小时后,VulnCheck 公布了一个绕过 ASLR、在 x86-64 生产配置上拿到 RCE 的利用,只发给客户;当天晚间又扩到 PHP 8.4.10–8.4.26。这条消息本身就在验证他的判断:技术难度不等于防护 34。)
六、把 AI 接进利用开发(16:43–21:57)
这一段是全期最具体的工程内容。VulnCheck 用自己开源的 Go Exploit 框架,把五个动作做成同一套接口:检查、扫描、验证目标、跑利用、架 C2。框架吃掉差异,写利用的人不必每次重搭脚手架 5。
他解释了为什么这对 LLM 特别有用:模型不是从零开始写,它面前有一个每天在长的利用语料,还有一个规定好形状的框架。语料给内容,框架给格式。他随口报了增长:上周加了约 50 个,这周预计 60 个。
然后是分类学,这是可以搬用的一段:开源 web 应用上的逻辑漏洞、token 处理、表达式语言注入、文件泄露,AI 做得相当好;闭源的固件、专有的 x86 软件,要先做逆向、还要 patch diffing,AI 明显吃力。两端的差别不在模型多大,在有没有可读的源码和能试的环境。
七、guardrail:门口比里面更难走(21:57–22:52)
丹尼尔问的是很现实的一层:团队做的是合法研究,但工具的门越关越紧。
斯宾塞说他们先走正规流程,申请各家公司的网络安全验证计划,结果并没有改变多少能做的事。他自己的个人订阅体验一样:在 CTF 里也照样被挡。圈内的答案很直接——用美国那几家闭源模型,就往旧版本退。
他说 Opus 4.6 或 4.8 已经很好用,但那几版退役之后(他提到二月),能得到的帮助会突然少一大截;很多团队正在提前把活搬到本地模型上。
八、选模型,其实是选把材料交给谁(22:52–27:06)
克里斯从国家安全那一侧追问:西方闭源模型的门在关,东方的开放权重又不敢用。
斯宾塞的回答很务实:别人推荐他用 GLM 和 Qwen,开放权重、能跑在自己机器上;他不能把在做的漏洞发给任何外部服务,所以这类团队都把模型拉回内部。他说自己没听过谁担心开放权重里埋了后门,反倒有人在主动改权重(abliterate),把模型变得更能干危险的事;既然人已经在权重里翻,问题会被看见。
他认为更现实的风险在托管那一侧:材料交出去,看不见对方怎么用。他提到有闭源模型把仓库整个上传、最后被人从 S3 桶里翻出来的例子。
所以判据只有一句:你愿不愿意把这份信息交给它。
最后落到一个没法技术解决的问题:意图难证。归因已经够难,归因之后还要猜动机,而 guardrail 要判的正是这件事。
九、POC:中间那个词,两头都有人用(27:06–31:09)
斯宾塞先拆词:POC 在漏洞和利用之间。有时 POC 只是让程序崩一下,这已经能证明漏洞存在;有时 POC 已经被武器化,能投递真正有用的载荷。同一个词,强度可能完全不同。
发布 POC 的动机也杂:有人为了名气,有人为了学习与分享,有人是想证明自己真找到了。
VulnCheck 的做法是把它变成流水线:每天扫 GitHub、Codeberg、GitLab 上按 CVE 命名的 POC,判断真假。客户关心两件事——我有没有,以及对手已经拿到哪一步。他也解释了分发为什么变了:过去发在 ExploitDB 和 PacketStorm,现在直接扔 GitHub,除非账号被封。
然后是本期最硬的一个数字。VulnCheck 内部给每个 POC 打两个标签:是不是 AI 生成,以及能不能用。2026 年,判为不合格的比例第一次越过一半。官方博文的口径更精确:GitHub 利用的采纳率过去两年在 51% 上下,2026 年掉到约 45%;2025 年全年审了约 2 万份,2026 年还没过三分之二就审到 1.78 万份 6。
拒绝理由的排序也值得记:排第一的不是「假的」,是「根本不是利用」——占位仓库、只有检查脚本、一堆带 emoji 的说明;假且由 AI 生成排第二;之后才是恶意、付费链接、混淆和 fork。
十、AI 栈里的漏洞,还是老几样(31:09–35:11)
丹尼尔问:agent harness、模型服务框架、DAG 工具这些新东西,有没有长出新的漏洞类别。
斯宾塞的回答是「大多是同一批」:因为 AI 代码基本写在解释型语言里,暴露在远程攻击面上的多是 web 界面和分发框架,所以他看到的还是逻辑漏洞、文件读取、反序列化、注册与访问控制。这些类目和过去十年的 OWASP Top 10 重叠,变的是数量——AI 让同类代码被写出来的速度快了一个量级。
十一、用 agent 做利用:现在是哪一步(35:11–42:07)
克里斯把话题翻到进攻侧,问 agent 集群意味着什么。斯宾塞的心像是老式 fuzz farm:一百个节点同时 fuzz Chrome,你会按比例找到更多 bug;现在的 agent 集群做的是同一件事,只是每一步都带一点理解。
他给了一条很有用的工程经验:别用大家都那套 harness。现成的 fuzzer 扫大家都在扫的代码,会找到同一批 bug;所以研究团队都在自己写 harness 和 prompt,熵在自建的那一侧。
AI 真正省掉的,是第一道 triage:洞被找到之后,模型还能告诉你这可能可不可利用、属于哪个 bug class、是怎么走到这一步的。这一步以前是人一小时一小时看的。
但他说,目前没看到证据表明大规模实战利用已经在发生;只是以这个速度,三到六个月后如果还是同一句话,他会非常意外。
再往下是人机分工。他认为今天 AI 在「同等影响」上还不可靠:人会为某个具体问题去找洞,知道终点通常是代码执行,也知道打到那里对自己意味着什么;模型没有这个终点,它常常交出一个「理论上可利用的崩溃」,然后说这可以进一步利用。
所以合理的用法是:agent 广撒网、做初筛,人做收口。
十二、往后看:速度、窗口与责任(42:07–45:13)
斯宾塞说他偏乐观,理由是速度:攻击者不守规矩,这是定义——他们可以花不确定的时间做利用,再用它伤人,中间那段时间里防守方是在追。现在防守方能把同一条流程跑得更快,等于把那段时间的价值削掉。
VulnCheck 首页把这个窗口量了出来:2021 年攻击者把已知漏洞武器化要七个月以上,2026 年缩到 23.5 天 2。
他真正好奇的是法律。他读到有人让 Claude 帮忙,结果它用 SQL 注入把自己插到了动感单车课的队首;他想知道法院最后会把这件事算在谁头上。
口径与核对
官方可查的:本期单集页、15 段官方章节、时长;VulnCheck 对 PHP2Shell 两个 CVE(CVE-2026-109618 与 CVE-2026-109619)的复现、利用与补丁版本;GitHub POC 采纳率与审核量;利用窗口从七个月缩到 23.5 天;Go Exploit 是真实开源框架;斯宾塞长期写 Rapid7 的 Metasploit 周报 7。
只有节目里说过的:Metasploit「曾经是 Ruby 世界第二大的项目」「21 岁」「起于 Ruby 1.8」;团队语料上周 50、这周 60 的增长;Opus 4.6/4.8 之后「二月退役会有个悬崖」;Anthropic 把开放权重的 GLM 5.3 与其前沿模型做过对比、约九成水平;有人在做 abliterate;某闭源模型把仓库上传后被发现在 S3 桶里;OpenAI Hugging Face 事件里 HF 改用自托管 GLM 分析日志。
一处需要分清的地方:节目里说「2026 年不合格 POC 超过一半」,官方博文给的是采纳率约 45%,两个口径方向一致,但基数是「GitHub 上被审的仓库」,不是全网所有 POC。卡片上用 45% 这个官方数字,正文两边都写。
一处时间差:录制是 10 月 21 日,节目提到「今天的新闻」指那天的 PHP2Shell 披露;10 月 22 日凌晨 VulnCheck 做出绕过 ASLR 的利用,这发生在节目录完之后,所以节目里没有这一段,正文里作为后续补上了。
逐句全文翻译
以下按节目官方 15 段时间点逐句译成中文,只保留中文、保留说话人标签,不压缩、不摘要、不删减;口语里的重复与语气词按中文可读性做了最小处理,没有删掉任何论点、数字或例子。
一、开场与本期介绍(00:00–00:59)
旁白:欢迎收听 Practical AI 播客,我们在这里拆解人工智能在真实世界里的应用,以及它正在怎样改变我们的生活、工作和创作方式。我们的目标是让 AI 技术变得实用、高效、人人可用。无论你是开发者、企业负责人,还是只是对技术背后的热闹感到好奇,你都来对了地方。记得在 LinkedIn、X 或 Blue Sky 上关注我们,第一时间看到新节目、幕后内容和 AI 洞察。更多信息请访问 practicalai.fm。
旁白:节目开始。
二、当天那条新闻(00:59–02:34)
丹尼尔:欢迎收听 Practical AI 播客的又一期。我是丹尼尔·怀特纳克,Prediction Guard 的 CEO;和往常一样,和我一起的是联合主持克里斯·本森,他是一位 AI 与自主系统方向的首席研究工程师。克里斯,你怎么样?
克里斯:嘿,挺好的。走起,走起,走起。你怎么样?
丹尼尔:走起,走起,走起。我是说,克里斯,好像每天我们都能听到类似的事,今天这一出也挺猛的。你知道,我看到《华尔街日报》的一篇文章说,AI 发现了一个影响约七成网站的漏洞。对,所以这事正在发生——我们录这期是 10 月 21 日。这类消息我们一直在听;而且很巧,我们今天本来就约好了要聊这个话题,坐在我们对面的是 VulnCheck 的利用开发总监斯宾塞·麦金太尔。欢迎你,斯宾塞。
斯宾塞:嗨,谢谢你邀请我。
丹尼尔:那肯定。我知道今天我们可能没法深入今天这件事的细节,因为大家都还在了解中,但它证明了有件事正摆在所有人心里:AI 和网络安全这个世界是怎么交叠的,尤其是发现漏洞、开发利用、攻防两侧。我很期待今天和你把这些挖一挖。不过我们的听众不一定都来自网络安全背景——不是每个人都从安全圈来的。你能不能先帮我们了解一下你的背景,你是怎么进到这个领域的?大家可能会觉得「利用开发总监」这个头衔挺有意思。就帮我们定位一下:你在这个世界里站在哪儿,你现在在 VulnCheck 做什么?
三、什么叫利用开发(02:34–06:35)
斯宾塞:当然。他们给我「利用开发总监」这个头衔的时候,我真的很兴奋。我觉得这挺酷的。
克里斯:那确实挺——
斯宾塞:酷的。我一直对利用这件事特别有热情,某种程度上也是这么进了信息安全这一行。我一开始在咨询行业,但对利用开发的兴趣非常强。那时候是很久以前,我一直以为,你要想当渗透测试工程师,得先有很强的漏洞研究背景,还得有一口袋未公开的漏洞。后来我才发现这不一定成立,今天也不成立,但当年别人就是这么告诉我的。所以我就是这么开始的。
斯宾塞:在咨询做了几年之后,我慢慢全职转到研究与开发上,这十年基本都在这条线上。中间有一段和咨询里的研发重叠,挺有意思,因为我能接触到很多不同的机构:私营部门、几家政府机构、医院、教育、零售、酒店,各种各样。后来我就慢慢全职做研发了。我在 Metasploit 框架上有很深的积累,做模块开发这类事。Metasploit 是我利用开发路上很大的一部分,它把我带到了 VulnCheck——就像你说的,我现在是那里的利用开发总监,我在初始访问团队,为我们的初始访问情报数据线提供数据。
丹尼尔:也许可以就这几个词再挖一点。能不能简单解释一下 Metasploit 是什么,给不熟悉的人?还有你最后提到的那条数据线,在 VulnCheck 的语境里是什么意思?
斯宾塞:当然。Metasploit 是一个做利用开发、渗透测试和漏洞验证的框架。它一度是 Ruby 世界里第二大的项目,我记得是仅次于 Rails,我不确定今天还是不是,但它是个很大的项目。它一直很坚挺,我记得去年刚过完 21 岁生日。所以它已经是个很老的项目了,起步于 Ruby 1.8。它是一个平台,让漏洞研究者能开发自己的利用,并用一种标准化格式共享出来。
斯宾塞:这当然是很久以前开始的。行业从那以后演进了很多,技术、协议栈、我们做事的方式都变了;而 AI 的出现——过去几年它完全改变了我们的工作流,这个我们肯定会聊很多——也改变了事情怎么运转、漏洞研究者怎么处理这些问题。我们还看到一个趋势:信息被分散得很厉害,很多这类信息已经没有中心化的资源了。这也是 VulnCheck 提供的初始情报价值所在的一个原因。
斯宾塞:它是及时的数据。我们非常关注的一件事就是速度——我们多快能提供这些信息。还有对漏洞的整体视角:利用只是其中一部分,我们同时提供检测规则和对漏洞如何运作的高层理解。然后我们把它打包成数据线,提供给客户。
丹尼尔:好。你刚才用到了一些词。你说「利用不是全部」。当像今天新闻里这样的事件发生时,能不能帮大家理一理:一个「利用」到底指什么?还有那个重要的上下文——也许不是利用本身,而是我们后面会用到的一些概念——是什么?
四、漏洞与利用的细微区别(06:35–09:21)
斯宾塞:好。我想你刚才说「发现了一个利用」,我其实想举一张卡。可以吗?
丹尼尔:请讲,这就是我们要的。就把我当成小白,跟你一起学。
斯宾塞:好。这个词有细微差别,我很有感触,因为即使在医学文献里、在不同语境里,或者从咨询的角度,人们用这些说法的方式都不一样。在这个圈子里待久了,你能听出人们在指什么。但简单说:漏洞,本质上是「有可能出事」。如果你真的深入漏洞研究,漏洞是必须被验证的。
斯宾塞:但「什么算验证」和「对真正要操作利用的人——不管他是做合法测试,还是国家行为体,不管动机是什么——什么才真有用」,这条线几乎总是比行业通常认为的「合格验证」要高。我想说清楚,这是好事。因为那等于人们在说:虽然这只是假设上可能导致现实的坏结果,但我们已经证明了这种坏结果,所以我们要非常认真地对待它,要打补丁、要修。
斯宾塞:所以漏洞是那个抽象的「缺陷是什么、能拿它做什么」,而利用是一个具体的实现,把它做出来。
克里斯:我想把这个接上。我过去也以用户身份用过 Metasploit,只是想确认自己的基础设施没问题。看过去这一年,尤其是你们这个行业明显在剧烈变化:像 Mythos 这样的东西在给出各种洞察、识别漏洞等等。在我们进入细节之前,你能不能先给我们定个调:现在的图景是什么,它是怎么变成这样的,这要求你和行业里的人转向什么?对于我们这些在 AI 里但不在安全里的人,我们就在这条边上,常常会想这些。我很想听你从整体上讲讲。
五、AI 对漏洞识别的影响(09:21–12:23)
斯宾塞:当然。先声明一下:我自己从来没被批准使用 Mythos,我没拿到过权限。但我用过一堆别的模型,都是亲手跑的。我看到的,其实要回到漏洞和利用之间那个区别,这点我很想讲——因为很多 AI 模型,不管是 Mythos、Opus 5.5,还是 OpenAI 的模型、GLM,它们在识别漏洞这件事上看起来做得相当不错。
斯宾塞:但人们常常卡住的地方是:好,这是一个漏洞,你在代码里看得到,你能明白「这很糟」。
斯宾塞:这个字节被覆盖了,或者这个 token 泄露了,类似这样。分析好像就停在这儿,人们很认真地对待它,想去打补丁;但这些东西里有很大一部分最后被炒得很热。我觉得可能存在一个脱节的地方,是这些漏洞的影响到底是什么。原因是我们缺了验证与真正的功能性利用之间的那一段——能证明攻击者效用的那一段。而攻击者效用,恰恰是哪怕一个合法渗透测试者、一个守法公民也真正需要理解的,因为这类漏洞太多了。
斯宾塞:就像你说的,今天就有很大的爆出来。所以人们常常挣扎的是优先级。当一天里有二十个 9 分以上的漏洞时,CVSS 只能带你走这么远。你真的需要理解攻击者效用,然后把它放进你的业务上下文中,去理解:如果某件事真的发生,对我到底意味着什么。这大概就是人们卡住的地方。
斯宾塞:所以 AI 在识别这些漏洞这件事上做得相当不错。我觉得各家公司在分享这些发现、让人们更快识别漏洞的项目也不错;但我认为,这些漏洞在现实世界里的实际含义,可能存在一个脱节。
丹尼尔:那这个……也许你可以就验证这一步再多说一点,从你这一侧看。
斯宾塞:怎么……
丹尼尔:你们是怎么拿到(验证)的?或者干脆帮我们解释一下,因为人们被太多噪声轰炸了。你也说,这些东西被炒得太厉害。所以就实际一点讲,我被淹没在……就拿今天来说。
丹尼尔:你看,就有一个 PHP 的漏洞。我现在尽量用对词。它影响到所有这些。
丹尼尔:那么,我该怎么把它映射到我的处境上——从一个企业负责人或者公司里一个从业者的角度?从原则上看,当我试图从这片噪声里分辨时,什么应该排在我脑子里最上面:我今天真的该停下手里的活、坐下来仔细看吗?还是可以放进 backlog,找时间再查?这方面有什么实用建议?
六、在噪声里做优先级(12:23–15:03)
斯宾塞:当然。这套流程我经历过好几次了:一个特别大的漏洞出来,一个小时前我还在里面扑腾,和很多人一样,想知道利用它有哪些约束条件——因为正是这些约束决定了它会不会跨过那道坎,变成真能在野外用的东西。
斯宾塞:总的来说,按我的经验,经历过 React2Shell、Log4j 这类事之后,我的直觉是:它出来得越久、还没被确认是「过度炒作」,通常越不是好信号。那往往说明……线索够多,变量够多,确实可能存在真能打的场景。所以现在说还太早,但我的建议是:这一个特别值得认真对待。一定要利用我们现在这段还没到那个级别研究公开之前的时间,先去把系统补上——因为到目前为止,它看起来不像是被夸大的,我们还处在那片灰色地带里。
丹尼尔:好。我猜这里有一部分是……比如我们自己公司,我们不用 PHP,我们的栈不是 PHP 写的。我猜其中一部分是关于我们是否用某个平台跑网站、后台有内容管理系统——
丹尼尔:也许它们底层在用 PHP。所以,判断的一部分是不是在于:哪些是你内部能控制的,哪些是你控制不了的——比如从供应商那一侧?
斯宾塞:当然。理想情况下,机构应该知道自己到底跑了多少个不同的 PHP 应用。但你提了一个很好的点:从供应商那一侧看,PHP 会跑在 IoT 设备、家电这些东西上。它是如此流行的语言,这些东西一定存在。
斯宾塞:我前面讲「变量」的时候,指的是跑 PHP 的硬件、构建和操作系统上的变量会大得多,因为你有各种不同的设备。PHP 跑在多种架构上,尤其整个 IoT 空间。你还会遇到各种可能是很老的版本、没有定期打补丁的东西,或者是已经倒闭的公司造的东西——因为这个漏洞看上去往回影响到 PHP 5。所以很可能存在这类设备,这就是它为什么非常非常难,也是噪声的来源。
七、广告:Hostinger(15:03–16:43)
广告:想到我们已经做了 375 期以上、从 2018 年开始,真是不可思议。回想 2018 年,要进入播客这门新手艺、把网站搭起来、把营销和邮件弄起来,是很让人发怵的。但我很高兴当时找对了人帮我们做成,虽然工作量很大。我很喜欢我们合作伙伴 Hostinger 的 AI builder 在做的事:你可以从没有网站、没有邮件、没有营销开始,直接向他们的 AI builder 和 agent 提要求,让它们帮你建站、配置、长期管理、做 SEO、写网站文案、做邮件营销,这些都可以包含进来、由他们的 AI builder 驱动。不需要写代码,也不需要设计师或开发者。
广告:它是一个一体化平台,我真希望我们当年开播时就有它。套餐每月 3 美元起,建一个网站不必花上几千美元。你可以按自己的节奏开始,一步步搭起来。Hostinger 一步一步把你的想法建出来。今天就去建你的网站:访问 hostinger.com/practical,用优惠码 Practical 立减 10%。再重复一次:hostinger.com/practical,优惠码 Practical,立减 10%。
八、把 AI 接进利用开发(16:43–21:57)
克里斯:我很好奇,因为我们一直在聊 AI 开始对漏洞识别产生实质影响,但你在分类、判断近期和长期风险上,还是会遇到同样的一些问题。你们调整过来之后,能不能讲讲你自己的团队是怎么用 AI 的?用你刚才在休息前列举的那些模型,它们具体帮你们做哪类事,又有哪些东西仍然非常「人」?你们今天是怎么把 AI 接进来提升产出的?我想这也是很多人都在自己工作里摸索的一个具体问题。
克里斯:我很想听它对你团队的影响。
斯宾塞:当然。它帮我们在很多事情上加快了节奏。在 VulnCheck,我们其实用的是自己开源的 Go Exploit 框架,这对这件事很合适。Go Exploit 是我们现代的利用框架,它处理了我们看到用户在使用我们的漏洞内容时遇到的很多问题。它把「检查一个漏洞、扫描它、验证目标,然后是跑利用、架 C2」之间那些差异,统一成一套规范。
斯宾塞:所以有 Go Exploit 这样一个结构化框架非常有帮助,因为我们在和 LLM 一起工作时,它不是从零开始;而且我们有一个非常大的利用积压语料,每天都在增长。我记得上周加了大概 50 个,这周预计加 60 个。所以量相当大。有这个语料,再加上 Go Exploit 提供的规范化结构,似乎能让它给出更好的结果。
斯宾塞:从用户角度看,它把接口也统一了。这样我们知道怎么和它交互,不必去担心不同利用之间的细节。因为 LLM 甚至人类作者,都不必自己把所有脚手架搭起来,这一点非常有帮助。除此之外,在 Go Exploit 之外,一旦你进入漏洞的真实细节,漏洞是分成某些类别的。我们注意到,LLM 在某些漏洞类别上利用得相当好,在另一些类别上就不太行。
斯宾塞:不是所有,但很多都落在两个桶里的一个。举例来说,我们在用 AI 和 LLM 利用开源 web 应用上运气很好:这类逻辑缺陷、token 逻辑处理的方式、表达式语言注入、文件泄露之类,它在这方面相当强。但一旦进入闭源的东西——需要先做一层逆行的,比如固件,或者闭源的专有 x86 软件,这类需要做 patch diffing 的东西——它就会吃力很多。这就是我们注意到的两个极端。
丹尼尔:我在想,你在一个显然在研究、开发并且用 AI 辅助方法的团队里。我们不在你的位置上,会听到很多事情,我好奇它们到底有多大的问题。比如说 OpenAI 和 Hugging Face 那件事,当时 Hugging Face 团队没法把所有相关日志都拿去给 OpenAI 处理,因为他们并不完全掌控 OpenAI 的 guardrail,他们在用第三方 API 时被挡住了某些操作。
丹尼尔:于是他们自己托管了一个 GLM 来做这个分析,大概是这样。这只是一个例子。我好奇的是这个概念:我是一个团队,我确实在开发利用,或者在做研究,但我站在正面的一侧。
丹尼尔:我不是要恶意利用什么的国家行为体,我是为了正当目的、合法理由做这件事。那么,在用 AI 工具这件事上,你现在是不是被绑住了手脚?这种 guardrail 你要怎么应对——工具可以公开使用,但你做的是合法的事?当然,我也理解,作为提供软件的一方,作为我自己带的公司……
丹尼尔:我理解一家公司为什么想加上合适的 guardrail,加上自己的限制,尤其是当它是一个 SaaS 提供方、提供托管平台时。作为团队,你们怎么应对?你看到的真正阻碍是什么?哪些是在范围内的,哪些是出界的?
九、guardrail 的麻烦(21:57–22:52)
斯宾塞:这是个很好的问题。guardrail 确实是个事。我们首先要做的,是走各家公司的正式流程,去申请加入网络安全验证计划之类的东西。我们确实做了。结果不算好。
斯宾塞:它们似乎并没有真正改变我们能做的事。我自己也有个人版云订阅,我在那里学一些特定的利用原语之类的东西,也打 CTF。所以我能感觉到某些事情会被判定成「不行不行不行,我知道你在干什么,这很危险」。
斯宾塞:然后我把它和工作里的情况对比,感觉并没有好多少。我和很多人聊过,他们也有类似的经历。guardrail 的趋势明显变得更严了。如果你去问任何一个做攻击性安全研究的人,答案基本上是:如果你用的是美国那几家专有模型,那就往旧版本退。
斯宾塞:这是我有点担心的地方。我记得 Opus 4.6 或 4.8 已经相当有效。在那几版被淘汰之后(他提到二月左右),它能提供的帮助好像会出现一个断崖。所以很多团队正在抢在前面,往本地模型迁移。
斯宾塞:甚至 Anthropic,我记得几周前,基本上出来说他们测了 GLM 5.3——那个可以本地跑,是开放权重的——表现大概有他们前沿模型的九成,而它发布才三四个月。他们的讲法是这有多危险,这当然很好,因为我们需要保护那些不守法、不会为了帮人而去发表研究的人。
斯宾塞:但我觉得很多 guardrail 讨论真正难的地方,是证明意图。而这本来就是安全行业长期存在的问题。你去和任何一个做威胁情报的人聊,他们很大一部分工作就是:攻击发生了,他们知道;但归因之后,想弄清对方到底想干什么,就难得多。是政治动机?是在找钱?还是别的。
十、选模型时的顾虑(22:52–27:06)
克里斯:我很好奇,你已经深入看过一些模型选择。我从国家安全那一侧过来,在西方做安全的人似乎都要面对这些 guardrail 带来的选择——因为有很多合法的工作,进攻的、防守的都有。所以你一边要应付美国模型(大多是专有的)的 guardrail,另一边对中国模型,如果在国家安全语境里,通常是不允许用的;但如果在更大的安全世界里,你会担心投毒权重之类的问题吗?不管那些担心是真的还是被编出来的,作为一个在场上做这类研究的人,你怎么平衡「这边有更多可信的 guardrail」和「那边开放世界里我到底在跟什么打交道」?
斯宾塞:很多人都在推荐 GLM,特别是 GLM 和 Qwen。昨天还有人跟我说,你应该用 GLM。和你很像,我说不行,我没法把我在做的数据分享出去。我不在国家安全领域工作,但我不能把我的数据交给任何外部的东西。
斯宾塞:所以我看到很多地方都在想办法把它们拉到内部来。我没真的听谁表达过对投毒权重的担心。反倒有些人在讨论 abliterate——就是自己去改权重,把它变得更危险。所以我没听人谈过这个;但我猜,如果他们已经在看权重、基于权重做基准测试,那大概率能发现权重里本来就有没有他们想要的方向,因为他们本来就已经在里面动手改了。
斯宾塞:这和源码是一个道理。如果有人进去打补丁,那他们更可能发现里面本来就埋了问题。我觉得更直接的担心是:如果你自己用托管模型,那当然所有数据都被传上去了。我记得有过例子,某个闭源模型把仓库整个上传,最后被人从某个 S3 桶里翻了出来——那是它们不小心分享、公开出去的东西;但你并不真的知道它们在内部拿这些数据做什么。
斯宾塞:所以从研究者的角度,尤其当你在做还没公开的漏洞时,真正的问题是:你愿不愿意把这些信息交给你想求助的那个 LLM 提供方。所以很多人干脆不想处理这个,他们自己托管。
丹尼尔:我想把这个接到利用开发里 AI 的用法上。我对 VulnCheck 发布过的、关于假的或者 AI 生成的 POC 的东西很感兴趣。我们可以在节目笔记里放链接。这本身可能要聊好几个小时甚至好几天。
丹尼尔:你能不能帮我们理解一下这个想法:在这个语境里 POC 是什么意思?为什么这会是个问题,或者它正在产生什么影响?
十一、POC 到底是什么(27:06–31:09)
斯宾塞:当然。这是个很好的问题。我们前面说,漏洞是理论上的缺陷,利用是它真正的具体实现,而 POC 在两者之间。
斯宾塞:这就成了一个灰色地带,有些人会把这个词用得更随意。有时 POC 只是让程序崩一下,这就能验证漏洞存在;像我说的,很多人会认真对待,然后去打补丁、修掉,他们该这么做。我不想贬低这些努力。但另一些时候,POC 会被完全武器化,真的投递一个对攻击者有用的载荷。
斯宾塞:我不太确定公开 POC 的很多人的动机。我觉得差别很大:有些人是纯粹为了名气、名声和荣耀;另一些人真的想学习,想分享自己学到的东西;还有人真的发现了这个漏洞,所以想分享一个 POC 来证明自己的概念——这个缩写本来就是这个意思。
斯宾塞:回到 VulnCheck,我们做初始访问情报的一部分工作,就是把我们能在 GitHub、Codeberg、GitLab 以及我记得还有几个来源上找到的、按 CVE 命名的 POC 全都过一遍。我们每天都看。像 PHP2Shell 这种出来的时候,基本上会有一小部分团队去自己做利用,同时另一批人去看野外已经有什么、验证它到底合不合法——因为我们的客户不只在意外「我们有没有、能不能拿到」,他们也在意「对手手里有什么」。所以我们对开源社区的脉搏盯得很紧。
斯宾塞:我前面提到过,安全研究的分发在过去十年碎片化了,GitHub 加剧了这一点:我们看到大量 POC 被扔到 GitHub 上,而不是去 ExploitDB、PacketStorm 这些老派的、更集中的论坛。那些地方你还能找到,但大多数人就直接扔 GitHub 了,为什么不呢——除非微软把你的账号封了,那有时也会发生。
斯宾塞:所以这些我们都在看。VulnCheck 几周前刚办了 ThreatCon,是我们的第二次;我的一位同事做了一场关于我们对全部公开开源 POC 所做分析的演讲,他分享了一个我觉得非常有意思的东西。
斯宾塞:我们在内部会给它们分类:我们觉得是不是 AI 生成的,以及它能不能用。把「是不是 AI 生成」这个维度去掉,他指出的另一点是:随着我们看到的 POC 数量增加,2026 年出现了一个拐点——平均来看,因为各种原因显得不合法的 POC(多数是坏的、跑不起来,或者达不到我们认为「做了点有价值的事」的标准)的比例,越过了 50%。
斯宾塞:所以我们现在看到的是:今天你随手找到的一个平均水平的 POC,很可能不是你希望的那样——它并不会真的利用它声称的那个漏洞,也不会证明某种攻击者效用。
丹尼尔:这太有意思了。你提到 POC 的这个拐点,AI 显然在推动它,或者至少是推动它的一部分。我想稍微换个方向:漏洞是怎么被开发出来的。你在一个专门看这个的团队里,外面有这些 POC。我好奇的是,可能全新出现的漏洞——或者其实一样,只是出现在 AI 栈里的那些漏洞。我们有新东西,比如 agent harness;比如 Claude Code、OpenClaw、Hermes 这些;模型服务框架已经存在很久了;我们还有工作流开发工具,比如你可以用 AI 工具搭的 DAG 流水线,甚至有些被集成进 Workday 这样的大平台,你可以在里面搭自动化。
丹尼尔:我好奇的是,在这个 AI 栈的新领域里,不管你怎么定义它,这些新出现的东西,是不是有一些你们以前不用考虑、现在必须考虑的特殊类型的漏洞?还是说,就它们能被怎么利用而言,大多还是同一回事?
十二、AI 栈里的漏洞(31:09–35:11)
斯宾塞:所以你问的是 AI 栈内部的漏洞,不是用 AI 栈去做漏洞研究?好,明白了。我觉得大体还是同一批。
斯宾塞:我看到的很多新的,几乎都是解释型语言——因为 AI 是过去几年才出来的,你不太会看到很多人用有远程攻击面的方式去写 C、C++ 甚至 Rust 的 AI 代码。肯定有,但那些大概是更底层的组件,未必有远程攻击者感兴趣的攻击面。而在 VulnCheck 和初始访问这边,我们关注的正是远程攻击者,因为那是「初始访问」这件事的核心。所以我们看很多 web 接口、分发框架之类。
斯宾塞:所以我们看到的还是过去那些漏洞类别:逻辑缺陷、文件能被读取、反序列化缺陷、账号注册和访问控制里的逻辑缺陷。这些和过去十年 OWASP Top 10 里的很多东西重叠得非常好,我们只是开始更大量地看到它们。
十三、用 AI 做利用(35:11–42:07)
克里斯:我很好奇,我想把话题翻到另一边:用 AI 栈来做这件事。我看到很多关于 agent 集群的说法,OpenAI 和 Hugging Face 那次攻击里就很明显。在某些领域,agent 集群正变得越来越常见。你怎么看?这对利用的杠杆意味着什么?除了找到漏洞,假设你……或者从另一半说,用 agent 集群实时找漏洞、然后实时利用,某种程度上我理解那就是 OpenAI 那次发生的事。作为研究者你怎么想?我们这些非研究者、非专家,在考虑保护自己组织的时候,该怎么看这些可能性?
斯宾塞:我觉得,在我的心智模型里,它和很久以前的 fuzz farm 有很多相似之处:那是一个规模化问题——你有一百个节点在 fuzz Chrome,你大概就会按这个比例找到更多 bug。
斯宾塞:相似之处还延续到我现在看到很多研究团队在谈的事:他们自己在 brew 自己的 harness、自己的 prompt,因为大家都假设——就像当年 fuzzing 一样——如果你用一个现成的 fuzzer 去打大家都在打的产品,比如 OpenSSH 之类,你很可能会找到同一批 bug,所以大家假设如果用现成的 harness 配完全一样的模型,结果也一样。那里面熵更多,但我认为很多人被鼓励去做自己的,这是好事。
斯宾塞:相似之处到此为止。因为我们看到、以及行业更快转向的是:现在有了 AI,它能给你更好的理解——一旦漏洞被识别出来,它某种程度上把第一道 triage 拿掉了。当然质量取决于你的控制、你的模型等等,但它会给你相当程度的分析:这可不可利用、是什么 bug class、我们是怎么走到这一步的。我没有看到证据表明已经进入全面、大规模利用的阶段。
斯宾塞:话虽如此,如果三到六个月后答案还是一样,我会非常意外,因为这些事情一直在往前跑。这就是这一切有意思的地方:我现在说的任何话,大概很快会过时,几个月后必须重新考虑。
丹尼尔:事情确实——快得惊人。
斯宾塞:对。所以我认为 agent 确实在帮助分析能力,它们甚至能造出 POC 来重新触发那个缺陷——这些和我们过去必须手工做的东西相比是巨大的跨越。所以它把这件事大大加速了。然后在某些情况下,回到它很擅长利用的那些漏洞类别,我们可以让它做到造出一个 POC,或者一个我们会认为达到质量门槛的、完全武器化的利用;但对某些类别,它还没到稳定可靠的程度。
丹尼尔:这正是我的追问。如果我理解得对——你前面讲过那些漏洞类别,AI 在某些类别上做得很好。那么,是不是说:AI 找到的漏洞,目前并不一定比人找到的被利用得更多、影响更大?这和「模型只在某些类别上很强、其他类别还没跟上」有关系吗?
斯宾塞:是的。我可以说,今天就同等影响而言,AI 在利用上不如人可靠。因为人首先是有动机去看漏洞的——当然也有些人纯粹为了好玩;但总的来说,很多人有某种动机。他们需要看某个特定应用,是因为想知道攻击者能不能进去;他们对影响有额外的上下文,并且把「能达到什么」当成目标。
斯宾塞:那个目标几乎总是代码执行。所以我看到很多人工打磨的利用,在真实世界使用者能用的效用上要成熟得多。而按我的经验,很多 AI 的利用会给你一个「这是一个理论上可利用的崩溃」,然后试着往前推。你知道,它可能偏掉,走到一个对人类操作者需求并不那么有利的方向。
丹尼尔:那么,如果我把你说的两件事合在一起:你可能有一队 agent 研究者,像你说的,几乎就是在做 fuzzing 那种能力;也许用你自己的 harness,用独特的方式做。于是 agent 在看非常宽的面上,而为了在你这个角色上最有效,你可以用这个能力去识别,再把它们过滤下来交给人类专家,去提高利用的效用或影响,或者验证 POC 不是坏的。对研究领域里、或者对研究感兴趣、想以有用的方式用 AI 的人来说,这样理解大致合理吗?
斯宾塞:当然。就是把信息一层层煮下去,直到到达那个高位:漏洞已经被识别、你知道怎么触发它,AI 甚至可能知道一点你能拿它做什么。只是在某些类别上,它很难走到「你能拿它做什么、攻击者想要什么」以及这两者的交集那一步。
克里斯:我们在收尾了。这是一次很迷人的对话,真的非常有意思。我们在结尾常做的一件事,是请人稍微「诗兴大发」一点,谈谈你的想法。就像晚上要睡了,你在自由地想;洗澡的时候,脑子随便飘。你能不能谈谈你觉得事情会往哪里走?时间尺度你随便选。我很想让我们都看一眼你作为安全研究者自由联想时的脑子:它飘到哪儿?你预期、你在准备的未来是什么样?在你可能想着的事情里,你觉得什么特别酷?我很想这样收尾。
十四、往后看(42:07–44:29)
斯宾塞:我对接下来要发生的事挺乐观,因为事情在变快、变好。但对我这样一个想帮人、想产出信息让人做出更好、更有依据的决策的研究者来说,速度非常重要。很久以来,攻击者不守规矩——这就是定义。所以他们有一个优势:可以用不确定多久的时间去开发一个漏洞,然后靠使用它、伤害人来发布。
斯宾塞:于是会有一段窗口,它正在被活跃利用,而想打补丁、想防守的人理解它会更吃力。我们现在看到的一件事是,我们能把这条流程跑得快得多。所以我们在削减他们从那些努力里得到的价值,我觉得这是真正的好事。当一个变量或一个新漏洞出现时,我们能反应得快得多。这非常好。
斯宾塞:在不太技术的层面,我很好奇这些东西的一些法律后果。有件事我真的想知道,也真的好奇:当你在新闻里读到那些事——有人让 Claude 做某件事,而为了做成那件事,它拿下了某个网站之类——我记得读过一篇文章,有人想进一节动感单车课,Claude 利用了一个 SQL 注入漏洞把他插到了队伍最前面。这可不怎么样,但我很好奇,这类事情的先例会在哪里被确立:谁该为这种入侵负责。因为我觉得大家都有自己的看法,但我想看它在法院里实际怎么落地。
丹尼尔:希望有些漏洞能帮我回到我的锻炼计划里。我需要一点帮助。不过,这很棒,斯宾塞。
丹尼尔:谢谢你,在世界、在网络世界都非常多事的一天里抽时间跟我们聊。很感激。我们也鼓励大家去看看 VulnCheck 在做的事,我们会在节目笔记里放一些链接。
丹尼尔:真是了不起的工作。非常感谢你,斯宾塞。
斯宾塞:当然,谢谢你邀请我。
十五、收尾(44:29–45:13)
旁白:好,这就是我们这一周的节目。如果你还没看过我们的网站,去 practicalai.fm,也记得在 LinkedIn、X 或 Blue Sky 上关注我们。你会看到我们发布的关于 AI 进展的洞察,我们很希望你也加入讨论。感谢我们的合作伙伴 Prediction Guard 为节目提供运营支持。
旁白:去 predictionguard.com 看看他们。也感谢 Breakmaster Cylinder 的节拍,感谢你的收听。这一期就到这里,下周再会。
References
- 1Practical AI 官方单集页
practicalai.show
- 2VulnCheck 官网
vulncheck.com
- 3VulnCheck 官方博文:PHP2Shell
vulncheck.com
- 4The Register:PHP2Shell 利用绕过 ASLR
theregister.com
- 5vulncheck-oss/go-exploit
github.com
- 6VulnCheck 官方博文:Death By 20,000 PoCs
vulncheck.com
- 7Rapid7 博客作者页
rapid7.com


Comments