DDoS的攻擊方式
1、Synflood
該攻擊以多個隨機的源主機地址向目的主機發(fā)送SYN包,而在收到目的主機的SYN ACK后并不回應。
這樣,目的主機就為這些源主機建立了大量的連接隊列,而且由于沒有收到ACK一直維護著這些隊列,造成了資源的大量消耗,最終導致拒絕服務。
2、Smurf
該攻擊向一個子網的廣播地址發(fā)一個帶有特定請求(如ICMP回應請求)的包,并且將源地址偽裝成想要攻擊的主機地址。
子網上所有主機都回應廣播包請求而向被攻擊主機發(fā)包,使該主機受到攻擊。
3、Land-based
攻擊者將一個包的源地址和目的地址都設置為目標主機的地址,然后將該包通過IP欺騙的方式發(fā)送給被攻擊主機,這種包可以造成被攻擊主機因試圖與自己建立連接而陷入死循環(huán),從而很大程度地降低了系統(tǒng)性能。
4、Ping of Death
根據TCP/IP的規(guī)范,一個包的長度最大為65536字節(jié)。盡管一個包的長度不能超過65536字節(jié),但是一個包分成的多個片段的疊加卻能做到。
當一個主機收到了長度大于65536字節(jié)的包時,就是收到了Ping of Death攻擊,該攻擊會造成主機的宕機。
5、Teardrop
IP數據包在網絡傳遞時,數據包可以分成更小的片段。攻擊者可以通過發(fā)送兩段(或者更多)數據包來實現TearDrop攻擊。第一個包的偏移量為0,長度為N,第二個包的偏移量小于N。
為了合并這些數據段,TCP/IP堆棧會分配超乎尋常的巨大資源,從而造成系統(tǒng)資源的缺乏甚至機器的重新啟動。
6、PingSweep
使用ICMP Echo輪詢多個主機。
7、Pingflood
該攻擊在短時間內向目的主機發(fā)送大量ping包,造成網絡堵塞或主機資源耗盡。
DDOS攻擊防御方法
1、按攻擊流量規(guī)模分類
(1) 較小流量:小于1000Mbps,且在服務器硬件與應用接受范圍之內,并不影響業(yè)務的: 利用iptables或者DDoS防護應用實現軟件層防護。
(2) 大型流量:大于1000Mbps,但在DDoS清洗設備性能范圍之內,且小于機房出口,可能影響相同機房的其他業(yè)務的:利用iptables或者DDoS防護應用實現軟件層防護,或者在機房出口設備直接配置黑洞等防護策略,或者同時切換域名,將對外服務IP修改為高負載Proxy集群外網IP,或者CDN高仿IP,或者公有云DDoS網關IP,由其代理到RealServer;或者直接接入DDoS清洗設備。
(3) 超大規(guī)模流量:在DDoS清洗設備性能范圍之外,但在機房出口性能之內,可能影響相同機房的其他業(yè)務,或者大于機房出口。
已經影響相同機房的所有業(yè)務或大部分業(yè)務的:聯(lián)系運營商檢查分組限流配置部署情況并觀察業(yè)務恢復情況。
2、按攻擊流量協(xié)議分類
(1) syn/fin/ack等tcp協(xié)議包:設置預警閥值和響應閥值,前者開始報警,后者開始處理,根據流量大小和影響程度調整防護策略和防護手段,逐步升級。
(2) UDP/DNS query等UDP協(xié)議包:對于大部分游戲業(yè)務來說,都是TCP協(xié)議的,所以可以根據業(yè)務協(xié)議制定一份TCP協(xié)議白名單,如果遇到大量UDP請求,可以不經產品確認或者延遲跟產品確認,直接在系統(tǒng)層面/HPPS或者清洗設備上丟棄UDP包。
(3) http flood/CC等需要跟數據庫交互的攻擊:這種一般會導致數據庫或者webserver負載很高或者連接數過高,在限流或者清洗流量后可能需要重啟服務才能釋放連接數,因此更傾向在系統(tǒng)資源能夠支撐的情況下調大支持的連接數。
相對來說,這種攻擊防護難度較大,對防護設備性能消耗很大。
(4) 其他:icmp包可以直接丟棄,先在機房出口以下各個層面做丟棄或者限流策略。現在這種攻擊已經很少見,對業(yè)務破壞力有限。