【賽迪網-IT技術報道】DDoS攻擊的主要手段是通過大於管道處理能力的流量淹沒管道或通過超過處理能力的任務使系統癱瘓,所以理論上只要攻擊者能夠獲得比目標更強大的「動力」,目標是注定會被攻陷的。對於DDoS攻擊來說並沒有100%有效的防禦手段。但是由於攻擊者必須付出比防禦者大得多的資源和努力才能擁有這樣的「動力」,所以只要我們更好的瞭解DDoS攻擊,積極部署防禦措施,還是能夠在很大程度上緩解和抵禦這類安全威脅的。
增強防禦力
對抗DDoS攻擊一個很重要的要素就是增強自身的防禦能力。使用更大的帶寬及提升相關設備的性能是面對DDoS攻擊最直接的處理方法。雖然這必定需要耗用一定的資源,但是對於那些將生存寄托於這些在線系統的企業來說,進行這種投入是具備足夠理由的。只是在執行這類「硬性增幅」的時候,我們需要把握適度的原則。
因為我們的資源是有限的,如果增加100%的投入僅能在相關性能及DDoS防禦力上獲得10%的提升,明顯是一種得不償失的處理方式,畢竟這並不是我們僅有的選擇。而且攻擊者的資源同樣是有限的,在我們增加防禦強度的同時,就意味著攻擊者必須集合比原來多得多的攻擊傀儡機來實施攻擊,並且會提高攻擊者暴露的風險。不過應該記住的是,真正有效的DDoS防禦並不是陷入與攻擊者「角力」的惡性循環當中,而是應該綜合各種方法,為攻擊者設置足夠的障礙。 ・
目標系統處理
攻擊者的最終目標可能是一台主機,也可能是一台網絡設備。除了對其目標的硬體能力進行增強之外,我們同樣應該充分發揮系統自身的潛能,通過對目標系統的針對性處理,可以有效地放大現有資源的能量。最基本的任務是做好更新補丁的工作。特別是一些操作系統的通訊協議堆棧存在著問題,很容易成為拒絕服務攻擊的利用對象。因為利用漏洞實施拒絕服務攻擊相對於純粹的設施能力比拚要容易的多。如果不能保證消除明顯可被拒絕服務攻擊利用的漏洞,其它的防禦工作將只能成為擺設。
好在現在各類系統的補丁更新速度還是比較令人滿意的,只要根據自身環境的情況注意對相關係統的補丁發佈情況進行跟蹤就可以了。一些經常被使用的方法還包括限制連接隊列的長度以及減少處理延時等。前者可以緩解系統資源的耗盡,雖然不能完全避免「拒絕服務」的發生,但是至少在一定程度上降低了系統崩潰的可能性。而後者能夠加強系統的處理能力,通過減少延時,我們可以以更快的速度拋棄隊列裡等待的連接,而不是任其堆滿隊列;不過這種方法也不是在所有情況下都有效,因為很多DDoS的攻擊機制並不是建立在類似SYN Flood這樣以畸形連接淹沒隊列的方式之上。
縱深防禦
攻擊者和目標通常並非直接相連,兩者之間要經過很多網絡節點才能進行通信。所以我們可以在受保護系統之前盡可能部署有效的屏障,以緩解系統的壓力。設置屏障最主要的工具就是防火牆,先進的防火牆產品能夠有效識別和處理資料包的深層內容,這樣有助於我們設置更加細緻的過濾。
現在有很多防火牆產品集成了反DDoS功能,進一步提高了對常見DDoS攻擊包的識別能力(比如常見的專業級抗DDOS攻擊的冰盾防火牆)。這樣的產品可以在很大程度上增強DDoS防禦能力,並且可以做到不對資料包進行完全檢查就可以發現「惡意行為」。這是非常有幫助的能力,因為如果判斷DDoS攻擊所耗費的處理越少,就越不容易被耗盡處理能力,從而極大的增加攻擊者的成本。包括很多路由器產品在內的網絡設備都具備一些_blank">防火牆功能,我們應該盡可能充分的利用。
特別是路由器本身負責對資料流進行導向,應盡可能將其置於「前哨」位置。這樣既可以起到禦敵於千里之外的作用,又可以靈活地將攻擊包導向到其它無害的位置甚至化攻擊於虛無。當然,攻擊者對這些防禦層也會有或淺或深的體認,不會一味地以目標系統作為惟一的打擊點,他們很可能會在受到這些設施的阻撓之後轉而組織針對這些設施的攻擊,這就需要我們動態的對防禦設施進行調整,隨機應變。
除了以上這些基礎的方法和工具之外,還有一些更高級的技巧可以利用,例如我們可以進行冗余設計,以在系統癱瘓於攻擊發生時有可以隨時啟用的應急機制;也可以部署一些陷阱部件,既可以用於吸引攻擊流量,也可以對攻擊者起到一定的迷惑作用。
知己者勝
其實在對我們進行安全防禦時,最重要的因素之一是對系統的透徹瞭解。例如我們必須清楚地知道系統對外開放了哪些服務,哪些訪問是被禁止的。同時,當有DDoS攻擊跡象發生的時候,我們也應該很好地判斷攻擊利用了系統的哪些處理機制。雖然我們已經聽過無數人無數次的重複「關閉不必要服務」,但顯然其重要性仍未被充分認知。
有時一個端口沒有開放我們就認為其處於安全狀態,其實事實並非如此。很多時候,一些關閉的端口由於設計上的原因仍會響應某些查詢,這一點經常被DDoS攻擊所利用。攻擊者通過向這些看似沉睡的端口發送海量的查詢耗盡目標系統的資源從而達到自己的目的。我們經常利用一個稱為Shields UP!!的基於Web接口的工具檢查端口的真實狀態。
我們在一台聯網的工作站上登錄其頁面並執行All Service Ports檢測,返回的結果頁會列出從0到1055端口狀態的方格圖,綠色的小塊兒表示該端口處於安全的隱秘(Stealth)狀態,將不會對外界做出任何響應。如果小塊兒是代表危險的紅色,說明該端口處於開放狀態。而如果小塊兒是藍色的話,說明該端口處於關閉狀態,雖然大部分程序無法使用這些端口,但不代表其絕對安全。通過類似的工具我們可以更透徹的瞭解我們暴露在網絡上的都是什麼,也才能進行真正有效的處理,同時不會忽視存在的隱患。
(