本发明涉及网络安全,尤其涉及一种面向linux固件镜像的污点型漏洞分析方法和装置。
背景技术:
1、emtaint工具是目前主流的污点分析工具之一,是一种针对设备固件的静态分析工具,具有极强的漏洞挖掘能力,且相较于karonte、satc等其他污点分析工具,由于它的别名分析能力和间接调用解析能力,它的污点型漏洞挖掘效率更高,误报率更低。但是仍然有以下两个方面有待改进:(1)关于固件预处理过程,反汇编工具更新迭代,emtaint的固件预处理模块是基于idapro 7.0之前的版本,由于ida pro的更新,该模块的相关脚本已经不能很好的适配新版本的反汇编工具的api接口,导致其无法搭载在更新版本的平台,且其也不能自动判断固件内文件的架构类型;(2)关于污点分析过程,emtaint的间接调用解析模块在一些特定情况下会出现“用力过猛”现象,错误地恢复了一些不存在的间接调用,导致路径不可行,有的位置也无法正确判断污点是否被消毒,从而导致高误报率。
技术实现思路
1、针对上述问题,本发明提供一种可以实现固件预处理流程自动化处理,且污点分析流程更准确更高效的污点型漏洞分析方法和装置。
2、第一方面,本发明提供一种面向linux固件镜像的污点型漏洞分析方法,包括固件预处理的步骤、别名分析的步骤、间接调用分析的步骤和漏洞发现的步骤,所述固件预处理的步骤具体包括:
3、构建量子神经网络,利用已知文件架构类型的网络请求处理程序对所述量子神经网络进行训练,得到文件架构识别模型;
4、将待分析固件对应的网络请求处理程序输入至所述文件架构识别模型,得到所述待分析固件的文件架构类型,进而采用与所述文件架构类型匹配的预处理流程对所述网络请求处理程序进行预处理以获取控制流图和调用关系图。
5、进一步地,所述量子神经网络包括特征映射模块、参数化量子电路、量子电路测量模块和参数优化模块;
6、所述特征映射模块,用于将二进制文件映射到量子希尔伯特空间,具体包括:将二进制文件对应的向量中的每个特征分别通过泡利旋转矩阵编码到量子比特的相位角上;
7、所述参数化量子电路,用于采用具有可学习参数的量子门来实现文件构架类型预测;
8、所述量子电路测量模块,用于对参数化量子电路的输出进行读取和转化;
9、所述参数优化模块,用于采用梯度下降法对参数化量子电路的参数进行优化。
10、进一步地,所述参数化量子电路包括两个x门、一个cnot门、一个rx门、一个ry门、一个rz门和一个cz门;
11、对应地,所述参数化量子电路的文件构架类型预测过程具体包括:
12、针对输入的第0比特,直接采用x门进行处理,得到第0比特输出;
13、针对输入的第1比特,依次采用x门、受控于第2比特的cnot门和ry门进行处理,得到第1比特输出;
14、针对输入的第2比特,直接采用rx门进行处理,得到第2比特输出;
15、针对输入的第3比特,依次采用rz门和受控于经过rx门处理后的第2比特的cz门进行处理,得到第3比特输出;
16、针对输入的第4比特,直接作为第4比特输出。
17、进一步地,在漏洞发现的步骤之后,还包括:
18、二次审计的步骤:针对在漏洞发现的步骤中输出的每个污点型漏洞进行二次审计,判断所述污点型漏洞是否已经被白名单脱毒处理。
19、进一步地,所述二次审计的步骤具体包括:
20、从在漏洞发现的步骤中输出的所有污点型漏洞中提取出命令执行类型的污点汇聚点;
21、针对所有命令执行类型的污点汇聚点的地址,找到并提取其污点所影响的变量;
22、针对所有命令执行类型的污点汇聚点的地址进行反汇编,提取其中的污点承载的变量,并进行别名分析以获取其所有别名;
23、将污点所影响的变量和污点承载的变量均作为污点变量,对所述污点变量进行数据流分析,回溯其控制流程图,对其每个途径的代码块均做正则表达式匹配;
24、对所有命令执行类型的污点汇聚点的地址进行逐一遍历,对每个地址都进行控制流程图的匹配,设计正则表达式规则,对途径的每个代码均进行匹配;
25、进行匹配结果判定,如果匹配到白名单,则认为所述命令执行类型的污点汇聚点已经过白名单脱毒处理,将其从漏洞发现的步骤的输出结果中删除。
26、进一步地,在所述二次审计的步骤中,还包括:
27、若污点变量的控制流中存在白名单,则输出其白名单位置,以便根据所述白名单进行二次审计。
28、第二方面,本发明提供一种面向linux固件镜像的污点型漏洞分析装置,包括:固件预处理模块、别名分析模块、间接调用解析模块和漏洞发现模块;其中,所述固件预处理模块,用于构建量子神经网络,利用已知文件架构类型的网络请求处理程序对所述量子神经网络进行训练,得到文件架构识别模型;将待分析固件对应的网络请求处理程序输入至所述文件架构识别模型,得到所述待分析固件的文件架构类型,进而采用与所述文件架构类型匹配的预处理流程对所述网络请求处理程序进行预处理以获取控制流图和调用关系图。
29、进一步地,所述装置还包括:二次审计模块,用于针对在漏洞发现的步骤中输出的每个污点型漏洞进行二次审计,判断所述污点型漏洞是否已经被白名单脱毒处理。
30、第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
31、第四方面,本发明提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。
32、本发明的有益效果:
33、(1)通过采用量子神经网络模型对待分析固件的网络请求处理程序的文件架构类型进行自动识别,使得污点型漏洞分析方法更加自动化和智能化。
34、(2)本发明通过对现有的emtaint污点分析工具的固件预处理模块进行改进,使得设备固件的污点分析流程重新具备主流的反汇编工具的可用性。
35、(3)相较于emtaint等主流的污点分析工具,本发明新增二次审计模块,对漏洞发现模块输出的原始结果进行二次审计,将其中已经被白名单脱毒处理过的污点从原始结果中删除,使得污点分析误报率降低5%以上。
1.面向linux固件镜像的污点型漏洞分析方法,包括固件预处理的步骤、别名分析的步骤、间接调用分析的步骤和漏洞发现的步骤,其特征在于,所述固件预处理的步骤具体包括:
2.根据权利要求1所述的面向linux固件镜像的污点型漏洞分析方法,其特征在于,所述量子神经网络包括特征映射模块、参数化量子电路、量子电路测量模块和参数优化模块;
3.根据权利要求2所述的面向linux固件镜像的污点型漏洞分析方法,其特征在于,所述参数化量子电路包括两个x门、一个cnot门、一个rx门、一个ry门、一个rz门和一个cz门;
4.根据权利要求1所述的面向linux固件镜像的污点型漏洞分析方法,其特征在于,在漏洞发现的步骤之后,还包括:
5.根据权利要求4所述的面向linux固件镜像的污点型漏洞分析方法,其特征在于,所述二次审计的步骤具体包括:
6.根据权利要求5所述的面向linux固件镜像的污点型漏洞分析方法,其特征在于,在所述二次审计的步骤中,还包括:
7.面向linux固件镜像的污点型漏洞分析装置,包括:固件预处理模块、别名分析模块、间接调用解析模块和漏洞发现模块,其特征在于,
8.根据权利要求7所述的面向linux固件镜像的污点型漏洞分析装置,其特征在于,还包括:
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述的方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一所述的方法。