僵尸網絡(Botnet)的演變與防御
【51CTO.com 綜合消息】僵尸網絡(botnet)有兩個前提,首先僵尸網絡客戶端必須能夠在黑客不必登錄操作系統的前提下仍可執行黑客指定的操作;其次,僵尸網絡客戶端們必須能夠協同實現某一目標,而這一協同僅需要黑客的最小參與甚至零參與。滿足以上兩個條件的計算機集合成為僵尸網絡。
典型的僵尸網絡一般包含一個bot服務器和多個bot客戶端。僵尸網絡的控制者稱為botherder(herder即牧人之意)Bot服務器和客戶端之間通過一個遠程命令和控制服務器(C&C server)使用IRC通道進行通信。
僵尸網絡是當前發起DDoS攻擊的主力軍,同時也是垃圾郵件重要的源頭。以典型的DDoS攻擊為例,第一步,新的僵尸網絡客戶端加入預設的IRC通道并監聽命令;第二步,botherder發送命令信息到IRC服務器;第三步,所有僵尸網絡客戶端通過IRC通道獲取該命令;第四步,所有僵尸網絡客戶端對指定目標執行DDoS攻擊;第五步,僵尸網絡客戶端報告執行的結果。
從上述步驟不難看出為何僵尸網絡成為黑客的最愛:他可以完全隱藏在所有的攻擊行為之后,發起攻擊的計算機和控制服務器都不是他自己的計算機,他只需注意使用混淆方式或加密方式通過IRC通道發送命令即可。事后也可簡單通過切斷和IRC服務器之間的連接并抹去痕跡即可置身事外,而從遭受攻擊的一方反向追蹤到黑客則極為困難而且線索隨時可能中斷難以繼續。
以美國和韓國部分網站在今年7月遭受的大規模DDoS攻擊為例,攻擊者即是利用僵尸網絡發起攻擊,并在僵尸網絡客戶端進行設置,在攻擊結束后自行銷毀客戶端的程序。這類攻擊方式手法隱蔽、效果突出、代價低廉,已經成為互聯網的主要威脅之一,也是安全管理所需要重點了解和防御的黑客手段。
僵尸網絡的演變
僵尸(bot,即Robot的簡寫)其實最早出現是作為一個管理輔助工具,并沒有惡意目的。首先在1988年IRC得以發明;1989年Greg Lindah寫了第一個IRC bot用于在管理員下線時和其他IRC用戶交互;1999年出現了第一個利用IRC 服務器進行遠程控制的蠕蟲Pretty Park,該蠕蟲堪稱僵尸網絡技術的奠基者,它包含的一些功能即使在現在仍在廣泛使用。例如:獲取主機信息、搜索用戶名密碼等敏感信息、自我更新、上傳下載文件、重定向通信、發起拒絕服務攻擊等等。
2000年GT Bot出現,包含了端口掃描、泛洪攻擊和復制自身的功能;2002年SD Bot出現標志著技術發展的另一個重要里程碑,它用盡各種方法進行攻擊,包括Netbios、RPC等等服務也包括各種后門,一旦攻擊成功即開始下載SD Bot,它之后的bot程序繼承了這一“優點”,每一個都集成了之前所有的傳播方式,每一個都是各種攻擊手段的集大成者。
2002年的另一個bot程序Agobot則帶來了另一重要改進:模塊化設計,第一個模塊僅包含簡單的IRC bot程序,第二個模塊關閉防毒軟件進程,第三個模塊阻止用戶訪問某些Web站點(防毒軟件網站),每一個模塊在執行完本身功能之后即可下載下一個模塊,這一設計使得bot程序的變種很快就數以千計地出現;2003的Spybot的意圖非常明顯,就是竊取敏感信息以用于進一步目的(如獲取利益)。
至此僵尸網絡的主要技術已經成熟,新的僵尸程序即利用這些前輩的成果進一步結合其目的,將最新的漏洞、P2P、網站掛馬等技術或途徑作為其傳播手段,將最新的加密或混淆技術用于其命令通道,從而為攻擊者作倀。
僵尸網絡的數量變化趨勢
在2009年第一季度,McAfee Lab檢測到全球將近有 1200 萬個新 IP 地址是以“僵尸計算機”(受垃圾郵件制造者或其他人控制的計算機)的形式存在的。與 2008 年第四季度相比,這一數字已顯著增加,增幅接近 50%。2008 年第三季度新增的僵尸計算機數量就已創下歷史記錄,但仍比2009年第一季度少 100 萬臺。
在2009第一季度以及2008年后下半年兩個季度里,受黑客控制的僵尸計算機數量一直居高不下,僵尸網絡的前十名國家中,美、德、韓、英、西和金磚四國也是榜上的???。
僵尸網絡的防御
McAfee Lab的研究人員對于僵尸網絡進行長期的檢測和研究得出結論,無論是早期的各種bot客戶端,還是最新的利用掛馬等手段進行傳播的新型僵尸網絡,要實現對于僵尸網絡的全面防御,一般而言,必須結合網絡和主機的不同防護手段,從而實現分層的防御,以斬斷僵尸網絡的黑手。
在主機(桌面機)層面,需要安裝包含多種防御手段的安全客戶端,一般而言出于避免成為僵尸網絡客戶端的目的,該桌面機的客戶端應包括如下功能:防火墻(阻斷掃描和未授權連接)、主機入侵防御(阻斷利用漏洞的網絡攻擊)、防毒程序(清除后門等病毒程序)、防間諜軟件和惡意軟件(清除各種spyware和malware)以及良好的補丁管理習慣或系統。
現實中實現桌面安全客戶端的主要難點在于較大的系統開銷,由于引入了多重安全功能,企業用戶往往會選擇一個以上廠商的安全產品,這通常會帶來可能的沖突、較大的系統資源占用和復雜的管理方式,同時不同安全廠商的產品之間可能存在技術空隙,這也可能會造成蠕蟲客戶端的乘虛而入。桌面安全防護的另一個不足之處在于難以改變用戶的行為,用戶可能會有意或無意地禁用或旁路某些安全模塊,或者訪問某些惡意網站(如掛馬網站),僵尸網絡客戶端從而可以從容地下載到桌面機上,通過先行下載的無害模塊或難以檢測的模塊(Rootkit)關閉桌面安全客戶端,然后繼續下載其功能模塊執行各種功能。
當然,如果不采用多種功能的桌面安全客戶端,也可通過瘦客戶端或者限制桌面用戶權限等其他方式應對僵尸網絡攻擊,但是這種管理方式對于IT管理人員的要求較高,同時也會影響內部人員的工作效率,這種方式并不適用于每個企業。
這就需要通過網絡安全技術切斷僵尸網絡通向企業網絡的傳播途徑。以近期最危險的僵尸網絡程序之一Torpig為例,該僵尸網絡程序的目的就是竊取身份認證信息、信用卡、銀行賬號和支付寶賬戶等。
步驟1:桌面機客戶訪問某一Web服務器,該Web服務器由于存在漏洞,被Torpig感染;
步驟2:Torpig通過iframe方式修改用戶的瀏覽器訪問;
步驟3:重定向之后,桌面機客戶的Web訪問指向了Mebroot下載服務器;
步驟4:Mebroot下載服務器將Mebroot、注入DLL等下載到桌面機,該桌面機成為僵尸網絡客戶端;
步驟5:每兩小時,該僵尸網絡客戶端和Mebroot C&C服務器聯系;
步驟6:Torpig DLL注入到IE、Firefox等瀏覽器中,Outlook郵件客戶端,Skype和即時通訊軟件中;
步驟7:每20分鐘,將竊取的身份認證信息、信用卡、銀行賬號和支付寶賬戶上傳到Torpig C&C服務器上;
步驟8:Torpig C&C服務器下發包含銀行域名、新的C&C服務器300個域名等信息的配置文件;
步驟9:僵尸網絡客戶端訪問注入服務器;
步驟10:注入服務器發送釣魚HTML文件到僵尸網絡客戶端。
值得注意的是,除了已知的各種技術,Torpig僵尸網絡使用了一些新的技術,使得防范和反向追蹤變得更為困難,如Mebroot下載服務器的路過式(Drive-by)感染,還有域名流動技術以隨時變更C&C服務器。
要切斷Torpig的傳播,一種方法就是切斷其與Torpig C&C服務器的聯系,但是由于其域名流動技術使得該操作變得異常困難。加州大學圣巴巴拉分校(UCSB)的研究小組表現出了相當的耐心的才能。發現Torpig僵尸網絡在確定攻擊目標時使用的算法,提前計算出了Torpig將很快檢查的域名,并特意在名聲不好的域名提供商那里購買了這些域名。從而順利地“接管”了一個龐大的Torpig僵尸網絡長達10天。但是僵尸網絡控制者查覺后,使用了新版的Torpig,改變了僵尸網絡選擇域名的算法,這一方法已經不再奏效。另外,這種預測并接管的方法過于復雜并且相對而言比較被動,并不適合企業使用。
McAfee Lab的研究人員通過在對應于前述Torpig僵尸網絡的感染途徑,該系統可以起到以下作用。
步驟1:屬于正常的Web訪問,無需阻斷;
步驟2:通過McAfee 入侵防護系統的漏洞保護功能,阻斷Torpig通過iframe方式修改用戶的瀏覽器;
步驟3:仍屬于正常的Web訪問,無需阻斷;
步驟4:通過McAfee 入侵防護系統的Artemis云安全技術,檢測并阻斷服務器下發的Rootkit和惡件,避免該桌面機成為僵尸網絡客戶端;
步驟5:屬于IRC通信,無需阻斷;
步驟6:通過McAfee 入侵防護系統的Artemis云安全技術,檢測并阻斷服務器下發的Torpig DLL,避免瀏覽器注入等攻擊;
步驟7:通過McAfee 入侵防護系統的行為檢測技術,檢測并阻斷每20分鐘的上傳竊取信息到 Torpig C&C服務器上;
步驟8:通過McAfee 入侵防護系統的行為檢測技術,檢測并阻斷Torpig C&C服務器下發的配置文件;
步驟9:屬于正常的Web訪問,無需阻斷;
步驟10:文件傳輸,無需阻斷。
通過這一方式,McAfee Lab研究人員成功地切斷了Torpig僵尸網絡的關鍵傳播途徑,即服務器端發起對客戶端的攻擊、服務器端下發Rootkit和惡件以及僵尸網絡客戶端和C&C服務器的信息傳輸,從而實現了在網絡層對于Torpig等僵尸網絡的防護。
為了進一步驗證該技術對于僵尸網絡的防護效果,McAfee Lab的研究人員和某運營商合作,在其某一網絡的出口部署了McAfee入侵防護系統,部署伊始發現該網絡中存在大量的僵尸網絡,McAfee 入侵防護系統中加入各種新的安全技術,從而實現了對于僵尸網絡的全面網絡防護,研究人員隨即啟用了入侵防護系統的阻斷功能,一段時間后,該網絡中的僵尸網絡數量明顯下降,這充分表明了這一技術可以成功地抵御僵尸網絡的威脅。
總結
通過上述的例子,我們可以知道僵尸網絡絕非無藥可解的頑疾。應對這一威脅,需要同時從網絡和主機兩個層面著手,而網絡和主機所需采用的產品或技術必須能夠覆蓋僵尸網絡攻擊和傳播的每一途徑,這樣既可免受僵尸網絡之害,創造良好的內部網絡環境,并為凈化互聯網安全做出一份貢獻。