Webalkalmazási tűzfal kizárási listáinak konfigurálása
Előfordulhat, hogy az Azure Web Application Firewall az Azure Front Doorban blokkol egy jogos kérést. A webalkalmazási tűzfal (WAF) finomhangolásának részeként konfigurálhatja a WAF-ot az alkalmazás kérésének engedélyezésére. A WAF-kizárási listák lehetővé teszik, hogy bizonyos kérésattribútumokat kihagyjon a WAF-értékelésből. A kérés többi része a szokásos módon lesz kiértékelve. További információ a kizárási listákról: Azure Web Application Firewall az Azure Front Door kizárási listáival.
A kizárási lista konfigurálható Azure PowerShell, az Azure CLI, a REST API, a Bicep, az Azure Resource Manager sablonok és a Azure Portal használatával.
Eset
Tegyük fel, hogy létrehozott egy API-t. Az ügyfelek kéréseket küldenek az API-nak, amelyek olyan fejléceket tartalmaznak, mint a userid
és user-id
a .
A WAF finomhangolása során megfigyelheti, hogy néhány jogos kérés le lett tiltva, mert a felhasználói fejlécek olyan karaktersorozatokat tartalmaztak, amelyeket a WAF SQL-injektálási támadásként észlelt. Pontosabban a 942230-ás szabályazonosító észleli a kérésfejléceket, és blokkolja a kéréseket. A 942230 szabály az SQLI-szabálycsoport része.
Úgy dönt, hogy kizárást hoz létre, hogy lehetővé tegye ezeknek a jogos kéréseknek a továbbítását anélkül, hogy a WAF blokkolta őket.
Kizárás létrehozása
Nyissa meg az Azure Front Door WAF-szabályzatát.
Válassza a Felügyelt szabályok>Kizárások kezelése lehetőséget.
Válassza a Hozzáadás lehetőséget.
Konfigurálja a kizárásI szakaszra vonatkozó szakaszát:
Mező Érték Szabálykészlet Microsoft_DefaultRuleSet_2.0 Szabálycsoport SQLI Szabály 942230 Feltételes SQL-injektálási kísérletek észlelése Konfigurálja a kizárási egyezés feltételeit:
Mező Érték Változó egyeztetése Kérelem fejlécének neve Operátor Ezzel kezdődik Szelektor Felhasználó Tekintse át a kizárást, amelynek az alábbi képernyőképhez hasonlóan kell kinéznie:
Ez a kizárás minden olyan kérelemfejlécre vonatkozik, amely a következő szóval
user
kezdődik: . Az egyezési feltétel nem különbözteti meg a kis- és nagybetűket, ezért a kezdő fejlécekreUser
is vonatkozik a kizárás. Ha a 942230 WAF-szabály kockázatot észlel ezekben a fejlécértékekben, figyelmen kívül hagyja a fejlécet, és továbblép.Kattintson a Mentés gombra.
Kizárási választó definiálása
Új kizárási választó definiálásához használja a New-AzFrontDoorWafManagedRuleExclusionObject parancsmagot.
Az alábbi példa a következő szóval user
kezdődő kérelemfejléceket azonosítja: . Az egyezési feltétel nem különbözteti meg a kis- és nagybetűket, ezért a kezdő fejlécekre User
is vonatkozik a kizárás.
$exclusionSelector = New-AzFrontDoorWafManagedRuleExclusionObject `
-Variable RequestHeaderNames `
-Operator StartsWith `
-Selector 'user'
Szabályonkénti kizárás definiálása
A New-AzFrontDoorWafManagedRuleOverrideObject parancsmaggal definiáljon egy új szabályonkénti kizárást, amely tartalmazza az előző lépésben létrehozott választót.
Az alábbi példa egy kizárást hoz létre a 942230-at azonosító szabályhoz.
$exclusion = New-AzFrontDoorWafManagedRuleOverrideObject `
-RuleId '942230' `
-Exclusion $exclusionSelector
A kizárás alkalmazása a szabálycsoportra
A New-AzFrontDoorWafRuleGroupOverrideObject parancsmaggal hozzon létre egy szabálycsoport-felülbírálást, amely a kizárást a megfelelő szabálycsoportra alkalmazza.
Az alábbi példa az SQLI-szabálycsoportot használja, mert ez a csoport a 942230-ás szabályazonosítót tartalmazza.
$ruleGroupOverride = New-AzFrontDoorWafRuleGroupOverrideObject `
-RuleGroupName 'SQLI' `
-ManagedRuleOverride $exclusion
A felügyelt szabálykészlet konfigurálása
A New-AzFrontDoorWafManagedRuleObject parancsmaggal konfigurálhatja a felügyelt szabálykészletet, beleértve az előző lépésben létrehozott szabálycsoport-felülbírálást is.
Az alábbi példa a DRS 2.0 szabálykészletet konfigurálja a szabálycsoport felülbírálásával és kizárásával.
$managedRuleSet = New-AzFrontDoorWafManagedRuleObject `
-Type 'Microsoft_DefaultRuleSet' `
-Version '2.0' `
-Action Block `
-RuleGroupOverride $ruleGroupOverride
A felügyelt szabálykészlet konfigurációjának alkalmazása a WAF-profilra
Az Update-AzFrontDoorWafPolicy parancsmaggal frissítse a WAF-szabályzatot, hogy tartalmazza a létrehozott konfigurációt. Győződjön meg arról, hogy a megfelelő erőforráscsoport-nevet és WAF-szabályzatnevet használja a saját környezetéhez.
Update-AzFrontDoorWafPolicy `
-ResourceGroupName 'FrontDoorWafPolicy' `
-Name 'WafPolicy'
-ManagedRule $managedRuleSet
Kizárás létrehozása
az network front-door waf-policy managed-rules exclusion add
Az paranccsal frissítse a WAF-szabályzatot egy új kizárás hozzáadásához.
A kizárás a következő szóval user
kezdődő kérelemfejléceket azonosítja: . Az egyezési feltétel nem különbözteti meg a kis- és nagybetűket, ezért a kezdő fejlécekre User
is vonatkozik a kizárás.
Győződjön meg arról, hogy a megfelelő erőforráscsoport-nevet és WAF-szabályzatnevet használja a saját környezetéhez.
az network front-door waf-policy managed-rules exclusion add \
--resource-group FrontDoorWafPolicy \
--policy-name WafPolicy \
--type Microsoft_DefaultRuleSet \
--rule-group-id SQLI \
--rule-id 942230 \
--match-variable RequestHeaderNames \
--operator StartsWith \
--value user
Példa Bicep-fájlra
Az alábbi Bicep-példafájl a következőket mutatja be:
- Hozzon létre egy Azure Front Door WAF-szabályzatot.
- Engedélyezze a DRS 2.0 szabálykészletet.
- Konfiguráljon kizárást a 942230-ás szabályhoz, amely az SQLI-szabálycsoporton belül létezik. Ez a kizárás minden olyan kérelemfejlécre vonatkozik, amely a következő szóval
user
kezdődik: . Az egyezési feltétel nem különbözteti meg a kis- és nagybetűket, ezért a kezdő fejlécekreUser
is vonatkozik a kizárás. Ha a 942230 WAF-szabály kockázatot észlel ezekben a fejlécértékekben, figyelmen kívül hagyja a fejlécet, és továbblép.
param wafPolicyName string = 'WafPolicy'
@description('The mode that the WAF should be deployed using. In "Prevention" mode, the WAF will block requests it detects as malicious. In "Detection" mode, the WAF will not block requests and will simply log the request.')
@allowed([
'Detection'
'Prevention'
])
param wafMode string = 'Prevention'
resource wafPolicy 'Microsoft.Network/frontDoorWebApplicationFirewallPolicies@2022-05-01' = {
name: wafPolicyName
location: 'Global'
sku: {
name: 'Premium_AzureFrontDoor'
}
properties: {
policySettings: {
enabledState: 'Enabled'
mode: wafMode
}
managedRules: {
managedRuleSets: [
{
ruleSetType: 'Microsoft_DefaultRuleSet'
ruleSetVersion: '2.0'
ruleSetAction: 'Block'
ruleGroupOverrides: [
{
ruleGroupName: 'SQLI'
rules: [
{
ruleId: '942230'
enabledState: 'Enabled'
action: 'AnomalyScoring'
exclusions: [
{
matchVariable: 'RequestHeaderNames'
selectorMatchOperator: 'StartsWith'
selector: 'user'
}
]
}
]
}
]
}
]
}
}
}
Következő lépések
További információ az Azure Front Doorról.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: