僵尸網(wǎng)絡(luò)中僵尸主機(jī)是由遠(yuǎn)程操控者利用網(wǎng)絡(luò)上計(jì)算機(jī)的弱點(diǎn),通過感染病毒、蠕蟲、木馬和間諜軟件來初始化的。僵尸網(wǎng)絡(luò)攻擊者通過命令和控制(C&C)機(jī)制控制僵尸網(wǎng)絡(luò)中大規(guī)模的被感染的僵尸主機(jī)來進(jìn)行非法操作。僵尸網(wǎng)絡(luò)有兩種基本類型:集中式和分散式。在集中式的僵尸網(wǎng)絡(luò)中,僵尸主機(jī)從C&C服務(wù)器獲取命令,當(dāng)僵尸網(wǎng)絡(luò)C&C服務(wù)器被關(guān)閉時(shí),整個(gè)僵尸網(wǎng)絡(luò)將會癱瘓。P2P技術(shù)因此被攻擊者采用,在分散式僵尸網(wǎng)絡(luò)中沒有中心服務(wù)器,僵尸主機(jī)在P2P僵尸網(wǎng)絡(luò)充當(dāng)作為客戶端和C&C服務(wù)器。如果一個(gè)僵尸主機(jī)或P2P僵尸網(wǎng)絡(luò)的一部分被摧毀,其他僵尸主機(jī)通信也不會受影響。因此,更加的難以檢測和摧毀。因而,本文中重點(diǎn)對P2P僵尸網(wǎng)絡(luò)的檢測方法作以介紹。
僵尸網(wǎng)絡(luò)生命周期包括四個(gè)階段:初始化階段、二次傳播階段、連接階段和維護(hù)階段。初始化階段通過各種方法給網(wǎng)絡(luò)上的防御脆弱的主機(jī)感染上木馬、蠕蟲或病毒。受感染的主機(jī)會從特定服務(wù)器直接下載并安裝僵尸程序。僵尸主機(jī)安裝僵尸程序后,會由設(shè)置好的C&C渠道與其他僵尸主機(jī)使用僵尸程序提供網(wǎng)絡(luò)列表進(jìn)行連接從而形成僵尸網(wǎng)絡(luò)。二次傳播階段,僵尸網(wǎng)絡(luò)成功地建立后,被感染的計(jì)算機(jī)成為僵尸網(wǎng)絡(luò)的一部分。攻擊者可以通過推送或拉取的方式向所有活動的發(fā)送命令,繼而然后傳播僵尸程序到更多主機(jī)。連接階段中攻擊者控制僵尸大軍可以發(fā)出各種協(xié)調(diào)指令來攻擊目標(biāo),如圖 1所示。最后,維護(hù)階段負(fù)責(zé)保持僵尸主機(jī)的活躍與進(jìn)行程序更新,還要去除失效的和可疑的僵尸主機(jī)。
現(xiàn)今,P2P僵尸網(wǎng)絡(luò)通過開發(fā)和采用新技術(shù)以避免被檢測到。比如,僵尸網(wǎng)絡(luò)通過基于主機(jī)的分析 Rootkit來防止被檢測,Rootkit是在受感染的主機(jī)上安裝軟件以隱藏僵尸網(wǎng)絡(luò)相關(guān)流程或因程序執(zhí)行造成的各種基于主機(jī)的異常。還有一些攻擊者使用Fast-Flux Service Networks(FFSNs)來防止被檢測。
圖1 P2P僵尸網(wǎng)絡(luò)操作流程
P2P僵尸網(wǎng)絡(luò)不使用中心節(jié)點(diǎn)且流量也與合法的P2P流量有很高的相似度,這些都使它們更為隱蔽,因此更難以檢測。但研究人員已經(jīng)提出了很多檢測方法以檢測出這些僵尸網(wǎng)絡(luò)。本文討論分析最新的檢測技術(shù)以及其優(yōu)勢和局限性。
Coskun B等人提出了一種建立在僵尸主機(jī)相互接觸上的僵尸網(wǎng)絡(luò)檢測方法。在檢測前設(shè)定種子僵尸程序的染色閾值,使用通信色散圖來確定僵尸主機(jī)之間的相互聯(lián)系。接觸種子僵尸節(jié)點(diǎn)的主機(jī)標(biāo)記為可疑,給聯(lián)系可疑部分主機(jī)的節(jié)點(diǎn)增加染色程度。最終節(jié)點(diǎn)有染色值高于一定閾值作為僵尸主機(jī)。這項(xiàng)技術(shù)使得P2P僵尸網(wǎng)絡(luò)若想要避免被檢測到,就要使內(nèi)部僵尸節(jié)點(diǎn)避免相互接觸。這無疑增加僵尸網(wǎng)絡(luò)的控制難度,增加不必要的開銷。
Kamaldeep Singh等人提供了一個(gè)利用大數(shù)據(jù)分析僵尸主機(jī)流量的檢測方案。他們使用Hadoop、Hive和 Mahout等開源工具開發(fā)一個(gè)檢測系統(tǒng),該系統(tǒng)能夠在準(zhǔn)實(shí)體的時(shí)間檢測出僵尸主機(jī)??蚣苡扇糠纸M成:
(1)流量嗅探模塊:使用dumpcap軟件在網(wǎng)絡(luò)中嗅探數(shù)據(jù)包而后將其保存成pcap文件,再將文件提交給Hadoop分布式文件系統(tǒng)(HDFS)。
(2)特征提取模塊:使用Apache Hive提取HQL語句中基于使用映射-規(guī)約模式算法的特征??蚣芸梢允褂肨shark選取所需的功能檢測,然后使用排名算法計(jì)算相應(yīng)的信息增益類。
(3)機(jī)器學(xué)習(xí)模塊:使用隨機(jī)森林算法提高了檢測的精度,減少了計(jì)算復(fù)雜度。
大數(shù)據(jù)分析法檢測出了包括Conficker、Kelihos-Hlux、Zeus、Storm和Waledac等各種P2P僵尸網(wǎng)絡(luò)。這個(gè)大數(shù)據(jù)開發(fā)框架檢測僵尸主機(jī)的精度為99.7%。
本檢測方法能夠檢測eMule-like寄生僵尸網(wǎng)絡(luò)。根據(jù)僵尸主機(jī)需要執(zhí)行程序規(guī)定的任務(wù)以及定期發(fā)送搜索請求的規(guī)律,此方法通過尋找這些周期性序列生成的通信網(wǎng)絡(luò)。通過兩個(gè)算法:被動匹配算法和主動搜索算法來設(shè)計(jì)識別周期搜索序列,從100個(gè)eMule校園節(jié)點(diǎn)和惡意節(jié)點(diǎn)收集信息生成P2P僵尸網(wǎng)絡(luò)模擬器。該程序的僵尸主機(jī)檢測準(zhǔn)確率達(dá)到了98%。
模糊推理法是基于僵尸主機(jī)流量規(guī)律性和使用者的流量隨機(jī)性的生成規(guī)律,可以用來檢測所有類型的僵尸網(wǎng)絡(luò)如IRC,P2P和HTTP僵尸網(wǎng)絡(luò)。該方法能從時(shí)間間隔、數(shù)據(jù)包數(shù)量及字節(jié)數(shù)、數(shù)據(jù)包目的地三個(gè)數(shù)據(jù)流特征的基礎(chǔ)上,區(qū)分目的主機(jī)的惡意與否。首先,捕獲數(shù)據(jù);然后將捕獲的數(shù)據(jù)進(jìn)行三個(gè)步驟操作:預(yù)處理過濾、聚合和流動特征提取。在特征提取中,分別提取并計(jì)算每個(gè)包目的地,包數(shù)及字節(jié)數(shù)、時(shí)間間隔的熵值。
這里,xi代表了相應(yīng)的熵的特性。模糊規(guī)則將其分類成良性或惡意主機(jī)。在上文提到的三個(gè)特征熵值和模糊規(guī)則的基礎(chǔ)上,判斷通信是否屬于惡意。
傳統(tǒng)相關(guān)性模型僅適用于受信任的主機(jī)組成的內(nèi)部網(wǎng)絡(luò)。博弈論法是一個(gè)以信任為判定條件的模型,能夠檢測僵尸網(wǎng)絡(luò)主機(jī)和網(wǎng)絡(luò)行為確定動態(tài)網(wǎng)絡(luò),通過監(jiān)控安裝在主機(jī)上的分析儀來確定給哪些主機(jī)添加受信任的主機(jī)標(biāo)識。博弈論根據(jù)主機(jī)貢獻(xiàn),在確定主機(jī)所在組的信譽(yù)水平基礎(chǔ)上給每個(gè)主機(jī)確定信任水平。不同組的主機(jī)產(chǎn)生的行為價(jià)值乘以相應(yīng)的主機(jī)的信譽(yù)確定主機(jī)的信譽(yù)水平值,根據(jù)最高分值信任主機(jī)的數(shù)據(jù)設(shè)置相關(guān)檢測分?jǐn)?shù)來判定不同群體的特征函數(shù)。
Pijush Barthakur等人提出了一種使用支持向量機(jī)(SVM)的主動檢測技術(shù),SVM 法比其他方法檢測精度更好。方法僵尸主機(jī)兩個(gè)特點(diǎn):保持?jǐn)?shù)據(jù)包大小和傳輸?shù)淖止?jié)數(shù)最低,數(shù)據(jù)包大小和網(wǎng)絡(luò)數(shù)據(jù)包到達(dá)時(shí)間不變。此檢測方案包括兩個(gè)部分:
流提取:從捕獲的數(shù)據(jù)流中提取有用的流標(biāo)簽。分為訓(xùn)練和測試輸出。
分類:提煉數(shù)據(jù)流并轉(zhuǎn)換成范圍為[-1,+1]的向量。選擇使用徑向基函數(shù)(RBF)內(nèi)核分類數(shù)據(jù)流建立SVM模型。
使用支持向量機(jī)模型檢測僵尸主機(jī)檢測精度為99.01%。
隱形僵尸網(wǎng)絡(luò)檢測法能夠檢測隱形 P2P僵尸網(wǎng)絡(luò)且提供了在所有檢測技術(shù)中最好的結(jié)果,其檢測準(zhǔn)確性接近 100%。它由兩個(gè)階段組成,如圖2所示。
圖2 隱形僵尸網(wǎng)絡(luò)檢測系統(tǒng)
(1)P2P客戶端檢測:由DNS流量分析發(fā)現(xiàn)主機(jī)參與P2P通信,然后由P2P客戶端軟件通過顆粒度檢測確認(rèn)。如果他們有相同的數(shù)據(jù)流大小以及在各種網(wǎng)絡(luò)中產(chǎn)生大量的消息交流則將其確定為P2P客戶機(jī)。
(2)P2P僵尸主機(jī)檢測:若主機(jī)在激活時(shí)間和連接時(shí)間長短上相互關(guān)聯(lián),則將其定義為可疑主機(jī)。
此方法使用Argus工具收集前面幾種網(wǎng)絡(luò)的信息,最大的優(yōu)勢是,能夠精準(zhǔn)的從大量合法共享數(shù)據(jù)中檢測出僵尸程序。
新型僵尸網(wǎng)絡(luò)由于使用了 FFSNs(Fast-Flux Service Networks)和 Rootkit技術(shù),使得單純依靠傳統(tǒng)的檢測方法顯得力不從心,出現(xiàn)諸如檢測率不高、高誤報(bào)率、無法檢測隱形僵尸網(wǎng)絡(luò)等問題。隨著新型僵尸網(wǎng)絡(luò)檢測技術(shù)的發(fā)展,這些問題得到了進(jìn)一步的解決。本文總結(jié)了最新出現(xiàn)的P2P僵尸網(wǎng)絡(luò)檢測技術(shù)以及它們的優(yōu)點(diǎn)和局限性。然而單一的技術(shù)檢測P 2 P僵尸網(wǎng)絡(luò)難以達(dá)到檢測精度高和誤報(bào)率的目標(biāo),結(jié)合兩個(gè)或兩個(gè)以上的技術(shù)開發(fā)檢測方法可以大大推進(jìn)P 2 P僵尸網(wǎng)絡(luò)的檢測精準(zhǔn)度。這將是下一步的研究目標(biāo)。
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2015年11期