殭屍網路

發偽造包使目標癱瘓的網路病毒

殭屍網路(Botnet,亦譯為喪屍網路、機器人網路)是指黑客利用自己編寫的分散式拒絕服務攻擊程序將數萬個淪陷的機器,即黑客常說的殭屍電腦或肉雞,組織成一個個控制節點,用來發送偽造包或者是垃圾數據包,使預定攻擊目標癱瘓並“拒絕服務”。通常蠕蟲病毒也可以被利用組成殭屍網路。

簡介


殭屍網路
殭屍網路
“殭屍網路”指感染病毒的網際網路計算機群,常在犯罪分子遠程控制下發起大規模網路攻擊,如發送大量垃圾郵件、向網站實施分散式拒絕服務攻擊(DDos)和傳播惡意代碼。犯罪分子可隨意竊取“染病”計算機內的信息,如銀行賬戶、密碼。這些受感染的電腦被稱“肉雞”。
最早的殭屍網路出現在1993年,在IRC聊天網路中出現。1999年後IRC協議的殭屍程序大規模出現。
殭屍網路是指採用一種或多種傳播手段,將大量主機感染bot程序(殭屍程序),從而在控制者和被感染主機之間所形成的一個可一對多網路控制. 在botnet的概念中有這樣幾個關鍵詞。“bot程序”是robot的縮寫,是指實現惡意控制功能的程序代碼;“殭屍計算機”就是被植入bot的計算機;“控制伺服器(Control Server)”是指控制和通信的中心伺服器,在基於IRC(網際網路中繼聊天)協議進行控制的Botnet中,就是指提供IRC聊天服務的伺服器。

主要特點


殭屍網路
殭屍網路
殭屍網路是網際網路上受到黑客集中控制的一群計算機,往往被黑客用來發起大規模的網路攻擊,如分散式拒絕服務攻擊(DDoS)、海量垃圾郵件等,同時黑客控制的這些計算機所保存的信息,譬如銀行帳戶的密碼與社會安全號碼等也都可被黑客隨意“取用”。因此,不論是對網路安全運行還是用戶數據安全的保護來說,殭屍網路都是極具威脅的隱患。殭屍網路的威脅也因此成為目前一個國際上十分關注的問題。然而,發現一個殭屍網路是非常困難的,因為黑客通常遠程、隱蔽地控制分散在網路上的“殭屍主機”,這些主機的用戶往往並不知情。因此,殭屍網路是目前網際網路上黑客最青睞的作案工具。
首先是一個可控制的網路,這個網路並不是指物理意義上具有拓撲結構的網路,它具有一定的分佈性,隨著bot程序的不斷傳播而不斷有新位置的殭屍計算機添加到這個網路中來。
其次,這個網路是採用了一定的惡意傳播手段形成的,例如主動漏洞攻擊,郵件病毒等各種病毒與蠕蟲的傳播手段,都可以用來進行Botnet的傳播,從這個意義上講,惡意程序bot也是一種病毒或蠕蟲。
最後一點,也是Botnet的最主要的特點,就是可以一對多地執行相同的惡意行為,比如可以同時對某目標網站進行分散式拒絕服務(DDos)攻擊,同時發送大量的垃圾郵件等,而正是這種一對多的控制關係,使得攻擊者能夠以極低的代價高效地控制大量的資源為其服務,這也是Botnet攻擊模式近年來受到黑客青睞的根本原因。在執行惡意行為的時候,Botnet充當了一個攻擊平台的角色,這也就使得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首先需要的是具有一定規模的被控計算機,而這個規模是逐漸地隨著採用某種或某幾種傳播手段的bot程序的擴散而形成的,在這個傳播過程中有如下幾種手段:
(1)主動攻擊漏洞。其原理是通過攻擊系統所存在的漏洞獲得訪問權,並在Shellcode 執行bot程序注入代碼,將被攻擊系統感染成為殭屍主機。屬於此類的最基本的感染途徑是攻擊者手動地利用一系列黑客工具和腳本進行攻擊,獲得許可權後下載bot程序執行。攻擊者還會將殭屍程序和蠕蟲技術進行結合,從而使bot程序能夠進行自動傳播,著名的bot樣本AgoBot,就是實現了將bot程序的自動傳播。
(2)郵件病毒。bot程序還會通過發送大量的郵件病毒傳播自身,通常表現為在郵件附件中攜帶殭屍程序以及在郵件內容中包含下載執行bot程序的鏈接,並通過一系列社會工程學的技巧誘使接收者執行附件或點擊鏈接,或是通過利用郵件客戶端的漏洞自動執行,從而使得接收者主機被感染成為殭屍主機。
(3)即時通信軟體。利用即時通信軟體向好友列表發送執行殭屍程序的鏈接,並通過社會工程學技巧誘騙其點擊,從而進行感染,如2005年年初爆發的MSN性感雞(Worm.MSNLoveme)採用的就是這種方式。
(4)惡意網站腳本。攻擊者在提供Web服務的網站中在HTML頁面上綁定惡意的腳本,當訪問者訪問這些網站時就會執行惡意腳本,使得bot程序下載到主機上,並被自動執行。
(5)特洛伊木馬。偽裝成有用的軟體,在網站、FTP 伺服器、P2P 網路中提供,誘騙用戶下載並執行。通過以上幾種傳播手段可以看出,在Botnet的形成中傳播方式與蠕蟲和病毒以及功能複雜的間諜軟體很相近。
在加入階段,每一個被感染主機都會隨著隱藏在自身上的bot程序的發作而加入到Botnet中去,加入的方式根據控制方式和通信協議的不同而有所不同。在基於IRC協議的Botnet中,感染bot程序的主機會登錄到指定的伺服器和頻道中去,在登錄成功后,在頻道中等待控制者發來的惡意指令。圖2為在實際的Botnet中看到的不斷有新的bot加入到Botnet中的行為。
在控制階段,攻擊者通過中心伺服器發送預先定義好的控制指令,讓被感染主機執行惡意行為,如發起DDos攻擊、竊取主機敏感信息、更新升級惡意程序等。圖3為觀測到的在控制階段向內網傳播惡意程序的Botnet行為。

種類分類


(1)Agobot/Phatbot/Forbot/XtremBot。這可能是最出名的殭屍工具。防病毒廠商Spphos 列出了超過500種已知的不同版本的Agobot(Sophos 病毒分析),這個數目也在穩步增長。殭屍工具本身使用跨平台的C++寫成。Agobot 最新可獲得的版本代碼清晰並且有很好的抽象設計,以模塊化的方式組合,添加命令或者其他漏洞的掃描器及攻擊功能非常簡單,並提供像文件和進程隱藏的Rootkit 能力在攻陷主機中隱藏自己。在獲取該樣本后對它進行逆向工程是比較困難的,因為它包含了監測調試器(Softice 和O11Dbg)和虛擬機VMwareVirtual 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。

控制分類


(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還可能被用來發起新的未知攻擊。
(1)拒絕服務攻擊。使用Botnet發動DDos攻擊是當前最主要的威脅之一,攻擊者可以向自己控制的所有bots發送指令,讓它們在特定的時間同時開始連續訪問特定的網路目標,從而達到DDos的目的。由於Botnet可以形成龐大規模,而且利用其進行DDos攻擊可以做到更好地同步,所以在發布控制指令時,能夠使得DDos的危害更大,防範更難。
(2)發送垃圾郵件。一些bots會設立sockv4、v5 代理,這樣就可以利用Botnet發送大量的垃圾郵件,而且發送者可以很好地隱藏自身的IP信息。
(3)竊取秘密。Botnet的控制者可以從殭屍主機中竊取用戶的各種敏感信息和其他秘密,例如個人帳號、機密數據等。同時bot程序能夠使用sniffer觀測感興趣的網路數據,從而獲得網路流量中的秘密。
(4)濫用資源。攻擊者利用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規模與數量統計。這些數據和活動情況都說明,中國國內網上的Botnet的威脅比較嚴重,需要引起網路用戶的高度重視。
CCERT惡意代碼研究項目組在2005年7月開始對Botnet的研究工作,通過對大量已經掌握的Botnet的實際跟蹤與深入分析,對基於IRC協議的Botnet的伺服器端的特徵進行了分類提取,形成對於Botnet 伺服器端的判斷規則,從而可以對網路中的IRC Server進行性質辨別。設計並初步實現了Botnet自動識別系統,應用於中國教育和科研計算機網路環境中。
可以看出,從國內到國外,自2004年以來對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的研究也將進一步深入。

美國司法當局打擊殭屍網路


2011年4月13日,美國司法當局宣布,逮捕一個網路犯罪團伙13名成員。這些嫌疑人用惡意軟體遠程控制超過200萬台電腦,盜竊和詐騙案值估計超過1億美元。聯邦調查局和司法部當天發表聯合聲明,調查人員12日部分摧毀一個名為Coreflood的“殭屍網路”,查獲5台主控伺服器和29個網路域名,逮捕13名嫌疑人。一些調查人員說,嫌疑人過去10年藉助名為Coreflood的惡意軟體,利用美國微軟公司“視窗”操作系統漏洞,入侵全球大約233萬台電腦,其中185萬台在美國。調查人員已部分切斷“染病”電腦與主伺服器的聯繫。當Coreflood竊取用戶數據向主伺服器請求發送時,調查人員發出指令:“不發送,立即關閉。”執法部門向一家設在康涅狄格州的聯邦地區法院提起訴訟,指認嫌疑人實施銀行欺詐和非法入侵電子通信系統。

微軟賽門鐵克聯手打擊殭屍網路


2013年2月7日下午(北京時間)消息,微軟和賽門鐵克周三宣布,已對一個全球信息犯罪組織進行了打擊,關閉了該組織的伺服器。這些伺服器在用戶不知情的情況下控制了全球數十萬台PC。這一行動導致被惡意軟體感染的PC暫時無法在網際網路上進行搜索,不過微軟和賽門鐵克提供了免費工具,用於清除惡意軟體,同時將向被感染的計算機自動推送相關消息。