论文部分内容阅读
本文首先对符号执行当前的研究现状、技术挑战和解决方案进行了全面深入的研究,分析了目前主要的DSE软件,研究显示DSE技术经过近10年的研究进展显著,但是仍然面临一些技术难题限制了DSE的进一步发展,例如浮点数符号执行、非线性运算、符号指针、路径爆炸等等。其次本文以DSE技术为核心设计并实现了一款DSE软件VunScope,它不需要被分析软件的源码,并具有以下创新:(1)直接符号执行x86指令,而不需要中间表示IR;(2)提出的启发式方法能够通过解决重叠符号问题,提高VunScope符号执行的准确性;(3)使用懒惰检查(lazy checking),而不是检查每个算数运算。然后基于VunScope进行二次开发,研究出基于DSE的软件漏洞自动化发掘软件VunDetect,实验结果表明VunDetect能够检测到的漏洞包括整型溢出漏洞、函数参数错误、空指针引用错误、除0错误。VunDetect具有如下创新点:(1)VunDetect提出主动式漏洞发掘,向路径条件中主动注入漏洞约束,从而能够发掘更多软件漏洞;(2)VunDetect提出优化的路径搜索算法,提高漏洞发掘效率;(3)VunDetect可以通过开发插件增强其漏洞发掘能力,扩展性很强。最后根据现有研究基础,对DSE发展现进行预测,提出了DSE未来的研究方向:(1)路径爆炸问题:它是阻碍符号执行发展的最主要难点所在,因此后续应该对符号执行产生的路径爆炸问题进行详细且深入的研究;(2)求解器问题:符号执行依托于求解器,因此求解器的功能提升对符号执行具有相当大的影响;(3)符号执行的专用化:被分析软件差异化问题导致用户需求也有很大不同,专用化可以解决此类问题;(4)符号执行并行化:它也是一个重点研究方向,根据已有的并行化基础设施如:多核CPU、云计算等对约束求解、路径探索等进行并行化,能够明显的提升符号执行的效率。