一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于动态污点分析与关联属性图匹配的漏洞智能挖掘方法与流程

2022-11-30 22:01:46 来源:中国专利 TAG:


1.本发明涉及漏洞挖掘技术领域,具体涉及基于动态污点分析与关联属性图匹配的漏洞智能挖掘方法。


背景技术:

2.近年来,互联网络发展越来越快,越来越广泛,据中国互联网络信息中心(cnnic)统计,截至2022年6月,国内网民规模为10.51亿,互联网普及率达到74.4%。高速的增长和巨大的规模促进了社会的安稳,提供了极大的便利,但与此同时网络的安全也愈加受到关注。越来越的攻击行为瞄准了web应用以及网络设备,但目前缺少高效的方法对网络上的漏洞进行智能的挖掘以避免遭受攻击。
3.对漏洞进行智能挖掘的研究,立足于网络的复杂性和物联网终端的重要性。漏洞挖掘顾名思义就是寻找漏洞,综合利用各种应用工具和技术,尽可能找出软件和系统中的潜在漏洞,在保护网络中具有重要的意义。由于网络环境复杂,使用场景庞大,由于基于动态污点分析与关联属性图匹配的漏洞智能挖掘方法的特点,使得整个漏洞挖掘系统能够更好应用于物联网终端智能化漏洞挖掘,并根据新的场景进行融合。
4.国外的安全研究者当前重点研究物联网终端漏洞挖掘,漏洞与规则是入侵检测的重要支撑素材,国外研究者们对该领域具备很高的兴趣,物联网终端的安全分析已经受到广泛关注。比如编号为cve-2021-22825的漏洞,其涉及多个版本的施耐德应用程序,外部url缺乏强化属性,盗用用户权限的攻击者只需配置一个页面连接,危机物联网设备正常运行事件,带来难以预估的影响。
5.国内的安全研究者将视物联网终端漏洞挖掘产品化,其思路主要分为两种,一种是提供了源代码的情况,主要是针对软件的源代码进行阅读,找出其中存在安全漏洞的地方,判断该漏洞属于什么类型的漏洞。还有一种是不提供源代码的情况,在这种情况下,主要是向软件提供被刻意修改过的外部数据,同时借助一些工具型软件监视被测软件在处理这些数据时会不会发生错误,然后分析这些错误,判断漏洞类型。
6.漏洞挖掘设备种类多,算法专有性强、环境复杂:除主流厂商绿盟、蓝盾、威努特、安恒外,视频前端设备产业还包含各类中小企业产品、定制产品,设备细分类别广、种类多,同时具备诸多专有算法,如基于关联属性图匹配的漏洞检测算法、漏洞挖掘样本生成技术与关联算法等,部分厂商还设计了私有算法,因此物联网终端设备的漏洞挖掘面临待处理环境复杂的问题。
7.现有的漏洞挖掘技术在现场应用中存在应用环境复杂多变、重复挖掘大量类似漏洞以及被测程序复杂且数量庞大的复杂情况,导致漏洞挖掘效率低下,而针对同类型固件系统存在大量相似漏洞的特征采用信息流特征匹配关联技术实现相似漏洞实现快速发现,针对污点型漏洞在复杂被测程序中难以发现的问题。
8.综上所述,研发基于动态污点分析与关联属性图匹配的漏洞智能挖掘方法,是漏洞挖掘技术领域中急需解决的关键问题。


技术实现要素:

9.针对现有技术所存在的上述缺点,本发明在于提供基于动态污点分析与关联属性图匹配的漏洞智能挖掘方法,本发明所提供的方法,有效改进了漏洞挖掘的响应时间,通过漏洞挖掘技术提升对物联网终端的防护能力,更加快速、高效的找出系统漏洞,对建立更安全的物联网终端系统,减少攻击次数具有重要意义。
10.为实现上述目的,本发明提供了如下技术方案:
11.本发明提供了基于动态污点分析与关联属性图匹配的漏洞智能挖掘方法,包括以下步骤:
12.(1)基于动态污点分析的信息流追踪,其过程如下:
13.污点源标记:在进行污点分析之前,将目标程序所依赖的输入数据标记为不可信的污点源数据;
14.污点传播:在污点源标记后,污点源数据会被作为源操作数参与程序的运算,进而污染运算结果,受污染的运算结果将被标记为不可信的污点数据,其污染属性被更新为“被污染”;
15.污点跟踪与检查:在程序的某个具体运行状态下,检查状态系统中的内存变量或寄存器,判断其中的数据是否被污染以及对应的污点数据;
16.(2)基于操作指令危险权重分析的测试样本数据变异,其过程如下:
17.首先确定危险权重的累加判断规则;
18.然后基于危险权重实现测试用例的生成,形成覆盖面广、穿透力强的测试用例;
19.(3)基于神经网络深度学习方法的跨平台固件相似漏洞挖掘,其过程如下:
20.提取各平台固件信息流特征;
21.基于全连接神经网络的图嵌入生成算法;
22.相似度计算。
23.本发明进一步的设置为:在步骤(1)中,在污点传播中,将污点传播模型作为状态机,来进行污点传播处理,其中状态机包含五种状态,分别为初始态、未污染、被污染、危险态和保留态。
24.本发明进一步的设置为:在步骤(1)中,污点跟踪与检查的过程如下:
25.(a)首先针对当前运行位置的指令进行分析,取该指令,判断其类型、指令功能、指令源操作数、指令目的操作数,为下一步的判断做准备;
26.(b)根据步骤(a)得到的指令功能和类型判断该指令是否存在数据写功能,若都不是,则单步前进,并回到步骤(b),否则,进入步骤(c);
27.(c)当该指令存在数据写入功能时,而且不是跳转指令,取操作数,判断其目的操作数是否存在污点数据的传播,即根据前述状态模型的定义,判断被操作数是否与污点源相关,若是,则将变量置为污染态,然后进入步骤(e),否则,则单步前进回到步骤(b);
28.(d)若该指令是跳转指令,则判断其跳转参数是否与污染数据有关,若有参数来源于污点变量,则单步前进,然后进入步骤(a),否则,等待返回,然后进入步骤(a);
29.(e)对于步骤(c)中的指令,根据攻击面定义的安全规则对指令进行判定,若是,则将被操作数关联的变量置入危险状态变量集合,同时求污点源字段,该字段关联的危险权重自增,最后单步前进,转入步骤(a)。
30.本发明进一步的设置为:在步骤(2)中,危险权重的值依赖于污染状态到危险状态的转换,该状态转换过程是有依据的,即根据当前分析的污点指令和变量是否符合安全判断规则。
31.本发明进一步的设置为:安全判断规则包括基于危险操作的判断规则和基于敏感区域的判断规则。
32.本发明进一步的设置为:在步骤(3)中,提取各平台固件信息流特征是指根据信息流追踪方法,获取在不同平台上数据传播路径,构建能够表示该数据传播路径的路径流图,将该流图作为二进制代码的向量表示。
33.本发明进一步的设置为:在步骤(3)中,基于全连接神经网络的图嵌入生成算法是指首先对表示传播路径的流图中的各个顶点通过神经网络生成对应的顶点嵌入,其次将各个顶点的嵌入向量进行加和运算,然后将运算结果输入到全连接网络中,最终输出指定维度的图嵌入向量,生成图嵌入的全连接网络使用tanh激活函数。
34.本发明进一步的设置为:在步骤(3)中,相似度计算是指根向量余弦距离,定义一个偏差值,认为在该偏差值范围内的一对表示传播路径的流图是相似的,即认为该不同平台上的两个固件存在类型相同的漏洞。
35.有益效果
36.采用本发明提供的技术方案,与已知的公有技术相比,具有如下有益效果:
37.本发明所提供的方法,将动态污点分析与关联属性图匹配充分结合,解决了漏洞挖掘时程序路径数量随代码复杂度提高呈几何级数数量增长的难题,有效改进了漏洞挖掘的响应时间,通过漏洞挖掘技术提升对物联网终端的防护能力,更加快速、高效的找出系统漏洞,对建立更安全的物联网终端系统,减少攻击次数具有重要意义。
附图说明
38.图1为本发明基于动态污点分析与关联属性图匹配的漏洞智能挖掘方法的流程图;
39.图2为本发明污点传播中5种状态的演变关系图;
40.图3为本发明污点标记与跟踪的流程图;
41.图4为本发明敏感字段确定的流程图;
42.图5为本发明跨平台固件相似漏洞挖掘的流程图。
具体实施方式
43.本发明在程序运行过程中,对流入程序的污点数据进行跟踪,记录数据流在程序中的传播路径,检测污点数据并记录污点间的依赖关系。物联网终端存在设备种类多、设备流量大、处理情况复杂等问题,这些问题也体现了动态污点分析的物联网终端固件智能漏洞挖掘与传统漏洞挖掘的区别,动态污点分析的引入将这些问题的复杂性转换成了算法所利用的条件,通过对这些特点的分析与处理,提出新的物联网终端固件智能漏洞挖掘技术。
44.通过对外部输入数据做污点标签并在关键危险操作指令处插桩,从而检测污点标签获取数据传播路径,在此基础上根据危险操作指令对应安全风险的严重性生成测试用例敏感字段变异优先权重,对漏洞进行引导式挖掘,最后通过神经网络学习的方法和关联规
则实现跨平台固件漏洞的挖掘。以此,物联网终端固件漏洞挖掘方法具备了从大量数据中快速挖掘漏洞,从而可以更加及时处理漏洞,增加了漏洞挖掘的稳定性、威胁检出率,降低了误报率。
45.下面结合实施例对本发明作进一步的描述。
46.实施例:
47.如图1-5所示,本发明提供了基于动态污点分析与关联属性图匹配的漏洞智能挖掘方法,包括以下步骤:
48.(1)基于动态污点分析的信息流追踪:
49.本发明所提供的动态污点分析是一种基于信息流的动态分析方法,即在程序运行过程中,对流入程序的污点数据进行跟踪,记录数据流在程序中的传播路径,检测污点数据并记录污点间的依赖关系。动态污点分析主要分为3个步骤:污点源标记、污点传播和污点检查。
50.污点源标记:在进行污点分析之前,将目标程序所依赖的输入数据标记为不可信的污点源数据。
51.需要说明的是,污点源集合是指程序外部输入的数据集合,用i表示。可以根据研究需求,将污点源集合划分为更小粒度的组成单位,即i={i0,i1,

,in}。其中n为i的基数,表示污点源集合被划分为n个污点数据单元。im表示第m个污点数据单元,im的长度表示污点源的划分粒度。而污点标记则是指污点源在程序运行时流经内存单元或寄存器时,标记污染情况的过程。
52.污点传播:在污点源标记后,污点源数据会被作为源操作数参与程序的运算,进而污染运算结果,受污染的运算结果将被标记为不可信的污点数据,其污染属性被更新为“被污染”。
53.其中,在污点传播中,将污点传播模型作为状态机,来进行污点传播处理,其中状态机包含五种状态,分别为初始态、未污染、被污染、危险态和保留态。其中被污染和危险状态均是非安全状态,5种状态的演变关系如图2所示,需要说明的是,程序还未运行时,所有相关变量均未经历读写指令操作,为初始态;污染状态即变量被写相关的指令写入了污点源集合中的元素或污染变量集合中的元素数据;所谓危险态指污点数据的传播动作,即当前的写相关指令处于攻击面对象范围之中,那么变量的状态则为危险态;保留态为状态覆盖而准备;安全状态则是为变量写入非污染数据而准备。
54.污点跟踪与检查:在程序的某个具体运行状态下,检查状态系统中的内存变量或寄存器,判断其中的数据是否被污染以及对应的污点数据。
55.污点跟踪算法是一个循环,分析每一条目标指令,对其是否为污点源进行判断。
56.污点跟踪与检查的过程如下:
57.(a)首先针对当前运行位置的指令进行分析,取该指令,判断其类型、指令功能、指令源操作数、指令目的操作数,为下一步的判断做准备;
58.(b)根据步骤(a)得到的指令功能和类型判断该指令是否存在数据写功能,若都不是,则单步前进,并回到步骤(b),否则,进入步骤(c);
59.(c)当该指令存在数据写入功能时,而且不是跳转指令,取操作数,判断其目的操作数是否存在污点数据的传播,即根据前述状态模型的定义,判断被操作数是否与污点源
相关,若是,则将变量置为污染态,然后进入步骤(e),否则,则单步前进回到步骤(b);
60.(d)若该指令是跳转指令,则判断其跳转参数是否与污染数据有关,若有参数来源于污点变量,则单步前进,然后进入步骤(a),否则,等待返回,然后进入步骤(a);
61.(e)对于步骤(c)中的指令,根据攻击面定义的安全规则对指令进行判定,若是,则将被操作数关联的变量置入危险状态变量集合,同时求污点源字段,该字段关联的危险权重自增,最后单步前进,转入步骤(a)。
62.(2)基于操作指令危险权重分析的测试样本数据变异,其过程如下:
63.首先确定危险权重的累加判断规则;
64.然后基于危险权重实现测试用例的生成,形成覆盖面广、穿透力强的测试用例。
65.其中,危险权重的值依赖于污染状态到危险状态的转换,该状态转换过程是有依据的,即根据当前分析的污点指令和变量是否符合安全判断规则。
66.安全判断规则包括基于危险操作的判断规则和基于敏感区域的判断规则。
67.需要说明的是,基于危险操作的判断规则:c语言中的危险库函数:在c语言的库函数中,存在着较多字符串处理、命令执行等类型的函数,例如,字符串拷贝strcpy等函数。很多不安全的代码由这些函数所引起。因此,在污点分析过程中,如果传播过程涉及到了这些危险库函数,那么则可以认为被分析的变量符合危险判断规则;代码中的可疑函数:嵌入式设备固件中存在的一大类高危漏洞是后门漏洞。考虑恶意用户利用后门漏洞的一般规律,通常为隐蔽信道或者权限绕过,如果传播过程涉及到了可疑的系统调用,那么则可以认为被分析的变量符合危险判断规则。危险指令序列:考虑到编译器的因素,部分危险操作并非直接经过库函数,而是会由编译器内联地展开成指令序列。因此也有可能存在危险。
68.基于敏感区域的判断规则:命令进出入路径:无论合法还是非法,请求均会通过该路径进入不同的处理分支,如果污点传播发生在该路径上,则符合规则。身份认证和授权:该部分的代码是设备安全机制的核心,若其存在问题,威胁毋庸置疑。操作重要资源代码段:重要资源包括数据库、配置文件等。这些资源通常与设备管理息息相关,如果存在污点传播动作,则认为符合规则。
69.根据安全判断规则,如果污点传播发生满足2类条件中的1类,则可以认为污点变量处于危险状态,污点源危险权重自增。
70.危险权重越大意味着更高的漏洞发现概率,而更高的概率则意味着需要更多的测试用例进行触发,污点分析中得出的污点源字段危险权重与根据该字段生成的测试用例数量呈正比。因此在基于操作指令危险权重分析的测试样本变异算法中,优选危险权重值高的敏感字段进行变异生成测试用例。
71.(3)基于神经网络深度学习方法的跨平台固件相似漏洞挖掘,其过程如下:
72.提取各平台固件信息流特征;
73.基于全连接神经网络的图嵌入生成算法;
74.相似度计算。
75.其中,提取各平台固件信息流特征是指根据信息流追踪方法,获取在不同平台上数据传播路径,构建能够表示该数据传播路径的路径流图,将该流图作为二进制代码的向量表示。
76.基于全连接神经网络的图嵌入生成算法是指首先对表示传播路径的流图中的各
个顶点通过神经网络生成对应的顶点嵌入,其次将各个顶点的嵌入向量进行加和运算,然后将运算结果输入到全连接网络中,最终输出指定维度的图嵌入向量,生成图嵌入的全连接网络使用tanh激活函数。整个孪生图嵌入神经网络中的权重矩阵进行端到端地训练,并为每一对待检测的表示传播路径的流图对生成对应的图嵌入向量,然后计算两者的向量余弦距离,通过adam优化算法来最小化损失函数。顶点嵌入与顶点嵌入聚合成图嵌入过程中全连接层所对应的权重矩阵在反向传播过程中进行更新。
77.相似度计算是指根向量余弦距离,定义一个偏差值,认为在该偏差值范围内的一对表示传播路径的流图是相似的,即认为该不同平台上的两个固件存在类型相同的漏洞。
78.以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不会使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献