在Botnet的概念中有這樣幾個關鍵字。“bot程式”是robot的縮寫,是指實現惡意控制功能的程式代碼;“殭屍計算機”就是被植入bot的計算機;“控制伺服器(Control Server)”是指控制和通信的中心伺服器,在基於IRC(網際網路中繼聊天)協定進行控制的Botnet中,就是指提供IRC聊天服務的伺服器。
Botnet
首先是一個可控制的網路,這個網路並不是指物理意義上具有
拓撲結構的網路,它具有一定的分布性,隨著bot程式的不斷傳播而不斷有新位置的殭屍計算機添加到這個網路中來。
其次,這個網路是採用了一定的惡意傳播手段形成的,例如主動漏洞攻擊,
郵件病毒等各種病毒與
蠕蟲的傳播手段,都可以用來進行Botnet的傳播,從這個意義上講,惡意程式bot也是一種病毒或
蠕蟲。
最後一點,也是Botnet的最主要的特點,就是可以一對多地執行相同的惡意行為,比如可以同時對某目標網站進行
分散式拒絕服務(DDos)攻擊,同時傳送大量的
垃圾郵件等,而正是這種一對多的控制關係,使得攻擊者能夠以極低的代價高效地控制大量的資源為其服務,這也是Botnet攻擊模式近年來受到
黑客青睞的根本原因。在執行惡意行為的時候,Botnet充當了一個攻擊平台的角色,這也就使得Botnet不同於簡單的病毒和
蠕蟲,也與通常意義的木馬有所不同。
殭屍網路是網際網路上受到
黑客集中控制的一群計算機,往往被黑客用來發起大規模的
網路攻擊,如
分散式拒絕服務攻擊(DDoS)、海量
垃圾郵件等,同時黑客控制的這些計算機所保存的信息,譬如銀行帳戶的密碼與社會安全號碼等也都可被黑客隨意“取用”。因此,不論是對
網路安全運行還是用戶數據安全的保護來說,
殭屍網路都是極具威脅的隱患。
殭屍網路的威脅也因此成為目前一個國際上十分關注的問題。然而,發現一個
殭屍網路是非常困難的,因為
黑客通常遠程、隱蔽地控制分散在網路上的“殭屍
主機”,這些主機的用戶往往並不知情。因此,
殭屍網路是目前網際網路上
黑客最青睞的作案工具。
對網友而言,感染上“
殭屍病毒”卻十分容易。網路上搔首弄姿的美女、各種各樣有趣的小遊戲,都在吸引著網友輕輕一點滑鼠。但事實上,點擊之後毫無動靜,原來一切只是騙局,意在誘惑網友下載有問題的軟體。一旦這種有毒的軟體進入到網友電腦,遠端
主機就可以發號施令,對電腦進行操控。
專家表示,每周平均新增數十萬台任人遙控的
殭屍電腦,任憑遠端主機指揮,進行各種不法活動。多數時候,
殭屍電腦的根本不曉得自己已被選中,任人擺布。
殭屍網路之所以出現,在家高速上網越來越普遍也是原因。高速上網可以處理(或製造)更多的流量,但高速上網家庭習慣將電腦長時間開機,唯有電腦開機,遠端
主機才可以對
殭屍電腦發號施令。
網路專家稱:“重要的硬體設施雖然非常重視防毒、防黑客,但網路真正的
安全漏洞來自於住家用戶,這些個體戶欠缺自我保護的知識,讓網路充滿地雷,進而對其他用戶構成威脅。”
Botnet的發展過程
Botnet是隨著
自動智慧型程式的套用而逐漸發展起來的。在早期的IRC聊天網路中,有一些服務是重複出現的,如防止頻道被濫用、管理許可權、記錄頻道事件等一系列功能都可以由管理者編寫的智慧型程式所完成。於是在1993 年,在IRC 聊天網路中出現了Bot 工具——
Eggdrop,這是第一個bot程式,能夠幫助用戶方便地使用IRC 聊天網路。這種bot的功能是良性的,是出於服務的目的,然而這個設計思路卻為黑客所利用,他們編寫出了帶有惡意的Bot 工具,開始對大量的受害
主機進行控制,利用他們的資源以達到惡意目標。
20世紀90年代末,隨著
分散式拒絕服務攻擊概念的成熟,出現了大量分散式拒絕服務攻擊工具如TFN、TFN2K和Trinoo,攻擊者利用這些工具控制大量的被感染
主機,發動分散式拒絕服務攻擊。而這些被控
主機從一定意義上來說已經具有了Botnet的雛形。
1999 年,在第八屆DEFCON 年會上發布的SubSeven 2.1 版開始使用IRC 協定構建攻擊者對殭屍主機的控制信道,也成為第一個真正意義上的bot程式。隨後基於IRC協定的bot程式的大量出現,如GTBot、Sdbot 等,使得基於IRC協定的Botnet成為主流。
2003 年之後,隨著
蠕蟲技術的不斷成熟,bot的傳播開始使用蠕蟲的主動傳播技術,從而能夠快速構建大規模的Botnet。著名的有2004年爆發的Agobot/Gaobot 和rBot/Spybot。同年出現的Phatbot 則在Agobot 的基礎上,開始獨立使用P2P 結構構建控制信道。
從良性bot的出現到惡意bot的實現,從被動傳播到利用
蠕蟲技術主動傳播,從使用簡單的IRC協定構成控制信道到構建複雜多變P2P結構的控制模式,Botnet逐漸發展成規模龐大、功能多樣、不易檢測的惡意網路,給當前的
網路安全帶來了不容忽視的威脅。
Botnet的工作過程
Botnet的工作過程包括傳播、加入和控制三個階段。
一個Botnet首先需要的是具有一定規模的被控計算機,而這個規模是逐漸地隨著採用某種或某幾種傳播手段的bot程式的擴散而形成的,在這個傳播過程中有如下幾種手段:
(1)
主動攻擊漏洞。其原理是通過攻擊系統所存在的漏洞獲得訪問權,並在Shellcode 執行bot程式注入代碼,將被攻擊系統感染成為殭屍主機。屬於此類的最基本的感染途徑是攻擊者手動地利用一系列
黑客工具和
腳本進行攻擊,獲得許可權後下載bot程式執行。攻擊者還會將
殭屍程式和
蠕蟲技術進行結合,從而使bot程式能夠進行自動傳播,著名的bot樣本AgoBot,就是實現了將bot程式的自動傳播。
(2)
郵件病毒。bot程式還會通過傳送大量的郵件病毒傳播自身,通常表現為在郵件附屬檔案中攜帶
殭屍程式以及在郵件內容中包含下載執行bot程式的連結,並通過一系列社會工程學的技巧誘使接收者執行附屬檔案或點擊連結,或是通過利用
郵件客戶端的漏洞自動執行,從而使得接收者主機被感染成為殭屍主機。
(4)
惡意網站腳本。攻擊者在提供Web服務的網站中在HTML頁面上綁定惡意的
腳本,當訪問者訪問這些網站時就會執行
惡意腳本,使得bot程式下載到
主機上,並被自動執行。
(5)
特洛伊木馬。偽裝成有用的軟體,在網站、FTP 伺服器、P2P 網路中提供,誘騙用戶下載並執行。
通過以上幾種傳播手段可以看出,在Botnet的形成中傳播方式與
蠕蟲和病毒以及功能複雜的間諜軟體很相近。
在加入階段,每一個被感染主機都會隨著隱藏在自身上的bot程式的發作而加入到Botnet中去,加入的方式根據控制方式和
通信協定的不同而有所不同。在基於IRC協定的Botnet中,感染bot程式的主機會登錄到指定的伺服器和頻道中去,在登錄成功後,在頻道中等待控制者發來的惡意指令。圖2為在實際的Botnet中看到的不斷有新的bot加入到Botnet中的行為。
在控制階段,攻擊者通過中心伺服器傳送預先定義好的控制指令,讓被感染主機執行惡意行為,如發起DDos攻擊、竊取主機敏感信息、更新升級惡意程式等。圖3為觀測到的在控制階段向區域網路傳播惡意程式的Botnet行為。
Botnet的分類
Botnet根據分類標準的不同,可以有許多種分類。
按bot程式的種類分類
(1)Agobot/Phatbot/Forbot/XtremBot。這可能是最出名的殭屍工具。
防病毒廠商Spphos 列出了超過500種已知的不同版本的Agobot(Sophos 病毒分析),這個數目也在穩步增長。殭屍工具本身使用跨平台的C++寫成。Agobot 最新可獲得的版本代碼清晰並且有很好的抽象設計,以模組化的方式組合,添加命令或者其他漏洞的掃描器及攻擊功能非常簡單,並提供像檔案和進程隱藏的Rootkit 能力在攻陷主機中隱藏自己。在獲取該樣本後對它進行
逆向工程是比較困難的,因為它包含了監測調試器(Softice 和O11Dbg)和
虛擬機(VMware 和Virtual PC)的功能。
(2)SDBot/RBot/UrBot/SpyBot/。這個家族的惡意軟體目前是最活躍的bot程式軟體,SDBot 由C語言寫成。它提供了和Agobot 一樣的功能特徵,但是命令集沒那么大,實現也沒那么複雜。它是基於IRC協定的一類bot程式。
(3)GT-Bots。GT-Bots是基於當前比較流行的IRC客戶端程式mIRC編寫的,GT是(Global Threat)的縮寫。這類殭屍工具用腳本和其他
二進制檔案開啟一個mIRC聊天客戶端, 但會隱藏原mIRC視窗。通過執行mIRC 腳本連線到指定的伺服器頻道上,等待惡意命令。這類bot程式由於捆綁了mIRC程式,所以體積會比較大,往往會大於1MB。
按Botnet的控制方式分類
(1)IRC Botnet。是指控制和通信方式為利用IRC協定的Botnet,形成這類Botnet的主要bot程式有spybot、GTbot和SDbot,目前絕大多數Botnet屬於這一類別。
(2)AOL Botnet。與IRC Bot類似,AOL為美國線上提供的一種即時通信服務,這類Botnet是依託這種即時通信服務形成的網路而建立的,被感染主機登錄到固定的伺服器上接收控制命令。AIM-Canbot和Fizzer就採用了AOL Instant Messager實現對Bot的控制。
(3)P2P Botnet。這類Botnet中使用的bot程式本身包含了P2P的客戶端,可以連入採用了Gnutella技術(一種開放源碼的
檔案共享技術)的伺服器,利用WASTE檔案共享協定進行相互通信。由於這種協定分散式地進行連線,就使得每一個殭屍
主機可以很方便地找到其他的殭屍主機並進行通信,而當有一些bot被查殺時,並不會影響到Botnet的生存,所以這類的Botnet具有不存在單點失效但實現相對複雜的特點。Agobot和Phatbot採用了P2P的方式。
Botnet的危害
Botnet構成了一個攻擊平台,利用這個平台可以有效地發起各種各樣的攻擊行為,可以導致整個基礎信息網路或者重要套用系統癱瘓,也可以導致大量機密或個人隱私泄漏,還可以用來從事網路欺詐等其他違法犯罪活動。下面是已經發現的利用Botnet發動的攻擊行為。隨著將來出現各種新的攻擊類型,Botnet還可能被用來發起新的未知攻擊。
(1)
拒絕服務攻擊。使用Botnet發動DDos攻擊是當前最主要的威脅之一,攻擊者可以向自己控制的所有bots傳送指令,讓它們在特定的時間同時開始連續訪問特定的網路目標,從而達到DDos的目的。由於Botnet可以形成龐大規模,而且利用其進行DDos攻擊可以做到更好地同步,所以在發布控制指令時,能夠使得DDos的危害更大,防範更難。
(2)傳送垃圾郵件。一些bots會設立sockv4、v5 代理,這樣就可以利用Botnet傳送大量的垃圾郵件,而且傳送者可以很好地隱藏自身的IP信息。
(3)竊取秘密。Botnet的控制者可以從殭屍主機中竊取用戶的各種敏感信息和其他秘密,例如個人帳號、機密數據等。同時bot程式能夠使用sniffer觀測感興趣的
網路數據,從而獲得網路流量中的秘密。
(4)濫用資源。攻擊者利用Botnet從事各種需要耗費網路資源的活動,從而使用戶的網路性能受到影響,甚至帶來經濟損失。例如:種植
廣告軟體,點擊指定的網站;利用殭屍主機的資源存儲大型數據和違法數據等,利用殭屍主機搭建假冒的銀行網站從事
網路釣魚的非法活動。
可以看出,Botnet無論是對整個網路還是對用戶自身,都造成了比較嚴重的危害,我們要採取有效的方法減少Botnet的危害。
Botnet的研究現狀
對於Botnet的研究是最近幾年才逐漸開始的,從反病毒公司到學術研究機構都做了相關的研究工作。最先研究和應對Botnet的是反病毒廠商。它們從bot程式的惡意性出發,將其視為一種由後門工具、
蠕蟲、Spyware 等技術結合的
惡意軟體而歸入了病毒的查殺範圍。著名的各大反病毒廠商都將幾個重要的bot程式特徵碼寫入到病毒庫中。
賽門鐵克從2004 年開始,在其每半年發布一次的安全趨勢分析報告中,以單獨的章節給出對Botnet活動的觀測結果。
卡巴斯基也在
惡意軟體趨勢分析報告中指出,
殭屍程式的盛行是2004年病毒領域最重大的變化。
學術界在2003年開始關注Botnet的發展。國際上的一些蜜網項目組和蜜網研究聯盟的一些成員使用蜜網分析技術對Botnet的活動進行深入跟蹤和分析,如Azusa Pacific大學的Bill McCarty、法國蜜網項目組的Richard Clarke、華盛頓大學Dave Dittrich和德國蜜網項目組。特別是德國蜜網項目組在2004年11月到2005 年1月通過部署Win32蜜罐機發現並對近100個Botnet進行了跟蹤,並發布了Botnet跟蹤的技術報告。
Botnet的一個主要威脅是作為攻擊平台對指定的目標發起DDos(
分散式拒絕服務攻擊)攻擊,所以DDos的研究人員同樣也做了對Botnet的研究工作。由國外DDosVax組織的“Detecting Bots in Internet Relay Chat Systems”項目中,分析了基於IRC協定的bot程式的行為特徵,在
網路流量中擇選出對應關係,從而檢測出Botnet的存在。該組織的這個研究方法通過在plantlab中搭建一個Botnet的實驗環境來進行測試,通過對得到的數據進行統計分析,可以有效驗證關於Botnet特徵流量的分析結果,但存在著一定的誤報率。
國內在2005年時開始對Botnet有初步的研究工作。北京大學計算機科學技術研究所在2005年1月開始實施用蜜網跟蹤Botnet的項目,對收集到的
惡意軟體樣本,採用了
沙箱、蜜網這兩種各有優勢的技術對其進行分析,確認其是否為
殭屍程式,並對殭屍程式所要連線的Botnet控制信道的信息進行提取,最終獲得了60,000 多個殭屍程式樣本分析報告,並對其中500多個仍然活躍的Botnet進行跟蹤,統計出所屬國分布、規模分布等信息。
國家應急回響中心通過863-917網路安全監測平台,在2005年共監測到的節點大於1000個的Botnet規模與數量統計如圖4所示。
這些數據和活動情況都說明,我國國區域網路上的Botnet的威脅比較嚴重,需要引起網路用戶的高度重視。
CCERT
惡意代碼研究項目組在2005年7月開始對Botnet的研究工作,通過對大量已經掌握的Botnet的實際跟蹤與深入分析,對基於IRC協定的Botnet的伺服器端的特徵進行了分類提取,形成對於Botnet 伺服器端的判斷規則,從而可以對網路中的IRC Server進行性質辨別。設計並初步實現了Botnet
自動識別系統,套用於中國教育和科研計算機網路環境中。
可以看出,從國內到國外,自2004年以來對Botnet的研究越來越多地受到網路安全研究人員的重視,研究工作已經大大加強。但是這些工作還遠遠不夠,在檢測和處置Botnet方面還有許多工作要做。
Botnet的研究方法
對於目前比較流行的基於IRC協定的Botnet的研究方法,主要使用蜜網技術、網路流量研究以及IRC Server識別技術。
(1)使用蜜網技術。蜜網技術是從bot程式出發的,可以深入跟蹤和分析Botnet的性質和特徵。主要的研究過程是,首先通過密罐等手段儘可能多地獲得各種流傳在網上的bot程式樣本;當獲得bot程式樣本後,採用
逆向工程等
惡意代碼分析手段,獲得隱藏在代碼中的登錄Botnet所需要的屬性,如Botnet伺服器地址、服務連線埠、指定的惡意頻道名稱及登錄密碼,以及登錄所使用到的用戶名稱,這些信息都為今後有效地跟蹤Botnet和深入分析Botnet的特徵提供了條件。在具備了這些條件之後,使用偽裝的客戶端登錄到Botnet中去,當確認其確實為Botnet後,可以對該Botnet採取相應的措施。
(2)網路流量研究。網路流量的研究思路是通過分析基於IRC協定的Botnet中殭屍主機的行為特徵,將殭屍主機分為兩類:長時間發獃型和快速加入型。具體來說就是殭屍主機在Botnet中存在著三個比較明顯的行為特徵,一是通過蠕蟲傳播的
殭屍程式,大量的被其感染計算機會在很短的時間內加入到同一個IRC Server中;二是殭屍計算機一般會長時間線上;三是殭屍計算機作為一個IRC聊天的用戶,在聊天頻道內長時間不發言,保持空閒。將第一種行為特徵歸納為快速加入型,將第二、三種行為特徵歸納為長期發獃型。
研究對應這兩類殭屍計算機行為的網路流量變化,使用離線和線上的兩種分析方法,就可以實現對Botnet的判斷。
(3)IRC Server識別技術的研究。通過登錄大量實際的基於IRC協定的Botnet的伺服器端,可以看到,由於攻擊者為了隱藏自身而在伺服器端刻意隱藏了IRC伺服器的部分屬性。同時,通過對bot原始碼的分析看到,當被感染主機加入到控制伺服器時,在伺服器端能夠表現出許多具有規律性的特徵。通過對這些特徵的歸納總結,就形成了可以用來判斷基於IRC協定的Botnet的伺服器端的規則,這樣就可以直接確定出Botnet的位置及其規模、分布等性質,為下一步採取應對措施提供有力的定位支持。
以上三種研究方法都是針對基於IRC協定的Botnet。對於P2P結構的Botnet的研究較少,原因是由於其實現比較複雜,在網路中並不占有太大比例,同時也因為其在控制方式上的分布性使得對它的研究比較困難。但隨著Botnet的發展,對於P2P結構的Botnet的研究也將進一步深入。