摘要
随着软件安全性需求不断增长,大量的研究工作将深度学习应用于漏洞检测领域,目前存在多种源代码漏洞检测方法.现阶段在检测单个文件中由于函数调用导致的漏洞方面有较好的效果,但由于复杂函数调用关系可能涉及到多个文件,针对多文件的漏洞检测是当前的检测难点之一.因此,该文在源代码程序依赖图的基础上提出了一个新的图表征PDGcross,从一个文件入口合并其他被调用的文件,生成一个图表征即 PDGcross.再运用 Node2Vec 图嵌入算法将PDGcross进一步处理为特征矩阵,利用长短时记忆神经网络训练出漏洞分类模型,实现了一种基于跨文件程序依赖图表征和深度学习的源代码检测方法.在实验中,针对跨文件间的函数调用产生的漏洞,Fortify和PDG表征的检测效率很低,而提出的基于PDGcross表征的检测方法则明显优于该两类方法.
基金项目
国家自然科学基金(61702383)
武汉市重点研发计划(2022012202015070)