《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > DCA算法在僵尸網(wǎng)絡(luò)檢測(cè)中的應(yīng)用
DCA算法在僵尸網(wǎng)絡(luò)檢測(cè)中的應(yīng)用
來源:微型機(jī)與應(yīng)用2014年第6期
楊智興,方賢進(jìn)
(安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南232000)
摘要: Greensmith 根據(jù)樹突狀細(xì)胞機(jī)理設(shè)計(jì)實(shí)現(xiàn)了樹突狀細(xì)胞算法DCA(Dendritic Cell Algorithm),并將其用于入侵檢測(cè)系統(tǒng)中。實(shí)驗(yàn)結(jié)果表明,該算法具有較高的效率,并得到了廣泛的應(yīng)用。本文對(duì)DCA算法進(jìn)行了描述并簡(jiǎn)要介紹了其在僵尸網(wǎng)絡(luò)檢測(cè)中的應(yīng)用,具有實(shí)際意義。
Abstract:
Key words :

摘  要: Greensmith 根據(jù)樹突狀細(xì)胞機(jī)理設(shè)計(jì)實(shí)現(xiàn)了樹突狀細(xì)胞算法DCA(Dendritic Cell Algorithm),并將其用于入侵檢測(cè)系統(tǒng)中。實(shí)驗(yàn)結(jié)果表明,該算法具有較高的效率,并得到了廣泛的應(yīng)用。本文對(duì)DCA算法進(jìn)行了描述并簡(jiǎn)要介紹了其在僵尸網(wǎng)絡(luò)檢測(cè)中的應(yīng)用,具有實(shí)際意義。
關(guān)鍵詞: 僵尸網(wǎng)絡(luò);DCA;入侵檢測(cè)

    僵尸網(wǎng)絡(luò)是在網(wǎng)絡(luò)蠕蟲、特洛伊木馬、后門工具等傳統(tǒng)惡意代碼形態(tài)的基礎(chǔ)上發(fā)展、融合而產(chǎn)生的一種新型攻擊方式。目前一個(gè)具有通用性的定義是:僵尸網(wǎng)絡(luò)(botnet)是攻擊者出于惡意目的,傳播僵尸程序控制大量主機(jī),并通過一對(duì)多的命令與控制信道所組成的網(wǎng)絡(luò)。
    根據(jù)國(guó)家互聯(lián)網(wǎng)應(yīng)急中心2013年10月[1]公布,CN-CERT監(jiān)測(cè)發(fā)現(xiàn)境內(nèi)近740 000個(gè)IP地址對(duì)應(yīng)的主機(jī)被木馬或僵尸程序控制,木馬或僵尸網(wǎng)絡(luò)控制服務(wù)器IP總數(shù)為12 275個(gè)。其中,境內(nèi)木馬或僵尸網(wǎng)絡(luò)控制服務(wù)器IP數(shù)量為6 763個(gè),按地區(qū)分布數(shù)量排名前三位的分別為廣東省、江蘇省、云南省。境外木馬或僵尸網(wǎng)絡(luò)控制服務(wù)器IP數(shù)量為5 512個(gè),主要分布于美國(guó)、韓國(guó)、中國(guó)臺(tái)灣。其中,位于美國(guó)的控制服務(wù)器控制了境內(nèi)303 588個(gè)主機(jī)IP,控制境內(nèi)主機(jī)IP數(shù)量居首位,其次是位于葡萄牙和荷蘭的IP地址,分別控制了境內(nèi)135 178個(gè)和109 893個(gè)主機(jī)IP。
    僵尸網(wǎng)絡(luò)的肆虐給網(wǎng)絡(luò)安全帶來了巨大的威脅,現(xiàn)階段針對(duì)僵尸網(wǎng)絡(luò)的檢測(cè)研究[2]也層出不窮,本文簡(jiǎn)要介紹DCA算法在僵尸網(wǎng)絡(luò)檢測(cè)中的應(yīng)用。
1 DCA算法
    人類免疫系統(tǒng)HIS(Human Immune System)中免疫應(yīng)答是從DC開始的復(fù)雜過程。DC是一種抗原提呈細(xì)胞(APC),它從淋巴系統(tǒng)遷移到機(jī)體組織(Tissue),攝取抗原和蛋白質(zhì)碎片,同時(shí)采集抗原所處環(huán)境中的分子作為危險(xiǎn)信號(hào),攝取抗原并采集信號(hào)之后從機(jī)體組織返回淋巴結(jié)(Lymph Node),并將抗原提呈給T細(xì)胞以識(shí)別抗原。另外,DC能夠處理環(huán)境分子,并釋放特定的細(xì)胞因子(cytokines)以影響T細(xì)胞分化過程。DC 進(jìn)行決策并驅(qū)動(dòng)T細(xì)胞進(jìn)行免疫應(yīng)答。
    Greensmith通過對(duì)DC生理功能和角色的研究,對(duì)DC行為進(jìn)行建模,設(shè)計(jì)實(shí)現(xiàn)了DCA算法。
    DCA是基于DC群體(population)的算法[3-4],對(duì)抗原信號(hào)形式的數(shù)據(jù)流進(jìn)行處理。DC群體不斷更新,更新頻率和種類控制與算法實(shí)現(xiàn)細(xì)節(jié)有關(guān)。群體中每個(gè)DC執(zhí)行抗原和信號(hào)的采集。DC存儲(chǔ)采集的抗原,并將輸入信號(hào)轉(zhuǎn)換為輸出信號(hào)。
    DCA輸入信號(hào)包括PAMP、DS(Danger Signal)、SS(Safe Signal)和IS(Inflammation Signal)。DC對(duì)輸入信號(hào)進(jìn)行處理,產(chǎn)生3種輸出信號(hào)——CSM、半成熟信號(hào)(semi)和成熟信號(hào)(mat)。為了避免對(duì)復(fù)雜的實(shí)際生物信號(hào)轉(zhuǎn)換機(jī)制建模,iDC信號(hào)處理使用加權(quán)求和公式來模擬,以減少計(jì)算開銷,使DCA適用于實(shí)時(shí)異常檢測(cè)。DC每次更新累積輸出信號(hào)之后,比較CSM和遷移閾值(Migration Threshold),若CSM超過遷移閾值,則從組織刪除此DC,采樣周期結(jié)束,DC遷移到淋巴結(jié)進(jìn)行結(jié)果分析。
    DC遷移之后進(jìn)行累積輸出信號(hào)評(píng)估,semi和mat濃度較大者成為細(xì)胞環(huán)境。用于對(duì)DC采集的所有抗原進(jìn)行標(biāo)記,標(biāo)記成環(huán)境0或者1,最終用于產(chǎn)生MCAV,代表抗原異常程度。用戶可以將其與閾值進(jìn)行比較,判斷抗原是否異常。
    DCA算法流程如圖1所示[5]。

2 DCA算法在僵尸網(wǎng)絡(luò)檢測(cè)中的應(yīng)用
    基于群體的DCA算法的輸入為時(shí)間序列數(shù)據(jù),是由信號(hào)與抗原組成的數(shù)據(jù)流。要將DCA算法應(yīng)用到僵尸網(wǎng)絡(luò)的檢測(cè)中[6],最重要的是要解決算法中的時(shí)間序列輸入數(shù)據(jù)的獲取以及信號(hào)與抗原的映射,下面給出解決方案。
2.1 算法輸入數(shù)據(jù)的獲取方法
    檢測(cè)算法的輸入數(shù)據(jù)應(yīng)能反映受害主機(jī)(即受僵尸程序或其他惡意程序感染的主機(jī))狀態(tài)。通過對(duì)僵尸程序的分析得出,僵尸網(wǎng)絡(luò)要完成一些列的功能必須通過調(diào)用相關(guān)的系統(tǒng)函數(shù)才能夠?qū)崿F(xiàn),如通信函數(shù)C、文件存取函數(shù)F和鍵盤狀態(tài)函數(shù)K。其中通信函數(shù)包括send、sendto、recv、recvfrom、socket、connect和IcmpSendEcho;文件存取函數(shù)包括CreateFile、OpenFile、ReadFile和WriteFile;鍵盤狀態(tài)函數(shù)包括GetAsyncKeyState、GetKeyboardState、GetKeyNameText和keybd_event。通過API調(diào)用追蹤工具能很簡(jiǎn)單地得到這些函數(shù)的調(diào)用數(shù)據(jù),作為算法的時(shí)間序列輸入數(shù)據(jù)。
2.2 算法輸入信號(hào)的選擇、映射及歸一化方法
    現(xiàn)階段,僵尸網(wǎng)絡(luò)的命令與控制信道的構(gòu)建方式趨于多樣化,基于不同協(xié)議構(gòu)建的僵尸網(wǎng)絡(luò)信號(hào)的選擇、映射及歸一化方法不盡相同,這里以基于IRC協(xié)議的僵尸網(wǎng)絡(luò)為例,給出輸入信號(hào)的選擇、映射及歸一化方法。
    PAMP信號(hào)的映射:把bot執(zhí)行的鍵盤攔截活動(dòng)映射為PAMP信號(hào),該信號(hào)值來自于鍵盤攔截活動(dòng)需調(diào)用的相關(guān)API函數(shù)的調(diào)用變化率,這些API函數(shù)包括GetAsyncKeyState、GetKeyboardState、GetKeyNameText和key-
bd_event。通過初級(jí)試驗(yàn)定義“Maxps=1 s內(nèi)擊鍵所產(chǎn)生的API函數(shù)調(diào)用的最大次數(shù)”,然后通過線性變換將Maxps映射到100作為PAMP信號(hào)的最大值。那么設(shè)PAMPt為在時(shí)間窗t內(nèi)所產(chǎn)生的鍵盤狀態(tài)API函數(shù)調(diào)用的數(shù)量。則在t時(shí)刻,PAMP信號(hào)的變化率可定義為:

 


2.3 算法輸入數(shù)據(jù)中抗原的映射方法
    抗原有可能就是潛在的惡意進(jìn)程,是系統(tǒng)狀態(tài)的反映,它有可能就是造成系統(tǒng)狀態(tài)改變的因素,因此將產(chǎn)生API函數(shù)調(diào)用的進(jìn)程PID映射成抗原。
    本文簡(jiǎn)單闡述了DCA算法的機(jī)理,描述了將DCA算法應(yīng)用到僵尸網(wǎng)絡(luò)檢測(cè)中各個(gè)信號(hào)量的定義。
    針對(duì)DCA算法在僵尸網(wǎng)絡(luò)檢測(cè)中應(yīng)用的下一步研究,包括基于P2P協(xié)議的僵尸網(wǎng)絡(luò)、基于HTTP協(xié)議的僵尸網(wǎng)絡(luò)及無協(xié)議特征的僵尸網(wǎng)絡(luò)的信號(hào)量的定義,并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析。
參考文獻(xiàn)
[1] 國(guó)家互聯(lián)網(wǎng)應(yīng)急中心.CNCERT/CC.CNCERT互聯(lián)網(wǎng)安全威脅報(bào)告[R].[2013-10-17].http://www.cert.org.cn.
[2] 王海龍,龔正虎,侯婕.僵尸網(wǎng)絡(luò)檢測(cè)技術(shù)研究進(jìn)展[J].計(jì)算機(jī)研究與發(fā)展,2010,47(12):2037-2048.
[3] 陳岳兵,馮超,張權(quán),等.基于DCA的數(shù)據(jù)融合方法研究[J].信號(hào)處理,2011,27(1):102-105.
[4] 陳岳兵,馮超,張權(quán),等.樹突狀細(xì)胞算法原理及其應(yīng)用[J].計(jì)算機(jī)工程,2010,36(8):173-176.
[5] 鄧小武,李森林,胡萍.樹突狀細(xì)胞算法形式化及其在入侵檢測(cè)中的應(yīng)用[J].青島科技大學(xué)學(xué)報(bào),2013,34(4):88-92,96.
[6] AI H Y,AICKELIN U,GREENSMITH J.DCA for bot  detection[C].Proc.of CEC′08,2008.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。