二进制漏洞检测在程序安全领域有着重要的作用,为应对大规模的漏洞检测任务,越来越多的神经网络技术被应用到跨架构漏洞检测中,这些技术显著提高了漏洞检测的准确率,但是现有方法仍然面临提取到的信息单一、不能进行跨架构漏洞检测等问...二进制漏洞检测在程序安全领域有着重要的作用,为应对大规模的漏洞检测任务,越来越多的神经网络技术被应用到跨架构漏洞检测中,这些技术显著提高了漏洞检测的准确率,但是现有方法仍然面临提取到的信息单一、不能进行跨架构漏洞检测等问题。提出了一种融合语义与属性特征的跨架构漏洞检测方法。使用二进制函数的汇编代码和属性控制流图作为输入,提取基本块中所有汇编代码的语义信息,将基本块级的语义信息与属性特征信息进行特征融合,生成139维的基本块级向量表示,以此来更全面地表示函数的语义和属性信息。使用基于卷积神经网络的孪生网络模型生成函数级的嵌入向量,以此来提取不同基本块中不同空间层次结构的特征并减少神经网络的参数量,通过计算函数级嵌入向量的距离来判断待检测的两个二进制函数是否相似。在进行跨架构漏洞检测时,只需要输入二进制文件中的函数和已知漏洞函数的汇编代码和属性控制流图即可完成漏洞检测。实验结果表明,该方法检测的准确率为95.64%,AUC(area under curve)值为0.9969,与现有方法相比,准确率可以提升0.26~7.04个百分点,AUC可以提升0.11~1.59个百分点,在真实环境的漏洞检测中表现优异。展开更多
文摘二进制漏洞检测在程序安全领域有着重要的作用,为应对大规模的漏洞检测任务,越来越多的神经网络技术被应用到跨架构漏洞检测中,这些技术显著提高了漏洞检测的准确率,但是现有方法仍然面临提取到的信息单一、不能进行跨架构漏洞检测等问题。提出了一种融合语义与属性特征的跨架构漏洞检测方法。使用二进制函数的汇编代码和属性控制流图作为输入,提取基本块中所有汇编代码的语义信息,将基本块级的语义信息与属性特征信息进行特征融合,生成139维的基本块级向量表示,以此来更全面地表示函数的语义和属性信息。使用基于卷积神经网络的孪生网络模型生成函数级的嵌入向量,以此来提取不同基本块中不同空间层次结构的特征并减少神经网络的参数量,通过计算函数级嵌入向量的距离来判断待检测的两个二进制函数是否相似。在进行跨架构漏洞检测时,只需要输入二进制文件中的函数和已知漏洞函数的汇编代码和属性控制流图即可完成漏洞检测。实验结果表明,该方法检测的准确率为95.64%,AUC(area under curve)值为0.9969,与现有方法相比,准确率可以提升0.26~7.04个百分点,AUC可以提升0.11~1.59个百分点,在真实环境的漏洞检测中表现优异。