符号执行的覆盖率优化技术研究
发布时间:2021-09-24 10:55
代码安全在软件开发过程中日益受到重视,人们总是期望在软件正式发布前发现并解决所有潜在的缺陷,为此提出许多软件安全测试技术,如人工静态检测、自动化模糊测试等。但是,一些软件缺陷及漏洞只有在程序运行过程中才可能被发现,因此为了解决此类问题,一些动态检测技术与解决方法被提出,其中动态符号执行因其自动探索程序路径空间的特点而得到重视,故成为近几年代码安全研究领域中的一个热点技术。动态符号执行可以自动探索程序的路径空间,分析进入各路径的约束条件并生成对应路径的测试用例,具有自动化和路径覆盖率高等优点。但是依然存在诸多瓶颈问题制约着动态符号执行的发展,如应用于大型软件测试难度大、动态符号执行代码结构复杂的程序时易产生路径爆炸问题、对于特殊的程序路径难以生成精确的测试用例、对于循环等复杂程序结构没有针对性的处理、条件复杂程序约束求解器难以求解等问题。针对上述问题,本文以提高动态符号执行效率和缓解路径爆炸为研究目的进行了深入研究,主要成果如下:(1)提出基于参数约束的分支覆盖动态符号执行优化算法。通过识别程序代码中具有特殊参数的函数,并通过检索获取函数对应的特殊参数,利用这些特殊参数作为该路径的约束条...
【文章来源】:哈尔滨师范大学黑龙江省
【文章页数】:47 页
【学位级别】:硕士
【部分图文】:
路径覆盖数对比
第4章基于约束图的DSE优化方法31图4-7执行时间对比Figure4-7Comparisonofexecutiontime表4-4分支覆盖数Table4-4Branchcoverage方法gzipgrep实例代码CREST15011384096约束图方法16111604096态符号执行需要更多的时间,而通过预处理得到约束图后,动态符号执行需要的时间更短。由分支覆盖数表4-4可知,本文的方法和CREST均可以对实例代码进行全覆盖,虽然实例代码路径分支多、约束条件复杂,但代码量较少,在时间允许的情况下可以检测所有的路径。但grep和gzip的路径空间更为复杂、代码量较大,由于循环造成的大量路径,CREST在有限的资源下不能对所有路径进行检测,而约束图的优化方法减少了循环的影响,在有限的资源下检测了更多的路径分支。传统动态符号执行对程序进行检测时,会对程序中的循环进行展开,产生大量的可检测路径,对有限时间下的代码检测造成压力的同时也对大量的冗余路径进行重复检测。而基于约束图的优化方法减少了对循环体的重复检测,从而减少了检测路径的数量和冗余路径,在可接受的时间内可以检测更多的代码,也证明了基于约束图的优化方法可以降低循环对动态符号执行的影响。
【参考文献】:
期刊论文
[1]基于符号执行与模糊测试的混合测试方法[J]. 谢肖飞,李晓红,陈翔,孟国柱,刘杨. 软件学报. 2019(10)
[2]基于输入约束的符号执行优化[J]. 汪孙律,林渝淇,杨秋松,李明树. 通信学报. 2019(03)
[3]符号执行研究综述[J]. 叶志斌,严波. 计算机科学. 2018(S1)
[4]基于自适应模糊测试的IaaS层漏洞挖掘方法[J]. 沙乐天,肖甫,杨红柯,喻辉,王汝传. 软件学报. 2018(05)
[5]基于懒符号执行的软件脆弱性路径求解算法[J]. 秦晓军,周林,陈左宁,甘水滔. 计算机学报. 2015(11)
[6]基于动态插桩的C/C++内存泄漏检测工具的设计与实现[J]. 曾佳平,杨秋辉,汪华龙,徐保平,黄蔚. 计算机应用研究. 2015(06)
[7]软件安全漏洞检测技术[J]. 李舟军,张俊贤,廖湘科,马金鑫. 计算机学报. 2015(04)
博士论文
[1]动态符号执行关键技术研究[D]. 安靖.北京邮电大学 2014
硕士论文
[1]程序测试输入的自动生成技术框架及其优化实现[D]. 曹阳.南京大学 2019
[2]基于符号摘要的动态符号执行的研究[D]. 罗荣森.电子科技大学 2016
[3]基于插桩技术的漏洞自动化验证研究与实现[D]. 向琦.电子科技大学 2016
[4]分段式混合执行测试方法的研究[D]. 刘春宏.华东师范大学 2014
[5]动态符号执行的性能优化[D]. 吉小丽.电子科技大学 2013
[6]基于二进制代码的动态符号执行工具[D]. 倪康奇.上海交通大学 2011
[7]基于动态符号执行的二进制代码漏洞挖掘系统研究与设计[D]. 国鹏飞.北京邮电大学 2011
本文编号:3407629
【文章来源】:哈尔滨师范大学黑龙江省
【文章页数】:47 页
【学位级别】:硕士
【部分图文】:
路径覆盖数对比
第4章基于约束图的DSE优化方法31图4-7执行时间对比Figure4-7Comparisonofexecutiontime表4-4分支覆盖数Table4-4Branchcoverage方法gzipgrep实例代码CREST15011384096约束图方法16111604096态符号执行需要更多的时间,而通过预处理得到约束图后,动态符号执行需要的时间更短。由分支覆盖数表4-4可知,本文的方法和CREST均可以对实例代码进行全覆盖,虽然实例代码路径分支多、约束条件复杂,但代码量较少,在时间允许的情况下可以检测所有的路径。但grep和gzip的路径空间更为复杂、代码量较大,由于循环造成的大量路径,CREST在有限的资源下不能对所有路径进行检测,而约束图的优化方法减少了循环的影响,在有限的资源下检测了更多的路径分支。传统动态符号执行对程序进行检测时,会对程序中的循环进行展开,产生大量的可检测路径,对有限时间下的代码检测造成压力的同时也对大量的冗余路径进行重复检测。而基于约束图的优化方法减少了对循环体的重复检测,从而减少了检测路径的数量和冗余路径,在可接受的时间内可以检测更多的代码,也证明了基于约束图的优化方法可以降低循环对动态符号执行的影响。
【参考文献】:
期刊论文
[1]基于符号执行与模糊测试的混合测试方法[J]. 谢肖飞,李晓红,陈翔,孟国柱,刘杨. 软件学报. 2019(10)
[2]基于输入约束的符号执行优化[J]. 汪孙律,林渝淇,杨秋松,李明树. 通信学报. 2019(03)
[3]符号执行研究综述[J]. 叶志斌,严波. 计算机科学. 2018(S1)
[4]基于自适应模糊测试的IaaS层漏洞挖掘方法[J]. 沙乐天,肖甫,杨红柯,喻辉,王汝传. 软件学报. 2018(05)
[5]基于懒符号执行的软件脆弱性路径求解算法[J]. 秦晓军,周林,陈左宁,甘水滔. 计算机学报. 2015(11)
[6]基于动态插桩的C/C++内存泄漏检测工具的设计与实现[J]. 曾佳平,杨秋辉,汪华龙,徐保平,黄蔚. 计算机应用研究. 2015(06)
[7]软件安全漏洞检测技术[J]. 李舟军,张俊贤,廖湘科,马金鑫. 计算机学报. 2015(04)
博士论文
[1]动态符号执行关键技术研究[D]. 安靖.北京邮电大学 2014
硕士论文
[1]程序测试输入的自动生成技术框架及其优化实现[D]. 曹阳.南京大学 2019
[2]基于符号摘要的动态符号执行的研究[D]. 罗荣森.电子科技大学 2016
[3]基于插桩技术的漏洞自动化验证研究与实现[D]. 向琦.电子科技大学 2016
[4]分段式混合执行测试方法的研究[D]. 刘春宏.华东师范大学 2014
[5]动态符号执行的性能优化[D]. 吉小丽.电子科技大学 2013
[6]基于二进制代码的动态符号执行工具[D]. 倪康奇.上海交通大学 2011
[7]基于动态符号执行的二进制代码漏洞挖掘系统研究与设计[D]. 国鹏飞.北京邮电大学 2011
本文编号:3407629
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3407629.html