search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

淺談拒絕服務攻擊的原理與防禦(6):拒絕服務攻擊的防禦

*原創作者:黑戈爾,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載

0×01前言

系列回顧

DDOS攻擊是每個需要對外提供服務的公司最大的威脅之一,尤其是新興的互聯網公司與電信運行商對此尤其看重,每個公司的網路安全組都必須具備一定的防禦DDOS攻擊的能力,不僅僅是會使用各個品牌的安全設備,更重要的是要有防禦DDOS攻擊的明確思路以及正確的方法,這樣才能保證自己的公司不被黑客破壞、勒索。

任何需要通過網路提供服務的業務系統,不論是處於經濟原因還是其他方面,都應該對DDoS攻擊防護的投資進行考慮。大型企業、政府組織以及服務提供商都需要保護其基礎業務系統(包括Web、DNS、Mail、交換機、路由器或是防火牆)免受DDoS攻擊的侵害,保證其業務系統運行的連續性。雖然DDoS防護需要增加運營成本,但是從投資回報率上進行分析,可以發現這部分的投資是值得的。接下來我將詳細講解一下在企業層面和運營商層面防禦主流DDOS攻擊的思路。

0×02 企業層面的防禦

在企業層面上防禦DDOS攻擊目的比較明確,就是保障自身的服務在攻擊過程中不受明顯的破壞,但由於企業自身能力有限,有時候必須求助電信運營商幫助才能清洗較大流量。

SYN FLOOD的防禦

Random Drop:隨機丟包的方式,這種是最簡單但是效果也最不理想的方法,會對用戶的體驗造成很大影響,如果在垃圾流量比例較高時,會使大量用戶無法獲得服務,這種方法不推薦只有在萬不得已情況下(例如伺服器瀕臨死機)才能使用。

首報文丟棄:對所有首次發來的syn包丟棄,如果是真是由用戶會刷新再次連接,第二次就可以成功通過,如果是軟體隨機生成的就不會再次 重試,但是如果對於那種一次發兩個到多個報文的攻擊就會失去效果,可以改進演算法使用首秒丟棄,一秒對於用戶來說不算長,但是對於攻擊的軟體來說一秒很久。

特徵匹配:在攻擊發生時統計攻擊報文的特徵,例如源IP、ID、TTL、flag標誌位、seq等欄位,然後丟棄與攻擊報文有相同特徵的報文,但是對於完全隨機的攻擊報文則無法防禦。

反向探測:企業伺服器前的安全設備ADS或者WAF對每一個syn請求的地址發起反向探測,探測syn請求的源地址是否真實存在,如果不存在即可斷開 半開連接。但是如果每個syn包再配一個ack包會使反向探測難度增大,使得效果降低。

cookie驗證:清洗設備收到syn報文時不向伺服器端轉發,而是由清洗設備直接給客戶端回復syn ack報文,同時在回復syn ack報文的序列號中攜帶隨機變化的cookie值,在收到客戶端的回復報文中檢查cookie值,如果檢查通過則是合法客戶端,允許訪問伺服器;而通常仿冒攻擊的客戶端沒有完整的TCP狀態機制,無法回復攜帶正確cookie的報文,因此無法通過清洗設備的cookie驗證,最終無法對伺服器形成攻擊,可以有效用於syn flood的防護

TCP 代理:這種方法能完美的解決syn flood攻擊,方法 就是在伺服器前增加一個代理機制,訪問伺服器的TCP連接先與代理進行三次握手,握手成功後代理再與伺服器進行三次握手,如果收到只有一個syn的半開連接,代理將不會與伺服器進行連接,從而保護伺服器不受到syn flood的攻擊,但是這種方法比較耗費TCP代理的資源,需要用專業的設備才行。如下圖:

SafeReset演算法

所有的SYN包均主動回應,回應包特意構造錯誤的欄位,真實存在的IP地址會發送reset包給防護設備,然後發起第2次連接,從而建立TCP連接。缺點是如果攻擊者的源IP可以偽造成互聯網上真實存在的IP,同樣也會回復reset,進而通過驗證。原理如下:

ACK FLOOD防禦

ack的防禦於syn防禦有很多的共通之處,再此我就不過多贅述。

特徵匹配:同syn的特徵匹配,計算攻擊包的 指紋對符合的包直接丟棄

TCP代理:TCP代理既能完美防禦syn攻擊也能防禦 ack攻擊,但是ack攻擊也會消耗TCP代理的大量資源。

帶寬限制:限制ack數據包的傳入帶寬,使數量不足以癱瘓伺服器。

cookie驗證:同syn cookie驗證。

CC攻擊的防禦

防禦cc攻擊的重點在於反欺騙,在海量的連接中需要分辨出攻擊流量與正常流量 ,如何分辨出攻擊流量與正常流量正是防 CC攻擊的難點。

協議棧行為分析:檢查數據流中的各標誌位是否符合RFC 規範,攻擊流量一般由黑客自定義隨機生成有可能會產生一些不符合規定 的報文,但是正常的應用程序產生的報文一般都會完全符合RFC的標準,所以一般違規的報文都是攻擊報文。

限制代理:cc攻擊一般都是通過代理伺服器發動的,藉助 代理伺服器可以輕易產生高併發數,在收到cc攻擊時可以臨時的禁止代理伺服器的訪問,檢查HTTP頭中是否包含X_FORWARDED_FOR,VIA,CLIENT_IP,XONNECTION,XROXY_CONNECTION等等Proxy服務加入的特徵字元, 如果有則丟棄該請求。

驗證碼:在登錄時使用隨機驗證碼 ,使得機器無法正常登錄。

IP連接限制:有時黑客會控制少量的主機模擬出大量的訪問,這時只需限制每個IP地址的連接數量就可大大減輕攻擊效果。

http cookie:在http response包里設置cookie 值,如果下次客戶端發出的數據包中攜帶此cookie值則為真實用戶,否則為假。

Botnet攻擊:目前沒有可行的辦法針對這種攻擊,因為攻擊方都是大量的真是存在的主機,只是受到黑客的控制同時訪問伺服器,不過這種botnet攻擊如果受控主機數量不太大那麼攻擊效果也不會太明顯。

UDP FLOOD防禦

這裡說的UDP是指小UDP包,這中UDP攻擊不是以大流量的形式攻擊目標,而是通過pps數量沾滿防火牆等設備的新生會話數以及路由設備的轉發數。正常情況下,UDP包的數量在雙向基本相等,UDP包的大小及內容是隨機的,如果出現UDP FLOOD攻擊,會使同一目標 IP 的 UDP包在一側大量突現,UDP包的大小及內容相對固定。UDP攻擊特徵明顯,只要發現攻擊讓流量清洗設備ADS開始清洗符合特徵的UDP流量,避免大量UDP包直接衝擊伺服器

反射型攻擊的防禦

反射性攻擊或者說所有的以大流量為手段的攻擊方式在用戶端基本都是無法防禦的,因為這些攻擊報文到達用戶的設備的時候,攻擊的目的已經達到了,阻塞和丟包是在運營商路由器介面處就發生了,抵禦這種攻擊最簡單的方法就是拔掉網線,動態路由協議快速收斂后失去目標路由使得攻擊流量路由不可達,不過這讓攻擊者達到了目的,但是卻使得同一IDC的其他用戶免受波及,一般IDC處理攻擊事件時也會採取這種方法。防禦反射攻擊最有效的方法就是購買運營商的清洗服務,比如電信的「雲堤」和阿里雲的「雲盾」,不過價格應該是不便宜啊。

企業安全整體防禦

如今的DDOS攻擊不會由單一種類的進攻,當然企業也不能單一的防禦,企業安全應該從整體考量,建立一個系統的全面的防禦體系。分層次的進行防禦。

定期掃描加固自身設備

盡量避免因為軟體漏洞而引起的拒絕服務,有時一個報文就能導致伺服器的宕機,定期掃描現有的主機和網路節點,對安全漏洞和不規範的安全配置進行及時整改,對先的漏洞及時打補丁

確保資源冗餘提高抵抗力

建立多節點的負載均衡,配備高於業務需求的帶寬,多個網路出口,提高伺服器的運算能力。

服務最小化

關閉不需要的服務和埠,實現服務最小化,讓伺服器專一提供服務。

明確並執行應急流程

提前演練被攻擊時的狀況,除人工處理外還應該包涵一定的自動化、半自動化的處理能力。

建立ADS流量清洗站

來自互聯網的攻擊混合流量試圖進入城域網內企業用戶端,而我們的清洗中心部署在城域網邊界。整個工作原理的核心就是這個智能識別凈化矩陣。

反欺騙:通過基於行為的智能反向探測,檢驗訪問的合法性;

然後是協議棧行為分析:檢查數據流中各標誌位是否符合RFC規範,不符合則直接阻斷;

特定應用防護:比如後端只為DNS或者WEB這些特定應用,那麼特定應用防護功能即只放行特定應用而阻斷干擾流量;

用戶行為模式分析:互聯網上應用流量呈現隨機特點,而在一次攻擊中,攻擊者如果採用固定模式、固定帶寬攻擊,在分析到這類攻擊后可實施阻斷;

動態指紋識別:根據檢查和生產攻擊指紋,匹配後期攻擊數據;

最後的流量限速:丟車保帥的策略,經過前期過濾發現流量都為正常訪問,但是仍然超出應用所能承受範圍,不得已丟棄部分流量,保全伺服器。經過矩陣后,保障交付給客戶的都是純凈流量。

企業安全防護思想的演進

DDoS防護的設計思想從最早的「堵塞」攻擊流量發展到現在的「疏導」。而部署方式也從單一的串聯模式,發展為旁路和串聯相結合的方式,針對不同的用戶、不同的環境,採用不同的部署方式。串聯模式適用於非運營商的用戶,在出口帶寬一般小於1-2G的情況下,採用專業抗DDoS串聯部署,提供精細化的小流量檢測能力,可以實時在線對DDoS進行清洗。

對於運營商或者大型網路,利用旁路部署技術,抗拒絕服務產品可以不必串聯在原有網路中,除了減少故障點,而且由於大多數帶寬不必實時通過抗拒絕服務產品,因此一個較小的抗DDoS清洗容量就可以適用於一個大帶寬的網路中,有效的降低投入成本。旁路工作原理如下:

1.攻擊檢測:通過配置鏡像介面或Netflow方式 感知到有攻擊流量,判斷是否有拒絕服務攻擊發生。

2.流量牽引:確定發生拒絕服務攻擊后,利用路由 交換技術,將原本要去往受害IP的流量牽引至旁路 ADS設備。被牽引的流量為正常流量與攻擊流量的混合流量;

3.攻擊防護/流量凈化:ADS設備通過多層次 的垃圾流量識別與凈化功能,將拒絕服務攻擊 的流量從混合流量中分離、過濾;

4.流量注入:經過ADS凈化之後的正常流量被重新注入回網路,到達目的IP。

採用旁路部署,具有以下優勢:

1.僅在IPS等安全設備報警時與之聯動,開始自動注入混合流量,平時正常情況下並不工作。

2.設備旁路部署即使ADS出現故障也不會影響網路連通性。

4.多機並用成倍提升清洗能力。

5.支持手動/自動牽引流量,讓安全工程師與安全設備互補。

0×03 運營商層面的防禦

一級運營商管理運營豐富的骨幹網帶寬資源,對於大流量及超大流量DDoS攻擊具有先天性的壓制優勢,運營商是整個網路的支撐者,所有的攻擊流量都必須通過運營商, 如果在運營商層面全面的打擊DDOS攻擊行為,將能起到一勞永逸的效果,所以我認為運營商應該扛起這份重任,打造 抗DDOS的堡壘。

對於運營商而言,保證其網路可用性是影響ROI的決定因素。如果運營商的基礎網路遭受攻擊,那麼所有承載的業務都會癱瘓,這必然導致服務質量的下降甚至失效。同時,在目前競爭激烈的運營商市場,服務質量的下降意味著客戶資源的流失,尤其是那些高ARPU值的大客戶,會轉投其他的運營商,這對於運營商而言是致命的打擊。所以,有效的DDoS防護措施對於保證網路服務質量有著重要意義。另一方面,對運營商或是IDC而言,DDoS防護不僅僅可以避免業務損失,還能夠作為一種增值服務提供給最終用戶,這給運營商帶來了新的利益增長點,也增強了其行業競爭能力。

源IP驗證目前大部分的DDOS攻擊都會使用偽造的IP地址,尤其是反射型的DDOS攻擊,如果不使用偽造的IP將無法攻擊,如果運營商在全網開啟源IP的校驗,是不偽造的IP無法進入互聯網則可以從源頭上制止DDOS攻擊。比如目前電信已經全面開啟了鬆散uRPF,這有效的防止了偽造源地址的攻擊行為。

使用溯源技術因為在全網開展源地址驗證可能會難度很大,但是防DDOS的關鍵又在源地址上,所以應該使用各種溯源技術,在攻擊發生時迅速找到攻擊源,取證並切斷攻擊源的網路,使攻擊止於源頭。

我認為對於普通用戶的網路接入應盡量給與私網IP地址,然後通過NAT多個用戶公用同一IP,這樣第一節省了IP地址,第二,普通用戶發出的各種報文的源地址都會被NAT替換成真實的地址,防止源地址偽造。第三,也有利於普通用戶的安全,這相當於多了一道防火牆,能夠阻擋大部分來自公網的主動連接,比如掃描等行為。

或者把ip報文頭中未實際使用的部分,比如八位的QOS標誌、IP選項欄位,加入對來源標識功能,每個接入層的路由交換設備帶有不同的標緻,可以通過報文攜帶的不同標誌找到它的大體發送源。

加固自身基礎設備的安全性運營商一定要高度重視自身網路設備的安全性,不要讓網路設備成為反射放大器甚至被黑客控制,因為運營商在網路中起到只管重要的作用如果黑客遠程關閉一台核心交換機將比任何DDOS攻擊危害更大效果更明顯。

在全國建立流量清洗站為企業提供清洗服務在全國各個地區建立流量清洗站,清洗DDOS流量,並且為企業提供清洗服務,將DDOS流量轉入清洗站清洗,如遇特大型的DDOS攻擊,讓全國的清洗站共同分擔清洗流量

與大型雲計算公司合作雲計算公司有很大的計算能力,運營商有很大的帶寬資源,強強聯合能極大提升抗DDOS能力。

0×04 結語

在DDOS攻擊中,攻擊方和防禦方就像兩名棋局上的棋手,見招拆招,根據對方的改變而改變自己的攻擊/防禦方法,僅僅通過一種方式就打癱一個目標是很難實現的,僅僅靠ADS設備去自動的防禦所有的攻擊也是不現實呢,我認為不論實在攻擊還是防禦中,人都應該處在主導地位,通過安全人員的專業知識與經驗,合理的使用和配置防禦設備才能更好的防禦住來自於各方的各種DDOS攻擊。

備註:這篇文章是在我去年的畢業論文中截取的一段,現在我做了些簡單的修改,言語有些死板,專業知識也有些不足,還望各位莫要嫌棄,對文中的錯誤多多指正。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦