Less Is More:如何用半监督学习提升漏洞检测能力

" 在软件漏洞检测领域,深度学习方法往往依赖大量高质量标注数据。然而现实中:漏洞标注成本高、依赖专家知识;数据分布不均衡(漏洞样本稀缺);跨项目泛化能力差。这导致一个核心瓶颈:

"模型很强,但数据太贵。"

针对这一问题,论文提出:Less Is More思想,利用半监督学习,在少量标注数据下实现高效漏洞检测。"

  • 📄 论文标题:Less Is More: Unlocking Semi-Supervised Deep Learning for Vulnerability Detection
  • 📅 发表时间:ACM Transactions on Software Engineering and Methodology,2025

  • 🏫 作者单位:华为、武汉大学、浙江大学

01---方法介绍

该工作的核心思想是:最大化利用未标注数据,让模型在"少标注"条件下依然具备强检测能力。

整体框架可以理解为一个"自增强学习闭环":

  1. 先用少量标注数据训练初始模型;

  2. 利用模型为未标注数据打标签;

  3. 筛选高置信度样本加入训练;

  4. 不断迭代优化模型。

图1. SSVD方法架构

小结:论文通过置信度筛选与一致性约束,有效缓解了伪标签错误累积的问题。****

02---关键机制

  1. 面向漏洞检测的半监督框架

    系统性引入半监督学习到安全领域。

  2. 高质量伪标签机制

    通过置信度控制提升标签可靠性。

  3. 一致性学习策略

    增强模型对输入扰动的稳定性。

  4. 数据效率优化

    显著减少对人工标注的依赖。

模块 设计思路 作用
少量标注数据训练 使用有限漏洞标签进行初始模型训练 构建基础检测能力
伪标签生成(Pseudo-labeling) 利用模型对未标注数据进行预测并生成标签 扩展训练数据规模
一致性正则化 约束模型在扰动输入下输出一致 提升模型鲁棒性
半监督联合训练 融合真实标签与伪标签进行迭代优化 提升整体检测性能

小结:用"少量真标签 + 大量伪标签"替代"全量人工标注",显著降低数据成本。

03---实验结果

实验优先使用经人工标注的 Devign 和 ReVeal 作为核心数据集,并额外纳入 Big-Vul 与 Juliet 数据集以增强 SSVD 的通用性。


(1)SSVD与半监督** 的六种深度学习方法及三种机器学习方法比较结果见表1-2。结果显示,SSVD 在F1、召回率及MCC上全面优于 SST、UST、DST 三种半监督方法。以LineVul为基模型时,SSVD的F1平均提升 4.91%~12.82%,MCC 平均提升 4.62%~8.17%;以 ReVeal 为基模型时,F1 平均提升 6.98%~10.68%,MCC 提升 16.62%~22%,**

表1. SSVD 与以 LineVul 作为基检测模型的相关方法比较。

表2. SSVD 与以 Reveal作为基检测模型的相关方法比较。

(2)评估了 SSVD 在 10%~100% 标注数据比例下的性能表现,结果见图2-3。结果表明,增加标注训练数据的比例通常能提升 SSVD的性能。在大多数情况下,使用一定比例标注数据训练的SSVD,其表现能够超过或接近使用 100% 标注数据训练的 LineVul 和 ReVeal。

图2. 四个模型(SSVD(LineVul)、SSVD(ReVeal)、LineVul、ReVeal)在四个数据集上随标注数据比例变化的 F1 分数。

图3. 四个模型(SSVD(LineVul)、SSVD(ReVeal)、LineVul、ReVeal)在四个数据集上随标注数据比例变化的MCC值。

小结**:SSVD方法通过信息增益筛选高确定性伪标签,并引入 NRTL 与 NRCE 损失函数增强易漏洞与无漏洞代码的区分度、减少错误伪标签的误差累积。四个数据集上的实验验证了 SSVD 的有效性。**

📌 总结

该论文的重要意义在于:重新审视漏洞检测中的"数据依赖问题",提出低成本高性能的新路径。表明了:通过合理利用未标注数据,可以在数据稀缺场景下释放深度学习模型的潜力。这为现实工业环境(标注困难)提供了极具价值的解决方案。

📣 欢迎留言讨论

  • 你认为半监督学习能否成为漏洞检测的主流范式?

  • 相比大模型(LLM),数据驱动方法是否仍具长期优势?

📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!

相关推荐
天涯明月19931 小时前
Ray 架构解析——以动态任务图统一 AI 计算的分布式框架
大数据·人工智能·分布式·架构·ray
FAREWELL000751 小时前
02-资源包形态-AB与Addressables
学习
无崖子01 小时前
【强化学习论文解读】Expert Behavior Prior Reinforcement Learning
人工智能·深度学习·神经网络
clorinda1 小时前
第一篇:OpenCV特征检测与SIFT特征匹配
人工智能·opencv·计算机视觉
大熊背1 小时前
ISP图像处理中大数乘法溢出处理(一)
人工智能·python·算法·溢出处理
精彩AI说1 小时前
ChatGPT回答内容总是漏重点怎么办?需求拆分、检查清单与二次补充方法
人工智能·chatgpt
小弥儿1 小时前
GitHub今日热榜 | 2026-08-23:终端编码Agent与Skills生态扎堆
学习·开源·github
Alphapeople1 小时前
3D算法推荐项目
人工智能
石头猫灯1 小时前
WordPress wp2shell漏洞断点逐过程到注入点
android·学习