[摘要] 本文從互聯網運營商的視角,利用
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]病毒與安全