TOSSS: a CVE-based Software Security Benchmark for Large Language Models

本文介绍了 TOSSS(基于 CVE 的双选项安全片段选择)基准,旨在通过让大语言模型在安全与易受攻击的代码片段间进行选择来评估其软件安全能力,该基准具有可扩展性,并在 14 个主流模型上进行了 C/C++ 和 Java 代码的测试。

Marc Damie, Murat Bilgehan Ertan, Domenico Essoussi, Angela Makhanu, Gaëtan Peter, Roos Wensveen

发布于 Thu, 12 Ma
📖 2 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文介绍了一个名为 TOSSS 的新工具,用来测试大型人工智能(LLM)在写代码时是否“懂安全”。

为了让你轻松理解,我们可以把这篇论文的核心内容想象成一场**“找茬游戏”“安全体检”**。

1. 背景:AI 是个天才,但也是个“粗心鬼”

现在的 AI(比如 GitHub Copilot 或各种聊天机器人)非常聪明,能帮程序员写代码。就像请了一位超级速记员,你让它写个功能,它秒回。
但是,这个速记员有个大问题:它经常为了“快”而忽略“安全”
研究发现,AI 生成的代码里,有相当一部分藏着“后门”或漏洞。如果黑客利用这些漏洞,公司的数据就可能被偷走。所以,我们需要知道:到底哪个 AI 最靠谱?哪个 AI 最容易把代码写“坏”?

2. 旧方法的痛点:像“开卷考试”但题目太死板

以前,人们测试 AI 的安全能力,通常是给 AI 出一道题(比如:“写一个登录功能”),然后让 AI 写代码,再用专门的“安检仪”(静态分析工具)去检查代码有没有漏洞。
这就像: 老师给 AI 出作文题,然后拿着一本固定的《错别字大全》去批改。
缺点:

  • 题目太旧: 如果出了新的黑客攻击手法(新漏洞),那本《错别字大全》里没有,AI 就算写错了也查不出来。
  • 更新太慢: 每次加新题目,都要人工重新设计,太累了。

3. 新方法 TOSSS:玩“二选一”的找茬游戏

这篇论文提出的 TOSSS benchmark(基准测试),换了一种更聪明的玩法。它不再让 AI 从头写代码,而是玩一个**“找不同”**的游戏。

游戏规则是这样的:

  1. 研究人员从真实的黑客攻击记录(CVE 数据库)里,找到一段**“有漏洞的代码”**(比如:一个没锁好的门)。
  2. 然后找到这段代码**“修复后的安全版本”**(比如:同一扇门,但加了锁)。
  3. 把这两个版本(A 和 B)同时扔给 AI,问它:“这两个版本里,哪个更安全?请只回答 A 或 B。”

这就像:
你给 AI 看两把锁,一把是生锈易断的(漏洞版),一把是崭新的防盗锁(安全版)。你问 AI:“哪把锁更安全?”

  • 如果 AI 总是选防盗锁,说明它懂安全(得分高)。
  • 如果 AI 总是选生锈的锁,说明它不仅不懂,还偏爱危险(得分低)。

4. 为什么这个方法很厉害?(四大优势)

  • 无限更新(扩展性): 只要黑客发现新漏洞,数据库里一更新,TOSSS 就能自动抓取新的“生锈锁”和“新锁”给 AI 做测试。不需要人工重新出题。
  • 简单直接(可扩展性): 不需要复杂的代码生成,只需要 AI 做选择题,测试速度极快,可以一次测几千道题。
  • 结果清晰(可解释性): 分数就是它选对“安全锁”的概率。
    • 1 分 = 次次选对,安全大师。
    • 0.5 分 = 瞎蒙,跟扔硬币没区别。
    • 低于 0.5 分 = 甚至有点“坏”,专门选有漏洞的。
  • 公平性: 以前 AI 可能会因为格式问题(比如多写了个空格)被误判,现在只让它选 A 或 B,完全避免了这种干扰。

5. 实验结果:AI 们表现如何?

研究人员找了 14 个最火的 AI 模型(包括闭源的如 GPT 系列,开源的如 LLaMA 等),用 C/C++ 和 Java 两种语言进行了测试。

  • 整体表现: 大部分 AI 都能认出哪个更安全,分数在 0.48 到 0.89 之间。
    • 高分选手: 像 GLM-5、GPT-5.4 等,表现很好,几乎次次选对。
    • 低分选手: 有个叫 Mistral 的模型,分数只有 0.48,基本等于在瞎猜,甚至有点“偏爱”有漏洞的代码。
  • 一个有趣的现象(提示词的作用):
    • 如果不告诉 AI 这是考“安全”,它表现一般。
    • 如果明确告诉它:“请选出最安全的那个”,大部分 AI 的分数都会上涨
    • 例外: 有个专门写代码的模型(Codestral),一旦你提醒它“要注意安全”,它反而变差了。这说明它可能太专注于“把代码写通顺”,反而被“安全”这个指令搞晕了。
  • 结论: 并不是所有“写代码专用”的 AI 都最懂安全。有时候,通用的 AI 反而更谨慎。

6. 总结:这对我们意味着什么?

这篇论文告诉我们:

  1. AI 不是万能的: 即使是顶级的 AI,在代码安全上也可能“翻车”。
  2. 需要新标准: 以前那种让 AI“写代码”来测试安全的方法太慢了,TOSSS 这种“二选一”的方法更灵活、更真实。
  3. 未来方向: 开发者在使用 AI 助手时,应该明确提示它“要注意安全”,这能帮它发挥得更好。同时,AI 公司也应该把这种“安全评分”像“智商分”一样公开,让大家知道谁更安全。

一句话总结:
TOSSS 就像给 AI 发了一张**“安全驾照考试卷”,不再让它现场造车(写代码),而是让它从两辆车里挑出一辆没安全隐患的**。这样既能快速测试谁最靠谱,又能随着新漏洞的出现随时更新考题,确保 AI 不会把我们的代码带进沟里。