SEVulDet 是一个语义增强的基于深度学习的框架,能够通过提取、保留和学习更多语义来精确识别漏洞模式。
联系邮箱:[email protected]
近年来,基于深度学习的漏洞检测框架受到更多关注,这些框架利用神经网络来识别漏洞模式。尽管已付出大量努力,但现有方法在实际应用中仍不够精确。先前的工作未能从源代码中全面捕获语义,或者采用了不合适的神经网络设计。
本文提出 SEVulDet,一个语义增强的基于深度学习的框架,通过提取、保留和学习更多语义来精确识别漏洞模式。首先,SEVulDet 采用路径敏感的代码切片方法,将充分的路径语义提取到代码片段中。其次,基于带有空间金字塔池化层的卷积神经网络,SEVulDet 能够保留在处理长度可变的代码时因丢弃或填充操作而丢失的语义。最后,我们采用多层注意力机制来增强语义学习。实验结果表明,SEVulDet 远远优于经典的静态方法,并且优于最先进的基于深度学习的解决方案,平均 F1 分数高达 94.5%。值得注意的是,SEVulDet 架构的精心设计帮助我们发现了一个现有技术未报告的漏洞。

我们将 SEVULDET 与开源分析工具 Flawfinder、粗略安全审计工具 (RATS)、商业检测工具 Checkmarx 以及基于相似性的框架 VUDDY 进行比较。我们观察到,我们的框架 SEVULDET 远远优于最先进的经典静态漏洞检测方法。

SEVULDET 优于最先进的基于深度学习的解决方案,平均 F1 分数高达 94.5%。

我们将 CVE-2016-9776 代码片段输入预训练的 SEVulDet,并可视化注意力机制最关注的十个令牌。其中多个令牌出现在第 463、465、466 和 467 行,这些正是漏洞形成的位置。