概觀

分散式拒絕服務 (DDoS) 攻擊是指惡意嘗試透過大量的網際網路流量,來破壞目標伺服器、服務或網路的正常流量。如果無法有效緩解,DDoS 攻擊可能會導致 Web 應用程式的可用性降低或回應時間降級。在這種情況下,如果應用程式擴展以吸收攻擊,則會產生不樂見的擴展成本。幸運的是,在 AWS 上建置的應用程式受益於原生 DDoS 防護機制,而且可以設計成使用 AWS 服務和安全控制來高度抵禦這些攻擊。

AWS 的 DDoS 防護方法

安全性是 AWS 和客戶的共同責任。 AWS 負責保護讓 AWS 雲端服務更加穩固的基礎設施。為保障其基礎設施,AWS 採用原生防護,免受基礎設施 DDoS 攻擊 (在第 3 層和第 4 層),並且無需額外費用。這些保護透過 Shield Standard 提供,並以下列元件為基礎:

  • 監控系統,分析聯網裝置和服務日誌中的各種來源 (例如 NetFlow),以偵測 DDoS 攻擊。
  • 清理系統,使用深度封包檢查、防火牆和流量管制,清理 DDoS 攻擊的流量。針對 CloudFront 和 Route 53 等服務,清理系統會部署在其連接點 (POP) 內,從而實現低於 1 秒的偵測和緩解。相比之下,針對 ALB 或 EC2 等區域服務,清理系統在偵測後通常可在幾分鐘內緩解攻擊。
  • Shield 回應團隊可快速解決監控和清理系統未自動偵測和緩解的 DDoS 攻擊。

在共同的責任模型中,您對 DDoS 防護的責任取決於您使用的 AWS 雲端服務,這會確定您必須執行的組態工作量。例如,公開來自 S3 而非 EC2 執行個體的檔案,可減少您針對 DDoS 攻擊所需的安全控制。無論使用哪些服務,AWS 都提供在您的責任範圍內保護、監控和回應 DDoS 攻擊的功能。

您負責使用 AWS 服務來設計 DDoS 彈性架構。最佳實務包括:

  • 使用適用於 Web 應用程式的 CloudFront,並在其他使用案例中使用 Global Accelerator,以便從 AWS 分散式邊緣網路數百個 Tbps 的緩解容量中受益。CloudFront 和 Global Accelerator 均採用進階 DDoS 緩解技術,例如 SYN Proxy,透過傳送 SYN Cookie 來質詢新的連線,之後再允許上游繼續,以提供 SYN 泛洪攻擊保護。CloudFront 提供最快速 (不到毫秒) 和最完整的保護,防止所有已知的第 3 層和 4 層 DDoS 攻擊,以及針對 HTTP 通訊協定 (例如 Slowloris 和HTTP/2 快速重設攻擊) 的 DDoS 攻擊。
  • 使用來源隱藏技術減少來源的受攻擊面。
  • 準備應用程式進行擴展,例如使用基於 EC2 的來源自動擴展。
  • 使用 AWS WAF 封鎖 HTTP 泛洪攻擊
  • 監控您的應用程式行為以警示異常活動、分析威脅,以及使用預先建立的執行手冊進行回應,並且可向 AWS 尋求支援。
利用 AWS 邊緣服務保障基礎設施免遭 DDoS 攻擊

使用 AWS WAF 封鎖 HTTP 泛洪攻擊

為有效封鎖 HTTP 泛洪攻擊 (第 7 層的 DDoS 攻擊),AWS WAF 提供了多種規則的組合。

  • 拒絕任何非預期請求模式,來減少應用程式表面攻擊的規則。例如,您可編寫規則來拒絕 URL 不符合您的 API URL 結構描述的請求、API 不支援 HTTP 動詞的請求,或者只是並非網域名稱一部分的主機標頭值。此類規則會立即封鎖不需要的流量。
  • IP 信譽為基礎的規則,封鎖信譽不良 IP 的流量。您可根據 AWS 收集的威脅情報來使用 Amazon 受管規則、AWS Marketplace 供應商針對 AWS WAF 的受管規則(例如 Imperva),或者建置自己的 IP 信譽清單並自動更新 AWS WAF。以 IP 信譽為基礎的規則往往會立即封鎖大部分 HTTP 泛洪攻擊。
  • 速率限制規則,根據設定的維度 (例如 IP) 來彙總請求,然後在特定期間 (例如 1 分鐘) 內彙總請求磁碟區超過設定的閾值 (例如 100 個請求) 時封鎖流量。速率限制會在數十秒鐘內封鎖違反流量,直至流量低於設定的閾值。如果您想要延長速率限制的封鎖持續時間,請實作這篇部落格中所述的自訂解決方案。速率限制規則的範例包括:以 IP 為基礎且具有較高閾值 (例如 2 000) 的總括規則、以 IP 為基礎且具有較低閾值的 URI 特定 (例如 /login) 規則 (例如 100)、在您未經營有意義業務的國家/地區、以 Cookie 為基礎來封鎖違反驗證工作階段的國家/地區規則等。
  • 使用 JavaScript 質詢動作的規則,可立即封鎖執行 JavaScript 失敗的工具所產生的不需要的流量,並且像合法瀏覽器一樣解決質詢。
  • 機器人控制規則,可防範逃避機器人組織的 HTTP 泛洪攻擊。使用 AWS WAF 機器人控制功能的機器人管理技術包括行為偵測、以 ML 為基礎的協調活動偵測、瀏覽器自動化偵測和 CAPTCHA 質詢。偵測和緩解會在數十秒鐘內發生。
  • 以攻擊特徵為基礎的規則,由 Shield Advanced 的自動應用程式層 DDoS 緩解 (L7AM) 自動建立。啟用此 Shield Advanced 功能時,AWS WAF WebACL 中會建立空的受管規則群組,並監控您的應用程式流量至少 72 小時,以建立正常流量基準。流量設定檔與建立的基準存在顯著偏差時,Shield Advanced 會發出 DDoS 偵測訊號,並開始分析攻擊簽名的流量。如果找到簽名,則會先對過去的流量進行測試,以降低誤報風險,然後如果使用它是安全的,則會將對應的 WAF 規則放置在先前建立的規則群組中。在一定時間後,當攻擊停止時,規則會自動從規則群組中移除。成功後,此程序需要幾分鐘。

此外,您還可實作適應感知的威脅層級的動態 WAF 規則,在較高嚴重性 DDoS 攻擊期間啟用更激進的回應 (例如 CAPTCHA 或質詢動作)。進一步了解如何使用此解決方案來實作此模式。

使用 AWS WAF 的 DDoS 防護

Using Shield Advanced

Shield Advanced 是一項額外的 AWS 服務,可提升防禦 DDoS 攻擊的安全狀態。它使用適用於 Web 應用程式的 AWS WAF,在第 7 層提供自動緩解措施,並為非 Web 應用程式提供更好的保護,例如在具有較高頻寬容量的邊界網路強制執行網路存取控制清單 (NACL) 規則。透過 Shield Advanced,未自動緩解的攻擊可以呈報到 Shield 應變小組進行手動緩解。

比較 AWS Shield Standard 與 AWS Shield Advanced
AWS Shield 應變小組增加的價值

為充分利用 Shield Advanced 的完整功能,建議您:

  1. 在訂閱 Shield Advanced 後,將 Shield Advanced 防護新增至您面向網際網路的 AWS 資源。必須在攻擊前 72 小時採取保護措施,以確保應用程式流量達到基準並應用緩解措施。
  2. 對於 CloudFront 和 ALB 資源,請將 AWS WAF WebACL 與上一節所述的最佳實務 (例如:速率限制、IP 信譽等) 建立關聯。為這些資源啟用第 7 層保護。或者,設定 AWS WAF 日誌記錄。
  3. 設定主動參與,以接受 AWS Shield 應變小組 (SRT) 的直接聯繫。您可以在建立 Amazon Route53 運作狀態檢查之前啟用主動參與。與應用程式相關聯的運作狀態檢查可提升 Shield Advanced 的偵測敏感度。例如,當運作狀態檢查偵測到應用程式傳回的 5xx 錯誤增加時,Shield Advanced 會降低偵測閥值。觀看這個短片以了解如何設定運作狀態檢查。
  4. 為 Shield 和 WAF 設定 CloudWatch 警示,以便在您遭受攻擊時收到通知。

若要稽核 Shield Advanced 的組態,請在 AWS Systems Manager 中執行 DDoSResiliencyAssessment 執行手冊。它會收集、分析和評估下列資源:Amazon Route 53、Amazon Load Balancers、Amazon CloudFront 分發、AWS Global Accelerator 和 AWS Elastic IP,根據建議的 AWS Shield Advanced 最佳實務進行其組態設定。

測試 DDoS 恢復能力

允許在 AWS 上進行 DDoS 模擬測試,並遵循本頁面詳述的條款和條件。AWS 提供兩種選項來執行 DDoS 模擬測試:透過授權的預先核准 AWS 合作夥伴 (例如 NCC Group plc、RedWolf 和 Red Button),在生產流量中進行模擬 DDoS 攻擊;或者使用 Shield Response Team 進行合成模擬 DDoS 攻擊,也稱為 Firedrill。

資源

本頁對您是否有幫助?