摘要:網(wǎng)絡(luò)攻擊日趨隱蔽和復(fù)雜化,傳統(tǒng)的檢測(cè)方法具有很大的局限性。該文提出將網(wǎng)絡(luò)管理中故障管理和性能管理相結(jié)合,根據(jù)目前網(wǎng)絡(luò)中可獲得的豐富的數(shù)據(jù)進(jìn)行聯(lián)合挖掘,能夠全面發(fā)現(xiàn)網(wǎng)絡(luò)中存在的問(wèn)題。
關(guān)鍵詞:數(shù)據(jù)挖掘 異常檢測(cè) 網(wǎng)絡(luò)管理
中圖分類(lèi)號(hào):TP274文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2013)01(b)-000-03
隨著目前網(wǎng)絡(luò)環(huán)境越來(lái)越復(fù)雜,網(wǎng)絡(luò)攻擊形式越來(lái)越多樣,如何維持網(wǎng)絡(luò)性能的穩(wěn)定成為網(wǎng)絡(luò)管理的一個(gè)難題。現(xiàn)實(shí)中引起網(wǎng)絡(luò)異常的原因有很多,典型的有:網(wǎng)絡(luò)設(shè)備故障、網(wǎng)絡(luò)過(guò)載、惡意的拒絕服務(wù)和網(wǎng)絡(luò)入侵等等。如何發(fā)現(xiàn)這些異常一直是研究的熱點(diǎn)問(wèn)題。然而網(wǎng)絡(luò)異常的發(fā)現(xiàn)依賴(lài)于可獲得的網(wǎng)絡(luò)數(shù)據(jù)及其分析。一般情況下,網(wǎng)絡(luò)中可獲得數(shù)據(jù)包括:網(wǎng)絡(luò)設(shè)備的告警日志、網(wǎng)絡(luò)設(shè)備的Trap消息、網(wǎng)絡(luò)流量數(shù)據(jù)和基于簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(SNMP)獲得的相關(guān)MIB的數(shù)據(jù)。我們假設(shè)“網(wǎng)絡(luò)異常能夠在異常事件發(fā)生之前或發(fā)生時(shí)被一些相關(guān)的瞬時(shí)變化所刻畫(huà)”,所以通過(guò)對(duì)這些數(shù)據(jù)的分析一般都能發(fā)現(xiàn)與異常相關(guān)的信息。[1]在此之前已經(jīng)有專(zhuān)家在這方面進(jìn)行了一些有創(chuàng)造性的工作。1997年Mika Klemettinen等人提出了“頻繁情節(jié)(frequent episode)”的概念[2],在1999年提出了將頻繁情節(jié)挖掘的方法應(yīng)用于電信網(wǎng)的告警數(shù)據(jù)分析中,用來(lái)自動(dòng)提取規(guī)則,并實(shí)現(xiàn)了一個(gè)“電信網(wǎng)告警序列分析器(TASA)”的電信網(wǎng)故障管理系統(tǒng)[3](見(jiàn)圖1)。
在流量異常分析方面,目前在入侵檢測(cè)系統(tǒng)中研究的較多。主要包括基于行為(異常檢測(cè))和基于知識(shí)(誤用檢測(cè))兩類(lèi)[4]。基于知識(shí)的檢測(cè)一般是在對(duì)已知攻擊特點(diǎn)進(jìn)行分析的基礎(chǔ)上提出規(guī)則,然后根據(jù)這些規(guī)則進(jìn)行檢測(cè),特點(diǎn)是速度慢,準(zhǔn)確度高,但對(duì)于未知的攻擊無(wú)能為力。基于行為的檢測(cè)一般是以統(tǒng)計(jì)的方法來(lái)分析某一網(wǎng)絡(luò)的流量特點(diǎn),建立相應(yīng)的數(shù)學(xué)模型,然后根據(jù)定義的模型來(lái)預(yù)測(cè)異常。這種方法的特點(diǎn)是速度快,對(duì)未知的攻擊也能預(yù)測(cè),但誤報(bào)率較高。
告警日志的挖掘是網(wǎng)絡(luò)管理的故障管理方面的內(nèi)容,而流量異常分析則涉及性能管理方面的內(nèi)容。在實(shí)際中往往存在相關(guān)性,例如某些設(shè)備的故障會(huì)導(dǎo)致整個(gè)網(wǎng)絡(luò)性能的下降,而某些流量引起的網(wǎng)絡(luò)擁塞則極有可能會(huì)引起網(wǎng)絡(luò)設(shè)備的故障。并且在當(dāng)前網(wǎng)絡(luò)復(fù)雜性日趨增加的情況下,只有將各方面的數(shù)據(jù)結(jié)合起來(lái),從不同的角度進(jìn)行分析,才能取得更好的效果。因此,我們將網(wǎng)絡(luò)中的各種數(shù)據(jù)聯(lián)合起來(lái)進(jìn)行分析,用來(lái)更好的發(fā)現(xiàn)各種網(wǎng)絡(luò)異常。
1 聯(lián)合數(shù)據(jù)挖掘系統(tǒng)的設(shè)計(jì)
1.1 數(shù)據(jù)挖掘簡(jiǎn)介
數(shù)據(jù)挖掘是從大量的、有噪聲的數(shù)據(jù)中提取出事先并不知道的信息的過(guò)程,這種信息往往是以模式、趨勢(shì)和結(jié)構(gòu)的形式呈現(xiàn)的[5]。它包含多種技術(shù)如數(shù)據(jù)庫(kù)管理、機(jī)器學(xué)習(xí)、統(tǒng)計(jì)、并行處理和可視化等。它一般分為一下幾個(gè)步驟:①數(shù)據(jù)清洗,清除噪聲或不一致的數(shù)據(jù);②數(shù)據(jù)集成,多種數(shù)據(jù)源可以組合在一起;③數(shù)據(jù)選擇,從數(shù)據(jù)庫(kù)中選擇與分析任務(wù)相關(guān)的數(shù)據(jù);④數(shù)據(jù)變換,轉(zhuǎn)換成適合挖掘的形式;⑤數(shù)據(jù)挖掘,使用智能方法提取數(shù)據(jù)模式⑥模式評(píng)估,識(shí)別表示知識(shí)的模式;⑦知識(shí)表示,向用戶呈現(xiàn)獲取的知識(shí)。
通常根據(jù)不同的目的選擇不同的分析方法。數(shù)據(jù)挖掘中常用的分析方法有:關(guān)聯(lián)分析、頻繁情節(jié)分析、聚類(lèi)分析、分類(lèi)、回歸等。在我們的系統(tǒng)中用到了關(guān)聯(lián)分析、頻繁情節(jié)分析、分類(lèi)和聚類(lèi)分析的方法。
1.2 網(wǎng)絡(luò)數(shù)據(jù)的獲取
獲取正確類(lèi)型的網(wǎng)絡(luò)數(shù)據(jù)對(duì)于異常檢測(cè)是必需的。被檢測(cè)的異常的類(lèi)型依賴(lài)于可獲取的網(wǎng)絡(luò)數(shù)據(jù)。目前獲取網(wǎng)絡(luò)數(shù)據(jù)的方法有如下幾種:
(1)網(wǎng)絡(luò)設(shè)備的告警日志
網(wǎng)絡(luò)設(shè)備(如交換機(jī)、路由器、服務(wù)器等)在運(yùn)行過(guò)程總都會(huì)產(chǎn)生大量的日志,這些日志中包含了用戶的異常行為:例如對(duì)設(shè)備的非授權(quán)訪問(wèn)、路由器或交換機(jī)的某個(gè)端口鏈路異常、DHCP服務(wù)器分配地址失敗等等。對(duì)這些數(shù)據(jù)的分析對(duì)于發(fā)現(xiàn)R2L,U2R等攻擊非常有效。
(2)基于簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議獲得的相關(guān)數(shù)據(jù)
簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議的MIB中提供了網(wǎng)絡(luò)中被管設(shè)備的大量的信息。例如MIB-II中的interface組中的信息提供了被管設(shè)備的端口的流量的詳細(xì)統(tǒng)計(jì)情況[6],通過(guò)對(duì)交換機(jī)或路由器的這些統(tǒng)計(jì)信息的獲取,可以知道具體端口的流量情況。對(duì)這些數(shù)據(jù)的分析可以發(fā)現(xiàn)分布式拒絕服務(wù)(DDoS)攻擊等以損耗帶寬為目的的攻擊。但是這類(lèi)數(shù)據(jù)只是提供統(tǒng)計(jì)以后的信息,對(duì)于轉(zhuǎn)發(fā)的具體IP分組的信息不記錄。
(3)IP分組捕獲
目前捕獲IP分組的信息的方法有兩種:一種是CISCO的Netflow[7]:Netflow是CISCO基于流測(cè)量的專(zhuān)有技術(shù),其性能高,且能適應(yīng)100 m帶寬的需求,而且其獨(dú)有的流歸并的方法,使得統(tǒng)計(jì)更加簡(jiǎn)單,且效率更高。目前已經(jīng)廣泛應(yīng)用于網(wǎng)絡(luò)性能檢測(cè)和流量計(jì)費(fèi)等領(lǐng)域。然而它一般需要相應(yīng)的路由器或交換機(jī)等硬件設(shè)備的支持。另一種是利用Libpcap[8]庫(kù):Libpcap庫(kù)是UNIX環(huán)境下通用的函數(shù)庫(kù),目前在Windows環(huán)境下也有相應(yīng)的Winpcap庫(kù)。著名的sniffer軟件TCPDUMP和Ethereal就是分別以這兩個(gè)庫(kù)為基礎(chǔ)開(kāi)發(fā)的。適合于在局域網(wǎng)中使用。
1.3 聯(lián)合數(shù)據(jù)挖掘系統(tǒng)的架構(gòu)
綜合上面提到的可獲取的網(wǎng)絡(luò)數(shù)據(jù),并把網(wǎng)絡(luò)管理中的故障管理和性能管理結(jié)合起來(lái),我們提出了一個(gè)聯(lián)合數(shù)據(jù)挖掘系統(tǒng),如圖2所示。
我們采取了類(lèi)似于簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議中的代理和管理者的結(jié)構(gòu)。代理向管理者提供測(cè)量的網(wǎng)絡(luò)數(shù)據(jù)供挖掘系統(tǒng)進(jìn)行分析,通過(guò)1.2節(jié)的分析,我們知道這些網(wǎng)絡(luò)數(shù)據(jù)都是可以得到的。挖掘系統(tǒng)負(fù)責(zé)對(duì)這些不同的數(shù)據(jù)進(jìn)行分析,是整個(gè)系統(tǒng)的核心。如圖3所示。
在上圖中,數(shù)據(jù)預(yù)處理包含了數(shù)據(jù)挖掘步驟中的數(shù)據(jù)清洗、數(shù)據(jù)集成。關(guān)聯(lián)挖掘、頻繁情節(jié)挖掘和流量異常分析對(duì)應(yīng)挖掘過(guò)程。參數(shù)設(shè)定和規(guī)則修訂是評(píng)估的過(guò)程,也是一個(gè)自我學(xué)習(xí)的過(guò)程。
2 系統(tǒng)實(shí)現(xiàn)
2.1 告警日志和Trap消息的挖掘
對(duì)于告警日志和Trap消息的分析屬于網(wǎng)絡(luò)管理中故障管理方面的內(nèi)容。目前的網(wǎng)絡(luò)設(shè)備(如交換機(jī)、路由器和UNIX服務(wù)器等)的告警日志大都采用UNIX系統(tǒng)的日志格式,即syslog的格式。這些日志不僅可以保存在本地,而且可以通過(guò)網(wǎng)絡(luò)進(jìn)行傳輸,供遠(yuǎn)程日志分析服務(wù)器進(jìn)行分析。例如對(duì)于如下一條CISCO路由器的告警日志:
*Apr 29 15:54:49:%DHCPD-4-PING_CONFLICT:DHCP address conflict: server pinged 172.18.41.164.’
其中“Apr 29 15:54:49”為告警產(chǎn)生時(shí)間,“DHCPD”表示引起告警的事件類(lèi)型,“4”表示告警級(jí)別,數(shù)字越小表示越嚴(yán)重。“DHCP address conflict: server pinged 172.18.41.164”表示日志的內(nèi)容。我們可以將其解析以后的各個(gè)屬性存儲(chǔ)在數(shù)據(jù)庫(kù)中,對(duì)其屬性間的關(guān)系做關(guān)聯(lián)分析。
通過(guò)對(duì)數(shù)據(jù)庫(kù)中這些告警日志的分析,我們可以發(fā)現(xiàn)設(shè)備頻繁發(fā)生的告警事件類(lèi)型,以及這些事件的嚴(yán)重程度。例如如下的一條關(guān)聯(lián)規(guī)則:
“172.18.31.242 → LINK,3(90%,80%)”
說(shuō)明“172.18.31.242”這臺(tái)設(shè)備發(fā)生“LINK”事件的關(guān)聯(lián)度為90%,置信度為80%。根據(jù)關(guān)聯(lián)規(guī)則中對(duì)關(guān)聯(lián)度和置信度的定義,這表明IP為“172.18.31.242”、事件類(lèi)型為“LINK”的事件占總事件的90%,而“LINK”事件有占所有IP為“172.18.31.242”的事件的80%。
頻繁情節(jié)的挖掘與關(guān)聯(lián)規(guī)則挖掘的區(qū)別在于它考慮的是同一屬性在不同時(shí)間出現(xiàn)的規(guī)律,而關(guān)聯(lián)規(guī)則考慮的是不同屬性之間的關(guān)系,沒(méi)有考慮時(shí)間。例如如下一條頻繁規(guī)則:
“如果link和link failure在5 s內(nèi)發(fā)生,那么high fault rate的警告在60 s內(nèi)發(fā)生的概率為70%”[2],
通過(guò)這種形式的挖掘,我們可以發(fā)現(xiàn)周期事件,并且可以發(fā)現(xiàn)事件在時(shí)間上的相關(guān)性。在實(shí)際種,這種規(guī)則往往比關(guān)聯(lián)規(guī)則更有意義。
Trap消息是當(dāng)設(shè)備狀態(tài)發(fā)生改變自動(dòng)觸發(fā)的消息。這里的Trap消息指的是簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議中的Trap消息。在簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議中定義了7中Trap消息類(lèi)型:“coldStart”,“warmStart”,“l(fā)inkDown”,“l(fā)inkUp”,“authenticationFailure”,“egpNeighborLoss”,“enterpriseSpecific”。其警告級(jí)別依次降低。對(duì)于Trap消息的處理我們可以采取基于規(guī)則的形式,因?yàn)樗南⒌念?lèi)型只有7種。例如當(dāng)頻繁發(fā)生“authenticationFailure”事件時(shí),則可以判斷為發(fā)生snmpget攻擊。
2.2 流量異常分析
通過(guò)IP流的捕獲和SNMP的MIB而獲得的流量信息對(duì)于異常分析是一個(gè)很好的數(shù)據(jù)源。基于行為的異常檢測(cè)和基于規(guī)則的誤用檢測(cè)是入侵檢測(cè)系統(tǒng)發(fā)現(xiàn)攻擊的兩種方法,我們將這兩者結(jié)合起來(lái)。對(duì)于已知的攻擊,管理員可以通過(guò)對(duì)規(guī)則庫(kù)的修訂來(lái)知道異常分析模塊來(lái)更加準(zhǔn)確的工作。另外對(duì)于未知的攻擊,采用數(shù)據(jù)挖掘中的分類(lèi)和聚類(lèi)的方法來(lái)刻畫(huà)正常流量和異常流量的區(qū)別。
2.2.1 通過(guò)SNMP 的MIB信息來(lái)捕捉異常
SNMP的MIB中提供了豐富的統(tǒng)計(jì)信息,例如對(duì)于端口掃描,我們可以利用MIB中的下列數(shù)據(jù)項(xiàng)來(lái)發(fā)現(xiàn)異常:
tcp組中的tcpAttcmptFails::該實(shí)體中發(fā)生的失敗連接嘗試的數(shù)量;
udp組中的udpNoPorts:在目標(biāo)端口沒(méi)有應(yīng)用程序而接收的UDP報(bào)文的總數(shù);
現(xiàn)實(shí)中的端口掃描,如著名的nmap軟件,往往都是對(duì)目標(biāo)主機(jī)的每個(gè)端口進(jìn)行嘗試性連接。那么這個(gè)過(guò)程中必然因?yàn)槟繕?biāo)主機(jī)的某些端口沒(méi)有打開(kāi)而失敗,從而造成上述兩個(gè)變量的增加。管理員可以通過(guò)在規(guī)則庫(kù)中添加這些變量的監(jiān)控范圍來(lái)發(fā)現(xiàn)這種異常。對(duì)于其他形式的攻擊,如拒絕服務(wù)攻擊等等,我們都可以通過(guò)監(jiān)控MIB中的某些變量來(lái)發(fā)現(xiàn)。
2.2.2 通過(guò)IP流的分析來(lái)發(fā)現(xiàn)異常
IP流是在一段時(shí)間內(nèi)捕獲的分組集合,這些分組具有共同的屬性(源地址、目的地址、協(xié)議、源端口、目的端口)[9]。我們可以讓代理在采集到單獨(dú)的IP分組信息以后,按照上述定義歸并為IP流。這樣我們可以讓挖掘服務(wù)器更加方便、簡(jiǎn)便的統(tǒng)計(jì)各種信息:例如一定時(shí)間間隔內(nèi)流量排名在前幾位的IP流有哪些、一定時(shí)間間隔內(nèi)流量排名在前幾位的端口應(yīng)用有哪些等等。通過(guò)這些信息的統(tǒng)計(jì),我們可以讓管理員對(duì)所管轄網(wǎng)絡(luò)的整體性能能夠時(shí)刻了解,在實(shí)際中,這種整體性能應(yīng)該是一個(gè)穩(wěn)定的狀態(tài),當(dāng)某個(gè)時(shí)刻有突變產(chǎn)生時(shí),我們認(rèn)為應(yīng)該有異常發(fā)生。
3 結(jié)語(yǔ)
網(wǎng)絡(luò)攻擊日趨復(fù)雜和隱蔽,傳統(tǒng)的方法已經(jīng)顯出不足。聯(lián)合數(shù)據(jù)挖掘的方法充分利用了目前可獲得的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行分析,把網(wǎng)絡(luò)管理中故障管理和性能管理結(jié)合起來(lái),從多個(gè)角度來(lái)發(fā)現(xiàn)網(wǎng)絡(luò)中存在的問(wèn)題。該文對(duì)這一方法進(jìn)行了研究和論述,初步的試驗(yàn)結(jié)果表明,這個(gè)系統(tǒng)是有效的。下一步工作是在更多的實(shí)驗(yàn)數(shù)據(jù)的基礎(chǔ)上建立流量異常檢測(cè)模型,并用測(cè)試數(shù)據(jù)來(lái)檢驗(yàn)和豐富該方法。
參考文獻(xiàn)
[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]劉文濤.網(wǎng)絡(luò)安全開(kāi)發(fā)包詳解[M].北京:電子工業(yè)出版社,2005.
[9]Sui Song,Li Ling,C.N.Manikopoulo.Flow-based Statistical Aggregation Schemes for Network Anomaly Detection[C]//ICNSC’06,2006:86-791.