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