使用NetFlow分析互联网网络异常流量
2005-04-13    曹铮   
打印自: 安恒公司
地址: HTTP://linkrunner.anheng.com.cn/news/article.php?articleid=588
使用Netflow分析互联网网络异常流量

[摘要]本文从互联网运营商的视角,利用NetFlow分析手段,对互联网异常流量的特征进行了深入分析,进而提出如何在网络层面对互联网异常流量采取防护措施,并给出了近年来一些典型互联网异常流量的NetFlow分析案例。

关键词:互联网 异常流量 NetFlow 流量分析 DoS/DDoS 蠕虫病毒

一、前言

       近年来,随着互联网在全球的迅速发展和各种互联网应用的快速普及,互联网已成为人们日常工作生活中不可或缺的信息承载工具。然而,伴随着互联网的正常应用流量,网络上形形色色的异常流量也随之而来,影响到互联网的正常运行,威胁用户主机的安全和正常使用。

       本文从互联网运营商的视角,对互联网异常流量的特征进行了深入分析,进而提出如何在网络层面对互联网异常流量采取防护措施,其中重点讲述了NetFlow分析在互联网异常流量防护中的应用及典型案例。

二、NetFlow简介

       本文对互联网异常流量的特征分析主要基于NetFlow数据,因此首先对NetFlow做简单介绍。


       1. NetFlow概念

       NetFlow是一种数据交换方式,其工作原理是:NetFlow利用标准的交换模式处理数据流的第一个IP包数据,生成NetFlow 缓存,随后同样的数据基于缓存信息在同一个数据流中进行传输,不再匹配相关的访问控制等策略,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数据,也可以采用类似方法分析。

        3. NetFlow数据采集格式说明

       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工具很多可以伪装源地址,这也是不易追踪到攻击源主机的主要原因。


       (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

 

       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
       212.62.0.0|209.*.*.38| as7|as4|3|7|1140|3575|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。

 

五、常见蠕虫病毒的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分析网络异常流量因其方便、快捷、高效的特点,为越来越多的网络管理员所接受,成为互联网安全管理的重要手段,特别是在较大网络的管理中,更能体现出其独特优势。

参考文献
[1] NetFlow Overview
[2] NetFlow Export Datagram Format
[3]Customizing FlowCollector
[4]SAFE SQL Slammer Worm Attack Mitigation
[5]病毒与安全

 

责任编辑: admin