關於Zombies和Script Kiddies:分佈式拒絕服務攻擊

學習如何識別和保護網絡服務器免受惡意的併發式服務請求所帶來的威脅

幾乎就在悉尼的夏季奧運會閉幕的同時,2002年鹽湖城冬奧會的售票量也陡然上升。非常顯著的事實是,Internet在這種粗糙的商業行爲的運作中,起的作用不再是重要,更是作爲支配性的角色出現的。在第一個星期過後,Internet上的交易量就佔了總售票量的85%。隨着Internet在我們的生活中佔據了愈加重要的地位,非常明顯的,網站的操作者們也愈發受到近來的DoS(拒絕服務)攻擊的嚴重威脅。儘管DoS並不是什麼新出現的攻擊手法,然而近些年來有太多的網站被捲入到了這種獨特的、帶有惡意的網站發展的夢魘中去——受到了DDoS(分佈式拒絕服務)的攻擊。

DDoS應當對一些衆所周知的電子商務的服務的中止負有責任,其中也包括ZDNet。DoS包括DDoS都能引起許多系統組件產生故障——CPU,防火牆,網絡的帶寬——而DDoS更具威脅,因爲它對服務器併發式、分佈式的請求被認爲是一種合法的通訊方式,因此就使得網站對這種攻擊更難以採取防護措施。

比較DoS和DDoS攻擊

DDoS的攻擊源自於Internet上的許多分佈的客戶機,而典型的DoS攻擊只是一臺單獨的客戶機對一個獨立的站點進行攻擊。Script Kiddies採用的普通DoS策略是使許多Ping(計算機命令)請求湧進服務器中。如果有足夠大的帶寬,那麼要壓制網絡服務器並且讓它喪失響應Ping請求的能力也是十分容易的事情。幸運的是,我們可以很容易的戰勝DoS的攻擊;因爲這種攻擊的信息流是可以被識別的,並且也有可能將其濾除。舉例來說,網絡管理員可以毫不費力地讓服務器端禁止對Ping的響應,因此也可以很輕鬆地在防火牆處濾除所有從攻擊者的IP地址處發來的請求。最終,當只有一臺機器受到影響時,網絡管理員可以輕鬆的追查到DoS攻擊的起源地址,這樣就更有可能對其進行起訴了。

然而從另一個角度而言,DDoS卻可以使上百臺無辜的計算機幫助它進行攻擊,使一個單獨的網站承負破壞性的負載。因爲這種有害的負載是從許許多多不同的源地址發出,所以要將這些攻擊信息流從合法的網絡交通中辨別出來就不是一件十分容易的事情了。

一般而言,DDoS攻擊使受害的服務器喪失了系統資源。例如,DDoS使用非定向連接協議如HTTP向服務器發送請求,卻從不中止請求。服務器在響應請求的同時,將爲每個請求分配一個線程和一塊內存,由於這種請求的發送從不自己結束,服務器就必須在釋放這些資源之前等待一段預先規定的時間。一次成功的DDoS攻擊包含着成百甚至上千的這樣的請求,每一個都將佔用一些資源並使得合法用戶不能訪問這臺服務器。






DDoS攻擊的工具包

在過去的一年裏DDoS攻擊不但變得十分平常,而且專家們也認爲它們造成影響將不斷地增長。這個攻擊行爲將增多的預言是根據DDoS工具包在Internet上越來越普及的情況下做出的。這些工具包可以使一個極爲平庸的駭客有能力實施攻擊行爲。其中一些十分平常的以及有文檔紀錄的工具包包括Tribe Force Network (TFN)、Trin00和Stacheldraht。

但是首先一個可能的攻擊者是如何使那麼多臺計算機參與進來的呢?一個惡毒的用戶有可能,例如使用被設計爲實施最終攻擊的zombie工具,在一段時間內對上百臺計算機造成危害。就如同你猜測的那樣,一段zombie程序可以一直潛伏着,直至被駭客所調用。比較有代表性的是一個惡意的用戶使用針對某一種操作系統或應用程序的破壞代碼對目標機器進行侵襲。其中許多的機器是校園裏學生管理的計算機,在這裏駭客可以四處遊逛,直至找到弱點。經驗表明,如果駭客決意進行攻擊並有充分的時間,那麼任何計算機都是可以被攻擊的。將校園作爲目標是因爲校園有相應的硬件,帶寬,以及CPU處理能力。而且十分普遍的是,他們的服務器總是不能及時運行發佈的補丁程序。

使用TFN工具包及其高級版本TFN2K,駭客可以通過內嵌在ICMP (Internet Control Message Protocol,Internet信息控制協議), UDP (User Datagram Protocol,用戶自尋址數據包協議), 以及TCP包數據域中的命令,將自己的客戶機連接到受到侵害的主zombie服務器上。數據域中的命令被加密並不易被識別出來。這臺客戶機可以藉助TFN2K進行祕密的活動,因爲TFN2K可以隨機指定其IP地址和端口,還可以發送誘餌包,這樣就更難以對它進行識別了。這臺客戶機指示着zombie服務器,給它一個目標讓它攻擊。它可以使用UDP, SYN (在TCP包中的一個標誌位), ICMP反射信號以及 ICMP廣播包。它的意圖只是要耗盡目標機的資源——CPU,內存和帶寬——使終端用戶關閉他們的計算機去做一些更有意思的事情,如看足球,釣魚,騎摩托或其他一些事情。

Trin00的出現已經歷了一年多的時間,並且擁有相當多的記錄。它可以分爲三個部分——一個駭客客戶端,一個被侵害的zombie服務器,以及一個在zombie服務器上運行的代理程序。駭客的客戶端實際上是一個zombie連接到27665端口的telnet(遠程登錄)或netcat。Zombie服務器對端口27665進行監聽並在端口31335進行廣播。它在與主程序連接時使用密碼"betaalmostdone" 和 "g0rave",同時也對Windows的版本進行查尋。如果是Windows系統則監聽端口34555,如果是Unix系統就監聽端口27444。在駭客的客戶端和zombie端,密碼通過UDP這個協議進行聯繫——對Unix 使用的密碼是"144adsl" ,對Windows 使用的密碼是"[]..ks"。Trin00有六個實施攻擊的命令——mtimer, dos, mdie, mdos, mping, msize。通過查尋從相同的IP地址和端口來的UDP數據包以及發送到不同的目標端口的數據包,可以探測到Trin00的存在。多個具有相同起源IP和目標IP的ICMP中“無法到達的端口”的字段也暗示着有端口掃描進行的動作。

和Trin00類似,Stacheldraht(德語“帶刺的鐵絲網”)也分爲三個部分。駭客的客戶機通過端口16660或60001連接到控制服務器上。數據包使用在源代碼中指定的密碼進行blowfish加密(一種64位的加密過程)——通常是單詞“sicken"。Zombie服務器處理客戶機和代理程序之間的通訊。在端口65000,ICMP的如同心跳似的回聲信號被用作連接主程序和代理程序之間的聯繫信號。ICMP包的ID域中包含數值666、667、668和669,在數據域中包括字符串如"skillz", "ficken" 和"spoofworks"。Zombie的代理端可以被指示對指定的IP地址和端口實施攻擊,也能夠接受遠端的升級指令。


識別和預防

目前,我們還沒有辦法消除這些破壞性攻擊的辦法,但是有一些預防性的措施可以減輕它們帶來的影響。網站管理員應當檢查端口並確定是那些應用程序在那些端口上運行。有一些工具可以掃描服務器上可用的端口,取得端口列表並確保所有暴露的或開放的端口都是我們所期望的。你可以檢查服務器上的處理和服務記錄,或者你也可以遠程登錄到端口中查看他們如何響應。舉例來說,如果它是一個Web(環球網)服務器,那麼它將用服務器的軟件名作爲迴應。你也可以對進入到你係統中的TCP/IP包中的內容進行分析。

還有一些其他的跡象也可以指示出即將到來的攻擊。如果在一臺服務器上所有的端口都被來自同一個IP地址的機器所掃描,那麼可能有人正試圖查看哪些端口是可用的。有一些工具可以對此類活動進行監測,並警告你可能發生的問題,但是如果事情真的發生了,那麼顯然機敏的網絡管理員是要看一看服務器的記錄文件的。通過查看記錄文件,管理員可以確定在連續的端口上連接被拒絕的類型——可以作爲某人試圖在服務器的盔甲上找到開口的證據。大多數的管理員只有在絕對必要的情況下才開放那些端口和服務。儘管如此,最精明的管理員還是要安裝IDS(Intrusion Detection System,入侵監測系統)。這些工具的功能十分的全面,並能夠對潛在的問題進行預警。Internet安全系統X-Force就是一個非常好的安全工具。許多大型的提供網絡服務的公司,如Exodus Communications,也能夠積極的爲客戶進行端口掃描的監測服務。那麼你,一個普通的家庭用戶,能夠如何保護自己,不使自己成爲DDoS攻擊者的從犯呢?很明顯,對安全補丁的安裝和升級就顯得十分的重要了。大多數的病毒監測軟件包也可以對與病毒類似的活動進行探測,例如那些想在你的系統中安裝程序的電子郵件信息或網頁。對於Windows系統的計算機,還有一些很好的個人防火牆,如BlackICE和ZoneAlarm,它們可以幫助你監測可疑的Internet活動。最後,你能做的最有價值的事情就是要隨時瞭解電子郵件和應用程序的來源。禁止腳本運行是另外一個有價值的措施。還有,不去運行每一個偶然進入你收件箱的應用程序也是一個非常不錯的主意。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章