A vulnerability detection system based on Fuzzy testing and symbol execution for binary executable files is a software development technology for computer vulnerability detection. In order to enhance the detection depth and improve the detection efficiency in binary file vulnerability detection scenario. It includes the optimally designed fuzzy module, the optimized symbol execution module and the fuzzy jump symbol scheduling module, and cites the caching explorer and the task cooperation module. The invention combines the advantages of fuzzy testing and symbol execution to detect binary executable file vulnerabilities. The invention system has carried out the evaluation experiment, using the application program provided by the DARPA network big challenge qualification match as the data set, setting up the contrast experiment on three objects of the single fuzzy test, the single symbol execution, and the vulnerability mining system realized by the invention. The invention has a remarkable effect and accelerates the binary program compartment. Exploration has greatly accelerated the speed of vulnerability mining system.
【技术实现步骤摘要】
针对二进制可执行文件的模糊测试与符号执行相结合的漏洞检测系统
本专利技术涉及一种模糊测试与符号执行相结合的漏洞检测系统,属于计算机漏洞检测软件开发技术。
技术介绍
随着计算机科学技术和互联网技术飞速发展,软件安全问题层出不穷,软件安全一直备受关注。在软件安全性测试领域,模糊测试和符号执行是两种使用较为广泛的测试方法。模糊测试最初是作为测试UNIX系统程序的几个工具之一引入的。已广泛用于黑盒测试,但是缺乏指导,基于先前输入的随机突变产生新的输入,不能控制应用中的某条路径被指向。而动态符号执行解释应用程序,使用符号变量的模拟用户输入,跟踪条件跳转产生的约束,并使用约束求解器创建输入以及驱动程序代码按特定路径向下执行。然而条件分支依赖于符号值,则通常满足已采用和未采用条件。因此执行状态必须分叉,而且必须探索两条路径。这快速导致了众所周知的路径爆炸问题。由于现有技术具有的一些瓶颈问题,现代自动化分析技术产生的大多数用来触发缺陷的输入仅能表现软件中的浅层错误。现有技术中没有提出能结合模糊测试和符号执行两种方法优势的一种二进制执行文件漏洞检测技术。现有技术中的检测方存在检测深度不够、检测效率低的问题。
技术实现思路
本专利技术的目的是提供一种针对二进制可执行文件的模糊测试与符号执行相结合的漏洞检测系统,以在二进制文件漏洞检测场景中加强检测的深度、提高检测效率。本专利技术为解决上述技术问题采取的技术方案是:一种针对二进制可执行文件的模糊测试与符号执行相结合的漏洞检测系统,所述漏洞检测系统包括:一、经优化设计的模糊器模块,包括:数据生成模块:功能为产生随机输入数据,以便用于探 ...
【技术保护点】
一种针对二进制可执行文件的模糊测试与符号执行相结合的漏洞检测系统,其特征在于:所述漏洞检测系统包括:一、经优化设计的模糊器模块,包括:数据生成模块:功能为产生随机输入数据,以便用于探索程序执行路径,可根据配置的协议格式生产指定格式的数据;数据输入执行模块:读取测试数据构造模块生成的数据,输入到目标二进制程序中,使用不同输入不断重复执行二进制程序;漏洞产生监控模块:监控二进制程序执行不同输入数据后,是否发现指定的signal产生异常情况;误报自动分析模块:定位漏洞产生监控模块发现的漏洞,并对发现的缺陷进行分析是否为可利用的有价值的缺陷;挖掘结果记录模块:将程序中可能存在软件漏洞的执行序列记录生成日志文件并输出,自动去除重复的记录;二、经优化设计的符号执行模块,包括符号执行的条件约束模块,符号执行的条件约束模块用于确保经优化设计的符号执行模块的输出结果与经优化设计的模糊器模块的输出结果一致,同时保持发现新的状态转换的能力;符号执行路径查找模块,用于增加符号执行引擎的可伸缩性;三、模糊器跳转符号调度执行模块,包括模糊器与符号执行的跳转模块,用于弥补模糊测试的根本弱点,通过符号执行的力量来确定 ...
【技术特征摘要】
1.一种针对二进制可执行文件的模糊测试与符号执行相结合的漏洞检测系统,其特征在于:所述漏洞检测系统包括:一、经优化设计的模糊器模块,包括:数据生成模块:功能为产生随机输入数据,以便用于探索程序执行路径,可根据配置的协议格式生产指定格式的数据;数据输入执行模块:读取测试数据构造模块生成的数据,输入到目标二进制程序中,使用不同输入不断重复执行二进制程序;漏洞产生监控模块:监控二进制程序执行不同输入数据后,是否发现指定的signal产生异常情况;误报自动分析模块:定位漏洞产生监控模块发现的漏洞,并对发现的缺陷进行分析是否为可利用的有价值的缺陷;挖掘结果记录模块:将程序中可能存在软件漏洞的执行序列记录生成日志文件并输出,自动去除重复的记录;二、经优化设计的符号执行模块,包括符号执行的条件约束模块,符号执行的条件约束模块用于确保经优化设计的符号执行模块的输出结果与经优化设计的模糊器模块的输出结果一致,同时保持发现新的状态转换的能力;符号执行路径查找模块,用于增加符号执行引擎的可伸缩性;三、模糊器跳转符号调度执行模块,包括模糊器与符号执行的跳转模块,用于弥补模糊测试的根本弱点,通过符号执行的力量来确定通过复杂检查所需的特定输入;当经优化设计的模糊器模块的参数达到预定值而没有识别新的状态转换时,检查在当前分区中认为“感兴趣”的输入后调用符号执行引擎;缓存探索器,用于减少昂贵的符号引擎调用的次数以发现更多的状态转换,直接位于新发现的状态转换之后;所述缓存探索器探索状态转换的周围区域,直到探索器遍历配置数量的基本块;探索达到了预定数量后,符号执行就会为探索器发现的所有路径确定输入;任务协作模块,用于数据流转移;符号执行若找到新的可驱动程序继续执行的输入,会将输入publish到监听进程监听的redis管道中;监听到新的输入数据时,监听进程将会把输入数据写入到输入队列目录的新建文件中;之后,模糊器读取到新建的输入文件后,继续执行模糊测试,直到再次卡住。2.根据权利要求1所述的针对二进制可执行文件的模糊测试与符号执行相结合的漏洞检测系统,其特征在于:针对所述符号执行的条件约束模块,在将约束条件输入到符号执行的条件约束模块的求解器并生成新数据之前,对约束条件进行的优化,包括:1)约束条件插桩缓存:中间代码中插入的辅助插桩程序对之前已经缓存过的约束不再重复生成;2)约束条件简化:在路径约束进行求解时,进行以下两个方面处理:a)剪枝无关约束:假设所有变量的关键属性不为规定值,即相关的污点属性都不包含有关键输入,则可以去除当前约束条件;b)具化变量:在剩下的约束条件中,对关键属性不包含关键输入的无关变量,使用二进制程序实际执行时得到的具体数值进行变换,简化生成的路径约束条件;优化之后生成的路径约束条件将输入到求解器进行约束求解,假如得不到结果即可认为该路径对应的隔间不能到达;假设该路径约束条件可以得到可行解,则将求解器得到的输入数据加入到目标队列中,模糊器将从队列中得到输入执行,或者符号执行也会从队列中进行选择,作为下一个输入数据继续执行。3.根据权利要求2所述的针对二进制可执行文件的模糊测试与符号...
【专利技术属性】
技术研发人员:张伟哲,方滨兴,余翔湛,何慧,刘亚维,张宇,刘川意,王焕然,宋博宇,
申请(专利权)人:哈尔滨工业大学,
类型:发明
国别省市:黑龙江,23
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。