接入Web應用防火墻(Web Application Firewall,簡稱WAF)后,您可以自定義訪問控制規則和頻率控制規則,防御符合規則的請求。本文介紹如何創建自定義規則模板并添加自定義規則。
背景信息
自定義規則分為以下類型:
自定義規則 | 說明 | 相關配置 |
訪問控制規則 | 根據客戶端IP、請求URL及常見的請求頭字段定義請求特征匹配條件,對命中匹配條件的請求執行相應處置。例如,您可以使用自定義規則攔截訪問指定URI的請求、對包含指定User-Agent內容的請求進行校驗等。 |
具體操作,請參見步驟二:在自定義規則模板中添加防護規則。 |
頻率控制規則 | 在訪問控制匹配條件的基礎上,定義訪問頻率檢測條件,對訪問頻率異常的統計對象執行相應處置。例如,如果同一個IP或會話在短時間內頻繁命中匹配條件,您可以通過啟用頻率控制,在一段時間內攔截該IP或會話的請求。 |
前提條件
已開通WAF 3.0服務。具體操作,請參見開通包年包月WAF 3.0、開通按量付費WAF 3.0。
已將Web業務添加為WAF 3.0的防護對象。具體操作,請參見配置防護對象和防護對象組。
步驟一:創建自定義規則模板
自定義規則不提供默認規則模板。如果您需要啟用自定義規則,您必須新建一個規則模板,再配置對應規則。
登錄Web應用防火墻3.0控制臺。在頂部菜單欄,選擇WAF實例的資源組和地域(中國內地、非中國內地)。
在左側導航欄,選擇 。
在Web基礎防護頁面下方自定義規則區域,單擊新建模板。
說明如果您是第一次創建自定義規則模板,您也可以在Web基礎防護頁面上方的自定義規則卡片區域,單擊立即配置。
在新建模板 - 自定義規則面板,完成以下配置,單擊確定。
配置項
說明
模板名稱
為該模板設置一個名稱。
長度為1~255個字符,支持中文和大小寫英文字母,可包含數字、半角句號(.)、下劃線(_)和短劃線(-)。
是否設置為默認模板
選擇是否將該模板設置為當前防護模塊的默認模板。
一個防護模塊只允許設置一個默認模板。默認模板無需設置生效對象,默認應用于所有未關聯到自定義規則模板的防護對象和對象組(包括后續新增、從自定義規則模板中移除的防護對象和對象組)。
規則配置
您可以單擊新建規則,為當前模板新建自定義規則;或者忽略該設置,在創建規則模板后,再為模板新建規則。關于新建自定義規則的具體操作,請參見步驟二:在自定義規則模板中添加防護規則。
生效對象
從已添加的防護對象及對象組中,選擇要應用該模板的防護對象和防護對象組。
一個防護對象或對象組只能關聯到當前防護模塊下的一個模板。關于添加防護對象和對象組的具體操作,請參見配置防護對象和防護對象組。
新建的規則模板默認開啟。您可以在規則模板列表執行如下操作:
查看模板關聯的防護對象/組的數量。
通過模板開關,開啟或關閉模板。
編輯或刪除規則模板。
單擊規則模板名稱左側的圖標,查看規則模板包含的規則。
步驟二:在自定義規則模板中添加防護規則
只有添加防護規則后,自定義規則模板才具有防護作用。如果您已在創建自定義規則模板時添加了防護規則,可跳過該步驟。
登錄Web應用防火墻3.0控制臺。在頂部菜單欄,選擇WAF實例的資源組和地域(中國內地、非中國內地)。
在左側導航欄,選擇 。
在自定義規則區域,定位到要新建規則的規則模板,單擊操作列下的新建規則。
在新建規則對話框,完成以下配置,單擊確定。
配置項
說明
規則名稱
為該規則設置一個名稱。
支持中文和大小寫英文字母,可包含數字、半角句號(.)、下劃線(_)和短劃線(-)。
匹配條件
設置該規則要匹配的請求特征。
單擊新增條件,添加一個條件。一個規則中最多可以添加五個條件。如果定義了多個條件,則只有當多個條件同時滿足時,才算命中規則。
每個條件由匹配字段、邏輯符和匹配內容組成。配置示例如下:
示例1:匹配字段為URI、邏輯符為包含、匹配內容為
/login.php
,表示當被請求的路徑包含/login.php
時,則請求命中該規則。示例2:匹配字段為IP、邏輯符為屬于、匹配內容為
192.1X.XX.XX
,表示當發起連接的客戶端IP為192.1.XX.XX
時,則請求命中該規則。
關于匹配字段和邏輯符的更多說明,請參見匹配條件說明。
頻率設置
選擇是否啟用頻率控制。頻率控制表示如果來自同一統計對象(IP、會話等)的請求頻繁地命中規則,則在一段時間內,對該統計對象的所有訪問執行相應處置。
重要頻率控制規則按照防護對象維度來限制同一統計對象的請求頻率。假設您將一個ALB實例作為防護對象并為該ALB實例應用了頻率控制規則,如果ALB實例中包含多個域名的流量,則統計訪問頻率時會按照多個域名一起統計。如果您只需限制對某個域名的訪問頻率,可以使用以下方式進行配置:
方式1:將域名添加為WAF的防護對象,并為該域名對象應用頻率控制規則。更多信息,請參見配置防護對象和防護對象組。
方式2:仍對云產品實例對象應用頻率控制規則,但是在規則的匹配條件中,通過Host字段定義要限制訪問頻率的域名。
啟用頻率控制后,您需要設置頻率控制參數。
頻率檢測條件
在統計時長(秒)內,一個統計對象命中規則的次數超過閾值(次),則對該對象進行黑名單處置。
選擇請求頻率的統計對象。可選項:
IP:表示統計同一個IP發起請求的頻率。
Session:表示統計來自同一個會話發起請求的頻率。
自定義header:表示統計包含指定Header的請求的頻率。
自定義參數:表示統計包含指定參數的請求的頻率。
自定義cookie:表示統計包含指定Cookie的請求的頻率。
設置統計周期。單位:秒。
設置在統計時長(秒)內,允許統計對象命中匹配條件的最大次數。
響應碼檢測條件
獲得響應碼的響應數量或比例超過設置的數量或比例(%)時,則對該對象進行黑名單處置。
選擇是否在頻率檢測的基礎上,啟用響應碼檢測,即防護對象既要滿足頻率檢測條件,還要滿足特定的響應碼特征,才會觸發黑名單處置。啟用響應碼檢測時,需設置要統計的響應碼。
設置在統計時長內,允許指定的響應碼在請求響應中出現的最大次數。
說明數量與比例(%)二選一。
設置在統計時長內,允許指定的響應碼在請求響應中的最大占比。
說明數量與比例(%)二選一。
黑名單處置條件
將命中頻率檢測條件的統計對象加入黑名單,在黑名單超時時間內,對來自該對象黑名單生效范圍內的請求執行規則動作中定義的處置。
設置黑名單處置的生效范圍。可選值:
僅作用于當前規則的匹配條件:表示只處置滿足當前規則匹配條件的請求。
作用于整個防護對象:表示處置受限制對象的所有請求。
設置黑名單處置的生效時長。單位:秒。取值范圍:60~86400。
防護類型
該參數無需手動設置,其值取決于頻率設置開關的狀態:
開啟頻率設置時:防護類型固定為頻率控制。
關閉頻率設置時:防護類型固定為訪問控制。
規則動作
選擇當請求命中該規則時,要執行的防護動作。可選項:
攔截:表示攔截命中規則的請求,并向發起請求的客戶端返回攔截響應頁面。
說明WAF默認使用統一的攔截響應頁面,您可以通過自定義響應功能,自定義攔截響應頁面。更多信息,請參見設置自定義響應規則配置攔截響應頁面。
觀察:表示不攔截命中規則的請求,只通過日志記錄請求命中了規則。您可以通過WAF日志,查詢命中當前規則的請求,分析規則的防護效果(例如,是否有誤攔截等)。
重要只有開通日志服務,您才可以使用日志查詢功能。更多信息,請參見開啟或關閉日志服務。
觀察模式方便您試運行首次配置的規則,待確認規則沒有產生誤攔截后,再將規則設置為攔截模式。
JS校驗:表示WAF向客戶端返回一段正常瀏覽器可以自動執行的JavaScript代碼。如果客戶端正常執行了JavaScript代碼,則WAF在一段時間(默認30分鐘)內放行該客戶端的所有請求(不需要重復驗證),否則攔截請求。
滑塊:表示WAF向客戶端返回滑動驗證頁面。如果客戶端成功執行滑動驗證,則WAF在一段時間(默認30分鐘)內放行該客戶端的所有請求(不需要重復驗證),否則攔截請求。
嚴格滑塊:表示WAF向客戶端返回滑動驗證頁面。如果客戶端成功執行滑動驗證,則WAF放行本次請求,否則攔截請求。嚴格滑塊驗證模式下,客戶端的每次請求都需要驗證。
說明按量付費實例、包年包月企業版和旗艦版實例支持滑塊驗證。
自定義規則的JS校驗和滑塊驗證僅適用于靜態頁面。如需兼容XMLHttpRequest、Fetch等異步接口響應,您可以在BOT管理中啟用JS校驗和滑塊驗證。具體操作,請參見開通和配置Bot管理。
啟用了JavaScript校驗或滑塊防護動作,當訪問流量命中規則后,Web應用防火墻將對客戶端發起JS校驗或滑塊驗證,當客戶端驗證通過后將會在HTTP報文的Header中分別植入Cookie
acw_sc__v2
和acw_sc__v3
,用于標識客戶端已經通過驗證。
高級設置
僅包年包月企業版和旗艦版、按量付費版支持高級設置,包年包月基礎版、高級版不支持該功能。
規則灰度:配置規則針對不同維度的對象的生效比例。
開啟規則灰度后,您還需要設置灰度維度和灰度比例。灰度維度包括:IP、自定義header、自定義參數、自定義Cookie、Session。
生效時間模式
永久生效(默認):防護模板開啟時,規則永久生效。
按時間段生效:您可以將具體某一時區的一段時間設置為防護規則的生效時間。
按周期生效:您可以將具體某一時區的每一天的一段時間設置為防護規則的生效時間。
新建的規則默認開啟。您可以在規則模板列表執行如下操作:
通過狀態開關,開啟或關閉規則。
編輯或刪除規則。
后續步驟
您可以在安全報表頁面的自定義規則頁簽,查詢防護規則的防護詳情。更多信息,請參見IP黑名單、自定義規則、掃描防護、CC防護或區域封禁。
相關文檔
如果您想了解關于添加白名單規則時涉及的匹配條件和匹配字段,請參考匹配條件說明。
如果您想了解WAF 3.0的防護對象、防護模塊及防護流程等信息,請參見防護配置概述。
如果您想使用API創建防護模板,請參見CreateDefenseTemplate - 創建防護模板。
如果您想創建一個基礎防護規則,并配置規則內容,請參見CreateDefenseRule - 創建防護規則。