常見的DDos攻擊手段及解決手段

DDoS(Distributed Denial of Service)即分佈式拒絕服務攻擊,是目前最爲強大、最難以防護的攻擊方式之一。要理解DDos,得先從DoS提及。最基本的DoS攻擊就是利用合理的客戶端請求來佔用過多的服務器資源,從而使合法用戶沒法獲得服務器的響應。DDoS攻擊手段遷在傳統的DoS攻擊基礎之上產生的一類攻擊方式,傳統的DoS攻擊通常是採用一對一的方式,當攻擊目標的CPU速度、內存或者網絡帶寬等各項性能指標不高的狀況下,它的效果是明顯的。後端

但隨着計算機與網絡技術的發展,計算機的處理能力顯著增長,內存不斷增大,同時也出現了千兆級別的網絡,這使得DoS攻擊逐漸失去了效果。這時分佈式拒絕服務攻擊手段(DDoS)便應運而生了。理解了DoS攻擊後,DDoS的原理就很是簡單了,它指的是攻擊者藉助公共網絡,將數量龐大的計算機設備聯合起來做爲攻擊平臺,對一個或多個目標發動攻擊,從而達到癱瘓目標主機的目的。一般在攻擊開始前,攻擊者會提早控制大量的用戶計算機,稱之爲「肉雞",並經過指令使大量的肉雞在同一時刻對某個主機進行訪問,從而達到癱瘓目標主機的目的。緩存

DDos攻擊的形式有不少種,如依賴蠻力的ICMP Flood、UDP Flood等,隨着硬件性能的提高,攻擊的機器規模愈來愈大,組織大規模的攻擊愈來愈困難,如今已經不常見。還有就是依賴協議特徵和具體的軟件漏洞進行的攻擊,如slow loris攻擊、Hash碰撞攻擊等,這類攻擊主要利用協議和軟件漏洞進行攻擊,須要在特定環境下才會出現,更多的攻擊者主要纔有前面的兩種方式混合,即利用了協議、系統的缺陷,又具有了海量的流量。服務器

而後來說解兩個常見的DDos手段。網絡

1.SYN Flood是曾經是最經典的攻擊方式之一,要明白他的攻佔原理,能夠從TCP開始創建鏈接的過程開始提及。沒基礎的能夠看下我這篇文章:架構

TCP超詳細解析之三次握手,四次揮手,流量控制,滑動窗口 www.jianshu.com/p/b0d0023b3… 從新看下三次握手的部分。分佈式

TCP協議爲實現可靠傳輸,在三次握手的過程當中設置了 一 些異常處理機制。第三步中若是服務器沒有收到客戶端的ACK報文,服務端通常會進行重試,也就是再次發送 SYN +ACK 報文給客戶端,而且一 直處於 SYN_RECV 狀態,將客戶端加入等待列表。重發一 般會進行 3-5次,大約每隔30秒左右會輪詢一 遍等待隊列,重試全部客戶端;另外一 方面,服務器在發出SYN+ACK報文後,會預分配 一 部分資源給即將創建的TCP 鏈接,這個資源在等待重試期間-直保留,更爲重要的是,服務器資源有限,能夠維護的等待列表超過極限後就再也不接收新的SYN報文,也就是拒絕創建新的TCP鏈接。性能

SYN Flood正是利用了TCP協議三次握手的過程來達成攻擊的目的。攻擊者僞造大量的IP地址給服務器發送SYN報文,可是因爲僞造的IP地址幾乎不可能存在,也就不可能從客戶端獲得任何迴應,服務端將維護一 個很是大的半鏈接等待列表,而且不斷對這個列表中的IP 地址進行遍歷和重試,佔用了大量的系統資源。更爲嚴重的是,因爲服務器資源有限,大量的惡意客戶端信息佔滿了服務器的等待隊列,致使服務器再也不接收新的SYN請求,正經常使用戶沒法完成三次握手與服務器進行通訊,這即是SYN Flood攻擊。網站

  1. DNS Query Flood

DNS Query Flood其實是UDP Flood攻擊的 一 種變形,因爲DNS 服務在互聯網中具備不可替代的做用,一旦DNS服務器癱瘓,影響甚大。架構設計

DNS Query Flood攻擊採用的方法是向被攻擊的服務器發送海量的域名解析請求。一般,諸求解析的域名是隨機生成的,大部分根本就不存在,而且經過僞造端口和客戶端IP, 防止查詢請求被ACL過濾。被攻擊的 DNS 服務器在接收到域名解析請求後,首先會在服務器上查找是否有對應的緩存,因爲域名是隨機生成的,幾乎不可能有相應的緩存信息,當沒有緩存. I 該域名沒法直接由該DNS服務器進行解析時,DNS服務器會向其上層DNS服務器遞歸查詢域名信息,直到全球互聯網的13臺根DNS服務器。大量不存在的域名解析請求給服務器帶來很大的負載,當解析請求超過必定量時,就會形成 DNS 服務器解析域名超時,這樣攻擊者便達成了攻擊目的。設計

  1. CC攻擊

CC ( Challenge Collapsar)攻擊屬於DDos的一 種,是基於應用層 HTTP 協議發起的 DDos攻擊,也被稱爲HTTP Flood.

CC攻擊的原理是這樣的,攻擊者經過控制的大量 「肉雞」或者利用從互聯網上搜尋的大量知名的HTTP代理,模擬正經常使用戶給網站發起請求直到該網站拒絕服務爲止。大部分網站會經過CDN以及分佈式緩存來加快服務端響應,提高網站的吞吐量,而這些精心構造的HTTP請求每每有意避開這些緩存,須要進行屢次DB查詢操做或者一 次請求返回大量的數據,加速系統資源消耗,從而拖垮後端的業務處理系統,甚至連相關存儲與日誌收集系統也沒法倖免。

cc攻擊發起容易,防範困難,影響卻普遍,是近年來 DDos攻擊的主流方式。

cc攻擊並不須要攻擊者控制大量的 「肉雞」,取而代之的是互聯網上十分容易找到的各類 HTTP 代理,「肉雞」 因爲流量異常,容易被管理人員發現,攻擊持續時間難以延續,而使用 HTTP 代理則使攻擊者可以發起持續高強度的攻擊。攻擊在應用層發起,每每又與網站的業務緊密相連,使得防守一方很難在不影響業務的狀況下對攻擊請求進行過濾,大量的誤殺將影響到正常訪問的用戶,間接地達成攻擊者的目的。

其餘比較常見的攻擊手段還有DNS域名劫持、CON回源攻擊、服務器權限提高,緩衝區溢出,以及一 些依賴於平臺或者具體軟件漏洞的攻擊等,防護的滯後性使得攻擊的手段永遠都比防護的手段多。

後續整理待續。。。。

取材自:《大型分佈式網站架構設計》 整理不易,喜歡請點個贊。

相關文章
相關標籤/搜索