← 最新论文
💻 computer science

Early Comparative Evaluation of Transformer Models for Multilingual Software Vulnerability Detection

本文对 BERT、RoBERTa 和 CodeBERT 在基于 CVEFixes 数据集的 HTML、Python、JavaScript 和 PHP 多语言软件漏洞检测中的表现进行了早期对比评估,揭示了显著的性能差异,从而凸显了对更具语言感知能力的 Transformer 模型策略的需求。

原作者: Fiza Naseer, Javad Khan, Muhammad Yaqoob, Alexios Mylonas

发布于 2026-06-10
📖 1 分钟阅读☕ 轻松阅读

原作者: Fiza Naseer, Javad Khan, Muhammad Yaqoob, Alexios Mylonas

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正在雇佣一支专业的保安团队来巡逻一座巨大的多层建筑。这座建筑并非由单一材料建成;它的房间分别由木头、钢铁、玻璃和塑料建造而成。每种材料都有其独特的被破入的方式。

这篇论文就像是一份成绩单,记录了三种不同类型的保安(名为 BERTRoBERTaCodeBERT 的 AI 模型)试图发现“薄弱点”(漏洞)的过程,而这座建筑是由多种材料混合而成的。

以下是研究人员发现的详细情况,使用了简单的类比:

任务:寻找裂缝

软件漏洞就像墙上的隐藏裂缝,会让小偷(黑客)溜进来。由于现代软件是使用多种不同的“语言”(如 HTML、Python、JavaScript 和 PHP)构建的,这就像盖房子时,厨房是玻璃做的,卧室是钢铁做的,而浴室是木头做的。

研究人员想要看看这些 AI 保安是否能同样出色地发现所有这些不同材料中的裂缝。

工具:三位保安

团队测试了三个特定的 AI 模型:

  1. BERT: 一位通用的保安,擅长理解人类语言。
  2. RoBERTa: 第一位保安稍微资深一点的版本。
  3. CodeBERT: 一位专门接受过训练,能够理解计算机代码“语言”的保安。

他们给这些保安一叠代码样本(即“建筑材料”),并要求他们将这些样本分成两堆:“安全”(没有裂缝)或 “有漏洞”(有裂缝)。

测试运行

研究人员使用了一个名为 CVEFixes 的数据集,其中包含了四种特定语言的代码样本:

  • HTML: 网页的结构(就像房子的框架)。
  • Python: 用于后端逻辑(就像水管或电路)。
  • JavaScript: 用于网页的交互功能(就像门的可动部分)。
  • PHP: 用于服务端处理(就像地基)。

他们把这当作一场严格的考试。他们不仅观察整个建筑,还观察单个代码片段,并要求 AI 判断该特定片段是安全的还是危险的。

结果:一种尺寸并不适合所有人

结果令人惊讶,表明没有任何一位保安能完美胜任所有工作。

  • 获胜者 (HTML): 当保安们检查 HTML 代码时,他们做得非常好。这就像检查一面玻璃墙;裂缝非常明显。CodeBERT 表现最佳,正确捕捉到了大约 71% 的实际问题。
  • 挣扎阶段 (Python, JavaScript, PHP): 当保安们转向 Python、JavaScript 和 PHP 时,他们的表现显著下降。这就像是他们试图在没有合适工具的情况下,去寻找复杂钢结构中的裂缝。他们的成功率跌破了 45%。

核心启示:
论文发现,CodeBERT 最擅长发现 HTML 和 Python 的问题,RoBERTa 在 JavaScript 方面表现稍好,而 BERT 实际上在 PHP 方面表现最好(尽管表现依然不佳)。

结论

这篇论文的主要教训是,你不能用同一名保安来守护所有类型的建筑材料。

仅仅因为一名 AI 擅长发现木墙上的洞,并不意味着它也会擅长发现钢梁上的洞。代码的“语言”会改变 AI 看待问题的方式。

研究人员得出结论,要建立一个真正安全的系统,我们不能仅仅依赖于一个“通用型”的 AI 模型。相反,我们需要开发更聪明的策略,去理解每种编程语言特定的“方言”和模式,或者或许应该为建筑的不同部分训练不同的保安。

简而言之: 这些 AI 模型确实有效,但它们目前是“语言偏见者”——它们在某些编程语言上的表现远好于其他语言,我们需要找出如何让它们在所有语言上都同样出色。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →