用网管工具抗DDoS
2009-10-19 中国IT实验室
流行的红色代码和尼姆达是两种至今在大型网络中仍横行无忌的病毒,像野草一样屡杀不尽!它们实质是一种DDoS攻击。本文作者通过大量的实践,用一种网络管理工具有效制止了这类病毒的蔓延,给网管员提出了一种新思路。
背景
全国海关网络系统是以总署信息中心为中心节点,通过星形结构覆盖全国各地分关的基于TCP/IP协议的专用计算机网络。网络上层运行着多项海关内部通关业务和办公自动化业务,还承载着同其他相关单位的业务来往。随着海关业务不断发展,网络上运行的通关现场应用项目越来越多,它们实时性强,这就对网络保障工作提出了严格的要求。为了确保海关网业务的不间断运行,必须全方位实时监控各级网络的运行状况,做到及时有效预警、帮助快速分析和处理各类网络问题、监测网络非法攻击和病毒的传播。反复调研后,我们采用NAI公司的网络协议分析软件SnifferPro LAN Suite4.7(适用于以太网、令牌环网及FDDI环境)作为海关信息中心网络实时监控系统的核心软件,部署在总署信息中心的几个主要业务流量汇聚节点,实时对网络状况进行监测。
本以为Sniffer只在流量管理上具有优势,但去年爆发红色代码和尼姆达病毒时,在其他杀毒软件不起作用的情况下,没想到Sniffer却发挥了巨大的作用,使海关网络免受了损失。
安装
首先要把装有Sniffer的工作站接入适当的节点,做法之一是把一些重要业务节点的流量在交换机上以Span方式镜像到另一个端口,接入安装了Sniffer的工作站。当然也可以采用流量测试分路器(TAP)将需监测的流量引入Sniffer工作站。两种方式各有所长,前者优点是安全,监测节点不会影响被检测的业务节点性能; 但镜像时交换机会滤掉网络物理层的错帧,监测设备不会发现这些问题。后者需把其串入传输线路中,能如实地采集线路上包括网络底层错帧的所有数据包,但由于测试分路器是串联接入方式,如果它出现了故障就可能影响业务线路的通畅。
由于海关业务对实时性和稳定性要求极其苛刻,权衡利弊之后我们选择了安全性较高的镜像方式。
监测
通过Sniffer首先发现了网络上有非常大的异常流量。它究竟是由什么引起的呢?必须进行监测,在监测时采取的方针是先宏观、再微观。
1.首先观察整体的通信情况
(1)双击Sniffer快捷方式进入操作界面;
(2)选择菜单栏中的monitor-select filter,弹出过滤器选择窗口,确认apply filter未被选中,即不应用任何过滤;
(3)再选择菜单栏中的monitor-matrix,就会弹出matrix窗口,如图1所示。
2.观察病毒特征
红色代码和尼姆达病毒有以下几种特征。
(1)染毒的机器通过HTTP协议,由一个IP地址向很多不存在的IP地址大量发送大小为66~70个字节的无应答包。
(2)染毒的机器通过NetBios_SSN_T协议,由一个IP地址向很多其不应访问的IP地址大量发送大小为66~70个字节的包,有时对一段IP地址作规律性的顺序访问,如从10.1.1.1开始逐个访问到10.1.1.10。
这两个病毒的实质是对大量的主机地址发起Syn Flood DDoS攻击。在图1的matrix中能够看到10.99.33.110这台机器用HTTP协议大量向本网不存在或不应访问的地址发包。至于如何判断访问是否合理就要看网管员的经验了,他应能对地址的分布以及网段间互通关系有清晰的了解。
3.抓包对具体的传输模式进行分析
有时只看matrix表里的源宿地址和包大小不能分辨出某些病毒特征,还需要抓包。应先设好过滤器,步骤如下。
(1)选择菜单栏中的capture-define filter,弹出过滤器定义(define filter)窗口,右面是已有过滤器的名字,左面是过滤设置页。
(2)一般名为default的过滤器是无条件的,即所有的包都抓,如果这是你的意图,可以选择它。为保证其无过滤条件应点击窗口左下方的reset。
(3)如果你需要设置过滤条件,点击窗口下方的profiles,弹出capture profile窗口。
(4)点击new, 弹出new capture profile窗口。在文本框内键入新建过滤器的名字为“first”;Copy Exist Profile为“Default”;点击ok,回到capture profile窗口,点击done完成。
(5)回到define filter窗口后,我们设一个简单的过滤条件:要抓所有和10.1.253.10通信的包。
● 先在address栏内选IP:意为条件地址是IP地址;还可设为硬件地址或IPX地址。
● 再把mode设为include:意为只抓满足所设条件的包; 还可选exclude设为只抓不满足所设条件的包。
● 然后在地址栏内分别把station1、direction、station2填好,设置就算是完成了,如图2所示。
(6)选中设置的过滤器
● 选择菜单栏中的capture-select filter;
● 弹出过滤器选择(select filter)窗口,选中所设的过滤器first,点击确定。
(7)进行抓包
● 先选择菜单栏中的capture-capture panel,打开capture panel,它可以显示抓包数量和当前占用内存的百分比。
● 点击工具栏内的start键,抓包就开始了。此时会弹出expert窗口。观察capture panel,当抓包数量够了之后就可以点击stop and display观察抓包结果,此时会弹出一个窗口,选择窗口下方的不同功能页来观察抓到的数据包。
分析
进一步通过decode来对这些病毒数据包进行解码会发现,它们实际上是大量TCP/IP建立连接时请求端发送的第一个数据包,即TCP连接的第一次握手,但第一次握手之后就不再继续下面的过程。此时接收数据包的一方主机会在系统中创建新连接并等待TCP连接第二次握手,如果机器大量收到这种半连接包,就会导致接收数据包的主机系统资源一点点地被无效连接耗尽直至系统瘫痪,而且数量巨大的不同目的地址的数据包也会使承担路由任务的网络设备不堪重负,影响正常业务的运行。这是SYN Flood攻击!它对网络的危害很大!所以一旦找到其源地址就要立即使其下线。
自红色代码病毒爆发之后,考虑到病毒具有周期性和隐蔽性,我们开始对病毒定期主动搜索,截至到目前查出感染病毒机器共达300台/次以上。Sniffer在日常工作中的trouble shooting表现同样出色,实时网络分析帮助我们快速查找并解决了大大小小几十次网络传输故障和性能问题,无论是流量拥塞还是线路故障都能被它的“透视眼”及时发现。另外,Sniffer在平时的网络性能维护中也大显身手,协助其他部门检测或提供网络传输数据60次以上,曾多次为各类应用项目系统联调提供电信专线或业务主机的性能监测,获得了许多对今后的正式运行很有价值的数据。