Uitsluitingslijsten voor Web Application Firewall configureren
Soms blokkeert Azure Web Application Firewall in Azure Front Door een legitieme aanvraag. Als onderdeel van het afstemmen van uw WAF (Web Application Firewall) 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. Zie Azure Web Application Firewall met Azure Front Door-uitsluitingslijsten voor meer informatie over uitsluitingslijsten.
Een uitsluitingslijst kan worden geconfigureerd met behulp van Azure PowerShell, de Azure CLI, de REST API, Bicep, Azure Resource Manager-sjablonen en de Azure Portal.
Scenario
Stel dat u een API hebt gemaakt. Uw clients verzenden aanvragen naar uw API die headers bevatten 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 door WAF zijn gedetecteerd als SQL-injectieaanvallen. Met name regel-id 942230 detecteert de aanvraagheaders en blokkeert de aanvragen. Regel 942230 maakt deel uit van de SQLI-regelgroep.
U besluit een uitsluiting te maken om deze legitieme aanvragen door te geven 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 van de uitsluiting:
Veld Waarde Regelset Microsoft_DefaultRuleSet_2.0 Regelgroep SQLI Regel 942230 Detecteert voorwaardelijke SQL-injectiepogingen Configureer de voorwaarden voor uitsluitingsovereenkomst:
Veld Waarde Overeenkomende variabele Naam van aanvraagheader Operator Begint met Kiezer Gebruiker Bekijk de uitsluiting, die eruit moet zien als in de volgende schermopname:
Deze uitsluiting geldt voor alle aanvraagheaders die beginnen met het woord
user
. De overeenkomstvoorwaarde is niet hoofdlettergevoelig, dus headers die beginnen metUser
worden ook gedekt door de uitsluiting. Als WAF-regel 942230 een risico in deze headerwaarden detecteert, wordt de header genegeerd en wordt verdergegaan.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 headers die beginnen met 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 regelgroepoverschrijven te maken, waarmee de uitsluiting wordt toegepast 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 regelgroepoverschrijving en de uitsluiting ervan.
$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 met de configuratie die u hebt gemaakt. Zorg ervoor dat u de juiste resourcegroepnaam en WAF-beleidsnaam gebruikt voor uw eigen omgeving.
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 headers die beginnen met User
worden ook gedekt door de uitsluiting.
Zorg ervoor dat u de juiste resourcegroepnaam en WAF-beleidsnaam gebruikt voor uw eigen omgeving.
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 Bicep-voorbeeldbestand ziet u hoe u het volgende kunt doen:
- Een Azure Front Door WAF-beleid maken.
- Schakel de regelset DRS 2.0 in.
- Configureer een uitsluiting voor regel 942230, die bestaat binnen de SQLI-regelgroep. Deze uitsluiting geldt voor alle aanvraagheaders die beginnen met het woord
user
. De overeenkomstvoorwaarde is niet hoofdlettergevoelig, dus headers die beginnen metUser
worden ook gedekt door de uitsluiting. Als WAF-regel 942230 een risico in deze headerwaarden detecteert, wordt de header genegeerd en wordt verdergegaan.
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.