簡介
隨著系統的升級與漏洞的修補,入侵主機進而進行破壞的病毒攻擊方式在攻擊中所占比例逐漸減少,這些攻擊轉而改為惡意的消耗網路有限的資源或占用系統,進而破壞系統對外提供服務的能力;但傳統的系統升級無法檢測並預防此類攻擊。針對此類攻擊,業界提出了以檢測網路數據流的方法來判斷網路異常和攻擊:藉助實時的檢測網路數據流信息,通過與歷史記錄模式匹配(判斷是否正常)、或者與異常模式匹配(判斷是否被攻擊),讓網路管理人員可以實時查看全網的狀態,檢測網路性能可能出現的瓶頸,並進行自動處理或告警顯示,以保證網路高效、可靠地運轉。
Netflow提供網路流量的會話級視圖,記錄下每個TCP/IP事務的信息。也許它不能像tcpdump那樣提供網路流量的完整記錄,但是當匯集起來時,它更加易於管理和易讀。Netflow由Cisco創造。
概念
一個NetFlow流定義為在一個源IP位址和目的IP位址間傳輸的單向數據包流,且所有數據包具有共同的傳輸層源、目的連線埠號。
數據採集
針對路由器送出的NetFlow數據,可以利用NetFlow數據採集軟體存儲到伺服器上,以便利用各種NetFlow數據分析工具進行進一步的處理。
Cisco提供了Cisco NetFlow Collector(NFC)採集NetFlow數據,其它許多廠家也提供類似的採集軟體。
實例
211.*.*.57|202.*.*.12|Others|localas|9|6|2392
出於安全原因考慮,本文中出現的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
數據中各欄位的含義如下:
源地址|目的地址|源自治域|目的自治域|流入接口號|流出接口號|源連線埠|目的連線埠|協定類型|包數量|位元組數|流數量
其他說明
NetFlow主要由Cisco路由器支持,對於其它廠家的網路產品也有類似的功能,例如Juniper路由器支持sFlow功能。
NetFlow支持情況與路由器類型、板卡類型、IOS版本、IOS授權都有關係,不是在所有情況下都能使用,使用時需考慮自己的軟硬體配置情況。
本文的所有分析數據均基於采自Cisco路由器的NetFlow數據
The benefit of using Netflow:Network,Application&User Monitoring,Security Analysi,Accounting/Billing.
結構
一個Netflow系統包括三個主要部分:探測器,採集器,報告系統。探測器是用來監聽網路數據的。採集器是用來收集探測器傳來的數據的。報告系統是用來從採集器收集到的數據產生易讀的報告的。
NetFlow是Cisco設備NLOS軟體中內嵌的一種功能,用來將網路流量記錄到設備的高速快取中,從而提供非常精準的流量測量。 由於網路通信具有流動性,所以快取中記錄的NetFlow統計數據通常包含轉發的IP信息。 輸出的NetFlow統計數據可用於多種目的,如網路流量核算、網路付費、網路監控以及商業目的的數據存儲。
路由器和交換機輸出的NetFlow數據記錄由過期的數據流及詳細的流量統計數據組成。這些數據流中包含來源和目的相關的信息,以及端到端會話使用的協定和連線埠。這些信息能幫助IT人員監控和調整網路流量,以及面向網路有效地分配頻寬。 NetFlow流量統計數據包括數據流時戳 源IP位址和目的IP位址 源連線埠號和目的連線埠號 輸入接口號和輸出接口號 下一跳IP位址 信息流中的總位元組數 信息流中的數據包數量 信息流中的第一個和最後一個數據包時戳 源AS和目的AS,及前置掩碼 序號(只有版本5中支持)
版本
Netflow技術最早是於1996年由思科公司的Darren Kerr和Barry Bruins發明的,並於同年5月註冊為美國專利,專利號為6,243,667。Netflow技術首先被用於網路設備對數據交換進行加速,並可同步實現對高速轉發的IP數據流(Flow)進行測量和統計。經過多年的技術演進,Netflow原來用於數據交換加速的功能已經逐步由網路設備中的專用ASIC晶片實現,而對流經網路設備的IP數據流進行測量和統計的功能也已更加成熟,並成為了當今網際網路領域公認的最主要的IP/MPLS流量分析,統計和計費行業標準。Netflow技術能對IP/MPLS網路的通信流量進行詳細的行為模式分析和計量,並提供網路運行的詳細統計數據。
在Netflow技術的演進過程中,思科公司一共開發出了5個主要的實用版本,即:
Netflow V1,為Netflow技術的第一個實用版本。支持IOS 11.1,11.2,11.3和12.0,但在如今的實際網路環境中已經不建議使用。
Netflow V5,增加了對數據流BGP AS信息的支持,是當前主要的實際套用版本。支持IOS 11.1CA和12.0及其後續IOS版本。
Netflow V7,思科Catalyst交換機設備支持的一個Netflow版本,需要利用交換機的MLS或CEF處理引擎。
Netflow V8,增加了網路設備對Netflow統計數據進行自動匯聚的功能(共支持11種數據匯聚模式),可以大大降低對數據輸出的頻寬需求。支持IOS12.0(3)T,12.0(3)S,12.1及其後續IOS版本。
Netflow V9,一種全新的靈活和可擴展的Netflow數據輸出格式,採用了基於模板(Template)的統計數據輸出。方便添加需要輸出的數據域和支持多種Netflow新功能,如Multicase Netflow,MPLS Aware Netflow,BGP Next Hop V9,Netflow for IPv6等。支持IOS12.0(24)S和12.3T及其後續IOS版本。在2003年思科公司的Netflow V9還被IETF組織從5個候選方案中確定為IPFIX(IP Flow Information Export)標準。
異常流量
要對網際網路異常流量進行分析,首先要深入了解其產生原理及特徵,以下將重點從NetFlow數據角度,對異常流量的種類、流向、產生後果、數據包類型、地址、連線埠等多個方面進行分析。
種類
目前,對網際網路造成重大影響的異常流量主要有以下幾種:
拒絕服務攻擊(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工具很多可以偽裝源地址,這也是不易追蹤到攻擊源主機的主要原因。
分散式拒絕服務攻擊(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
網路蠕蟲病毒流量
網路蠕蟲病毒的傳播也會對網路產生影響。近年來,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
其它異常流量
我們把其它能夠影響網路正常運行的流量都歸為異常流量的範疇,例如一些網路掃描工具產生的大量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
流向分析
從異常流量流向來看,常見的異常流量可分為三種情況:
網外對本網內的攻擊
本網內對網外的攻擊
本網內對本網內的攻擊
針對不同的異常流量流向,需要採用不同的防護及處理策略,所以判斷異常流量流向是進一步防護的前提,以下為這三種情況的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開頭的地址為本網地址。
異常流量產生的後果
異常流量對網路的影響主要體現在兩個方面:
占用頻寬資源使網路擁塞,造成網路丟包、時延增大,嚴重時可導致網路不可用;
占用網路設備系統資源(CPU、記憶體等),使網路不能提供正常的服務。
異常流量的數據包類型
常見的異常流量數據包形式有以下幾種:
?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工具處理防範網路異常流量
從某種程度上來講,網際網路異常流量永遠不會消失而且從技術上目前沒有根本的解決辦法,但對網管人員來說,可以利用許多技術手段分析異常流量,減小異常流量發生時帶來的影響和損失,以下是處理網路異常流量時可以採用的一些方法及工具:
判斷異常流量流向
因為目前多數網路設備只提供物理連線埠入流量的NetFlow數據,所以採集異常流量NetFlow數據之前,首先要判斷異常流量的流向,進而選擇合適的物理連線埠去採集數據。
流量監控管理軟體是判斷異常流量流向的有效工具,通過流量大小變化的監控,可以幫助我們發現異常流量,特別是大流量異常流量的流向,從而進一步查找異常流量的源、目的地址。
目前最常用的流量監控工具是免費軟體MRTG,下圖為利用MRTG監測到的網路異常流量實例,可以看出被監測設備連線埠在當天4:00至9:30之間產生了幾十Mbps的異常流量,造成了該連線埠的擁塞(峰值流量被拉平)。
如果能夠將流量監測部署到全網,這樣在類似異常流量發生時,就能迅速找到異常流量的源或目標接入設備連線埠,便於快速定位異常流量流向。
有些異常流量發生時並不體現為大流量的產生,這種情況下,我們也可以綜合異常流量發生時的其它現象判斷其流向,如設備連線埠的包轉發速率、網路時延、丟包率、網路設備的CPU利用率變化等因素。
採集分析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。
處理異常流量的方法
(1)切斷連線
在能夠確定異常流量源地址且該源地址設備可控的情況下,切斷異常流量源設備的物理連線是最直接的解決辦法。
(2)過濾
採用ACL(Access Control List)過濾能夠靈活實現針對源目的IP位址、協定類型、連線埠號等各種形式的過濾,但同時也存在消耗網路設備系統資源的副作用,下例為利用ACL過濾UDP1434連線埠的實例:
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限制UDP1434連線埠流量的配置實例:
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
此配置限定UDP1434連線埠的流量為8Kbps。
分析案例
利用抗訴方法可以分析目前網際網路中存在的大多數異常流量,特別是對於近年來在網際網路中造成較大影響的多數蠕蟲病毒,其分析效果非常明顯,以下為幾種蠕蟲病毒的NetFlow分析實例:
紅色代碼 (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。
硬碟殺手
(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。
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
衝擊波
(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
衝擊波殺手
(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
振盪波
(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分析網路異常流量因其方便、快捷、高效的特點,為越來越多的網路管理員所接受,成為網際網路安全管理的重要手段,特別是在較大網路的管理中,更能體現出其獨特優勢。