基于本地网络的蠕虫检测定位算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国科学 E 辑: 信息科学 www.scichina.com
2008 年 第 38 卷 第 12 期: 2099 ~ 2111
《中国科学来自百度文库杂志社
SCIENCE IN CHINA PRESS
info.scichina.com
基于本地网络的蠕虫检测定位算法
杨新宇*, 史椸, 朱慧君
西安交通大学计算机科学与技术系, 西安 710049 * E-mail:yxyphd@mail.xjtu.edu.cn 收稿日期 : 2007-10-08; 接受日期 : 2008-04-12 国家自然科学基金资助项目 (批准号 : 60403028)
摘要
蠕虫的传播对计算机网络有极大危害, 是目前网络安全研究中的一
关键词
蠕虫检测 流量特征 检测定位
大热点问题. 文中分析了一类采用 TCP 协议的蠕虫扫描时的流量特征, 提出 了基于本地网络流量信息的蠕虫检测方法, 并针对高速扫描和低速扫描的不 同特点调整了定位方法, 使其能检测定位不同扫描速率的蠕虫. NS-2 仿真实 验表明该方法能够快速检测到蠕虫.
1) Zou C C, Gong W B, Towsley D, et al. The monitoring and early detection of Internet worms. http://citeseer.ist.psu.edu/ 711538.html
2100
中国科学 E 辑: 信息科学
2008 年 第 38 卷 第 12 期
蠕虫, 具体用法见 3.1 小节的叙述.
2
蠕虫扫描特征
有一部分蠕虫基于 UDP 协议传播, 如 Sapphire/Slammer, 由于 UDP 协议实现简单, 它们
都被设计成带宽限制型(bandwidth limited)蠕虫, 即它们发送扫描数据包的速率只受到网络带 宽的限制 , 因而可以达到极高的速率. 幸运的是 , 已经有许多监测网络异常流量的方法, 如基 于小波变换和网络流量自相似特性的文献[11, 12], 利用 NetFlow 信息的文献[13], 都可以用来 识别这种带宽限制型扫描产生的高流量, 从而发现扫描行为. 更多的网络服务都是基于 TCP 协议的, 因此很多蠕虫也用 TCP 协议去扫描网络, 希望发 现并感染提供 TCP 服务的有漏洞的主机, 从而引起蠕虫的广泛传播. 例如, Code Red 和 Code Red Ⅱ扫描 80 端口, 希望利用 IIS 协议漏洞感染主机[3]. 下面我们分析基于 TCP 协议的蠕虫 扫描阶段的流量特点. TCP/IP 协议[14]规定, 建立 TCP 连接之前要进行 3 次握手, 由请求方发送 SYN 数据包, 如果目的地址对应的主机正常运行、被请求的端口开放时, 它会向源地址发送 SYN-ACK 数据包, 如果请求方长时间没有收到 SYN-ACK 响应, 将重新发送 SYN 数据包.但由 于扫描目的地址通常是随机选取的 , 扫描中会遇到目的地址不存在或目的地址的主机的被扫 描端口没有开放的情形, 这时发出的 SYN 数据包得不到正常的 SYN-ACK 响应. 蠕虫往往不 考虑发出的扫描数据包被响应与否 , 只希望尽可能多地发送扫描数据包来快速传播和尽量占 用网络资源, 因此可以有 2 种编程方式: 1) 基于 TCP 协议编程, 这需要调用 connect()方法与对 方通信 , 如果连接失败 , 会在超时以后才发起新的连接 , 但创建多个扫描线程来弥补调用 connect()不成功的超时等待; 2) 采用原始套接字编程重新填写 TCP 包头, 但不按照 TCP 的连 接方式发送. 从而, 当蠕虫在网络中传播时, 如果采用随机扫描的方式, 由于缺少正常的连接 失败等待重传过程, 没有被正常响应的 SYN 数据包远比平时多. 由于 TCP 扫描是普遍存在的 一种蠕虫扫描形式, 并且它具有上文提到的特征, 因此我们提出对基于 TCP 协议随机扫描的 蠕虫的检测定位算法. 还有一类更隐蔽的蠕虫会先通过一定操作取得一些活动主机的地址构成一个黑名单 (hit-list), 然后按照名单上的地址扫描和攻击 [1,15], 例如通过搜索 google 去攻击网站的 Santy 蠕 虫 1). 与随机扫描不同, 它们选定的目标以活动主机为主, 因此连接失败的情形不会大量出现, 本文介绍的方法对这类基于黑名单的蠕虫(hit-list based worms)不适用.
1) Net worm using Google to spread. http://news.com.com/Net+worm+using+Google+to+spread/2100-7349_3-5499725.html? tag=nl
蠕虫是一种可以在网络中利用常用服务的安全和策略中的漏洞传播自己的程序 [1], 它们 一般会造成受感染主机无法正常工作 , 更多情形是它们会在网络中迅速广泛传播 , 产生大量 垃圾数据包占用网络资源, 造成网络瘫痪. 自从 1988 年 Morris 蠕虫[2]问世以来, 它就一直危害 着互联网和联网的计算机, 尤其是自 2001 年起, Code Red, Code Red II[3], Sapphire/Slammer1), Nimda, Blaster, Sasser2), Witty3)等蠕虫在全球范围的爆发均对社会经济造成了巨大损失. 最近 虽然没有如此大规模的蠕虫活动, 但仍不断有蠕虫活跃在网络中, 如 NORTINA4), SOBER5)和 ZOTOB6)等. 因此, 研究有效的蠕虫检测、防御方法具有重要意义. 蠕虫在传播之初通常需要发现一些可感染目标才能有效地传播 . 由于方法简单 , 许多全 自治蠕虫和需要定时器或用户激活的蠕虫都常使用 “扫描 ”作为其目标发现策略 [1] . 由于扫描 是许多蠕虫传播的第一步, 而且是一种与正常流量有极大区别的异常行为[1], 因此有效检测扫 描行为已经成为研究蠕虫检测和防御的一类重要方法. 本文的贡献为针对基于 TCP 协议的蠕 虫扫描阶段的流量特征 , 提出依据本地网络流量信息的蠕虫检测定位方法 (detection and location algorithm against local-worm, 简称为 DLAL), 该方法可根据蠕虫的扫描速率, 对高速
1) Moore D, Paxson V, Savage S, et al. The spread of the Sapphire/Slammer worm. http://www.cs.berkeley.edu/~nweaver/sapphire/ 2) CERT. CERT/CC advisories. http://www.cert.org/advisories/ 3) Shannon C, Moore D. The spread of the witty worm. http://www.caida.org/outreach/papers/2004/witty/ 4) WORM_NORTINA.A. http://www.trendmicro.com/vinfo/virusencyclo/default5.asp?VName=WORM_NORTINA.A 5) WORM_SOBER.U. http://www.trendmicro.com/vinfo/virusencyclo/default5.asp?VName=WORM_SOBER.U 6) WORM_ZOTOB.A. http://www.trendmicro.com/vinfo/virusencyclo/default5.asp?VName=WORM_ZOTOB.A
1
相关工作
很多现有的检测蠕虫的方法都是基于对蠕虫扫描阶段的分析展开的. Gu等人[4]提出源-目
的相关性方法(destination-source correlation, 简称 DSC)来检测通过扫描快速传播的蠕虫, 依据 是当一台主机的端口 i被感染 , 它会在短时间内向外发送扫描其他主机的端口 i, 它把 “一个主 机的端口 i收到数据包 , 然后开始发送目的为端口 i的数据包 ”作为感染模式 , 若具有这种活动 模式的主机发送数据包的速率超过规定的阈值 , 便对该主机报警 . Lai 等人 [5] 提出一种根据 NetFlow 数据 ( 一些型号的路由器可以提供 NetFlow 数据 ) 的检测方法 , 其根据是蠕虫扫描会引 起大量来自同一源地址、发往不同目的地址的同一端口的NetFlow信息, 因此靠观察网络中是 否出现具有这样特征的大量NetFlow来判断蠕虫的发生. Kim等人[6]靠观察数据包源地址、目标 地址和端口的变化情形, 同样把出现源地址、目标端口相同, 目标地址不同的 “流 (flow)”作为 判断蠕虫的依据 . Berk 等人在文献 [7]中认为蠕虫扫描目的地址具有随机性 , 因此在扫描阶段 网络中会产生大量到达不了目的地的数据包, 从而受害主机会吸引比正常主机多的“目标不可 达(destination unreachable messages)”消息, 可以通过集中分析ICMP错误消息的源地址、 目标地 址和端口, 根据其重复出现的模式判断是否有扫描或攻击发生 . Zou 等人 1)设计了一种蠕虫早 期监视和检测系统, 由一个“警报中心”和若干分布式监视器构成, 当观测速率超过平均速率 2 倍时触发Kalman滤波器来预测被感染主机单位时间感染别的主机的概率 , 当这个概率的估计 值表现为一个相对稳定的正数时, 判定蠕虫发生. Wu等人于文献[8]中提出的蠕虫检测防御体 系结构与Zou1)类似, 包括一个监视与检测中心(monitoring and detection center)和若干检测部件, 收集目的地址为不活动IP地址(未分配地址)的数据包, 如果某个源地址发出 2 次这类数据包, 就 判定为蠕虫受害者, 这种判定规则叫做 2 次扫描决定规则(two scan decision rule, 简称为TSDR), 而TSDR规则在文献[3]中也被用作监视Code-Red蠕虫传播时判定主机受害的标准. 我们的工作组一直在进行网络流量测量和分析的研究 , 尤其是在网络异常流量的判断和 处理方面作了大量工作 . 在文献 [9]中 , 我们研究了网络流量的预测 , 提出了一种用误差修正 的 LMS 算法来自适应调整 AR 模型(EaLMS), 预测网络流量. 由于这种方法对平稳流量效果好 于波动较大的流量, 我们在文献[10]中应用 EaLMS 来检测主机是否受到大流量的 DoS/DDoS 攻击 . 它的主要思想是 : 当大量攻击流量到来时 , 网络流量呈现出比平时流量大且平稳的特 性. 根据预测算法对平稳流量的预测优势, 它对攻击流量也会有较好的预测效果, 因此在检测 算法中引入流量预测可提高响应速率 . 本文将继续使用这种突发检测算法来发现高速率扫描
杨新宇等: 基于本地网络的蠕虫检测定位算法
和低速扫描蠕虫的分别进行定位. 本文组织如下: 第 1 节介绍了相关工作, 包括现有的针对扫描阶段的蠕虫检测策略和我们 在流量测量分析方面的已有成果; 第 2 节简单说明了蠕虫扫描阶段的流量特征; 第 3 节介绍了 对本地高速扫描蠕虫的检测和定位算法; 第 4 节介绍了对本地低速扫描蠕虫的检测和定位算 法; 第 5 节用 NS-2 仿真实验验证了 DLAL 方法的检测效果; 最后, 总结了全文.
3
对高速率扫描蠕虫的检测及定位算法
为了尽可能快地传播, 大部分基于TCP的蠕虫会向外以极高的速率进行扫描, 例如: Code
Red II会创建 300 或 600 个线程, 每个病毒线程每 100 ms就扫描某随机地址的 80 端口[3], 这样 平均速率达到 3000~6000 包/s, 远超过普通主机的正常连接速率. 如果子网中某台主机感染蠕 虫并开始向外扫描, 会引起网络流量的剧增, 根据这一点, 可以应用文献[10]中提出的基于测 量和预测的流量突发检测算法来发现子网内感染蠕虫的主机的扫描行为 . 但是 , 一些合法操
相关文档
最新文档