深度学习在软件漏洞检测上已有不少成功尝试,但现实问题依然明显:漏洞样本少、类别极度不平衡,导致模型易漏报、误报。MPDA(multiperspective data augmentation)提出通过三种互补的增强策略(oversampling、GAN、fuzzy sampling)与两套策略选择算法(OSS / FSS),按漏洞类型与下游模型自动选择最优增强组合,从而系统性地提高训练数据的质量与多样性。

论文:MPDA: a data augmentation approach to improve deep learning for software vulnerability detection
作者:Feiqiao Mao, Yingxiang Yuan, Xingyang Du, Li Gao, Zhihua Du
单位:深圳大学软件与计算机学院
期刊:Empirical Software Engineering (2025)

开源代码:https://github.com/Yfeix/MPDA.

01

方法简介

MPDA 的流程分三步:

  1. →方法级代码预处理(基于 Word2Vec 将方法/行转换成向量)

  2. 多视角增强(OSS:智能选过采样、GAN:生成正/负样本、FSS:模糊采样策略选择)

  3. 用增强后的训练集训练下游模型(LSTM/GRU/BiLSTM/BiGRU/ Transformer)。

关键在于两个自动选择算法:OSS(为每类漏洞挑选最合适的oversampling)与 FSS(为每类漏洞 & 下游模型挑选最合适的 fuzzy 策略),从而实现“因类制宜”的增强。

图片

图:MPDA 三大组件与策略选择流程

小结:MPDA不是把所有增强堆在一起,而是通过策略选择把最合适的增强“配给”每一类漏洞与模型,从而既增加数量又保留可学特征。

02

关键机制

机制

核心实现

目标与作用

OSS(Oversampling Strategy Selection)

候选:SMOTE / Borderline-SMOTE / ADASYN。基于漏洞类型的嵌入分布自动选择最合适方法。

针对不同分布选择最佳过采样,减少噪声/过拟合风险。

GAN-based 生成

正/负样本分别训练 pGAN / nGAN,生成语义上更真实的合成样本。

扩充稀缺类别样本数量并提升多样性,缓解样本不足。

FSS(Fuzzy Sampling Strategy Selection)

设计四种 fuzzy 策略,按漏洞类型与下游模型复杂度自动匹配(basic vs variant NN)。

通过受控扰动提升泛化能力并在不同模型间找到最优增强组合。

策略组合(MPDA)

OSS + GAN + FSS 的协同组合(OSS+GAN+FSS 被定义为 MPDA 的默认组合)。

综合三类增强的优点,对多数模型在 F1 / Recall 上带来显著提升。

小结:三类增强互补、两套策略自动化选择,是 MPDA 在多模型、多漏洞类型上稳定提升的核心设计理念。

03

实验结果

主要实验基准为 Juliet 1.2 Java Test Suite(选取 29 类常用 CWE 做主测试)。论文还评估了51类小样本子集以验证对小样本场景的效果。训练/验证/测试划分采用 8:1:1。关键比较结果如下:

表12 应用不同过采样方法改进LSTM和GRU的结果

方法

LSTM

A

P

R

F1

Baseline

80.7

66.8

46.5

50.7

SMOTE

79.5

65.1

78.9

67.6

GAN

81.2

75.8

48.4

52.9

Fuzzy 

80.2

63.9

51.7

53.3

MPDA 91.2 80.9 96.7 87.4

方法

GRU

A

P

R

F1

Baseline

80.2

69.3

39.5

46.0

SMOTE

76.7

66.2

70.0

61.2

GAN

80.4

69.0

48.2

49.2

Fuzzy 

78.0

65.8

42.3

46.4

MPDA 85.7 69.1 79.9 72.3

表19 利用FSS优化数据增强以改进BiLSTM和BiGRU的结果

方法

BiLSTM

A

P

R

F1

SMOTE+GAN+Fuzzy

91.8

81.9

94.5

86.3

SMOTE+GAN+FSS

92.9

84.3

95.3

88.5

OSS+GAN+Fuzzy

92.3

82.7

95.7

86.8

MPDA 95.5 88.1 98.9 93.1

方法

BiGRU

A

P

R

F1

SMOTE+GAN+Fuzzy

92.2

83.1

95.1

86.2

SMOTE+GAN+FSS

92.2

82.8

95.5

87.7

OSS+GAN+Fuzzy

93.5

84.5

96.0

88.8

MPDA 95.4 88.7 98.2 93.2

小结:MPDA 在各类模型上均显著提升 Recall 与 F1 ——  对简单模型(LSTM/GRU)提升尤为明显;对较强模型(BiLSTM/BiGRU)仍能带来10%+的F1增益,Transformer 的  F1 也有小幅正向提升(≈3.9%)。统计检验显示多数指标差异显著。

📌 总结

MPDA 通过“三管齐下”的增强策略与“按类选择”的调度算法,有效解决了漏洞数据的稀缺与不平衡问题。在 Juliet Java Suite  的大量实验证明:MPDA 能在多数深度学习模型上把 Recall 与 F1 明显拉升(在多数情形下 F1 提升  ≥12%,简单模型的相对增益更高),同时对小样本类也能带来可观改善。

📣 欢迎留言讨论

  • 你认为在漏洞检测中,数据增强是否比模型架构改进更能短期内提高可用性?

  • 在工业落地时,MPDA 这种自动策略选择的成本是否值得(计算/人工/验证)?

📌 点赞 · 收藏 · 分享 —— 你的支持,是我们持续解读前沿论文的最大动力。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐