適用於: ✔️應用閘道 v2
Azure 應用程式閘道 Web 應用程式防火牆(WAF)v2 包含一套預先配置的平台管理規則集,能防禦多種不同類型的攻擊。 這些攻擊包括跨站腳本、SQL 注入等。 如果您是 WAF 管理員,建議您撰寫自己的規則,加強核心規則集 (CRS) 規則。 你的自訂規則可以根據符合條件封鎖、允許或記錄請求流量。 如果你把 WAF 政策設為偵測模式,並觸發自訂封鎖規則,請求會被記錄,且不會採取阻擋行動。
使用自訂規則來建立你自己的規則,讓 WAF 對每個請求進行評估。 這些規則的優先權高於管理規則集中的其他規則。 自訂規則包含規則名稱、規則優先順序和比對條件的陣列。 若符合這些條件,WAF 會採取行動允許、封鎖或記錄。 如果自訂規則觸發,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。
注意
你可以建立最多 100 條 WAF 自訂規則。 如需應用程式閘道限制的詳細資訊,請參閱 Azure 訂用帳戶和服務限制、配額與限制式。
警告
你在應用程式閘道層套用的任何重定向規則都會繞過 WAF 自訂規則。 如需詳細資訊,請參閱應用程式閘道重新導向概觀。
允許與封鎖的對比
你可以用自訂規則輕鬆允許或阻擋流量。 例如,你可以封鎖來自多個 IP 位址範圍的所有流量。 如果請求來自特定瀏覽器,你可以建立另一條規則來允許流量。
要允許某件事,請將參數設 -Action 為 允許。 要阻擋某物,將參數設 -Action 為 阻擋。
$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 或更高版本支援額外的內容類型
application/json,並支援機器人防護規則集及地理匹配自訂規則。 - RequestUri – 要求的 URI
- RequestHeaders – 要求的標頭
- RequestBody – 此變數包含整個要求本文。 使用此匹配變數的自訂規則僅適用於「Content-Type」標頭設為
application/x-www-form-urlencoded媒體類型時。 CRS 3.2 或更高版本支援額外的內容類型application/soap+xml, application/xml, text/xml,並支援機器人防護規則集和地理位置匹配自訂規則。 - RequestCookies – 要求的 Cookie
選取器 [選用]
說明 matchVariable 集合的欄位。 舉例來說,如果 matchVariable 是 RequestHeaders,則選取器可能位於 User-Agent 標頭上。
運算子 [必要]
請使用以下其中一種運算子:
-
IPMatch- 僅在匹配變數為 RemoteAddr 且僅支援 IPv4 時使用。 -
Equal- 當輸入與 MatchValue 相同時使用。 -
Any- 當沒有 MatchValue 時使用。 建議搭配具有有效選取器的比對變數使用。 -
Contains- 當 MatchValue 僅為明確值時使用。 不支援通配符和正則表達式。 LessThanGreaterThan- LessThanOrEqual
- GreaterThanOrEqual
- BeginsWith
EndsWithRegexGeomatch
否定條件 [選用]
否定目前的條件。
轉換 [選用]
一串字串值,指定在嘗試匹配前要套用的轉換。 可用的轉換包括:
- 小寫
- 大寫
- Trim
- UrlDecode
- UrlEncode
- RemoveNulls
- HtmlEntityDecode
比對值 [必要]
一份要比對的數值清單,你可以把它們當作 OR 處理。 例如,清單可能包含 IP 位址或其他字串。 值格式取決於上一個運算子。
注意
若您的 WAF 運行核心規則集(CRS)3.1 或其他更早版本的 CRS,匹配值僅接受字母、數字及標點符號。 不支援引號 "、 '、空格。
支援的 HTTP 要求方法值包含:
- GET
- HEAD
- 郵件
- 選項
- PUT
- 刪除
- 修補檔
動作 [必要]
在 WAF 原則偵測模式中,如果觸發自訂規則,則一律會記錄動作,而不論自訂規則上設定的動作值為何。
- Allow – 授權交易,略過所有其他規則。 指定的要求會新增至允許清單,一旦相符,要求就會停止進一步評估,並傳送至後端集區。 系統不會針對任何其他自訂規則或受控規則,評估允許清單上的規則。
- 封鎖 - 根據 SecDefaultAction(偵測或防止模式)封鎖或記錄交易。
- 預防模式 - 根據 SecDefaultAction 阻擋交易。 就像
Allow動作一樣,一旦請求被評估並加入封鎖清單,評估就會停止,請求也會被封鎖。 系統不會評估在那之後符合相同條件的任何要求,而是會將其封鎖。- 偵測模式 - 根據 SecDefaultAction 記錄交易,之後停止評估。 在此滿足相同條件之後的任何請求都不會被評估並記錄下來。
- Log – 讓規則寫入記錄,但讓其餘規則執行以供評估。 系統會依優先順序評估其他自訂規則,接著是受控規則。
複製和重複自訂規則
你可以在特定政策內重複自訂規則。 當你複製規則時,你需要指定規則的唯一名稱和唯一的優先權值。 此外,只要兩個政策都在同一訂閱中,你可以將自訂規則從一個 Application Gateway 的 WAF 政策複製到另一個。 當你從一個政策複製規則到另一個時,你需要選擇你想複製該規則的 Application Gateway WAF 政策。 一旦你選擇了 WAF 政策,你需要為該規則命名唯一,並分配優先權等級。
地區比對自訂規則
自訂規則可讓您建立量身打造的規則,以符合您應用程式和安全性原則的確切需求。 你可以依國家或地區限制對網頁應用程式的存取權限。 如需詳細資訊,請參閱 Geomatch 自訂規則 (機器翻譯)。