【技术实现步骤摘要】
一种多层次混合的漏洞自动挖掘方法
本专利技术涉及计算机
,尤其涉及一种多层次混合的漏洞自动挖掘方法。
技术介绍
模糊测试技术仅通过构造随机的、非预期的畸形数据作为目标程序的随机输入,监控目标程序执行过程中可能存在的异常状态,通过产生的异常状态来判断目标二进制程序中是否存在漏洞。但是模糊测试仅考虑产生随机的输入,而不是针对不同的目标程序进行优化和改进,这就导致了模糊测试对不同的目标二进制程序执行的代码覆盖率低,无法对二进制程序的绝大部分功能进行测试,也就是说漏洞挖掘的范围仅局限在目标程序的浅层逻辑,无法实现对目标程序的大部分功能进行测试并挖掘出目标程序深层逻辑的复杂漏洞。覆盖导向型模糊测试虽然使用了代码覆盖率作为测试用例优劣的衡量标准,筛选出覆盖率更高的测试用例,但是却没有任何机制来指导模糊测试的测试用例生成过程。覆盖导向型模糊测试依然需要对输入的畸形数据进行盲目的修改,并通过计算代码覆盖率来判断变异后发畸形数据是否达到了预期的效果。首先,盲目的变异导致程序的大部分执行都是重复的,修改的输入数据并没有触发更多的功能,这导 ...
【技术保护点】
1.一种多层次混合的漏洞自动挖掘方法,其特征在于:包括以下步骤:/nS1:通过静态分析技术利用指针分析获取程序中的指针分配与赋值过程,记录所有指针指向的内存地址位置;利用别名分析技术获取CMP类指令的目的操作数而明确目标程序的跳转地址;/nS2:通过中间代码静态插桩技术实现向目标程序的关键位置插桩监测代码;/nS3:通过动态语义信息提取技术在插桩后的目标程序中,执行到监控函数时,将当前的栈帧信息保存在全局数据结构中,所述栈帧信息包括从esp寄存器中保存的内存地址到ebp寄存器中保存的内存地址中的内存信息、各个寄存器的状态及执行路径和关键变量的当前取值;/nS4:通过以动态符 ...
【技术特征摘要】
1.一种多层次混合的漏洞自动挖掘方法,其特征在于:包括以下步骤:
S1:通过静态分析技术利用指针分析获取程序中的指针分配与赋值过程,记录所有指针指向的内存地址位置;利用别名分析技术获取CMP类指令的目的操作数而明确目标程序的跳转地址;
S2:通过中间代码静态插桩技术实现向目标程序的关键位置插桩监测代码;
S3:通过动态语义信息提取技术在插桩后的目标程序中,执行到监控函数时,将当前的栈帧信息保存在全局数据结构中,所述栈帧信息包括从esp寄存器中保存的内存地址到ebp寄存器中保存的内存地址中的内存信息、各个寄存器的状态及执行路径和关键变量的当前取值;
S4:通过以动态符号执行为主导的覆盖导向型模糊测试技术将插桩监测代码的目标应用程序输入到覆盖导向型模糊测试中,通过覆盖导向型模糊测试技术将模糊测试进程生成的测试用例输入到目标应用程序中执行,在目标程序执行的过程中,插桩到目标程序中的监测代码会将目标程序执行过程中的运行时动态语义信息收集到相应的测试用例。
2.根据权利要求1所述的一种多层次混合的漏洞自动挖掘方法,其特征在于:所述S1中,静态分析技术包括以下步骤:
A1:使用控制流分析在目标二进制程序上划分出控制流图:
A2:在目标二进制程序的控制流图上使用指针分析以及别名分析提取出指针与指向内存地址和CMP指令及其目的操作数,这些静态语义信息将帮助中间代码静态插桩模块识别敏感位置;
A3:寻找到A2所述的敏感位置,并向这些位置插桩。
3.根据权利要求1所述的一种多层次混合的漏洞自动挖掘方法,其特征在于:所述S1中,CMP指令的目的操作数将在符号执行对复杂分支求解失败后指导模糊测试进程跳转到正确地控制流中执行,帮助模糊测试进程探索目标程序更深层的逻辑,解决目标程序无法触发目标程序深层逻辑漏洞的问题,目标程序包含的有关指针的操作是产生漏洞的危险行为,指针指向的内存位置是可能触发漏洞的危险路径,记录指针指向的内存地址的目的是实现在危险路径的精确插桩。
4.根据权利要求1所述的一种多层次混合的漏洞自动挖掘方法,其特征在于:所述S2中,插桩位置包括每个基本块的起始位置、CMP类指令的跳转位置和危险路径,所述CMP类指令的跳转位置和危险路径分别为CMP类指令的目的操作数和指针指向的内存地址所在的路径。
5.根据权利要求1所述的一种多层次混合的漏洞自动挖掘方法,其特征在于:所述S2中,中间代码静态插桩技术作用于程...
【专利技术属性】
技术研发人员:田志宏,杨佳庚,郭润生,鲁辉,张鑫国,金成杰,何陆潇涵,孙起,曹靖靖,孙彦斌,苏申,
申请(专利权)人:广州大学,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。