论文部分内容阅读
随着互联网的发展,协议软件在网络通信中发挥着越来越重要的作用。与此同时,针对协议软件的攻击越来越多,一般为利用协议软件漏洞实施的远程攻击,危害十分严重。为了防止协议软件被攻击,生产厂商经常采用多种方法对其产品进行安全性测试,希望能够发现并消除尽量多的漏洞。因此,研究高效协议软件安全性分析方法,对及时发现漏洞、防止黑客攻击,具有重要的意义。论文围绕高效协议软件安全性分析中的关键技术展开研究。通过梳理发现,现有的协议软件安全性分析方法还不够完善,存在测试深度浅、测试覆盖低、交互测试能力差、自动化程度低等问题。常规的符号执行方法用于协议软件安全性分析,只能测试单次的数据包输入,测试深度浅。常规的模糊测试方法运用于协议软件安全性分析,系统随机性强,代码覆盖率低。据此,论文研究了协议软件的高效测试方法;提高了测试方法的测试深度、测试覆盖、交互测试能力和自动化程度。论文的主要工作和创新点包括以下四个方面:论文针对软件安全性分析的测试深度问题,提出了一种基于数据包选择符号执行的深度测试方法。首先对数据包输入进行符号化处理,拦截网络相关的系统函数调用,将符号数据包注入测试目标。其次应用选择符号执行方法,重点测试安全敏感区域,缓解状态空间爆炸。随后扩展到多数据包输入的情况,进行深度的测试。实验结果表明,该方法缓解了符号执行的状态空间爆炸问题,可以测试到协议软件的深层状态,提高了协议软件安全性分析的代码覆盖率和测试效率。论文针对协议软件安全性分析的特定状态测试覆盖问题,提出了一种模型导向的符号执行测试方法。首先根据状态机学习算法,对协议软件进行状态机模型推断。然后基于推断出的协议模型,引导协议软件运行到指定的协议状态,并在该状态附近进行符号执行测试,实现对指定协议状态的高效测试。实验结果表明,该方法缓解了符号执行的状态空间爆炸问题,可以快速测试到深层的协议状态,提高了协议软件安全性分析的测试效率。论文针对协议软件安全性分析的交互测试问题,提出了一种基于联合符号执行的交互测试方法。该方法结合协议软件接收端与发送端的约束条件,对两端进行联合符号执行,缩减符号执行的状态空间。实验结果表明,该方法缓解了符号执行的状态爆炸空间问题,提高了协议软件安全性分析的交互测试能力和测试效率,可以发现协议软件交互测试方面的安全问题。论文针对协议软件安全性分析的自动化问题,提出了一种面向高覆盖的自动化模糊测试方法。首先该方法通过块状协议描述语言自动构建目标协议模型;然后结合遗传算法的演化机制,优化模糊测试的测试用例生成过程。实验结果表明,该方法可有效提升模糊测试的代码覆盖率,实现对协议软件安全性的高效自动化分析。