DDos 攻擊自打出現(xiàn)以后,就成為最難防御的攻擊方式。僅僅在過去的一年里,DDoS 的數(shù)次爆發(fā)就讓人大開眼界:
2016年4月,黑客組織對暴雪娛樂發(fā)動了 DDoS 攻擊,魔獸世界、守望先鋒多款游戲出現(xiàn)宕機的情況。 2016年5月,黑客組織針對全球銀行機構(gòu)發(fā)動 DDoS 攻擊,導(dǎo)致約旦、韓國、摩納哥等國的央行系統(tǒng)陷入癱瘓。 2016年9月,法國主機商 OVH 受到 DDoS 攻擊,峰值達到1Tbps 2016年10月,DynDNS 受到 DDoS 攻擊,北美眾多網(wǎng)站無法訪問,受影響的網(wǎng)站均排前列。
在你不經(jīng)意之間,DDoS 可能已經(jīng)在互聯(lián)網(wǎng)上橫行無忌了。
在談攻防史之前,我們先來看看 DDoS 的攻擊原理,知己知彼,百戰(zhàn)不殆。
那么什么是 DDos 攻擊呢?
DDoS 攻擊是分布式拒絕服務(wù)攻擊(Distributed Denial of Service)的縮寫,核心是拒絕服務(wù)攻擊,通過使目標電腦的網(wǎng)絡(luò)或系統(tǒng)資源耗盡,使服務(wù)暫時中斷或停止,導(dǎo)致其正常用戶無法訪問。而攻擊的形式,又分為帶寬消耗型和資源消耗型。帶寬消耗型通過 UDP 洪水攻擊、ICMP 洪水攻擊以及其他攻擊類型;資源消耗型包含 CC攻擊、SYN 洪水攻擊、僵尸網(wǎng)絡(luò)攻擊等。不同的攻擊類型,我們的應(yīng)對措施有所不同。不過在我們的日常工作中,我們所使用的 DDoS 攻擊普遍是帶寬消耗型攻擊,也就是說,黑客會針對你的服務(wù)器發(fā)送海量 UDP 包、SYN 包,讓你的服務(wù)器的帶寬被攻擊流量占滿,無法對外提供服務(wù)。舉個例子:用戶通過網(wǎng)絡(luò)來訪問你的服務(wù)器就如同客人過橋來找你,但是由于你的錢只夠建立一個雙向四車道的橋,但是攻擊者派了 100 輛大卡車,堵在你的橋門口,導(dǎo)致沒有正常客人能夠過橋來找你。
在這種情況下,你如果想要讓你的客人能夠繼續(xù)訪問,那就需要升級你的大橋,來讓有空余的車道給你的客人來通過。但是,在中國的帶寬由三大運營商移動聯(lián)通電信提供接入,互聯(lián)網(wǎng)帶寬的成本是非常高的,而攻擊者使用肉雞攻擊,攻擊的成本要低很多,所以我們無法去無限制的升級我們的帶寬。
在互聯(lián)網(wǎng)的初期,人們?nèi)绾蔚挚?DDoS 攻擊?
DDoS 并不是現(xiàn)在才出現(xiàn)的,在過去,黑洞沒有出現(xiàn)的時候,人們?nèi)绾蔚挚?DDoS 攻擊呢? 在互聯(lián)網(wǎng)初期,IDC 并沒有提供防護的能力,也沒有黑洞,所以攻擊流量對服務(wù)器和交換機造成很大的壓力,導(dǎo)致網(wǎng)內(nèi)擁塞,回環(huán),甚至是服務(wù)器無法正常工作,很多IDC往往采用拔網(wǎng)線之類簡單粗暴的辦法來應(yīng)對。后來,一些 IDC 在入口加入了清洗的程序,能夠?qū)袅髁窟M行簡單的過濾,這樣就大大的減輕了服務(wù)器和內(nèi)網(wǎng)交換機的壓力。但是機房的承載能力也是有上限的,如果攻擊總量超出了機房的承載能力,那么會導(dǎo)致整個機房的入口被堵死,結(jié)果就是機房的所有服務(wù)器都因為網(wǎng)絡(luò)堵塞而無法對外提供服務(wù)。
后來,黑洞出現(xiàn)了,但是那時候的黑洞也是在機房的入口配置,只是減輕了服務(wù)器的壓力,如果攻擊的總量超出了機房的承載能力,最終還是因入口被堵塞而導(dǎo)致整個機房的服務(wù)器無法對外提供服務(wù)。在這種情況下,宣告了攻擊者的得手,沒有必要再盡心攻擊,但是如果攻擊者并沒有因為目標無法訪問而停手,那么機房入口仍有擁塞的風險。
后來,黑洞進一步升級,在機房黑洞之上采用了運營商聯(lián)動黑洞。在遇到大流量攻擊時,DDoS防御系統(tǒng)調(diào)用運營商黑洞,在運營商側(cè)丟棄流量,可以大大緩解DDoS攻擊對機房帶寬的壓力。
云計算平臺也廣泛采用了此類黑洞技術(shù)隔離被攻擊用戶,保證機房和未受攻擊用戶不受DDoS攻擊影響。 不僅如此,云計算平臺的優(yōu)勢在于提供了靈活可擴展的計算資源和網(wǎng)絡(luò)資源,通過整合這些資源,用戶可以有效緩解DDoS帶來的影響。
黑洞是如何抵擋 DDoS 攻擊的
目前最常用的黑洞防御手段的流程圖如上圖所示。攻擊時,黑客會從全球匯集攻擊流量,攻擊流量匯集進入運營商的骨干網(wǎng)絡(luò),再由骨干網(wǎng)絡(luò)進入下一級運營商,通過運營商的線路進入云計算機房,直到抵達云主機。 而我們的防御策略剛好是逆向的,云服務(wù)商與運營商簽訂協(xié)議,運營商支持云服務(wù)廠商發(fā)布的黑洞路由,并將黑洞路由擴散到全網(wǎng),就近丟棄指定IP的流量。當云服務(wù)商監(jiān)測到被攻擊,且超出了免費防御的限度后,為了防止攻擊流量到達機房的閾值,云計算系統(tǒng)會向上級運營商發(fā)送特殊的路由,丟棄這個 IP 的流量,使得流量被就近丟棄在運營商的黑洞中。
為什么托管服務(wù)商不會替你無限制承擔攻擊?
一般來說,服務(wù)商會幫你承擔少量的攻擊,因為很多時候可能是探測流量等,并非真實的攻擊,如果每次都丟入黑洞,用戶體驗極差。 DDoS攻擊是我們共同的敵人,大多數(shù)云計算平臺已經(jīng)盡力為客戶免費防御了大多數(shù)的DDoS,也和客戶共同承擔DDoS的風險。當你受到了大規(guī)模 DDoS 攻擊后,你不是唯一一個受害者,整個機房、集群都會受到嚴重的影響,所有的服務(wù)的穩(wěn)定性都無法保障。 除此之外,在上面我們說到,目前 DDoS 都是帶寬消耗型攻擊,帶寬消耗攻擊型想要解決就需要提升帶寬,但是,機房本身最大的成本便是帶寬費用。而帶寬是機房向電信、聯(lián)通、移動等通信運營商購買的,運營商的計費是按照帶寬進行計費的,而運營商在計費時,是不會將 DDoS 的攻擊流量清洗掉的,而是也算入計費中,就導(dǎo)致機房需要承擔高昂的費用。如果你不承擔相應(yīng)的費用,機房的無奈之下的選擇自然便是將你的服務(wù)器丟入黑洞。
當你的主機被攻擊后,服務(wù)商如何處理?
目前隨著大家都在普遍的上云,我們在這里整理了市場上的幾家云計算服務(wù)提供商的黑洞策略,來供你選擇。
AWS
AWS 的 AWS Sheild 服務(wù)為用戶提供了 DDoS 防御服務(wù)。該服務(wù)分為免費的標準版和收費的高級班,免費的標準版不承諾防護效果,存在屏蔽公網(wǎng) IP 的可能。付費版只需要每月交 3000 美元,則可以享受防護服務(wù)。
Azure
Azure 為用戶提供了免費的抗 DDoS 攻擊的服務(wù),但是不承諾防護的效果。如果攻擊的強度過大,影響到了云平臺本身,則存在屏蔽公網(wǎng) IP 的可能。
阿里云
阿里云的云盾服務(wù)為用戶提供 DDoS 攻擊的防護能力,在控制成本的情況下,會為用戶免費抵御 DDoS 攻擊,當攻擊超出閾值后,阿里云就會對被攻擊 IP 實行屏蔽操作。 阿里云免費為用戶提供最高 5Gbps 的惡意流量的攻擊防護,你可以在各個產(chǎn)品(ECS、SLB、EIP等)的產(chǎn)品售賣頁面看到相關(guān)的說明和條款。在其幫助文檔也說明了相關(guān)的服務(wù)的限制。
騰訊云
騰訊云也為用戶提供了免費的 DDoS 攻擊防護服務(wù),其免費提供的防御服務(wù)的標準如下:外網(wǎng) IP 被攻擊峰值超過 2Gbps 會執(zhí)行 IP 封堵操作(丟入黑洞),一般黑洞的時長為2小時,大流量攻擊時,封堵的時長從24小時到72小時不等。
普通 IDC
普通的 IDC 大多不提供防御能力,如果受到攻擊,會存在被拔網(wǎng)線的可能。
如何合理的借助云計算的能力來抵抗 DDoS 攻擊
合理的借助云計算的能力,可以讓我們盡可能的減少被攻擊時的損失:
1.充分利用云平臺的彈性可擴展資源。設(shè)計可以橫向擴展的系統(tǒng)架構(gòu),避免IP資源或者CPU資源耗盡,不僅可以有效緩解DDoS攻擊的影響,而且可以提升系統(tǒng)可靠性。
2.縮小攻擊半徑。在設(shè)計系統(tǒng)時分離應(yīng)用層和數(shù)據(jù)層,分離網(wǎng)絡(luò)訪問層和系統(tǒng)服務(wù)層,充分利用云服務(wù)提供商提供的云數(shù)據(jù)庫、云存儲、負載均衡、云網(wǎng)絡(luò)等產(chǎn)品,可以有效緩解DDoS攻擊的危害。
3.考慮選擇合適的DDoS防護方案,主動抵御可能出現(xiàn)的DDoS攻擊。
4.準備應(yīng)對DDoS預(yù)案,第一時間響應(yīng)并實施應(yīng)對方案。
5.利用CDN隱藏源服務(wù)器IP,替代防御,如百度云加速、CloudFlare