[发明专利]基于脆弱性模型和符号执行结合的软件安全检测方法有效
申请号: | 201610067441.2 | 申请日: | 2016-01-29 |
公开(公告)号: | CN105740149B | 公开(公告)日: | 2018-02-16 |
发明(设计)人: | 魏强;曹琰;柳晓龙;武泽慧;任开磊;王允超 | 申请(专利权)人: | 中国人民解放军信息工程大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 郑州大通专利商标代理有限公司41111 | 代理人: | 陈大通 |
地址: | 450052 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 脆弱 模型 符号 执行 结合 软件 安全 检测 方法 | ||
技术领域
本发明涉及计算机软件安全性测试技术领域,特别涉及一种基于脆弱性模型和符号执行结合的软件安全检测方法。
背景技术
软件分析是测试软件脆弱性、软件恶意行为等安全性问题的基础。为了应对软件脆弱性带来的安全风险,研究人员开展了对软件脆弱性分析技术的研究。现有的技术已经能够在一定程度上发现并修补某些脆弱性,为软件安全运行提供重要支撑。为了弥补传统模糊测试带来的盲目性和测试覆盖率低等问题,不少研究者开始将符号执行技术应用于脆弱性挖掘过程中。符号执行是一种信息流分析技术,它在程序执行过程中以符号输入代替实际输入,将程序变量符号化,并在分析中通过插桩不断收集路径约束条件,通过约束求解器生成测试用例以发现软件存在的脆弱性,有可能成为解决软件自动化测试问题的核心方法。
符号执行技术可以有效引导输入数据进入待测程序的某个区域,而后仍然使用模糊器,在局部范围生成多个样本进行安全测试,虽然在进入某个特定区域的效率已经大大提高,但是在脆弱性挖掘方面仍存在不足。
发明内容
针对现有技术中的不足,本发明提供一种基于脆弱性模型和符号执行结合的软件安全检测方法,利用符号执行和脆弱性模型匹配相结合,使得生成的测试数据不仅能够快速到达某个待测程序点,而且触发脆弱性的效率更高。
按照本发明所提供的设计方案,一种基于脆弱性模型和符号执行结合的软件安全检测方法,包含如下步骤:
步骤1.将输入数据载入待测程序,输入数据驱动待测程序执行,进行异常检测;
步骤2.判断是否达到程序路径覆盖率要求,若满足,则结束测试,否则,进入步骤3;
步骤3.将输入数据符号化,确定输入点和输入数据大小,标记符号执行中的符号变量,并将这些符号变量定义为原始符号变量集合,符号变量包含原始符号变量和中间符号变量,中间符号变量是原始符号变量表达式表示的符号变量,程序开始符号执行与实际执行,符号执行收集路径约束条件,获取输入点与程序运行路径的对应关系,根据程序跳转点对符号变量的约束,建立程序路径约束条件;
步骤4.根据步骤3中收集的路径约束条件,查看路径中是否有触发脆弱性的代码区域,并根据路径引导算法计算驱使程序引导到该代码区域的约束条件;同时,根据缓冲区溢出脆弱性特点,对安全脆弱性形式化建模,通过脆弱性模型与路径约束条件的匹配,计算触发脆弱性的约束条件;
步骤5.调用STP约束求解器,对步骤4中的约束条件进行求解,获取新的测试用的输入数据,跳转至步骤1中执行。
上述的,步骤3中的输入点为程序获取输入数据的输入函数调用处,同时为符号执行的起始点。
上述的,步骤3中输入数据读入到内存后,程序进入执行状态,对于即将执行的每一句指令,首先判断是否涉及符号变量操作,若涉及符号变量操作,则进行符号执行,否则只需实际执行,以保持和符号执行同步即可;步骤3中的程序路径约束条件即为原始符号变量和中间符号变量建立的方程组。
上述的,步骤4中缓冲区溢出脆弱性中对安全脆弱性形式化建模包含对缓冲区内容进行符号化,对缓冲区大小进行符号化,及对已使用长度进行符号化,并建立指针变量和缓冲区的映射关系,通过符号化方式检测缓冲区溢出脆弱性。
上述的,步骤4中还包含根据整型溢出脆弱性特点进行形式化建模,将整型溢出脆弱性抽象为source-sink问题,计算触发脆弱性的约束条件。
本发明的有益效果:
1、本发明针对目前符号执行在特定安全脆弱性类型检测方面缺乏针对性的问题,对缓冲区溢出脆弱性和整型溢出脆弱性进行形式化建模,在脆弱性检测方面结合脆弱性模型,利用符号执行和约束求解技术,使得生成的测试数据不仅能够快速到达某个待测程序点,而且触发脆弱性的效率更高,实现高效的软件安全脆弱性检测。
2、本发明综合利用符号执行技术和脆弱性模型相匹配的优势,在深层次分析程序路径的基础上,生成较为准确的测试输入数据,触发及检测程序脆弱性,为提高软件安全性提供帮助。
附图说明:
图1为本发明的流程示意图;
图2为实施例二中的缓冲区符号化表示示意图;
图3为实施例二中的整型溢出脆弱性模型示意图。
具体实施方式:
下面结合附图和技术方案对本发明作进一步详细的说明,并通过优选的实施例详细说明本发明的实施方式,但本发明的实施方式并不限于此。
实施例一,参见图1所示,一种基于脆弱性模型和符号执行结合的软件安全检测方法,包含如下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军信息工程大学,未经中国人民解放军信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610067441.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:云测试方法及装置
- 下一篇:软件用户行为回退处理方法及装置