一句话定义:AI 漏洞挖掘(AI Vulnerability Discovery)指用大语言模型(LLM)或机器学习方法代替人工阅读源代码或二进制程序,自动找出可被攻击者利用的安全缺陷,并尽量给出可复现的触发路径。
为什么突然被讨论:代码规模早已超过人力能审完的程度。公开讨论中常被提到的一个案例是:有团队用大模型对 Linux 内核做规模化审计,投入了百万美元量级的算力成本,报出数百个漏洞(具体数字以官方披露为准)。数字本身可以再讨论,真正的信号是:把“读代码找漏洞”按 token 计价、按流水线运行,第一次算得过来。
原理,打个比方:传统静态扫描(SAST,Static Application Security Testing)像小区保安拿清单查违章,清单上写“用了 strcpy 就要检查长度”,于是所有 strcpy 都被标红。它确定性强、便宜,但只认清单上的写法。AI 审计更像请来一位读过几十万个项目的老师傅:他看的是这个函数想干什么、参数从哪来、有没有在某个分支里悄悄绕过了检查。漏洞往往不是某一行的错,而是“这里检查了、那里忘了”的组合——这恰恰是模式匹配最弱、语义理解最强的地方。
流水线长什么样:真正规模化的做法不是“把代码丢给模型问有没有漏洞”,而是一条流水线:定位入口点(source)与危险操作(sink)→ 让模型判断数据能否真的流过去 → 生成触发条件或验证代码(PoC)→ 丢进沙箱或模糊测试(fuzzing)里实际跑一遍 → 同一根因的告警去重合并 → 人工定级(CVSS)。模型负责提出假设,执行环境负责证伪,这一步把模型编造的误报挡在门外。
误报治理:模型报得越多,安全团队越累,人的时间是真正的瓶颈。常见做法是强制模型给出从入口到危险点的完整调用路径,路径走不通就丢弃;再用“这段 PoC 是否真的让程序崩溃”做二次过滤;最后把同一处代码的重复告警合并成一条。
| 对比项 | 传统静态扫描 SAST | AI 漏洞挖掘 |
|---|---|---|
| 判断依据 | 人工编写的规则与模式 | 从海量代码和历史漏洞中学到的模式 |
| 强项 | 已知漏洞类型、结果稳定可解释 | 跨函数、跨文件的上下文与语义理解 |
| 弱项 | 规则之外的写法直接漏报,规则太宽又误报 | 会编造、误报偏高、算力成本高 |
| 产出形态 | 一列告警 | 告警 + 疑似利用路径 + 验证脚本 |
容易混淆的一点:AI 漏洞挖掘是“用 AI 去找别人软件里的漏洞”;与之相对的是“AI 系统自身的漏洞”,比如提示注入(prompt injection)——那是“在 AI 里找漏洞”。两者方向相反,经常被混为一谈。
对从业者和普通人的意义:对安全工程师,工作重心从“找”转向“判”——判断这个漏洞值不值得修、影响面多大、怎么修;对普通职场人,它意味着你天天依赖的软件可能被修得更快,但攻击方手里握着的也是同一套工具,攻防是在同时加速的。
