DDOS攻擊原理與防護

什麼是DDOS攻擊?git

    DOS(Denial of Service)是拒絕服務攻擊.
  DDoS攻擊手段是在傳統的DoS攻擊基礎之上產生的一類攻擊方式。單一的DoS攻擊通常是採用一對一方式的,當攻擊目標CPU速度低、內存小或者網絡帶寬小等等各項性能指標不高它的效果是明顯的。隨着計算機與網絡技術的發展,計算機的處理能力迅速增加,內存大大增長,同時也出現了千兆、萬兆、百級級別的網絡,這使得DoS攻擊的困難程度加大了-目標對惡意攻擊包的"消化能力"增強了很多,例如你的攻擊軟件每秒鐘能夠發送3,000個攻擊包,但個人主機與網絡帶寬每秒鐘能夠處理10,000個攻擊包,這樣一來攻擊就不會產生什麼效果。
  這時侯分佈式的拒絕服務攻擊手段(DDoS)就應運而生了。理解了DoS攻擊的話,它的原理就很簡單。若是說計算機與網絡的處理能力加大了10倍,用一臺攻擊機來攻擊再也不能起做用的話,攻擊者使用10臺攻擊機同時攻擊呢?用100臺呢?DDoS就是利用更多的傀儡機來發起進攻,以比從前更大的規模來進攻受害者。
  分佈式拒絕服務(DDoS:Distributed Denial of Service)攻擊指藉助於客戶/服務器技術,將多個計算機聯合起來做爲攻擊平臺,對一個或多個目標發動DoS攻擊,從而成倍地提升拒絕服務攻擊的威力。一般,攻擊者使用一個偷竊賬號將DDoS主控程序安裝在一個計算機上,在一個設定的時間主控程序將與大量代理程序通信,代理程序已經被安裝在Internet上的許多計算機上。代理程序收到指令時就發動攻擊。利用客戶/服務器技術,主控程序能在幾秒鐘內激活成百上千次代理程序的運行
       高速普遍鏈接的網絡給你們帶來了方便,也爲DDoS攻擊創造了極爲有利的條件。在低速網絡時代時,黑客佔領攻擊用的傀儡機時,老是會優先考慮離目標網絡距離近的機器,由於通過路由器的跳數少,效果好。而如今電信骨幹節點之間的鏈接都是以G爲級別的,大城市之間更能夠達到2.5G的鏈接,這使得攻擊能夠從更遠的地方或者其餘城市發起,攻擊者的傀儡機位置能夠在分佈在更大的範圍,選擇起來更靈活了.
 
被DDoS攻擊時的現象:
· 被攻擊主機上有大量等待的TCP鏈接。
· 網絡中充斥着大量的無用的數據包,源地址爲假。
· 製造高流量無用數據,形成網絡擁塞,使受害主機沒法正常和外界通信。
· 利用受害主機提供的服務或傳輸協議上的缺陷,反覆高速的發出特定的服務請求,使受害主機沒法及時處理全部正常請求。
· 嚴重時會形成系統死機。
 
DDOS全球實時圖
http://www.digitalattackmap.com/

 

攻擊面
咱們將正經常使用戶訪問網站頁面的流程分爲1-8 八個階段

對於目標來講 看能夠講八個階段分紅兩類:
1.上傳流量  
 2.下載流量
 
針對不一樣的攻擊面:
1-8 2-7 ping tcp包等等
3-6 須要動態語言處理的請求及響應
4-5 數據庫查詢及結果
 
不一樣攻擊面分別消耗不等資源:1.帶寬資源 2.CPU 3.內存 4.硬盤資源
 
攻擊類型
1>反射型(放大攻擊)攻擊 - 以小博大
從攻擊服務器性能來看 , 讓服務器返回工做而且返回更大的數據量的數據包(好比get請求)可以消耗服務器更多的性能, 形成不能對正經常使用戶的訪問作出迴應。
好比說下面要講的cc攻擊。 咱們將這種手段稱之爲反射型攻擊。
 
2>CC攻擊
攻擊原理:利用代理服務器向受害者發起大量HTTP Get請求;主要請求動態頁面,涉及到數據庫訪問操做;數據庫負載以及數據庫鏈接池負載極高,沒法響應正常請求.
 
3>Syn Flood
攻擊原理:依據tcp創建鏈接的三次握手。此攻擊以多個隨機的源主機地址向目的主機發送syn包,而在收到目的主機的syn+ack包後並不迴應,目的主機就爲這些源主機創建大量的鏈接隊列,因爲沒有收到ack一直維護這些鏈接隊列,形成資源的大量消耗而不能向正常的請求提供服務。與之相似的攻擊方式還有ackflood、s-ackflood、finflood、rstflood、tcpflood 。
 
等等
小結: DDOS攻擊雖然類型繁多,可是思路相同,不一樣類型只是用不一樣的協議來消耗服務器資源。
 
使用hping3嘗試DDOS本身的服務器
Hping3/Nping: TCP/IP數據包生成工具,用於壓力測試、安全審計。
使用hping3進行DoS攻擊:
# hping3 -c 10000 -d 120 -S -w 64 -p 80 --flood --rand-source testsite.com
• -c:發送數據包的個數
• -d:每一個數據包的大小
• -S:發送SYN數據包
• -w:TCP window大小
• -p:目標端口,你能夠指定任意端口
• –flood:儘量快的發送數據包
• –rand-source:使用隨機的IP地址,使得安全設備不能定位實際IP;
• -a或–spoof:隱藏主機名
• testsite.com:目的IP地址或網站

使用hping3實現簡單SYN洪水攻擊:
# hping3 -S --flood -V testsite.com

使用nping實現TCP鏈接攻擊:
# nping --tcp-connect -rate=90000 -c 900000 -q testsite.com


抓包能夠看到source ip都是隨機值:

 

 
防護
1.將站點推送CDN , 讓CDN承受資源損耗
2.購買抗D服務

 

3.保障真實ip的私密性數據庫

相關文章
相關標籤/搜索