编辑: sunny爹 | 2016-10-20 |
m e m o r y o v e r f l o w ;
d y n a m i c t a i n t a n a l y s i s ;
c y p e r s e c u r i t y ;
a t t a c kd e t e c t i o n '
引言 近年来, 因路由器安全问题所带来的网络事件不断地增 多, 路由器的脆弱性不断地被利用, 给网络安全带来严峻的挑 战.C i s c o ( 思科) 路由器作为网络数据交换的基础设施, 以其 绝对的市场占有率[
1 ] 被广泛地部署到互联网中, 对其安全性 的考虑是一个不可回避的问题. 棱镜门 事件说明了 C i s c o 路由器存在安全问题. C i s c o I O S ( i n t e r n e t w o r ko p e r a t i n g s y s t e m ) 广泛地运行于 C i s c o 公司的路由交换设备中, 主要用于管理其路由交换设备的 硬件资源以及实现各种网络服务.目前, 公开的关于 C i s c o 路 由器安全性方面的研究资料比较有限.在Cisco路由器脆弱 性利用方面, L i n d e r [
2 ,
3 ] 在2003年的 B l a c kH a t 会议上完整地分 析了当时在 C i s c oI O S 中发现的一些安全问题, 同时还给出了 缓冲区溢出漏洞利用的一些方法.在2005年的 B l a c kH a t 会 议上, L y n n [
4 ] 对CiscoI O S 的体系结构进行了分析, 探讨了 C i s c oI O S 任意代码执行的可行性, 并通过利用 I O S的一个漏洞, 植入 s h e l l c o d e 代码, 绕过 c h e c k _ h e a p s ( ) 内存保护机制, 实现了 s h e l l c o d e 的成功执行.2
0 0 8年, M u n i z [
5 ] 介绍了使用 I D A辅助 进行 I O S 逆向分析的脚本, 给出了一种实现 I O Sr o o t k i t 注入的 方法, 并称该方法可以达到高度的隐蔽性.2
0 0 9年, L i n d e r 在 文献[
6 ] 中对 C i s c oI O S的注入方法进行了阐述, 同时分析了 C i s c o 路由器的安全结构, 并公布了 C i s c oI O S的shellcode技 术.2
0 1 1年的 b l a c kH a t E u r o p e 会议上, M u n i z [
7 ] 提出了一种基 于虚拟化的 F u z z i n g 方法, 用于 C i s c oI O S 漏洞的挖掘和调试分 析.在安全性检测方面,
2 0
0 9年, L i n d e r 在文献[
8 ] 中对 C i s c o I O S 的取证工具 C I R ( C i s c oi n c i d e n c er e s p o n s e ) [
9 ] 作了介绍, 该 工具通过验证 I O S映像的完整性和路由器运行时的状态来判 断IOS是否受到了安全威胁.2
0 1 3年, 曾诚等人[
1 0 ] 介绍了一 种检测 C i s c oI O S 映像注入攻击的方法, 用于对 C i s c oI O S 遭受 映像注入时进行安全性检测.陈立根等人[
1 1 ] 提出了一种基于 动态污点分析的 C i s c oI O S漏洞攻击检测方法, 通过考虑漏洞 第33卷第 6期2016年6月 计算机应用研究ApplicationR e s e a r c ho f C o m p u t e r s V o l
3 3N o
6 J u n .2
0 1
6 触发的条件来检测针对 C i s c o 路由器的攻击.目前, 针对 C i s c o 路由器的脆弱性利用的方法不断增多, 同时对于其攻击检测方 面的技术十分有限, 因此需要引入对于 C i s c o 路由器攻击检测 的方法来及早发现路由器遭受的入侵, 提高网络的安全性. ! 相关工作 内存溢出攻击又叫缓冲区溢出攻击, 是指恶意攻击者通过 向正常程序的缓冲区中写入超过实际缓冲区大小, 进而导致缓 冲区出现溢出的行为.它通过利用程序本身存在的弱点来破 坏正常的堆栈结构, 使程序偏离正常的执行轨迹, 进而达到攻 击者的目的.缓冲区溢出出现的根本原因是 C语言本身存在 的不安全性导致的[
1 2 ] , 一方面是由于没有对数组的边界或者 指针的使用进行限制, 另一方面是 C语言库函数中存在许多 可以导致缓冲区溢出的函数, 如strcpy、malloc、sprintf等函数. 缓冲区溢出分为栈溢出、 堆溢出等. C i s c oI O S 是Cisco公司为其路由交换设备开发的商业软 件, 并不开源, 它是二进制的 E L F文件.目前, 对于二进制代 码内存溢出攻击的检测方法主要有两种[