摘 要: Greensmith 根據(jù)樹突狀細胞機理設(shè)計實現(xiàn)了樹突狀細胞算法DCA(Dendritic Cell Algorithm),并將其用于入侵檢測系統(tǒng)中。實驗結(jié)果表明,該算法具有較高的效率,并得到了廣泛的應用。本文對DCA算法進行了描述并簡要介紹了其在僵尸網(wǎng)絡檢測中的應用,具有實際意義。
關(guān)鍵詞: 僵尸網(wǎng)絡;DCA;入侵檢測
僵尸網(wǎng)絡是在網(wǎng)絡蠕蟲、特洛伊木馬、后門工具等傳統(tǒng)惡意代碼形態(tài)的基礎(chǔ)上發(fā)展、融合而產(chǎn)生的一種新型攻擊方式。目前一個具有通用性的定義是:僵尸網(wǎng)絡(botnet)是攻擊者出于惡意目的,傳播僵尸程序控制大量主機,并通過一對多的命令與控制信道所組成的網(wǎng)絡。
根據(jù)國家互聯(lián)網(wǎng)應急中心2013年10月[1]公布,CN-CERT監(jiān)測發(fā)現(xiàn)境內(nèi)近740 000個IP地址對應的主機被木馬或僵尸程序控制,木馬或僵尸網(wǎng)絡控制服務器IP總數(shù)為12 275個。其中,境內(nèi)木馬或僵尸網(wǎng)絡控制服務器IP數(shù)量為6 763個,按地區(qū)分布數(shù)量排名前三位的分別為廣東省、江蘇省、云南省。境外木馬或僵尸網(wǎng)絡控制服務器IP數(shù)量為5 512個,主要分布于美國、韓國、中國臺灣。其中,位于美國的控制服務器控制了境內(nèi)303 588個主機IP,控制境內(nèi)主機IP數(shù)量居首位,其次是位于葡萄牙和荷蘭的IP地址,分別控制了境內(nèi)135 178個和109 893個主機IP。
僵尸網(wǎng)絡的肆虐給網(wǎng)絡安全帶來了巨大的威脅,現(xiàn)階段針對僵尸網(wǎng)絡的檢測研究[2]也層出不窮,本文簡要介紹DCA算法在僵尸網(wǎng)絡檢測中的應用。
1 DCA算法
人類免疫系統(tǒng)HIS(Human Immune System)中免疫應答是從DC開始的復雜過程。DC是一種抗原提呈細胞(APC),它從淋巴系統(tǒng)遷移到機體組織(Tissue),攝取抗原和蛋白質(zhì)碎片,同時采集抗原所處環(huán)境中的分子作為危險信號,攝取抗原并采集信號之后從機體組織返回淋巴結(jié)(Lymph Node),并將抗原提呈給T細胞以識別抗原。另外,DC能夠處理環(huán)境分子,并釋放特定的細胞因子(cytokines)以影響T細胞分化過程。DC 進行決策并驅(qū)動T細胞進行免疫應答。
Greensmith通過對DC生理功能和角色的研究,對DC行為進行建模,設(shè)計實現(xiàn)了DCA算法。
DCA是基于DC群體(population)的算法[3-4],對抗原信號形式的數(shù)據(jù)流進行處理。DC群體不斷更新,更新頻率和種類控制與算法實現(xiàn)細節(jié)有關(guān)。群體中每個DC執(zhí)行抗原和信號的采集。DC存儲采集的抗原,并將輸入信號轉(zhuǎn)換為輸出信號。
DCA輸入信號包括PAMP、DS(Danger Signal)、SS(Safe Signal)和IS(Inflammation Signal)。DC對輸入信號進行處理,產(chǎn)生3種輸出信號——CSM、半成熟信號(semi)和成熟信號(mat)。為了避免對復雜的實際生物信號轉(zhuǎn)換機制建模,iDC信號處理使用加權(quán)求和公式來模擬,以減少計算開銷,使DCA適用于實時異常檢測。DC每次更新累積輸出信號之后,比較CSM和遷移閾值(Migration Threshold),若CSM超過遷移閾值,則從組織刪除此DC,采樣周期結(jié)束,DC遷移到淋巴結(jié)進行結(jié)果分析。
DC遷移之后進行累積輸出信號評估,semi和mat濃度較大者成為細胞環(huán)境。用于對DC采集的所有抗原進行標記,標記成環(huán)境0或者1,最終用于產(chǎn)生MCAV,代表抗原異常程度。用戶可以將其與閾值進行比較,判斷抗原是否異常。
DCA算法流程如圖1所示[5]。
2 DCA算法在僵尸網(wǎng)絡檢測中的應用
基于群體的DCA算法的輸入為時間序列數(shù)據(jù),是由信號與抗原組成的數(shù)據(jù)流。要將DCA算法應用到僵尸網(wǎng)絡的檢測中[6],最重要的是要解決算法中的時間序列輸入數(shù)據(jù)的獲取以及信號與抗原的映射,下面給出解決方案。
2.1 算法輸入數(shù)據(jù)的獲取方法
檢測算法的輸入數(shù)據(jù)應能反映受害主機(即受僵尸程序或其他惡意程序感染的主機)狀態(tài)。通過對僵尸程序的分析得出,僵尸網(wǎng)絡要完成一些列的功能必須通過調(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)用追蹤工具能很簡單地得到這些函數(shù)的調(diào)用數(shù)據(jù),作為算法的時間序列輸入數(shù)據(jù)。
2.2 算法輸入信號的選擇、映射及歸一化方法
現(xiàn)階段,僵尸網(wǎng)絡的命令與控制信道的構(gòu)建方式趨于多樣化,基于不同協(xié)議構(gòu)建的僵尸網(wǎng)絡信號的選擇、映射及歸一化方法不盡相同,這里以基于IRC協(xié)議的僵尸網(wǎng)絡為例,給出輸入信號的選擇、映射及歸一化方法。
PAMP信號的映射:把bot執(zhí)行的鍵盤攔截活動映射為PAMP信號,該信號值來自于鍵盤攔截活動需調(diào)用的相關(guān)API函數(shù)的調(diào)用變化率,這些API函數(shù)包括GetAsyncKeyState、GetKeyboardState、GetKeyNameText和key-
bd_event。通過初級試驗定義“Maxps=1 s內(nèi)擊鍵所產(chǎn)生的API函數(shù)調(diào)用的最大次數(shù)”,然后通過線性變換將Maxps映射到100作為PAMP信號的最大值。那么設(shè)PAMPt為在時間窗t內(nèi)所產(chǎn)生的鍵盤狀態(tài)API函數(shù)調(diào)用的數(shù)量。則在t時刻,PAMP信號的變化率可定義為:
2.3 算法輸入數(shù)據(jù)中抗原的映射方法
抗原有可能就是潛在的惡意進程,是系統(tǒng)狀態(tài)的反映,它有可能就是造成系統(tǒng)狀態(tài)改變的因素,因此將產(chǎn)生API函數(shù)調(diào)用的進程PID映射成抗原。
本文簡單闡述了DCA算法的機理,描述了將DCA算法應用到僵尸網(wǎng)絡檢測中各個信號量的定義。
針對DCA算法在僵尸網(wǎng)絡檢測中應用的下一步研究,包括基于P2P協(xié)議的僵尸網(wǎng)絡、基于HTTP協(xié)議的僵尸網(wǎng)絡及無協(xié)議特征的僵尸網(wǎng)絡的信號量的定義,并對實驗結(jié)果進行分析。
參考文獻
[1] 國家互聯(lián)網(wǎng)應急中心.CNCERT/CC.CNCERT互聯(lián)網(wǎng)安全威脅報告[R].[2013-10-17].http://www.cert.org.cn.
[2] 王海龍,龔正虎,侯婕.僵尸網(wǎng)絡檢測技術(shù)研究進展[J].計算機研究與發(fā)展,2010,47(12):2037-2048.
[3] 陳岳兵,馮超,張權(quán),等.基于DCA的數(shù)據(jù)融合方法研究[J].信號處理,2011,27(1):102-105.
[4] 陳岳兵,馮超,張權(quán),等.樹突狀細胞算法原理及其應用[J].計算機工程,2010,36(8):173-176.
[5] 鄧小武,李森林,胡萍.樹突狀細胞算法形式化及其在入侵檢測中的應用[J].青島科技大學學報,2013,34(4):88-92,96.
[6] AI H Y,AICKELIN U,GREENSMITH J.DCA for bot detection[C].Proc.of CEC′08,2008.