摘要:網絡攻擊日趨隱蔽和復雜化,傳統的檢測方法具有很大的局限性。該文提出將網絡管理中故障管理和性能管理相結合,根據目前網絡中可獲得的豐富的數據進行聯合挖掘,能夠全面發現網絡中存在的問題。
關鍵詞:數據挖掘 異常檢測 網絡管理
中圖分類號:TP274文獻標識碼:A 文章編號:1674-098X(2013)01(b)-000-03
隨著目前網絡環境越來越復雜,網絡攻擊形式越來越多樣,如何維持網絡性能的穩定成為網絡管理的一個難題。現實中引起網絡異常的原因有很多,典型的有:網絡設備故障、網絡過載、惡意的拒絕服務和網絡入侵等等。如何發現這些異常一直是研究的熱點問題。然而網絡異常的發現依賴于可獲得的網絡數據及其分析。一般情況下,網絡中可獲得數據包括:網絡設備的告警日志、網絡設備的Trap消息、網絡流量數據和基于簡單網絡管理協議(SNMP)獲得的相關MIB的數據。我們假設“網絡異常能夠在異常事件發生之前或發生時被一些相關的瞬時變化所刻畫”,所以通過對這些數據的分析一般都能發現與異常相關的信息。[1]在此之前已經有專家在這方面進行了一些有創造性的工作。1997年Mika Klemettinen等人提出了“頻繁情節(frequent episode)”的概念[2],在1999年提出了將頻繁情節挖掘的方法應用于電信網的告警數據分析中,用來自動提取規則,并實現了一個“電信網告警序列分析器(TASA)”的電信網故障管理系統[3](見圖1)。
在流量異常分析方面,目前在入侵檢測系統中研究的較多。主要包括基于行為(異常檢測)和基于知識(誤用檢測)兩類[4]。基于知識的檢測一般是在對已知攻擊特點進行分析的基礎上提出規則,然后根據這些規則進行檢測,特點是速度慢,準確度高,但對于未知的攻擊無能為力。基于行為的檢測一般是以統計的方法來分析某一網絡的流量特點,建立相應的數學模型,然后根據定義的模型來預測異常。這種方法的特點是速度快,對未知的攻擊也能預測,但誤報率較高。
告警日志的挖掘是網絡管理的故障管理方面的內容,而流量異常分析則涉及性能管理方面的內容。在實際中往往存在相關性,例如某些設備的故障會導致整個網絡性能的下降,而某些流量引起的網絡擁塞則極有可能會引起網絡設備的故障。并且在當前網絡復雜性日趨增加的情況下,只有將各方面的數據結合起來,從不同的角度進行分析,才能取得更好的效果。因此,我們將網絡中的各種數據聯合起來進行分析,用來更好的發現各種網絡異常。
1 聯合數據挖掘系統的設計
1.1 數據挖掘簡介
數據挖掘是從大量的、有噪聲的數據中提取出事先并不知道的信息的過程,這種信息往往是以模式、趨勢和結構的形式呈現的[5]。它包含多種技術如數據庫管理、機器學習、統計、并行處理和可視化等。它一般分為一下幾個步驟:①數據清洗,清除噪聲或不一致的數據;②數據集成,多種數據源可以組合在一起;③數據選擇,從數據庫中選擇與分析任務相關的數據;④數據變換,轉換成適合挖掘的形式;⑤數據挖掘,使用智能方法提取數據模式⑥模式評估,識別表示知識的模式;⑦知識表示,向用戶呈現獲取的知識。
通常根據不同的目的選擇不同的分析方法。數據挖掘中常用的分析方法有:關聯分析、頻繁情節分析、聚類分析、分類、回歸等。在我們的系統中用到了關聯分析、頻繁情節分析、分類和聚類分析的方法。
1.2 網絡數據的獲取
獲取正確類型的網絡數據對于異常檢測是必需的。被檢測的異常的類型依賴于可獲取的網絡數據。目前獲取網絡數據的方法有如下幾種:
(1)網絡設備的告警日志
網絡設備(如交換機、路由器、服務器等)在運行過程總都會產生大量的日志,這些日志中包含了用戶的異常行為:例如對設備的非授權訪問、路由器或交換機的某個端口鏈路異常、DHCP服務器分配地址失敗等等。對這些數據的分析對于發現R2L,U2R等攻擊非常有效。
(2)基于簡單網絡管理協議獲得的相關數據
簡單網絡管理協議的MIB中提供了網絡中被管設備的大量的信息。例如MIB-II中的interface組中的信息提供了被管設備的端口的流量的詳細統計情況[6],通過對交換機或路由器的這些統計信息的獲取,可以知道具體端口的流量情況。對這些數據的分析可以發現分布式拒絕服務(DDoS)攻擊等以損耗帶寬為目的的攻擊。但是這類數據只是提供統計以后的信息,對于轉發的具體IP分組的信息不記錄。
(3)IP分組捕獲
目前捕獲IP分組的信息的方法有兩種:一種是CISCO的Netflow[7]:Netflow是CISCO基于流測量的專有技術,其性能高,且能適應100 m帶寬的需求,而且其獨有的流歸并的方法,使得統計更加簡單,且效率更高。目前已經廣泛應用于網絡性能檢測和流量計費等領域。然而它一般需要相應的路由器或交換機等硬件設備的支持。另一種是利用Libpcap[8]庫:Libpcap庫是UNIX環境下通用的函數庫,目前在Windows環境下也有相應的Winpcap庫。著名的sniffer軟件TCPDUMP和Ethereal就是分別以這兩個庫為基礎開發的。適合于在局域網中使用。
1.3 聯合數據挖掘系統的架構
綜合上面提到的可獲取的網絡數據,并把網絡管理中的故障管理和性能管理結合起來,我們提出了一個聯合數據挖掘系統,如圖2所示。
我們采取了類似于簡單網絡管理協議中的代理和管理者的結構。代理向管理者提供測量的網絡數據供挖掘系統進行分析,通過1.2節的分析,我們知道這些網絡數據都是可以得到的。挖掘系統負責對這些不同的數據進行分析,是整個系統的核心。如圖3所示。
在上圖中,數據預處理包含了數據挖掘步驟中的數據清洗、數據集成。關聯挖掘、頻繁情節挖掘和流量異常分析對應挖掘過程。參數設定和規則修訂是評估的過程,也是一個自我學習的過程。
2 系統實現
2.1 告警日志和Trap消息的挖掘
對于告警日志和Trap消息的分析屬于網絡管理中故障管理方面的內容。目前的網絡設備(如交換機、路由器和UNIX服務器等)的告警日志大都采用UNIX系統的日志格式,即syslog的格式。這些日志不僅可以保存在本地,而且可以通過網絡進行傳輸,供遠程日志分析服務器進行分析。例如對于如下一條CISCO路由器的告警日志:
*Apr 29 15:54:49:%DHCPD-4-PING_CONFLICT:DHCP address conflict: server pinged 172.18.41.164.’
其中“Apr 29 15:54:49”為告警產生時間,“DHCPD”表示引起告警的事件類型,“4”表示告警級別,數字越小表示越嚴重。“DHCP address conflict: server pinged 172.18.41.164”表示日志的內容。我們可以將其解析以后的各個屬性存儲在數據庫中,對其屬性間的關系做關聯分析。
通過對數據庫中這些告警日志的分析,我們可以發現設備頻繁發生的告警事件類型,以及這些事件的嚴重程度。例如如下的一條關聯規則:
“172.18.31.242 → LINK,3(90%,80%)”
說明“172.18.31.242”這臺設備發生“LINK”事件的關聯度為90%,置信度為80%。根據關聯規則中對關聯度和置信度的定義,這表明IP為“172.18.31.242”、事件類型為“LINK”的事件占總事件的90%,而“LINK”事件有占所有IP為“172.18.31.242”的事件的80%。
頻繁情節的挖掘與關聯規則挖掘的區別在于它考慮的是同一屬性在不同時間出現的規律,而關聯規則考慮的是不同屬性之間的關系,沒有考慮時間。例如如下一條頻繁規則:
“如果link和link failure在5 s內發生,那么high fault rate的警告在60 s內發生的概率為70%”[2],
通過這種形式的挖掘,我們可以發現周期事件,并且可以發現事件在時間上的相關性。在實際種,這種規則往往比關聯規則更有意義。
Trap消息是當設備狀態發生改變自動觸發的消息。這里的Trap消息指的是簡單網絡管理協議中的Trap消息。在簡單網絡管理協議中定義了7中Trap消息類型:“coldStart”,“warmStart”,“linkDown”,“linkUp”,“authenticationFailure”,“egpNeighborLoss”,“enterpriseSpecific”。其警告級別依次降低。對于Trap消息的處理我們可以采取基于規則的形式,因為它的消息的類型只有7種。例如當頻繁發生“authenticationFailure”事件時,則可以判斷為發生snmpget攻擊。
2.2 流量異常分析
通過IP流的捕獲和SNMP的MIB而獲得的流量信息對于異常分析是一個很好的數據源。基于行為的異常檢測和基于規則的誤用檢測是入侵檢測系統發現攻擊的兩種方法,我們將這兩者結合起來。對于已知的攻擊,管理員可以通過對規則庫的修訂來知道異常分析模塊來更加準確的工作。另外對于未知的攻擊,采用數據挖掘中的分類和聚類的方法來刻畫正常流量和異常流量的區別。
2.2.1 通過SNMP 的MIB信息來捕捉異常
SNMP的MIB中提供了豐富的統計信息,例如對于端口掃描,我們可以利用MIB中的下列數據項來發現異常:
tcp組中的tcpAttcmptFails::該實體中發生的失敗連接嘗試的數量;
udp組中的udpNoPorts:在目標端口沒有應用程序而接收的UDP報文的總數;
現實中的端口掃描,如著名的nmap軟件,往往都是對目標主機的每個端口進行嘗試性連接。那么這個過程中必然因為目標主機的某些端口沒有打開而失敗,從而造成上述兩個變量的增加。管理員可以通過在規則庫中添加這些變量的監控范圍來發現這種異常。對于其他形式的攻擊,如拒絕服務攻擊等等,我們都可以通過監控MIB中的某些變量來發現。
2.2.2 通過IP流的分析來發現異常
IP流是在一段時間內捕獲的分組集合,這些分組具有共同的屬性(源地址、目的地址、協議、源端口、目的端口)[9]。我們可以讓代理在采集到單獨的IP分組信息以后,按照上述定義歸并為IP流。這樣我們可以讓挖掘服務器更加方便、簡便的統計各種信息:例如一定時間間隔內流量排名在前幾位的IP流有哪些、一定時間間隔內流量排名在前幾位的端口應用有哪些等等。通過這些信息的統計,我們可以讓管理員對所管轄網絡的整體性能能夠時刻了解,在實際中,這種整體性能應該是一個穩定的狀態,當某個時刻有突變產生時,我們認為應該有異常發生。
3 結語
網絡攻擊日趨復雜和隱蔽,傳統的方法已經顯出不足。聯合數據挖掘的方法充分利用了目前可獲得的網絡數據進行分析,把網絡管理中故障管理和性能管理結合起來,從多個角度來發現網絡中存在的問題。該文對這一方法進行了研究和論述,初步的試驗結果表明,這個系統是有效的。下一步工作是在更多的實驗數據的基礎上建立流量異常檢測模型,并用測試數據來檢驗和豐富該方法。
參考文獻
[1]Marina Thottan,Chuanyi Ji.Anomaly Detection in IP Networks[J].IEEE Transaction On Signal Processing,2003,51(8):2191-2204.
[2]Heikki Mannila,Hannu Toivonen,A.Inkeri Verkamo.Discovery of Ftrequent Episodes in Event Sequences[C]// Data Mining and Knowledge Discovery.1997:259-289.
[3]Mika Kelmettinen,Heikki Mannila,Hannu Toivonen.Rule Discovery in Telecommunication Alarm Data[J].Journal of Network and System Management,1999,7(4):395:423.
[4]Lee W,Stolfo S J.Data Mining Approaches for Intrusion Detection.Proc of the 7th Usenix Security Symp,San Antonio,TX,1998.
[5]Thuraisingham,B.M,Ceruti,M.G.Understanding data mining and applying it to command,control,communications and intelligence environments[C]// COMPSAC 2000,2000:171-175.
[6]RFC 1157.Simple Network Mana-gement Protocol.
[7]www.cisco.com.
[8]劉文濤.網絡安全開發包詳解[M].北京:電子工業出版社,2005.
[9]Sui Song,Li Ling,C.N.Manikopoulo.Flow-based Statistical Aggregation Schemes for Network Anomaly Detection[C]//ICNSC’06,2006:86-791.