標籤:
DDOS安全產品常用防禦體系和方案傳統方案
早期的DDOS防禦是通過防火牆和路由器來檢測和實現的,這樣的方案對早期的攻擊有著一定的防護效果,防火牆對於協議層的防護是很有效果。然而互連網的發展使DDOS攻擊的技巧性越來越高,而且攻擊能力也越來越強,使用防火牆防禦DDOS顯然力不從心:
- 防火牆和路由器只有在針對協議層攻擊時才會有效,而越來越多的DDOS攻擊是應用程式層面上;
- 防火牆不是專門為DDOS而設計的,用來為DDOS做流量監控清洗會在效能上影響防火牆正常功能,這對防火牆來說是個不必要的考驗;
- 大型網路的部署和擴容遠比軟體升級複雜,通過程式發起的DDOS攻擊,比網路裝置的防禦更為靈活;
就像前面提到的一樣,DDOS的防禦沒有絕對有效方案,儘管大型互連網環境渴求越來越多的防禦方案,但目前大型互連網系統的防禦更多的是各種方案的組合。
前面提到過,防禦DDOS的防禦是一種半自動的流程,所謂DDOS防禦體系,無非是流量檢測+異常流量清洗+策略規則+控制系統+人工處理。
流量檢測
流量檢測目前有兩種技術,DPI(Deep Packet Inspection深度包檢測)和DFI(Deep/Dynamic Flow Inspection,深度/動態流檢測),兩種技術各有千秋。
DPI
傳統流量分析僅僅通過對IP包頭中的五元組資訊進行分析,包含源地址、目標地址、源連接埠、目的連接埠及協議類型等4層以下的基本資料,而DFI是一種基於應用程式層的流量檢測和控制技術。該技術通過對IP包內容讀取,對IOS7協議中應用程式層資訊進行重組擷取應用程式的內容。按協議類型,DPI識別劃分三類:
- 協議特徵字識別技術
不同應用採用不通過協議,這些協議通常具有其特殊指紋(如特定連接埠、字串、bit序列等),可以通過識別報文中的這些指紋資訊確定業務承載應用;以使用者熟知的BT為例,其Handshake的協議特徵字為“。BitTorrent Protocol”;
- 應用程式層網關識別技術
如果業務流沒有任何特徵,可以使用應用程式層網關識別技術。通過應用程式層網關識別出控制流程,再根據控制流程協議選擇特定應用程式層網關對業務流進行解析,識別出對應的業務流。比如通過檢測SIP(工作階段初始通訊協定)/H323的協議互動擷取完成RTP(即時傳輸協議,Real-time Transport Protocol)資訊;
- 行為模式識別技術
行為模式主要用於無法根據協議判斷業務的情況。比如垃圾郵件和正常郵件的業務流內容是一樣的,必須通過行為模式才能識別出惡意的行為。
DFI
與DFI流量識別不同,DFI是一種基於流量行為的應用程式層識別技術,通過不能類型的應用在會話串連和資料流上的狀態進行識別。
DFI基於流量的行為特徵,建立流量特徵模型,分析會話串連流的包長、連線速度、位元組大小,間隔等資訊對比流模型,實現應用類型的辨別。
兩種技術的區別如下:
- 處理速度:DFI僅僅需要對流量進行分析和後台模型對比,相比需要逐包進行分析的DPI,處理了速度較快;
- DPI需要不斷更新協議和新應用以及正則匹配公式,維護成本高;
- DPI對應用類型和協議識別精確,DFI僅能做粗略分析;
- DPI無法識別加密傳輸的控制流程;
異常流量清洗清洗裝置
前面分析到首包丟棄和TCP Proxy的時候,提到過一個思路——把所有網路層安全檢測識別防禦邏輯和業務處理隔離開,目前完成安全檢查識別和防禦功能的,主要是異常流量清洗裝置。
通常來說,流量清洗裝置可以通過異常流量限速,規則過濾等等各種方式實現多層次安全防禦,過濾掉網路層和應用程式層的攻擊。
多層防護
多層防護指通過靜態特徵檢測,動態規則過濾,限速和人機識別等方式進行網路層和應用程式層的防禦。實際上無論哪種防禦手段,都只能保證網路層的清洗效果,應用程式層的更多的是採取限流的手段,誤殺率很高。
網路層
網路層的防護,多數情況下是針對各種flood攻擊。
限速
最常見的防禦手段,一般來說使用者會對自己的應用設定閾值,包括pps、bps、qps、newcons、concurcons等,可以對於超過使用者閾值的流量進行限速。
Syn cookie防禦
Syn cookie的防禦見前面相關部分。
Syn reset
Syn reset的方法類似於前面提到的首包丟棄,相對於首包丟棄中被動等待client重傳的方法相比,syn reset類比伺服器發送syn+ack報文,正常的client會判斷ack中序號錯誤,則發送rst報文,終止串連。
Tcp狀態
TCP傳輸時,正常用戶端使用正常的協議棧通訊,有相應的狀態變遷模型。一般的攻擊並沒有類比合法的協議棧,這種情況下可以通過狀態監測,確定狀態補全的報文並選擇丟棄。比如未完成3次握手的一些攻擊,並沒有完成3次握手的狀態變遷模型。
TCP的狀態圖如下所示:
指紋識別
狹義的指紋定義指指尖的印痕或者影印,廣義的指紋可以指任何代表特色,痕迹和特徵等能描述特性的證據。
這裡的指紋識別,事實上是對TCP/IP,HTTP等指紋特徵的一個機器學習的過程——收集正常流量的統計特徵,根據這些統計特徵進行建模。異常流量對比這樣的模型,通常某一特徵會明顯超過正常流量,從而進行過濾。
應用程式層
之前提到了應用程式層攻擊不同於網路層攻擊,原因在於它屬於上層協議,更接近於商務邏輯,甚至和正常業務沒有嚴格界限。另外,這種層次的攻擊往往嚴重消耗服務端的寬頻或主機資源,破壞性很大。
大部分應用程式層攻擊集中在HTTP上,少部分針對於DNS。
網域名稱限速
可以以網域名稱為單位對請求進行單獨的限速。
DNS首包丟棄
DNS首包丟棄方法見常見DDOS攻擊DNS query flood防禦部分。
DNS TC重試
DNS首包丟棄方法見常見DDOS攻擊DNS query flood防禦部分。
HTTP Cookie驗證
見HTTP flood防禦手段限制訪問頻率部分。
線上方案&旁路方案
互連網DDOS防禦,一般可以分為線上部署和旁路部署,兩者針對不同使用者和環境而部署方式不同,各有利弊。
通常來說大型的互連網或者電訊廠商網路一般採取旁路部署,這樣的方式不影響主幹網路拓撲結構,不影響正常業務,利於擴容。另外,旁路部署一般有專門的調度系統,除了保證清洗的控制外,還有流量丟棄(黑洞)等控制。
而一般來說小型網路通常採用線上部署方案,它的優點是檢測和防護在一起,且一直保持清洗狀態。缺點是對可靠性要求很高,而且缺少專門的調度系統,本身靈活性較差,面對複雜的攻擊時顯得比較單薄。
線上部署
典型的線上部署方案如下:
經過路由器的流量直接進入到清洗裝置,在清洗結束後流量進入到交換器並最終到營運目標地址。清洗過程中,可以加入對清洗裝置的控制,這種方法可以通過校正清洗效果隨時改變清洗策略。
旁路部署
典型的旁路部署方案如下:
旁路部署和線上部署相比複雜了不少,主要包含了以下幾個方面:
流量檢測
旁路部署一般有專門的流量檢測系統,通過對分光的鏡像流量進行分析以判斷異常流量,並觸發調度系統,進行異常流量清洗或者丟棄操作;
流量牽引
流量牽引即控制端向清洗裝置發送清洗指令,清洗裝置和核心路由器進行互動,通過BGP協議等方法指定IP流量牽引到清洗裝置上;
流量清洗
清洗裝置對牽引來的流量進行攻擊識別,並對攻擊報文進行過濾和清洗;
流量回注
清洗裝置將清洗後的流量回注的核心路由器上,核心路由器將這些流量引導至正常使用者網路中;
混合部署
一些混合型的部署也有著一定的意義,比如可以對線上部署進行改造,清洗裝置不直連使用者網交換器,而是放在旁路位置,仍然使用流量回注的方式確保非環路的連通;這種情況下,儘管沒有專門的流量檢測模組做鏡像流量分析,仍然可以保持調度系統對清洗裝置的各種策略控制,部署執行個體如下:
如上所述,這種混合方案實質上是清洗裝置的旁路部署,但形式和效果上是一種線上方案(可切換到旁路效果),並確保核心調度對牽引和回注的絕對控制和靈活性。
流量牽引和回注
流量牽引和回注的過程如下:
牽引
當檢測到異常流量需要清洗時,發送牽引命令到清洗裝置,此時清洗裝置會向最近的路由器發送一條被攻擊網段的BGP路由(no-advertise屬),指定下一跳地址為清洗裝置,且路由不需要全網擴散。
由於BGP策略優先於普通路由,所以流量的下一條地址指定為清洗裝置。
除BGP外,策略路由和MPLS等都可以實現流量牽引的技術。
回注
同流量牽引一樣,回注的過程同樣通過指定路由器策略實現,避免清洗裝置中流量到達路由器後形成環路。
流量回注一般可以採用3種方式,策略路由、路由策略和vlan。
策略路由優先於普通路由,可以在報文入口指定下一跳地址,從而流量回注時優先命中策略路由,而不是清洗裝置;
GRE和MPLS協議可以指定報文的目標地址,將回注流量封裝成GRE或MPLS報文,發送回核心路由器,核心路由器將GRE和MPLS報文轉寄給目標地址裝置,目標裝置解析GRE和MPLS報文,發送到使用者網路,從而避免形成環路;
利用Vlan的二層轉寄特點(交換器可以通過mac地址定位vlan連接埠,否則向vlan內所有連接埠發送報文),將清洗裝置和目標裝置配置在同一個vlan內,實現回注的流量達到使用者網路的目的。
互連網雲生態下DDOS安全產品的一些考慮和測試方法(二)