AI 挖漏洞误报率太高:华为要求提交前人工验证,聊聊 AI 代码审计怎么用

AI 找漏洞最近很火,但翻车也很快。华为终端安全奖励计划近日发布说明:用 AI 挖掘出来的漏洞报告存在大量误报,要求提交者必须先做人工分析和验证,否则不予受理。这条规则,值得所有想用 AI 做安全审计的人认真看看。

为什么 AI 报的漏洞不靠谱

AI 模型(尤其是大语言模型)在代码审计上的问题主要有三类:

  1. 幻觉式漏洞:模型会”编造”看起来合理、实际上不存在的漏洞路径;
  2. 忽略上下文:很多代码段单看像漏洞,但放在调用链里有前置校验,实际不可达;
  3. 误判严重级别:把理论上的风险直接标成”高危 RCE”,一看 PoC 根本复现不了。

正确的 AI 审计流程

把 AI 当”初筛工具”而不是”结论生成器”,流程建议这样设计:

第一步:静态扫描打底
先用成熟工具(Semgrep、CodeQL、Coverity)跑一遍,拿到确定的模式和规则命中结果。这一步不依赖 AI,误报率可控。

第二步:AI 做候选分析
把可疑代码片段(含调用上下文、类型定义、注解)一起喂给模型,让它分析”是否可达、是否需要前置条件、可能的利用方式”。提示词里明确要求:不确定就说不确定。

第三步:人工验证(最关键)
对每条 AI 结论,必须做到三件事:
① 找到数据流入口(污点源);
② 确认中间没有过滤/校验;
③ 写出可复现的 PoC 或明确说明为何不可达。

第四步:分级归档
把”确认可利用 / 需特定配置 / 理论风险 / 误报”分开归档。给厂商提交时,只交前两类。

提示词模板参考

你是安全审计助手。请分析以下代码片段:
1. 是否构成安全漏洞?如果构成,说明类别(注入/越权/反序列化等)。
2. 数据从哪来(污点源)、经过哪些处理、是否可达。
3. 是否存在前置校验使漏洞不可利用。
4. 若无法确定,请明确回答"无法确定",不要猜测。
代码上下文:
<粘贴代码+调用链+类型定义>

给厂商提报前的自查清单

  • 漏洞路径是否完整(源→汇)?
  • 是否排除了框架自带的防护(如 ORM 参数化、模板转义)?
  • 是否有可复现步骤或 PoC?
  • 影响版本范围是否写了?
  • 严重级别是否有依据,而不是”看着像高危”?

结论:AI 能把审计效率提升数倍,但它替代不了验证。把 AI 当”实习生”,人工当”审核员”,才是最省事也最不容易被打回来的姿势。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容