僵尸網絡中僵尸主機是由遠程操控者利用網絡上計算機的弱點,通過感染病毒、蠕蟲、木馬和間諜軟件來初始化的。僵尸網絡攻擊者通過命令和控制(C&C)機制控制僵尸網絡中大規模的被感染的僵尸主機來進行非法操作。僵尸網絡有兩種基本類型:集中式和分散式。在集中式的僵尸網絡中,僵尸主機從C&C服務器獲取命令,當僵尸網絡C&C服務器被關閉時,整個僵尸網絡將會癱瘓。P2P技術因此被攻擊者采用,在分散式僵尸網絡中沒有中心服務器,僵尸主機在P2P僵尸網絡充當作為客戶端和C&C服務器。如果一個僵尸主機或P2P僵尸網絡的一部分被摧毀,其他僵尸主機通信也不會受影響。因此,更加的難以檢測和摧毀。因而,本文中重點對P2P僵尸網絡的檢測方法作以介紹。
僵尸網絡生命周期包括四個階段:初始化階段、二次傳播階段、連接階段和維護階段。初始化階段通過各種方法給網絡上的防御脆弱的主機感染上木馬、蠕蟲或病毒。受感染的主機會從特定服務器直接下載并安裝僵尸程序。僵尸主機安裝僵尸程序后,會由設置好的C&C渠道與其他僵尸主機使用僵尸程序提供網絡列表進行連接從而形成僵尸網絡。二次傳播階段,僵尸網絡成功地建立后,被感染的計算機成為僵尸網絡的一部分。攻擊者可以通過推送或拉取的方式向所有活動的發送命令,繼而然后傳播僵尸程序到更多主機。連接階段中攻擊者控制僵尸大軍可以發出各種協調指令來攻擊目標,如圖 1所示。最后,維護階段負責保持僵尸主機的活躍與進行程序更新,還要去除失效的和可疑的僵尸主機。
現今,P2P僵尸網絡通過開發和采用新技術以避免被檢測到。比如,僵尸網絡通過基于主機的分析 Rootkit來防止被檢測,Rootkit是在受感染的主機上安裝軟件以隱藏僵尸網絡相關流程或因程序執行造成的各種基于主機的異常。還有一些攻擊者使用Fast-Flux Service Networks(FFSNs)來防止被檢測。

圖1 P2P僵尸網絡操作流程
P2P僵尸網絡不使用中心節點且流量也與合法的P2P流量有很高的相似度,這些都使它們更為隱蔽,因此更難以檢測。但研究人員已經提出了很多檢測方法以檢測出這些僵尸網絡。本文討論分析最新的檢測技術以及其優勢和局限性。
Coskun B等人提出了一種建立在僵尸主機相互接觸上的僵尸網絡檢測方法。在檢測前設定種子僵尸程序的染色閾值,使用通信色散圖來確定僵尸主機之間的相互聯系。接觸種子僵尸節點的主機標記為可疑,給聯系可疑部分主機的節點增加染色程度。最終節點有染色值高于一定閾值作為僵尸主機。這項技術使得P2P僵尸網絡若想要避免被檢測到,就要使內部僵尸節點避免相互接觸。這無疑增加僵尸網絡的控制難度,增加不必要的開銷。
Kamaldeep Singh等人提供了一個利用大數據分析僵尸主機流量的檢測方案。他們使用Hadoop、Hive和 Mahout等開源工具開發一個檢測系統,該系統能夠在準實體的時間檢測出僵尸主機。框架由三部分組成:
(1)流量嗅探模塊:使用dumpcap軟件在網絡中嗅探數據包而后將其保存成pcap文件,再將文件提交給Hadoop分布式文件系統(HDFS)。
(2)特征提取模塊:使用Apache Hive提取HQL語句中基于使用映射-規約模式算法的特征。框架可以使用Tshark選取所需的功能檢測,然后使用排名算法計算相應的信息增益類。
(3)機器學習模塊:使用隨機森林算法提高了檢測的精度,減少了計算復雜度。
大數據分析法檢測出了包括Conficker、Kelihos-Hlux、Zeus、Storm和Waledac等各種P2P僵尸網絡。這個大數據開發框架檢測僵尸主機的精度為99.7%。
本檢測方法能夠檢測eMule-like寄生僵尸網絡。根據僵尸主機需要執行程序規定的任務以及定期發送搜索請求的規律,此方法通過尋找這些周期性序列生成的通信網絡。通過兩個算法:被動匹配算法和主動搜索算法來設計識別周期搜索序列,從100個eMule校園節點和惡意節點收集信息生成P2P僵尸網絡模擬器。該程序的僵尸主機檢測準確率達到了98%。
模糊推理法是基于僵尸主機流量規律性和使用者的流量隨機性的生成規律,可以用來檢測所有類型的僵尸網絡如IRC,P2P和HTTP僵尸網絡。該方法能從時間間隔、數據包數量及字節數、數據包目的地三個數據流特征的基礎上,區分目的主機的惡意與否。首先,捕獲數據;然后將捕獲的數據進行三個步驟操作:預處理過濾、聚合和流動特征提取。在特征提取中,分別提取并計算每個包目的地,包數及字節數、時間間隔的熵值。

這里,xi代表了相應的熵的特性。模糊規則將其分類成良性或惡意主機。在上文提到的三個特征熵值和模糊規則的基礎上,判斷通信是否屬于惡意。
傳統相關性模型僅適用于受信任的主機組成的內部網絡。博弈論法是一個以信任為判定條件的模型,能夠檢測僵尸網絡主機和網絡行為確定動態網絡,通過監控安裝在主機上的分析儀來確定給哪些主機添加受信任的主機標識。博弈論根據主機貢獻,在確定主機所在組的信譽水平基礎上給每個主機確定信任水平。不同組的主機產生的行為價值乘以相應的主機的信譽確定主機的信譽水平值,根據最高分值信任主機的數據設置相關檢測分數來判定不同群體的特征函數。
Pijush Barthakur等人提出了一種使用支持向量機(SVM)的主動檢測技術,SVM 法比其他方法檢測精度更好。方法僵尸主機兩個特點:保持數據包大小和傳輸的字節數最低,數據包大小和網絡數據包到達時間不變。此檢測方案包括兩個部分:
流提取:從捕獲的數據流中提取有用的流標簽。分為訓練和測試輸出。
分類:提煉數據流并轉換成范圍為[-1,+1]的向量。選擇使用徑向基函數(RBF)內核分類數據流建立SVM模型。
使用支持向量機模型檢測僵尸主機檢測精度為99.01%。
隱形僵尸網絡檢測法能夠檢測隱形 P2P僵尸網絡且提供了在所有檢測技術中最好的結果,其檢測準確性接近 100%。它由兩個階段組成,如圖2所示。

圖2 隱形僵尸網絡檢測系統
(1)P2P客戶端檢測:由DNS流量分析發現主機參與P2P通信,然后由P2P客戶端軟件通過顆粒度檢測確認。如果他們有相同的數據流大小以及在各種網絡中產生大量的消息交流則將其確定為P2P客戶機。
(2)P2P僵尸主機檢測:若主機在激活時間和連接時間長短上相互關聯,則將其定義為可疑主機。
此方法使用Argus工具收集前面幾種網絡的信息,最大的優勢是,能夠精準的從大量合法共享數據中檢測出僵尸程序。
新型僵尸網絡由于使用了 FFSNs(Fast-Flux Service Networks)和 Rootkit技術,使得單純依靠傳統的檢測方法顯得力不從心,出現諸如檢測率不高、高誤報率、無法檢測隱形僵尸網絡等問題。隨著新型僵尸網絡檢測技術的發展,這些問題得到了進一步的解決。本文總結了最新出現的P2P僵尸網絡檢測技術以及它們的優點和局限性。然而單一的技術檢測P 2 P僵尸網絡難以達到檢測精度高和誤報率的目標,結合兩個或兩個以上的技術開發檢測方法可以大大推進P 2 P僵尸網絡的檢測精準度。這將是下一步的研究目標。