一种多线程并发漏洞检测方法和装置制造方法及图纸

技术编号:37706332 阅读:19 留言:0更新日期:2023-06-01 23:55
本发明专利技术提供了一种多线程并发漏洞检测方法和装置,涉及计算机技术领域。该方法包括:基于静态分析对包括多线程的待检测程序进行插桩,得到目标程序;其中,插桩包括线程优先级调度插桩;获取初始种子数据集;利用基于目标程序预先训练的模糊测试模型,根据初始种子数据集获取用于触发并发漏洞的测试用例;将测试用例输入至目标程序,获得漏洞检测结果。本方案提供的多线程并发漏洞检测方法提高发现并发漏洞的能力,能有效检测多线程并发漏洞。能有效检测多线程并发漏洞。能有效检测多线程并发漏洞。

【技术实现步骤摘要】
一种多线程并发漏洞检测方法和装置


[0001]本专利技术涉及计算机
,特别涉及一种多线程并发漏洞检测方法和装置。

技术介绍

[0002]多线程软件由于进程件共享使用资源而极易发生并发漏洞,成为网络空间安全威胁之一。不同于以往漏洞只需单线程顺序执行程序即可触发,并发漏洞需要至少两个线程并且交织执行才可触发,所以难以被传统漏洞挖掘技术发掘,其更具隐蔽性,同时并发漏洞多处于操作系统内核中,一旦发生错误,会影响整个操作系统运行。

技术实现思路

[0003]本专利技术提供了一种多线程并发漏洞检测方法和装置,该方法能有效检测多线程并发漏洞,提高发现并发漏洞的能力。
[0004]第一方面,本专利技术实施例提供了一种多线程并发漏洞检测方法,包括:基于静态分析对包括多线程的待检测程序进行插桩,得到目标程序;其中,所述插桩包括线程优先级调度插桩;获取初始种子数据集;利用基于所述目标程序预先训练的模糊测试模型,根据所述初始种子数据集获取用于触发并发漏洞的测试用例;将所述测试用例输入至所述目标程序,获得漏洞检测结果。
[0005]可选地,所述基于静态分析对包括多线程的待检测程序进行插桩,包括:基于静态分析获取所述待检测程序中的敏感操作;确定所述敏感操作的位置并进行插桩。
[0006]可选地,所述预先训练的模糊测试模型的输入包括初始种子数据集、种子选择概率、种子选择策略、预设变异策略集合、变异策略选择概率、变异策略选择策略、变异次数和预设终止条件,输出为所述测试用例;所述预先训练的模糊测试模型在模糊测试中,利用所述线程优先级调度插桩对当前执行的线程的优先级进行设置,以获得不同线程在不同优先级下的漏洞检测结果。
[0007]可选地,所述预先训练的模糊测试模型的通过如下方法获得:S1:构建基于所述目标程序的初始模糊测试模型;S2:初始化所述种子选择概率、所述变异策略选择概率和测试信息集合;S3:根据所述种子选择概率从所述初始种子数据集中随机选择第一种子,根据所述变异策略选择概率从所述预设变异策略集合中随机选择第一变异策略,并基于所述第一变异策略和所述变异次数对所述第一种子进行变异,得到第一用例;S4:将所述第一用例输入至所述初始模糊测试模型中,得到测试信息;并将所述测试信息加入至所述测试信息集合中;S5:判断所述测试信息中是否存在导致程序异常的现象;若是,则执行步骤S6,否
则执行步骤S7;S6:将该测试信息对应的第一用例作为所述测试用例,然后执行步骤S8;S7:在将该测试信息对应的第一用例增加了新的覆盖时,将该第一用例作为变异种子加入所述初始种子数据集中,然后执行步骤S8;S8:根据所述测试信息确定更新参数,并根据所述更新参数对所述变异种子的种子选择概率和所述第一变异策略的变异策略选择概率进行更新;其中,所述测试信息包括不同线程在不同优先级下的故障信息、覆盖信息、所述种子变异次数、变异种子加入所述初始种子数据集的时间;S9:判断当前运行状态是否满足所述预设终止条件,若是,则执行步骤S10;否则返回步骤S3;S10:判断所述测试信息集合中测试用例的数量是否达到预设阈值,若是,结束流程,得到所述模糊测试模型;否则,调整所述更新参数并返回步骤S1。
[0008]可选地,所述步骤S8包括:基于当前运行状态,在所述测试信息包括新的覆盖信息时,确定所述变异种子加入所述初始种子数据集的时间为第一时间,并针对在所述第一时间加入该初始种子数据集的种子增加种子选择概率;基于当前运行状态,在所述测试信息包括检测到故障信息或新的覆盖信息时,针对所述第一变异策略增加变异策略选择概率。
[0009]可选地,所述变异次数通过如下公式得到:其中,所述k用于表征所述变异次数;所述dis(b,Tar)用于表征第一种子b到目标位置Tar中所有可达函数距离的调和平均数;t和t
x
分别用于表征所述预设终止条件所需的使用时间和达到热平衡条件时的时间;其中,所述目标位置为进行所述插桩的位置。
[0010]第二方面,本专利技术实施例还提供了一种多线程并发漏洞检测装置,包括:静态分析模块,用于基于静态分析对包括多线程的待检测程序进行插桩,得到目标程序;其中,所述插桩包括线程优先级调度插桩;获取模块,用于获取初始种子数据集;测试用例生成模块,用于利用预先训练的模糊测试模型,根据所述初始种子数据集获取用于触发并发漏洞的测试用例;检测模块,用于将所述测试用例输入至所述目标程序,获得漏洞检测结果。
[0011]可选地,所述预先训练的模糊测试模型的输入包括初始种子数据集、种子选择概率、种子选择策略、预设变异策略集合、变异策略选择概率、变异策略选择策略、变异次数和预设终止条件,输出为所述测试用例;所述预先训练的模糊测试模型在模糊测试中,利用所述线程优先级调度插桩对当前执行的线程的优先级进行设置,以获得不同线程在不同优先级下的漏洞检测结果。
[0012]第三方面,本专利技术实施例还提供了一种计算设备,包括存储器和处理器,所述存储
器中存储有计算机程序,所述处理器执行所述计算机程序时,实现上述任一项所述的多线程并发漏洞检测方法。
[0013]第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项所述的多线程并发漏洞检测方法。
[0014]本专利技术实施例提供了一种多线程并发漏洞检测方法和装置,该方法将静态分析和动态分析相结合,使用静态分析方法进行插桩,得到目标程序,并在动态分析过程中采用基于深度学习训练的模糊测试模型,通过该模糊测试模型探索多线程的交错执行,优化了获取触发并发漏洞的测试用例的有效率,提高了发现并发漏洞的能力。
附图说明
[0015]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016]图1是本专利技术一实施例提供的一种多线程并发漏洞检测方法的流程图;图2是本专利技术一实施例提供的一种计算设备的硬件架构图;图3是本专利技术一实施例提供的一种多线程并发漏洞检测装置结构图。
具体实施方式
[0017]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例,基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0018]如图1所示,本专利技术实施例提供了一种多线程并发漏洞检测方法,该方法包括:步骤100,基于静态分析对包括多线程的待检测程序进行插桩,得到目标程序;其中,插桩包括线程优先级调度插桩;步骤102,获取初始种子数据集;步骤104,利用基于目标程序预先训练的模糊测试模型,根据初始种子数据集获取用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多线程并发漏洞检测方法,其特征在于,包括:基于静态分析对包括多线程的待检测程序进行插桩,得到目标程序;其中,所述插桩包括线程优先级调度插桩;获取初始种子数据集;利用基于所述目标程序预先训练的模糊测试模型,根据所述初始种子数据集获取用于触发并发漏洞的测试用例;将所述测试用例输入至所述目标程序,获得漏洞检测结果。2.根据权利要求1所述的方法,其特征在于,所述基于静态分析对包括多线程的待检测程序进行插桩,包括:基于静态分析获取所述待检测程序中的敏感操作;确定所述敏感操作的位置并进行插桩。3.根据权利要求1所述的方法,其特征在于,所述预先训练的模糊测试模型的输入包括初始种子数据集、种子选择概率、种子选择策略、预设变异策略集合、变异策略选择概率、变异策略选择策略、变异次数和预设终止条件,输出为所述测试用例;所述预先训练的模糊测试模型在模糊测试中,利用所述线程优先级调度插桩对当前执行的线程的优先级进行设置,以获得不同线程在不同优先级下的漏洞检测结果。4.根据权利要求3所述的方法,其特征在于,所述预先训练的模糊测试模型的通过如下方法获得:S1:构建基于所述目标程序的初始模糊测试模型;S2:初始化所述种子选择概率、所述变异策略选择概率和测试信息集合;S3:根据所述种子选择概率从所述初始种子数据集中随机选择第一种子,根据所述变异策略选择概率从所述预设变异策略集合中随机选择第一变异策略,并基于所述第一变异策略和所述变异次数对所述第一种子进行变异,得到第一用例;S4:将所述第一用例输入至所述初始模糊测试模型中,得到测试信息;并将所述测试信息加入至所述测试信息集合中;S5:判断所述测试信息中是否存在导致程序异常的现象;若是,则执行步骤S6,否则执行步骤S7;S6:将该测试信息对应的第一用例作为所述测试用例,然后执行步骤S8;S7:在将该测试信息对应的第一用例增加了新的覆盖时,将该第一用例作为变异种子加入所述初始种子数据集中,然后执行步骤S8;S8:根据所述测试信息确定更新参数,并根据所述更新参数对所述变异种子的种子选择概率和所述第一变异策略的变异策略选择概率进行更新;其中,所述测试信息包括不同线程在不同优先级下的故障信息、覆盖信息、所述种子变异次数、变异种子加入所述初始种子数据集的时间;S9:判断当前运行状态是否满足所述预设终止条件,若是...

【专利技术属性】
技术研发人员:王嘉诚张少仲张栩
申请(专利权)人:中诚华隆计算机技术有限公司
类型:发明
国别省市:

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

1