[发明专利]基于路径簇规约的并行符号执行方法有效
申请号: | 201210542210.4 | 申请日: | 2012-12-14 |
公开(公告)号: | CN103049377A | 公开(公告)日: | 2013-04-17 |
发明(设计)人: | 吴世忠;郭涛;张普含;王嘉捷 | 申请(专利权)人: | 中国信息安全测评中心 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 白毅明 |
地址: | 100089 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 路径 规约 并行 符号 执行 方法 | ||
技术领域
本发明涉及一种计算机软件安全性测试方法,尤其是涉及一种基于程序符号执行路径簇划分的并行测试方法。
背景技术
目前,符号执行技术在软件安全性测试领域得到了日益广泛的关注和应用。符号执行和Fuzzing等随机生成测试用例的技术相比,能够更加深入地理解目标软件,显著提高软件测试的代码覆盖率,进而生成更有针对性的测试用例。但是符号执行的最大问题是,由于软件分支数目和循环次数巨大,存在着指数级增长的执行路径,导致符号执行在实际应用中具有路径爆炸的问题,这已成为符号执行应用的最大瓶颈。
为了有效缓解或解决符号执行中路径空间爆炸的问题,可以利用计算能力更强的硬件体系架构实现,比如分布式多处理器、多核、众核、云计算等。这就需要将传统的符号执行改造成具有并行执行能力的技术。
当前已有的并行符号执行技术,多是根据实际使用的分布式硬件平台特点,有效缓解了并行符号执行的分布式测试节点通信、负载调度等关键问题。但是在测试节点负载分配上多是采用了简单的路径拆分或随机将分支树迁移,由于没有深入理解程序内部结构,缺少对程序执行空间可并行化测试路径关系的分析。如果将可并行测试的路径分配到同一个测试节点测试,或者不适宜并行测试的路径分配到了不同的测试节点,就会造成无谓的通信开销和冗余测试,降低并行处理能力。
发明内容
本发明针对目前并行符号执行效率不高的问题,提出一种基于路径簇划分的并行符号执行方法。
本发明所采用的技术方案:
一种基于路径簇规约的并行符号执行方法,包括下述步骤:
1)使用反汇编工具将被测可执行程序进行反汇编,得到被测可执行程序的汇编代码;
2)将所述汇编代码转换为统一的中间汇编语言形式,以屏蔽底层具体汇编语言的差异;
3)根据中间汇编语言形式,生成被测可执行程序的函数调用图和控制流图;
4)定义危险函数特征,通过对函数调用图的静态分析,找到危险函数;
5)定义输入函数特征,通过对函数调用图的静态分析,找到输入函数;
6)分别建立“程序进入点→调用输入函数”,“调用输入函数→调用危险函数”,“调用危险函数→程序结束点” 两两之间的路径,并归约成路径簇;
7)将步骤6)的3组路径簇进行点到点的连接,形成“程序进入点à程序结束点”的完整路径簇链集合,形成覆盖输入函数和危险函数的完整程序执行路径;
8)以步骤7)形成的“程序进入点→程序结束点”一个完整路径簇链作为一个负载单位,分配到不同的分布式测试节点,生成相应的测试用例进行实际程序安全测试。
所述的基于路径簇规约的并行符号执行方法,在步骤4)中,定义了4类危险函数,分别是:字符串拷贝、内存拷贝、格式化、格式转换。
所述的基于路径簇规约的并行符号执行方法,在步骤5)中,定义了6类输入函数,分别是:文件读取、网络数据读取、管道及消息读取、用户输入、环境变量读取、连接函数。
所述的基于路径簇规约的并行符号执行方法,在步骤3)中,通过编写反汇编工具插件,实现被测可执行程序控制流图和函数调用图的生成。
所述的基于路径簇规约的并行符号执行方法,在步骤6)中,以分析被测可执行程序控制依赖和数据依赖关系为基础,分别对进行“程序进入点→调用输入函数”,“调用输入函数→调用危险函数”,“调用危险函数→程序结束点”3组点到点的多条路径进行规约,形成点到点的路径簇;被测可执行程序中两点之间的路径簇规约概述为2个步骤: 确定与符号执行目标点结果符号值有数据依赖关系的程序语句集合;找到与中语句集合有控制依赖关系的语句集合。
本发明的有益积极效果:
1、本发明基于路径簇规约的并行符号执行方法,能够切实提高并行符号执行处理的能力和测试效率。针对当前符号执行存在路径空间爆炸,对大型应用程序的代码测试覆盖率较低的问题,运用分布式测试平台进行并行符号执行,显著减少了符号执行的时间开销,提高了测试的覆盖率和执行路径深度。路径簇之间彼此独立进行程序的符号分析,同一路径簇内部共享控制依赖条件,据此可以将程序以路径簇为单位进行并行符号执行时的负载分配,切实提高了并行符号执行处理的能力和测试效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国信息安全测评中心,未经中国信息安全测评中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210542210.4/2.html,转载请声明来源钻瓜专利网。