AWS WAF 規則 - AWS WAF、 AWS Firewall Manager、和 AWS Shield Advanced

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS WAF 規則

AWS WAF 規則定義如何檢查 HTTP (S) Web 要求,以及符合檢查準則時要對要求採取的動作。您只能在規則群組或 Web ACL 的前後關聯中定義規則。

規則不存在 AWS WAF 於他們自己。他們不是 AWS 資源,他們沒有 Amazon 資源名稱(ARN)。您可以在定義規則的規則群組或 Web ACL 中依名稱存取規則。您可以使用規則群組的 JSON 檢視或包含規則的 Web ACL,來管理規則並將其複製到其他 Web ACL。您也可以透過可供 Web ACL 和規則群組使用的 AWS WAF 主控台規則產生器來管理這些規則產生器。

規則名稱

每個規則都需要一個名稱。避免使用以開頭的名稱AWS和用於其他服務為您管理的規則群組或規則的名稱。請參閱由其他服務提供的規則群組

注意

如果您變更規則的名稱,並希望規則的量度名稱反映變更,您也必須更新量度名稱。 AWS WAF 變更規則名稱時,不會自動更新規則的度量名稱。您可以在主控台中編輯規則時,使用規則 JSON 編輯器變更量度名稱。您也可以透過 API 和任何用來定義 Web ACL 或規則群組的 JSON 清單中變更名稱。

規則陳述式

每個規則還需要規則語句來定義規則檢查 Web 請求的方式。視規則和陳述式類型而定,規則陳述式可能包含任何深度的其他巢狀陳述式。有些規則陳述式會採用一組準則。例如,您可以為 IP 集比對規則指定最多 10,000 個 IP 位址或 IP 位址範圍。

您可以定義檢查條件的規則,如下所示:

  • 指令碼可能為惡意。攻擊者可以利用 web 應用程式的漏洞內嵌指令碼。這稱為跨網站指令碼 (XSS)。

  • 發出請求的 IP 地址或地址範圍。

  • 發出請求的國家/地區或地理位置。

  • 請求的指定部分的長度,例如查詢字符串。

  • SQL 程式碼可能為惡意。攻擊者會藉由內嵌惡意 SQL 程式碼於 web 請求中,嘗試從您的資料庫碼擷取資料。此稱為 SQL Injection。

  • 字串會出現在請求,例如出現在 User-Agent 標頭的值或出現在查詢字串的文字字串。您也可以使用規則運算式 (regex) 指定這些字串。

  • Web ACL 中先前規則已新增至請求的標籤。

除了具有 Web 請求檢查條件的陳述式 (如前面清單中的陳述式) 之外,還 AWS WAF 支援AND、的邏輯陳述式ORNOT以及您用來合併規則中的陳述式。

例如,根據您最近從攻擊者看到的要求,您可能會使用邏輯AND陳述式建立規則,並結合下列巢狀陳述式:

  • 來自 192.0.2.44 的請求。

  • User-Agent 標頭中包含 BadBot 值。

  • 它們好像有包含類似 SQL 程式碼的查詢字串。

在這種情況下,Web 請求需要匹配所有語句才能與頂層匹配AND