接入Bot管理後,您可以自訂存取控制規則和頻率控制規則,防禦符合規則的請求,進階自訂規則增加了更豐富的匹配條件,如Client ID、JA3/JA4指紋、Web/App SDK採集資訊等。同時支援基於條件的去重統計能力。本文介紹如何建立Bot自訂規則模板並添加自訂規則。
背景資訊
自訂規則分為以下類型:
自訂規則 | 說明 |
存取控制規則 | 根據用戶端IP、請求URL及常見的要求標頭欄位定義請求特徵匹配條件,對命中匹配條件的請求執行相應處置。例如,您可以使用自訂規則攔截訪問指定Client ID的請求、對包含指定的網頁端UMID、App端UMID等內容的請求進行校正等。 |
頻率控制規則 | 在存取控制匹配條件的基礎上,定義訪問頻率檢測條件,對訪問頻率異常的統計對象執行相應處置。例如,如果同一個IP或會話在短時間內頻繁命中匹配條件,您可以通過啟用頻率控制,在一段時間內攔截該IP或會話的請求。 |
步驟一:建立自訂規則模板
登入Web Application Firewall3.0控制台。在頂部功能表列,選擇WAF執行個體的資源群組和地區(中国内地、非中国内地)
模板,單擊新建模板,在建立模板-進階自訂規則面板中完成以下配置,單擊確定。
配置項
說明
模板名称
為該模板設定一個名稱。
長度為1~255個字元,支援中文和大小寫英文字母,可包含數字、半形句號(.)、底線(_)和短劃線(-)。
规则配置
您可以單擊新建规则,為當前模板建立自訂規則;或者忽略該設定,在建立規則模板後,再為模板建立規則。
生效对象
從已添加的配置防護對象和防護對象組中,選擇要應用該模板的配置防護對象和防護對象組。
建立的防護模板預設開啟,您可以在防護模板列表執行如下操作:
查看模板關聯的防护对象/组的數量。
通過模板开关,開啟或關閉模板。
為該模板新建规则。
编辑、删除或复制防護模板。
單擊防護模板名稱左側的
表徵圖,查看該防護模板包含的規則資訊。
步驟二:建立自訂規則
只有添加防護規則後,自訂規則模板才具有防護作用。在新建规则對話方塊,完成以下配置,單擊確定。
如果您已在步驟一添加了防護規則,可跳過該步驟。
配置項 | 說明 |
规则名称 | 為該規則設定一個名稱。 支援中文和大小寫英文字母,可包含數字、半形句號(.)、底線(_)和短劃線(-)。 |
匹配条件 | 設定該規則要匹配的請求特徵。 單擊新增条件,添加一個條件。一個規則中最多可以添加10個條件。如果定義了多個條件,則只有當多個條件同時滿足時,才算命中規則。 每個條件由匹配欄位、邏輯符和匹配內容組成。配置樣本如下:
|
防护类型 | 預設访问控制,單擊频率控制開啟頻率控制。 頻率控製表示如果來自同一統計對象(IP、會話等)的請求頻繁地命中規則,則在一段時間內,對該統計對象的所有訪問執行相應處置,啟用頻率控制後,您需要設定頻率控制參數。
|
处置动作 |
|
规则分类 | 對自訂規則進行分類後,相應的命中流量將在流量分析頁面的惡意Bot和疑似Bot走勢圖中得到統計。
|
高级设置 |
|
建立的規則預設開啟。您可以在規則列表執行如下操作:
查看规则ID、规则条件等資訊。
通過状态開關,開啟或關閉規則。
编辑或删除規則。
匹配欄位說明
匹配欄位 | 說明 | 支援的邏輯符 |
URI | 請求的統一資源識別項URI(Uniform Resource Identifier),表示被請求的資源的路徑。一般來說,URI=URI Path + Query String。 對應匹配內容以 |
|
IP | 請求的來源IP,即發起請求的用戶端的IP地址。 匹配內容填寫要求如下:
| 不屬於、屬於 |
Referer | 請求的來源網址,即該請求從哪個頁面跳轉產生。 |
|
User-Agent | 發起請求的用戶端的瀏覽器標識、渲染引擎標識和版本資訊等瀏覽器相關資訊。 |
|
Query String | 請求中的查詢字串,具體指URL中問號(?)後面的部分。 |
|
Cookie | 請求中的Cookie資訊。 |
|
Content-Type | 請求指定的響應HTTP內容類型,即多用途互連網郵件擴充類型MIME(Multipurpose Internet Mail Extensions)類型資訊。 |
|
Content-Length | 請求內容所包含的位元組數。取值範圍:0~2147483648。 | 等於、值小於、值大於 |
X-Forwarded-For | 請求的用戶端真實IP。X-Forwarded-For(XFF)用來識別通過HTTP代理或負載平衡方式轉寄的請求的用戶端最原始的IP地址的HTTP要求標頭欄位,只有通過HTTP代理或者負載平衡伺服器轉寄的請求才會包含該項。 |
|
Body | 請求的內容資訊。 |
|
Http-Method | 請求的方法,包括GET、POST、DELETE、PUT、OPTIONS、CONNECT、HEAD、TRACE、PATCH。 |
|
Header | 請求的頭部資訊。支援自訂的頭部欄位。 |
|
URI Path | 請求的URI路徑。 |
|
Query String Parameter | 請求參數的參數名。請求參數指請求的URL中問號(?)後面的部分。例如, 說明 Query String Parameter的自訂Parameter大小寫敏感。 |
|
Client-ID | 用戶端(如瀏覽器或應用程式)標識,通過User Agent資訊和流量指紋等特徵來識別HTTP請求來源於哪種用戶端。 |
|
Server-Port | 伺服器連接埠。 |
|
File Extension | 被請求檔案的副檔名,例如, |
|
Filename | 請求路徑末尾的檔案名稱。例如,在 |
|
Host | 被請求的網域名稱。 |
|
Cookie Name | Cookie的鍵名稱。例如,在 說明 Cookie Name的自訂Cookie-Exact大小寫敏感。 |
|
Body Parameter | 請求Body中的參數名稱。例如,請求Body中包含以下JSON字串 說明 Body Parameter的自訂Post-Arg大小寫敏感。 |
|
JA3 Fingerprint | 通過將TLS握手過程中的關鍵參數(包括TLS版本、密碼套件、壓縮演算法和TLS擴充等資訊)進行MD5雜湊處理,產生一個字串用來表示用戶端的TLS配置,該字串即JA3指紋。 JA3指紋可以用於識別和區分不同類型的TLS用戶端,例如Web瀏覽器、行動裝置 App程式、惡意軟體等。 |
|
JA4 Fingerprint | JA4指紋通過引入更多的上下文資訊和演算法,例如瀏覽器的版本、作業系統等,減少了JA3指紋可能導致的重複性問題。 JA4指紋能夠更準確地鑒別出真實的使用者與偽裝者,降低誤識率。 |
|
HTTP/2 Fingerprint | 根據HTTP2用戶端的原始指紋,利用MD5演算法處理後產生的HTTP2.0指紋。用來分析和識別不同的用戶端,實現更安全和高效的通訊。 |
|
IDC | 基於源IP歸屬資料識別流量來源,雲端服務器成本較低,黑灰產易利用進行攻擊。 | 等於多值之一、不等於任一值 |
Web SDK | 通過WebSDK採集到的探針資訊,如網頁端UMID、鍵盤/滑鼠/觸控螢幕按下次數等,識別異常流量。 |
|
App SDK | 可基於App SDK採集的探針資訊做精細化管控。 |
|