面向程序代码的漏洞特征自动生成研究
作者单位:华中科技大学
学位级别:硕士
导师姓名:邹德清
授予年度:2020年
学科分类:12[管理学] 1201[管理学-管理科学与工程(可授管理学、工学学位)] 081104[工学-模式识别与智能系统] 08[工学] 0835[工学-软件工程] 0811[工学-控制科学与工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
摘 要:软件漏洞检测是富有挑战性的问题,最近的研究趋势之一是利用深度学习在源代码上检测软件漏洞。由于深度学习的黑盒特性,人类无法理解深度学习模型为何将代码片段判定为有漏洞或无漏洞,因此探明深度学习的漏洞检测原理并实现漏洞特征的自动生成具有重要意义。为解决面向程序代码的漏洞特征自动生成问题,提出基于深度学习的漏洞检测模型解释方法。该方法在模型决策边界高度非线性且输入的样本特征之间并非相互独立的场景下,以选定样本及其相似样本为导向,理解检测模型的局部决策行为。具体而言,通过启发式算法对选定样本施加扰动,识别样本内对于模型判定起关键作用的重要特征,并将重要特征按照重要程度进行排序;基于重要特征的性质对解释方法进行保真度评估;以重要特征为切入点,利用回归模型提取出可理解的有无漏洞判别规则,实现对深度学习预测结果的理解。解释方法分别针对保真度评估和提取漏洞判别规则展开实验。为评估模型解释方法的保真度,在前人提出的基于深度学习的软件漏洞检测模型上与现有其他模型解释方法进行评估比较。在模型影响保真度评估中,本解释方法的保真效果依照漏洞可能性变化指标可以达到其他现有方法的1.3倍以上,明显优于现有方法;在端到端影响保真度评估中,解释方法依照分类一致比例指标比现有方法的平均分类一致比例低24%,优于现有方法;在提取漏洞判别规则的实验中,根据规则的实际意义,能够帮助人类专家判断样本是否被漏洞检测模型漏报或误报,部分规则能够匹配商业漏洞检测工具中领域专家人为制定的漏洞判别规则。