趙 鵬,馬 斌,李一鵬
(河北省電力公司,石家莊 050021)
拒絕服務(wù)(DoS)攻擊是目前網(wǎng)絡(luò)攻擊中最常用也是最難以防御的攻擊之一,由于網(wǎng)絡(luò)中存在很多容易被控制的主機,使得分布式拒絕服務(wù)(DDoS)攻擊的危害越來越大。DDoS攻擊已成為當(dāng)前計算機網(wǎng)絡(luò)安全中最難解決的問題[1-2],目前對DDoS攻擊的檢測,從不同角度和檢測手段來看,存在著多種檢測方法。
拒絕服務(wù)攻擊是利用TCP/IP協(xié)議的漏洞、操作系統(tǒng)安全漏洞以及各種應(yīng)用系統(tǒng)的漏洞,對網(wǎng)絡(luò)設(shè)備和應(yīng)用系統(tǒng)進行攻擊的行為。它以消耗網(wǎng)絡(luò)帶寬和系統(tǒng)資源為目的,對網(wǎng)絡(luò)服務(wù)器發(fā)送大量“垃圾請求”,造成網(wǎng)絡(luò)或服務(wù)器不堪重負,導(dǎo)致系統(tǒng)癱瘓而無法提供正常的網(wǎng)絡(luò)服務(wù)。而分布式拒絕服務(wù)是在拒絕服務(wù)攻擊的基礎(chǔ)上產(chǎn)生的一種分布式、協(xié)作式的大規(guī)模拒絕服務(wù)攻擊方式,它主要利用網(wǎng)絡(luò)中大量主機來對目標(biāo)主機實施拒絕服務(wù)攻擊,具有攻擊時間短、危害性大且難于防范的特點[3]。
熵是描述變量隨機性的量綱[1]。對于離散隨機變量,設(shè)取第i個分量的概率為pi,熵[5]定義為:
熵越大,說明隨機性越強,包含的信息量越大。在實際應(yīng)用中,信息熵的計算是非常復(fù)雜的。具體說來,凡是導(dǎo)致隨機事件集合的肯定性、組織性、法則性或有序性等增加或減少的活動過程,都可以用信息熵的改變量作為統(tǒng)一的標(biāo)尺來度量。一個系統(tǒng)越是有序,信息熵就越低,反之,一個系統(tǒng)越是混亂,信息熵就越高。所以,信息熵也可以說是系統(tǒng)有序化程度的一個度量。
通過對攻擊原理的分析得知,網(wǎng)絡(luò)中的計算機在正常運行時ICMP、UDP、TCP的連接數(shù)一般是比較固定的,而當(dāng)計算機遭受SYNFlood、UDPFlood、ICMPFlood三種形式的攻擊時,對應(yīng)的連接協(xié)議的連接數(shù)會持續(xù)增高。在設(shè)計過程中,根據(jù)計算機所處網(wǎng)絡(luò)環(huán)境,預(yù)先設(shè)定正常情況下計算機中SYN/TCP的比率(一般在50%左右)、UDP每秒連接數(shù)、ICMP每秒連接數(shù)三組數(shù)據(jù),當(dāng)檢測過程中有一組數(shù)據(jù)超過預(yù)先設(shè)定的閾值時就記錄1次預(yù)警,當(dāng)連續(xù)3秒出現(xiàn)預(yù)警時就正式報警,系統(tǒng)對收到的數(shù)據(jù)包開始進行記錄直到取消預(yù)警,以便后續(xù)的分析和處理。系統(tǒng)規(guī)定連續(xù)3秒才正式報警是為了避免由于正常情況下大量并發(fā)連接所帶來的連接數(shù)突增的誤報,因為正常情況下大量并發(fā)連接會是一個時刻的連接數(shù)突增,但一般不會是持續(xù)的增加。以UDP攻擊為例,程序流程如圖1所示。
圖1 程序流程圖
利用信息熵的知識,結(jié)合DDoS攻擊的特點,對預(yù)警日志中的源IP地址進行統(tǒng)計。正常情況下,源IP地址服從穩(wěn)定的統(tǒng)計分布。由于攻擊數(shù)據(jù)包源IP地址通常是偽造的,一般是在攻擊源處隨機生成的,此時對進入該路由器的數(shù)據(jù)包的源地址進行統(tǒng)計,得到的熵值將發(fā)生變化。攻擊強度越大,變化越明顯。攻擊中,由于攻擊數(shù)據(jù)包的源IP地址是隨機產(chǎn)生的,會造成其熵值大于正常值;相反如果攻擊數(shù)據(jù)包不偽造IP地址,使用其真實地址,或偽造的地址不是隨機產(chǎn)生,而是使用固定的地址,那么計算出來的熵值要小于正常值。我們知道,當(dāng)分布式拒絕服務(wù)攻擊出現(xiàn)時,網(wǎng)絡(luò)中將產(chǎn)生大數(shù)據(jù)、大流量,或者大量的不完全請求。而攻擊者利用DDoS攻擊網(wǎng)絡(luò)時,通常會偽造大量的數(shù)據(jù),這些數(shù)據(jù)包的IP地址通常都是不一樣的,具有很強的隨機性。
根據(jù)IP數(shù)據(jù)報結(jié)構(gòu)(如圖2所示),在程序中定義IP報文頭結(jié)構(gòu),IP數(shù)據(jù)包中的第10字節(jié)的值可以判斷出收到的數(shù)據(jù)包的協(xié)議類型,所以在程序中判斷ip_protocol的值即可。若值為6,表示協(xié)議類型為TCP;若值為17,表示協(xié)議類型為UDP;若值為1,表示協(xié)議類型為ICMP。
圖2 IP數(shù)據(jù)報結(jié)構(gòu)
如果是TCP報文,根據(jù)TCP報頭格式(如圖3所示)分析代表SYN位的值是否為1,即是否為SYN請求。在程序中,通過獲取TCP報文中的第13字節(jié)和2(二進制為00000010)進行與運算,不為0即為SYN請求。
圖3 TCP報文頭結(jié)構(gòu)
當(dāng)收包數(shù)持續(xù)(3秒以上)大于規(guī)定的閾值時,數(shù)據(jù)存儲模塊對收到的數(shù)據(jù)包進行解析,將數(shù)據(jù)包中的源IP、目的IP、報文長度、收包時間等信息存儲到數(shù)據(jù)庫中,以便下一步進行數(shù)據(jù)分析。
將數(shù)據(jù)庫中記錄的源IP地址數(shù)量進行分類統(tǒng)計,按照數(shù)量從高到低排序,數(shù)量多的幾個IP可能為攻擊IP。同時計算出每個IP源發(fā)包的比例pt,最后求出IP源的信息熵通過信息熵的算法評估,如果Ep很大,說明被攻擊源IP隨機性很大,可能是隨機偽造IP源的攻擊;如果很小,說明隨機性很小,可能為單一攻擊源。
DDoS攻擊檢測系統(tǒng)運行程序如圖4所示。運行前設(shè)定好SYN與TCP的比率、ICMP收包速率、UDP收包速率的閾值。因為實驗要演示被攻擊狀態(tài),所以將這幾個閾值設(shè)定的很低,分別為7、10、10,圖中的方框示例越接近灰色表示越安全,越接近黑色表示越將達到閾值。
圖4 當(dāng)連續(xù)預(yù)警次數(shù)大于3時,系統(tǒng)報警并存儲攻擊日志Ep=4.35
當(dāng)連續(xù)預(yù)警次數(shù)小于3的時候,系統(tǒng)不會報警;當(dāng)大于等于3的時候,系統(tǒng)數(shù)據(jù)存儲模塊對收到的數(shù)據(jù)包源IP、目的IP、數(shù)據(jù)包長度、收到時間等信息進行分析存儲并報警,同時計算數(shù)據(jù)中的源IP的熵Ep=4.35(如圖4所示),說明攻擊的IP隨機性很強,疑似偽造源IP進行的攻擊。
利用發(fā)送UDP數(shù)據(jù)包的程序(如圖5所示)進行攻擊演示(如圖6所示),可以發(fā)現(xiàn)此時Ep=0.16,與之前的Ep=4.35比較,顯然非常小,說明攻擊隨機性不強。通過日志中統(tǒng)計數(shù)據(jù)可知發(fā)包數(shù)據(jù)最多的IP是10.1.40.190,正是運行UDP數(shù)據(jù)包程序所在計算機的IP,如果是真正的一次攻擊,那么服務(wù)器的管理員就可以采取下一步操作,如設(shè)置網(wǎng)絡(luò)選項將此IP的所有請求過濾掉。
圖5 進行UDP攻擊
圖6 利用UDP單一IP源進行攻擊Ep=0.16
利用發(fā)送ICMP數(shù)據(jù)包的程序進行攻擊演示(如圖7所示),可以發(fā)現(xiàn)此時Ep=0.00,顯然非常小,說明隨機性不強,通過日志中統(tǒng)計數(shù)據(jù)可知,發(fā)包數(shù)據(jù)只有一個IP(10.1.40.190),該IP正是運行ICMP數(shù)據(jù)包程序所在計算機的IP。
圖7 利用ICMP單一IP源進行攻擊Ep=0.00
系統(tǒng)能夠成功的檢測出SYNFlood、UDPFlood、ICMPFlood三種形式的攻擊,同時將報警信息記錄在數(shù)據(jù)庫中以便管理員進行分析和對攻擊源IP的治理(如過濾掉攻擊源IP的請求)。通過對日志中源IP數(shù)據(jù)包的熵計算有助于辨別是單一IP源的攻擊還是隨機偽造IP源進行的攻擊。
根據(jù)實際情況可從以下兩方面進一步研發(fā)系統(tǒng)。(1)可以在被檢測的服務(wù)器上裝一個短信貓,產(chǎn)生報警后第一時間給服務(wù)器的管理員發(fā)短信,既便于及時有效地發(fā)現(xiàn)問題,又解除了服務(wù)器管理員整天堅守服務(wù)器的煩惱;(2)當(dāng)產(chǎn)生報警信息后,將報警后所有收到的數(shù)據(jù)包信息記錄在數(shù)據(jù)庫中,后期可以引入神經(jīng)網(wǎng)絡(luò)算法對數(shù)據(jù)進行處理,將攻擊等級進行分級和評估等。
[1]薛靜鋒,曹元大.基于貝葉斯分類的分組入侵檢測技術(shù)研究[J].計算機科學(xué),2005,32(8):60-63.
[2]AljifriH.IPTraceback:ANew Denial-of-service Deterrent[J].Security&Privacy Magazine,2003(2):24-31.
[3]嚴(yán)芬,高玉龍,殷新春.DDoS 攻擊檢測進展研究[J].蘇州大學(xué)學(xué)報,2011,27(3):36-38.
[4]張潔,秦拯.改進的基于熵的DDoS攻擊檢測方法[J].計算機應(yīng)用,2010,30(7):1779-1781.
[5]Keunsoo Lee,Juhyun Kim,Ki Hoon Kwon,Younggoo Han,Sehun Kim.DDoS attack detection method using cluster analysis[J].Expert Systems with Applications,2008,34(3):1659-1665.