web安全之分佈式拒絕攻擊-ddos與防範方法

一、從DoS到DDoS 


    拒絕服務(Denial of Service,DoS)由來已久。自從有了Internet,就有了拒絕服務式攻擊方法。由於過去沒有大型網站或機構受到過這種攻擊,其劣性並不突出。直到2000年初,Yahoo!、eBay及Amazon等遭其暗算,它才露出廬山真面目。 
    DoS攻擊的方法是,惡意用戶會向服務器發送多個連接請求,使其呈滿負載狀態,並且將所有請求的返回地址進行僞造。這樣,在服務器企圖將認證結構返回給用戶時,它將無法找到這些用戶。此時,服務器只好等待。在服務器關閉連接後,攻擊者又會發送新的一批虛假請求,重複上一次過程,直到服務器因過載而拒絕提供服務。這些攻擊事件並沒有入侵網站,也沒有篡改或是破壞資料,只是利用程序在瞬間產生大量的網絡封包,讓對方的網絡及主機癱瘓,使正常使用者無法獲得主機及時的服務。 
    然而,年初攻擊Yahoo!的元兇還不是簡單的DoS,它區別於DoS的“絕妙”之處在於: 動員了大量“無辜”的計算機向目標共同發起進攻,採用了分佈式拒絕服務(Distributed Denial of Service,DDoS)攻擊手段。 
    DDoS把DoS又向前發展了一步,DDoS的行爲更爲自動化,它可以方便地協調從多臺計算機上啓動的進程,讓一股DoS洪流衝擊網絡,並使網絡因過載而崩潰。確切地講,DDoS攻擊是指在不同的高帶寬主機上安裝大量的DoS服務程序,它們等待來自中央客戶端的命令,中央客戶端隨後通知全體受控服務程序,並批示它們對一個特定目標發送儘可能多的網絡訪問請求。作爲攻擊者,必須通過telnet連接到他想利用的每一臺遠程主機上,並以用戶身份登錄,然後手工輸入命令,啓動每一臺主機向攻擊目標發送海量信息流。 


二、DoS的攻擊方法 


    對DoS而言,其攻擊方式很多,主要使用的攻擊有3種,分別是TCP-SYN flood、UDP flood和ICMP flood。 
    當用戶進行一次標準的TCP連接時,會有一個3次握手過程。首先是請求服務方發送一個SYN消息,服務方收到SYN後,會向請求方回送一個SYN-ACK表示確認,當請求方收到SYN-ACK後,再次向服務方發送一個ACK消息,這樣,一次TCP連接建立成功。但是TCP-SYN flood在實現過程中只進行前2個步驟:當服務方收到請求方的SYN-ACK確認消息後,請求方由於採用源地址欺騙等手段使得服務方收不到ACK迴應,於是,服務方會在一定時間處於等待接收請求方ACK消息的狀態。對於某臺服務器來說,可用的TCP連接是有限的,如果惡意攻擊方快速連續地發送此類連接請求,該服務器可用的TCP連接隊列將很快被阻塞,系統可用資源急劇減少,網絡可用帶寬迅速縮小,長此下去,網絡將無法向用戶提供正常的服務。 
    由於UDP(用戶數據包協議)在網絡中的應用比較廣泛,基於UDP攻擊種類也較多。如今在Internet上提供WWW和Mail等服務設備通常是使用Unix的服務器,它們默認一些被惡意利用的UDP服務,如echo和chargen服務,它會顯示接收到的每一個數據包,而原本作爲測試功能的chargen服務會在收到每一個數據包時隨機反饋一些字符,如果惡意攻擊者將這2個UDP服務互指,則網絡可用帶寬將很快耗盡。 


三、DDoS的攻擊方法 


    目前,我們知道的對網絡進行DDoS攻擊所使用的工具有:Trinoo、Tribe Flood Network(TFN)、TFN2k和Stacheldraht等。它們的攻擊思路基本相近。 
    1.Trinoo:它是基於UDP flood的攻擊軟件,它向被攻擊目標主機的隨機端口發出全零的4字節UDP包,在處理這些超出其處理能力垃圾數據包的過程中,被攻擊主機的網絡性能不斷下降,直到不能提供正常服務,乃至崩潰。它對IP地址不做假,此攻擊方法用得不多。 
    2.TFN:它是利用ICMP給代理服務器下命令,其來源可以做假。它可以發動SYN flood、UDP flood、ICMP flood及Smurf(利用多臺服務器發出海量數據包,實施DoS攻擊)等攻擊。TFN的升級版TFN2k的特點是:對命令數據包加密、更難查詢命令內容、命令來源可以做假,還有一個後門控制代理服務器。 
    3.Stacheldraht:對命令來源做假,而且可以防範一些路由器用RFC2267過濾。若檢查出有過濾現象,它將只做假IP地址最後8位,從而讓用戶無法瞭解到底是哪幾個網段的哪臺機器被攻擊。此外,它還具有自動更新功能,可隨軟件的更新而自動更新。  


四、怎樣對付正在進行的攻擊 


    如果用戶正在遭受攻擊,他所能做的抵禦工作非常有限。因爲在原本沒有準備好的情況下有大流量的災難性攻擊衝向用戶,很可能用戶在還沒回過神之際,網絡已經癱瘓。但是,用戶還是可以抓住機會尋求一線希望的。 
    首先,檢查攻擊來源,通常黑客會通過很多假的IP地址發起攻擊,此時,用戶若能夠分辨出哪些是真IP地址,哪些是假IP地址,然後瞭解這些IP來自哪些網段,再找網段管理員把機器關掉,即可消除攻擊。 
    其次,找出攻擊者所經過的路由,把攻擊屏蔽掉。比如黑客發射SNP包,用戶可把此包過濾掉。若黑客從某些端口發動攻擊,用戶可把這些端口屏蔽掉,以狙擊入侵。 
    最後一種比較折衷的方法是在路由器上濾掉ICMP(Internet Control Message Protocol)和UDP。ICMP用於提交錯誤和改變控制信息,常用來判斷網絡的連通性。 


五、如何事先預防攻擊  


1.用足夠的機器承受黑客攻擊。這是一種較爲理想的應對策略

2.充分利用網絡設備保護網絡資源。所謂網絡設備是指路由器、防火牆等負載均衡設備,它們可將網絡有效地保護起來。 
3.使用InexpressExpress Forwarding過濾不必要的服務和端口,即在路由器上過濾假IP 
4.使用Unicast Reverse Path Forwarding檢查訪問者的來源。它通過反向路由表查詢的方法檢查訪問者的IP地址是否是真,如果是假的,它將予以屏蔽。

5.過濾所有RFC1918 IP地址。RFC1918 IP地址是內部網的IP地址,像10.0.0.0192.168.0.0172.16.0.0,它們不是某個網段的固定IP地址,而是Internet內部保留的區域性IP地址,應該把它們過濾掉。 
6.限制SYN/ICMP流量。用戶應在路由器上配置SYN/ICMP的最大流量來限制 SYN/ICMP 封包所能佔有的最高頻寬,這樣,當出現大量的超過所限定的SYN/ICMP流量時,說明不是正常的網絡訪問,而是有黑客入侵。 


DDoS的防範

    到目前爲止,進行DDoS攻擊的防禦還是比較困難的。首先,這種攻擊的特點是它利用了TCP/IP協議的漏洞,除非你不用TCP/IP,纔有可能完全抵禦住DDoS攻擊。一位資深的安全專家給了個形象的比喻:DDoS就好象有1,000個人同時給你家裏打電話,這時候你的朋友還打得進來嗎? 

企業網管理員

     網管員做爲一個企業內部網的管理者,往往也是安全員、守護神。在他維護的網絡中有一些服務器需要向外提供WWW服務,因而不可避免地成爲DDoS的攻擊目標,他該如何做呢?可以從主機與網絡設備兩個角度去考慮。

主機上的設置
幾乎所有的主機平臺都有抵禦DoS的設置,總結一下,基本的有幾種:

· 關閉不必要的服務

· 限制同時打開的Syn半連接數目

· 縮短Syn半連接的time out 時間

· 及時更新系統補丁

網絡設備上的設置
企業網的網絡設備可以從防火牆與路由器上考慮。這兩個設備是到外界的接口設備,在進行防DDoS設置的同時,要注意一下這是以多大的效率犧牲爲代價的,對你來說是否值得。

.防火牆

· 禁止對主機的非開放服務的訪問

· 限制同時打開的SYN最大連接數

· 限制特定IP地址的訪問

· 啓用防火牆的防DDoS的屬性

· 嚴格限制對外開放的服務器的向外訪問

第五項主要是防止自己的服務器被當做工具去害人。

.路由器
Cisco路由器爲例

· Cisco Express Forwarding(CEF)

· 使用 unicast reverse-path

· 訪問控制列表(ACL)過濾

· 設置SYN數據包流量速率

· 升級版本過低的ISO

· 爲路由器建立log server

ISP / ICP管理員

     ISP / ICP爲很多中小型企業提供了各種規模的主機託管業務,所以在防DDoS時,除了與企業網管理員一樣的手段外,還要特別注意自己管理範圍內的客戶託管主機不要成爲傀儡機。

骨幹網絡運營商

      在2000年yahoo等知名網站被攻擊後,美國的網絡安全研究機構提出了骨幹運營商聯手來解決DDoS攻擊的方案。就是每家運營商在自己的出口路由器上進行源IP地址的驗證,如果在自己的路由表中沒有到這個數據包源IP的路由,就丟掉這個包。這種方法可以阻止黑客利用僞造的源IP來進行DDoS攻擊。不過同樣,這樣做會降低路由器的效率,這也是骨幹運營商非常關注的問題,所以這種做法真正採用起來還很困難。

 

轉載自:http://www.bingdun.com/ddostech/601.htm

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章