论文部分内容阅读
威胁软件安全最大的问题就是软件漏洞。由于软件漏洞的存在,大量的计算机病毒、蠕虫或恶意用户都可以利用软件中存在的漏洞进行信息窃取或提升权限等行为,严重威胁了个人乃至国家的安全。由于大部分软件不提供源码,且在检测漏洞的过程中需要重现软件出现的问题,本文重点研究了针对二进制程序的动态漏洞挖掘技术。研究工作的主要贡献如下: (1)深入调研分析了针对二进制程序的漏洞挖掘技术现状和发展趋势。选取了动态污点分析、符号执行和模糊测试三种动态漏洞挖掘技术作为研究重点,调研了三种技术的国内外研究现状,分析关键技术及实现机理,深入分析三种技术在漏洞挖掘中的作用和内在关联性,为集成机理研究和集成系统实现提供技术基础。 (2)提出并设计实现了一种二进制动态漏洞挖掘集成框架与方法。模糊测试是非常有效的动态漏洞挖掘方法,但在生成用例的过程中存在盲目性。为了提高测试用例生成的有效性,在调研动态漏洞挖掘技术的研究现状和关键技术基础上,研究融合动态污点分析和符号执行技术,以提高模糊测试过程中测试用例生成效率的动态漏洞挖掘系统集成框架和方法,并设计实现了二进制动态漏洞挖掘分布式系统,实验验证了动态漏洞挖掘集成系统的智能化和自动化。 (3)提出并实现了一种动态污点分析隐式信息处理方法。动态污点分析中存在的隐式信息会导致污染缺失现象。处理隐式信息需要动态传递分支结构间信息,而动态分析过程中不能获得程序完整的结构流程图。因此提出动态处理隐式信息算法,通过引入变量池辅助隐式信息的传播,并通过实验验证了隐式信息传播的有效性。 (4)提出并设计实现了一种面向二进制程序动态漏洞挖掘的非均衡任务分配策略和方法。为提高测试效率可以使用均衡分布式方法部署测试环境。但是网络中不同机器性能不同,而且某些二进制程序的执行依赖于特定的硬件环境。因此设计非均衡任务分配策略,依据机器硬件环境不同分配测试子任务,并通过实验验证系统的非均衡任务分配特性。