在大規(guī)模CC攻擊中,單臺(tái)傀儡機(jī)發(fā)包的速率往往遠(yuǎn)超過(guò)正常用戶(hù)的請(qǐng)求頻率。針對(duì)這種場(chǎng)景,直接對(duì)請(qǐng)求源設(shè)置限速規(guī)則是最有效的辦法。推薦您使用WAF自定義防護(hù)策略功能的頻率設(shè)置,配置限速策略,具體操作請(qǐng)參見(jiàn)設(shè)置自定義防護(hù)策略。
配置示例:您可以配置以下規(guī)則,當(dāng)一個(gè)IP在30秒內(nèi)訪(fǎng)問(wèn)當(dāng)前域名下任意路徑的次數(shù)超過(guò)1000次,則封禁該IP的請(qǐng)求10個(gè)小時(shí)。該規(guī)則可以作為一般中小型站點(diǎn)的預(yù)防性配置。
在大規(guī)模CC攻擊中,單臺(tái)傀儡機(jī)發(fā)包的速率往往遠(yuǎn)超過(guò)正常用戶(hù)的請(qǐng)求頻率。針對(duì)這種場(chǎng)景,直接對(duì)請(qǐng)求源設(shè)置限速規(guī)則是最有效的辦法。推薦您使用WAF自定義防護(hù)策略功能的頻率設(shè)置,配置限速策略,具體操作請(qǐng)參見(jiàn)設(shè)置自定義防護(hù)策略。
配置示例:您可以配置以下規(guī)則,當(dāng)一個(gè)IP在30秒內(nèi)訪(fǎng)問(wèn)當(dāng)前域名下任意路徑的次數(shù)超過(guò)1000次,則封禁該IP的請(qǐng)求10個(gè)小時(shí)。該規(guī)則可以作為一般中小型站點(diǎn)的預(yù)防性配置。
請(qǐng)求特征畸形或不合理
由于很多CC攻擊請(qǐng)求是攻擊者隨意構(gòu)造的,在仔細(xì)觀(guān)察日志后,往往會(huì)發(fā)現(xiàn)這些請(qǐng)求有很多與正常請(qǐng)求不相符的畸形報(bào)文特征。常見(jiàn)的畸形報(bào)文特征包括:
user-agent異;蚧危豪,包含Python等自動(dòng)化工具特征、明顯格式錯(cuò)亂的UA(例如Mozilla///)、明顯不合理的UA(例如www.baidu.com)。如果存在以上請(qǐng)求特征,可以直接封禁請(qǐng)求。
user-agent不合理:例如,對(duì)于微信推廣的H5頁(yè)面,正常用戶(hù)都應(yīng)該通過(guò)微信發(fā)起訪(fǎng)問(wèn),如果UA來(lái)自于Windows桌面瀏覽器(例如MSIE 6.0),則明顯是不合理的。如果存在以上請(qǐng)求特征,可以直接封禁請(qǐng)求。
referer異常:例如,不帶referer或referer固定且來(lái)自于非法站點(diǎn),則可以封禁這種請(qǐng)求(訪(fǎng)問(wèn)網(wǎng)站首頁(yè)或第一次訪(fǎng)問(wèn)頁(yè)面的情形除外)。針對(duì)只能通過(guò)某個(gè)站內(nèi)地址跳轉(zhuǎn)訪(fǎng)問(wèn)的URL,您可以從referer角度分析行為異常,決定是否封禁。
cookie異常:正常用戶(hù)往往會(huì)在請(qǐng)求中帶上屬于網(wǎng)站本身業(yè)務(wù)集的一些cookie(第一次訪(fǎng)問(wèn)頁(yè)面的情形除外)。很多情況下,CC攻擊的報(bào)文不會(huì)攜帶任何cookie。您可以從這個(gè)角度出發(fā),封禁不帶cookie的訪(fǎng)問(wèn)請(qǐng)求。
缺少某些HTTP header:例如,針對(duì)一些業(yè)務(wù)中需要的認(rèn)證頭等,正常用戶(hù)的請(qǐng)求會(huì)攜帶,而攻擊報(bào)文則不會(huì)。
不正確的請(qǐng)求方法:例如,本來(lái)只有POST請(qǐng)求的接口被大量GET請(qǐng)求攻擊,則可以直接封禁GET請(qǐng)求。
配置示例:
攔截不帶cookie的請(qǐng)求。
攔截不帶authorization頭的請(qǐng)求。
濫刷接口(登錄、注冊(cè)、短信、投票等)
對(duì)于網(wǎng)頁(yè)環(huán)境(包括H5)中的一些關(guān)鍵接口,例如登錄、注冊(cè)、投票、短信驗(yàn)證碼等,推薦您使用數(shù)據(jù)風(fēng)控功能進(jìn)行防護(hù)。
數(shù)據(jù)風(fēng)控在關(guān)鍵接口頁(yè)面中插入JS代碼,采集用戶(hù)在頁(yè)面上的操作行為和環(huán)境信息,綜合判斷發(fā)送至關(guān)鍵接口的請(qǐng)求是否來(lái)自于真實(shí)的用戶(hù)(而不是自動(dòng)化工具腳本)。數(shù)據(jù)風(fēng)控判定的依據(jù)主要來(lái)自于人機(jī)識(shí)別的結(jié)果,跟發(fā)送請(qǐng)求的頻率、來(lái)源IP沒(méi)有關(guān)系,針對(duì)一些低頻、分散的攻擊請(qǐng)求有很好的效果。
惡意掃描
大規(guī)模的掃描行為會(huì)給服務(wù)器帶來(lái)很大壓力,除了限制訪(fǎng)問(wèn)請(qǐng)求頻率外,您還可以使用掃描防護(hù)功能來(lái)加強(qiáng)防護(hù)效果。掃描防護(hù)支持以下設(shè)置:
高頻Web攻擊封禁:自動(dòng)封禁連續(xù)觸發(fā)Web防護(hù)規(guī)則的客戶(hù)端IP。
目錄遍歷防護(hù):自動(dòng)封禁在短時(shí)間內(nèi)進(jìn)行多次目錄遍歷攻擊的客戶(hù)端IP。
掃描工具封禁:自動(dòng)封禁來(lái)自常見(jiàn)掃描工具或阿里云惡意掃描攻擊IP庫(kù)中IP的訪(fǎng)問(wèn)請(qǐng)求。
協(xié)同防御:自動(dòng)阻斷阿里云全球惡意掃描攻擊IP庫(kù)中IP的訪(fǎng)問(wèn)請(qǐng)求。
具體操作請(qǐng)參見(jiàn)設(shè)置掃描防護(hù)。
App攻擊
針對(duì)App攻擊,除上述頻率設(shè)置、地域級(jí)IP黑名單、ACL訪(fǎng)問(wèn)控制等手段,您也可以接入云盾SDK進(jìn)行防護(hù)。
SDK方案通過(guò)將SDK集成到App中,對(duì)請(qǐng)求進(jìn)行安全簽名和校驗(yàn),并結(jié)合各種硬件信息,綜合識(shí)別請(qǐng)求是否來(lái)自于合法的App。只要不是來(lái)自于官方App的合法請(qǐng)求,一概攔截。這是一種“白名單”思路,只放行合法的請(qǐng)求,而不用去分析非法請(qǐng)求的特征。
SDK防護(hù)需要開(kāi)啟App防護(hù)模塊后才可以使用。具體操作請(qǐng)參見(jiàn)設(shè)置App防護(hù)。
常見(jiàn)的DDoS攻擊包括以下幾類(lèi):
網(wǎng)絡(luò)層攻擊
比較典型的攻擊類(lèi)型是UDP反射攻擊,例如NTP Flood攻擊。這類(lèi)攻擊主要利用大流量擁塞被攻擊者的網(wǎng)絡(luò)帶寬,導(dǎo)致被攻擊者的業(yè)務(wù)無(wú)法正常響應(yīng)客戶(hù)訪(fǎng)問(wèn)。
傳輸層攻擊
比較典型的攻擊類(lèi)型包括SYN Flood攻擊、連接數(shù)攻擊等。這類(lèi)攻擊通過(guò)占用服務(wù)器的連接池資源從而達(dá)到拒絕服務(wù)的目的。
會(huì)話(huà)層攻擊
比較典型的攻擊類(lèi)型是SSL連接攻擊。這類(lèi)攻擊占用服務(wù)器的SSL會(huì)話(huà)資源從而達(dá)到拒絕服務(wù)的目的。
應(yīng)用層攻擊
比較典型的攻擊類(lèi)型包括DNS flood攻擊、HTTP flood攻擊(即CC攻擊)、游戲假人攻擊等。這類(lèi)攻擊占用服務(wù)器的應(yīng)用處理資源,極大地消耗服務(wù)器計(jì)算資源,從而達(dá)到拒絕服務(wù)的目的。
DDoS攻擊緩解最佳實(shí)踐
建議阿里云用戶(hù)從以下幾個(gè)方面著手緩解DDoS攻擊的威脅:
縮小暴露面,隔離資源和不相關(guān)的業(yè)務(wù),降低被攻擊的風(fēng)險(xiǎn)。
配置安全組
盡量避免將非業(yè)務(wù)必須的服務(wù)端口暴露在公網(wǎng)上,從而避免與業(yè)務(wù)無(wú)關(guān)的請(qǐng)求和訪(fǎng)問(wèn)。通過(guò)配置安全組可以有效防止系統(tǒng)被掃描或者意外暴露。
關(guān)于安全組的詳細(xì)介紹,請(qǐng)參見(jiàn)創(chuàng)建安全組。
使用專(zhuān)有網(wǎng)絡(luò)VPC(Virtual Private Cloud )
通過(guò)專(zhuān)有網(wǎng)絡(luò)VPC實(shí)現(xiàn)網(wǎng)絡(luò)內(nèi)部邏輯隔離,防止來(lái)自?xún)?nèi)網(wǎng)傀儡機(jī)的攻擊。
關(guān)于專(zhuān)有網(wǎng)絡(luò)VPC的詳細(xì)介紹,請(qǐng)參見(jiàn)什么是專(zhuān)有網(wǎng)絡(luò)。
優(yōu)化業(yè)務(wù)架構(gòu),利用公共云的特性設(shè)計(jì)彈性伸縮和災(zāi)備切換的系統(tǒng)。
科學(xué)評(píng)估業(yè)務(wù)架構(gòu)性能
在業(yè)務(wù)部署前期或運(yùn)營(yíng)期間,技術(shù)團(tuán)隊(duì)?wèi)?yīng)該對(duì)業(yè)務(wù)架構(gòu)進(jìn)行壓力測(cè)試,以評(píng)估現(xiàn)有架構(gòu)的業(yè)務(wù)吞吐處理能力,為DDoS防御提供詳細(xì)的技術(shù)參數(shù)指導(dǎo)信息。
彈性和冗余架構(gòu)
通過(guò)負(fù)載均衡或異地多中心架構(gòu)避免業(yè)務(wù)架構(gòu)中出現(xiàn)單點(diǎn)故障。如果您的業(yè)務(wù)在阿里云上,可以靈活地使用負(fù)載均衡服務(wù)SLB(Server Load Balancer)實(shí)現(xiàn)多臺(tái)服務(wù)器的多點(diǎn)并發(fā)處理業(yè)務(wù)訪(fǎng)問(wèn),將用戶(hù)訪(fǎng)問(wèn)流量均衡分配到各個(gè)服務(wù)器上,降低單臺(tái)服務(wù)器的壓力,提升業(yè)務(wù)吞吐處理能力,這樣可以有效緩解一定流量范圍內(nèi)的連接層DDoS攻擊。
關(guān)于負(fù)載均衡的詳細(xì)介紹,請(qǐng)參見(jiàn)入門(mén)概述。
部署彈性伸縮
彈性伸縮(Auto Scaling)是根據(jù)用戶(hù)的業(yè)務(wù)需求和策略,經(jīng)濟(jì)地自動(dòng)調(diào)整彈性計(jì)算資源的管理服務(wù)。通過(guò)部署彈性伸縮,系統(tǒng)可以有效的緩解會(huì)話(huà)層和應(yīng)用層攻擊,在遭受攻擊時(shí)自動(dòng)增加服務(wù)器,提升處理性能,避免業(yè)務(wù)遭受?chē)?yán)重影響。
關(guān)于彈性伸縮的詳細(xì)介紹,請(qǐng)參見(jiàn)開(kāi)通和授權(quán)服務(wù)。
優(yōu)化DNS解析
通過(guò)智能解析的方式優(yōu)化DNS解析,可以有效避免DNS流量攻擊產(chǎn)生的風(fēng)險(xiǎn)。同時(shí),建議您將業(yè)務(wù)托管至多家DNS服務(wù)商,并可以從以下方面考慮優(yōu)化DNS解析。
屏蔽未經(jīng)請(qǐng)求發(fā)送的DNS響應(yīng)信息
丟棄快速重傳數(shù)據(jù)包
啟用TTL
丟棄未知來(lái)源的DNS查詢(xún)請(qǐng)求和響應(yīng)數(shù)據(jù)
丟棄未經(jīng)請(qǐng)求或突發(fā)的DNS請(qǐng)求
啟動(dòng)DNS客戶(hù)端驗(yàn)證
對(duì)響應(yīng)信息進(jìn)行緩存處理
使用ACL的權(quán)限
利用ACL、BCP38及IP信譽(yù)功能
提供余量帶寬
通過(guò)服務(wù)器性能測(cè)試,評(píng)估正常業(yè)務(wù)環(huán)境下所能承受的帶寬和請(qǐng)求數(shù)。在購(gòu)買(mǎi)帶寬時(shí)確保有一定的余量帶寬,可以避免遭受攻擊時(shí)帶寬大于正常使用量而影響正常用戶(hù)的情況。
服務(wù)器安全加固,提升服務(wù)器自身的連接數(shù)等性能。
對(duì)服務(wù)器上的操作系統(tǒng)、軟件服務(wù)進(jìn)行安全加固,減少可被攻擊的點(diǎn),增大攻擊方的攻擊成本:
確保服務(wù)器的系統(tǒng)文件是最新的版本,并及時(shí)更新系統(tǒng)補(bǔ)丁。
對(duì)所有服務(wù)器主機(jī)進(jìn)行檢查,清楚訪(fǎng)問(wèn)者的來(lái)源。
過(guò)濾不必要的服務(wù)和端口。例如,對(duì)于WWW服務(wù)器,只開(kāi)放80端口,將其他所有端口關(guān)閉,或在防火墻上設(shè)置阻止策略。
限制同時(shí)打開(kāi)的SYN半連接數(shù)目,縮短SYN半連接的timeout時(shí)間,限制SYN、ICMP流量。
仔細(xì)檢查網(wǎng)絡(luò)設(shè)備和服務(wù)器系統(tǒng)的日志。一旦出現(xiàn)漏洞或是時(shí)間變更,則說(shuō)明服務(wù)器可能遭到了攻擊。
限制在防火墻外進(jìn)行網(wǎng)絡(luò)文件共享。降低黑客截取系統(tǒng)文件的機(jī)會(huì),若黑客以特洛伊木馬替換它,文件傳輸功能將會(huì)陷入癱瘓。
充分利用網(wǎng)絡(luò)設(shè)備保護(hù)網(wǎng)絡(luò)資源。在配置路由器時(shí)應(yīng)考慮針對(duì)流控、包過(guò)濾、半連接超時(shí)、垃圾包丟棄、來(lái)源偽造的數(shù)據(jù)包丟棄、SYN閾值、禁用ICMP和UDP廣播的策略配置。
通過(guò)iptable之類(lèi)的軟件防火墻限制疑似惡意IP的TCP新建連接,限制疑似惡意IP的連接、傳輸速率。
做好業(yè)務(wù)監(jiān)控和應(yīng)急響應(yīng)。
關(guān)注基礎(chǔ)DDoS防護(hù)監(jiān)控
當(dāng)您的業(yè)務(wù)遭受DDoS攻擊時(shí),基礎(chǔ)DDoS默認(rèn)會(huì)通過(guò)短信和郵件方式發(fā)出告警信息,針對(duì)大流量攻擊基礎(chǔ)DDoS防護(hù)也支持電話(huà)報(bào)警,建議您在接受到告警的第一時(shí)間進(jìn)行應(yīng)急處理。
關(guān)于配置告警消息接收人和語(yǔ)音告警方式,請(qǐng)參見(jiàn)設(shè)置黑洞告警通知。
云監(jiān)控
云監(jiān)控服務(wù)可用于收集、獲取阿里云資源的監(jiān)控指標(biāo)或用戶(hù)自定義的監(jiān)控指標(biāo),探測(cè)服務(wù)的可用性,并支持針對(duì)指標(biāo)設(shè)置警報(bào)。
關(guān)于云監(jiān)控的詳細(xì)介紹,請(qǐng)參見(jiàn)什么是云監(jiān)控。
建立應(yīng)急響應(yīng)預(yù)案
根據(jù)當(dāng)前的技術(shù)業(yè)務(wù)架構(gòu)和人員,提前準(zhǔn)備應(yīng)急技術(shù)預(yù)案,必要時(shí)可以提前進(jìn)行技術(shù)演練,以檢驗(yàn)應(yīng)急響應(yīng)預(yù)案的合理性。
選擇合適的商業(yè)安全方案。阿里云既提供了免費(fèi)的基礎(chǔ)DDoS防護(hù),也提供了商業(yè)安全方案。
Web應(yīng)用防火墻(WAF)
針對(duì)網(wǎng)站類(lèi)應(yīng)用,例如常見(jiàn)的HTTP Flood攻擊,可以使用WAF可以提供針對(duì)連接層攻擊、會(huì)話(huà)層攻擊和應(yīng)用層攻擊進(jìn)行有效防御。
關(guān)于WAF的詳細(xì)介紹,請(qǐng)參見(jiàn)什么是Web應(yīng)用防火墻。
工作原理
DDoS高防支持通過(guò)DNS解析和IP直接指向兩種引流方式,實(shí)現(xiàn)網(wǎng)站域名和業(yè)務(wù)端口的接入防護(hù)。根據(jù)您在DDoS高防中為業(yè)務(wù)配置的轉(zhuǎn)發(fā)規(guī)則,DDoS高防將業(yè)務(wù)的DNS域名解析或業(yè)務(wù)IP指向DDoS高防實(shí)例IP或CNAME地址進(jìn)行引流。
來(lái)自公網(wǎng)的訪(fǎng)問(wèn)流量都將優(yōu)先經(jīng)過(guò)高防機(jī)房,惡意攻擊流量將在高防流量清洗中心進(jìn)行清洗過(guò)濾,正常的訪(fǎng)問(wèn)流量通過(guò)端口協(xié)議轉(zhuǎn)發(fā)的方式返回給源站服務(wù)器,從而保障源站服務(wù)器的穩(wěn)定訪(fǎng)問(wèn)。