一种Cisco IOS 启发式模糊测试方法
2014-12-02陈立根刘胜利
陈立根,刘胜利,肖 达,彭 飞
(数学工程与先进计算国家重点实验室,郑州 450001)
1 概述
随着互联网时代的到来和通信技术的发展,利用开放的网络环境进行通信已经成为时代发展的趋势。路由器是互联网络中的核心交换设备,是网络互联的基础。
目前,Cisco 公司的路由器产品应用范围非常广泛,居于市场首位。Cisco 互联网操作系统(Internet Operating System,IOS)是Cisco 公司开发的,专门用于其路由交换设备的互联网操作系统。主要考虑到速度的因素,IOS 被设计成比较简洁、驻留在存储器且受限于硬件平台的一种系统,而且并没有其他许多操作系统具有的安全保护机制[1],如进程间的存储保护。Cisco 公司没有对外公开IOS 内部的相关细节,IOS 一般基于PowerPC 或者MIPS 架构,和常见的Intel 架构存在较大的差异,且不支持第三方软件的运行,但这并不代表IOS 是完全安全的。2003 年,来自Phonoelit 黑客组织的FX 在文献[2-3]中对Cisco IOS的一些安全问题做了比较完整的分析,并给出了IOS缓冲区溢出漏洞的利用方法。2005 年BlackHat USA大会上,Michael Lynn 阐述了Cisco IOS 的体系结构,论证了在Cisco IOS 上执行任意代码的可行性,成功执行了shellcode[4]。这些攻击方法主要是利用IOS相关协议的漏洞,完成对路由器的远程控制,对网络安全造成了严重的影响。因此,研究Cisco IOS 下的漏洞挖掘方法,全面发现与及时修补IOS 的漏洞,具有重要意义。
在相关领域的典型研究成果中,微软和斯坦福大学的研究人员,分别独立提出了混合符号执行的方法,并实现了一系列有代表性的工具,如KLEE[5],EXE[6],DART[7]等。混合符号执行的核心思想是将输入数据用符号变量表示,模拟程序执行,收集程序路径约束条件,最后通过约束求解来生成驱动程序执行其他路径的测试用例,来提高测试用例的代码覆盖率。……
