Azure 應用程式閘道 Web 應用程式防火牆 (WAF) v2 具預先設定的平台管理規則集,可防範許多不同類型的攻擊。 這些攻擊包括跨網站指令碼、SQL 插入和其他攻擊。 如果您是 WAF 管理員,建議您撰寫自己的規則,加強核心規則集 (CRS) 規則。 您的自訂規則可以根據比對準則,封鎖、允許或記錄要求的流量。 如果 WAF 原則設定為偵測模式,並觸發自訂封鎖規則,則會記錄要求,且不會採取封鎖動作。
自訂規則可讓您建立自己的規則,系統會針對每個通過 WAF 的要求評估這些規則。 這些規則的優先順序高於受控規則集中的其餘規則。 自訂規則包含規則名稱、規則優先順序和比對條件的陣列。 如果符合這些條件,即會採取動作 (允許、封鎖或記錄)。 如果觸發自定義規則,並採取允許或封鎖動作,則不會採取自定義或受控規則的進一步動作。 如果自定義規則觸發允許或封鎖動作,您可能仍然會看到來自已設定規則集的規則相符專案(核心規則集/默認規則集)的某些記錄事件,但不會強制執行這些規則。 記錄事件只會因為 WAF 引擎針對平行規則處理強制執行的優化而顯示,而且可以安全地忽略。 您可以視需要啟用/停用自訂規則。
例如,您可以封鎖 192.168.5.0/24 範圍內 IP 位址的所有要求。 在此規則中,運算子是 IPMatch,matchValues 是 IP 位址範圍 (192.168.5.0/24),動作是封鎖流量。 您還可以設定規則的名稱、優先順序和啟用/禁用狀態。
自訂規則支援使用複合邏輯,建立更進階的規則,滿足您的安全性需求。 例如,您可以使用兩個自訂規則,來建立下列邏輯 ((rule1:Condition 1 和 rule1:Condition 2) 或 rule2:Condition 3)。 此邏輯表示,如果符合條件 1 和條件 2,或符合條件 3,WAF 就應採取自訂規則中指定的動作。
相同規則內的不同比對條件一律會使用和結合。 例如,封鎖來自特定 IP 位址的流量,和只在使用特定瀏覽器時。
如果要在兩個不同的條件之間使用 OR ,則這兩個條件必須採用不同的規則。 例如,封鎖來自特定 IP 位址的流量,或在使用特定瀏覽器時封鎖流量。
自訂規則也支援規則運算式,就像 CRS 規則集一樣。 如需範例,請參閱建立和使用自訂 Web 應用程式防火牆規則中的範例 3 和 5。
注意
WAF 自訂規則的數量上限為 100。 如需應用程式閘道限制的詳細資訊,請參閱 Azure 訂用帳戶和服務限制、配額與限制式。
警告
在應用程式閘道層級套用的任何重新導向規則都會略過 WAF 自訂規則。 如需詳細資訊,請參閱應用程式閘道重新導向概觀。
比較允許與封鎖
使用自訂規則允許和封鎖流量很簡單。 例如,您可以封鎖來自 IP 位址範圍的所有流量。 如果要求來自特定瀏覽器,您可以建立另一個規則允許流量。
若要允許部分流量,請確定 -Action 參數已設定為 Allow。 若要封鎖部分流量,請確定 -Action 參數已設定為 Block。
$AllowRule = New-AzApplicationGatewayFirewallCustomRule `
-Name example1 `
-Priority 2 `
-RuleType MatchRule `
-MatchCondition $condition `
-Action Allow `
-State Enabled
$BlockRule = New-AzApplicationGatewayFirewallCustomRule `
-Name example2 `
-Priority 2 `
-RuleType MatchRule `
-MatchCondition $condition `
-Action Block `
-State Enabled
上一個 $BlockRule 會對應至 Azure Resource Manager 中的下列自訂規則:
"customRules": [
{
"name": "blockEvilBot",
"priority": 2,
"ruleType": "MatchRule",
"action": "Block",
"state": "Enabled",
"matchConditions": [
{
"matchVariables": [
{
"variableName": "RequestHeaders",
"selector": "User-Agent"
}
],
"operator": "Contains",
"negationCondition": false,
"matchValues": [
"evilbot"
],
"transforms": [
"Lowercase"
]
}
]
}
],
此自訂規則包含名稱、優先順序、動作,以及必須符合才能執行動作的比對條件陣列。 如需這些欄位的進一步說明,請參閱下列欄位說明。 若如範例自訂規則,請參閱建立和使用自訂 Web 應用程式防火牆規則。
注意
WAF 自定義規則不支援根據檔名或檔類型允許或封鎖要求。
自訂規則的欄位
名稱 [選用]
規則的名稱。 這會顯示在記錄中。
啟用規則 [選用]
開啟/關閉此規則。 自訂規則依預設會啟用。
優先順序 [必要]
- 決定規則評估順序。 值越低,越早評估規則。 允許的範圍從 1 到 100。
- 在所有自訂規則中必須是唯一的。 優先順序 40 的規則會比優先順序 80 的規則先評估。
規則類型 [必要]
目前必須為 MatchRule。
比對變數 [必要]
必須是下列任一變數:
- RemoteAddr – 遠端電腦連線的 IPv4 位址/範圍
- RequestMethod – HTTP 要求方法
- QueryString – URI 中的變數
- PostArgs – POST 本文中傳送的引數。 只有在 'Content-Type' 標頭設定為 'application/x-www-form-urlencoded' 和 'multipart/form-data' 時,才會套用使用此比對變數的自訂規則。 CRS 3.2 版或更新版本、Bot 保護規則集和地區比對自訂規則支援
application/json的其他內容類型。 - RequestUri – 要求的 URI
- RequestHeaders – 要求的標頭
- RequestBody – 此變數包含整個要求本文。 只有在 'Content-Type' 標頭設為
application/x-www-form-urlencoded媒體類型時,才會套用使用此比對變數的自訂規則。 CRS 3.2 版或更新版本、Bot 保護規則集和地區比對自訂規則支援application/soap+xml, application/xml, text/xml的其他內容類型。 - RequestCookies – 要求的 Cookie
選取器 [選用]
說明 matchVariable 集合的欄位。 舉例來說,如果 matchVariable 是 RequestHeaders,則選取器可能位於 User-Agent 標頭上。
運算子 [必要]
必須是下列任一運算子:
- IPMatch - 只有在 Match Variable 為 RemoteAddr 且 僅支援 IPv4 時使用。
- 等於 - 輸入與 MatchValue 相同。
- 任何 - 它不應該有 MatchValue。 建議具有有效選取器的比對變數使用。
- Contains - MatchValue 應該只有明確值。 不支援通配符和 regex。
- LessThan
- GreaterThan
- 小於或等於
- GreaterThanOrEqual
- BeginsWith (開頭為)
- 以...結尾
- RegEx
- 地理匹配
否定條件 [選用]
否定目前的條件。
轉換 [選用]
一個字串值清單,用於指定在嘗試匹配之前要應用的轉換。 可用的轉換包括:
- 小寫
- 大寫
- 修剪
- 網址解碼
- 網址編碼 (UrlEncode)
- 刪除空值
- HtmlEntityDecode
比對值 [必要]
要比對的值清單,可視為 OR。 例如,可為 IP 位址或其他字串。 值格式取決於上一個運算子。
注意
如果您的 WAF 運行的是核心規則集 (CRS) 3.1 或任何其他早期的 CRS 版本,則匹配值僅允許字母、數位和標點符號。 引號"、'和空格不受支援。
支援的 HTTP 要求方法值包含:
- 獲取
- 標題
- 郵件
- 選項
- 放
- 刪除
- 修補檔
動作 [必要]
在 WAF 原則偵測模式中,如果觸發自訂規則,則一律會記錄動作,而不論自訂規則上設定的動作值為何。
- Allow – 授權交易,略過所有其他規則。 指定的要求會新增至允許清單,一旦相符,要求就會停止進一步評估,並傳送至後端集區。 系統不會針對任何其他自訂規則或受控規則,評估允許清單上的規則。
- 封鎖 – 根據 SecDefaultAction (偵測/預防模式) 封鎖或記錄交易。
- 預防模式 – 根據 SecDefaultAction 封鎖交易。 如同
Allow動作,一旦評估要求且將其新增至封鎖清單,就會停止評估並封鎖該要求。 系統不會評估在那之後符合相同條件的任何要求,而是會將其封鎖。 - 偵測模式 - 根據 SecDefaultAction 記錄交易,之後會停止評估。 在此滿足相同條件之後的任何請求都不會被評估並記錄下來。
- 預防模式 – 根據 SecDefaultAction 封鎖交易。 如同
- Log – 讓規則寫入記錄,但讓其餘規則執行以供評估。 系統會依優先順序評估其他自訂規則,接著是受控規則。
複製自訂規則
自訂規則可以在指定的原則內重複。 複製規則時,您必須為規則指定唯一的名稱和唯一的優先順序值。 此外,只要原則都在相同的訂用帳戶中,就可以將自訂規則從某個應用程式閘道 WAF 原則複製到另一個原則。 將規則從某個原則複製到另一個原則時,您必須選取想要將規則複製到其中的應用程式閘道 WAF 原則。 選取 WAF 原則之後,您需要為規則指定唯一的名稱,並指派優先順序排名。
地區比對自訂規則
自訂規則可讓您建立量身打造的規則,以符合您應用程式和安全性原則的確切需求。 您可以依國家/地區限制對您 Web 應用程式的存取。 如需詳細資訊,請參閱 Geomatch 自訂規則 (機器翻譯)。