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

一种安全漏洞的挖掘分析方法与流程

2022-11-23 12:40:09 来源:中国专利 TAG:


1.本发明涉及漏洞挖掘技术领域,尤其涉及一种安全漏洞的挖掘分析方法。


背景技术:

2.目前目前基于漏洞特征来检测漏洞的工具和研究主要有以下几种。第一类是人工的方法:由人类专家生成漏洞的模式,之后根据模式检测是否有漏洞。但由于人工生成模式的时间和资源有限,这一类的方法很难得到各类漏洞的特征,导致这些漏洞检测工具的误报率或漏报率比较高。第二类是半自动化的方法:同样需要人类专家的参与,主要是对数据属性的定义,采用机器学习方法根据属性值来甄别是否有漏洞。这类方法同样需要专家的参与,来定义漏洞的属性。上述方案都需要人工的大量参与,使得网络安全人员的工作强度较大。


技术实现要素:

3.本发明的目的在于提供一种安全漏洞的挖掘分析方法,以解决上述背景技术中提出的问题。
4.本发明是通过以下技术方案实现的:本发明第一方面提供了一种安全漏洞的挖掘分析方法,包括下列步骤:
5.采集真实网络设备的数据包以及基础信息,并基于所述真实网络设备的基础信息提取出第一逻辑函数组以及第二逻辑函数组;
6.构建与真实网络设备对应的虚拟机,并以第一逻辑函数组与第二逻辑函数组为基础构建所述虚拟机的运行基础;
7.通过机器学习算法构造畸形数据包,并将所构造的畸形数据包输入虚拟机中,根据所述虚拟机的运行日志,判断所述真实网络设备的网络协议以及软件程序中所存在的异常点,基于异常点为人工挖掘判断提供参考。
8.可选的,所述真实网络设备的基础信息包括设备编号、设备ip地址、网络协议及其报文、软件程序的源代码。
9.可选的,根据所述软件程序的源代码获得所述第一逻辑函数组,具体包括:
10.提取所述真实网络设备中的软件程序的源代码,并提取该源代码中定义和调用的所有函数,组成源代码函数集;
11.设置函数库,所述函数库中存储有多种运行函数,将所述源代码函数集中的函数名与函数库的函数名依次进行比较,如果存在相同的函数名,则将该类函数从源代码函数集中提取出来,构成第一逻辑函数组。
12.可选的,根据所述网络协议及其报文获得所述第二逻辑函数组,具体包括:
13.提取所述真实网络设备中的所有的网络协议,获取协议报文;
14.将所述协议报文按照数据高位和数据低位分为高位字节和低位字节两部分,并对每个字节中十六进制数据值转为二制数据值;
15.对所述二进制数据值进行反汇编,生成反汇编代码,提取该反汇编代码中定义和调用的所有函数,组成反汇编代码函数集;
16.将所述反汇编代码函数集中的函数名与函数库的函数名依次进行比较,如果存在相同的函数名,则将该类函数从反汇编代码函数集中提取出来,构成第二逻辑函数组。
17.可选的,通过机器学习算法构造畸形数据包,具体包括:
18.抓取真实网络设备的数据包,获取数据包所对应的协议类型;
19.基于数据包所对应的协议类型,确定数据模板;
20.对所述数据包进行去重处理,并同时获取数据包内的数据结构以及约束规则关系,将所述数据结构、约束规则关系、数据模板输入由机器学习算法所形成的第一深度学习网络中,从而输出对应不同协议类型的畸变数据包。
21.可选的,所述数据模板预先存储在模板库中,基于数据包的不同协议类型,获得不同的数据模板。
22.可选的,根据所述虚拟机的运行日志,判断所述真实网络设备的网络协议以及软件程序中所存在的漏洞,具体包括:当虚拟机运行产生中断或崩溃时,获取虚拟机在运动过程中的堆、栈空间的详细信息,并形成运行日志,选取时间t至t n区段内所形成的运行日志,对所述运行日志进行特征值提取,并将特征值输入由机器学习算法所形成的第二深度学习网络中,输出所述运行日志中所存在的异常点,将所述异常点信息形成异常点集合,通过所述异常点集合实现漏洞挖掘。
23.本发明第二方面提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任一项所述的安全漏洞的挖掘分析方法。
24.本发明第三方面提供了一种安全漏洞的挖掘分析装置,所述装置包括存储介质;及一个或者多个处理器,所述存储介质与所述处理器耦合,所述处理器被配置为执行所述存储介质中存储的程序指令;所述程序指令运行时执行权利要求1至7中任一项所述的安全漏洞的挖掘分析方法。
25.与现有技术相比,本发明达到的有益效果如下:
26.本发明提供的一种安全漏洞的挖掘分析方法,从真实网络设备中的软件程序以及网络协议中分别提取出第一逻辑函数组以及第二逻辑函数组,并以第一逻辑函数组以及第二逻辑函数组为基础构造虚拟机,然后根据所抓取的来自真实网络设备的数据包,对应生成畸形数据包,将所述畸形数据包输入所述虚拟机中,当畸形数据包使第一逻辑函数组以及第二逻辑函数组中的逻辑函数产生错误运算,其虚拟机的堆、栈空间无法满足要求,其虚拟机会中断运行甚至崩溃,此时获取虚拟机的运行日志,根据所述虚拟机的运行日志,判断所述真实网络设备的网络协议以及软件程序中所存在的异常点,网络安全人员通过异常点的分析判断确定是否存在漏洞以及漏洞的类型,综上,本发明降低了网络安全人员在进行漏洞挖掘时的工作量,提升了漏洞挖掘的效率。
附图说明
27.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的优选实施例,对于
本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
28.图1为本发明提供的一种安全漏洞的挖掘分析方法的流程图。
具体实施方式
29.为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
30.在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。
31.应当理解的是,本发明能够以不同形式实施,而不应当解释为局限于这里提出的实施例。相反地,提供这些实施例将使公开彻底和完全,并且将本发明的范围完全地传递给本领域技术人员。
32.在此使用的术语的目的仅在于描述具体实施例并且不作为本发明的限制。在此使用时,单数形式的“一”、“一个”和“所述/该”也意图包括复数形式,除非上下文清楚指出另外的方式。还应明白术语“组成”和/或“包括”,当在该说明书中使用时,确定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多其它的特征、整数、步骤、操作、元件、部件和/或组的存在或添加。在此使用时,术语“和/或”包括相关所列项目的任何及所有组合。
33.为了彻底理解本发明,将在下列的描述中提出详细的结构,以便阐释本发明提出的技术方案。本发明的可选实施例详细描述如下,然而除了这些详细描述外,本发明还可以具有其他实施方式。
34.参见图1,本发明第一方面提供了一种安全漏洞的挖掘分析方法,包括下列步骤:
35.采集真实网络设备的数据包以及基础信息,并基于所述真实网络设备的基础信息提取出第一逻辑函数组以及第二逻辑函数组;
36.构建与真实网络设备对应的虚拟机,并以第一逻辑函数组与第二逻辑函数组为基础构建所述虚拟机的运行基础;
37.通过机器学习算法构造畸形数据包,并将所构造的畸形数据包输入虚拟机中,根据所述虚拟机的运行日志,判断所述真实网络设备的网络协议以及软件程序中所存在的异常点,基于异常点为人工挖掘判断提供参考。
38.本发明所提供的一种安全漏洞的挖掘分析方法,从真实网络设备中的软件程序以及网络协议中分别提取出第一逻辑函数组以及第二逻辑函数组,并以第一逻辑函数组以及第二逻辑函数组为基础构造虚拟机,然后根据所抓取的来自真实网络设备的数据包,对应生成畸形数据包,将所述畸形数据包输入所述虚拟机中,当畸形数据包使第一逻辑函数组以及第二逻辑函数组中的逻辑函数产生错误运算,其虚拟机的堆、栈空间无法满足要求,其
虚拟机会中断运行甚至崩溃,此时获取虚拟机的运行日志,根据所述虚拟机的运行日志,判断所述真实网络设备的网络协议以及软件程序中所存在的异常点,网络安全人员通过异常点的分析判断确定是否存在漏洞以及漏洞的类型。
39.进一步的,所述真实网络设备的基础信息包括设备编号、设备ip地址、网络协议及其报文、软件程序的源代码。
40.进一步的,根据所述软件程序的源代码获得所述第一逻辑函数组,具体包括:
41.提取所述真实网络设备中的软件程序的源代码,并提取该源代码中定义和调用的所有函数,组成源代码函数集;
42.设置函数库,所述函数库中存储有多种运行函数,将所述源代码函数集中的函数名与函数库的函数名依次进行比较,如果存在相同的函数名,则将该类函数从源代码函数集中提取出来,构成第一逻辑函数组。
43.进一步的,根据所述网络协议及其报文获得所述第二逻辑函数组,具体包括:
44.提取所述真实网络设备中的所有的网络协议,获取协议报文;
45.将所述协议报文按照数据高位和数据低位分为高位字节和低位字节两部分,并对每个字节中十六进制数据值转为二制数据值;
46.对所述二进制数据值进行反汇编,生成反汇编代码,提取该反汇编代码中定义和调用的所有函数,组成反汇编代码函数集;
47.将所述反汇编代码函数集中的函数名与函数库的函数名依次进行比较,如果存在相同的函数名,则将该类函数从反汇编代码函数集中提取出来,构成第二逻辑函数组。
48.在本发明的一些实施例中,所述函数库的函数名至少包括strcpy()、sprintf()函数等。
49.进一步的,通过机器学习算法构造畸形数据包,具体包括:
50.抓取真实网络设备的数据包,获取数据包所对应的协议类型,在所述与目标设备进行交互,抓取目标设备的网络数据包时,可以使用以下任一种工具:wireshark、tcpdump、burpsuite、fiddler、scapy、libpcap。;
51.基于数据包所对应的协议类型,确定数据模板,所述数据模板预先存储在模板库中,基于数据包的不同协议类型,获得不同的数据模板。
52.使用去重算法对数据包进行去重,结合自动化分析及人工分析的方式获取数据包内的数据结构以及约束规则关系,将所述数据结构、约束规则关系、数据模板输入由机器学习算法所形成的第一深度学习网络中,从而输出对应不同协议类型的畸变数据包。
53.具体的,在步骤s3中,根据所述虚拟机的运行日志,判断所述真实网络设备的网络协议以及软件程序中所存在的漏洞,具体包括:当畸形数据包使第一逻辑函数组以及第二逻辑函数组中的逻辑函数产生错误运算,其虚拟机的堆、栈空间无法满足要求,此时虚拟机运行产生中断或崩溃,获取虚拟机在运动过程中的堆、栈空间的详细信息,并形成运行日志,选取时间t至t n区段内所形成的运行日志,对所述运行日志进行特征值提取,所述特征值为所述堆、栈空间的变化量以及变化速率,并将特征值输入由机器学习算法所形成的第二深度学习网络中,输出所述运行日志中所存在的异常点,将所述异常点信息形成异常点集合,网络安全人员通过对所述异常点集合的分析实现漏洞挖掘与判断。
54.本发明第二方面提供了一种存储介质,所述存储介质包括存储的程序,其中,在所
述程序运行时控制所述存储介质所在设备执行上述安全漏洞的挖掘分析方法。
55.本发明第三方面提供了一种安全漏洞的挖掘分析装置,所述装置包括存储介质;及一个或者多个处理器,所述存储介质与所述处理器耦合,所述处理器被配置为执行所述存储介质中存储的程序指令;所述程序指令运行时执行上述安全漏洞的挖掘分析方法。
56.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
再多了解一些

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

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

相关文献