Uitsluitingslijsten voor Web Application Firewall configureren
Soms kan Azure Web Application Firewall in Azure Front Door een legitieme aanvraag blokkeren. Als onderdeel van het afstemmen van uw Web Application Firewall (WAF), kunt u de WAF configureren om de aanvraag voor uw toepassing toe te staan. Met WAF-uitsluitingslijsten kunt u specifieke aanvraagkenmerken weglaten uit een WAF-evaluatie. De rest van de aanvraag wordt als normaal geëvalueerd. Voor meer informatie over uitsluitingslijsten raadpleegt u Azure Web Application Firewall met Azure Front Door-uitsluitingslijsten.
Een uitsluitingslijst kan worden geconfigureerd met behulp van Azure PowerShell, de Azure CLI, de REST API, Bicep, Azure Resource Manager-sjablonen en Azure Portal.
Scenario
Stel dat u een API hebt gemaakt. Uw clients verzenden aanvragen naar uw API met headers met namen zoals userid
en user-id
.
Tijdens het afstemmen van uw WAF ziet u dat sommige legitieme aanvragen zijn geblokkeerd omdat de gebruikersheaders tekenreeksen bevatten die de WAF heeft gedetecteerd als SQL-injectieaanvallen. Regel-id 942230 detecteert met name de aanvraagheaders en blokkeert de aanvragen. Regel 942230 maakt deel uit van de SQLI-regelgroep.
U besluit een uitsluiting te maken om toe te staan dat deze legitieme aanvragen worden doorgegeven zonder dat de WAF ze blokkeert.
Een uitsluiting maken
Open uw Azure Front Door WAF-beleid.
Selecteer Beheerde regels>Uitsluitingen beheren.
Selecteer Toevoegen.
Configureer de sectie Van toepassing op de uitsluiting:
Veld Waarde Regelset Microsoft_DefaultRuleSet_2.0 Regelgroep SQLI Regel 942230 Detecteert voorwaardelijke SQL-injectiepogingen Configureer de voorwaarden voor uitsluitingsovereenkomsten:
Veld Waarde Variabele vergelijken Naam van aanvraagheader Operator Begint met Selector User Bekijk de uitsluiting, die eruit moet zien als in de volgende schermopname:
Deze uitsluiting is van toepassing op eventuele aanvraagheaders die beginnen met het woord
user
. De overeenkomstvoorwaarde is niet hoofdlettergevoelig, dus kopteksten die beginnenUser
, worden ook gedekt door de uitsluiting. Als waf-regel 942230 een risico in deze headerwaarden detecteert, negeert deze de header en gaat verder.Selecteer Opslaan.
Een uitsluitingskiezer definiëren
Gebruik de cmdlet New-AzFrontDoorWafManagedRuleExclusionObject om een nieuwe uitsluitingskiezer te definiëren.
In het volgende voorbeeld worden aanvraagheaders geïdentificeerd die beginnen met het woord user
. De overeenkomstvoorwaarde is niet hoofdlettergevoelig, dus kopteksten die beginnen User
, worden ook gedekt door de uitsluiting.
$exclusionSelector = New-AzFrontDoorWafManagedRuleExclusionObject `
-Variable RequestHeaderNames `
-Operator StartsWith `
-Selector 'user'
Een uitsluiting per regel definiëren
Gebruik de cmdlet New-AzFrontDoorWafManagedRuleOverrideObject om een nieuwe uitsluiting per regel te definiëren, waaronder de selector die u in de vorige stap hebt gemaakt.
In het volgende voorbeeld wordt een uitsluiting gemaakt voor regel-id 942230.
$exclusion = New-AzFrontDoorWafManagedRuleOverrideObject `
-RuleId '942230' `
-Exclusion $exclusionSelector
De uitsluiting toepassen op de regelgroep
Gebruik de cmdlet New-AzFrontDoorWafRuleGroupOverrideObject om een regelgroep te maken die de uitsluiting toepast op de juiste regelgroep.
In het volgende voorbeeld wordt de SQLI-regelgroep gebruikt omdat die groep regel-id 942230 bevat.
$ruleGroupOverride = New-AzFrontDoorWafRuleGroupOverrideObject `
-RuleGroupName 'SQLI' `
-ManagedRuleOverride $exclusion
De beheerde regelset configureren
Gebruik de cmdlet New-AzFrontDoorWafManagedRuleObject om de beheerde regelset te configureren, inclusief de regelgroep die u in de vorige stap hebt gemaakt.
In het volgende voorbeeld wordt de DRS 2.0-regelset geconfigureerd met de onderdrukking en uitsluiting van de regelgroep.
$managedRuleSet = New-AzFrontDoorWafManagedRuleObject `
-Type 'Microsoft_DefaultRuleSet' `
-Version '2.0' `
-Action Block `
-RuleGroupOverride $ruleGroupOverride
De configuratie van de beheerde regelset toepassen op het WAF-profiel
Gebruik de cmdlet Update-AzFrontDoorWafPolicy om uw WAF-beleid bij te werken om de configuratie op te nemen die u hebt gemaakt. Zorg ervoor dat u de juiste naam van de resourcegroep en de naam van het WAF-beleid voor uw eigen omgeving gebruikt.
Update-AzFrontDoorWafPolicy `
-ResourceGroupName 'FrontDoorWafPolicy' `
-Name 'WafPolicy'
-ManagedRule $managedRuleSet
Een uitsluiting maken
Gebruik de az network front-door waf-policy managed-rules exclusion add
opdracht om uw WAF-beleid bij te werken om een nieuwe uitsluiting toe te voegen.
De uitsluiting identificeert aanvraagheaders die beginnen met het woord user
. De overeenkomstvoorwaarde is niet hoofdlettergevoelig, dus kopteksten die beginnen User
, worden ook gedekt door de uitsluiting.
Zorg ervoor dat u de juiste naam van de resourcegroep en de naam van het WAF-beleid voor uw eigen omgeving gebruikt.
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
Voorbeeld van Bicep-bestand
In het volgende voorbeeld van bicep-bestand ziet u hoe u:
- Een Azure Front Door WAF-beleid maken.
- Schakel de REGELSet DRS 2.0 in.
- Configureer een uitsluiting voor regel 942230, die zich in de SQLI-regelgroep bevindt. Deze uitsluiting is van toepassing op eventuele aanvraagheaders die beginnen met het woord
user
. De overeenkomstvoorwaarde is niet hoofdlettergevoelig, dus kopteksten die beginnenUser
, worden ook gedekt door de uitsluiting. Als waf-regel 942230 een risico in deze headerwaarden detecteert, negeert deze de header en gaat verder.
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'
}
]
}
]
}
]
}
]
}
}
}
Volgende stappen
Meer informatie over Azure Front Door.