我想使用 AWS WAF 來防範暴力破解登入攻擊。
解決方法
以下 AWS WAF 功能有助於防範暴力破解登入攻擊:
- 速率型規則
- CAPTCHA 謎題
- AWS WAF 帳戶盜用預防措施 (ATP) 受管規則群組
- AWS WAF 的安全自動化
速率型規則
若要在請求率高於預期時封鎖請求,請建立速率型規則陳述式。若要建立速率型規則的閾值,請啟用 AWS WAF 記錄。然後,根據您的記錄目的地,使用 Amazon Athena 或 Amazon CloudWatch Log Insights 分析您的日誌。
您也可以建立特定 URI 路徑的速率型規則陳述式,例如 /login。暴力破解攻擊通常以登入頁面為目標,企圖取得帳戶憑證。網站上的不同頁面可能會收到不同頻率的請求。例如,與登入頁面相比,首頁的流量可能會更高。
建立閾值後,使用以下範圍縮小陳述式來建立特定於您的登入頁面的基於速率的規則陳述式:
- 在 Inspect Request (檢查請求) 中,選擇 URI path (URI 路徑)。
- 在 Match type (比對類型) 中,選擇 Starts with string (以字串開頭)。
- 在 String to match (要比對的字串) 中,選擇 /login。
CAPTCHA 謎題
CAPTCHA 謎題可以協助防範以下攻擊:
- 來自機器人的暴力破解攻擊
- 憑證填充
- 網頁抓取
- 向伺服器傳送垃圾請求
當您建立包含 CAPTCHA 動作的規則時,使用者必須先完成 CAPTCHA 才能登入。
若要在登入頁面上設定 CAPTCHA,請使用下列規則組態:
- 在 Inspect (檢查) 中,選擇 URI path (URI 路徑)。
- 在 Match Type (比對類型) 中,選擇 Starts with string (以字串開頭)。
- 在 String to match (要比對的字串) 中,選擇 /login。
- 在 Action (動作) 中,選擇 CAPTCHA。
- 在 Immunity time (免疫時間),請選擇 Time in seconds (以秒為單位的時間)。
**注意:**為防範人類的暴力破解攻擊,請設定較低的免疫時間。
如需詳細資訊,請參閱使用 CAPTCHA 和質詢動作的最佳方法。
ATP 受管規則群組
若要檢查試圖接管您帳戶的惡意請求,請使用 ATP 受管規則群組。例如,暴力破解登入攻擊可以透過反覆試驗來猜測憑證,以未經授權的方式存取您的帳戶。
ATP 受管規則群組包含預先定義規則,可針對意外請求和登入嘗試提供可見性和控制能力。
若要檢查要求,請使用 ATP 受託規則群組中的下列規則子集:
- **VolumetricIpHigh:**單一 IP 位址傳送大量請求。
- **AttributePasswordTraversal:**嘗試使用密碼遍歷。
- **AttributeLongSession:**嘗試使用長時間持續工作階段。
- **AttributeUsernameTraversal:**嘗試使用使用者名稱遍歷。
- **VolumetricSession:**各個工作階段傳送大量請求。
- **MissingCredential:**缺少憑證。
如需詳細資訊,請參閱帳戶盜用預防措施規則清單。
AWS WAF 的安全自動化
若要使用 AWS CloudFormation 範本部署包含一組規則的 Web 存取控制清單 (Web ACL),請執行 Security Automations for AWS WAF。
當未經授權的使用者嘗試猜測正確的憑證時,使用者會收到錯誤回應,例如 401 未授權。掃描器和探測器規則會封鎖持續接收特定回應代碼的 IP 位址的請求。當您啟用此規則時,AWS WAF 的安全自動化會部署 AWS Lambda 或 Athena 查詢,以檢查日誌中的 HTTP 回應代碼。設定請求可以接收相同錯誤代碼次數的閾值,以及規則封鎖超過閾值請求的時間。
相關資訊
在 AWS WAF 中使用速率型規則陳述式