VulATMHD:结合自适应三元组挖掘与混合蒸馏技术进行类型感知的漏洞分类
《Information and Software Technology》:VulATMHD: Joint adaptive triplet mining and hybrid distillation for type-aware vulnerability classification
【字体:
大
中
小
】
时间:2026年02月02日
来源:Information and Software Technology 4.3
编辑推荐:
针对软件漏洞分类中存在的语义重叠和知识迁移不足问题,本文提出VulATMHD框架,通过CWE抽象类型对漏洞类型进行分组,构建多教师架构,结合自适应三重匹配优化特征学习,并采用混合蒸馏策略实现特征与标签分布的双重知识迁移,实验表明其准确率和加权F1-score分别提升4.7%-29.9%和5.7%-34.1%。
王旭艳|卢璐
华南理工大学计算机科学与工程学院,中国广东省广州市510006
摘要
背景:
利用预训练模型进行漏洞检测已取得显著成效,但其粗粒度的输出无法为安全工程师提供漏洞类型信息。近期出现的基于类型意识的软件漏洞分类(SVC)方法在一定程度上弥补了这一不足,但这些方法往往忽略了类型间的语义关系,并且知识迁移能力有限,导致学习到的表示效果不佳。
目标:
为了解决这些问题,本研究提出了VulATMHD,这是一种结合了自适应三元组挖掘和混合蒸馏的新型类型意识SVC框架。
方法:
VulATMHD首先根据常见的弱点枚举抽象类型对漏洞类型进行分组,然后构建一个多教师架构,每个教师负责一个特定类型。通过引入自适应三元组挖掘来指导特征学习,从而得到类内紧凑、类间可区分的特征表示。由于每个教师都是针对其负责类型的性能进行优化的,VulATMHD进一步采用混合蒸馏策略,将特征表示和标签分布从教师集合传递给预训练的学生模型。
结果:
在BigVul数据集上的实证评估表明,与基线方法相比,VulATMHD在准确率和加权F1分数上分别提高了4.7%–29.9%和5.7%–34.1%。此外,VulATMHD可与多种预训练模型(如CodeBERT、CodeT5+和GraphCodeBERT)兼容。
结论:
所提出的VulATMHD在性能上超越了现有的SVC方法,并在下游任务中表现出更好的鲁棒性和可扩展性,凸显了其在实际应用中的潜力。
引言
软件漏洞是在软件设计、实现或配置过程中产生的安全弱点[1]。最近,美国国家公共数据公司遭受了一次利用漏洞的网络攻击,导致29亿条敏感信息泄露,最终迫使该公司破产[2]。为了标准化这些漏洞的分类和描述,业界广泛采用了通用弱点枚举(CWE)框架[3]。到2015年,CWE已记录了6494种漏洞,随着现代软件的迅速发展,这一数字在2024年上升到了40,301种[4]。因此,识别潜在漏洞对于确保软件安全至关重要。
随着预训练模型的快速发展,出现了多种基于预训练模型的软件漏洞检测(SVD)方法,用于判断给定样本是否包含漏洞。这些模型在大型代码库上训练,能够捕获丰富的语义表示,从而有效应用于SVD任务。Fu等人[5]提出了LineVul,Liu等人[6]提出了PM2-CNN,它们分别利用CodeBERT[7]和UniXcoder[8]从源代码中提取深度语义特征,显著优于之前的基于图的SVD方法[9]、[10]。
尽管SVD研究取得了显著进展,但这些方法的粗粒度输出对安全工程师的帮助仍然有限。在实际应用中,工程师经常需要处理自动化检测工具生成的大量漏洞警报。由于缺乏细粒度的漏洞信息(例如漏洞类型),他们必须手动检查并优先处理每个警报,这增加了关键漏洞被利用的风险。例如,CWE-125(越界读取)被视为一种关键漏洞,不当的边界检查可能允许攻击者访问敏感内存区域,导致信息泄露。相比之下,CWE-310(加密问题)的严重性较低,虽然会削弱数据保护,但不会直接控制系统。因此,近期研究探索了多种方法来弥补这一差距,如可解释性方法(用于突出漏洞位置或潜在原因[11]、[12])和软件漏洞分类(SVC)方法(用于识别漏洞的严重性或类型[13]、[14]、[15])。本研究关注基于类型意识的SVC,它提供了对实际修复工作至关重要的具体漏洞类型信息。
最近提出的基于类型意识的SVC方法主要针对漏洞类型的长尾分布问题(即大多数样本属于少数几种常见类型,而许多类型较为罕见)。Fu等人[14]提出了VulExplainer,该方法引入了分层学习来处理长尾标签分布,并应用标签蒸馏将知识传递给预训练模型。Wen等人[15]提出了LIVABLE,它引入了一个自适应重加权模块来平衡常见类型和罕见类型之间的注意力。尽管这些方法具有一定效果,但仍存在两个关键限制:(1)漏洞类型之间的语义重叠——许多漏洞类型在代码模式上有显著的语义相似性。图1展示了一个例子,CWE-119(缓冲区错误)和CWE-125仅在内存访问方向上有所不同。然而,现有的SVC方法侧重于平衡不同类型之间的注意力,而忽略了它们之间的细粒度语义关系,导致类别边界重叠。尽管一些SVD方法[16]、[17]使用对比学习来扩大脆弱特征和非脆弱特征之间的特征距离,但由于类型数量较多,SVC面临更大的挑战。这种增加也导致了训练初期特征距离的噪声[18]、[19],影响了有效的样本挖掘。(2)知识迁移不足——这些方法的知识迁移能力有限,导致学习到的表示效果不佳。例如,VulExplainer仅在标签层面进行知识蒸馏,忽略了教师模型捕获的语义特征。相比之下,LIVABLE用图神经网络替换了预训练模型,从而放弃了通过大规模预训练获得的丰富表示。
为了解决这些问题,本研究提出了VulATMHD,这是一种结合了自适应三元组挖掘和混合蒸馏的新型类型意识SVC框架。该框架分为两个阶段:首先,根据CWE抽象类型将所有漏洞类型分为五组,以实现平衡分布;然后,采用多教师架构,每个教师负责分类其所在组的类型。为了捕捉漏洞类型之间的细粒度语义关系,引入了自适应三元组挖掘来优化教师集合。这一策略通过将CWE抽象类型信息作为语义先验知识,扩展了批量硬三元组挖掘[21]。其目标是学习一个特征空间,在该空间中,同一领域内的语义相似类型能够得到良好分离,而同一类型的样本形成紧凑的簇。其次,由于每个教师都是针对其所在组进行优化的,因此使用预训练模型作为“学生”来统一组内知识。该“学生”通过混合蒸馏策略进一步优化,使特征表示和标签分布从教师集合中对齐,从而实现更有效的知识迁移。
在包含8636个漏洞样本(涵盖44种漏洞类型[22])的BigVul[22]数据集上对VulATMHD进行了实证评估。实验结果表明,VulATMHD在准确率和加权F1分数上分别比基线方法提高了4.7%–29.9%和5.7%–34.1%。此外,VulATMHD还与多种预训练模型兼容,如CodeBERT、CodeT5+和GraphCodeBERT。
结论
所提出的VulATMHD在性能上超越了现有的SVC方法,并在下游任务中表现出更好的鲁棒性和可扩展性,显示出其在实际应用中的潜力。
引言
软件漏洞是在软件设计、实现或配置过程中产生的安全弱点[1]。最近,美国国家公共数据公司遭受了一次利用漏洞的网络攻击,导致29亿条敏感信息泄露,最终迫使该公司破产[2]。为了标准化这些漏洞的分类和描述,业界广泛采用了通用弱点枚举(CWE)框架[3]。到2015年,CWE已记录了6494种漏洞,随着现代软件的快速发展,这一数字在2024年上升到了40,301种[4]。因此,识别潜在漏洞是开发团队确保软件安全的关键任务。
随着预训练模型的快速发展,出现了多种基于预训练模型的软件漏洞检测(SVD)方法,用于判断给定样本是否包含漏洞。这些模型在大型代码库上训练,能够捕获丰富的语义表示,从而有效应用于SVD任务。Fu等人[5]提出了LineVul,Liu等人[6]提出了PM2-CNN,它们分别利用CodeBERT[7]和UniXcoder[8]从源代码中提取深度语义特征,显著优于之前的基于图的SVD方法[9]、[10]。
尽管SVD研究取得了显著进展,但这些方法的粗粒度输出对安全工程师的帮助仍然有限。在实际应用中,工程师经常需要处理自动化检测工具生成的大量漏洞警报。在没有细粒度漏洞信息(如漏洞类型)的情况下,他们必须手动检查并优先处理每个警报,这增加了关键漏洞被利用的风险。例如,CWE-125(越界读取)被视为一种关键漏洞,不当的边界检查可能允许攻击者访问敏感内存区域,导致信息泄露。相比之下,CWE-310(加密问题)的严重性较低,虽然会削弱数据保护,但不会直接控制系统。因此,近期研究探索了多种方法来弥补这一差距,如可解释性方法(用于突出漏洞位置或潜在原因[11]、[12])和软件漏洞分类(SVC)方法(用于识别漏洞的严重性或类型[13]、[14]、[15])。本研究关注基于类型意识的SVC,它提供了对实际修复工作至关重要的具体漏洞类型信息。
最近提出的基于类型意识的SVC方法主要针对漏洞类型的长尾分布问题(即大多数样本属于少数几种常见类型,而许多类型较为罕见)。Fu等人[14]提出了VulExplainer,该方法引入了分层学习来处理长尾标签分布,并应用标签蒸馏将知识传递给预训练模型。Wen等人[15]提出了LIVABLE,它引入了一个自适应重加权模块来平衡常见类型和罕见类型之间的注意力。虽然这些方法具有一定效果,但仍存在两个关键限制:(1)漏洞类型之间的语义重叠——几种漏洞类型在代码模式上有显著的语义相似性。图1展示了一个例子,CWE-119(缓冲区错误)和CWE-125仅在内存访问方向上有所不同。然而,现有的SVC方法侧重于平衡不同类型之间的注意力,而忽略了它们之间的细粒度语义关系,导致类别边界重叠。尽管一些SVD方法[16]、[17]使用对比学习来扩大脆弱特征和非脆弱特征之间的特征距离,但由于类型数量较多,SVC面临更大的挑战。这种增加也导致了异常值的增加,使得训练初期的特征距离变得嘈杂[18]、[19],影响了有效的样本挖掘。(2)知识迁移不足——它们表现出有限的知识迁移能力,导致学习到的表示效果不佳。例如,VulExplainer仅在标签层面进行知识蒸馏,忽略了教师模型捕获的语义特征。相比之下,LIVABLE用图神经网络替换了预训练模型,从而放弃了通过大规模预训练获得的丰富表示。
为了解决这些问题,本研究提出了VulATMHD,这是一种结合了自适应三元组挖掘和混合蒸馏的新型类型意识SVC框架。该框架分为两个阶段:首先,根据CWE抽象类型将所有漏洞类型分为五组,以实现平衡分布;然后,采用多教师架构,每个教师负责分类其所在组的类型。为了捕捉漏洞类型之间的细粒度语义关系,引入了自适应三元组挖掘来优化教师集合。这一策略通过将CWE抽象类型信息作为语义先验知识,扩展了批量硬三元组挖掘[21]。其目标是学习一个特征空间,在该空间中,同一领域内的语义相似类型能够得到良好分离,而同一类型的样本形成紧凑的簇。其次,由于每个教师都是针对其所在组进行优化的,因此使用预训练模型作为“学生”来统一组内知识。该“学生”通过混合蒸馏策略进一步优化,使特征表示和标签分布从教师集合中对齐,从而实现更有效的知识迁移。
在包含8636个漏洞样本(涵盖44种漏洞类型[22])的BigVul[22]数据集上对VulATMHD进行了实证评估。实验结果表明,VulATMHD在准确率和加权F1分数上分别比基线方法(包括VulExplainer和LIVABLE)提高了4.7%–29.9%和5.7%–34.1%。除了分类性能外,VulATMHD还针对两种对抗性攻击[23]、[24]进行了评估,表现出比基线方法更好的鲁棒性。此外,为了评估其可扩展性,VulATMHD还被应用于SVD任务,并在BigVul[22]、Devign[9]和Reveal[10]数据集上进行了评估,其性能与代表性的SVD方法(如LineVul[5]和PM2-CNN[6])相当。
总结来说,VulATMHD的主要贡献如下:
- 1.
VulATMHD引入了自适应三元组挖掘来捕捉漏洞类型之间的细粒度语义关系,从而使教师集合能够学习到紧凑的类内特征和良好的类间特征分离。
- 2.
VulATMHD设计了一种混合蒸馏策略,使教师集合和学生之间的标签语义和特征表示对齐,从而实现更全面的知识迁移。
- 3.
在BigVul数据集上的实证评估表明,VulATMHD在准确率和加权F1分数上显著优于基线方法。此外,它在下游任务中表现出更好的鲁棒性和可扩展性。
本文的其余部分安排如下:第2节介绍SVD和SVC的代表性研究;第3节介绍初步内容;第4节描述所提出的VulATMHD框架的细节;第5节描述实验设置;第6节分析实验结果;第7节提供补充讨论;第8节讨论有效性的威胁;第9节总结本研究。
相关研究
相关工作
本节对SVD和基于类型意识的SVC的代表性研究进行了全面回顾。
初步内容
本节介绍了理解VulATMHD所需的初步知识。
VulATMHD框架
为了解决现有SVC方法的两个关键限制,本研究提出了VulATMHD,这是一种结合了自适应三元组挖掘和混合蒸馏的新型SVC框架,旨在增强漏洞类型之间的语义区分能力和知识迁移。VulATMHD的概述如图3所示。
实验设置
本节介绍了研究问题(RQs)、实验数据集、实施设置、基线方法和评估指标。
回答RQ1:VulATMHD在基于类型意识的SVC中的表现如何?
为了回答RQ1,我们在BigVul数据集上评估了VulATMHD,报告了总体准确率、加权F1分数以及每个CWE抽象类型组的准确率。为了进一步评估其表示能力,我们使用类内平均距离(较低值表示更高的类内紧凑性)和类间质心距离(较高值表示更清晰的类间区分度)比较了GraphCodeBERT、VulExplainer和VulATMHD的预分类器特征
讨论
基于VulATMHD在五个研究问题中的验证优势,本节探讨了其有效性背后的因素。我们讨论了两个主要优势,定性分析了其实际效用和局限性,评估了第一阶段特征提取器和关键超参数,并将其与代表性的长尾学习算法进行了比较。所有讨论均基于GraphCodeBERT,VulATMHD在该框架下表现出了最显著的改进。
有效性的威胁
一个威胁来源于构建的数据集。与VulExplainer[14]和LIVABLE[15]类似,本研究在覆盖44种漏洞类型的C/C++数据集上评估了VulATMHD,但尚未在其他语言(如Java和Python)上进行验证。理论上,VulATMHD捕捉类间语义关系的能力可以在不同编程语言之间迁移,因为具有相似代码模式的漏洞对在各种语言中都很常见。未来的工作将对其进行验证
结论
本研究提出了VulATMHD,这是一种结合了自适应三元组挖掘和混合蒸馏的基于类型意识的SVC框架。通过利用CWE抽象类型作为先验知识,VulATMHD采用了多教师架构,并引入了自适应三元组挖掘来捕捉类型之间的细粒度关系。此外,还引入了混合蒸馏策略来促进有效的知识迁移。实验结果表明,VulATMHD与多种预训练模型兼容
CRediT作者贡献声明
王旭艳:撰写——原始草案、可视化、方法论、数据整理。卢璐:撰写——审阅与编辑、验证、监督、方法论。
利益冲突声明
作者声明他们没有已知的财务利益或个人关系可能影响本文所述的工作。
致谢
本工作得到了广东省自然科学基金(2024A1515010204)和南方电网公司的技术研究项目(ZBKJXM20232483)的支持。
生物通微信公众号
生物通新浪微博
今日动态 |
人才市场 |
新技术专栏 |
中国科学人 |
云展台 |
BioHot |
云讲堂直播 |
会展中心 |
特价专栏 |
技术快讯 |
免费试用
版权所有 生物通
Copyright© eBiotrade.com, All Rights Reserved
联系信箱:
粤ICP备09063491号