想象一下有人使用不同的電話號碼一遍又一遍地打電話給你,而你也無法將他們列入黑名單。最終你可能會選擇關(guān)閉手機,從而避免騷擾。這個場景就是常見的分布式拒絕服務(wù)(DDoS)攻擊的樣子。
喬布斯(Steve Jobs)推出第一款iPhone之前,DDoS攻擊就已經(jīng)存在了。它們非常受黑客歡迎,因為它們非常有效,易于啟動,并且?guī)缀醪粫粝潞圹E。那么如何防御DDoS攻擊呢?你能否確保對你的web服務(wù)器和應(yīng)用程序提供高級別的DDoS攻擊防護?在本文中,我們將討論如何防止DDoS攻擊,并將介紹一些特定的DDoS保護和預(yù)防技術(shù)。
DDoS攻擊的類型和方法
分布式拒絕服務(wù)攻擊(簡稱DDoS)是一種協(xié)同攻擊,旨在使受害者的資源無法使用。它可以由一個黑客組織協(xié)同行動,也可以借助連接到互聯(lián)網(wǎng)的多個受破壞設(shè)備來執(zhí)行。這些在攻擊者控制下的設(shè)備通常稱為僵尸網(wǎng)絡(luò)。
有多種執(zhí)行DDoS攻擊的工具:例如Trinoo,Stacheldraht,Shaft,Knight,Mstream等。這些工具的可用性是DDoS攻擊如此廣泛和流行的原因之一。
DDoS攻擊可以持續(xù)數(shù)百小時
DDoS攻擊可能持續(xù)幾分鐘、幾小時、甚至是幾天??ò退够鶎嶒炇业囊环輬蟾骘@示,近年來時間最長的DDoS攻擊之一發(fā)生在2018年1月,它持續(xù)了將近300個小時。
發(fā)起DDoS攻擊有兩種常見方法:
利用軟件漏洞。黑客可以針對已知和未知軟件漏洞,并發(fā)送格式錯誤的數(shù)據(jù)包,以試圖破壞受害者的系統(tǒng)。
消耗計算或通信資源。黑客可以發(fā)送大量合法的數(shù)據(jù)包,從而消耗受害者的網(wǎng)絡(luò)帶寬、CPU或內(nèi)存,直到目標(biāo)系統(tǒng)無法再處理來自合法用戶的任何請求。
雖然沒有標(biāo)準(zhǔn)的DDoS攻擊分類,但我們可以將其分為四大類:
容量耗盡攻擊
協(xié)議攻擊
應(yīng)用程序攻擊
0 day漏洞DDoS攻擊
圖1顯示了DDoS攻擊的最常見分類之一。
圖1. DDoS攻擊的分類
讓我們仔細研究一下每種類型的攻擊。
容量耗盡攻擊
容量耗盡攻擊(Volumetric attacks)通常借助僵尸網(wǎng)絡(luò)和放大技術(shù),通過向終端資源注入大量流量來阻止對終端資源的訪問。最常見的容量耗盡攻擊類型有:
UDP洪水攻擊。黑客發(fā)送用戶數(shù)據(jù)報協(xié)議(UDP)包偽造受害者的源地址到隨機端口。主機生成大量的回復(fù)流量并將其發(fā)送回受害者。
ICMP洪水攻擊。黑客使用大量的互聯(lián)網(wǎng)控制消息協(xié)議(ICMP)請求或ping命令,試圖耗盡受害者的服務(wù)器帶寬。
Netscout在2018年報告了迄今為止最大的DDoS攻擊之一:一家美國服務(wù)提供商的客戶面臨著1.7 Tbps的大規(guī)模反射放大攻擊。
協(xié)議攻擊
根據(jù)Verisign 2018年第1季度DDoS趨勢報告,協(xié)議攻擊針對的是協(xié)議工作方式的漏洞,這是第二大最常見的攻擊媒介。最常見的協(xié)議攻擊類型有:
SYN洪水攻擊。黑客利用了三向握手TCP機制的漏洞??蛻舳藢YN數(shù)據(jù)包發(fā)送到服務(wù)器,接收SYN-ACK數(shù)據(jù)包,并且永遠不會將ACK數(shù)據(jù)包發(fā)送回主機。因此,受害者的服務(wù)器留下了許多未完成的SYN-ACK請求,并最終導(dǎo)致崩潰。
死亡之Ping。攻擊–黑客使用簡單的Ping命令發(fā)送超大數(shù)據(jù)包,從而導(dǎo)致受害者的系統(tǒng)凍結(jié)或崩潰。
SYN洪水攻擊是2014年用來摧毀在線賭博網(wǎng)站的五種攻擊媒介之一。
應(yīng)用程序攻擊
應(yīng)用程序攻擊利用協(xié)議棧(六),協(xié)議棧(七)中的漏洞,針對特定的應(yīng)用程序而不是整個服務(wù)器。它們通常針對公共端口和服務(wù),如DNS或HTTP。最常見的應(yīng)用程序攻擊有:
HTTP洪水攻擊。攻擊者用大量的標(biāo)準(zhǔn)GET和POST請求淹沒應(yīng)用程序或web服務(wù)器。由于這些請求通常顯示為合法流量,因此檢測HTTP洪水攻擊是一個相當(dāng)大的挑戰(zhàn)。
Slowloris。正如其名,Slowloris緩慢地使受害者的服務(wù)器崩潰。攻擊者按時間間隔和一小部分向受害者的服務(wù)器發(fā)送HTTP請求。服務(wù)器一直在等待這些請求完成,但永遠不會發(fā)生。最終,這些未完成的請求耗盡了受害者的帶寬,使合法用戶無法訪問服務(wù)器。
在2009年總統(tǒng)大選后,黑客專家利用Slowloris攻擊來關(guān)閉伊朗的政府網(wǎng)站。
0 day漏洞DDoS攻擊
除了眾所周知的攻擊之外,還存在0 day漏洞DDoS攻擊。他們利用尚未修補的未知軟件漏洞或使用不常見的攻擊媒介,因此更加難以檢測和防御。例如,早在2016年,攻擊者利用輕型目錄訪問協(xié)議(LDAP)發(fā)起了放大系數(shù)高達55的攻擊。
現(xiàn)在讓我們談?wù)剻z測DDoS攻擊的方法。
檢測DDoS攻擊
雖然不可能完全阻止DDoS攻擊的發(fā)生,但有一些有效的做法可以幫助你檢測和停止正在進行的DDoS攻擊。
異常檢測:統(tǒng)計模型和機器學(xué)習(xí)算法(例如神經(jīng)網(wǎng)絡(luò),決策樹和近鄰算法)可用于分析網(wǎng)絡(luò)流量并將流量模式分類為正?;駾DoS攻擊。你還可以搜索其他網(wǎng)絡(luò)性能因素中的異常,例如設(shè)備CPU利用率或帶寬使用情況。
基于知識的方法:使用諸如特征碼分析、狀態(tài)轉(zhuǎn)換分析、專家系統(tǒng)、描述腳本和自組織映射等方法,你可以通過將流量與已知攻擊的特定模式進行比較來檢測DDoS。
ACL和防火墻規(guī)則:除了入口/出口流量過濾之外,訪問控制列表(ACL)和防火墻規(guī)則可用于增強流量可見性。特別是,你可以分析ACL日志,以了解通過網(wǎng)絡(luò)運行的流量類型。你還可以根據(jù)特定的規(guī)則、簽名和模式配置web應(yīng)用程序防火墻來阻止可疑的傳入流量。
入侵防御和檢測系統(tǒng)警報:入侵防御系統(tǒng)(IPS)和入侵檢測系統(tǒng)(IDS)提供了額外的流量可見性。盡管誤報率很高,但是IPS和IDS警報可以作為異常和潛在惡意流量的早期指示。
在早期階段檢測正在進行的攻擊可以幫助你減輕其后果。但是,你可以采取適當(dāng)?shù)念A(yù)防措施來防范DDoS攻擊,使攻擊者更難淹沒或破壞你的網(wǎng)絡(luò)。
如何編寫一個有效的防護DDoS攻擊的解決方案
無論你是想創(chuàng)建自己的有效防護DDoS攻擊的解決方案,還是要為Web應(yīng)用程序?qū)ふ疑虡I(yè)化的DDoS攻擊防護系統(tǒng),都要牢記以下一些基本系統(tǒng)要求:
混合DDoS檢測方法?;谔卣鞔a和基于異常的檢測方法的組合是檢測不同類型的DDoS攻擊的關(guān)鍵。
防御3–4級和6–7級攻擊。如果你的解決方案能夠檢測并抵御所有三種主要類型的DDoS攻擊:容量攻擊、應(yīng)用攻擊和協(xié)議攻擊,則更可取。
有效的流量過濾。DDoS保護的最大挑戰(zhàn)之一是區(qū)分惡意請求與合法請求。很難創(chuàng)建有效的過濾規(guī)則,因為涉及DDoS攻擊的大多數(shù)請求看起來都好像是來自合法用戶。諸如速率限制之類的流行方法通常會產(chǎn)生很多誤報,導(dǎo)致阻止合法用戶訪問你的服務(wù)和應(yīng)用程序。
SIEM集成。將防DDoS解決方案與SIEM系統(tǒng)良好結(jié)合非常重要,這樣你就可以收集有關(guān)攻擊的信息,對其進行分析,并使用它來改善DDoS的保護并防止以后發(fā)生攻擊。
如果滿足這些要求對你來說太難了,那么考慮向?qū)<覍で髱椭D阈枰恢Ы?jīng)驗豐富的開發(fā)團隊,他們對網(wǎng)絡(luò)安全、云服務(wù)和web應(yīng)用程序有深入的了解,才能構(gòu)建高質(zhì)量的DDoS防御解決方案。像這樣的團隊很難在內(nèi)部組織起來,但你可以隨時尋求第三方團隊的幫助。
防止DDoS攻擊
即使你無法阻止DDoS攻擊的發(fā)生,但你有能力讓攻擊者更難關(guān)閉你的網(wǎng)站或應(yīng)用程序。這就是DDoS預(yù)防技術(shù)關(guān)鍵的地方。你可以使用兩種DDoS預(yù)防機制:常規(guī)預(yù)防措施和過濾技術(shù)。
常規(guī)的DDoS防護機制是比較常見的措施,可以幫助你使Web應(yīng)用程序或服務(wù)器對DDoS攻擊更具彈性。這些措施包括:
使用防火墻。雖然防火墻不能保護你的應(yīng)用程序或服務(wù)器免受復(fù)雜的DDoS攻擊,但它們?nèi)匀豢梢杂行У靥幚砗唵蔚墓簟?/p>
安裝最新的安全補丁。大多數(shù)攻擊針對特定的軟件或硬件漏洞,因此及時部署所有補丁可以幫助你降低攻擊風(fēng)險。
禁用未使用的服務(wù)。黑客攻擊的應(yīng)用程序和服務(wù)越少越好。確保禁用所有不需要和未使用的服務(wù)和應(yīng)用程序,以提高網(wǎng)絡(luò)的安全性。
過濾機制使用不同的方法來過濾流量并阻止?jié)撛诘奈kU請求。這些機制包括入口/出口過濾,基于歷史的IP過濾和基于路由器的數(shù)據(jù)包過濾。
保護Web應(yīng)用程序免受DDoS攻擊的最佳做法
除了特定的DDoS防范機制,還有幾種做法可以幫你的web應(yīng)用程序提供額外的DDoS保護:
限制漏洞數(shù)量。除非迫不得已,否則不要公開你的應(yīng)用程序和資源。這樣,你可以限制攻擊者可能針對的基礎(chǔ)架構(gòu)中的漏洞數(shù)量。你還可以禁止將互聯(lián)網(wǎng)流量直接發(fā)送到數(shù)據(jù)庫服務(wù)器和基礎(chǔ)結(jié)構(gòu)的其他關(guān)鍵部分。
擴展負載。考慮使用負載平衡器和內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN),通過平衡資源負載來減輕攻擊的影響,這樣即使在攻擊期間也可以保持在線。
仔細選擇你的云提供商。尋找一個值得信賴的云服務(wù)提供商,并提供自己的DDoS緩解策略。確保他們的策略可檢測和緩解基于協(xié)議,基于卷和應(yīng)用程序級別的攻擊。例如,一些云提供商使用anycasting網(wǎng)絡(luò)在具有相同IP地址的多臺機器之間劃分大量請求。
使用第三方DDoS緩解服務(wù)?–考慮將web應(yīng)用程序的保護委托給第三方供應(yīng)商。DDoS緩解服務(wù)甚至可以在問題流量到達受害者網(wǎng)絡(luò)之前將其清除。你可以從基于DNS的網(wǎng)關(guān)服務(wù)或基于協(xié)議的解決方案中查找有問題的邊界攻擊。
結(jié)論
黑客不斷使用和改進DDoS攻擊來破壞特定服務(wù)、大小型企業(yè)甚至公共和非營利組織的工作。這些攻擊的主要目的是耗盡受害者的資源,從而使他們的服務(wù)、應(yīng)用程序或網(wǎng)站崩潰。
雖然無法完全阻止DDoS攻擊的發(fā)生,但有一些有效的DDoS攻擊保護技術(shù)和方法可用于增強基礎(chǔ)設(shè)施抵御DDoS攻擊并減輕其后果。