在您使用Web應用防火墻(Web Application Firewall,簡稱WAF)3.0時,可以通過規則庫管理查看系統內置的所有防護規則,以及配置適用于混合云防護的自定義防護規則。本文介紹了如何通過規則庫管理功能配置您的自定義防護規則。
系統防護規則
系統防護規則由阿里云安全團隊后臺維護和更新,目前僅支持查看。
登錄Web應用防火墻3.0控制臺。在頂部菜單欄,選擇WAF實例的資源組和地域(中國內地、非中國內地)。在左側導航欄,選擇。
選擇系統防護規則。頁簽左側展示規則信息,頁簽右側展示規則更新動態情況。
自定義防護規則
自定義規則只適用于混合云防護對象。在規則庫管理中,您可以對自定義規則進行新增、查看、編輯、刪除。
新建自定義防護規則
登錄Web應用防火墻3.0控制臺。在頂部菜單欄,選擇WAF實例的資源組和地域(中國內地、非中國內地)。
在左側導航欄,選擇。
選擇自定義防護規則區域,單擊新建規則完成以下模板配置后,單擊確定。
配置項
說明
規則名稱
支持中文和大小寫英文字母,可包含數字、半角句號(.)、下劃線(_)和短劃線(-)。
檢測模塊名稱
支持SQL注入、跨站腳本、代碼執行、CRLF、本地文件包含、遠程文件包含、webshell、其它、OS命令注入、表達式注入、Java反序列化、PHP反序列化、SSRF、路徑穿透、協議違背、任意文件上傳、文件包含等。
規則等級
自定義規則所屬的規則等級。支持寬松、中等、嚴格和超嚴格。
規則狀態
默認狀態為關閉,請前往防護模板-引擎配置頁面開啟生效。
規則動作
新建規則的規則動作默認為攔截,您可以在基礎防護規則模板的引擎配置面板中啟用規則時進行更改。
規則描述
描述該規則的條件及目的,非必填項。
匹配字段
設置該規則要匹配的請求特征。
規則中最多支持添加十個條件。如果定義了多個條件,需同時滿足才算命中規則。
每個條件由匹配字段、邏輯符和匹配內容組成。配置示例如下:
示例1:匹配字段為URI、邏輯符為包含、匹配內容為
/login.php
,表示當被請求的路徑包含/login.php
時,則請求命中該規則。示例2:匹配字段為IP、邏輯符為屬于、匹配內容為
192.1X.XX.XX
,表示當發起連接的客戶端IP為192.1.XX.XX
時,則請求命中該規則。
關于匹配字段和邏輯符的更多說明,請參見匹配條件說明。
說明單個賬號(包含子賬號)最多創建200條自定義規則。
頁面提示操作成功后,證明規則新建完成。
啟用自定義防護規則
在新建自定義防護規則后,若想讓該防護規則關聯對應混合云防護對象,需要進入規則引擎配置啟用。
在左側導航欄,選擇。在Web基礎防護頁面下方基礎防護規則區域找到目標規則模版,單擊操作列下的編輯。
進入編輯模板 - 基礎防護規則面板后,單擊引擎配置進入自定義防護規則,選擇你的目標規則將規則狀態開啟。
編輯自定義防護規則
在自定義防護規則頁面中,單擊操作列下的編輯,在編輯規則的彈窗中可以編輯規則名稱、規則等級、規則狀態、規則描述、匹配字段。完成編輯后,單擊確定,待頁面彈出操作成功的提示后,您能在頁面上查看編輯后的規則信息。
刪除自定義防護規則
在自定義防護規則頁面中,選擇要刪除的目標規則,單擊操作列下的刪除,刪除該規則。
一旦規則被刪除,即使在檢測引擎中將該規則的狀態設置為“啟用”,該規則也將不再生效,并在檢測引擎中同步刪除。
匹配條件說明
匹配字段 | 說明 | 支持的邏輯符 |
Filename | 匹配請求中整個文件的特征。例如 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
URI PATH | 匹配請求中的當前URI,不帶請求參數,等價于path。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
RAW-URL | 匹配請求中的當前URI,不帶請求參數,不做解碼。例如:%2Ftest.php。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
URI | 如/login.php?a=1,不包含域名。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Http-Method | 匹配請求方法,例如:GET/POST/DELETE/PUT/OPTIONS/CONNECT/HEAD/TRACE/PATCH | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Directory | 匹配完整路徑中的特征,包括uri和file,例如:/abc/123.txt。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Param | 匹配參數和參數名中的特征,例如:?a=b , ?號以后的范圍。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Raw-Header | 匹配完整header中的特征,不做解碼,做key/value拆分,例如:整個header作為整體,不做解碼和key/value拆分。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Body | 匹配請求body中的特征,例如:完整的body,不做key/value拆分。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
File Extension | 匹配URL中文件擴展名中的特征,例如:.jspa。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Multipart | 例如:multipart格式,filename=../test, multipart.filename, 可以精準匹配到filename后的值,避免過度匹配。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Header | cookie:../test ,header.cookie, 可以精準匹配到cookie后的值,避免過度匹配。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Query String Parameter | 假設您有一個URL如下: https://example.com/path?queryarg.k=value1&queryarg.other=value2 在這個URL中,您關心的查詢參數是queryarg.k,而它的值是value1。queryarg.k , 可以精準匹配到k后的值,避免過度匹配,同時避免提取到queryarg.other或者其他類似的查詢參數。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Body Paramter | 在請求的body中, postarg.k 可以精準匹配到v后的值,避免過度匹配。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Multipart-Keys | 請求的Content-Type: multipart/form-data。匹配的范圍是文件名。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Multipart-Values | 請求的Content-Type: multipart/form-data。匹配的范圍是文件內容。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Header-Keys | 匹配header中k-v的特征,匹配范圍是header的key。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Header-Values | 匹配header中k-v的特征,匹配范圍是header的value。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Post-Arg-Keys | 匹配body中參數名的特征,form表單格式,例如:body里k=v,匹配范圍是k。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Post-Arg-Values | 匹配body中參數值的特征,form表單格式,例如:body里k=v,匹配范圍是v。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Query-Arg-Keys | 匹配url中參數名的特征,例如:/test.php?k=v,匹配k。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |
Quer-Arg-Values | queryarg_values 匹配url中參數值的特征,例如:/test.php?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。 | 包含、正則匹配、等于、前綴匹配、后綴匹配。 |