基于系统状态追踪图引导的网络协议漏洞检测方法及系统

文档序号:34117669发布日期:2023-05-11 01:23阅读:45来源:国知局
基于系统状态追踪图引导的网络协议漏洞检测方法及系统

本发明涉及计算机程序漏洞检测,尤其涉及一种基于系统状态追踪图引导的网络协议漏洞检测方法及系统。


背景技术:

1、在软件安全领域中,模糊测试技术是一种重要且有效的软件安全保障机制,其通过提前挖掘目标软件中潜在的异常或漏洞,并将其报告给软件开发人员以及时进行补救,以此确保软件的安全。由于所挖掘漏洞的真实可触发性和可复现性,模糊测试目前已成为软件安全保障过程中不可或缺的环节。模糊测试是一种自动化的程序测试技术,它通过不断的产生测试用例(测试用例又常称为“种子”,对于协议程序,协议包就是种子),将这些测试用例作为输入运行目标程序并监视程序异常来挖掘程序漏洞。目前,有许多模糊测试工具可于软件的缺陷检测,如american fuzzy lop(简称为 afl),defensics,peach等。从它们产生新测试用例的方式而言,它们可以被分为两类:基于变异的和基于生成的。基于变异的模糊测试工具通过对现有种子的变异(字节或比特位上的随机修改)来产生新的测试输入,如afl;相反,基于生成的模糊测试工具需要用户提供输入文件的格式说明,它们通过利用这份格式说明来生成新的种子。

2、近年来,诸如afl的基于变异的模糊测试工具凭借其易用性和高效性广受用户欢迎。但是,由于它们缺少目标程序的相关信息而进行随机变异,因此,对于协议程序这种使用高度结构化的协议包作为输入的程序,这些模糊测试器产生的种子大多数是无效的,这使得它们在测试过程中难以深入程序内部并实现较高的代码覆盖率。为了解决这一问题,最近有一些研究引入了诸如符号执行技术等代码分析技术来优化模糊测试工具,包括driller,klee,safl,mowf等。符号执行技术能够为模糊测试工具提供目标程序的语义信息,以此来提升测试效率。符号执行是一种静态代码分析技术,在集成进模糊测试工具时,符号执行能够收集某条程序执行路径上所有的限制条件,并通过对这些限制条件进行求解来产生新种子,以此触发该程序路径。因此,模糊测试工具可以利用这项技术帮助触发所期望的程序状态(如帮助覆盖那些未被覆盖到的代码段),进而,它们更有可能触发隐藏在程序深处的漏洞。这种优化同样可以应用于协议程序,由于协议包通常具有特定的格式规范,因此利用符号执行技术可以帮助模糊测试器尽可能多的产生合法的协议包。这项技术对于产生一些格式简单的协议包十分有效,但是对于那些具有复杂格式的协议包,其可扩展性无法保证,因为目前符号执行技术仍存在路径爆炸以及复杂限制条件难以求解等技术难题,并且该技术的实施通常需要严格的执行环境支持。因此,对于像在工业环境中使用的工控协议这样的复杂程序,符号执行技术的应用仍是一个挑战。基于变异的模糊测试器将协议包视为字节向量,因此对协议包的变异操作主要集中在比特/字节上。为了更好的对以结构化文件为输入的程序进行模糊测试,基于生成的模糊测试器在文件结构层面上工作,它们基于用户给定的配置信息(例如peach工具的peach pit),实施一系列的测试操作。其中,配置信息中包含两大部分重要信息:(1)数据模型,其主要描述了协议包的结构信息;(2)状态模型,主要描述了如何实施测试操作,例如发送协议包的顺序、根据收到协议包的情况制定回包规则等。这类模糊测试器按照状态模型描述的规则生成对应格式的协议包,并根据状态模型实施测试操作。基于生成的模糊测试工具由于拥有用户提供的协议包格式规范,因此能够生成合法的种子,这些工具更加适用于协议测试。但通常而言,这些模糊测试工具是黑盒的,它们仅不断的产生协议包并将其发送给待测协议服务程序而不关注于程序的运行状况如代码覆盖率情况等,在这种情况下,测试是完全随机且因此低效的。


技术实现思路

1、本发明提供一种基于系统状态追踪图引导的网络协议漏洞检测方法及系统,用以解决现有网络协议漏洞难以快速全面发现的问题,能够根据待检测系统状态生成不同的变异操作序列,提高生成协议数据包有效性的概率,从而更有效地检测网络协议漏洞。

2、本发明提供一种基于系统状态追踪图引导的网络协议漏洞检测方法,包括:

3、获取待检测系统客户端与服务端之间交流通信的网络协议流量;

4、基于所述网络协议流量生成待检测系统状态轨迹,根据待检测系统状态轨迹构造待检测系统状态追踪图;

5、基于所述待检测系统状态追踪图通过预设的引导序列生成策略,生成变异操作序列,产生变异数据包;

6、通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试,发现网络协议漏洞。

7、根据本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法,所述基于所述网络协议流量生成待检测系统状态轨迹,根据待检测系统状态轨迹构造待检测系统状态追踪图,具体包括:

8、对待检测系统客户端与服务端之间交流通信的网络协议流量进行分析处理;

9、从所述网络协议流量中分析提取出关键信息,构建状态信息轨迹;

10、根据所述状态信息轨迹构建待检测系统状态追踪图。

11、根据本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法,根据所述状态信息轨迹构建待检测系统状态追踪图,具体包括:

12、将所述状态信息轨迹映射为系统状态追踪图上的一条路径;

13、对不同的路径进行过滤合并,在交互过程中构建一张系统状态追踪图。

14、根据本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法,基于所述待检测系统状态追踪图通过预设的引导序列生成策略,生成变异操作序列,产生变异数据包,具体包括:

15、在待检测系统进行网络协议交互过程中,通过所述系统状态追踪图展示系统当前所处的状态;

16、通过预设的引导序列生成策略根据系统当前状态信息启发式地对能够完成下个状态变迁的数据包进行变异操作;

17、通过所述变异操作生成变异操作序列,产生变异数据包。

18、根据本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法,通过所述变异操作生成变异操作序列,产生变异数据包,具体包括:

19、通过对系统状态追踪图的遍历,产生变异操作序列;

20、通过对所述变异操作序进程拆解得到数据包模式序列;

21、在所述数据包模式序列的指导下产生变异数据包。

22、根据本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法,通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试,发现网络协议漏洞,具体包括:

23、通过对待测系统的网络协议流量进行处理和分析,能够不侵入待测系统内部,构建系统状态追踪图来引导模糊测试过程中网络数据包的变异操作;

24、通过变异操作产生符合协议状态逻辑的高质量数据包,完成模糊测试,发现网络协议漏洞。

25、本发明还提供一种基于系统状态追踪图引导的网络协议漏洞检测系统,所述系统包括:

26、数据获取模块,用于获取待检测系统客户端与服务端之间交流通信的网络协议流量;

27、系统状态追踪图构造模块,用于基于所述网络协议流量生成待检测系统状态轨迹,构造待检测系统状态追踪图;

28、变异数据包生成模块,用于基于所述待检测系统状态追踪图通过预设的引导序列生成策略,生成变异操作序列,产生变异数据包;

29、变异交互模块,用于通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试,发现网络协议漏洞。

30、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于系统状态追踪图引导的网络协议漏洞检测方法。

31、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于系统状态追踪图引导的网络协议漏洞检测方法。

32、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于系统状态追踪图引导的网络协议漏洞检测方法。

33、本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法及系统,通过获取待检测系统客户端与服务端之间交流通信的网络协议流量,构造待检测系统状态追踪图,基于系统状态追踪图引导产生变异数据包,触发待测系统更多的状态,达到更为深入的系统状态;能够在不侵入待测系统内部的情况下,通过构建系统状态追踪图,指导模糊测试过程中的网络数据包变异操作,生成符合协议状态逻辑的高质量数据包。通过这种方式,可以提高模糊测试的效率和全面性,从而更有效地发现网络协议漏洞。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1