任斌++周亦敏
摘要:互聯網面臨安全隱患,而僵尸網絡是最嚴重的隱患之一。介紹了高速網絡環境下數據獲取與還原,總結了僵尸網絡檢測的組織架構,在此基礎上設計了僵尸網絡檢測系統,完成了IRC/HTTP Bot程序檢測。在階段性檢測算法基礎上設計了僵尸程序檢測算法。運用該算法捕獲并分析了15天內的監測數據,驗證了該系統的有效性。
關鍵詞:僵尸網絡;僵尸網絡檢測;IRC;HTTP;網絡安全
DOIDOI:10.11907/rjdk.171684
中圖分類號:TP309
文獻標識碼:A 文章編號:16727800(2017)010018903
0引言
僵尸程序是在Bot主機中運行的非法惡意程序,憑借融合各種形式的惡意代碼形成當前最為復雜的互聯網攻擊形式之一。平臺攻擊者通過僵尸網絡偷取關鍵信息,操控不計其數的Bot主機對互聯網上任意僵尸主機發起DDoS攻擊、釣魚攻擊、竊取用戶隱私、發送垃圾郵件,采取惡意欺騙手段獲取巨額經濟利益。
中國是全球感染僵尸主機數量最多的國家, 2015年全球范圍內檢測到的23 095起僵尸網絡發動的分布式拒絕服務攻擊中,中國占37%。2016年,賽門鐵克公司共檢測到2.5萬個僵尸網絡襲擊行為, 1月垃圾郵件比例為53.5%,比上年全年最低(6月)的49.7%高了將近4%。由此可以看出僵尸網絡活動依然很頻繁,網絡安全人員急需設計出一種切實可行的檢測方法來預防僵尸網絡的發展。
目前僵尸網絡檢測系統中,比較全面的有Gu等人完成的BotHunter[3]、BotSniffer[4]和BotMiner[1]。BotHunter系統以證據鏈關聯思想為基礎,把惡意Bot程序傳播過程理解為一臺內網主機和一臺或若干臺外網主機之間的信息共享鏈,第一次全面闡述了僵尸程序擴散過程。BotSniffer根據僵尸網絡終端活動時間與空間的相似度特征,成功檢測了IRC/HTTP僵尸網絡。BotMiner系統依據僵尸網絡程序具備傳播惡意程序這一特征,設計出基于聚類的流分析方法,檢測系統中網絡終端的惡意行為Aability與相似通信行為Cability。
1僵尸網絡檢測系統
僵尸網絡檢測系統包含4個組件:①數據獲取還原模塊;②規則產生模塊;③僵尸程序收集檢測模塊;④IRC僵尸網絡檢測模塊。
數據獲取模塊獲取內網與外網之間所有通信信息,對IP報文進行重組與TCP數據整合,還原HTTP/IRC協議數據包,傳遞到僵尸程序收集監測模塊進行處理。這里內網指系統正在監控和保護的網絡。
規則產生模塊中非法僵尸程序的獲取以蜜猴和蜜罐為核心,獲取惡意僵尸程序檢測所特有的活動事件,將其存入規則數據池。在僵尸網絡檢測系統中,網絡活動有命令控制服務器URL/IP查詢結果后回溯的payload[6],這兩類活動都基于P2P協議中僵尸網絡一事一議的特點。
收集檢測模塊必須依照匹配規則才能進行僵尸程序監視。檢測到僵尸網絡任何動態,都會及時更新日志,記錄日期、數據信息及匹配規則。
IRC僵尸網絡檢測模塊根據IRC僵尸網絡終端的動作特點進行檢測,一旦組件監聽到僵尸頻道就會實時更新日志信息,記載該頻道的服務器地址及終端IP數據消息。
2數據捕獲及還原
2.1數據分流
為了讓網絡消息處理性能更高效,必須對數據平均分配處理。數據分配計劃應做到以下兩點:①為了確保每個節點機的負載均衡,就要使數據流平均分配到每個節點機;②為了降低和取消每個節點機之間的信息依賴關系,就要確保每個TCP連接的數據都劃分到相同的節點機上。
在TCP/IP協議中,四元組被作為重要的分流控制參數。一方面確保相同源和目的地址的所有連接順利映射到一個節點機上,另一方面必須確保源參數與目的參數擁有相同的操作等級。滿足這個要求最合適的方式是進行異或操作,按照以下公式分配:
XOR (Sip,Dip,Sport,Dport) mod n
n為并行節點個數。
2.2數據捕獲
當前網絡監控系統大規模使用Libpcap[5]捕包平臺。Libpcap的最快處理速度是40kpps,該Libpcap[5]捕包平臺應用零拷貝技術可以成功完成數據捕獲,從而提高數據捕獲效率。在數據發送和數據接收過程中,如果采用零拷貝技術,就可保證數據包在應用程序的用戶緩沖區和網絡接口間順利交接,從而規避數據拷貝過程。
首先,采用Linux操作系統的內存映射機制。該內存機制將某一塊內核空間對應到虛擬地址空間,用該空間內的虛擬地址訪問對應的物理地址空間,從而使內存空間可被用戶和內核共同使用。其次,實現內核和網卡協調工作。為了更新一個虛地址到物理地址的映射表,就要在存儲空間的緩沖區塊建立一個索引,該索引可由虛擬設備組件來承擔。在處理地址解析問題時,通過拜訪虛擬設備模塊獲取所需目的地址,實現若干用戶登錄網絡接口和緩沖區,但該保護機制每次對網絡接口的修改只能限定為一個進程。最后,在中斷上加一個定時器。定時器可在修改驅動程序的過程中固定時間發生一次中斷,并且可同時對不同的數據文件進行處理。
2.3多線程并行TCP/IP協議棧
TCP/IP協議棧不同來源的信息流全部從通信線路上輸入,利用協議棧逐層解析,最終找到來自應用層的初始數據流,之后再反饋給對應的應用插件進行最終解析。
并行協議棧利用不同數據分發器,將捕包模塊獲取的數據流量包遵循既定規劃,分配到對應線程進行分析,再通過空閑單元探測器結束該線程釋放。每個TCP/IP協議棧線程分為一個協議棧狀態表與兩個信息隊列,兩個信息隊列分別用來存儲未處理數據塊和已處理數據塊。
3僵尸網絡檢測endprint
3.1協議解析
僵尸網絡檢測首先要識別IRC流和HTTP流,之后IRC流分配給IRC檢測算法進行分析,HTTP流分配給僵尸網絡檢測算法進行分析。IRC通信端口分布較廣,所以本文采用NICK關鍵字來區分IRC通信。當客戶端成功訪問服務器之后,會第一時間發送一條NICK命令用于標記IRC流。由于采用HTTP協議的數量較多,本文會檢測某一鏈接是否為HTTP流,如果無法確認則轉到HTTP Pending狀態,并進行流量包分析;如果判定為不是HTTP流,則再判定是否為IRC流,如果確認二者都不是,則丟掉該鏈接。
3.2IRC僵尸網絡檢測
對已經感染IRC Bot程序的主機,最大的困難在于如何發現該惡意程序。Bot廣泛使用IRC協議標準的TCP 6667端口,但這種端口較少使用,很難被發現。大多數情形是Bot很少處于靜止狀態,會不停地掃描、擴散,與此同時,系統網絡負載會大量增加,大量占用系統資源,導致機器反應明顯變慢,這和蠕蟲感染很相似。所以本文借鑒蠕蟲病毒檢測方法,采用蜜墻Snort數據控制Bot向外連接阻斷,控制本機的Bot僵尸程序。
來自外部網絡的IRC Bot數據包分為兩部分:①搜索數據包的Bot特征;②搜索IRC僵尸網絡聊天信道特征,并核對其信息。在蜜墻部分設計好必要的監視程序,設計流程如圖1所示。
圖1僵尸網絡監測流程
3.3HTTP僵尸網絡檢測
HTTP僵尸網絡檢測通過規則驅動檢測模塊實現, URL自動機和敏感內容自動機是從規則生成模塊產生的兩個匹配自動機。 URL自動機通過URL和IP地址產生關鍵字,通過返回信息或攻擊者發布命令產生自動機關鍵字。
目前經典的多模式匹配算法是AhoCorasick[10],通過該算法可以高效快速定位文本中出現的所有關鍵字,定位只需掃描一次便可。AhoCorasick算法具備兩個顯著特征:①運用該算法掃描時無需回溯;②時間復雜度為O(n),關鍵字的數量和長度對O(n)沒有絲毫影響。
設計URL自動機應考慮將URL的首部作為關鍵字,以確保分配到該網絡的共性域名。在創建敏感內容自動機過程中,將內容看作以一個字節為單位的二進制代碼,而不關心具體編碼,確保理解密文。HTTP流分解后,需要用兩個自動機對關鍵字匹配。若匹配成功則認為該HTTP流屬于僵尸程序通信,將該HTTP流源地址和目的地址及匹配到的關鍵字存入規則庫;若匹配失敗,則判斷該流是無污染HTTP流而丟掉。
3.4僵尸程序檢測算法
根據兩階段檢測模型設計僵尸程序檢測算法如下:
輸入:時間差閾值Tt,己訓練分類器CSVM,監控進程列表{P}
輸出:僵尸程序列表{B}
初始化,{B}=,{P} =;
啟動自動連接監控,當出現DNS查詢活動時,提取對應進程相關參數(T,S,F),其中T=Tkm-TDNS,S為鍵盤鼠標事件來源,F為進程運行狀態,若滿足T
對{P}中進程,記錄其DNS反應行為,得到Sd={n2,n4,n5,n6},Sn={n1,nB};
計算H(Sd)=-∑ipilogpi,pi=ni∑ini,rate=∑ini∑ij=1nj,構成特征向量F=(H(Sd),rate),其中i=2,4,5,6;
將F=(H(Sd),rate)輸入分類器CSVM,得到分類結果;
若輸出結果為-1(代表僵尸程序),將對應進程名稱加入{B},結束
4實驗結果及分析
僵尸網絡檢測系統針對網絡流量進行捕獲,利用分光器通過監測兩個路由器的流量并加以復制,將該流量傳遞給數據分發機進行分析,分析后依照通信協議分配給相應的檢測機。系統每日檢測到的僵尸網絡控制服務器數目如圖2所示。IRC僵尸頻道數目比IRC控制服務器數目多,原因是多個僵尸信道可能處在相同的服務器中。但是HTTP僵尸信道數量和HTTP控制服務器數量卻一樣,是因為每個IP地址對應了不同的僵尸信道。僵尸網絡的使用權通常會出租或轉售,如果在同一個服務器中發現了多個僵尸頻道,則認為是同一人設計了這些僵尸頻道,排除了多個黑客共享一個服務器的可能。
圖2每日監測命令控制服務器
5結語
僵尸網絡是互聯網最嚴重隱患之一,本文研究并實現了大規模網絡環境下僵尸網絡檢測系統,完成了IRC/HTTP僵尸網絡檢測,通過實驗驗證了僵尸網絡活動階段。其中HTTP僵尸網絡不僅包括傳統的基于HTTP協議創建的惡意程序,還包括使用HTTP協議獲取命令的惡意程序。本文只做了一個初步的階段性工作,今后要進行更加深入的研究。
參考文獻參考文獻:
[1]G GU, R PERDISCT, J ZHANG, et al. BotMiner: clustering analysis of network traffic for protocoland structure independent botnet detection[C].Proceedings of the 17th USENIX Security Symposium. San Jose, CA,2008:139154.
[2]F JAHANIAN. Enter the botnet: an introduction to the postworm era[C].Proceedings of the ARODARPADHS Special Workshop on Botnets,2006.
[3]G GU, P PORRAS, V YEGNESWARAN. Bothunter detecting malware infection through IDSdriven dialog correlation[C].Proceedings of the 16th USENIX Security Symposium. Boston, MA,2007:167182.
[4]G GU, J ZHANG, W LEE. BotSniffer: detecting botnet command and control channels in network traffic[C].Proceedings of the 15th Annual Network and Distributed System Security Symposium. San Diego, CA,2008:269286.
[5]王佰玲,方濱興,云曉春.零拷貝報文捕獲平臺的研究與發現[J].計算機學報,2005,28(1):4751.
[6]羅浩,云曉春,方濱興.多線程TCP/IP還原技術的研究[J].高技術通訊,2003,13(11);1519.
[7]陳訓遜,方濱興,李蕾.高速網絡環境下入侵檢測系統結構研究[J].計算機研究與發展,2004,41(9):14811487.
[8]A KURMANN,F RAUCH, T STRICKEN. Speculative defragmentationleading gigabit ethernet to true zerocopy communicatio[J].Cluster Computing,2001,4(1):718.
[9]J RANTWIJK. Data transmission in the antares data acquisition system[D].De1ft,India:Delft University of Technology,2002.
[10]A AHO, M CORASICK. Efficient string matching: an aid to bibliographic search[J].Communications of the ACM,1975,18(6):333340.
責任編輯(責任編輯:杜能鋼)