全部產品
Search
文件中心

Web Application Firewall:規則庫管理

更新時間:Dec 27, 2024

在您使用Web Application Firewall(Web Application Firewall,簡稱WAF)3.0時,可以通過規則庫管理查看系統內建的所有防護規則,以及配置適用於混合雲防護的自訂防護規則。本文介紹了如何通過規則庫管理功能配置您的自訂防護規則。

系統防護規則

系統防護規則由阿里雲安全團隊後台維護和更新,目前僅支援查看。

  1. 登入Web Application Firewall3.0控制台。在頂部功能表列,選擇WAF執行個體的資源群組和地區(中国内地非中国内地在左側導覽列,選擇检测与响应 > 規則庫管理

  2. 選擇系統防護規則。頁簽左側展示規則資訊,頁簽右側展示規則更新動態情況。

自訂防護規則

自訂規則只適用於混合雲防護對象。在規則庫管理中,您可以對自訂規則進行新增、查看、編輯、刪除。

建立自訂防護規則

  1. 登入Web Application Firewall3.0控制台。在頂部功能表列,選擇WAF執行個體的資源群組和地區(中国内地非中国内地

  2. 在左側導覽列,選擇检测与响应 > 規則庫管理

  3. 選擇自訂防護規則地區,單擊建立規則完成以下模板配置後,單擊確定

    配置項

    說明

    規則名稱

    支援中文和大小寫英文字母,可包含數字、半形句號(.)、底線(_)和短劃線(-)。

    檢測模組名稱

    支援SQL注入跨站指令碼代碼執行CRLF本地檔案包含遠程檔案包含webshell其它OS命令注入運算式注入Java還原序列化PHP還原序列化SSRF路徑穿透協議違背任意檔案上傳檔案包含等。

    規則等級

    自訂規則所屬的規則等級。支援寬鬆中等嚴格超嚴格

    規則狀態

    預設狀態為關閉,請前往防護模板-引擎配置頁面開啟生效。

    規則動作

    建立規則的規則動作預設為攔截,您可以在Web核心防護規則模板的引擎配置面板中啟用規則時變更。

    規則描述

    描述該規則的條件及目的,非必填項。

    匹配欄位

    設定該規則要匹配的請求特徵。

    規則中最多支援添加十個條件。如果定義了多個條件,需同時滿足才算命中規則。

    每個條件由匹配字段逻辑符匹配内容組成。配置樣本如下:

    • 樣本1:匹配字段URI逻辑符包含匹配内容/login.php,表示當被請求的路徑包含/login.php時,則請求命中該規則。

    • 樣本2:匹配字段IP逻辑符屬於匹配内容192.1X.XX.XX,表示當發起串連的用戶端IP為192.1.XX.XX時,則請求命中該規則。

    關於匹配欄位和邏輯符的更多說明,請參見匹配條件說明

    說明

    單個帳號(包含子帳號)最多建立200條自訂規則

  4. 頁面提示操作成功後,證明規則建立完成。

啟用自訂防護規則

在建立自訂防護規則後,若想讓該防護規則關聯對應混合雲防護對象,需要進入規則引擎配置啟用。

  1. 在左側導覽列,選擇防护配置 > Web 核心防护Web 核心防护模板下方基礎防護規則地區找到目標規則模版,單擊操作列下的編輯

  2. 進入編輯模板 - 基礎防護規則面板後,單擊引擎配置進入自訂防護規則,選擇你的目標規則將規則狀態開啟。

編輯自訂防護規則

自訂防護規則頁面中,單擊操作列下的編輯,在編輯規則的彈窗中可以編輯規則名稱、規則等級規則狀態規則描述、匹配欄位。完成編輯後,單擊確定,待頁面彈出操作成功的提示後,您能在頁面上查看編輯後的規則資訊。

刪除自訂防護規則

自訂防護規則頁面中,選擇要刪除的目標規則,單擊操作列下的刪除,刪除該規則。

重要

一旦規則被刪除,即使在檢測引擎中將該規則的狀態設定為“啟用”,該規則也將不再生效,並在檢測引擎中同步刪除。

匹配條件說明

支援的匹配欄位

匹配欄位

說明

支援的邏輯符

FileName

匹配請求中整個檔案的特徵。例如abc.php

包含、正則匹配、等於、首碼匹配、尾碼匹配。

File Extension

匹配URL中副檔名中的特徵,例如:.jspa。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Http-Method

匹配要求方法,例如:GET/POST/DELETE/PUT/OPTIONS/CONNECT/HEAD/TRACE/PATCH

包含、正則匹配、等於、首碼匹配、尾碼匹配。

URI PATH

匹配請求中的當前URI,不帶請求參數,等價於path。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

RAW-URL

匹配請求中的當前URI,不帶請求參數,不做解碼。例如:%2Ftest.php。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

URI

如/login.php?a=1,不包含網域名稱。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Directory

匹配完整路徑中的特徵,包括uri和file,例如:/abc/123.txt。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Param

匹配參數和參數名中的特徵,例如:?a=b , ?號以後的範圍。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Body

匹配請求body中的特徵,例如:完整的body,不做key/value拆分。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Multipart-Keys

請求的Content-Type: multipart/form-data。匹配的範圍是檔案名稱。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Multipart-Values

請求的Content-Type: multipart/form-data。匹配的範圍是檔案內容。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Raw-Header

匹配完整header中的特徵,不做解碼,不做key/value拆分。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Header-Keys

匹配header中k-v的特徵,匹配範圍是header的key。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Header-Values

匹配header中k-v的特徵,匹配範圍是header的value。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Query-Arg-Keys

匹配url中參數名的特徵,例如:/test.php?k=v,匹配k。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Quer-Arg-Values

queryarg_values 匹配url中參數值的特徵,例如:/test.php?k=v,匹配v。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Post-Arg-Keys

匹配body中參數名的特徵,form表單格式,例如:body裡k=v,匹配範圍是k。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Post-Arg-Values

匹配body中參數值的特徵,form表單格式,例如:body裡k=v,匹配範圍是v。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Cookie-Keys

cookie_keys 匹配cookie中參數名的特徵,例如:cookie: a=b;c=d,匹配a或者c。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Cookie-Values

匹配cookie中參數值的特徵,例如:cookie: a=b;c=d,匹配b或者d。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Multipart

例如:multipart格式,filename=../test, multipart.filename, 可以精準匹配到filename後的值,避免過度匹配。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Query String Parameter

假設您有一個URL如下:

https://example.com/path?queryarg.k=value1&queryarg.other=value2

在這個URL中,您關心的查詢參數是queryarg.k,而它的值是value1。queryarg.k , 可以精準匹配到k後的值,避免過度匹配,同時避免提取到queryarg.other或者其他類似的查詢參數。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Header

cookie:../test ,header.cookie, 可以精準匹配到cookie後的值,避免過度匹配。

包含、正則匹配、等於、首碼匹配、尾碼匹配。

Body Paramter

在請求的body中, postarg.k 可以精準匹配到v後的值,避免過度匹配。

包含、正則匹配、等於、首碼匹配、尾碼匹配。