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

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

AWS WAF 規則

本節說明什麼是 AWS WAF 規則及其運作方式。

AWS WAF 規則會定義如何檢查 HTTP(S) Web 請求,以及在符合檢查條件時對請求採取的動作。您只能在規則群組或 Web ACL 的內容中定義規則。

規則本身不存在於 中 AWS WAF 。它們不是 AWS 資源,也沒有 Amazon Resource Name (ARNs)。您可以在定義規則的規則群組或 Web ACL 中依名稱存取規則。您可以使用規則群組的 JSON 檢視或包含規則的 Web ACLs,來管理規則並將其複製到其他 Web ACL。您也可以透過 AWS WAF 主控台規則建置器來管理它們,該建置器可供 Web ACLs 和規則群組使用。

規則名稱

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

注意

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

規則陳述式

每個規則還需要規則陳述式,以定義規則如何檢查 Web 請求。規則陳述式可能包含任何深度的其他巢狀陳述式,取決於規則和陳述式類型。有些規則陳述式採用一組條件。例如,您可以為 IP 集比對規則指定最多 10,000 個 IP 地址或 IP 地址範圍。

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

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

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

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

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

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

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

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

除了具有 Web 請求檢查條件的陳述式之外,與上述清單中的陳述式一樣, AWS WAF 還支援 ANDOR和 的邏輯陳述式NOT,您可以將陳述式結合在規則中。

例如,根據您最近從攻擊者看到的請求,您可以建立規則,其中包含結合下列巢狀陳述式的邏輯AND陳述式:

  • 來自 192.0.2.44 的請求。

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

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

在這種情況下,Web 請求需要符合所有陳述式,才能使最上層 相符AND