• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種抗污染的混合P2P僵尸網(wǎng)絡(luò)

      2018-02-01 06:02:52方濱興衣龍浩張方嬌1中國科學(xué)院信息工程研究所北京中國10009中國科學(xué)院大學(xué)網(wǎng)絡(luò)空間安全學(xué)院北京中國10009廣州大學(xué)網(wǎng)絡(luò)空間先進技術(shù)研究院廣州中國510006電子科技大學(xué)廣東電子信息工程研究院廣東東莞中國5808
      信息安全學(xué)報 2018年1期
      關(guān)鍵詞:控制者僵尸污染

      尹 捷, 崔 翔, 方濱興, 衣龍浩, 張方嬌1中國科學(xué)院信息工程研究所, 北京 中國 10009 中國科學(xué)院大學(xué)網(wǎng)絡(luò)空間安全學(xué)院, 北京 中國 10009 廣州大學(xué)網(wǎng)絡(luò)空間先進技術(shù)研究院, 廣州 中國 510006 電子科技大學(xué)廣東電子信息工程研究院, 廣東東莞 中國 5808

      1 引言

      僵尸網(wǎng)絡(luò)(Botnet)是一種通過入侵網(wǎng)絡(luò)空間內(nèi)若干非合作用戶終端構(gòu)建的、可被攻擊者遠程控制的通用計算平臺[1]。其中, 被入侵的“用戶終端”稱之為僵尸主機(Bot); “攻擊者”指掌握僵尸主機資源,對其具有實際操控權(quán)的控制者(Botmaster); “遠程控制”指的是攻擊者可以通過命令與控制(Command and Control, 簡寫為C&C)信道一對多地控制非合作用戶終端。僵尸網(wǎng)絡(luò)作為攻擊者手中最有效的攻擊平臺之一, 被廣泛用于惡意軟件分發(fā)(Malware Distributing)、勒索軟件分發(fā)(Ransomware Distributing)、垃圾郵件分發(fā)(Spam)、分布式拒絕服務(wù)攻擊(Distributed Denial of Service, DDoS)、釣魚攻擊(Phishing)、用戶身份竊取(Massive Online Identity Theft)、點擊欺詐(Click Fraud)、電子貨幣挖掘(DigitalCurrency Mining)等網(wǎng)絡(luò)犯罪活動, 成為網(wǎng)絡(luò)空間安全面臨的重大威脅, 引起國際上的廣泛關(guān)注。

      1.1 僵尸網(wǎng)絡(luò)發(fā)展趨勢

      隨著互聯(lián)網(wǎng)的不斷發(fā)展, 云計算、移動終端的泛化, 以及創(chuàng)新應(yīng)用的涌現(xiàn), 僵尸網(wǎng)絡(luò)也在不斷演變進化。從感染終端來看, 攻擊者已經(jīng)不再局限于傳統(tǒng)PC, 而是將目標(biāo)轉(zhuǎn)向以智能手機、無線路由器、智能家居、IoT設(shè)備為代表的多種終端設(shè)備; 從拓撲結(jié)構(gòu)來看, 傳統(tǒng)中心結(jié)構(gòu)僵尸網(wǎng)絡(luò)逐步向去中心化結(jié)構(gòu)發(fā)展, 以避免中心結(jié)構(gòu)存在的單點失效(Single Point of Failure)問題; 從C&C協(xié)議來看, 僵尸網(wǎng)絡(luò)從早期簡單的 IRC協(xié)議, 發(fā)展到如今廣泛應(yīng)用且相對隱蔽的HTTP協(xié)議, 再到更為復(fù)雜的P2P協(xié)議, 其生存能力不斷增強; 從 C&C服務(wù)器生存性來看, 攻擊者從利用 VPS(虛擬專用服務(wù)器)轉(zhuǎn)向利用公共網(wǎng)絡(luò)服務(wù)(如 Twitter、GitHub)甚至通信衛(wèi)星, 并將 C&C服務(wù)器隱藏在暗網(wǎng)之中, 隱蔽性逐步提高。僵尸網(wǎng)絡(luò)的發(fā)展已然趨向復(fù)雜化和多樣化, P2P模式更是因為其良好的可擴展性和健壯性成為僵尸網(wǎng)絡(luò)的高級形態(tài)之一。

      1.2 P2P僵尸網(wǎng)絡(luò)的脆弱點

      針對 P2P僵尸網(wǎng)絡(luò), 根據(jù)其通信協(xié)議又可分為結(jié)構(gòu)化和非結(jié)構(gòu)化[2]。結(jié)構(gòu)化僵尸網(wǎng)絡(luò)通常采用基于分布式哈希表(Distributed Hash Table, DHT)的P2P協(xié)議, 如 Strom 僵尸網(wǎng)絡(luò)使用基于 Kademlia算法的Overnet協(xié)議[3]。這類P2P僵尸網(wǎng)絡(luò)的固有脆弱點是易受索引污染(Index Poisoning)攻擊[4]和女巫(Sybil)攻擊[5], 易于通過Crawler和Sybil節(jié)點測量其規(guī)模[6]。非結(jié)構(gòu)化僵尸網(wǎng)絡(luò)通常采用隨機掃描方式或者節(jié)點列表(Peer-list)方式進行通信。基于隨機掃描方式的僵尸網(wǎng)絡(luò)存在流量異常的固有脆弱點; 采用基于Peer-list交換方式進行通信, 每個僵尸主機需要維護一份包含節(jié)點信息的列表, 即 Peer-list, 并定期隨機挑選其中的部分節(jié)點進行通信, 獲取攻擊者指令和更新節(jié)點信息, 這類 P2P僵尸網(wǎng)絡(luò)具有較好的靈活性、可擴展性、健壯性, 在許多流行的P2P僵尸網(wǎng)絡(luò)中使用, 如Kelihos[7], Waledac[8], ZeroAccess[9]。然而,基于Peer-list交換的僵尸網(wǎng)絡(luò)容易受到污染(Peer-list Pollution)攻擊。防御者可以部署大量污染節(jié)點長期活躍地在僵尸網(wǎng)絡(luò)中, 頻繁地與正常節(jié)點交換Peer-list。因為污染節(jié)點的各種行為表現(xiàn)如同正常節(jié)點(激進的防御者甚至可允許污染節(jié)點參與真正的攻擊), 所以難以區(qū)分。當(dāng)污染節(jié)點占據(jù)了正常節(jié)點Peer-list的絕大部分位置后(即污染了正常節(jié)點的Peer-list), 全部污染節(jié)點在同一時刻停止運行, 就可以達到破壞僵尸網(wǎng)絡(luò)的目的。知名僵尸網(wǎng)絡(luò)Waledac正是因其協(xié)議設(shè)計存在漏洞而被微軟協(xié)同學(xué)術(shù)機構(gòu)通過Peer-list污染進行關(guān)閉[10]。因此, 理想P2P僵尸網(wǎng)絡(luò)設(shè)計目標(biāo)是在保證高度可擴展性和健壯性的同時, 將 P2P網(wǎng)絡(luò)易受的各種威脅(包括 Bootstrap攻擊、Index Poisoning攻擊、Sybil攻擊、Peer-list Pollution攻擊)降至最低。

      1.3 本文貢獻

      本文針對基于自定義 Peer-list交換協(xié)議僵尸網(wǎng)絡(luò)所存在的脆弱點, 提出了一種抗污染的混合型P2P僵尸網(wǎng)絡(luò)模型(Pollution-resilient Hybrid P2P Botnet, 以下簡稱PrBot)。PrBot首次將信譽評估機制引入到僵尸網(wǎng)絡(luò)構(gòu)建和 Peer-list更新的整個生命周期中, 使得傳統(tǒng)的針對 P2P僵尸網(wǎng)絡(luò)的攻擊難以發(fā)揮作用; 實驗證明PrBot具有高健壯性和很好的抗污染能力;最后, 我們從檢測、測量、追蹤等方面提出了一系列防御措施。類似PrBot的新型僵尸網(wǎng)絡(luò)很可能在未來的網(wǎng)絡(luò)攻擊中出現(xiàn), 對互聯(lián)網(wǎng)造成威脅。本文旨在增加防御者對此類僵尸網(wǎng)絡(luò)的理解, 并探討有效的防御手段。

      2 研究現(xiàn)狀

      針對新型僵尸網(wǎng)絡(luò)的分析和預(yù)測, 研究人員開展了大量研究工作。Rossow等人[11]提出了一種形式化攻擊圖模型, 并使用這個模型評估 11個知名的P2P僵尸網(wǎng)絡(luò)的特性與防御措施。結(jié)果顯示部分僵尸網(wǎng)絡(luò)是容易對抗的, 而另一部分復(fù)雜結(jié)構(gòu)的僵尸網(wǎng)絡(luò)對大多數(shù)防御方法都具有高對抗性, 值得安全人員關(guān)注。在結(jié)構(gòu)化P2P僵尸網(wǎng)絡(luò)方面, Starnberger等人[12]提出一種基于Kademlia的僵尸網(wǎng)絡(luò)命令控制信道協(xié)議 Overbot, 僵尸主機的請求流量隱藏在合法P2P應(yīng)用中, 難以被追蹤和發(fā)現(xiàn), 極大提升了僵尸網(wǎng)絡(luò)整體健壯性和隱蔽性。Yan等人[13]提出了一種名為AntBot的抗污染結(jié)構(gòu)化P2P僵尸網(wǎng)絡(luò), Antbot采用樹狀結(jié)構(gòu)來傳播命令, 即使單個bot被捕獲也僅暴露有限的信息, 具有隨機性和冗余性。Napp等人[14]利用基于P2P的Skype協(xié)議作為通信載體實現(xiàn)了一種新型僵尸網(wǎng)絡(luò), 該方法可穿透防火墻和 NAT設(shè)備, 其通信流量隱藏在合法 Skype流量之中, 難以被區(qū)分和過濾。

      在混合型P2P僵尸網(wǎng)絡(luò)方面, Vogt等人[15]提出了一種混合結(jié)構(gòu)的僵尸網(wǎng)絡(luò)設(shè)計方法, 該設(shè)計思想是自動把一個大規(guī)模僵尸網(wǎng)絡(luò)劃分成多個僵尸子網(wǎng),僵尸子網(wǎng)之間通過 P2P協(xié)議連接起來, 具有彼此獨立不易暴露整體規(guī)模的優(yōu)勢, 可管理大規(guī)模僵尸網(wǎng)絡(luò)而不會出現(xiàn)性能瓶頸, 本文采用了不同于該模型的另一種混合型P2P結(jié)構(gòu), 詳見第3節(jié)。Hund等人[16]提出了一種難以被追蹤和關(guān)閉的 P2P僵尸網(wǎng)絡(luò)RamBot, 該模型采用基于信譽評分(Credit-point System)的主機驗證機制以及工作量證明機制(Proof-of-work)判斷通信節(jié)點身份的真實性, 能有效對抗Peer-list污染以及Sybil攻擊, 具有較好的主機生存性, 但該工作缺乏對提出模型的健壯性、有效性做出說明和評估。Wang等人[17]提出了一種混合型P2P僵尸網(wǎng)絡(luò), 控制者通過特定的Senor主機來收集網(wǎng)絡(luò)中節(jié)點信息, 并隨機選擇可用節(jié)點組成新的Peer-list, 發(fā)送給每個請求Peer-list更新的主機。該方法可用以實現(xiàn)負載均衡, 同時平衡了網(wǎng)絡(luò)中節(jié)點的連接性, 具有較好的健壯性, 但是并沒有解決節(jié)點間的信任關(guān)系問題, 仍然易受到Peer-list污染攻擊。不同于上述已有工作, 本文受到文獻[17]的啟發(fā), 提出了一種新型Peer-list更新方法, 并引入信譽評估機制, 兼顧了僵尸網(wǎng)絡(luò)的健壯性和抗污染能力。

      3 PrBot模型設(shè)計

      3.1 兩類Bot程序

      文中PrBot即可代表整個僵尸網(wǎng)絡(luò), 也可代表僵尸程序, 其含義取決于上下文。PrBot分為兩類:Servant Bot(以下簡稱Servant)和Client Bot(以下簡稱Client)[17]。

      定義 1 Servant: 指具有靜態(tài)公網(wǎng) IP地址, 且可接受遠程客戶端主動發(fā)起的連接并與之通信的公網(wǎng)可達主機。

      定義2 Client: 指具有內(nèi)網(wǎng)IP、動態(tài)IP或者雖然具有靜態(tài)公網(wǎng) IP, 但卻因防火墻攔截而無法接受由外至內(nèi)的網(wǎng)絡(luò)訪問的非公網(wǎng)可達主機。Client不會出現(xiàn)在Peer-list中, 但每個Client與Servant一樣, 都必須包含Peer-list。

      PrBot感染新主機后, 首先需要判定自身類型是Servant還是 Client。判定方法是開放一個服務(wù)并請求Peer-list中其他Servant嘗試訪問該服務(wù), 如果可以成功訪問, 說明自身可作為 Servant, 否則標(biāo)記自身為Client, 然后將身份標(biāo)簽寫入本地可持續(xù)存儲。判定過程如下:

      1) 新感染主機獲取自己的IP地址列表, 考慮到主機可能同時有多個網(wǎng)絡(luò)連接(如以太網(wǎng)連接、Wi-Fi連接、4G網(wǎng)連接、ADSL連接), 因此可能同時具有多個內(nèi)外網(wǎng) IP。將獲取的 IP地址列表記為;

      2) 在IP地址列表中刪除內(nèi)網(wǎng)IP和動態(tài)IP (可利用 Whois查詢工具)。注意, 這里可能會刪除潛在的Servant, 因為有的內(nèi)網(wǎng) IP經(jīng)過外部路由器映射后也可以充當(dāng)服務(wù)器使用。盡管如此, 為了簡單起見, 依然刪除此類IP地址;

      3) 選擇一個本系統(tǒng)尚未監(jiān)聽的且對防火墻穿透性強的TCP端口(如80、443、21), 并在所有公網(wǎng)IP地址上監(jiān)聽, 監(jiān)聽的TCP端口記為P;

      4) 從 Peer-list中隨機選擇若干當(dāng)前在線的Servant, 將 IP地址列表及監(jiān)聽的端口信息發(fā)送給每個Servant, 請求Servant執(zhí)行連接;

      5) 如果檢測到Servant可以連接到自身某個IP,則認為該IP是本機的公網(wǎng)可達IP, 記為IPi, 并標(biāo)記自身為 Servant。如果不存在這樣的 IP, 則標(biāo)記自身為Client。如果有多個IP地址同時滿足條件, 則隨機選擇一個。

      3.2 命令與控制信道

      PrBot的整體C&C體系設(shè)計如圖1所示, 是由基于混合P2P結(jié)構(gòu)的主信道(Hybrid P2P-based C&C,簡稱 HPCC)與基于 URL Flux協(xié)議的失效備份信道(URL Flux-based C&C, 簡稱UFCC)共同構(gòu)成。

      圖1 PrBot C&C體系Figure 1 PrBot C&C Architecture

      HPCC的上層由Servant構(gòu)成整個P2P僵尸網(wǎng)絡(luò)骨干網(wǎng), 如果將骨干網(wǎng)看作是一個服務(wù)器群, 下層Client則是大量的客戶端。如圖2所示, Client D的Peer-list包含Servant A和B, Client C的Peer-list包含Servant A和E, Servant A的Peer-list包含Servant B、E、F。就命令發(fā)布而言, PrBot拓撲是無向圖, 并提供兩種基本的信息傳遞模式: 推模式(Push)和拉模式(Pull)。推模式指控制者主動將命令推送給僵尸主機,當(dāng)僵尸主機接收到之前從未見過的命令時, 則把該命令轉(zhuǎn)發(fā)到它能聯(lián)系到的其他主機; 拉模式是僵尸主機主動向Peer-list中的Servant發(fā)起請求, 詢問命令。獲得命令后, 僵尸主機將根據(jù)命令執(zhí)行指定活動。在命令傳輸過程中, PrBot采用對稱秘鑰和非對稱密鑰進行信息加密和身份認證, 防止被防御人員監(jiān)控和劫持。密碼學(xué)在僵尸網(wǎng)絡(luò)中的應(yīng)用已經(jīng)非常成熟, 本文不再贅述。

      圖2 混合P2P C&C結(jié)構(gòu)Figure 2 Hybrid P2P-based C&C

      HPCC雖然具有良好的健壯性, 但其初始化方法依然依賴于硬編碼的Peer-list, 存在Bootstrap失效問題。為避免該問題, PrBot采用了基于URL Flux協(xié)議[18]的備份信道。一旦HPCC失效, UFCC將被激活,僵尸主機通過該信道可以直接獲取由控制者發(fā)布的可信 Peer-list, 用以重構(gòu) HPCC, 當(dāng) HPCC恢復(fù)后,UFCC則再次轉(zhuǎn)入休眠狀態(tài)。

      UFCC利用互聯(lián)網(wǎng)上免費的Web 2.0服務(wù)(例如,Twitter, GitHub, Pastebin, TinyURL)作為C&C信道實現(xiàn)資源動態(tài)定位。其本質(zhì)是控制者和僵尸程序共享同一套URL生成算法(URL Generation Algorithm,UGA), 控制者將簽名后的有效Peer信息發(fā)布到互聯(lián)網(wǎng)上, 并生成一個可被僵尸程序預(yù)測的 URL地址, 僵尸程序按照預(yù)定的算法生成 URL地址池逐一進行訪問, 從而獲取新 Peer以構(gòu)建新的Peer-list。如果UFCC失效, 控制者可以通過HPCC更新UGA算法進行恢復(fù)。該備份信道可以靈活的利用眾多免費的Web 2.0服務(wù)[19], 圖3利用了文本存儲網(wǎng)站(例如, Pastebin)和縮址服務(wù)(例如, Tiny-URL)來實現(xiàn)資源動態(tài)定位, 更多其他的方法可參考文獻[20, 21]。

      圖3 基于URL Flux協(xié)議的C&CFigure 3 URL Flux-based C&C

      UFCC這種失效恢復(fù)的思路看起來是存在矛盾的, 如果確信URL Flux是有效的獲取控制信息的方法, 那為什么還需要設(shè)計混合 P2P結(jié)構(gòu)?原因有兩方面: (1)安全風(fēng)險因素: UFCC從原理上來講依然存在單點失效問題, 一旦 URL失效就無法獲取信息,在擴展性、控制信息發(fā)布簡單性方面不如混合型P2P網(wǎng)絡(luò)。(2)對抗成本因素: HPCC與UFCC共同作用一定程度上增加了防御者的對抗成本。

      3.3 Peer-list格式

      定義3 Peer-list: 由若干條peer記錄組成, 每條記錄描述一個 Servant信息, 記為。Peer-list是Peer記錄的集合, 假設(shè)Bi表示僵尸主機, M為Peer-list大小, 則Bi的Peer-list可表示為:

      其中, ServantIP(IP)表示該 Servant的 IP地址;ServantPort(P)表示該Servant開放的TCP端口; BotID用來在整個僵尸網(wǎng)絡(luò)內(nèi)唯一地標(biāo)識自身。由于互聯(lián)網(wǎng)上廣泛部署的DHCP和NAT設(shè)備使基于IP的身份識別并不準(zhǔn)確, 因此控制者可以使用 BotID代替IP地址標(biāo)識僵尸主機, 從而提高對僵尸網(wǎng)絡(luò)控制和測量的準(zhǔn)確性; FailCount(FC)表示僵尸主機 Bi與該Servant交換控制信息的累計失敗次數(shù)。

      FC的作用是評估節(jié)點(即僵尸主機)的信譽值。FC值越高, 其可信度越低, 在 Peer-list更新過程中,具有高FC值的節(jié)點將優(yōu)先被替換掉。引起該值增加的原因包括但不限于網(wǎng)絡(luò)連接失敗, 網(wǎng)絡(luò)連接成功但獲取信息失敗。當(dāng)FC達到預(yù)設(shè)的最大值后, 該節(jié)點將會直接從Peer-list中刪除。出現(xiàn)以下兩種情況時,節(jié)點的FC將直接到達最大值, 觸發(fā)刪除操作:

      1) 提供虛假信息。PrBot采用公/私鑰對來進行身份認證, 控制者用私鑰將命令進行簽名, 僵尸程序用公鑰驗證, 一旦發(fā)現(xiàn)命令不是來自控制者, 則FC達到最大值, 將節(jié)點從Peer-list中刪除。

      2) 未通過蜜罐檢測驗證??刂普咝枰ㄆ谔綔y所感染的終端是否為防御者部署的控制環(huán)境, 例如通過設(shè)計一個Detect命令, 收到Detect命令的節(jié)點需要收集自己Peer-list中Servant節(jié)點的相關(guān)信息, 一旦不符合標(biāo)準(zhǔn), 則FC達到最大值, 并從Peer-list中刪除該節(jié)點。由于篇幅關(guān)系, 本文列出以下3條檢測標(biāo)準(zhǔn), 但不限于此:

      ? 終端用戶的行為分析。請求節(jié)點匯報本機行為,比如是否經(jīng)常使用某些軟件, 是否長時間在線等。

      ? 感染終端軟硬件環(huán)境。請求節(jié)點匯報本機軟硬件環(huán)境和資源, 比如操作系統(tǒng)版本、計算能力、帶寬等。

      ? 攻擊能力證明。出于法律和道德約束的考慮,防御人員部署的蜜罐節(jié)點不會產(chǎn)生攻擊流量危害真實互聯(lián)網(wǎng), 不少蜜罐會對向外發(fā)出的惡意流量進行屏蔽或速率限制, 控制者可以通過僵尸主機對自主建立的感知節(jié)點進行攻擊測試, 并收集攻擊流量,從而評估節(jié)點的真實性[23]。

      4 對抗條件下的PrBot構(gòu)建

      4.1 P2P僵尸網(wǎng)絡(luò)對抗模型

      針對P2P僵尸網(wǎng)絡(luò), 常用的對抗手段包括Index Poisoning攻擊、Sybil攻擊、Peer-list Pollution攻擊?;贒HT思想的結(jié)構(gòu)化P2P僵尸網(wǎng)絡(luò)易受到Index Poisoning的威脅, 通過掌握僵尸主機命令搜索算法,防御者可以提前向索引中注入偽造信息來干擾和阻斷命令傳遞。Sybil攻擊方法指防御者將單個節(jié)點偽裝成多重身份加入到僵尸網(wǎng)絡(luò)中, 由于缺少中心認證機構(gòu), 一旦網(wǎng)絡(luò)中正常的僵尸主機訪問到Sybil節(jié)點, 防御人員可以利用這些Sybil節(jié)點對P2P僵尸網(wǎng)絡(luò)實施規(guī)模測量、活動監(jiān)視、請求中斷和欺騙。Davis等人[6]利用 Sybil攻擊對 Storm實施了拒絕服務(wù)攻擊?;赑eer-list的非結(jié)構(gòu)化P2P僵尸網(wǎng)絡(luò)往往容易遭受Peer-list污染, 該種對抗方法與Sybil攻擊十分相近, 其基本思想是在網(wǎng)絡(luò)中部署 Polluter節(jié)點并向僵尸主機傳遞大量其他惡意節(jié)點或者虛假的節(jié)點地址, 利用Peer-list更新機制占據(jù)列表空間, 使僵尸主機無法訪問到合法節(jié)點, 導(dǎo)致僵尸網(wǎng)絡(luò)被分割或脫離控制。

      混合 P2P結(jié)構(gòu)的僵尸網(wǎng)絡(luò), 能免疫 Index Poisoning攻擊、Sybil攻擊。圖4描繪了混合P2P僵尸網(wǎng)絡(luò)對抗模型, 假設(shè)A和A1是僵尸主機, B和C是易感染主機, P是Polluter節(jié)點, H是蜜罐節(jié)點。針對Peer-list Pollution攻擊, 通常使用兩種主要策略。

      1) 部署Polluter節(jié)點。在逆向分析僵尸網(wǎng)絡(luò)通信協(xié)議之后, 防御者可以定制僵尸程序, Polluter節(jié)點運行防御者定制的僵尸程序, 其各種行為與正常節(jié)點相同, 但不參與真正的攻擊。Polluter節(jié)點需要長期活躍在僵尸網(wǎng)絡(luò)中, 通過頻繁地與正常節(jié)點交換Peer-list, 使自己進入正常節(jié)點的Peer-list中。當(dāng)Polluter節(jié)點占據(jù)了正常節(jié)點Peer-list中絕大部分位置后(即污染了正常節(jié)點的Peer-list表), 全部Polluter節(jié)點在約定的時刻驟然停止運行, 可以破壞 P2P僵尸網(wǎng)絡(luò)。

      2) 部署蜜罐節(jié)點。防御者可以通過部署蜜罐節(jié)點來捕獲僵尸程序, 從而進一步分析僵尸網(wǎng)絡(luò)的通信行為, 了解攻擊方法, 輔助部署 Polluter節(jié)點。此外, 當(dāng)僵尸程序感染了蜜罐節(jié)點后, 防御者可以偽造通信消息, 使蜜罐節(jié)點活躍在僵尸網(wǎng)絡(luò)中, 并占據(jù)在正常節(jié)點的Peer-list中, 起到與Polluter節(jié)點相同的作用, 進而聯(lián)合發(fā)起污染攻擊。

      圖4 混合P2P僵尸網(wǎng)絡(luò)對抗模型Figure 4 Hybrid P2P botnet model under mitigation condition

      4.2 PrBot 構(gòu)建

      4.2.1 感染

      僵尸程序可以利用多種傳播方法, 比如釣魚郵件, 文件資源共享, 漏洞利用, 蠕蟲等[24]。為了描述簡潔, 本文假設(shè)PrBot是通過漏洞利用進行傳播。被感染的僵尸主機首先會通過對內(nèi)、外網(wǎng)主機掃描, 定位脆弱主機資源, 然后利用漏洞投遞載荷并運行,從而實現(xiàn)感染。

      定義4 感染源:若存在僵尸主機A1感染了脆弱主機A, 則A1是A的感染源。

      定義5 InfectNum:記錄本機感染脆弱主機的數(shù)量。InfectNum值越低說明該節(jié)點感染的主機數(shù)越少,對僵尸網(wǎng)絡(luò)所做的貢獻就越少。

      新感染主機上的僵尸程序一定已經(jīng)攜帶(硬編碼)了一個Peer-list, 該Peer-list或者來源于控制者的初始化, 或者來自于感染源經(jīng)過若干次更新與交換后生成的最新Peer-list。通過感染傳遞Peer-list的過程如圖5所示, 其中紅色記錄代表感染源。此時, 如果新感染僵尸主機判定自身為Client, 則將其感染源的信息添加進自身的 Peer-list中, 并替換FailCount值最高的一條記錄, 如果存在多條記錄FailCount相等且最大, 則隨機選擇一個進行替換, 并進行感染源標(biāo)記。同時將自己的信息, 如BotID, IP地址, 主機狀態(tài)發(fā)送給感染源, 并周期性地訪問Peer-list的節(jié)點以獲取命令。如果僵尸程序判定自身為 Servant, 除了將感染源加入Peer-list中, 還需要通知其他節(jié)點執(zhí)行Peer-list更新過程(詳見4.2.3)。需要注意的是, PrBot在感染過程中遵守感染源可信定理。

      圖5 Peer-list傳遞過程Figure 5 Peer-list delivery via infection

      定理1 感染源可信定理:感染源是可信的。

      證明: 反證法。假設(shè)A1是不可信的, 即A1是防御者部署的蜜罐或者Polluter節(jié)點。當(dāng)A1感染A時, A將得到由A1所提供的僵尸程序以及Peer-list(可能含有更多Polluter)。當(dāng)A繼續(xù)感染主機B時, B也會信任主機A以及由A提供的Peer-list(包含A1)。至此, 防御者利用 A1已經(jīng)成功污染了僵尸主機 A和B上的Peer-list, 因為A和B的Peer-list來源于A1且包含A1。當(dāng)A1聯(lián)合其他Polluter節(jié)點突然關(guān)閉時, A和B將會受到影響, 甚至無法繼續(xù)尋址。然而, Polluter節(jié)點能夠污染的主機, 都是因該Polluter節(jié)點造成的, 如圖4中的P->J->K的感染鏈所示。所以, 防御者所做工作不僅沒有對真正僵尸主機形成污染, 反而產(chǎn)生了額外的危害, 更不用說法律和道德問題。因此, 可以完全信任感染源以及由感染源所提供的信息, 這不會對僵尸網(wǎng)絡(luò)本身有負面影響。

      4.2.2 重復(fù)感染

      當(dāng)僵尸主機再次被感染時, 稱為重復(fù)感染(Re-infection)。感染源可能是曾經(jīng)的感染源, 也可能是其他新的主機。一般來說, 重復(fù)感染可以有效地將不同的感染路徑互連在一起, 使得僵尸網(wǎng)絡(luò)更加健壯[15], 但同時, 這也帶來了一定的風(fēng)險, 因為防御者可以部署Polluter節(jié)點感染那些已經(jīng)被感染過的節(jié)點,從而監(jiān)控和污染整個僵尸網(wǎng)絡(luò)。因此, 重復(fù)感染源并不都是可信的。為了對抗防御者的污染策略, PrBot不考慮重復(fù)感染情況, 當(dāng)僵尸主機再次被感染時,并不會復(fù)制該重復(fù)感染源的Peer-list。

      4.2.3 Peer-list更新機制

      對于防御者來說, 由于感染與重復(fù)感染的限定,污染 PrBot的唯一機會就是利用 Peer-list的更新過程。因此, 確保PrBot抗污染能力是Peer-list更新機制的設(shè)計核心。從健壯性來看, 隨著僵尸網(wǎng)絡(luò)逐漸擴張, 大量新的僵尸主機將會加入, 為了避免初始硬編碼的Peer-list被大量新加入的節(jié)點復(fù)制, 導(dǎo)致單點失效問題, 網(wǎng)絡(luò)中的節(jié)點需要對自己的Peer-list進行不斷更新, 以平衡節(jié)點的度, 保持網(wǎng)絡(luò)拓撲的穩(wěn)定。然而, 如果所有節(jié)點都將新加入的節(jié)點更新到Peer-list中, 則該新節(jié)點就會被大量連接, 成為超級節(jié)點, 這不滿足混合P2P結(jié)構(gòu)的要求。因此, 為了避免超級節(jié)點的產(chǎn)生, 需要控制執(zhí)行更新操作的節(jié)點數(shù)量, 本文提出了一種自動廣播更新機制, 通過設(shè)定兩個廣播跳數(shù)(hop_x,hop_y)來限定需要進行更新操作的節(jié)點數(shù)量, 以確保網(wǎng)絡(luò)的健壯性。同時, 將FC和InfectNum引入更新過程, 以提高抗污染的能力。

      算法1. Peer-list更新算法

      算法的輸入: {update, , hop_x(y)}

      update: 表示 Peer-list更新命令, 任何收到update命令的節(jié)點都要做出相應(yīng)的更新操作。

      : 表示新感染的節(jié)點信息, 即

      hop_x: 廣播跳數(shù), 用于向 Peer-list中感染源廣播時使用。

      hop_y: 廣播跳數(shù), 用于向 Peer-list中除感染源以外的節(jié)點廣播時使用。

      hop_x和hop_y是兩個整型數(shù)值, 初始化值被硬編碼在程序內(nèi)。在節(jié)點廣播時攜帶, 每經(jīng)過一次廣播,其值減1, 當(dāng)為0時, 廣播停止。假設(shè)A1是僵尸主機A的感染源, A[2…M]是A的Peer-list中除感染源以外的其他節(jié)點的集合, B是易感染主機。Peer-list更新過程如圖6所示, 描述如下:

      1) 當(dāng)僵尸主機 A感染主機 B時, 如果 B是Servant, 則A開始啟動更新過程。首先, A把更新指令廣播給 Peer-list中的所有節(jié)點, 記為 A{update,, hop_x}->A1, A{update, , hop_y}->A[2…M]。然后, 將 B 的信息(即)添加進Peer-list中。添加時需要判斷Peer-list的情況: 若A的 Peer-list未滿, 則將加入到空記錄里; 若Peer-list已滿, 則刪除當(dāng)前具有最高 FC的一條記錄(多條相同最高 FC記錄, 則隨機選擇一條)替換為; 若該節(jié)點已經(jīng)存在(根據(jù)IP地址判斷), 則不再添加。

      2) 當(dāng) A1收到{update, , hop_x}指令后,首先將hop_x值減1, 并將指令廣播到自己的感染源(假設(shè)為 A11), 記為 A1{update, , hop_x-1}->A11。然后生成新的初始hop_y值, 并廣播給除A11之外的其他節(jié)點(假設(shè)為A1[2…M]), 記為A1{update,, hop_y}->A1[2…M]。最后, 根據(jù) Peer-list中的情況添加。

      3) 當(dāng) A[2…M]中各節(jié)點收到{update, ,hop_y}指令后, 首先將hop_y值減 1, 并將指令廣播給自己Peer-list中所有節(jié)點(假設(shè)為A[2…M][1…M]),記為 A{update, , hop_y-1}->A[2…M][1…M]。然后, 判斷自己的InfectNum是否為0, 如果為0, 則根據(jù)Peer-list中的情況添加, 否則不做更新。

      4) 所有被廣播的節(jié)點按照接受到的指令做出相應(yīng)的更新操作(參照 A1和 A[2…M])。當(dāng)hop_x和hop_y值為0時, 則停止廣播。

      圖6 Peer-list更新過程Figure 6 Peer-list updating procedure

      4.3 安全分析

      4.3.1 健壯性分析

      Peer-list更新機制中,hop_x和hop_y是用來控制需要進行更新的節(jié)點數(shù)量, 使網(wǎng)絡(luò)結(jié)構(gòu)保持穩(wěn)定狀態(tài)。一個新節(jié)點加入, 如果進行全網(wǎng)廣播, 則該節(jié)點將可能被大量其他節(jié)點更新到Peer-list中, 而變成超級節(jié)點, 降低了網(wǎng)絡(luò)的健壯性。一個新節(jié)點的加入,理論上接收到更新指令的節(jié)點數(shù)量可表示為

      但考慮到 InfectNum 的限制, 以及存在重復(fù)轉(zhuǎn)發(fā)、節(jié)點不在線的可能, 可用x(0

      采用 P2P結(jié)構(gòu)的僵尸網(wǎng)絡(luò)具有很好的健壯性,但由于僵尸主機之間需要頻繁通信并進行 Peer-list更新, 因此會引起流量異常。然而, 中心化結(jié)構(gòu)的僵尸網(wǎng)絡(luò)同樣存在流量異常?;贗RC協(xié)議的僵尸網(wǎng)絡(luò)可以通過監(jiān)測傳輸層流量來檢測; 基于 HTTP協(xié)議的僵尸網(wǎng)絡(luò)雖然可以混合在正常流量之中, 但健壯性不好; 基于Domain-Flux、Fast-Flux協(xié)議的僵尸網(wǎng)絡(luò)具有較好的健壯性, 但其動態(tài)尋址的特點會產(chǎn)生明顯的流量異常, 已有較多研究方法來檢測此類僵尸網(wǎng)絡(luò)[39,40]。因此, 保證僵尸網(wǎng)絡(luò)的健壯性的同時,不可避免地會引起流量異常, 影響其有效性, 在防御機制成熟的網(wǎng)絡(luò)中可能會被發(fā)現(xiàn), 進而被清理。

      4.3.2 抗污染性分析

      在對抗條件下, PrBot具有很好的抗污染能力。Peer-list更新過程中FC和InfectNum的判定分別降低了Polluter和蜜罐節(jié)點在僵尸網(wǎng)絡(luò)中的生存性和有效性, 使污染Peer-list難以實現(xiàn)。即使部分節(jié)點被污染, 由于網(wǎng)絡(luò)具有很強的健壯性, 仍然可以有效抵抗污染攻擊。

      1)對于Polluter節(jié)點來說, Peer-list更新過程是自發(fā)性的, 這就使得 Polluter節(jié)點無法主動推送自己,只有當(dāng)節(jié)點感染了新的主機才會進行更新。但考慮到多個 Polluter節(jié)點可以聯(lián)合進行相互廣播的情況,PrBot定義了 InfectNum來限制受污染節(jié)點的數(shù)量,保護高權(quán)重的節(jié)點。網(wǎng)絡(luò)中節(jié)點的權(quán)重Q可表示為

      其中,K為節(jié)點的度,N為網(wǎng)絡(luò)中節(jié)點總數(shù)。節(jié)點的權(quán)重正比于節(jié)點的度K和感染數(shù)量InfectNum, 感染數(shù)量和節(jié)點的度越高, 權(quán)重則越高, 對網(wǎng)絡(luò)的作用及影響就越大。假設(shè)新加入的節(jié)點是Polluter或者蜜罐,根據(jù)Peer-list更新機制, 只有InfectNum為0的節(jié)點才會添加它們, 而這些節(jié)點在僵尸網(wǎng)絡(luò)中的權(quán)重較小, 即使被污染, 對整個網(wǎng)絡(luò)的影響并不大。

      2) 對于蜜罐節(jié)點來說, 除了 InfectNum的限制,FC的設(shè)置使得蜜罐節(jié)點必須保持高的可信度和活躍度, 并且還需通過蜜罐檢測驗證, 否則 FC值將會增加甚至達到最大, 面臨被替換和刪除的危險。信譽機制被應(yīng)用于 Peer-list構(gòu)建與自動更新的整個生命周期中, 提高了僵尸網(wǎng)絡(luò)的抗污染能力。

      5 實驗評估

      5.1 相關(guān)參數(shù)與評估指標(biāo)

      考慮到真實環(huán)境下的實驗受限, 本文采用基于Python的網(wǎng)絡(luò)建模, 模擬僵尸網(wǎng)絡(luò)的構(gòu)建, 包括節(jié)點加入、刪除、更新等操作, 并對PrBot的健壯性和抗污染能力進行了評估。下面給出五個評估指標(biāo):

      1) 度分布[25]: 一個節(jié)點的度通常定義為該節(jié)點連接的所有邊的總和, 網(wǎng)絡(luò)的度分布P(K)即為網(wǎng)絡(luò)中節(jié)點的度的頻率分布, 其中K表示節(jié)點的度。

      2) 連通率(Connected Ratio)[17]: 表示隨機刪除p個Servant節(jié)點后, 剩下的節(jié)點能夠相互連通的能力。假定僵尸網(wǎng)絡(luò)中節(jié)點數(shù)為N, 刪除p個節(jié)點后, 最大聯(lián)通子圖中的節(jié)點個數(shù)為Nd, 則連通率可表示為

      C(p)值越高, 說明僵尸網(wǎng)絡(luò)可連通節(jié)點數(shù)越多。

      3) 度率(Degree Ratio)[17]: 表示隨機刪除p個Servant節(jié)點后, 剩下的節(jié)點聚集在一起的密集程度。度率可表示為

      D(p)值越高, 說明節(jié)點之間連接得越緊密。

      4) 可達率(Reached Ratio): 表示隨機刪除p個Servant節(jié)點后, 控制者發(fā)布的命令成功到達節(jié)點的比率??蛇_率體現(xiàn)了Botmaster對僵尸網(wǎng)絡(luò)控能力的強弱。假定僵尸網(wǎng)絡(luò)中節(jié)點數(shù)為N, 刪除p個Servant節(jié)點后, 控制者隨機選擇 20個節(jié)點發(fā)出指令, 接收到指令的節(jié)點個數(shù)為Nr, 則可達率可表示為

      R(p)值越大說明可達率越好。

      5) 時效性(Command Efficiency): 表示隨機刪除p個 Servant節(jié)點后, 控制者發(fā)布的命令到達各節(jié)點的平均延遲。時效性體現(xiàn)了僵尸網(wǎng)絡(luò)對命令控制的反應(yīng)速度, 但命令到達的延遲與僵尸主機的性能、在線情況、網(wǎng)絡(luò)帶寬及擁堵情況等諸多因素有關(guān), 具有較強的偶然性。在理想的條件下, 本文使用平均跳數(shù)來衡量命令時效, 并設(shè)命令每經(jīng)過一個節(jié)點的檢索時間 T=60s, 假定僵尸網(wǎng)絡(luò)中規(guī)模為N, 刪除p個Servant節(jié)點后, 控制者隨機選擇20個節(jié)點發(fā)出指令,通過i跳接收到指令的節(jié)點數(shù)量為Wi, 所需的最大跳數(shù)為h, 則時效性可表示為

      本文對 PrBot進行建模所用參數(shù)可表示為φ(N,M,f), 其中, N指僵尸網(wǎng)絡(luò)的規(guī)模; M指Peer-list的大小;f(0

      f值的選取需要考慮多種因素, 因為許多 Client是位于防火墻或NAT設(shè)備內(nèi), 還有一些采用動態(tài)地址分配。正如文獻[11]指出的, 一般來說, 僵尸網(wǎng)絡(luò)中大約有60%~87%的設(shè)備不能接收連接請求。不少研究人員也對此做了測量和評估, Kang等人[26]提出了一個Passive P2P Monitor (PPM)模型, 即使主機在防火墻或者NAT設(shè)備內(nèi), 也能夠?qū)⑵涿杜e出來。他們通過該模型測量了Storm僵尸網(wǎng)絡(luò), 其結(jié)果顯示大約有40%的僵尸主機是在防火墻或者NAT設(shè)備內(nèi)。為了更好地理解 Servant節(jié)點對整個僵尸網(wǎng)絡(luò)影響,我們?nèi)= 0.25, 0.5, 0.75來對PrBot的C(p)和D(p)值做評估。

      假設(shè)φ(20,000, 20,f),hop_x= 1,hop_y= 2, 評估結(jié)果如圖7(a)和(b)所示。不難看出, 隨著Servant的比例增加,C(p)和D(p)值也會增長, 這是因為Servant節(jié)點形成了整個僵尸網(wǎng)絡(luò)的骨干網(wǎng), 相互連接, 不斷更新。Servant的數(shù)量越多, 則 PrBot的健壯性越好。當(dāng)Servant節(jié)點去掉了80%, 在f= 0.75的情況下, 其C(p)仍然穩(wěn)定在1, 而在f= 0.25的情況下,C(p)與D(p)都已經(jīng)降低到0.4以下??紤]到現(xiàn)實世界中存在著大量的Client, 在本文的后續(xù)評估實驗中, 選取f= 0.25作為評估參數(shù)。

      表1 ω(hop_x, hop_y)參數(shù)設(shè)置Table 1 ω(hop_x, hop_y) settings

      圖7 在f = 0.25,0.5,0.75的條件下的D(p)、C(p)比較Figure 7 The D(p) and C(p) comparison under f = 0.25,0.5,0.75

      圖8 w (hop_x, hop_y)不同取值下的C(p)比較Figure 8 The C(p) comparison under different w(hop_x, hop_y) settings

      第4節(jié)中提到,hop_x和hop_y對于PrBot的健壯性和抗毀性很重要, 它們決定了當(dāng)感染一個新主機時, 會有多少個已存在的節(jié)點更新自己的 Peer-list。為了更好地理解廣播機制對僵尸網(wǎng)絡(luò)的影響, 并且找到最優(yōu)hop_x和hop_y值, 我們選取了不同的參數(shù)值ω(hop_x, hop_y)(見表1)進行模擬評估。

      圖9 當(dāng)hop_y = 2時, hop_x不同取值下的C(p)Figure 9 The C(p) under different hop_x settings when hop_y=2

      hop_y最優(yōu)值選擇:如圖8所示, 四條藍線代表

      hop_y=0時的情況, 其C(p)值接近最底部 0處,這意味著網(wǎng)絡(luò)中幾乎沒有執(zhí)行Peer-list更新過程。初始Peer-list中的節(jié)點充當(dāng)了中心服務(wù)器, 被大量新節(jié)點連接, 如果被移除, 網(wǎng)絡(luò)將受到嚴重打擊。四條紅線代表了hop_y=2時的情況, 此時,C(p)穩(wěn)定在0.8左右, 是幾種取值下表現(xiàn)最好的情況, 因此可以得出hop_y=2為最優(yōu)取值。

      hop_x最優(yōu)值選擇:圖 8不能直接觀測不同hop_x值所帶來的變化, 因此, 我們在hop_y=2條件下重新評估hop_x對網(wǎng)絡(luò)連通率C(p)的影響, 結(jié)果如圖 9所示, 當(dāng)hop_x=1時, 僵尸網(wǎng)絡(luò)的C(p)值最高,健壯性更好, 因此hop_x=1為最優(yōu)值。

      5.2 健壯性評估

      為了評估 Peer-list更新機制對僵尸網(wǎng)絡(luò)健壯性的影響, 我們比較了其他兩種Peer-list更新方式。

      Case1:該Peer-list更新方式是由Wang等人[17]在所提出的一種高級混合僵尸網(wǎng)絡(luò)中所采用的, 當(dāng)僵尸網(wǎng)絡(luò)中Servant的數(shù)量達到1000時, 控制者通過Sensor節(jié)點來收集信息, 并執(zhí)行一次Peer-list更新過程??刂普唠S機從這1000個Servant中選取節(jié)點組成一個新的 Peer-list, 然后發(fā)送給每個向它請求Peer-list更新的僵尸主機。

      Case2:僵尸網(wǎng)絡(luò)中不執(zhí)行 Peer-list更新, 當(dāng)新感染節(jié)點加入時, 只有感染源將其添加到自己的Peer-list中。

      實驗共模擬包括PrBot在內(nèi)的三種Peer-list更新機制的僵尸網(wǎng)絡(luò)構(gòu)建過程, 三種方法對應(yīng)的實驗場景采用相同參數(shù)φ(20,000,20,0.25), 對于 PrBot, 額外使用hop_x= 1和hop_y= 2。

      三種僵尸網(wǎng)絡(luò)的度分布如圖 10所示(為方便作圖, 將節(jié)點的度取對數(shù))。黃色線條代表Case1, 可以看出, 用作更新的1000個Servant節(jié)點的度從300到500不等, 而在更新之后所加入的新節(jié)點的度大約在20到30之間, 這1000個Servant節(jié)點形成了該僵尸網(wǎng)絡(luò)的骨干網(wǎng), 被大部分其他節(jié)點連接。藍色線條代表Case2, 初始Peer-list中節(jié)點的度大約在14,000到17,000之間, 而其他節(jié)點的度非常小, 可以看出整個網(wǎng)絡(luò)處在不平衡鏈接狀態(tài)。這些初始節(jié)點在傳播過程中, 不斷被復(fù)制, 形成了超級節(jié)點, 完全充當(dāng)了中心服務(wù)器的角色。紅色線條代表PrBot, 從線條的分布來看, 網(wǎng)絡(luò)中節(jié)點的度分布均衡, 所有節(jié)點的度大約從 50到400不等, 網(wǎng)絡(luò)中不存在超級節(jié)點, 任意移除部分節(jié)點, 對整個網(wǎng)絡(luò)的影響不會致命。另外注意, 這里的節(jié)點指的是Servant節(jié)點, Client節(jié)點的度總是為M, 因為它自己Peer-list中的Servant節(jié)點通信。與Case1和Case2比較, PrBot具有更好的健壯性。

      圖10 度分布比較圖Figure 10 The degree distribution comparison

      圖11 兩種去點策略的C(p)、D(p)、R(p)比較Figure 11 The C(p), D(p) and R(p) comparison under two takedown strategies

      5.3 抗污染評估

      假設(shè)防御者在僵尸網(wǎng)絡(luò)中部署了大量的污染節(jié)點(只作為 Servant), 當(dāng)污染節(jié)點占據(jù)了正常節(jié)點Peer-list中絕大部分位置后, 如果全部污染節(jié)點在特定的時刻停止運行, 便可以降低PrBot的可用性, 甚至摧毀整個僵尸網(wǎng)絡(luò)。我們通過移除 Servant節(jié)點,來模擬該攻擊。本文采用兩種去點策略[27]:

      隨機去點(Random Takedown):在網(wǎng)絡(luò)中隨機選擇Servant節(jié)點并移除。

      按度去點(Degree-based Takedown):按節(jié)點的度由高到低進行去點。

      評估結(jié)果如圖 11(a)、11(b)、圖 12所示。從圖11(a)中我們可以看出, 在隨機去點的情況下, 如果移除的Servant節(jié)點不超過80%, 則網(wǎng)絡(luò)仍然處于高連接狀態(tài)(C(p) > 0.98)。在按度去點的策略下, 如果超過一半的Servant節(jié)點被移除, 則整個僵尸網(wǎng)絡(luò)將會受到較為嚴重的打擊,C(p) < 0.5、D(p) < 0.3。當(dāng)所有Servant節(jié)點都被移除時, 整個網(wǎng)絡(luò)將會崩潰,C(p)= 0、D(p) = 0。

      圖11(b)和圖12分別顯示在兩種去點策略下的可達率和時效性。在隨機去點策略下, 只要低于80%的Servant被移除, 則每一個節(jié)點都能收到命令(R(p) =1), 而轉(zhuǎn)發(fā)跳數(shù)大約在 2.5左右, 命令到達各節(jié)點的時效大約為 150s。紅色曲線代表了按度去點策略下的情況, 顯然地, PrBot在隨機去點的策略下具有更好的連通性能。事實上, 防御者是很難控制污染節(jié)點的度, 因為Peer-list的更新過程是完全自動的, 因此在隨機去點策略下的性能更具有實際參考意義。實驗結(jié)果說明即使在防御者部署了大量污染節(jié)點的情況下(不超過80%), PrBot仍可以正常運作, 具有較強的抗污染能力。

      為了進一步說明, 同其他僵尸網(wǎng)絡(luò)模型相比,PrBot具有明顯的抗污染能力的優(yōu)勢, 我們選取了Case1作為比較對象。評估結(jié)果如圖13(a)和圖13(b)所示。在Case1中, 當(dāng)Servant節(jié)點數(shù)量達到1000時,進行一次更新操作, 采用按度去點策略。圖 13(a)顯示了兩種模型下的C(p)和D(p)比較情況。顯然地, 對于 Case1來說, 度最高的節(jié)點是這 1000個 Servant節(jié)點, 并且它們將組成新的 Peer-list, 如果去除這些節(jié)點, 意味著新的Peer-list將無效, 整個僵尸網(wǎng)絡(luò)將被瓦解,C(p)和D(p)趨近于 0。對于 PrBot來說, 其Peer-list更新機制是自發(fā)且有限的, 即使度最高的1000個節(jié)點是污染節(jié)點, 也不會產(chǎn)生較大的影響,因為隨著僵尸網(wǎng)絡(luò)的不斷增長, 節(jié)點的Peer-list會不斷的進行自我更新, 即使是去掉它們, 仍然具有較好的連通率和度率,C(p)值約為 0.76,D(p)值約為0.62。圖13(b)是兩種模型下T(p)的比較, PrBot的連通跳數(shù)穩(wěn)定在 2左右, 命令到達各節(jié)點的時效約為130s, 而Case1起伏較大, 體現(xiàn)了被污染后網(wǎng)絡(luò)結(jié)構(gòu)處在不穩(wěn)定狀態(tài)。值得說明的是, 對于中心結(jié)構(gòu)僵尸網(wǎng)絡(luò), 僵尸主機通常不經(jīng)過其他節(jié)點(或者經(jīng)過少量中轉(zhuǎn)節(jié)點)訪問命令控制服務(wù)器, 路徑數(shù)通常較短。因此,中心結(jié)構(gòu)的效率一般要比 P2P結(jié)構(gòu)的高, 本文不再進行比較。

      圖12 兩種去點策略的T(p)比較Figure 12 The T(p) comparison under two takedown strategies

      圖13 兩種模型下D(p)、C(p)、T(p)比較Figure 13 The D(p), C(p) and T(p) comparison under two cases

      6 防御

      針對僵尸網(wǎng)絡(luò)防御的研究, 主要從對抗、檢測、測量、追蹤這四個方面開展。其中, 對抗的目的是接管僵尸網(wǎng)絡(luò)控制權(quán)或降低其可用性; 檢測的目的是發(fā)現(xiàn)新的僵尸網(wǎng)絡(luò); 測量的目的是刻畫僵尸網(wǎng)絡(luò)拓撲結(jié)構(gòu)、活躍規(guī)模、完全規(guī)模等可度量屬性及其動態(tài)變化軌跡, 展現(xiàn)出僵尸網(wǎng)絡(luò)的輪廓和特征; 追蹤的目的是獲知僵尸網(wǎng)絡(luò)的內(nèi)部活動。針對PrBot這類高抗性的僵尸網(wǎng)絡(luò), 其防御策略可從檢測、測量、追蹤三方面入手。

      6.1 檢測技術(shù)

      僵尸網(wǎng)絡(luò)的檢測方法通??煞譃榛诿酃薹治?、基于通信內(nèi)容、基于異常、基于數(shù)據(jù)日志、基于挖掘分析五類。

      基于蜜罐的分析方法首先通過蜜罐誘捕的辦法獲取大量惡意代碼樣本, 在可控環(huán)境中進行監(jiān)控分析, 發(fā)現(xiàn)僵尸程序及其惡意行為。雖然PrBot能夠有效抵抗污染攻擊, 但是防御者仍然可以通過部署蜜罐節(jié)點來捕獲僵尸程序, 通過分析其行為特征, 有助于進一步了解僵尸網(wǎng)絡(luò)通信機理及潛在脆弱點,制定下一步關(guān)閉和打擊僵尸網(wǎng)絡(luò)的策略。

      基于通信內(nèi)容的檢測是普遍采用的防御方法,通過事先配置特征匹配規(guī)則, 諸如Snort等傳統(tǒng)入侵檢測系統(tǒng)可快速、準(zhǔn)確發(fā)現(xiàn)僵尸網(wǎng)絡(luò)。該方法適用于具有明確特征的僵尸網(wǎng)絡(luò), 缺點是無法檢測未知的僵尸網(wǎng)絡(luò), 需要持續(xù)維護和更新特征碼知識庫。因此, 如果防御者獲知了PrBot通信中備份C&C中的URL生成算法, 則可通過配置URL規(guī)則來檢測可疑的通信內(nèi)容。

      基于異常檢測方法主要圍繞僵尸網(wǎng)絡(luò)引發(fā)的異常進行檢測, 具體又可分為主機層異常和網(wǎng)絡(luò)層異常。主機層異常檢測通過監(jiān)控終端行為發(fā)現(xiàn)異常, 監(jiān)控內(nèi)容包括進程、文件、注冊表、網(wǎng)絡(luò)連接等行為[28]。網(wǎng)絡(luò)層異常檢測則假定僵尸程序與控制服務(wù)器之間的通信模式較正常用戶通信具有較大差異性, 從而可通過流量分析來發(fā)現(xiàn)僵尸網(wǎng)絡(luò)的蹤跡。網(wǎng)絡(luò)流量分析系統(tǒng)可部署在網(wǎng)絡(luò)邊界上實時收集網(wǎng)絡(luò)數(shù)據(jù)流(類似NetFlow格式), 也可匯總不同網(wǎng)絡(luò)的多個路由器發(fā)送來的 NetFlow流, 常見的異常特征包括高網(wǎng)絡(luò)延遲、高流量、非常規(guī)端口流量等[29]。PrBot由于其Peer-list廣播更新機制, 會存在高流量等異常的行為, 基于網(wǎng)絡(luò)層異常的檢測方法可以適用。同時,PrBot具備僵尸網(wǎng)絡(luò)的基本屬性, 即處在同一僵尸網(wǎng)絡(luò)中的主機具有時空相似性, 并執(zhí)行類似的惡意活動, 防御者可以部署 EDR(end-point detection and response)、NDR(network detection and response)、或者基于該類屬性的檢測系統(tǒng)[30,31]來進行全面地檢測和響應(yīng)。

      基于數(shù)據(jù)日志的分析檢測方法與基于異常檢測的方法比較相似, 但數(shù)據(jù)源大多來自 DNS、郵件等日志記錄。研究人員通過分析日志中的異常來識別可能的僵尸網(wǎng)絡(luò)行為[32,33]。例如, 若控制者利用PrBot發(fā)送垃圾郵件, 則可通過分析郵件服務(wù)器中賬號激活、登錄日志、郵件內(nèi)容相似性等來發(fā)現(xiàn)僵尸網(wǎng)絡(luò)。

      基于挖掘分析的檢測方法一般借助機器學(xué)習(xí)算法來進一步識別C&C流量。通過對流量聚合分析、多重日志文件關(guān)聯(lián)等來進行識別和檢測[34]。Gu等人[35]認為有相同惡意行為并具有相似通信模式的僵尸主機都可認為是僵尸主機, 并基于該假設(shè)提出了一種基于異常檢測系統(tǒng) BotMiner, 該系統(tǒng)首先對數(shù)據(jù)流按目的地址和端口進行劃分, 經(jīng)過流量屬性聚類和主機異常行為關(guān)聯(lián)分析后檢測出可疑的僵尸網(wǎng)絡(luò)通信。該方法具有協(xié)議無關(guān)性, 可檢測加密的僵尸網(wǎng)絡(luò),同樣適用于PrBot。

      6.2 測量技術(shù)

      測量P2P僵尸網(wǎng)絡(luò)時可能會受到合法P2P節(jié)點、DHCP、NAT、防火墻、開關(guān)機等因素的影響。實踐證明, 針對同一僵尸網(wǎng)絡(luò)采用不同的測量方法, 產(chǎn)生的結(jié)果可能相差一個數(shù)量級[36]。所以, 測量結(jié)果必須輔之以特定環(huán)境、特定策略、特定方法等的上下文說明才有參考意義。針對PrBot, 根據(jù)Peer-list的交換機制可以借助基于Crawler思想來測量。防御者通過編寫Crawler滲透進入僵尸網(wǎng)絡(luò), 并模仿真實僵尸程序的C&C協(xié)議主動聯(lián)系Peer, 記錄該Peer返回的其他 Peer地址后, 重復(fù)執(zhí)行上述操作, 從而可遍歷整個P2P網(wǎng)絡(luò)。在PrBot中, 只有Client可以主動地向其感染源請求 Peer-list, 如果防御者部署Crawler作為Client節(jié)點, 則可以周期性地從其感染源處請求 Peer-list, 獲取部分節(jié)點信息。如果作為Servant節(jié)點, 則可以被動的接收其他節(jié)點廣播的新節(jié)點。當(dāng)僵尸主機Peer-list中無可用節(jié)點, 則會啟動備份C&C信道, 一旦防御者成功的逆向URL的生成算法, 那么可以編寫Crawler執(zhí)行與正常節(jié)點相同的請求, 來獲取新的可信節(jié)點。雖然以上方法很難精確地評估整個僵尸網(wǎng)絡(luò)的規(guī)模, 但是可以盡可能多的估算節(jié)點數(shù)量。

      6.3 追蹤技術(shù)

      追蹤的前提是掌握 C&C協(xié)議, 基于所掌握的C&C協(xié)議, 任何僵尸網(wǎng)絡(luò)都無法避免被追蹤。一般所采用的追蹤方法可歸納為兩類: (1)以滲透的方式加入到僵尸網(wǎng)絡(luò)中以求掌握僵尸網(wǎng)絡(luò)內(nèi)部活動情況,這種滲透的行為主體稱之為僵尸網(wǎng)絡(luò)滲透者(Infiltrator); (2)在可控環(huán)境中運行 Sandbot?;赟andbot思想的追蹤是在可控環(huán)境中運行 Sandbot,并對其通信內(nèi)容進行審計, 從而可獲知僵尸網(wǎng)絡(luò)的活動[37]。但這種方法存在一些弊端, 一方面可控環(huán)境可能放行了惡意攻擊流量、封鎖了必要的C&C流量,也可能錯誤地篡改了關(guān)鍵內(nèi)容, 導(dǎo)致被控制者察覺。該方法難以處理加密協(xié)議, 對于嚴格檢查運行環(huán)境的僵尸程序以及嚴格檢查僵尸程序來源的控制服務(wù)器,Sandbot方法可能會失效。由于PrBot設(shè)計了檢測運行環(huán)境的模塊, 因此不適合使用Sandbot思想的追蹤。

      PrBot可以采用基于Infiltrator思想的追蹤, 該方法是通過模仿真正僵尸程序的C&C協(xié)議來滲入僵尸網(wǎng)絡(luò), 從而可以收到控制者和僵尸程序發(fā)來的控制信息, 并獲取信息源的地址。Infiltrator是一種確定的、可控的追蹤方法, 只要 Infiltrator正確模擬了真實僵尸程序的C&C協(xié)議, 就可以與其他僵尸程序獲得相同的來自控制者的控制信息[38]。與真實僵尸程序不同的是: Infiltrator收到控制命令后, 不會產(chǎn)生相應(yīng)的攻擊動作, 僅在必要時反饋偽造的執(zhí)行結(jié)果。與Polluter不同的是, Infiltrator需嚴格遵守原有C&C協(xié)議并進行自我保護, 如果 Infiltrator的行為偏離了僵尸程序應(yīng)有的軌道, 則會引起控制者察覺進而招致攻擊。而Polluter的目的是占據(jù)正常節(jié)點Peer-list中的位置。

      以上三種防御技術(shù)相輔相成、相互補充, 幫助完善針對PrBot的防御體系。除此之外, 防御者還可以采取協(xié)同CERT、ISP來加強公共服務(wù)安全以及封鎖端口的防御手段。這主要是因為PrBot的備份C&C協(xié)議依賴于Twitter, GitHub, 網(wǎng)盤等Web服務(wù)。Web服務(wù)提供商可以使用用戶驗證或 CAPTCHA, 甚至使用限速來防止批量注冊。這些方法一定程度上可以防止公共服務(wù)被濫用。由于逃避檢測的技術(shù)存在(例如逃避 CAPTCHAs), 因此可考慮多種限制因素,包括通過訪問請求的速率、模式和關(guān)聯(lián)以及用戶信譽來檢測具有某些組行為的僵尸賬號等[15]。

      7 結(jié)論

      本文介紹了一種混合型P2P僵尸網(wǎng)絡(luò)——PrBot。PrBot采用基于信譽的Peer-list更新機制, 可自動化地平衡網(wǎng)絡(luò)連接, 在具有高健壯性的同時, 還擁有抗污染能力。實驗結(jié)果也證明PrBot能有效對抗防御者實施的大規(guī)模協(xié)同防御策略。面對新的挑戰(zhàn), 本文從檢測、測量、追蹤三個方面提出了針對PrBot的防御策略。我們認為, 從攻擊者角度研究如何構(gòu)建高對抗性的僵尸網(wǎng)絡(luò), 并先于攻擊者提出有效的防御策略, 具有重要的現(xiàn)實意義。下一步工作中, 我們將對該類型的僵尸網(wǎng)絡(luò)進行深入研究, 尋找并設(shè)計出快速有效的檢測系統(tǒng)。

      [1]方濱興, 崔翔, 王威. 僵尸網(wǎng)絡(luò)綜述[J]. 計算機研究與發(fā)展,2011, 48(8): 1315-1331.

      [2]Wang P, Wu L, Aslam B, et al. A systematic study on peer-to-peer botnets[C]//Computer Communications and Networks, 2009.ICCCN 2009. Proceedings of 18th Internatonal Conference on.IEEE, 2009: 1-8.

      [3]Holz T, Steiner M, Dahl F, et al. Measurements and Mitigation of Peer-to-Peer-based Botnets: A Case Study on Storm Worm[J].LEET, 2008, 8(1): 1-9.

      [4]Liang J, Naoumov N, Ross K W. The Index Poisoning Attack in P2P File Sharing Systems [A]. // Proceedings of the 25th International Conference on Computer Communications [C], Piscatawary,NJ: IEEE, 2006: 1-12.

      [5]Douceur J R. The sybil attack[C]//International Workshop on Peer-to-Peer Systems. Springer, Berlin, Heidelberg, 2002: 251-260.

      [6]Davis C R, Fernandez J M, Neville S, et al. Sybil attacks as a mitigation strategy against the storm botnet[C]//Malicious and Unwanted Software, 2008. MALWARE 2008. 3rd International Conference on. IEEE, 2008: 32-40.

      [7] P.-M. Bureau. Same Botnet, Same Guys, New Code: Win32/ Kelihos. In VirusBulletin.

      [8]B. Stock, M. Engelberth, F. C. Freiling, and T. Holz. Walowdac –Analysis of a Peer-to-Peer Botnet. In Proceedings of the European Conference on Computer Network Defense.

      [9]J. Wyke. ZeroAccess, 2012. Technical Report by SophosLabs.

      [10]Dittrich, D.: So You Want to Take Over a Botnet. In: Proceedings of the 5th USENIX Conference on Large-Scale Exploits and Emergent Threats, 2012.

      [11]Rossow C, Andriesse D, Werner T, et al. Sok: P2pwned-modeling and evaluating the resilience of peer-to-peer botnets[C]//Security and Privacy (SP), 2013 IEEE Symposium on. IEEE, 2013: 97-111.

      [12] Starnberger G, Kruegel C, Kirda E. Overbot: a botnet protocol based on Kademlia[C]//Proceedings of the 4th international conference on Security and privacy in communication netowrks. ACM,2008: 13.

      [13]Yan G, Ha D T, Eidenbenz S. AntBot: Anti-pollution peer-to-peer botnets[J]. Computer networks, 2011, 55(8): 1941-1956.

      [14]Nappa A, Fattori A, Balduzzi M, et al. Take a Deep Breath: A Stealthy, Resilient and Cost-Effective Botnet Using Skype[C]//DIMVA. 2010: 81-100.

      [15]Vogt R, Aycock J, Jacobson Jr M J. Army of Botnets[C]//NDSS.2007.

      [16]Hund R, Hamann M, Holz T. Towards next-generation botnets[C]//Computer Network Defense, 2008. EC2ND 2008. European Conference on. IEEE, 2008: 33-40.

      [17]Wang, P., Sparks, S., Zou, C.C.: An advanced hybrid peer to peer botnet. In: Proceedings of the First Workshop on Hot Topics in Understanding Botnets, HotBots 2007 (2007).

      [18]Xiang C, Binxing F, Lihua Y, et al. Andbot: towards advanced mobile botnets[C]//Proceedings of the 4th USENIX conference on Large-scale exploits and emergent threats. USENIX Association,2011: 11-11.

      [19]Artturi Lehti?, F-Secure, Finland. C&C-as-a-service: abusing third-party web services as C&C channels, 2015.

      [20]Lee S, Kim J. Fluxing botnet command and control channels with URL shortening services[J]. Computer Communications, 2013,36(3): 320-332.

      [21]Xiang C, Binxing F, Jinqiao S, et al. Botnet triple-channel model:Towards resilient and efficient bidirectional communication botnets[M]. Berlin: Springer, 2013: 53-68.

      [22]Wang P, Wu L, Cunningham R, et al. Honeypot detection in advanced botnet attacks [J]. International Journal of Information and Computer Security, 2010, 4(1): 30-51.

      [23]Wang P, Wu L, Cunningham R, et al. Honeypot detection in advanced botnet attacks [J]. International Journal of Information and Computer Security, 2010, 4(1): 30-51.

      [24]李可, 方濱興, 崔翔, 等. 僵尸網(wǎng)絡(luò)發(fā)展研究[J]. 計算機研究與發(fā)展, 2016, 53(10): 2189-2206.

      [25]West D B. Introduction to graph theory[M]. Upper Saddle River:Prentice hall, 2001.

      [26]Kang B B H, Chan-Tin E, Lee C P, et al. Towards complete node enumeration in a peer-to-peer botnet[C]//Proceedings of the 4th International Symposium on Information, Computer, and Communications Security. ACM, 2009, 23-34.

      [27]Yen T F, Reiter M K. Revisiting botnet models and their implications for takedown strategies [A]. // Proceedings of the First International Conference on Principles of Security and Trust [C], Berlin:Springer, 2012: 249-268.

      [28]Stinson E, Mitchell J C. Characterizing bots’ remote control behavior [M]. Berlin: Springer, 2007: 89-108.

      [29]Silva S S C, Silva R M P, Pinto R C G, et al. Botnets: A survey [J].Computer Networks, 2013, 57(2): 378-403.

      [30]Zhang J, Saha S, Gu G, et al. Systematic mining of associated server herds for malware campaign discovery[C]//Distributed Computing Systems (ICDCS), 2015 IEEE 35th International Conference on. IEEE, 2015, 630-641.

      [31]Gu G, Zhang J, Lee W. BotSniffer: Detecting Botnet Command and Control Channels in Network Traffic[C]//NDSS. 2008, 8: 1-18.

      [32]Zhuang L, Dunagan J, Simon D R, et al. Characterizing Botnets from Email Spam Records [J]. LEET, 2008, 8(1): 1-9.

      [33]Zhao Y, Xie Y, Yu F, et al. BotGraph: Large Scale Spamming Botnet Detection [A]. // Proceedings of the 6th USENIX Symposium on Networked Systems Design and Implementation [C], Berkeley,CA: USENIX Association, 2009: 321-334.

      [34]Seungwon Shin, Zhaoyan Xu, Guofei Gu. “EFFORT: Efficient and Effective Bot Malware Detection.” In Proc. of the 31th Annual IEEE Conference on Computer Communications (INFOCOM'12)Mini-Conference, Orlando, Florida, March 2012.

      [35]Gu G, Perdisci R, Zhang J, et al. BotMiner: Clustering Analysis of Network Traffic for Protocol-and Structure-Independent Botnet Detection[C]//USENIX Security Symposium. 2008, 5(2): 139-154.[36]Rajab M, Zarfoss J, Monrose F, et al. My botnet is bigger than yours (maybe, better than yours): Why size estimates remain challenging [C]//Proc of the first conference on First Workshop on Hot Topics in Understanding Botnets. Berkeley, CA: USENIX Association, 2007:5.

      [37]Kreibich, C. and Weaver, N. and Kanich, C. and Cui, W. and Paxson, V. GQ: Practical Containment for Measuring Modern Malware Systems. In Proc. of the 2011 ACM SIGCOMM conference on Internet Measurement Conference. 2011.

      [38]Cho C. Y, Caballero J, Grier C, Paxson V and Song D. Insights from the Inside: A View of Botnet Management from Infiltration [C]//Proc of the 3th USENIX conference on Large-scale exploits and emergent threats: botnets, spyware, worms and more. Berkeley, CA:USENIX Association, 2010: 2.

      [39]Holz T, Gorecki C, Rieck C, and Freiling F. C. Detection and mitigation of fast-flux service networks [C]//Proc of the 15th Annual Network and Distributed System Security Symposium. Berkeley,CA: USENIX Association, 2008.

      [40]Antonakakis M, Perdisci R, Nadji Y, et al. From Throw-Away Traffic to Bots: Detecting the Rise of DGA-Based Malware[C]//USENIX Security Symposium. 2012: 491-506.

      猜你喜歡
      控制者僵尸污染
      筆記本電腦“僵尸”
      英語文摘(2020年2期)2020-08-13 07:26:22
      從“控制者”變身“隱形人”
      好家長(2020年3期)2020-06-05 02:57:20
      論人工智能的刑事責(zé)任能力與追究
      淺談中小學(xué)財務(wù)人員角色轉(zhuǎn)換的緊迫性
      堅決打好污染防治攻堅戰(zhàn)
      數(shù)據(jù)控制者的權(quán)利與限制
      堅決打好污染防治攻堅戰(zhàn)
      你愿意當(dāng)吸血鬼還是僵尸?
      App已死?80%的僵尸應(yīng)用帶來的困惑
      新聞傳播(2015年6期)2015-07-18 11:13:15
      對抗塵污染,遠離“霾”伏
      都市麗人(2015年5期)2015-03-20 13:33:49
      独山县| 平武县| 周口市| 呼和浩特市| 石阡县| 诸暨市| 吴堡县| 康保县| 永定县| 武宣县| 图片| 绥芬河市| 建昌县| 逊克县| 吉首市| 德格县| 邻水| 广元市| 宜黄县| 襄樊市| 永川市| 泸州市| 电白县| 金堂县| 山丹县| 潼南县| 铜陵市| 长海县| 额尔古纳市| 如东县| 和平区| 弥勒县| 新津县| 任丘市| 东乡族自治县| 巨野县| 清河县| 鹤山市| 神木县| 安溪县| 康乐县|