基于敏感函数的模糊测试方法、装置、设备以及存储介质制造方法及图纸

技术编号:39184543 阅读:7 留言:0更新日期:2023-10-27 08:32
本公开的实施例提供了一种基于敏感函数的模糊测试方法、装置、设备以及存储介质,应用于网络安全技术领域。所述方法包括对被测程序的待测试代码进行分析,并提取对应的控制流图;再在控制流图中对预设敏感函数的位置和外部数据输入的位置进行标记;再根据标记后的控制流图,生成状态转移图;再基于状态转移图,对被测程序进行模糊测试。以此方式,可以从被测程序中剥离与预设敏感函数无关的程序路径,避免大量的Fuzzy测试路径都无法有效触发安全漏洞的问题,大幅度缩减了被测程序进行Fuzzy测试的工作量,提高了Fuzzy测试效率。提高了Fuzzy测试效率。提高了Fuzzy测试效率。

【技术实现步骤摘要】
基于敏感函数的模糊测试方法、装置、设备以及存储介质


[0001]本公开涉及计算机
,尤其涉及网络安全
,具体涉及一种基于敏感函数的模糊测试方法、装置、设备以及存储介质。

技术介绍

[0002]模糊测试(Fuzzing),即Fuzzy测试,是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。当前的Fuzzy测试是对目标程序所有分支都进行覆盖式穷举,由于出现安全漏洞的分支仅占很少的比例,因此会导致大量的Fuzzy测试路径都无法有效触发安全漏洞,造成Fuzzy测试效率较低。

技术实现思路

[0003]本公开提供了一种基于敏感函数的模糊测试方法、装置、设备以及存储介质。
[0004]根据本公开的第一方面,提供了一种基于敏感函数的模糊测试方法。该方法包括:对被测程序的待测试代码进行分析,并提取对应的控制流图;在所述控制流图中对预设敏感函数的位置和外部数据输入的位置进行标记;根据标记后的控制流图,生成状态转移图;基于所述状态转移图,对所述被测程序进行模糊测试。
[0005]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述基于所述状态转移图,对所述被测程序进行模糊测试包括:根据预设外部数据输入量,从所述状态转移图的初始状态开始,对所述被测程序进行模糊测试;每次模糊测试完成后,通过所述状态转移图对应的状态转移关系,将所述状态转移图的状态迁移回初始状态,进行下一次的模糊测试;当所述状态转移图的初始状态测试完成后,通过所述状态转移图对应的状态迁移关系上记录的激励数据迁移至所述状态转移图的下一状态,重复从所述状态转移图的初始状态开始,继续对所述被测程序进行模糊测试;直至完成对所述状态转移图中所有状态的测试。
[0006]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据标记后的控制流图,生成状态转移图包括:从所述被测程序的初始状态开始,输入预设测试激励至所述被测程序,在标记后的控制流图中追踪所述被测程序执行路径,根据预设记录规则得到所述被测程序执行后的当前状态;以所述被测程序的当前状态作为输入条件,进行状态生成,包括分析标记后的控制流图,获得所述被测程序的当前状态对应的输入数据集合,每次从所述输入数据集合中选取任一输入数据作为所述被测程序的当前状态对应的测试激励输入至所述被测程序,根据所述预设记录规则得到所述被测程序执行后的下一状态,直至所述输入数据集合中所有输入数据都生成下一状态;
依次将所述输入数据集合中所有输入数据生成的下一状态作为输入条件,进行新的状态的生成,直至不生成新的状态;根据所述初始状态及生成的各状态,生成状态转移图,其中,所述状态转移图的初始状态为所述被测程序的初始状态。
[0007]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述预设记录规则包括:若所述被测程序执行路径中未包括第一敏感函数集合中的元素,则所述被测程序执行后的当前状态记录为初始状态;若所述被测程序执行路径中包括所述第一敏感函数集合中的元素,且第三敏感函数集合是第二敏感函数集合的子集,则所述被测程序执行后的当前状态仍记录为当前状态;若所述被测程序执行路径中包括所述第一敏感函数集合中的元素,且所述第三敏感函数集合不是所述第二敏感函数集合的子集,则所述被测程序执行后的当前状态记录为下一状态;其中,所述第一敏感函数集合为在控制流图中标记预设敏感函数的位置得到的所有敏感函数集合;所述第二敏感函数集合为进行模糊测试时已经遍历的路径上经过的敏感函数元素所组成的集合;所述第三敏感函数集合为在当前的一次测试时在任一状态节点下输入激励后所述被测程序往下执行所经过路径上包含的敏感函数元素集合。
[0008]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述分析标记后的控制流图包括:根据所述被测程序的当前状态、当前输入条件及所述被测程序上下文关系,定位出当前输入条件在标记后的控制流图中的位置;在当前输入条件到下一输入条件之间,获取标记后的控制流图中每个分支的输入数据。
[0009]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述预设敏感函数包括所述待测试代码中内存拷贝、内存申请、内存释放、字符串拷贝对应的函数。
[0010]根据本公开的第二方面,提供了一种基于敏感函数的模糊测试装置。该装置包括:提取模块,用于对被测程序的待测试代码进行分析,并提取对应的控制流图;标记模块,用于在所述控制流图中对预设敏感函数的位置和外部数据输入的位置进行标记;生成模块,用于根据标记后的控制流图,生成状态转移图;测试模块,用于基于所述状态转移图,对所述被测程序进行模糊测试。
[0011]根据本公开的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
[0012]根据本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。
[0013]本申请实施例提供的一种基于敏感函数的模糊测试方法、装置、设备以及存储介质,能够对被测程序的待测试代码进行分析,并提取对应的控制流图;再在控制流图中对预设敏感函数的位置和外部数据输入的位置进行标记;再根据标记后的控制流图,生成状态
转移图;再基于状态转移图,对被测程序进行模糊测试;基于此,通过对被测程序对应的控制流图分析,基于预设敏感函数构建与其对应的状态转移图,以便基于状态转移图对被测程序进行模糊测试,从而可以从被测程序中剥离与预设敏感函数无关的程序路径,避免大量的Fuzzy测试路径都无法有效触发安全漏洞的问题,大幅度缩减了被测程序进行Fuzzy测试的工作量,提高了Fuzzy测试效率。
[0014]应当理解,
技术实现思路
部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
[0015]结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。附图用于更好地理解本方案,不构成对本公开的限定在附图中,相同或相似的附图标记表示相同或相似的元素,其中:图1示出了根据本公开的实施例的基于敏感函数的模糊测试方法的流程图;图2示出了根据本公开的实施例的标记后的控制流图的示意图;图3示出了根据本公开的实施例的基于敏感函数的模糊测试装置的方框图;图4示出了能够实施本公开的实施例的示例性电子设备的方框图。
具体实施方式
[0016]为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
[0017]另外,本文中术语“和/或”,仅仅是一种描述关联对象的关本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于敏感函数的模糊测试方法,其特征在于,包括:对被测程序的待测试代码进行分析,并提取对应的控制流图;在所述控制流图中对预设敏感函数的位置和外部数据输入的位置进行标记;根据标记后的控制流图,生成状态转移图;基于所述状态转移图,对所述被测程序进行模糊测试。2.根据权利要求1所述的方法,其特征在于,所述基于所述状态转移图,对所述被测程序进行模糊测试包括:根据预设外部数据输入量,从所述状态转移图的初始状态开始,对所述被测程序进行模糊测试;每次模糊测试完成后,通过所述状态转移图对应的状态转移关系,将所述状态转移图的状态迁移回初始状态,进行下一次的模糊测试;当所述状态转移图的初始状态测试完成后,通过所述状态转移图对应的状态迁移关系上记录的激励数据迁移至所述状态转移图的下一状态,重复从所述状态转移图的初始状态开始,继续对所述被测程序进行模糊测试;直至完成对所述状态转移图中所有状态的测试。3.根据权利要求1所述的方法,其特征在于,所述根据标记后的控制流图,生成状态转移图包括:从所述被测程序的初始状态开始,输入预设测试激励至所述被测程序,在标记后的控制流图中追踪所述被测程序执行路径,根据预设记录规则得到所述被测程序执行后的当前状态;以所述被测程序的当前状态作为输入条件,进行状态生成,包括分析标记后的控制流图,获得所述被测程序的当前状态对应的输入数据集合,每次从所述输入数据集合中选取任一输入数据作为所述被测程序的当前状态对应的测试激励输入至所述被测程序,根据所述预设记录规则得到所述被测程序执行后的下一状态,直至所述输入数据集合中所有输入数据都生成下一状态;依次将所述输入数据集合中所有输入数据生成的下一状态作为输入条件,进行新的状态的生成,直至不生成新的状态;根据所述初始状态及生成的各状态,生成状态转移图,其中,所述状态转移图的初始状态为所述被测程序的初始状态。4.根据权利要求3所述的方法,其特征在于,所述预设记录规则包括:若所述被测程序执行路径中未包括第一敏感函数集合中的元素,则所述被测程序执行后的当前状态记录为初始状态;若所述被测程序执行路径中包括所...

【专利技术属性】
技术研发人员:肖达沈传宝
申请(专利权)人:北京华云安信息技术有限公司
类型:发明
国别省市:

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

1