一次對抗大規模DDoS的真實經歷

2021-12-29 20:01:09 字數 3074 閱讀 2416

每個**都會面對網路攻擊。唯一的區別在於,如何建設防禦,以及如何進行警報和響應。

在網路上很難找到關於防禦黑客攻擊的真實案例。一方面,資訊披露可能會引發官司,另一方面,披露這些資訊往往會導致不良的財務後果,因此各公司往往不情願分享相關細節。然而,如果我們完全不披露這些故事,會使其它人在不知情的情況下犯相同的錯誤。如果我們為建立威脅情報共享體系做出貢獻,分享網路安全戰場上的真實經驗,可以讓事情變得更好。

乙方是一家saas(軟體即服務)公司,為大中型企業提供網頁內容管理服務。其服務的客戶a公司專注於幫助醫療**商提高運營和財務績效,a公司為數千家醫院和醫療保健機構客戶提供服務,管理數十億美元的開支。

要分析的這次ddos攻擊的規模極大:在攻擊高峰時,8600萬個使用者同時從世界各地的超過10萬台主機上訪問**(當事方聯絡了fbi)。當攻擊結束39小時後,防護方艱難的取得防禦性勝利。下面是事件過程:

瘋狂攻擊

a公司的年度會議即將召開,會議將有15000人參加。會議的前一天晚上,乙方收到了警報訊息。a公司的**伺服器正承載著難以置信的網路流量。需要說明的是,a公司也是一家saas提供商,為客戶提供資料內容和分析,因此這種程度的訪問量會極大地影響該公司的服務質量和信譽。沒有多少時間,必需快速做出響應。

所有訪問請求都來自百分百合法的url。所以很難分辨出其中的惡意流量

攻擊**遍布世界各地:北朝鮮、愛沙尼亞、立陶宛、中國、俄羅斯、南美

60%的訪問量來自美國本土

攻擊者直接解除dns和攻擊ip位址的關聯

一開始,防禦方使用aws(amazon web service)route 53,重新配置了一些檔案,然後立即切斷了與這些ip位址的通訊。在成功抵禦了最初的幾波攻擊後,網路似乎恢復了正常,但事實證明,這只是第一波,而接下來的才是更瘋狂的攻擊。

當天傍晚,攻擊再次發起並直接指向dns網域名稱,這意味著之前的ip攔截策略不再奏效,眼看著資料流量急劇上公升。

放棄還是抵抗

乙方和a公司的首席資訊官進行了討論,最後達成一致意見:決定抵抗到底。作為一家saas公司,提供持續、可靠的服務,維持公司信譽是重中之重。雙方同意分擔預計為數萬美元的防禦成本,為正義而戰。

經過仔細審視第二波攻擊,防禦方意識到可以立即採取一些緩解措施:

1. a公司的業務只面向美國客戶,不過也有少部分流量來自國外。因此防禦方迅速地建立了一些防火牆規則,這些規則只允許來自美國的流量通過。於是,40%的攻擊流量被拒之門外。

2. 在aws(amazon web service)route 53後面加了一道網路應用防火牆,配置了一些ha**,這可以為fbi收集大量的登入資訊,便於他們進行事後分析工作。

3. 調整流量自動縮放的配置。自動縮放會根據接入流量規模大小調整自己的上下閾值。將下閾值調整得比上閾值大得多,這意味著系統在流量變大時會做出合適的反應,但永遠不會達到流量下閾值。結果,每個執行的例項都會在服務列表中永續存在,記錄完整無損的登入資訊,以備fbi分析。

兵來將擋,水來土淹

攻擊者放大攻擊強度,aws就放大防禦強度。攻擊者進一步放大攻擊強度,aws就進一步放大防禦強度,這樣的情景在第二天反覆上演。與此同時,乙方每小時就向a公司的董事會負責人匯報一次情況。

在ddos攻擊的最高峰,共部署了18臺大型、計算機能力加強版的ha**伺服器,40臺大型網頁伺服器。網頁伺服器群特別大,因為儘管阻隔了美國本土外的流量,降低了總資料流量的40%,但剩下的60%**於美國本土的連線中也包括合法的url。大多數連線都在訪問動態服務,這部分訪問記錄不太容易抓取。

攻擊者的目標是乙個非常大型的全球化機構。防禦方通過非常穩定的ha**防火牆和負載均衡配置,部署了高度延展的網頁伺服器群。然後就是雲防護(cloudfront),這是aws的全球內容分發網路。再然後是route 53,route 53是aws的全球冗餘dns平台。這些裝置共同組成了關鍵基礎設施,提供了在每一層上的可擴充套件性和安全性。

在第二天晚上7點左右,事情開始發生轉變。在加強了防禦強度後,攻擊者並沒有進一步增加攻擊強度。此時此刻,伺服器正承載著來自全球10萬台主機的8600萬個攻擊連線,通過aws基礎設施的流量達到每秒20gb。

攻擊者無計可施,只能反覆地發動攻擊,最後直到完全放棄。事後a公司的首席執行官告訴我們,如果他們的**託管在自己的資料中心,防禦的選擇就會非常少,而且可能在攻擊開始僅僅八個小時之內就會完全無力應對。

最後核算一下防禦成本,本次通過亞馬遜網路服務成功進行的這次長達36個小時的防禦,費用不超過1500美元。雙方平攤的話,各方還不到750美元。

下面是這次在大規模ddos攻擊中存活下來的經驗,以及一些可以用來加強資料中心,並保護公司**的策略:

1.針對ddos攻擊設計、配置、測試你的裝置。借助你的託管服務商的經驗來進行這些測試,善用他們的援助。

2.確認你的網路環境中的「正常」是什麼樣子。這樣在網路狀態進入「不正常」狀態時可以即時設定報警。

3.將你面向公共的網域名稱別名化(alias)到內部網域名稱。這可以讓你在幕後進行快速響應,並實時做出dns修正,而不需要依賴第三方服務**商。

4.學會如何有效地在可能受到威脅的情況下進行dns修正。經常進行練習。

5.ddos攻擊會用到數百個攻擊向量,試圖耗盡伺服器的資源。流量測試會啟動許多並行執行緒,這可能使ddos攻擊更加兇猛。每個測試都至少應當執行三小時,以維持響應時間,但在兩次測試之間應留出足夠的響應區間。在進行顯著性測試、風險懸浮以及取消服務之前應當授予明確的許可。

6.在進行自動放大配置時,不要將cpu負載作為量度。ddos攻擊的最好證據就是接入http請求的數量上公升,因此最好將接入連線數作為觸發警報的量度。

7.防禦規模應當增加得迅速,但下降得緩慢。增加和下降的速度比應當設定為4:1或2:1。這會使系統在應對第一波攻擊時響應快速,之後也不需要反覆增加規模。特別是在攻擊者採取放風箏戰術,即撤退後又殺回來的情況下。

8.如果使用aws彈性負載均衡(aws elastic load balancing),啟用「交叉地帶負載均衡」選項。這對於均衡後端伺服器群的流量而言是最好選擇,會顯著地減輕dns設施上的負載。

安全行業需要集體合作,更好地了解敵人的戰術、技術和攻擊流程,以在和惡意黑客的戰鬥中取得先機。

cs論壇

關注網路空間安全(cyber security),解讀趨勢前瞻,聚焦管理策略、體系指引,為企業、機構安全規劃與實施提供諮詢建議。

一次真實的DDoS攻擊防禦實戰

第一輪進攻 突然發現公司的web server無法訪問,嘗試遠端登入,無法連線,呼叫idc重啟伺服器。啟動後立即登入察看,發現攻擊還在繼續,並且apache所有230個程序全部處於工作狀態。由於伺服器較老,記憶體只有512m,於是系統開始用swap,系統進入停頓狀態。於是殺掉所有httpd,稍後伺服...

記錄一次大規模linux系統root密碼撞庫的經歷

在某公司做了乙個專案,查詢公司幾十萬臺主機的root密碼是否是弱密碼。該過程涉及到任務下發,資料處理和上報等過程,這裡不介紹其他模組,只介紹收集部分。一 怎麼判斷linux主機密碼是否是弱密碼 首先linux下面的密碼儲存在passwd和shadow檔案中,其中passwd檔案儲存賬戶名,shado...

恆大汽車車展一次亮相9車 明年大規模交付

4月19日,上海國際車展正式揭開帷幕,國內各大汽車廠商,也趁此契機,推出自家旗下的重磅車型。上海車展,恆大汽車也沒有缺席,並且一口氣首發亮相九款車型,這在國內汽車史上也是頭次出現。在造車領域,恆大汽車雖然起得晚,但是勢必要趕上早集。恆大汽車表示,這九款車型可程式設計客棧覆蓋全球95 的豪華車細分市場...