一次對抗大規(guī)模DDoS的真實(shí)經(jīng)歷
每個(gè)網(wǎng)站都會(huì)面對網(wǎng)絡(luò)攻擊。唯一的區(qū)別在于,如何建設(shè)防御,以及如何進(jìn)行警報(bào)和響應(yīng)。
在網(wǎng)絡(luò)上很難找到關(guān)于防御黑客攻擊的真實(shí)案例。一方面,信息披露可能會(huì)引發(fā)官司,另一方面,披露這些信息往往會(huì)導(dǎo)致不良的財(cái)務(wù)后果,因此各公司往往不情愿分享相關(guān)細(xì)節(jié)。然而,如果我們完全不披露這些故事,會(huì)使其它人在不知情的情況下犯相同的錯(cuò)誤。如果我們?yōu)榻⑼{情報(bào)共享體系做出貢獻(xiàn),分享網(wǎng)絡(luò)安全戰(zhàn)場上的真實(shí)經(jīng)驗(yàn),可以讓事情變得更好。
乙方是一家SaaS(軟件即服務(wù))公司,為大中型企業(yè)提供網(wǎng)頁內(nèi)容管理服務(wù)。其服務(wù)的客戶A公司專注于幫助醫(yī)療供應(yīng)商提高運(yùn)營和財(cái)務(wù)績效,A公司為數(shù)千家醫(yī)院和醫(yī)療保健機(jī)構(gòu)客戶提供服務(wù),管理數(shù)十億美元的開支。
要分析的這次DDoS攻擊的規(guī)模極大:在攻擊高峰時(shí),8600萬個(gè)用戶同時(shí)從世界各地的超過10萬臺主機(jī)上訪問網(wǎng)站(當(dāng)事方聯(lián)系了FBI)。當(dāng)攻擊結(jié)束39小時(shí)后,防護(hù)方艱難的取得防御性勝利。下面是事件過程:
瘋狂攻擊
A公司的年度會(huì)議即將召開,會(huì)議將有15000人參加。會(huì)議的前一天晚上,乙方收到了警報(bào)消息。A公司的網(wǎng)站服務(wù)器正承載著難以置信的網(wǎng)絡(luò)流量。需要說明的是,A公司也是一家SaaS提供商,為客戶提供數(shù)據(jù)內(nèi)容和分析,因此這種程度的訪問量會(huì)極大地影響該公司的服務(wù)質(zhì)量和信譽(yù)。沒有多少時(shí)間,必需快速做出響應(yīng)。
所有訪問請求都來自百分百合法的URL。所以很難分辨出其中的惡意流量 攻擊來源遍布世界各地:北朝鮮、愛沙尼亞、立陶宛、中國、俄羅斯、南美 60%的訪問量來自美國本土 攻擊者直接解除DNS和攻擊IP地址的關(guān)聯(lián)
一開始,防御方使用AWS(Amazon Web Service)Route 53,重新配置了一些文件,然后立即切斷了與這些IP地址的通信。在成功抵御了最初的幾波攻擊后,網(wǎng)絡(luò)似乎恢復(fù)了正常,但事實(shí)證明,這只是第一波,而接下來的才是更瘋狂的攻擊。
當(dāng)天傍晚,攻擊再次發(fā)起并直接指向DNS域名,這意味著之前的IP攔截策略不再奏效,眼看著數(shù)據(jù)流量急劇上升。
放棄還是抵抗
乙方和A公司的首席信息官進(jìn)行了討論,最后達(dá)成一致意見:決定抵抗到底。作為一家SaaS公司,提供持續(xù)、可靠的服務(wù),維持公司信譽(yù)是重中之重。雙方同意分擔(dān)預(yù)計(jì)為數(shù)萬美元的防御成本,為正義而戰(zhàn)。
經(jīng)過仔細(xì)審視第二波攻擊,防御方意識到可以立即采取一些緩解措施:
1. A公司的業(yè)務(wù)只面向美國客戶,不過也有少部分流量來自國外。因此防御方迅速地建立了一些防火墻規(guī)則,這些規(guī)則只允許來自美國的流量通過。于是,40%的攻擊流量被拒之門外。
2. 在AWS(Amazon Web Service)Route 53后面加了一道網(wǎng)絡(luò)應(yīng)用防火墻,配置了一些HA代理,這可以為FBI收集大量的登錄信息,便于他們進(jìn)行事后分析工作。
3. 調(diào)整流量自動(dòng)縮放的配置。自動(dòng)縮放會(huì)根據(jù)接入流量規(guī)模大小調(diào)整自己的上下閾值。將下閾值調(diào)整得比上閾值大得多,這意味著系統(tǒng)在流量變大時(shí)會(huì)做出合適的反應(yīng),但永遠(yuǎn)不會(huì)達(dá)到流量下閾值。結(jié)果,每個(gè)運(yùn)行的實(shí)例都會(huì)在服務(wù)列表中永續(xù)存在,記錄完整無損的登錄信息,以備FBI分析。兵來將擋,水來土淹
攻擊者放大攻擊強(qiáng)度,AWS就放大防御強(qiáng)度。攻擊者進(jìn)一步放大攻擊強(qiáng)度,AWS就進(jìn)一步放大防御強(qiáng)度,這樣的情景在第二天反復(fù)上演。與此同時(shí),乙方每小時(shí)就向A公司的董事會(huì)負(fù)責(zé)人匯報(bào)一次情況。
在DDoS攻擊的最高峰,共部署了18臺大型、計(jì)算機(jī)能力加強(qiáng)版的HA代理服務(wù)器,40臺大型網(wǎng)頁服務(wù)器。網(wǎng)頁服務(wù)器群特別大,因?yàn)楸M管阻隔了美國本土外的流量,降低了總數(shù)據(jù)流量的40%,但剩下的60%來源于美國本土的連接中也包括合法的URL。大多數(shù)連接都在訪問動(dòng)態(tài)服務(wù),這部分訪問記錄不太容易抓取。
攻擊者的目標(biāo)是一個(gè)非常大型的全球化機(jī)構(gòu)。防御方通過非常穩(wěn)定的HA代理防火墻和負(fù)載均衡配置,部署了高度延展的網(wǎng)頁服務(wù)器群。然后就是云防護(hù)(CloudFront),這是AWS的全球內(nèi)容分發(fā)網(wǎng)絡(luò)。再然后是Route 53,Route 53是AWS的全球冗余DNS平臺。這些設(shè)備共同組成了關(guān)鍵基礎(chǔ)設(shè)施,提供了在每一層上的可擴(kuò)展性和安全性。
在第二天晚上7點(diǎn)左右,事情開始發(fā)生轉(zhuǎn)變。在加強(qiáng)了防御強(qiáng)度后,攻擊者并沒有進(jìn)一步增加攻擊強(qiáng)度。此時(shí)此刻,服務(wù)器正承載著來自全球10萬臺主機(jī)的8600萬個(gè)攻擊連接,通過AWS基礎(chǔ)設(shè)施的流量達(dá)到每秒20GB。
攻擊者無計(jì)可施,只能反復(fù)地發(fā)動(dòng)攻擊,最后直到完全放棄。事后A公司的首席執(zhí)行官告訴我們,如果他們的網(wǎng)站托管在自己的數(shù)據(jù)中心,防御的選擇就會(huì)非常少,而且可能在攻擊開始僅僅八個(gè)小時(shí)之內(nèi)就會(huì)完全無力應(yīng)對。#p#
最后核算一下防御成本,本次通過亞馬遜網(wǎng)絡(luò)服務(wù)成功進(jìn)行的這次長達(dá)36個(gè)小時(shí)的防御,費(fèi)用不超過1500美元。雙方平攤的話,各方還不到750美元。
下面是這次在大規(guī)模DDoS攻擊中存活下來的經(jīng)驗(yàn),以及一些可以用來加強(qiáng)數(shù)據(jù)中心,并保護(hù)公司網(wǎng)站的策略:
1. 針對DDoS攻擊設(shè)計(jì)、配置、測試你的設(shè)備。借助你的托管服務(wù)商的經(jīng)驗(yàn)來進(jìn)行這些測試,善用他們的援助。
2. 確認(rèn)你的網(wǎng)絡(luò)環(huán)境中的“正常”是什么樣子。這樣在網(wǎng)絡(luò)狀態(tài)進(jìn)入“不正常”狀態(tài)時(shí)可以即時(shí)設(shè)置報(bào)警。
3. 將你面向公共的域名別名化(alias)到內(nèi)部域名。這可以讓你在幕后進(jìn)行快速響應(yīng),并實(shí)時(shí)做出DNS修正,而不需要依賴第三方服務(wù)供應(yīng)商。
4. 學(xué)會(huì)如何有效地在可能受到威脅的情況下進(jìn)行DNS修正。經(jīng)常進(jìn)行練習(xí)。
5. DDoS攻擊會(huì)用到數(shù)百個(gè)攻擊向量,試圖耗盡服務(wù)器的資源。流量測試會(huì)啟動(dòng)許多并行線程,這可能使DDoS攻擊更加兇猛。每個(gè)測試都至少應(yīng)當(dāng)運(yùn)行三小時(shí),以維持響應(yīng)時(shí)間,但在兩次測試之間應(yīng)留出足夠的響應(yīng)區(qū)間。在進(jìn)行顯著性測試、風(fēng)險(xiǎn)懸浮以及取消服務(wù)之前應(yīng)當(dāng)授予明確的許可。
6. 在進(jìn)行自動(dòng)放大配置時(shí),不要將CPU負(fù)載作為量度。DDoS攻擊的最好證據(jù)就是接入HTTP請求的數(shù)量上升,因此最好將接入連接數(shù)作為觸發(fā)警報(bào)的量度。
7. 防御規(guī)模應(yīng)當(dāng)增加得迅速,但下降得緩慢。增加和下降的速度比應(yīng)當(dāng)設(shè)置為4:1或2:1。這會(huì)使系統(tǒng)在應(yīng)對第一波攻擊時(shí)響應(yīng)快速,之后也不需要反復(fù)增加規(guī)模。特別是在攻擊者采取放風(fēng)箏戰(zhàn)術(shù),即撤退后又殺回來的情況下。
8. 如果使用AWS彈性負(fù)載均衡(AWS Elastic Load Balancing),激活“交叉地帶負(fù)載均衡”選項(xiàng)。這對于均衡后端服務(wù)器群的流量而言是最好選擇,會(huì)顯著地減輕DNS設(shè)施上的負(fù)載。
安全行業(yè)需要集體合作,更好地了解敵人的戰(zhàn)術(shù)、技術(shù)和攻擊流程,以在和惡意黑客的戰(zhàn)斗中取得先機(jī)。