System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 分布式系统超时机制漏洞的模糊测试方法、装置及设备制造方法及图纸_技高网
当前位置: 首页 > 专利查询>清华大学专利>正文

分布式系统超时机制漏洞的模糊测试方法、装置及设备制造方法及图纸

技术编号:40964471 阅读:5 留言:0更新日期:2024-04-18 20:44
本发明专利技术公开了一种分布式超时机制漏洞的模糊测试方法、装置及设备,该方法包括:确定第一待测分布式系统,生成延迟块,向所述第一待测分布式系统中注入所述延迟块,输出带有一组延迟块的第二待测分布式系统;向所述第二待测分布式系统发送工作负载运行请求,根据运行时上下文动态选择延迟块的子集生成延迟序列,激活所述延迟序列中的延迟块;执行带有激活延迟块的工作负载,基于瞬态延迟机制触发超时机制;实时监视第二待测分布式系统的运行状态,检测所述超时机制是否存在超时错误,若是,则生成测试报告;继续测试过程的迭代直至终止。本发明专利技术解决了测试工具可扩展性低、通用性差、测试效率低下等问题。

【技术实现步骤摘要】

本专利技术涉及系统测试领域,尤其涉及一种分布式系统超时机制漏洞的模糊测试方法、装置及设备


技术介绍

1、由于分布式环境的复杂性,分布式系统在运行时总是会遭遇各式各样的故障。其中最为常见的故障之一就是延迟,为了处理意外延迟并保持不间断的服务提供,这些系统需要大量的超时机制。然而,由于代码实现的复杂性,要避免在这些超时逻辑中出现不正确的处理或实施错误可能具有挑战性。由于超时在分布式系统的运作中扮演着至关重要的角色,任何错误都可能带来严重的后果。它们可能导致服务不可用、数据丢失,甚至危害系统安全。例如,facebook平台中的一个错误就是由于缺少超时检查而引起的。结果是,广泛的故障影响了该公司自身的服务,以及许多使用facebook身份验证服务的第三方站点。这种通过超时机制中的错误破坏了分布式系统的可用性的错误被称为“超时错误”(timeoutbugs)。

2、为保证分布式系统安全,众多测试方法已经被应用到现实应用中。其中,分布式系统模型检查方法首先通过形式化的方法对待测系统进行精准建模,随后列举了非确定性事件(包括延迟)的顺序,并严格模拟这些延迟顺序的执行,用以探索待测系统中的潜在漏洞。此外,错误注入技术通过对待测系统注入各式各样的故障(包括延迟),结合动态分析技术,对待测系统进行实时分析。其中,根据注入方式,可以分为两大类别:(1)混沌工程,如chaosblade,是一种在运行时在操作系统级别随机向运行中的软件系统注入各种故障的技术;(2)基于源码的错误注入技术,通过在源代码级别注入故障,已经显示出了很有前途的结果,可以有效地检测难以发现的错误。fate利用蛮力搜索来探索多个故障块的组合,探索待测系统的测试空间:fifuzz和crashfuzz等工具采用模糊测试技术,根据运行时代码覆盖反馈来变异故障输入序列,成功地检测了实际程序中的众多错误。

3、但上述测试方法存在以下缺陷:

4、首先,模型检测技术只能检测一些代码规模较小的待测程序。对于分布式系统这种代码规模量较大的系统,它们通常面临着状态空间爆炸的问题,无法进行有效应用。

5、其次,混沌工程只能随机的在测试环境中插入粗粒度的故障,因此它们往往会忽略大量的系统上下文信息,导致测试效率低下。

6、另外,编译时源码错误注入需要在测试前对源码进行修改,且通常需要手动识别故障点,这样极大的降低了他们的通用性和可扩展性。此外,目前基于代码覆盖率导向的算法可能导致探索许多与故障无关的代码,从而导致探索故障处理逻辑的低效。

7、最后,目前所有的工具在测试过程都是插入真实延迟故障的,这导致单个测试样例执行过程往往很漫长,从而极大地降低了测试效率。


技术实现思路

1、本专利技术提供了一种分布式超时机制漏洞的模糊测试方法,解决了测试工具可扩展性低、通用性差、测试效率低下等问题。

2、一种分布式超时机制漏洞的模糊测试方法,包括:

3、确定第一待测分布式系统,生成延迟块,向所述第一待测分布式系统中注入所述延迟块,输出带有一组延迟块的第二待测分布式系统;

4、向所述第二待测分布式系统发送工作负载运行请求,根据运行时上下文动态选择延迟块的子集生成延迟序列,激活所述延迟序列中的延迟块;

5、执行带有激活延迟块的工作负载,基于瞬态延迟机制触发超时机制;

6、实时监视第二待测分布式系统的运行状态,检测所述超时机制是否存在超时错误,若是,则生成测试报告;

7、继续测试过程的迭代直至终止。

8、在本专利技术的一种实施例中,所述生成延迟块,具体包括:在运行时库级别跟踪所有输入输出io操作;运行时拦截常用库中的相关应用程序接口api,将延迟块注入到所述api中,以生成延迟块。

9、在本专利技术的一种实施例中,所述向所述第二待测分布式系统发送工作负载运行请求,根据运行时上下文动态选择延迟块的子集生成延迟序列,激活所述延迟序列中的延迟块,具体包括:根据第一待测分布式系统执行无延迟块的第一工作负载的过程,生成执行路径;通过预设的跟踪器分析和区分执行过程中的调用堆栈,从所述执行路径中提取延迟块到候选集中;随机将候选集中的部分延迟块激活状态,将激活状态的延迟块作为初始延迟序列,将所述初始延迟序列放入序列池中;在每个模糊迭代中,从所述序列池中出队一个第一延迟序列,通过afl的位翻转策略将所述第一延迟序列变异为第二延迟序列。

10、在本专利技术的一种实施例中,所述执行带有激活延迟块的工作负载,基于瞬态延迟机制触发超时机制,具体包括:将所述第二延迟序列作为测试输入,通过第二待测分布式系统执行带有所述第二延迟序列的第二工作负载,触发部分延迟块;通过错误检测器分析第二待测分布式系统执行第二工作负载时的运行状态并识别超时错误,当出现新的错误时,记录错误并将所述第二延迟序列排入序列池。

11、在本专利技术的一种实施例中,在触发部分延迟块后,所述方法还包括:对于每个被触发的延迟块,实时提取并分析调用堆栈,动态计算出每个延迟块的深度;如果出现了新的延迟块,且其深度大于或等于平均深度,则将该新的延迟块添加为新的深度延迟块,所述平均深度为所述候选集中延迟块的平均深度;将该新的延迟块激活并附加到所述第二延迟序列中形成第三延迟序列,将所述第三延迟序列存储到序列池中,以引导后续的模糊过程。

12、在本专利技术的一种实施例中,所述瞬态延迟机制为将超时值设置为零,以立即触发第二待测分布式系统中的延迟块。

13、在本专利技术的一种实施例中,所述向所述第一待测分布式系统中注入所述延迟块,具体包括:在源代码中注入延迟块;或通过操作系统接口在运行时环境被注入延迟;或通过库插桩的方法在第一待测分布式系统的运行时库中注入延迟块。

14、一种分布式超时机制漏洞的模糊测试装置,包括:

15、延迟故障注入模块,用于确定第一待测分布式系统,生成延迟块,向所述第一待测分布式系统中注入所述延迟块,输出带有一组延迟块的第二待测分布式系统;

16、延迟故障选择模块,用于向所述第二待测分布式系统发送工作负载运行请求,根据运行时上下文动态选择延迟块的子集生成延迟序列,激活所述延迟序列中的延迟块;

17、延迟故障执行模块,用于执行带有激活延迟块的工作负载,基于瞬态延迟机制触发超时机制;实时监视第二待测分布式系统的运行状态,检测所述超时机制是否存在超时错误,若是,则生成测试报告;继续测试过程的迭代直至终止。

18、一种分布式超时机制漏洞的模糊测试设备,包括:

19、至少一个处理器;以及,

20、与所述至少一个处理器通过总线通信连接的存储器;其中,

21、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被执行,以实现如上述各实施例任一项所述的方法。

22、一种非易失性存储介质,存储有计算机可执行指令,所述计算机可执行指令由处理器执行,以实现如上述各实施例任一项所述的方法。

<本文档来自技高网...

【技术保护点】

1.一种分布式超时机制漏洞的模糊测试方法,其特征在于,包括:

2.根据权利要求1所述的分布式系统超时机制漏洞的模糊测试方法,其特征在于,所述生成延迟块,具体包括:

3.根据权利要求1所述的分布式系统超时机制漏洞的模糊测试方法,其特征在于,所述向所述第二待测分布式系统发送工作负载运行请求,根据运行时上下文动态选择延迟块的子集生成延迟序列,激活所述延迟序列中的延迟块,具体包括:

4.根据权利要求3所述的分布式系统超时机制漏洞的模糊测试方法,其特征在于,所述执行带有激活延迟块的工作负载,基于瞬态延迟机制触发超时机制,具体包括:

5.根据权利要求4所述的分布式系统超时机制漏洞的模糊测试方法,其特征在于,在触发部分延迟块后,所述方法还包括:

6.根据权利要求1所述的分布式系统超时机制漏洞的模糊测试方法,其特征在于,所述瞬态延迟机制为将超时值设置为零,以快速触发第二待测分布式系统中的延迟块。

7.根据权利要求1所述的分布式系统超时机制漏洞的模糊测试方法,其特征在于,所述向所述第一待测分布式系统中注入所述延迟块,具体包括:

8.一种分布式超时机制漏洞的模糊测试装置,其特征在于,包括:

9.一种分布式超时机制漏洞的模糊测试设备,其特征在于,包括:

10.一种非易失性存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令由处理器执行,以实现如权利要求1-7任一项所述的方法。

...

【技术特征摘要】

1.一种分布式超时机制漏洞的模糊测试方法,其特征在于,包括:

2.根据权利要求1所述的分布式系统超时机制漏洞的模糊测试方法,其特征在于,所述生成延迟块,具体包括:

3.根据权利要求1所述的分布式系统超时机制漏洞的模糊测试方法,其特征在于,所述向所述第二待测分布式系统发送工作负载运行请求,根据运行时上下文动态选择延迟块的子集生成延迟序列,激活所述延迟序列中的延迟块,具体包括:

4.根据权利要求3所述的分布式系统超时机制漏洞的模糊测试方法,其特征在于,所述执行带有激活延迟块的工作负载,基于瞬态延迟机制触发超时机制,具体包括:

5.根据权利要求4所述的分布式系统超时机制漏洞的模糊测试方法,其特征在于...

【专利技术属性】
技术研发人员:陈元亮马福辰周远航姜宇
申请(专利权)人:清华大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1