,
(1.廣州城建職業學院 信息工程學院,廣州 510925;2.廣州工商學院 計算機科學與工程系,廣州 510800)
拒絕服務(DoS)攻擊屬于現代最為多見的網絡攻擊行為,此攻擊的主要目的是打擊計算機及網絡的正常服務能力,包括:1)DoS攻擊,利用對攻擊目標發送攻擊數據包,從而有效降低網絡及主機的資源,此種攻擊也可以稱之為數據包洪泛攻擊;2)分布式拒絕服務(DDoS),屬于DoS攻擊的一種延伸,其通過因特網分布式連接,利用控制分布在網絡計算機中產生大量數據包洪泛,實現網絡和計算機的攻擊[1]。目前入侵檢測系統一般使用亡羊補牢工作模式,也就是在網絡和計算機受到多次攻擊之后,通過安全專業人員花費較多時間對攻擊數據包進行全面的分析,并且對攻擊特點進行有效總結[2]。但是此種工作模式具有兩種缺點:1)通過工作人員手工實現攻擊特點的總結,要求消費大量物力及人力;2)無法在發生攻擊之后及時獲取攻擊特點實現防御,不能夠降低攻擊導致的危害[3]。基于此,本文研究了以S-Kohonen為基礎的DoS攻擊檢測算法及技術。
S-Kohonen網絡模型指的是沒有監督的學習網絡,屬于自組織競爭型的神經網絡,能夠實現環境特點的自動識別,還能夠實現自動聚類。S-Kohonen神經網絡使用自組織特點的映射,并且對權值進行調整,在輸入模式中通過神經元和網絡相互連接,之后神經元就能夠實現攻擊的檢測[4]。圖1為S-Kohonen網絡的二維網格結構。
圖1 S-Kohonen網絡的二維網格結構
S-Kohonen網絡在工作過程中的主要原理為:在樣本到網絡中輸入的時候,競爭層神經元的計算和輸入樣本的歐式距離最小的就是獲勝神經元,對相鄰神經元和獲勝神經元權值進行有效的調整,使其和周圍的權值與輸入的樣本相互接近。通過反復的訓練,要求同類的神經元能夠和權系數相互接近。在學習過程中,權值的學習速率及神經元的領域都在不斷的降低,以此集中相同的神經元[5]。
S-Kohonen網絡有兩層,包括競爭層及輸入層,二維網格節點屬于神經元,輸入層具有多個輸入節點,使用j進行表示。S-Kohonen神經網絡通過神經元實現拓撲結構的創建,神經元網絡位置之間的聯系和其關系具有密切的聯系。
S-Kohonen算法步驟:
S-Kohonen神經網絡的輸出層每個節點都代表一類數據,因此,有多少節點就代表有多少數據類別。輸出層與競爭層節點的網絡權值互相聯系,當在S-Kohonen網絡中輸入訓練數據時,輸入層、競爭層之間的權值、競爭層、輸出層之間的權值需要根據實際應用進行調整。
1)數據歸一化。數據的歸一化采用函數mapminmax處理完成。在進行數據的歸一化之前,新建一個excel導入需要訓練的數據,利用excel相關功能對訓練數據進行分類,并添加相應的標簽,共將訓練數據分成5類,然后隨機將訓練數據和測試數據實現排序,排序之后利用公式(1)實現訓練數據和測試數據的歸一化處理。
(1)
公式(1)中,ymin和ymax均為參數,沒有定值,可以自行設置,通常默認為-1,1;
2)初始化。根據輸入的數據的具體情況設置輸入層、競爭層和輸出層節點個數,設置節點個數之后,對競爭層的節點進行排序及設置相關的參數。輸入向量X(k)=[x1(n),x2(n),…,xN(n)]T之后作為訓練數據。權值向量為Wij(k)=[wi1(n),wi2(n),…,wiN(n)]T,i=1,2,…,M,j=1,2,…,N。令L為迭代總次數,設置初始學習速率α(0),選擇鄰域半徑Nc(0)。
3)計算優勝節點。dj代表輸入向量X(k)=[x1(n),x2(n),…,xN(n)]T與競爭層神經元j之間的距離。
(2)
用最小距離輸入向量X(k)的競爭層神經元作為最佳輸出神經元。根據公式(2)得到樣本的最優節點,也就是和輸入樣本距離最短的競爭層節點。
4)權值調整。調整包含在其領域Nc(t)內的節點權系數和節點c,即:
Nc(t)=(t|find(norm(post,posc) t=1,2,…,n (3) Wij=Wij+η(Xi-Wij) (4) 公式(3)中,post代表神經元t的位置,posc代表神經元c的位置;norm計算不同神經元間的歐式距離;r為領域半徑;η為學習速率,η隨著進化次數的不斷增多而呈現出線性下降的趨勢。根據公式(4)對需要的優勝節點權值進行調整,改變學習速率和領域半徑的值,使它們隨著進程逐漸減小,從而不斷拉近輸入數據與節點的距離,最終完成神經網絡的聚類功能。 5)判斷算法是否結束,如果沒結束則返回3)。 6)分類檢測。隨機對測試數據進行排序,再利用mapminmax函數實現歸一化處理,數據處理好之后傳輸至訓練好的S-Kohonen神經網絡實現分類檢測。 圖2 DOS的攻擊過程結構 DoS攻擊方法在不斷的發生變化,通過圖2可以看出來,攻擊發動人員對大量網絡防御脆弱主機進行了控制,此主機沒有防火墻的安裝,還存在一定的軟件安全漏洞,這致使其容易被攻擊發動人員所控制,控制網絡通過偽造源地址等多種方法還能夠對受害的主機實現攻擊流量的發送,另外,還可借助反射技術對其他的主機朝著目標主機進行攻擊[6]。 在DoS攻擊過程中,一般使用三種手段:第一種,使用虛假源IP地址;第二種,利用對僵尸網絡進行控制,從而對目標主機進行請求的發送;第三種,實現反射攻擊。完整DoS攻擊主要由多種或者一種項目構成。 圖3為分布的網絡流量目的IP地址,通過圖3可以看出來,在網絡中,大部分的目的IP少次出現,并且分布并不均勻,以此就出現了網絡流量目的IP地址重尾特點,也就是大量屬性值只是出現了很少的次數,其中的源端口、源地址及目的端口都具有相同的重尾分布規律。網絡流量分布特點能夠對網絡異常及工具進行有效的檢測,考慮到異常會對網絡流量端口及IP地址分布特點進行有效的檢測,所以還要使用熵描述[7],圖4為目的IP地址熵值的曲線。 圖4 目的IP地址熵值的曲線 圖3 分布的網絡流量目的IP地址 表1為不同類型異常對于屬性分布的特點,通過表1可以看出,不同類型攻擊都會對目的IP地址分布特點產生一定的影響,由此,目的IP地址指的是實現網絡流量攻擊檢測的良好屬性,為了能夠對此影響直觀的表現出來,就選擇網絡入侵檢測攻擊較多的數據集實現不通過類型攻擊對于網絡流量的影響[8],詳見圖5。 表1 不同類型異常對于屬性分布的特點 圖5 屬性不同熵值的變化曲線 通過圖5可以看出,在受到DoS攻擊的時候,目的端口屬性就會具有集中性,從而降低目的IP地址熵值,而且還會出現大量的虛假源地址,以此分散源端口的屬性,提高IP地址的熵值。 DoS攻擊檢測是一種異常檢測算法,其主要就是對正常數據進行分析,得到正常數據模型,對需要檢測的數據進行判斷,從而對異常數據進行確定。因為DoS攻擊檢測使用自適應的檢測模型[9],圖6為自適應檢測模型的工作原理。 圖6 自適應檢測模型的工作原理 在圖6中,數據收集模塊是根據數據收集策略實現網絡數據的收集,之后對特征提取模塊進行提交。特征提取模塊使檢測數據能夠利用特定算法實現流量特點的轉換,流量特點屬于檢測數據高層的抽象化。攻擊檢測模塊以流量模型的判斷是否正常為基礎,以此出現檢測的結果。自適應模型通過被保護網絡環境中實現數據的收集,從而產生一開始檢測模型,并且在積累大量數據之后,利用自學習能力模型的產生算法產生全新的檢測模型[10]。 DoS檢測的過程主要包括產生檢測模型及檢測攻擊,在產生檢測模型過程中,網絡中原始數據就會被收集,并且得到相應的處理,而且還產生通過特征創建的聚類檢測模型,在檢測攻擊過程中,就會產生流量特征,之后通過檢測模型實現檢測。圖7為檢測過程中的檢測模型,其屬于攻擊檢測基礎。 圖7 檢測過程中的檢測模型 DoS檢測模型主要是將時間窗作為單位處理,實現記錄的連接,也就是讓網絡數據以發生時間為基礎,按照時間窗的形式進行相應的劃分,使某個時間窗中的原始網絡數據實現連接記錄的恢復。DoS在所有時間窗中都實現檢測,以此達到實時檢測的目的。之后DoS通過關聯算法使連接記錄能夠轉變成為流量特點,DoS攻擊屬于群體網絡的行為,從單一TCP連接記錄來看較為正常,但是在短時間內會出現大量相同TCP連接,通過關聯算法能夠得到此種群體網絡行為[11]。 在產生流量特點之后,就要使用聚類算法對正常流量特點聚類進行計算,之后以距離為基礎實現異常判斷。聚類算法將流量特點作為向量,服務類型等一系列屬性屬于向量分量。聚類處理結果就是將大量數據組合成為多個數據集合,其中的攻擊數據就是小數據集合,詳見圖8: 圖8 聚類的模型示意圖 聚類算法能夠產生模型,其算法為: d(i,j)= 其中的每個子集都表示一個聚類,每個聚類中數據距離比較近,不同聚類數據間距比較遠,不同聚類通過中心值表示,利用聚類數據計算平均值得到中心值[12]。 為了驗證本文方法的有效性,需進行仿真實驗,本文實驗測試在 Windows 7 操作系統上,處理器為AMD A10-5750M APU with Radeon(tm) HD Graphics 2.50 GHz,內存為 4.00 GB。實驗在Matlab R2010 b 環境創建網絡模型,對DoS、U2R、Probe、Data、R2L五種數據進行分析,它們屬于現代攻擊檢測過程中使用最為全面的數據集。 為了分析本文提出的算法的有效性檢測Smurf攻擊。當Smurf攻擊出現時大量主機會同時向受害主機發送ICMP報文,由于該段時間內源地址數目會顯顯著增多,因此,會使系統的原有秩序會被打亂,使某一時段目的IP地址數目相對集中,產生新的大量的源IP地址或者原有的大量目的IP地址消失,影響受害主機的IP地址出現概率,最終改變網絡流量的分布結構。 目前攻擊過程檢測方法中熵值的使用最為廣泛,其屬于對網絡特點的有效描述,也是不確定特點的度量。熵值越大,隨機性分布會越明顯。熵值越小,便更加表現為集中式分布。在實驗過程中使用三折較差驗證,使樣本集數據分成三組,每個子集數據中具有一次驗證集,其他的子集數據為訓練集[13]。 網絡Smurf攻擊的采集數據樣本來自于KDP網絡病毒數據庫,采集相關的攻擊數據構成測試集,在采樣過程中測試集的采樣率為fs=10 kHz ,網絡攻擊數據的特征分解帶寬B=1000 Hz。 自相關匹配濾波器的參數為:初始步長μ0=0.001,θ2=0.45π,θ1=-0.3π,即 500 Hz。根據上述仿真環境和參數設定,得到的四組實驗結果具體如下: 第一組實驗中的結果詳見圖9,通過圖9可以看出,在收集窗口一樣的背景下,不同比例滑動窗口對于ABA算法檢測性能不存在影響,并且具有一定的算法穩定性。該算法的檢測率不高,處于90%~90.5%之間。 圖9 不同滑動窗口的平均檢測數 第二組實驗的結果詳見圖10,通過圖10可以看出,不同采樣窗口對于算法都具有不同的影響,采樣窗口越大,平均檢測率越低,因為攻擊突發網絡信號流量在短時間中具有明顯的抖動,影響了積累量特征值,對檢測率有所降低 [14] 。 圖10 不同收集窗口中算法的平均檢測數 第三組實驗的結構詳見圖11,通過圖11可以看出,在1 s時間窗口中的sport檢測率是最高的,在5 s和10 s時間窗口中的dip檢測率最高。 圖11 第三次的實驗結果 通過以上分析可以看出,本文所研究的算法具有較高的精準度,正確率和運行時間上都較優,能夠為網絡管理工作人員提供可靠的響應時間,從而有效阻止網絡攻擊,具有良好的分類檢測性能。 本文對S-Kohonen神經網絡流程及缺點進行了全面的研究,并且實現了算法的優化,之后創建模型,能夠有效提高攻擊檢測算法的檢測效率。最后,本文使用試驗驗證的方法進行分析,通過結果表示,基于S-Kohonen網絡的DoS攻擊檢測算法能夠有效提高分類正確率,并且縮短訓練時間,提高模型精度。2 DoS的攻擊檢測算法
3 基于S-Kohonen的DoS攻擊檢測
3.1 檢測的原理
3.2 檢測的過程
4 實驗結果與分析
5 結束語