首先咱們說說ddos攻擊方式,記住一句話,這是一個世界級的難題並無解決辦法只能緩解php
DDoS(Distributed Denial of Service,分佈式拒絕服務)攻擊的主要目的是讓指定目標沒法提供正常服務,甚至從互聯網上消失,是目前最強大、最難防護的攻擊之一。這是一個世界級的難題並無解決辦法只能緩解.前端
按照發起的方式,DDoS能夠簡單分爲三類。web
第一類以力取勝,海量數據包從互聯網的各個角落蜂擁而來,堵塞IDC入口,讓各類強大的硬件防護系統、快速高效的應急流程無用武之地。這種類型的攻擊典型表明是ICMP Flood和UDP Flood,如今已不常見。算法
第二類以巧取勝,靈動而難以察覺,每隔幾分鐘發一個包甚至只須要一個包,就可讓豪華配置的服務器再也不響應。這類攻擊主要是利用協議或者軟件的漏洞發起,例如Slowloris攻擊、Hash衝突攻擊等,須要特定環境機緣巧合下才能出現。數據庫
第三類是上述兩種的混合,輕靈渾厚兼而有之,既利用了協議、系統的缺陷,又具有了海量的流量,例如SYN Flood攻擊、DNS Query Flood攻擊,是當前的主流攻擊方式。後端
本文將一一描述這些最多見、最具表明性攻擊方式,並介紹它們的防護方案。瀏覽器
SYN Flood緩存
SYN Flood是互聯網上最經典的DDoS攻擊方式之一,最先出現於1999年左右,雅虎是當時最著名的受害者。SYN Flood攻擊利用了TCP三次握手的缺陷,可以以較小代價使目標服務器沒法響應,且難以追查。安全
標準的TCP三次握手過程以下:性能優化
一、客戶端發送一個包含SYN標誌的TCP報文,SYN即同步(Synchronize),同步報文會指明客戶端使用的端口以及TCP鏈接的初始序號;
二、服務器在收到客戶端的SYN報文後,將返回一個SYN+ACK(即確認Acknowledgement)的報文,表示客戶端的請求被接受,同時TCP初始序號自動加1;
三、客戶端也返回一個確認報文ACK給服務器端,一樣TCP序列號被加1。
通過這三步,TCP鏈接就創建完成。TCP協議爲了實現可靠傳輸,在三次握手的過程當中設置了一些異常處理機制。第三步中若是服務器沒有收到客戶端的最終ACK確認報文,會一直處於SYN_RECV狀態,將客戶端IP加入等待列表,並重發第二步的SYN+ACK報文。重發通常進行3-5次,大約間隔30秒左右輪詢一次等待列表重試全部客戶端。另外一方面,服務器在本身發出了SYN+ACK報文後,會預分配資源爲即將創建的TCP鏈接儲存信息作準備,這個資源在等待重試期間一直保留。更爲重要的是,服務器資源有限,能夠維護的SYN_RECV狀態超過極限後就再也不接受新的SYN報文,也就是拒絕新的TCP鏈接創建。
SYN Flood正是利用了上文中TCP協議的設定,達到攻擊的目的。攻擊者假裝大量的IP地址給服務器發送SYN報文,因爲僞造的IP地址幾乎不可能存在,也就幾乎沒有設備會給服務器返回任何應答了。所以,服務器將會維持一個龐大的等待列表,不停地重試發送SYN+ACK報文,同時佔用着大量的資源沒法釋放。更爲關鍵的是,被攻擊服務器的SYN_RECV隊列被惡意的數據包占滿,再也不接受新的SYN請求,合法用戶沒法完成三次握手創建起TCP鏈接。也就是說,這個服務器被SYN Flood拒絕服務了。
對SYN Flood ddos攻擊軟件,有興趣的能夠看看
http://www.77169.org/hack/201508/205870.shtm 我寫的。
DNS Query Flood
做爲互聯網最基礎、最核心的服務,DNS天然也是DDoS攻擊的重要目標之一。打垮DNS服務可以間接打垮一家公司的所有業務,或者打垮一個地區的網絡服務。前些時候風頭正盛的黑客組織anonymous也曾經宣佈要攻擊全球互聯網的13臺根DNS服務器,不過最終沒有得手。
UDP攻擊是最容易發起海量流量的攻擊手段,並且源IP隨機僞造難以追查。但過濾比較容易,由於大多數IP並不提供UDP服務,直接丟棄UDP流量便可。因此如今純粹的UDP流量攻擊比較少見了,取而代之的是UDP協議承載的DNS Query Flood攻擊。簡單地說,越上層協議上發動的DDoS攻擊越難以防護,由於協議越上層,與業務關聯越大,防護系統面臨的狀況越複雜。
DNS Query Flood就是攻擊者操縱大量傀儡機器,對目標發起海量的域名查詢請求。爲了防止基於ACL的過濾,必須提升數據包的隨機性。經常使用的作法是UDP層隨機僞造源IP地址、隨機僞造源端口等參數。在DNS協議層,隨機僞造查詢ID以及待解析域名。隨機僞造待解析域名除了防止過濾外,還能夠下降命中DNS緩存的可能性,儘量多地消耗DNS服務器的CPU資源。
關於DNS Query Flood的代碼,我在2011年7月爲了測試服務器性能曾經寫過一份代碼,連接是http://www.icylife.net/yunshu/show.php?id=832。一樣的,這份代碼人爲下降了攻擊性,只作測試用途。
HTTP Flood
上文描述的SYN Flood、DNS Query Flood在現階段已經能作到有效防護了,真正令各大廠商以及互聯網企業頭疼的是HTTP Flood攻擊。HTTP Flood是針對Web服務在第七層協議發起的攻擊。它的巨大危害性主要表如今三個方面:發起方便、過濾困難、影響深遠。
SYN Flood和DNS Query Flood都須要攻擊者以root權限控制大批量的傀儡機。收集大量root權限的傀儡機很花費時間和精力,並且在攻擊過程當中傀儡機會因爲流量異常被管理員發現,攻擊者的資源快速損耗而補充緩慢,致使攻擊強度明顯下降並且不可長期持續。HTTP Flood攻擊則不一樣,攻擊者並不須要控制大批的傀儡機,取而代之的是經過端口掃描程序在互聯網上尋找匿名的HTTP代理或者SOCKS代理,攻擊者經過匿名代理對攻擊目標發起HTTP請求。匿名代理是一種比較豐富的資源,花幾天時間獲取代理並非難事,所以攻擊容易發起並且能夠長期高強度的持續。
另外一方面,HTTP Flood攻擊在HTTP層發起,極力模仿正經常使用戶的網頁請求行爲,與網站業務緊密相關,安全廠商很難提供一套通用的且不影響用戶體驗的方案。在一個地方工做得很好的規則,換一個場景可能帶來大量的誤殺。
最後,HTTP Flood攻擊會引發嚴重的連鎖反應,不只僅是直接致使被攻擊的Web前端響應緩慢,還間接攻擊到後端的Java等業務層邏輯以及更後端的數據庫服務,增大它們的壓力,甚至對日誌存儲服務器都帶來影響。
有意思的是,HTTP Flood還有個很有歷史淵源的暱稱叫作CC攻擊。CC是Challenge Collapsar的縮寫,而Collapsar是國內一家著名安全公司的DDoS防護設備。從目前的狀況來看,不只僅是Collapsar,全部的硬件防護設備都還在被挑戰着,風險並未解除。
慢速鏈接攻擊
提起攻擊,第一反應就是海量的流量、海量的報文。但有一種攻擊卻反其道而行之,以慢著稱,以致於有些攻擊目標被打死了都不知道是怎麼死的,這就是慢速鏈接攻擊,最具表明性的是rsnake發明的Slowloris。
HTTP協議規定,HTTP Request以\r\n\r\n結尾表示客戶端發送結束,服務端開始處理。那麼,若是永遠不發送\r\n\r\n會如何?Slowloris就是利用這一點來作DDoS攻擊的。攻擊者在HTTP請求頭中將Connection設置爲Keep-Alive,要求Web Server保持TCP鏈接不要斷開,隨後緩慢地每隔幾分鐘發送一個key-value格式的數據到服務端,如a:b\r\n,致使服務端認爲HTTP頭部沒有接收完成而一直等待。若是攻擊者使用多線程或者傀儡機來作一樣的操做,服務器的Web容器很快就被攻擊者佔滿了TCP鏈接而再也不接受新的請求。
很快的,Slowloris開始出現各類變種。好比POST方法向Web Server提交數據、填充一大大Content-Length但緩慢的一個字節一個字節的POST真正數據內容等等。關於Slowloris攻擊,rsnake也給出了一個測試代碼,參見http://ha.ckers.org/slowloris/slowloris.pl。
DDoS攻擊進階
混合攻擊
以上介紹了幾種基礎的攻擊手段,其中任意一種均可以用來攻擊網絡,甚至擊垮阿里、百度、騰訊這種巨型網站。但這些並非所有,不一樣層次的攻擊者可以發起徹底不一樣的DDoS攻擊,運用之妙,存乎一心。
高級攻擊者歷來不會使用單一的手段進行攻擊,而是根據目標環境靈活組合。普通的SYN Flood容易被流量清洗設備經過反向探測、SYN Cookie等技術手段過濾掉,但若是在SYN Flood中混入SYN+ACK數據包,使每個僞造的SYN數據包都有一個與之對應的僞造的客戶端確認報文,這裏的對應是指源IP地址、源端口、目的IP、目的端口、TCP窗口大小、TTL等都符合同一個主機同一個TCP Flow的特徵,流量清洗設備的反向探測和SYN Cookie性能壓力將會顯著增大。其實SYN數據報文配合其餘各類標誌位,都有特殊的攻擊效果,這裏不一一介紹。對DNS Query Flood而言,也有獨特的技巧。
首先,DNS能夠分爲普通DNS和受權域DNS,攻擊普通DNS,IP地址須要隨機僞造,而且指明服務器要求作遞歸解析;但攻擊受權域DNS,僞造的源IP地址則不該該是純隨機的,而應該是事先收集的全球各地ISP的DNS地址,這樣才能達到最大攻擊效果,使流量清洗設備處於添加IP黑名單仍是不添加IP黑名單的尷尬處境。添加會致使大量誤殺,不添加黑名單則每一個報文都須要反向探測從而加大性能壓力。
另外一方面,前面提到,爲了加大清洗設備的壓力不命中緩存而須要隨機化請求的域名,但須要注意的是,待解析域名必須在僞造中帶有必定的規律性,好比說只僞造域名的某一部分而固化一部分,用來突破清洗設備設置的白名單。道理很簡單,騰訊的服務器能夠只解析騰訊的域名,徹底隨機的域名可能會直接被丟棄,須要固化。但若是徹底固定,也很容易直接被丟棄,所以又須要僞造一部分。
其次,對DNS的攻擊不該該只着重於UDP端口,根據DNS協議,TCP端口也是標準服務。在攻擊時,能夠UDP和TCP攻擊同時進行。
HTTP Flood的着重點,在於突破前端的cache,經過HTTP頭中的字段設置直接到達Web Server自己。另外,HTTP Flood對目標的選取也很是關鍵,通常的攻擊者會選擇搜索之類須要作大量數據查詢的頁面做爲攻擊目標,這是很是正確的,能夠消耗服務器儘量多的資源。但這種攻擊容易被清洗設備經過人機識別的方式識別出來,那麼如何解決這個問題?很簡單,儘可能選擇正經常使用戶也經過APP訪問的頁面,通常來講就是各類Web API。正經常使用戶和惡意流量都是來源於APP,人機差異很小,基本融爲一體難以區分。
之類的慢速攻擊,是經過巧妙的手段佔住鏈接不釋放達到攻擊的目的,但這也是雙刃劍,每個TCP鏈接既存在於服務端也存在於自身,自身也須要消耗資源維持TCP狀態,所以鏈接不能保持太多。若是能夠解決這一點,攻擊性會獲得極大加強,也就是說Slowloris能夠經過stateless的方式發動攻擊,在客戶端經過嗅探捕獲TCP的序列號和確認維護TCP鏈接,系統內核無需關注TCP的各類狀態變遷,一臺筆記本便可產生多達65535個TCP鏈接。
前面描述的,都是技術層面的攻擊加強。在人的方面,還能夠有一些別的手段。若是SYN Flood發出大量數據包正面強攻,再輔之以Slowloris慢速鏈接,多少人可以發現其中的祕密?即便服務器宕機了也許還只發現了SYN攻擊想去增強TCP層清洗而忽視了應用層的行爲。種種攻擊均可以互相配合,達到最大的效果。攻擊時間的選擇,也是一大關鍵,好比說選擇維護人員吃午餐時、維護人員下班堵在路上或者在地鐵裏無線上網卡都沒有信號時、目標企業在舉行大規模活動流量飆升時等。
這裏描述的只是純粹的攻擊行爲,所以不提供代碼,也不作深刻介紹。
來自P2P網絡的攻擊
前面的攻擊方式,多多少少都須要一些傀儡機,即便是HTTP Flood也須要搜索大量的匿名代理。若是有一種攻擊,只須要發出一些指令,就有機器自動上來執行,纔是完美的方案。這種攻擊已經出現了,那就是來自P2P網絡的攻擊。
你們都知道,互聯網上的P2P用戶和流量都是一個極爲龐大的數字。若是他們都去一個指定的地方下載數據,使成千上萬的真實IP地址鏈接過來,沒有哪一個設備可以支撐住。拿BT下載來講,僞造一些熱門視頻的種子,發佈到搜索引擎,就足以騙到許多用戶和流量了,但這只是基礎攻擊。
高級P2P攻擊,是直接欺騙資源管理服務器。如迅雷客戶端會把本身發現的資源上傳到資源管理服務器,而後推送給其餘須要下載相同資源的用戶,這樣,一個連接就發佈出去。經過協議逆向,攻擊者僞造出大批量的熱門資源信息經過資源管理中心分發出去,瞬間就能夠傳遍整個P2P網絡。更爲恐怖的是,這種攻擊是沒法中止的,即便是攻擊者自身也沒法中止,攻擊一直持續到P2P官方發現問題更新服務器且下載用戶重啓下載軟件時爲止。
CC
ChallengeCollapsar的名字源於挑戰國內知名安全廠商綠盟的抗DDOS設備-「黑洞」,經過botnet的傀儡主機或尋找匿名代理服務器,向目標發起大量真實的http請求,最終消耗掉大量的併發資源,拖慢整個網站甚至完全拒絕服務。
互聯網的架構追求擴展性本質上是爲了提升併發能力,各類SQL性能優化措施:消除慢查詢、分表分庫、索引、優化數據結構、限制搜索頻率等本質都是爲了解決資源消耗,而CC大有反其道而行之的意味,佔滿服務器併發鏈接數,儘量使請求避開緩存而直接讀數據庫,讀數據庫要找最消耗資源的查詢,最好沒法利用索引,每一個查詢都全表掃描,這樣就能用最小的攻擊資源起到最大的拒絕服務效果。
互聯網產品和服務依靠數據分析來驅動改進和持續運營,因此除了前端的APP、中間件和數據庫這類OLTP系統,後面還有OLAP,從日誌收集,存儲到數據處理和分析的大數據平臺,當CC攻擊發生時,不只OLTP的部分受到了影響,實際上CC會產生大量日誌,直接會對後面的OLAP產生影響,影響包括兩個層面,一個當日的數據統計徹底是錯誤的。第二個層面因CC期間訪問日誌劇增也會加大後端數據處理的負擔。
CC是目前應用層攻擊的主要手段之一,在防護上有一些方法,但不能完美解決這個問題。
反射型
2004年時DRDOS第一次披露,經過將SYN包的源地址設置爲目標地址,而後向大量的
真實TCP服務器發送TCP的SYN包,而這些收到SYN包的TCP server爲了完成3次握手把SYN|ACK包「應答」給目標地址,完成了一次「反射」攻擊,攻擊者隱藏了自身,但有個問題是攻擊者製造的流量和目標收到的攻擊流量是1:1,且SYN|ACK包到達目標後立刻被回以RST包,整個攻擊的投資回報率不高。
反射型攻擊的本質是利用「質詢-應答」式協議,將質詢包的源地址經過原始套接字僞造設置爲目標地址,則應答的「回包」都被髮送至目標,若是回包體積比較大或協議支持遞歸效果,攻擊流量會被放大,成爲一種高性價比的流量型攻擊。
反射型攻擊利用的協議目前包括NTP、Chargen、SSDP、DNS、RPC portmap等等。
流量放大型
以上面提到的DRDOS中常見的SSDP協議爲例,攻擊者將Searchtype設置爲ALL,搜索全部可用的設備和服務,這種遞歸效果產生的放大倍數是很是大的,攻擊者只須要以較小的僞造源地址的查詢流量就能夠製造出幾十甚至上百倍的應答流量發送至目標。
防護基礎
攻擊流量到底多大,這是一個關鍵問題。攻擊量的大小。用的防禦方法不同。下面給你講一講,1G以內的防禦方式。費用在,<1萬,每個月
談到DDoS防護,首先就是要知道到底遭受了多大的攻擊。這個問題看似簡單,實際上卻有不少鮮爲人知的細節在裏面。
以SYN Flood爲例,爲了提升發送效率在服務端產生更多的SYN等待隊列,攻擊程序在填充包頭時,IP首部和TCP首部都不填充可選的字段,所以IP首部長度剛好是20字節,TCP首部也是20字節,共40字節。
對於以太網來講,最小的包長度數據段必須達到46字節,而攻擊報文只有40字節,所以,網卡在發送時,會作一些處理,在TCP首部的末尾,填充6個0來知足最小包的長度要求。這個時候,整個數據包的長度爲14字節的以太網頭,20字節的IP頭,20字節的TCP頭,再加上由於最小包長度要求而填充的6個字節的0,一共是60字節。
但這尚未結束。以太網在傳輸數據時,還有CRC檢驗的要求。網卡會在發送數據以前對數據包進行CRC檢驗,將4字節的CRC值附加到包頭的最後面。這個時候,數據包長度已再也不是40字節,而是變成64字節了,這就是常說的SYN小包攻擊,數據包結構以下:
|14字節以太網頭部|20字節IP頭部|20字節TCP|6字節填充|4字節檢驗|
|目的MAC|源MAC|協議類型| IP頭 |TCP頭|以太網填充 | CRC檢驗 |
到64字節時,SYN數據包已經填充完成,準備開始傳輸了。攻擊數據包很小,遠遠不夠最大傳輸單元(MTU)的1500字節,所以不會被分片。那麼這些數據包就像生產流水線上的罐頭同樣,一個包連着一個包緊密地擠在一塊兒傳輸嗎?事實上不是這樣的。
以太網在傳輸時,還有前導碼(preamble)和幀間距(inter-frame gap)。其中前導碼佔8字節(byte),即64比特位。前導碼前面的7字節都是10101010,1和0間隔而成。但第八個字節就變成了10101011,當主機監測到連續的兩個1時,就知道後面開始是數據了。在網絡傳輸時,數據的結構以下:
|8字節前導碼|6字節目的MAC地址|6字節源MAC地址|2字節上層協議類型|20字節IP頭|20字節TCP頭|6字節以太網填充|4字節CRC檢驗|12字節幀間距|
也就是說,一個原本只有40字節的SYN包,在網絡上傳輸時佔的帶寬,實際上是84字節。
有了上面的基礎,如今能夠開始計算攻擊流量和網絡設備的線速問題了。當只填充IP頭和TCP頭的最小SYN包跑在以太網絡上時,100Mbit的網絡,能支持的最大PPS(Packet Per Second)是100×106 / (8 * (64+8+12)) = 148809,1000Mbit的網絡,能支持的最大PPS是1488090。
SYN Flood防護
前文描述過,SYN Flood攻擊大量消耗服務器的CPU、內存資源,並佔滿SYN等待隊列。相應的,咱們修改內核參數便可有效緩解。主要參數以下:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_synack_retries = 2
分別爲啓用SYN Cookie、設置SYN最大隊列長度以及設置SYN+ACK最大重試次數。
SYN Cookie的做用是緩解服務器資源壓力。啓用以前,服務器在接到SYN數據包後,當即分配存儲空間,並隨機化一個數字做爲SYN號發送SYN+ACK數據包。而後保存鏈接的狀態信息等待客戶端確認。啓用SYN Cookie以後,服務器再也不分配存儲空間,並且經過基於時間種子的隨機數算法設置一個SYN號,替代徹底隨機的SYN號。發送完SYN+ACK確認報文以後,清空資源不保存任何狀態信息。直到服務器接到客戶端的最終ACK包,經過Cookie檢驗算法鑑定是否與發出去的SYN+ACK報文序列號匹配,匹配則經過完成握手,失敗則丟棄。固然,前文的高級攻擊中有SYN混合ACK的攻擊方法,則是對此種防護方法的反擊,其中優劣由雙方的硬件配置決定
tcp_max_syn_backlog則是使用服務器的內存資源,換取更大的等待隊列長度,讓攻擊數據包不至於佔滿全部鏈接而致使正經常使用戶沒法完成握手。net.ipv4.tcp_synack_retries是下降服務器SYN+ACK報文重試次數,儘快釋放等待資源。這三種措施與攻擊的三種危害一一對應,完徹底全地對症下藥。但這些措施也是雙刃劍,可能消耗服務器更多的內存資源,甚至影響正經常使用戶創建TCP鏈接,須要評估服務器硬件資源和攻擊大小謹慎設置。
除了定製TCP/IP協議棧以外,還有一種常見作法是TCP首包丟棄方案,利用TCP協議的重傳機制識別正經常使用戶和攻擊報文。當防護設備接到一個IP地址的SYN報文後,簡單比對該IP是否存在於白名單中,存在則轉發到後端。如不存在於白名單中,檢查是不是該IP在必定時間段內的首次SYN報文,不是則檢查是否重傳報文,是重傳則轉發並加入白名單,不是則丟棄並加入黑名單。是首次SYN報文則丟棄並等待一段時間以試圖接受該IP的SYN重傳報文,等待超時則斷定爲攻擊報文加入黑名單。
首包丟棄方案對用戶體驗會略有影響,由於丟棄首包重傳會增大業務的響應時間,有鑑於此發展出了一種更優的TCP Proxy方案。全部的SYN數據報文由清洗設備接受,按照SYN Cookie方案處理。和設備成功創建了TCP三次握手的IP地址被斷定爲合法用戶加入白名單,由設備假裝真實客戶端IP地址再與真實服務器完成三次握手,隨後轉發數據。而指定時間內沒有和設備完成三次握手的IP地址,被斷定爲惡意IP地址屏蔽必定時間。除了SYN Cookie結合TCP Proxy外,清洗設備還具有多種畸形TCP標誌位數據包探測的能力,經過對SYN報文返回非預期應答測試客戶端反應的方式來鑑別正常訪問和惡意行爲。
清洗設備的硬件具備特殊的網絡處理器芯片和特別優化的操做系統、TCP/IP協議棧,能夠處理很是巨大的流量和SYN隊列。
HTTP Flood防護
HTTP Flood攻擊防護主要經過緩存的方式進行,儘可能由設備的緩存直接返回結果來保護後端業務。大型的互聯網企業,會有龐大的CDN節點緩存內容。
當高級攻擊者穿透緩存時,清洗設備會截獲HTTP請求作特殊處理。最簡單的方法就是對源IP的HTTP請求頻率作統計,高於必定頻率的IP地址加入黑名單。這種方法過於簡單,容易帶來誤殺,而且沒法屏蔽來自代理服務器的攻擊,所以逐漸廢止,取而代之的是JavaScript跳轉人機識別方案。
HTTP Flood是由程序模擬HTTP請求,通常來講不會解析服務端返回數據,更不會解析JS之類代碼。所以當清洗設備截獲到HTTP請求時,返回一段特殊JavaScript代碼,正經常使用戶的瀏覽器會處理並正常跳轉不影響使用,而攻擊程序會攻擊到空處。
DNS Flood防護
DNS攻擊防護也有相似HTTP的防護手段,第一方案是緩存。其次是重發,能夠是直接丟棄DNS報文致使UDP層面的請求重發,能夠是返回特殊響應強制要求客戶端使用TCP協議重發DNS查詢請求。
特殊的,對於受權域DNS的保護,設備會在業務正常時期提取收到的DNS域名列表和ISP DNS IP列表備用,在攻擊時,非此列表的請求一概丟棄,大幅下降性能壓力。對於域名,實行一樣的域名白名單機制,非白名單中的域名解析請求,作丟棄處理。
慢速鏈接攻擊防護
Slowloris攻擊防護比較簡單,主要方案有兩個。
第一個是統計每一個TCP鏈接的時長並計算單位時間內經過的報文數量便可作精確識別。一個TCP鏈接中,HTTP報文太少和報文太多都是不正常的,過少多是慢速鏈接攻擊,過多多是使用HTTP 1.1協議進行的HTTP Flood攻擊,在一個TCP鏈接中發送多個HTTP請求。
第二個是限制HTTP頭部傳輸的最大許可時間。超過指定時間HTTP Header尚未傳輸完成,直接斷定源IP地址爲慢速鏈接攻擊,中斷鏈接並加入黑名單。
~~~~~~~~~~~~~~~~~~~~~·
下面咱們細說一下,不一樣攻擊量對應對方式
若是超過,>10G 攻擊,若是大於10G攻擊軟件防禦就扯蛋,
下面記住一句話,防ddos攻擊大小於取決於你帶寬的大小,與軟件不要緊。
國內如今100M帶寬一個月就,便宜的8000,貴的2萬多,1G帶寬,8萬,10G帶寬,80萬,你肯定要本身防禦?
業務邏輯很不少種,每家都不太同樣,
WEB類型,這個是攻擊最多,防禦方案更廣,能夠選擇國內,國外,cdn加速等,
遊戲類型,這個必須得放在國內,放國外太卡,掉線,沒人玩了
解決辦法就是找第三方防ddos解決商,
10~50G防禦,國內不少機房均可以防禦,問題你給的錢夠不夠idc機房是否給你防禦,他們防禦示意圖,
機房有一個總帶寬,若是你攻擊帶寬太大就影響他正常客戶,他就會找各類藉口給你ip屏蔽。
不少攻擊持續的時間很是短,一般5分鐘之內,流量圖上表現爲突刺狀的脈衝。
實際對機房沒有什麼影響,可是機房就給你ip屏蔽了,這個用於攻擊遊戲類網站,搞一會一掉線,用戶全掉光了,
50G之間,單機防禦,浙江,江蘇,廣東,均可以防均可以防禦,月成本,2萬左右,(價格說小於1萬那就是騙子,已經測試過)
網上不少說無視,320G防禦,全是吹牛的,他說的320G,應當就是udp攻擊,由於電信上層給屏蔽了udp帶寬,
廣東有雙線,合適放遊戲類網站,速度快,防禦還能夠,
廣東有些ip是屏蔽國外的流量,還有屏蔽聯通的流量,意思就是除了電信的別的地方的流量都過不來,
就像這個ISP近源清洗
100~200G之個,這個如今是關鍵了,如今攻擊這個是最多的,遊戲類網站若是有怎麼大攻擊放國內,如今能有怎麼大防禦的,電信,廣東,福州,廣西,聯通,有大連,
福州買過,2萬多一個月,說防300G,130G就給封了,騙子,dns防禦也不行,10G左右的dns攻擊直接搞死了
廣東機房買過,3萬一個月,100g 就給封了,不過廣東能夠秒解,買200個ip,仍是能防一會,廣東的直接訪問不了dns,機房作策略了。
廣西,這個正測試,前幾天放了dns在廣西機房,打死了。
DNS攻擊防禦也是重點,買了dnspod的最貴那個版本3萬多/年,封了,dnspod也,老吳不在那了嗎?搞別的去了,如今真是垃圾,指着dnspod防禦差遠了,我給你們介紹一下,google有dns防禦,好用,比dnspod便宜不少,還有CF,也很是好,200刀,沒打死過。
上面就浪費十來萬,測試dns測試100G防禦,總結的經驗,
遊戲的只能放國內,還得看是udp,仍是tcp,因此防禦範圍小。
WEB的防禦比較多,能夠考慮放國外,
如今國外比較能吹的,
美國SK機房,防100G,買了,安排機器花了2天,這個攻擊完了ip,封1小時,真心不行。機房還老掉線,花了1萬左右可能一個月,
美國hs機房,防80G,一個月8萬,買了,打死了,他防到40G左右就給你封了,也跟騙子差很少,說是要加到200G防禦,沒看到,
美國CD機房,最後花了>10萬每個月,找的他們老闆防住了,可是dns防禦不行。
還有一家機房能夠推薦,加拿大機房,單機防160G,集羣480G,不封ip,防禦還能夠,缺點,卡,國內ping掉包,8000左右一個月,20元一個ip,
上面速度最快的是hs機房國內,150ms左右,沒攻擊的時候用用還行,有攻擊防禦差點意思。
我不是給機房作廣告,我只是總結我最近防禦的經驗,國內能夠放免備案的機房也有,資源聯繫方式,dns防攻擊500G,均可以,你聯繫我。我能夠免費告訴你這些資源的聯繫方式,
~~~~~~~~~~~~~~~~~~~~~~~~~~
最後說一下,雲加速,
國內的雲盾,收費死貴,防禦不行,別看他家的了。
阿里雲防禦,單機防4個G,不貴,小企業能夠用,缺點得備案,還有若是你有非法信息,他們能夠直接給報官了(最垃圾的是這點)
百度雲加速,說是防1T攻擊,我認真研究了一下,他是聯合,國外的CF雲加速,電信的雲堤(近源清洗)說能防1T,攻擊400G他轉到CF國外,國內600G攻擊,全是雲堤防禦的,
什麼是近源清洗,就是江蘇有攻擊,到電信江蘇的出口的時候,isp,中國電信直接不讓他出口,
目前如中國電信的專門作抗DDOS的雲堤提供了[近源清洗]和[流量壓制]的服務,對於購買其服務的廠商來講能夠自定義須要黑洞路由的IP與電信的設備聯動,黑洞路由是一種簡單粗暴的方法,除了攻擊流量,部分真實用戶的訪問也會被一塊兒黑洞掉,對用戶體驗是一種打折扣的行爲,本質上屬於爲了保障留給其他用戶的鏈路帶寬的棄卒保帥的作法,之因此還會有這種收費服務是由於假如不這麼作,全站服務會對全部用戶完全沒法訪問。對於雲清洗廠商而言,實際上也須要藉助黑洞路由與電信聯動。
百度雲加速,還沒測試過,不評價,總結國內的廠商全是吹牛B的比較多,行業就這樣,
國外的比較可靠,可是收費的確不便宜,
三家,能夠推薦,
亞馬遜,30G攻擊無視,攻擊大了,也給你封了,推薦他最大優勢,按流量收費,能夠按小時收費,不要備案,國內還得先備案,這我買6個節點,用三天死了。
CF加速,這個dns防禦無敵,百度雲加速就是聯合的他家。
akamai,這家是給蘋果作防禦的,說只有蘋果發佈會的打死過一次,我沒試太貴了,1G,3.5元,一天估計就得5000左右一天,
cdn加速,是防CC的一個主要手段
CDN/Internet層CDN並非一種抗DDOS的產品,但對於web類服務而言,他卻正好有必定的抗DDOS能力,以大型電商的搶購爲例,這個訪問量很是大,從不少指標上看不亞於DDOS的CC,而在平臺側實際上在CDN層面用驗證碼過濾了絕大多數請求,最後到達數據庫的請求只佔總體請求量的很小一部分。
對http CC類型的DDOS,不會直接到源站,CDN會先經過自身的帶寬硬抗,抗不了的或者穿透CDN的動態請求會到源站,若是源站前端的抗DDOS能力或者源站前的帶寬比較有限,就會被完全DDOS。
~~~~~~~~~~~~~~~
若是你是正規網站,你別怕有攻擊,不會有怎麼大攻擊的,如今黑客主要攻擊那些非正規的網站,H 站,棋牌,菠菜,都是攻擊要錢的,
正規網站他不會每天來打死你,攻擊你的都是競爭對手。
若是有一天,有人攻擊你要錢,下面就是要作的事。
立案和追蹤
目前對於流量在100G以上的攻擊是能夠立案的,這比過去幸福了不少。過去沒有本土特點的資源甚至都無法立案,可是立案只是萬里長征的第一步,若是你想找到人,必須成功完成如下步驟:
在海量的攻擊中,尋找倒推的線索,找出多是C&C服務器的IP或相關域名等
「黑」吃「黑」,端掉C&C服務器
經過登陸IP或藉助第三方APT的大數據資源(若是你能獲得的話)物理定位攻擊者
陪叔叔們上門抓捕
上法庭訴訟
若是這我的沒有特殊身份,也許你就能如願,但假如遇到一些特殊人物,你幾個月都白忙乎。而黑吃黑的能力則依賴於安全團隊自己的滲透能力比較強,且有閒情逸致作這事。這個過程對不少企業來講成本仍是有點高,光有實力的安全團隊這條門檻就足以砍掉絕大多數公司。筆者過去也只是剛好有緣遇到了這麼一個團隊。
是有成功案例,燕郊,黃總,有人攻擊他要錢,完了他打了幾千,報警抓住了。但不是你報警就有人管你的,還得有關係(國情你懂的)不過,你能夠找我呀,我能夠告訴你怎麼辦呀。哈哈。
總結一下,
WEB網站攻擊,通常流量,直接syn,udp,打不死,就攻擊你的dns,不行還能舉報你,
遊戲網站,他不直接打死你,讓你老掉線,玩不了,目的達到了。因此這類網站須要提早佈置防禦。
還有支付類網站,
中小企業,主要看攻擊量的大小選擇方案,若是大家公司不差錢,那就別向下看了,
下面我但是報行業內幕,
<30G攻擊, 3000左右一個月,非連續攻擊,可用,單機防,
<50G攻擊,1萬左右一個月,非連續攻擊,可用,雙機防,
<100G攻擊,2~3萬,連續攻擊/日,須要用集羣防,
<300G攻擊,5~8萬,連續攻擊/日,須要集羣,加CDN,學習百度雲加速,國外的防禦讓CF幫着防,國內的找雲堤防,
因此,總結一下那些公司是騙人的,大家不白花錢去再測試了。我已經測試過了。