劉建波
(山東財政學院計算機網(wǎng)絡中心,濟南 250014)
僵尸網(wǎng)絡已經(jīng)成為互聯(lián)網(wǎng)上一個巨大的安全威脅,是當前網(wǎng)絡安全領域面臨的主要問題之一,它具有一定的組織結構,蠕蟲似的傳播特征,木馬似的后門特征,并往往采用變形、Rookie等病毒技術,是惡意代碼技術的綜合.目前流行的僵尸網(wǎng)絡采用多種協(xié)議來實現(xiàn)控制,主要有IRC、HTTP和P2P,但由于IRC僵尸網(wǎng)絡簡單、靈活、易控等優(yōu)點,IRC僵尸網(wǎng)絡仍然是攻擊者手中的重要手段[1].本文通過深入研究IRC僵尸網(wǎng)絡運行機制,分析僵尸程序功能結構和交互過程的網(wǎng)絡行為特征,提出了一種基于動態(tài)流量更新聚類算法的IRC僵尸網(wǎng)絡檢測方法,該方法基于網(wǎng)絡流檢測,主要3個過程:捕獲流量數(shù)據(jù)并做預處理;基于改近的k-means聚類算法做動態(tài)數(shù)據(jù)項分析;得出僵尸網(wǎng)絡檢測結果.
利用Cisco公司開發(fā)的NetFlow進行流量采集,NetFlow是以“流”為采集單位的數(shù)據(jù)統(tǒng)計方法.NetFlow協(xié)議的核心是對流緩存進行組織、管理,提供遵循某種匯聚方法而得到“流”的統(tǒng)計數(shù)據(jù),檢測中主要使用的NetFlow數(shù)據(jù)格式如表1.
表1 數(shù)據(jù)參數(shù)及含義
利用NetFlow統(tǒng)計方法分離出滿足僵尸協(xié)議特征的網(wǎng)絡流量群,以便縮小數(shù)據(jù)空間,為快速準確地檢測僵尸網(wǎng)絡打下基礎.首先利用以太網(wǎng)協(xié)議類型過濾出IP流量,然后利用IP協(xié)議,過濾出TCP流量(IRC協(xié)議以TCP協(xié)議為基礎).然后,用數(shù)據(jù)包的大小作為過濾條件,在通常情況下,使用IRC服務聊天所產(chǎn)生的數(shù)據(jù)包一般都不會太大,預先定義一個合理的包大小,作為過濾上限,過濾掉非常大的數(shù)據(jù)包[2].
基于以上數(shù)據(jù)流過濾之后,照協(xié)議類型、源地址、目的地址和目的端口將具有元素的相同數(shù)據(jù)流劃分到一個集合,針對每個集合的得到IRC命令、包速率(單位時間內(nèi)數(shù)據(jù)包個數(shù))和包大小(平均包大小)[3],將其整合后作為該集合的三個向量用k-means算法進行聚類分析,將原本無序的網(wǎng)絡流量劃分為一個個小的類簇.
首先從n個數(shù)據(jù)對象選擇k個對象作為初始聚類中心;每個對象的初值作為一個簇的中心,剩下其它對象,根據(jù)它們與這些簇中心的距離,分別將它們加入與其最相似的(聚類中心所代表的)聚類;然后再計算每個新聚類的聚類中心(該聚類中所有對象的均值)[4];不斷重復以上過程直到函數(shù)收斂為止.在算法實現(xiàn)過程中,大多采用均方差作為標準測度函數(shù),而且在實現(xiàn)過程中藥盡量保證各個聚類緊湊,各個聚類之間盡量分開.
方差標準測試函數(shù)定義:
其中:E為n個數(shù)據(jù)對象平均方差的和,p為選擇的對象,mi是簇Ci的平均值.
在聚類之前對數(shù)據(jù)做預處理,從而實現(xiàn)數(shù)據(jù)流的平滑性,增加數(shù)據(jù)聚類的準確度,使得各個數(shù)據(jù)的取值在合理地范圍內(nèi)波動,可以利用平均絕對偏差方法來實現(xiàn),具體如下:
其中:X1f,…,Xnf是特征 f的 n個特征值,mf是平均值,即:
數(shù)據(jù)流特征值計算公式:
基于以上處理方法,反復計算特征的平均值和方差,當平均值為0,方差為1時,可以利用公式(5)產(chǎn)生歸一化結果:
在局域網(wǎng)中,由于網(wǎng)絡數(shù)據(jù)不斷更新,為了提高僵尸網(wǎng)絡檢測的準確率,結合以上數(shù)據(jù)聚類算法,對聚類結果,采用數(shù)據(jù)自適應的聚類方法進行動態(tài)處理,主要思路如下:首先合理定義時間滑動窗口(比如以10 s為單位);對數(shù)據(jù)流進行聚類得到數(shù)據(jù)流分簇;變更時間滑動窗口,若聚類結果數(shù)據(jù)流穩(wěn)定,保留當前的聚類結果;相反,若出現(xiàn)以下情況,必須重新處理得到的結果:①由于網(wǎng)絡不穩(wěn)定而形成的新數(shù)據(jù)流;②簇中一些數(shù)據(jù)流發(fā)生突變,產(chǎn)生噪聲數(shù)據(jù)流,導致簇內(nèi)數(shù)據(jù)流不再相似[5].
在聚類過程中,為了保證數(shù)據(jù)流的平滑,對以上不穩(wěn)定數(shù)據(jù)流采用自適應處理,思路如下:盡量去除噪聲數(shù)據(jù)流,添加新數(shù)據(jù)流;當數(shù)據(jù)流發(fā)生突變時候,對生成的簇進行合理拆分和合并.處理核心思路如下:將噪聲數(shù)據(jù)流首先放入臨時變量中,非噪聲數(shù)據(jù)流根據(jù)各個簇的中心距離重新分配到其他不同簇中,當然,根據(jù)中心距離可能找不到該正常數(shù)據(jù)流的歸屬,此時可以將其構造一個新的獨立簇,放入臨時變量,最后根據(jù)簇間相似性再分別進行合并,以上過程反復處理,最后得到的分簇都相互獨立[6].通過以上自適應處理方法,既有效處理了噪聲數(shù)據(jù)流,又充分考慮了產(chǎn)生的新數(shù)據(jù)流,做到了數(shù)據(jù)處理的全面性,最終得到新的聚簇更加合理,其結果更加具有指導性.
利用網(wǎng)絡實驗室網(wǎng)絡環(huán)境,用服務器端軟件Unreal架設一臺服務器,實驗中正常的用戶聊天使用的軟件為MIRC,使用SDbot作為客戶端的僵尸程序[7].定制兩個正常聊天客戶端,兩個僵尸網(wǎng)絡客戶端,兩個攻擊客戶端,所有客戶端與服務器通過三層交換機鏈接,流量從該交換機鏡像端口采集,其簡單拓撲結構[8]如圖 1.
圖1 實驗拓撲結構
從交換機的鏡像端口中采集數(shù)據(jù),定義時間滑動窗口為100 s,針對流量數(shù)據(jù)集處理后得到的3個向量集合基于以上方法聚類分析,得到聚類結果.
通過表2 IRC命令聚類結果聚類結果分析可以得到,前兩行PING/DONG命令所占的比例比較高,聊天命令PRIVMSG占的比例比較低;而后兩行PING/DONG命令所占的比非常低,聊天命令PRIVMSG 比例比較高[9].
表2 IRC命令聚類結果
為了進一步分析平均包的變化規(guī)律,實驗中又對滑動時間窗口調(diào)整為10 s,對持續(xù)20min流量動態(tài)聚類分析得到走勢圖如圖2.在圖2中,平均包走勢比較均衡,以一個中心點呈現(xiàn)一種類正弦圖形,上下波動,突發(fā)流量比較少,分布比較均勻,說明聊天數(shù)據(jù)比較活躍.而圖3中平均包數(shù)據(jù)量相對比較小且比較集中,存在瞬間突發(fā)流量現(xiàn)象,可以依次作為檢測僵尸網(wǎng)絡的一個主要依據(jù):正常客戶端聊天數(shù)據(jù)比較活躍,分布比較均勻,而僵尸主機雖然會長時間在線,但是聊天數(shù)據(jù)并不活躍,雖然其作為一個IRC聊天用戶,但是在聊天頻道內(nèi)長時間不發(fā)言,保持空閑,主要發(fā)送PING/DONG數(shù)據(jù)包,而且存在突發(fā)流量現(xiàn)象,說明具有協(xié)同攻擊現(xiàn)象[10-11].由此可以得出實驗結論,主機 192.168.0.30可疑等級比較低,而主機192.168.0.10的可疑等級非常高.
圖2 192.168.0.30 平均包聚類結果
圖3 192.168.0.10 平均包聚類結果
隨著網(wǎng)絡技術的快速發(fā)展,局域網(wǎng)中利用IRC僵尸網(wǎng)絡進行協(xié)同攻擊現(xiàn)象越來越頻繁,嚴重者影響了網(wǎng)絡的正常運行.網(wǎng)絡管理者必須建立準確有效的自動化檢測機制,及時發(fā)現(xiàn)并有效遏制其蔓延.本文提出了一種基于動態(tài)聚類算法的IRC僵尸網(wǎng)絡檢測算法,以分析IRC僵尸網(wǎng)絡的協(xié)議命令和數(shù)據(jù)包特點為理論依據(jù),利用改進的k-means聚類算法,建立滑動時間窗口機制,對流量集合所呈現(xiàn)的數(shù)據(jù)向量動態(tài)聚類分析,聚類結果的評測及實驗結果表明,該方法是積極有效的,檢測準確率比較高,在網(wǎng)絡安全管理實踐中,可以有效檢測IRC僵尸網(wǎng)絡,優(yōu)化網(wǎng)絡安全管理工作.
[1]王 威,方濱興,崔 翔.基于終端行為特征的IRC僵尸網(wǎng)絡檢測[J].計算機學報,2009,32(10):1981-1982.
[2]王 濤,余順爭.中心式結構僵尸網(wǎng)絡的檢測方法研究[J].小型微型計算機系統(tǒng),2010,31(3):512-514.
[3]諸葛 建偉,韓心慧,周勇林,等.僵尸網(wǎng)絡研究[J].軟件學報,2008,9(3):704-706.
[4]孫吉貴,劉 杰,趙連宇.聚類算法研究[J].軟件學報,2008,19(1):51-52.
[5]丁 青,周留根,朱愛兵,等.基于k-means聚類算法的校園網(wǎng)用戶行為分析研究[J].微計算機應用,2010,31(6):75-76.
[6]于曉聰,董曉梅,于 戈,等.僵尸網(wǎng)絡在線檢測技術研究[J].武漢大學學報:信息科學版,2010,35(5):579-580.
[7]孫彥東,李 東.僵尸網(wǎng)絡綜述[J].計算機應用,2006,26(7):1629-1630.
[8]劉旭勇.DDoS攻擊及主動防御模型研究[J].計算機技術與發(fā)展,2008,18(7):144-145.
[9]李潤恒,王明華,賈 焰.基于通信特征提取和IP聚集的僵尸網(wǎng)絡相似性度量模型[J].計算機學報,2010,33(1):46-48.
[10]STRAYER W T,WALSH R.Detecting botnets with tight command and control[C]//Proceedings of the 31st IEEE Conference on Local Computer Networks,Tampa,F(xiàn)L,2006:200-202.
[11]GU G,PERDISCT R,ZHANG J,et al.BotMiner:Clusteringanalysis of network traffic for protocol-and structure-independent botnet detection[C]//Proceedings of the 17th USE-NIX Security Symposium(Security’08),San Jose,CA,2008:139-154.