Page 227 - 《软件学报》2025年第7期
P. 227

3148                                                       软件学报  2025  年第  36  卷第  7  期


                    (4) 漏洞检测评估指标的选择. 本文选择软件漏洞检测研究中常用的                    F-measure、Precision、Recall 和  FNR  作
                 为评估指标, 这些指标已基本满足了常见的模型性能对比需要. 但选择其他不同的指标可能会产生不同的结果.

                                          FFmpeg            Qemu            Chrome+Debian
                            70.0
                                           67.4               66.4
                                                                              65.1
                                   65.3        65.3                         64.2     62.8
                                      63.4  64.1   63.3                61.0      63.4
                                62.7                      62.2    59.3
                            60.0          58.9 59.8  59.5  60.9      61.3  56.8    57.1  59.5  57.6
                            F-measure (%)  55.6  56.7  57.5  57.8  56.0  56.6  57.9  56.8 57.1 57.5  56.6  56.4  56.1 55.9



                            50.0
                                          48.9         48.1 48.5
                                             47.2  47.6  47.0
                                                             46.6
                                   45.9 45.6                               45.9
                                44.6                                 44.8      44.7 44.5    44.7
                                                                 44.1
                                                                        43.3         43.3 43.5
                            40.0
                                 1            5            9            13           17
                                                             参数 K
                                            K  值下, CSFF-VD  在  3  个数据集上的  F-measure 值表现
                                   图 5 不同

                 7   总 结
                    本文分析了现有基于深度学习的软件漏洞检测方法及其忽略了不同代码实例之间可能存在结构相似性关联
                 的问题, 并提出了一种基于函数间结构特征关联的软件漏洞检测方法                      CSFF-VD. 方法通过构建函数的代码属性图,
                 并将其输入残差门控图神经网络中提取独立的结构特征. 在此基础上, 计算函数间的相似度, 形成函数间的有向
                 边, 从而建立函数间的结构关联. 最终, 通过注意力图神经网络减少关联噪声, 提取关联特征并构建漏洞检测模型.
                 为验证   CSFF-VD  的有效性, 本文在    3  个广泛使用的软件漏洞数据集上进行了评估. 实验结果表明, 与                  5  种最先进
                 的漏洞检测方法相比, CSFF-VD       在  F-measure、Precision 、Recall 和  FNR  这  4  个指标上均表现出更优异的性能.
                 此外, 通过将函数间关联特征提取的方法应用于函数独立结构特征的方法中, 漏洞检测的性能在实验数据集上均
                 得到了提升, 表明了集成函数间关联挖掘方法的有效性. 本研究的数据和源代码可在                             GitHub  上获取, 网址为
                 https://github.com/insoft-lab/CSFF-VD.
                    未来的工作将着重于改进函数独立结构特征的表示方式和相似度计算方法, 以更好地表达函数语义结构, 以
                 及提高构建函数间关联的效果. 我们也计划在实际的企业级软件项目中测试该方法的有效性, 以推动                                CSFF-VD  在
                 工业界的应用.

                 References:
                  [1]  Amoroso E. Recent progress in software security. IEEE Software, 2018, 35(2): 11–13. [doi: 10.1109/MS.2018.1661316]
                  [2]  Moran K, Linares-Vásquez M, Bernal-Cárdenas C, Poshyvanyk D. Fusion: A tool for facilitating and augmenting Android bug reporting.
                     In: Proc. of the 38th Int’l Conf. on Software Engineering Companion. Austin: ACM, 2016. 609–612. [doi: 10.1145/2889160.2889177]
                  [3]  Zhang B, Gao Y, Wu JY, Wang N, Wang Q, Ren JD. Approach to predict software vulnerability based on multiple-level N-gram feature
                     extraction  and  heterogeneous  ensemble  learning.  Int’l  Journal  of  Software  Engineering  and  Knowledge  Engineering,  2022,  32(10):
                     1559–1582. [doi: 10.1142/S0218194022500620]
                  [4]  Zhao QC, Huang C, Dai LH. VULDEFF: Vulnerability detection method based on function fingerprints and code differences. Knowledge-
                     based Systems, 2023, 260: 110139. [doi: 10.1016/j.knosys.2022.110139]
                  [5]  Zaharia S, Rebedea T, Trausan-Matu S. Machine learning-based security pattern recognition techniques for code developers. Applied
                     Sciences, 2022, 12(23): 12463. [doi: 10.3390/app122312463]
   222   223   224   225   226   227   228   229   230   231   232