1. 程式人生 > >DDOS攻擊詳解

DDOS攻擊詳解

Ddos的攻擊方式有很多種,最基本的Dos攻擊就是利用合理的服務請求來佔用過多的服務資源,從而使合法使用者無法得到服務的響應。

在資訊保安的三要素——“保密性”、“完整性”和“可用性”中,DoS(Denial of Service),即拒絕服務攻擊,針對的目標正是“可用性”。該攻擊方式利用目標系統網路服務功能缺陷或者直接消耗其系統資源,使得該目標系統無法提供正常的服務。

DDOS攻擊詳解DDOS攻擊詳解

DDos攻擊

Ddos的攻擊方式有很多種,最基本的Dos攻擊就是利用合理的服務請求來佔用過多的服務資源,從而使合法使用者無法得到服務的響應。單一的DoS攻擊一般是採用一對一方式的,當攻擊目標CPU速度低、記憶體小或者網路頻寬小等等各項指標不高的效能,它的效果是明顯的。隨著計算機與網路技術的發展,計算機的處理能力迅速增長,記憶體大大增加,同時也出現了千兆級別的網路,這使得DoS攻擊的困難程度加大了-目標對惡意攻擊包的"消化能力"加強了不少。這時候分散式的拒絕服務攻擊手段(DDoS)就應運而生了。DDoS就是利用更多的傀儡機來發起進攻,以比從前更大的規模來進攻受害者。

一、攻擊方式

1. Synflood

該攻擊以多個隨機的源主機地址向目的主機發送SYN包,而在收到目的主機的SYN ACK後並不迴應,這樣,目的主機就為這些源主機建立了大量的連線佇列,而且由於沒有收到ACK一直維護著這些佇列,造成了資源的大量消耗,最終導致拒絕服務。

2. Smurf

該攻擊向一個子網的廣播地址發一個帶有特定請求(如ICMP迴應請求)的包,並且將源地址偽裝成想要攻擊的主機地址。子網上所有主機都回應廣播包請求而向被攻擊主機發包,使該主機受到攻擊。

3. Land-based

攻擊者將一個包的源地址和目的地址都設定為目標主機的地址,然後將該包通過IP欺騙的方式傳送給被攻擊主機,這種包可以造成被攻擊主機因試圖與自己建立連線而陷入死迴圈,從而很大程度地降低了系統性能。

4. Ping of Death

根據TCP/IP的規範,一個包的長度最大為65536位元組。儘管一個包的長度不能超過65536位元組,但是一個包分成的多個片段的疊加卻能做到。當一個主機收到了長度大於65536位元組的包時,就是受到了Ping of Death攻擊,該攻擊會造成主機的宕機。

5. Teardrop

IP資料包在網路傳遞時,資料包可以分成更小的片段。攻擊者可以通過傳送兩段(或者更多)資料包來實現TearDrop攻擊。第一個包的偏移量為0,長度為N,第二個包的偏移量小於N。為了合併這些資料段,TCP/IP堆疊會分配超乎尋常的巨大資源,從而造成系統資源的缺乏甚至機器的重新啟動。

6. PingSweep

使用ICMP Echo輪詢多個主機。

7. Pingflood

該攻擊在短時間內向目的主機發送大量ping包,造成網路堵塞或主機資源耗盡。

二、防禦方法

1. 按攻擊流量規模分類

(1) 較小流量:
小於1000Mbps,且在伺服器硬體與應用接受範圍之內,並不影響業務的: 利用iptables或者DDoS防護應用實現軟體層防護。
(2) 大型流量:
大於1000Mbps,但在DDoS清洗裝置效能範圍之內,且小於機房出口,可能影響相同機房的其他業務的:利用iptables或者DDoS防護應用實現軟體層防護,或者在機房出口裝置直接配置黑洞等防護策略,或者同時切換域名,將對外服務IP修改為高負載Proxy叢集外網IP,或者CDN高仿IP,或者公有云DDoS閘道器IP,由其代理到RealServer;或者直接接入DDoS清洗裝置。
(3) 超大規模流量:
在DDoS清洗裝置效能範圍之外,但在機房出口效能之內,可能影響相同機房的其他業務,或者大於機房出口,已經影響相同機房的所有業務或大部分業務的:聯絡運營商檢查分組限流配置部署情況並觀察業務恢復情況。

2. 按攻擊流量協議分類

(1) syn/fin/ack等tcp協議包:
設定預警閥值和響應閥值,前者開始報警,後者開始處理,根據流量大小和影響程度調整防護策略和防護手段,逐步升級。
(2) UDP/DNS query等UDP協議包:
對於大部分遊戲業務來說,都是TCP協議的,所以可以根據業務協議制定一份TCP協議白名單,如果遇到大量UDP請求,可以不經產品確認或者延遲跟產品確認,直接在系統層面/HPPS或者清洗裝置上丟棄UDP包。
(3) http flood/CC等需要跟資料庫互動的攻擊:
這種一般會導致資料庫或者webserver負載很高或者連線數過高,在限流或者清洗流量後可能需要重啟服務才能釋放連線數,因此更傾向在系統資源能夠支撐的情況下調大支援的連線數。相對來說,這種攻擊防護難度較大,對防護裝置效能消耗很大。
(4) 其他:
icmp包可以直接丟棄,先在機房出口以下各個層面做丟棄或者限流策略。現在這種攻擊已經很少見,對業務破壞力有限。