一种漏洞挖掘方法及装置制造方法及图纸

技术编号:19821454 阅读:44 留言:0更新日期:2018-12-19 14:35
本发明专利技术涉及计算机技术领域,尤其涉及一种漏洞挖掘方法及装置,运行目标程序时,对目标程序中确定出的目标函数进行插桩,并对确定的测试样本进行变异;将变异后的测试样本输入到目标函数,若目标函数处理变异后的测试样本时出现异常,则存储变异后的测试样本,生成漏洞报告,若目标函数处理变异后的测试样本时未出现异常,则记录变异后的测试样本作为输入时,目标函数执行的代码路径,以使根据代码路径,对变异后的测试样本再次进行变异,使得再次变异后的测试样本作为输入时,目标函数执行不同的代码路径,这样,插桩更具有针对性,实现在内存中循环测试,节省时间,并可以不断调整变异策略,覆盖更多代码路径,减少盲目性,提高漏洞挖掘效率。

【技术实现步骤摘要】
一种漏洞挖掘方法及装置
本专利技术涉及计算机
,尤其涉及一种漏洞挖掘方法及装置。
技术介绍
目前,由于对安全问题的重视,通常在软件发布之前都会进行安全测试,通过漏洞挖掘,尽可能提前发现漏洞,并进行修复。漏洞挖掘通常采用模糊测试方式,模糊测试是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。现有技术中,模糊测试方式中的基于文件格式的模糊测试,通常通过以随机数值对文件进行填充,但是这种方式比较盲目,对测试样本的变异缺乏针对性,可能会在同一个代码路径下执行多次,代码覆盖率较低,模糊测试效率比较低,并且也耗费时间。
技术实现思路
本专利技术实施例提供一种漏洞挖掘方法及装置,以解决现有技术中漏洞挖掘的模糊测试效率较低的问题。本专利技术实施例提供的具体技术方案如下:本专利技术一个实施例提供了一种漏洞挖掘方法,包括:运行目标程序时,对所述目标程序中确定出的目标函数进行插桩;根据预设的变异算法,对确定的测试样本进行变异;将变异后的测试样本输入到所述目标函数,若所述目标函数处理所述变异后的测试样本时出现异常,则存储所述变异后的测试样本,并生成漏洞报告,若所述目标函数处理所述变异本文档来自技高网...

【技术保护点】
1.一种漏洞挖掘方法,其特征在于,包括:运行目标程序时,对所述目标程序中确定出的目标函数进行插桩;根据预设的变异算法,对确定的测试样本进行变异;将变异后的测试样本输入到所述目标函数,若所述目标函数处理所述变异后的测试样本时出现异常,则存储所述变异后的测试样本,并生成漏洞报告,若所述目标函数处理所述变异后的测试样本时未出现异常,则记录所述变异后的测试样本作为输入时所述目标函数执行的代码路径,以使根据所述代码路径,对所述变异后的测试样本再次进行变异,使得再次变异后的测试样本作为输入时所述目标函数执行不同的代码路径。

【技术特征摘要】
1.一种漏洞挖掘方法,其特征在于,包括:运行目标程序时,对所述目标程序中确定出的目标函数进行插桩;根据预设的变异算法,对确定的测试样本进行变异;将变异后的测试样本输入到所述目标函数,若所述目标函数处理所述变异后的测试样本时出现异常,则存储所述变异后的测试样本,并生成漏洞报告,若所述目标函数处理所述变异后的测试样本时未出现异常,则记录所述变异后的测试样本作为输入时所述目标函数执行的代码路径,以使根据所述代码路径,对所述变异后的测试样本再次进行变异,使得再次变异后的测试样本作为输入时所述目标函数执行不同的代码路径。2.如权利要求1所述的方法,其特征在于,进一步包括:在所述目标程序中预设位置添加一个区段,并在所述区段中添加汇编代码,其中,所述汇编代码用于实现加载自定义的动态链接库DLL模块,所述DLL模块用于读入变异后的测试样本,并将变异后的测试样本输入到所述目标函数;所述区段的内存属性设置为可读可写可执行。3.如权利要求2所述的方法,其特征在于,进一步包括:运行目标程序时,当确定所述目标程序完成初始化后,劫持所述目标程序跳转到所述区段,执行所述区段中添加的汇编代码。4.如权利要求2所述的方法,其特征在于,所述DLL模块接入预设的模糊FUZZ模块,并所述FUZZ模块的偏移为所述DLL模块中的主函数;所述FUZZ模块用于执行对所述目标程序中确定出的目标函数进行插桩,并根据预设的变异算法,对确定的测试样本进行变异的步骤。5.如权利要求4所述的方法,其特征在于,进一步包括:记录所述目标函数出现异常的次数,以及代码覆盖率,其中,所述代码覆盖率表示所述目标函数执行的代码路径对应的代码数量与所述目标程序的总的代码数量的比值。6.如权利要求1-5任一项所述的方法,其特征在于,对所述目标程序中确定出的目标函数进行插桩,具体包括:获取在所述目标函数执行前的寄存器环境信息,并在所述目标函数执行完之后,根据获取的执行前的寄存器环境信息,恢复所述目标函数的寄存器环境信息。7.一种漏洞挖掘装置,其特征在于,包括:插桩模块,用于运行目标程序时,对所述目标程序中确定出的目标函数进行插桩;变异模块,用于根据预设的变异算法,对确定的测试样本进行变异;动态链接库DLL模块,用于将变异后的测试样本输入到所述目标函数,若...

【专利技术属性】
技术研发人员:蒋洪伟
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1