注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 配置审核的实施
 帮助

IT技术助力管理


2008-01-31 20:10:31
 标签:技术 IT 管理   [推送到技术圈]

使用 NetFlow 分析网络异常流量 
一、前言
     近年来,随着互联网在全球的迅速发展和各种互联网应用的快速普及,互联网已成为
人们日常工作生活中不可或缺的信息承载工具。然而,伴随着互联网的正常应用流量,网络
上形形色色的异常流量也随之而来,影响到互联网的正常运行,威胁用户主机的安全和正常
使用。
     本文从互联网运营商的视角,对互联网异常流量的特征进行了深入分析,进而提出如
何在网络层面对互联网异常流量采取防护措施,其中重点讲述了 NetFlow 分析在互联网异
常流量防护中的应用及典型案例。
    二、NetFlow 简介
     本文对互联网异常流量的特征分析主要基于 NetFlow 数据,因此首先对 NetFlow 做
简单介绍。
     1. NetFlow概念
     NetFlow 是一种数据交换方式,其工作原理是:NetFlow 利用标准的交换模式处理
数据流的第一个 IP 包数据,生成 NetFlow 缓存,随后同样的数据基于缓存信息在同一个
一个 NetFlow 流定义为在一个源 IP 地址和目的 IP 地址间传输的单向数据包流,且
所有数据包具有共同的传输层源、目的端口号。
      2. NetFlow 数据采集
     针对路由器送出的 NetFlow 数据,可以利用 NetFlow 数据采集软件存储到服务器上,
以便利用各种NetFlow 数据分析工具进行进一步的处理。
     Cisco 提供了 Cisco NetFlow Collector (NFC)采集NetFlow 数据,其它许多厂家
也提供类似的采集软件。
     下例为利用 NFC2.0 采集的网络流量数据实例:
      211.*.*.57|202.*.*.12|Others|localas|9|6|2392
|80|80|1|40|1
     出于安全原因考虑,本文中出现的IP 地址均经过处理。
     NetFlow 数据也可以在路由器上直接查看,以下为从 Cisco GSR 路由器采集的数据
实例,:
     gsr #att 2       (登录采集NetFlow 数据的 GSR 2 槽板卡)
     LC-Slot2>sh ip cache flow
     SrcIf SrcIPaddress   DstIf DstIPaddress   Pr SrcP DstP  Pkts
     Gi2/1  219.*.*.229   PO4/2   217.*.*.228  06 09CB 168D    2
     Gi2/1  61.*.*.23  Null  63.*.*.246  11  0426 059A      1
     本文中的 NetFlow 数据分析均基于 NFC 采集的网络流量数据,针对路由器直接输出
的Neflow 数据,也可以采用类似方法分析。
NFC  可以定制多种 NetFlow 数据采集格式,下例为 NFC2.0 采集的一种流量数据实
例,本文的分析都基于这种格式。
     61.*.*.68|61.*.*.195|64917|Others|9|13|4528|
135|6|4|192|1
     数据中各字段的含义如下:
     源地址|目的地址|源自治域|目的自治域|流入接口号|流出接口号|源端口|目的端口|
协议类型|包数量|字节数|流数量
     4.  几点说明
     NetFlow 主要由 Cisco 路由器支持,对于其它厂家的网络产品也有类似的功能,例如
Juniper 路由器支持 sFlow 功能。
     NetFlow 支持情况与路由器类型、板卡类型、IOS 版本、IOS 授权都有关系,不是
在所有情况下都能使用,使用时需考虑自己的软硬件配置情况。
     本文的所有分析数据均基于采自 Cisco 路由器的 NetFlow 数据。
    三、互联网异常流量的 NetFlow 分析
     要对互联网异常流量进行分析,首先要深入了解其产生原理及特征,以下将重点从
NetFlow 数据角度,对异常流量的种类、流向、产生后果、数据包类型、地址、端口等多
个方面进行分析。
     1.  异常流量的种类
      目前,对互联网造成重大影响的异常流量主要有以下几种:
      (1)拒绝服务攻击(DoS)
 DoS 攻击使用非正常的数据流量攻击网络设备或其接入的服务器,致使网络设备或服
务器的性能下降,或占用网络带宽,影响其它相关用户流量的正常通信,最终可能导致网络
服务的不可用。
     例如 DoS 可以利用TCP 协议的缺陷,通过 SYN 打开半开的TCP 连接,占用系统资
源,使合法用户被排斥而不能建立正常的TCP 连接。
     以下为一个典型的DoS SYN 攻击的 NetFlow 数据实例,该案例中多个伪造的源 IP
同时向一个目的IP 发起TCP SYN 攻击。
     117.*.68.45|211.*.*.49|Others|64851|3|2|10000|
10000|6|1|40|1
     104.*.93.81|211.*.*.49|Others|64851|3|2|5557|
5928|6|1|40|1
     58.*.255.108|211.*.*.49|Others|64851|3|2|3330|
10000|6|1|40|1
     由于Internet 协议本身的缺陷,IP 包中的源地址是可以伪造的,现在的 DoS 工具很
多可以伪装源地址,这也是不易追踪到攻击源主机的主要原因。
[Page] (2)分布式拒绝服务攻击(DDoS)
     DDoS 把 DoS 又发展了一步,将这种攻击行为自动化,分布式拒绝服务攻击可以协
调多台计算机上的进程发起攻击,在这种情况下,就会有一股拒绝服务洪流冲击网络,可能
使被攻击目标因过载而崩溃。
     以下为一个典型的DDoS 攻击的 NetFlow 数据实例,该案例中多个 IP 同时向一个
IP 发起 UDP 攻击。
     61.*.*.67|69.*.*.100|64821|as9|2|9|49064|5230|
17|6571|9856500|1
     211.*.*.163|69.*.*.100|64751|as9|3|9|18423|
22731|17|906|1359000|1
61.*.*.145|69.*.*.100|64731|Others|2|0|52452|
22157|17|3|4500|1
      (3)网络蠕虫病毒流量
     网络蠕虫病毒的传播也会对网络产生影响。近年来,Red Code、SQL Slammer、
冲击波、振荡波等病毒的相继爆发,不但对用户主机造成影响,而且对网络的正常运行也构
成了的危害,因为这些病毒具有扫描网络,主动传播病毒的能力,会大量占用网络带宽或网
络设备系统资源。
     以下为最近出现的振荡波病毒NetFlow 数据实例,该案例中一个 IP 同时向随机生成
的多个IP 发起445 端口的TCP 连接请求,其效果相当于对网络发起 DoS 攻击。
     61.*.*.*|168.*.*.200|Others|Others|3|0|1186|
445|6|1|48|1
     61.*.*.*|32.*.*.207|Others|Others|3|0|10000|
445|6|1|48|1
     61.*.*.*|24.*.*.23|Others|Others|3|0|10000|
445|6|1|48|1
      (4)其它异常流量
      我们把其它能够影响网络正常运行的流量都归为异常流量的范畴,例如一些网络扫描
工具产生的大量TCP 连接请求,很容易使一个性能不高的网络设备瘫痪。
      以下为一个IP 对 167.*.210.网段,针对 UDP 137 端口扫描的 NetFlow 数据实例:
       211.*.*.54|167.*.210.95|65211|as3|2|10|1028|
137|17|1|78|1
       211.*.*.54|167.*.210.100|65211|as3|2|10|
1028|137|17|1|78|1
211.*.*.54|167.*.210.103|65211|as3|2|10|
1028|137|17|1|78|1
     2.  异常流量流向分析
     从异常流量流向来看,常见的异常流量可分为三种情况:
     网外对本网内的攻击
     本网内对网外的攻击
     本网内对本网内的攻击
     针对不同的异常流量流向,需要采用不同的防护及处理策略,所以判断异常流量流向
是进一步防护的前提,以下为这三种情况的 NetFlow 数据实例:
     124.*.148.110|211.*.*.49|Others|64851|3|2|
10000|10000|6|1|40|1
     211.*.*.54|167.*.210.252|65211|as3|2|10|
1028|137|17|1|78|1
     211.*.*.187|211.*.*.69|Others|localas|71|6|1721|
445|6|3|144|1
     其中 211 开头的地址为本网地址。
     3. 异常流量产生的后果
     异常流量对网络的影响主要体现在两个方面:
     占用带宽资源使网络拥塞,造成网络丢包、时延增大,严重时可导致网络不可用;
     占用网络设备系统资源(CPU、内存等),使网络不能提供正常的服务。
     4.  异常流量的数据包类型
     常见的异常流量数据包形式有以下几种:
     ?TCP SYN flood  (40 字节)
11.*.64.3|2.*.38.180|64821|as10|5|4|1013|18|6|
1|40|1
     从 NetFlow 的采集数据可以看出,此异常流量的典型特征是数据包协议类型为6
 (TCP),数据流大小为40 字节(通常为TCP 的SYN 连接请求)。
     ?ICMP flood
     2.*.33.1|1.*.97.22|as12|64811|5|2|0|0|1|146173|
218359704|1
     从 NetFlow 的采集数据可以看出,此异常流量的典型特征是数据包协议类型为 1
 (ICMP),单个数据流字节数达218M 字节。
     ?UDP flood
     *.*.206.73|160.*.71.129|64621|Others|6|34|
1812|1812|17|224|336000|1
     *.*.17.196|25.*.156.119|64621|Others|6|34|
1029|137|17|1|78|1
     从 NetFlow 的采集数据可以看出,此异常流量的典型特征是数据包协议类型为 17
 (UDP),数据流有大有小。
     ?其它类型
     其它类型的异常流量也会在网络中经常见到,从理论上来讲,任何正常的数据包形式
如果被大量滥用,都会产生异常流量,如以下的 DNS 正常访问请求数据包(协议类型 53)
如果大量发生,就会产生对 DNS 服务器的 DoS 攻击。
     211.*.*.146|211.*.*.129|Others|Others|71|8|
3227|53|53|1|59|1
[Page]  5.  异常流量的源、目的地址
     目的地址为固定的真地址,这种情况下目的地址通常是被异常流量攻击的对象,如下
例数据:
     211.*.*.153|*.10.72.226|as2|as8|5|4|3844|10000|
17|2|3000|2
211.*.*.153|*.10.72.226|
as2|as8|5|4|3845|10000|17|1|1500|1
     211.*.*.153|*.10.72.226|as2|as8|5|4|3846|10000|
17|1|1500|1
      目的地址随机生成,如下例数据:
     211.*.*.187|169.*.190.17|Others|localas|71|6|
1663|445|6|3|144|1
     211.*.*.187|103.*.205.148|Others|localas|71|6|
3647|445|6|3|144|1
     211.*.*.187|138.*.80.79|Others|localas|71|6|
1570|445|6|3|144|1
      目的地址有规律变化,如下例数据,目的地址在顺序增加:
     211.*.*.219|192.*.254.18|Others|Others|15|9|
10000|6789|17|1|36|1
     211.*.*.219|192.*.254.19|Others|Others|15|9|
10000|6789|17|2|72|2
     211.*.*.219|192.*.254.20|Others|Others|15|9|
10000|6789|17|3|108|3
     源地址为真实 IP 地址,数据同上例:
     源地址为伪造地址,这种情况源地址通常随机生成,如下例数据,源地址都是伪造的
网络地址:
     63.245.0.0|209.*.*.38|as5|as4|3|7|1983|23|23|
1|40|1
     12.51.0.0 |209.*.*.38 |as6|as4|3|7|1159|2046|6|
1|40|1
 6.  异常流量的源、目的端口分析
     异常流量的源端口通常会随机生成,如下例数据:
     211.*.*.187|169.172.190.17|Others|localas|71|
6|1663|445|6|3|144|1
     211.*.*.187|103.210.205.148|Others|localas|71|
6|3647|445|6|3|144|1
     211.*.*.187|138.241.80.79|Others|localas|71|6|
1570|445|6|3|144|1
     多数异常流量的目的端口固定在一个或几个端口,我们可以利用这一点,对异常流量
进行过滤或限制,如下例数据,目的端口为 UDP 6789:
     211.*.*.219|192.*.254.18|Others|Others|15|9|
10000|6789|17|1|36|1
     211.*.*.219|192.*.254.19|Others|Others|15|9|
10000|6789|17|2|72|2
     211.*.*.219|192.*.254.20|Others|Others|15|9|
10000|6789|17|3|108|3
    四、利用NetFlow 工具处理防范网络异常流量
     从某种程度上来讲,互联网异常流量永远不会消失而且从技术上目前没有根本的解决
办法,但对网管人员来说,可以利用许多技术手段分析异常流量,减小异常流量发生时带来
的影响和损失,以下是处理网络异常流量时可以采用的一些方法及工具:
    1.  判断异常流量流向
     因为目前多数网络设备只提供物理端口入流量的NetFlow 数据,所以采集异常流量
NetFlow 数据之前,首先要判断异常流量的流向,进而选择合适的物理端口去采集数据。
流量监控管理软件是判断异常流量流向的有效工具,通过流量大小变化的监控,可以
帮助我们发现异常流量,特别是大流量异常流量的流向,从而进一步查找异常流量的源、目
的地址。
      目前最常用的流量监控工具是免费软件MRTG,下图为利用MRTG 监测到的网络异
常流量实例,可以看出被监测设备端口在当天4:00 至 9:30 之间产生了几十 Mbps 的异
常流量,造成了该端口的拥塞(峰值流量被拉平)。
     如果能够将流量监测部署到全网,这样在类似异常流量发生时,就能迅速找到异常流
量的源或目标接入设备端口,便于快速定位异常流量流向。
     有些异常流量发生时并不体现为大流量的产生,这种情况下,我们也可以综合异常流
量发生时的其它现象判断其流向,如设备端口的包转发速率、网络时延、丢包率、网络设备
的CPU 利用率变化等因素。
     2.  采集分析 NetFlow 数据
     判断异常流量的流向后,就可以选择合适的网络设备端口,实施 Neflow 配置,采集
该端口入流量的 NetFlow 数据。
     以下是在Cisco GSR 路由器 GigabitEthernet10/0 端口上打开 NetFlow 的配置实
例:
     ip flow-export source Loopback0
     ip flow-export destination *.*.*.61 9995
     ip flow-sampling-mode packet-interval 100
     interface GigabitEthernet10/0
     ip route-cache flow sampled
     通过该配置把流入到 GigabitEthernet10/0 的NetFlow 数据送到 NetFlow 采集器
*.*.*.61,该实例中采用sampled 模式,采样间隔为 100:1。
      3.  处理异常流量的方法
(1)切断连接
     在能够确定异常流量源地址且该源地址设备可控的情况下,切断异常流量源设备的物
理连接是最直接的解决办法。
      (2)过滤
     采用ACL (Access Control List)过滤能够灵活实现针对源目的IP 地址、协议类型、
端口号等各种形式的过滤,但同时也存在消耗网络设备系统资源的副作用,下例为利用ACL
过滤 UDP 1434 端口的实例:
     access-list 101 deny  udp any any eq 1434
     access-list 101 permit ip any any
     此过滤针对蠕虫王病毒(SQL Slammer),但同时也过滤了针对SQL Server 的正
常访问,如果要保证对 SQL Server 的正常访问,还可以根据病毒流数据包的大小特征实
施更细化的过滤策略(本文略)。
      (3)静态空路由过滤
     能确定异常流量目标地址的情况下,可以用静态路由把异常流量的目标地址指向空
 (Null),这种过滤几乎不消耗路由器系统资源,但同时也过滤了对目标地址的正常访问,
配置实例如下:
     ip route 205.*.*.2 255.255.255.255 Null 0
     对于多路由器的网络,还需增加相关动态路由配置,保证过滤在全网生效。
      (4)异常流量限定
     利用路由器 CAR 功能,可以将异常流量限定在一定的范围,这种过滤也存在消耗路
由器系统资源的副作用,以下为利用CAR 限制UDP 1434 端口流量的配置实例:
     Router# (config) access-list 150 deny udp any any eq 1434
     Router# (config) access-list 150 permit ip any any
     Router# (config) interface fastEthernet 0/0
     Router# (config-if) rate-limit input access-group rate-limit 150 8000 1500
20000
conform-action drop exceed-action drop
     此配置限定 UDP 1434 端口的流量为 8Kbps。
[Page]五、常见蠕虫病毒的 NetFlow 分析案例
     利用上诉方法可以分析目前互联网中存在的大多数异常流量,特别是对于近年来在互
联网中造成较大影响的多数蠕虫病毒,其分析效果非常明显,以下为几种蠕虫病毒的
NetFlow 分析实例:
     1.  红色代码 (Code Red Worm)
     2001 年 7 月起发作,至今仍在网络流量中经常出现。
      211.*.*.237|192.*.148.107|65111|as1|6|72|
3684|80|80|3|144|1
      211.*.*.237|192.*.141.167|65111|as1|6|36|
4245|80|80|3|144|1
      211.*.*.237|160.*.84.142|65111|as1|6|72|
4030|80|80|3|144|1
     NetFlow 流数据典型特征:目的端口 80, 协议类型 80,包数量3,字节数 144。
     2.  硬盘杀手(worm.opasoft,W32.Opaserv.Worm)
      2002 年 9 月30 日起发作,曾对许多网络设备性能造成影响,2003 年后逐渐减少。
      61.*.*.196|25.|*.156.106|64621|Others|6|36|
1029|137|17|1|78|1
      61.*.*.196|25.*.156.107|64621|Others|6|36|
1029|137|17|1|78|1
      61.*.*.196|25.*.156.108|64621|Others|6|36|
1029|137|17|1|78|1
     NetFlow 流数据典型特征:目的端口 137,协议类型UDP,字节数78。
3. 2003 蠕虫王 (Worm.NetKiller2003,WORM_SQLP1434,W32.Slammer,
W32.SQLExp.Worm)
     2003 年 1 月25 日起爆发,造成全球互联网几近瘫痪,至今仍是互联网中最常见的
异常流量之一。
      61.*.*.124|28.*.17.190|65111|as1|6|34|4444|
1434|17|1|404|1
      61.*.*.124|28.*.154.90|65111|as1|6|70|4444|
1434|17|1|404|1
      61.*.*.124|28.*.221.90|65111|as1|6|36|4444|
1434|17|1|404|1
     NetFlow 流数据典型特征:目的端口 1434,协议类型UDP,字节数404
     4.  冲击波 (WORM.BLASTER,W32.Blaster.Worm)
     2003 年 8 月 12 日起爆发,由其引发了危害更大的冲击波杀手病毒。
      211.*.*.184|99.*.179.27|Others|Others|161|0|
1523|135|6|1|48|1
      211.*.*.184|99.*.179.28|Others|Others|161|0|
1525|135|6|1|48|1
      211.*.*.184|99.*.179.29|Others|Others|161|0|
1527|135|6|1|48|1
     典型特征:目的端口 135,协议类型TCP,字节数48
     5.  冲击波杀手(Worm.KillMsBlast,W32.Nachi.worm,W32.Welchia.Worm)
     2003 年8 月18 日起发现,其产生的ICMP 流量对全球互联网造成了很大影响,2004
年后病毒流量明显减少。
     211.*.*.91|211.*.*.77|Others|Others|4|0|0|
2048|1|1|92|1
      211.*.*.91|211.*.*.78|Others|Others|4|0|0|
2048|1|1|92|1
 211.*.*.91|211.*.*.79|Others|Others|4|0|0|
2048|1|1|92|1
     NetFlow 流数据典型特征:目的端口 2048,协议类型ICMP,字节数92
     6.  振荡波(Worm.Sasser,W32.Sasser)
     2004 年 5 月爆发。
     61.*.*.*|32.*.70.207|Others|Others|3|0|10000|
445|6|1|48|1
     61.*.*.*|24.*.217.23|Others|Others|3|0|10000|
445|6|1|48|1
     61.*.*.*|221.*.65.84|Others|Others|3|0|10000|
445|6|1|48|1
     NetFlow 流数据典型特征:目的端口445,协议类型TCP,字节数48
     从以上案例可以看出,蠕虫爆发时,应用 Neflow 分析方法,可以根据病毒流量的
NetFlow 特征快速定位感染病毒的 IP 地址,并参考 NetFlow 数据流的其它特征在网络设
备上采取相应的限制、过滤措施,从而达到抑制病毒流量传播的目的。
    六、总结
     处理分析网络异常流量存在许多其它方法,如我们可以利用 IDS、协议分析仪、网络
设备的 Log、Debug、ip accounting 等功能查找异常流量来源,但这些方法的应用因各
种原因受到限制,如效率低、对网络设备的性能影响、数据不易采集等因素。
     利用 NetFlow 分析网络异常流量也存在一些限制条件,如需要网络设备对 NetFlow
的支持,需要分析NetFlow 数据的工具软件,需要网络管理员准确区分正常流量数据和异
常流量数据等。
    但相比其它方法,利用 NetFlow 分析网络异常流量因其方便、快捷、高效的特点,为
越来越多的网络管理员所接受,成为互联网安全管理的重要手段,特别是在较大网络的管理
中,更能体现出其独特优势。




    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: