Aangepaste azure WAF-regels voor geomatch gebruiken om de netwerkbeveiliging te verbeteren
Web Application Firewalls (WAF's) zijn een belangrijk hulpprogramma waarmee webtoepassingen worden beschermd tegen schadelijke aanvallen. Ze kunnen webverkeer filteren, bewaken en stoppen met zowel vooraf ingestelde als aangepaste regels. U kunt uw eigen regel maken die door de WAF wordt gecontroleerd op elke aanvraag die het ontvangt. Aangepaste regels hebben een hogere prioriteit dan de beheerde regels en worden eerst gecontroleerd.
Een van de krachtigste functies van Azure Web Application Firewall is aangepaste regels voor geomatch. Met deze regels kunt u webaanvragen koppelen aan de geografische locatie waar ze vandaan komen. Mogelijk wilt u aanvragen van bepaalde plaatsen die bekend staan om schadelijke activiteiten stoppen of wilt u aanvragen van plaatsen die belangrijk zijn voor uw bedrijf toestaan. Aangepaste regels voor geomatch kunnen u ook helpen bij het volgen van gegevenssoevereine en privacywetten door de toegang tot uw webtoepassingen te beperken op basis van de locatie van de personen die ze gebruiken.
Gebruik de prioriteitsparameter verstandig wanneer u aangepaste regels voor geomatch gebruikt om onnodige verwerking of conflicten te voorkomen. Azure WAF evalueert regels in de volgorde die wordt bepaald door de prioriteitsparameter, een numerieke waarde tussen 1 en 100, met lagere waarden die een hogere prioriteit aangeven. De prioriteit moet uniek zijn voor alle aangepaste regels. Wijs een hogere prioriteit toe aan kritieke of specifieke regels voor uw webtoepassingsbeveiliging en lagere prioriteit aan minder essentiële of algemene regels. Dit zorgt ervoor dat WAF de meest geschikte acties toepast op uw webverkeer. Het scenario waarin u bijvoorbeeld een expliciet URI-pad identificeert, is het meest specifiek en moet een regel met een hogere prioriteit hebben dan andere typen patronen. Dit beveiligt een kritiek pad op de toepassing met de hoogste prioriteit, terwijl meer algemeen verkeer kan worden geëvalueerd in andere aangepaste regels of beheerde regelsets.
Als u de alinea beter wilt begrijpen voor een technisch publiek met behulp van de huidige gespannen en actieve stem, kunt u deze als volgt herschrijven:
Test uw regels altijd voordat u ze toepast op productie en bewaak regelmatig de prestaties en impact ervan. Door deze aanbevolen procedures te volgen, kunt u de beveiliging van uw webtoepassing verbeteren met behulp van de kracht van aangepaste regels voor geomatch.
In dit artikel maakt u kennis met aangepaste azure WAF-regels voor geomatch en leert u hoe u deze maakt en beheert met behulp van Azure Portal, Bicep en Azure PowerShell.
Aangepaste regelpatronen voor geomatch
Met aangepaste regels voor geomatch kunt u voldoen aan diverse beveiligingsdoelen, zoals het blokkeren van aanvragen van gebieden met een hoog risico en het toestaan van aanvragen vanaf vertrouwde locaties. Ze zijn met name effectief bij het beperken van DDoS-aanvallen (Distributed Denial-of-Service), die proberen uw webtoepassing te beschadigen met een groot aantal aanvragen van verschillende bronnen. Met aangepaste regels voor geomatch kunt u direct regio's aanwijzen en blokkeren die het meeste DDoS-verkeer genereren, terwijl u nog steeds toegang verleent aan legitieme gebruikers. In dit artikel leert u meer over verschillende aangepaste regelpatronen die u kunt gebruiken om uw Azure WAF te optimaliseren met behulp van aangepaste regels voor geomatch.
Scenario 1: Verkeer van alle landen of regio's blokkeren, met uitzondering van 'x'
Aangepaste regels voor geomatch zijn handig wanneer u het verkeer van alle landen of regio's wilt blokkeren, met een beperking. Als uw webtoepassing bijvoorbeeld uitsluitend geschikt is voor gebruikers in de Verenigde Staten, kunt u een aangepaste regel voor geomatch formuleren die alle aanvragen die niet afkomstig zijn van de VERENIGDE Staten belemmert. Met deze strategie wordt het kwetsbaarheid voor aanvallen van uw webtoepassing geminimaliseerd en wordt onbevoegde toegang vanuit andere regio's geweigerd. Deze specifieke techniek maakt gebruik van een negatievoorwaarde om dit verkeerspatroon te vergemakkelijken. Raadpleeg de volgende portal-, Bicep- en PowerShell-voorbeelden voor het maken van een aangepaste regel voor geomatch die verkeer van alle landen of regio's blokkeert, met uitzondering van de VS:
Portalvoorbeeld - Application Gateway
Portalvoorbeeld - Front Door
Notitie
U ziet dat u azure Front Door WAF gebruikt SocketAddr
als de overeenkomstvariabele en niet RemoteAddr
. De RemoteAddr
variabele is het oorspronkelijke IP-adres van de client dat meestal via de X-Forwarded-For
aanvraagheader wordt verzonden. De SocketAddr
variabele is het bron-IP-adres dat de WAF ziet.
Bicep-voorbeeld - Application Gateway
properties: {
customRules: [
{
name: 'GeoRule1'
priority: 10
ruleType: 'MatchRule'
action: 'Block'
matchConditions: [
{
matchVariables: [
{
variableName: 'RemoteAddr'
}
]
operator: 'GeoMatch'
negationCondition: true
matchValues: [
'US'
]
transforms: []
}
]
state: 'Enabled'
}
Bicep-voorbeeld - Front Door
properties: {
customRules: {
rules: [
{
name: 'GeoRule1'
enabledState: 'Enabled'
priority: 10
ruleType: 'MatchRule'
matchConditions: [
{
matchVariable: 'SocketAddr'
operator: 'GeoMatch'
negateCondition: true
matchValue: [
'US'
]
transforms: []
}
]
action: 'Block'
}
Azure PowerShell-voorbeeld - Application Gateway
$RGname = "rg-waf "
$policyName = "waf-pol"
$variable = New-AzApplicationGatewayFirewallMatchVariable -VariableName RemoteAddr
$condition = New-AzApplicationGatewayFirewallCondition -MatchVariable $variable -Operator GeoMatch -MatchValue "US" -NegationCondition $true
$rule = New-AzApplicationGatewayFirewallCustomRule -Name GeoRule1 -Priority 10 -RuleType MatchRule -MatchCondition $condition -Action Block
$policy = Get-AzApplicationGatewayFirewallPolicy -Name $policyName -ResourceGroupName $RGname
$policy.CustomRules.Add($rule)
Set-AzApplicationGatewayFirewallPolicy -InputObject $policy
Azure PowerShell-voorbeeld - Front Door
$RGname = "rg-waf"
$policyName = "wafafdpol"
$matchCondition = New-AzFrontDoorWafMatchConditionObject -MatchVariable SocketAddr -OperatorProperty GeoMatch -MatchValue "US" -NegateCondition $true
$customRuleObject = New-AzFrontDoorWafCustomRuleObject -Name "GeoRule1" -RuleType MatchRule -MatchCondition $matchCondition -Action Block -Priority 10
$afdWAFPolicy= Get-AzFrontDoorWafPolicy -Name $policyName -ResourceGroupName $RGname
Update-AzFrontDoorWafPolicy -InputObject $afdWAFPolicy -Customrule $customRuleObject
Scenario 2: Verkeer van alle landen of regio's blokkeren, met uitzondering van 'x' en 'y' die gericht zijn op de URI 'foo' of 'bar'
Overweeg een scenario waarin u aangepaste regels voor geomatch moet gebruiken om verkeer uit alle landen of regio's te blokkeren, met uitzondering van twee of meer specifieke regels, gericht op een specifieke URI. Stel dat uw webtoepassing specifieke URI-paden heeft die alleen zijn bedoeld voor gebruikers in de VS en Canada. In dit geval maakt u een aangepaste regel voor geomatch die alle aanvragen blokkeert die niet afkomstig zijn van deze landen of regio's.
Dit patroon verwerkt nettoladingen van aanvragen van de VS en Canada via de beheerde regelsets, waarbij schadelijke aanvallen worden gedetecteerd, terwijl aanvragen van alle andere landen of regio's worden geblokkeerd. Deze aanpak zorgt ervoor dat alleen uw doelgroep toegang heeft tot uw webtoepassing, waardoor ongewenst verkeer van andere regio's wordt voorkomen.
Als u mogelijke fout-positieven wilt minimaliseren, moet u de landcode ZZ in de lijst opnemen om IP-adressen vast te leggen die nog niet zijn toegewezen aan een land of regio in de gegevensset van Azure. Deze techniek maakt gebruik van een negatevoorwaarde voor het geolocatietype en een niet-negatevoorwaarde voor de URI-overeenkomst.
Als u een aangepaste regel voor geomatch wilt maken die verkeer van alle landen of regio's blokkeert, met uitzondering van de VS en Canada naar een opgegeven URI, raadpleegt u de portal-, Bicep- en Azure PowerShell-voorbeelden.
Portalvoorbeeld - Application Gateway
Portalvoorbeeld - Front Door
Bicep-voorbeeld - Application Gateway
properties: {
customRules: [
{
name: 'GeoRule2'
priority: 11
ruleType: 'MatchRule'
action: 'Block'
matchConditions: [
{
matchVariables: [
{
variableName: 'RemoteAddr'
}
]
operator: 'GeoMatch'
negationCondition: true
matchValues: [
'US'
'CA'
]
transforms: []
}
{
matchVariables: [
{
variableName: 'RequestUri'
}
]
operator: 'Contains'
negationCondition: false
matchValues: [
'/foo'
'/bar'
]
transforms: []
}
]
state: 'Enabled'
}
Bicep-voorbeeld - Front Door
properties: {
customRules: {
rules: [
{
name: 'GeoRule2'
enabledState: 'Enabled'
priority: 11
ruleType: 'MatchRule'
matchConditions: [
{
matchVariable: 'SocketAddr'
operator: 'GeoMatch'
negateCondition: true
matchValue: [
'US'
'CA'
]
transforms: []
}
{
matchVariable: 'RequestUri'
operator: 'Contains'
negateCondition: false
matchValue: [
'/foo'
'/bar'
]
transforms: []
}
]
action: 'Block'
}
Azure PowerShell-voorbeeld - Application Gateway
$RGname = "rg-waf "
$policyName = "waf-pol"
$variable1a = New-AzApplicationGatewayFirewallMatchVariable -VariableName RemoteAddr
$condition1a = New-AzApplicationGatewayFirewallCondition -MatchVariable $variable1a -Operator GeoMatch -MatchValue @(“US”, “CA”) -NegationCondition $true
$variable1b = New-AzApplicationGatewayFirewallMatchVariable -VariableName RequestUri
$condition1b = New-AzApplicationGatewayFirewallCondition -MatchVariable $variable1b -Operator Contains -MatchValue @(“/foo”, “/bar”) -NegationCondition $false
$rule1 = New-AzApplicationGatewayFirewallCustomRule -Name GeoRule2 -Priority 11 -RuleType MatchRule -MatchCondition $condition1a, $condition1b -Action Block
$policy = Get-AzApplicationGatewayFirewallPolicy -Name $policyName -ResourceGroupName $RGname
$policy.CustomRules.Add($rule1)
Set-AzApplicationGatewayFirewallPolicy -InputObject $policy
Azure PowerShell-voorbeeld - Front Door
$RGname = "rg-waf"
$policyName = "wafafdpol"
$matchCondition1a = New-AzFrontDoorWafMatchConditionObject -MatchVariable SocketAddr -OperatorProperty GeoMatch -MatchValue @(“US”, "CA") -NegateCondition $true
$matchCondition1b = New-AzFrontDoorWafMatchConditionObject -MatchVariable RequestUri -OperatorProperty Contains -MatchValue @(“/foo”, “/bar”) -NegateCondition $false
$customRuleObject1 = New-AzFrontDoorWafCustomRuleObject -Name "GeoRule2" -RuleType MatchRule -MatchCondition $matchCondition1a, $matchCondition1b -Action Block -Priority 11
$afdWAFPolicy= Get-AzFrontDoorWafPolicy -Name $policyName -ResourceGroupName $RGname
Update-AzFrontDoorWafPolicy -InputObject $afdWAFPolicy -Customrule $customRuleObject1
Scenario 3: verkeer specifiek van land of regio 'x' blokkeren
U kunt aangepaste regels voor geomatch gebruiken om verkeer van specifieke landen of regio's te blokkeren. Als uw webtoepassing bijvoorbeeld veel schadelijke aanvragen ontvangt van land of regio x, maakt u een aangepaste regel voor geomatch om alle aanvragen uit dat land of die regio te blokkeren. Hierdoor wordt uw webtoepassing beschermd tegen mogelijke aanvallen en wordt de resourcebelasting verminderd. Pas dit patroon toe om meerdere kwaadwillende of vijandige landen of regio's te blokkeren. Voor deze techniek is een overeenkomstvoorwaarde vereist voor het verkeerspatroon. Zie de volgende portal-, Bicep- en Azure PowerShell-voorbeelden om verkeer van land of regio 'x' te blokkeren.
Portalvoorbeeld - Application Gateway
Portalvoorbeeld - Front Door
Bicep-voorbeeld - Application Gateway
properties: {
customRules: [
{
name: 'GeoRule3'
priority: 12
ruleType: 'MatchRule'
action: 'Block'
matchConditions: [
{
matchVariables: [
{
variableName: 'RemoteAddr'
}
]
operator: 'GeoMatch'
negationCondition: false
matchValues: [
'US'
]
transforms: []
}
]
state: 'Enabled'
}
Bicep-voorbeeld - Front Door
properties: {
customRules: {
rules: [
{
name: 'GeoRule3'
enabledState: 'Enabled'
priority: 12
ruleType: 'MatchRule'
matchConditions: [
{
matchVariable: 'SocketAddr'
operator: 'GeoMatch'
negateCondition: false
matchValue: [
'US'
]
transforms: []
}
]
action: 'Block'
}
Azure PowerShell-voorbeeld - Application Gateway
$RGname = "rg-waf "
$policyName = "waf-pol"
$variable2 = New-AzApplicationGatewayFirewallMatchVariable -VariableName RemoteAddr
$condition2 = New-AzApplicationGatewayFirewallCondition -MatchVariable $variable2 -Operator GeoMatch -MatchValue "US" -NegationCondition $false
$rule2 = New-AzApplicationGatewayFirewallCustomRule -Name GeoRule3 -Priority 12 -RuleType MatchRule -MatchCondition $condition2 -Action Block
$policy = Get-AzApplicationGatewayFirewallPolicy -Name $policyName -ResourceGroupName $RGname
$policy.CustomRules.Add($rule2)
Set-AzApplicationGatewayFirewallPolicy -InputObject $policy
Azure PowerShell-voorbeeld - Front Door
$RGname = "rg-waf"
$policyName = "wafafdpol"
$matchCondition2 = New-AzFrontDoorWafMatchConditionObject -MatchVariable SocketAddr -OperatorProperty GeoMatch -MatchValue "US" -NegateCondition $false
$customRuleObject2 = New-AzFrontDoorWafCustomRuleObject -Name "GeoRule3" -RuleType MatchRule -MatchCondition $matchCondition2 -Action Block -Priority 12
$afdWAFPolicy= Get-AzFrontDoorWafPolicy -Name $policyName -ResourceGroupName $RGname
Update-AzFrontDoorWafPolicy -InputObject $afdWAFPolicy -Customrule $customRuleObject2
Antipatronen voor aangepaste regels voor geomatch
Vermijd antipatronen bij het gebruik van aangepaste regels voor geomatch, zoals het instellen van de aangepaste regelactie allow
in plaats van block
. Dit kan onbedoelde gevolgen hebben, zoals het toestaan van verkeer om de WAF te omzeilen en uw webtoepassing mogelijk bloot te stellen aan andere bedreigingen.
In plaats van een allow
actie te gebruiken, gebruikt u een block
actie met een negatevoorwaarde, zoals wordt weergegeven in eerdere patronen. Dit zorgt ervoor dat alleen verkeer van de gewenste landen of regio's wordt toegestaan en het WAF blokkeert al het andere verkeer.
Scenario 4: verkeer van land of regio 'x' toestaan
Vermijd het instellen van de aangepaste regel voor geomatch om verkeer van een specifiek land of een specifieke regio toe te staan. Als u bijvoorbeeld verkeer van de Verenigde Staten wilt toestaan vanwege een groot klantenbestand, kan het maken van een aangepaste regel met de actie allow
en de waarde United States
eruit zien als de oplossing. Met deze regel is echter al het verkeer van de Verenigde Staten toegestaan, ongeacht of deze een schadelijke nettolading heeft of niet, omdat de allow
actie verdere verwerking van beheerde regelsets omzeilt. Daarnaast verwerkt de WAF nog steeds verkeer van alle andere landen of regio's, met behulp van resources. Hierdoor wordt uw webtoepassing blootgesteld aan schadelijke aanvragen van de Verenigde Staten die de WAF anders zou blokkeren.
Scenario 5: verkeer van alle provincies toestaan, met uitzondering van 'x'
Vermijd het instellen van de regelactie voor allow
en het opgeven van een lijst met landen of regio's die moeten worden uitgesloten wanneer aangepaste regels voor geomatch worden gebruikt. Als u bijvoorbeeld verkeer van alle landen of regio's wilt toestaan, met uitzondering van de Verenigde Staten, waarbij u verdachte activiteiten vermoedt, kan deze aanpak onbedoelde gevolgen hebben. Hierdoor kan verkeer vanuit niet-geverifieerde of onveilige landen/regio's of landen/regio's met een lage of geen beveiligingsstandaard worden toegestaan, waardoor uw webtoepassing wordt blootgesteld aan mogelijke beveiligingsproblemen of aanvallen. Als u de allow
actie gebruikt voor alle landen of regio's, met uitzondering van de VS, geeft de WAF aan om de verwerking van nettoladingen van aanvragen op basis van beheerde regelsets te stoppen. Alle regelevaluatie wordt beëindigd zodra de aangepaste regel is allow
verwerkt, waardoor de toepassing wordt blootgesteld aan ongewenste aanvallen.
Gebruik in plaats daarvan een meer beperkende en specifieke regelactie, zoals blokkeren, en geef een lijst met landen of regio's op die moeten worden toegestaan met een negatevoorwaarde. Dit zorgt ervoor dat alleen verkeer van vertrouwde en geverifieerde bronnen toegang heeft tot uw webtoepassing terwijl verdacht of ongewenst verkeer wordt geblokkeerd.