Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Web Application Firewalls (WAF's) zijn een belangrijk hulpmiddel dat webapplicaties helpt beschermen tegen schadelijke aanvallen. Ze kunnen webverkeer filteren, bewaken en stoppen met behulp van zowel vooraf ingestelde als aangepaste regels. U kunt uw eigen regel maken die elke aanvraag controleert die de WAF ontvangt. Aangepaste regels hebben een hogere prioriteit dan de beheerde regels en worden als eerste gecontroleerd.
Een van de krachtigste functies van Azure Web Application Firewall zijn aangepaste geomatch-regels. Met deze regels kunt u webverzoeken koppelen aan de geografische locatie van waar ze vandaan komen. Misschien wilt u verzoeken stoppen van bepaalde plaatsen die bekend staan om hun schadelijke activiteiten, of wilt u verzoeken toestaan van plaatsen die belangrijk zijn voor uw bedrijf. Aangepaste regels van Geomatch kunnen u ook helpen bij het volgen van gegevenssoevereiniteit en privacywetten door de toegang tot uw webapplicaties te beperken op basis van de locatie van de mensen die ze gebruiken.
Gebruik de prioriteitsparameter verstandig bij het gebruik van aangepaste geomatch-regels om onnodige verwerking of conflicten te voorkomen. Azure WAF evalueert regels in de volgorde die wordt bepaald door de prioriteitsparameter, een numerieke waarde van 1 tot 100, waarbij lagere waarden een hogere prioriteit aangeven. De prioriteit moet binnen alle aangepaste regels uniek zijn. Ken een hogere prioriteit toe aan kritieke of specifieke regels voor de beveiliging van uw webtoepassing en een 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 hogere prioriteitsregel hebben dan andere typen patronen. Dit beschermt een kritiek pad in de toepassing met de hoogste prioriteit, terwijl meer algemeen verkeer kan worden geëvalueerd in andere aangepaste regels of beheerde regelsets.
Om de alinea begrijpelijker te maken voor een technisch publiek met behulp van tegenwoordige tijd en actieve stem, kunt u deze als volgt herschrijven:
Test altijd uw regels voordat u ze op de productie toepast en controleer regelmatig de prestaties en impact ervan. Door deze best practices te volgen, kunt u de beveiliging van uw webapplicatie verbeteren door de kracht van aangepaste geomatch-regels te gebruiken.
In dit artikel worden aangepaste regels voor Azure WAF geomatch geïntroduceerd en wordt beschreven hoe u deze kunt maken en beheren met behulp van de Azure Portal, Bicep en Azure PowerShell.
Aangepaste regelpatronen voor geomatch
Met aangepaste geomatch-regels kunt u aan verschillende beveiligingsdoelen voldoen, zoals het blokkeren van verzoeken uit risicogebieden en het toestaan van verzoeken van vertrouwde locaties. Ze zijn met name effectief in het beperken van distributed denial-of-service (DDoS)-aanvallen, die erop gericht zijn uw webapplicatie te overspoelen met een groot aantal verzoeken uit verschillende bronnen. Met aangepaste geomatch-regels kunt u regio's die het meeste DDoS-verkeer genereren snel lokaliseren en blokkeren, terwijl u nog steeds toegang verleent aan legitieme gebruikers. In dit artikel vindt u meer informatie over verschillende aangepaste regelpatronen die u kunt gebruiken om uw Azure WAF te optimaliseren met behulp van aangepaste geomatch-regels.
Scenario 1 - Verkeer blokkeren uit alle landen of regio's behalve 'x'
Aangepaste geomatch-regels zijn handig wanneer u verkeer uit alle landen of regio's wilt blokkeren, op één na. Als uw webapplicatie zich bijvoorbeeld uitsluitend richt op gebruikers in de Verenigde Staten, kunt u een aangepaste geomatch-regel formuleren die alle verzoeken blokkeert die niet afkomstig zijn uit de VS. Deze strategie minimaliseert effectief het aanvalsoppervlak van uw webapplicatie en ontmoedigt ongeoorloofde toegang vanuit andere regio's. Deze specifieke techniek maakt gebruik van een ontkennende voorwaarde om dit verkeerspatroon te vergemakkelijken. Voor het maken van een aangepaste geomatch-regel die verkeer uit alle landen of regio's behalve de VS belemmert, raadpleegt u de volgende portal-, Bicep- en PowerShell-voorbeelden:
Voorbeeld van een portal - Application Gateway
Voorbeeld van een portaal - Voordeur
Opmerking
Merk op dat op de Azure Front Door WAF u gebruikt SocketAddr
als de matchvariabele en niet RemoteAddr
. De RemoteAddr
variabele is het oorspronkelijke IP-adres van de client dat meestal wordt verzonden via de X-Forwarded-For
aanvraagheader. De SocketAddr
variabele is het bron-IP-adres dat de WAF ziet.
Voorbeeld van Bicep - 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'
}
Voorbeeld van biceps - Deur aan de voorkant
properties: {
customRules: {
rules: [
{
name: 'GeoRule1'
enabledState: 'Enabled'
priority: 10
ruleType: 'MatchRule'
matchConditions: [
{
matchVariable: 'SocketAddr'
operator: 'GeoMatch'
negateCondition: true
matchValue: [
'US'
]
transforms: []
}
]
action: 'Block'
}
Voorbeeld van Azure PowerShell - 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
Voorbeeld van Azure PowerShell - 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 blokkeren uit alle landen of regio's, met uitzondering van 'x' en 'y', die zijn gericht op de URI 'foo' of 'bar'
Overweeg een scenario waarin u aangepaste geomatch-regels moet gebruiken om verkeer uit alle landen of regio's te blokkeren, met uitzondering van twee of meer specifieke, die gericht zijn 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 geomatch-regel die alle aanvragen blokkeert die niet afkomstig zijn uit deze landen of regio's.
Dit patroon verwerkt aanvraagpayloads uit de VS en Canada via de beheerde regelsets, waardoor eventuele schadelijke aanvallen worden onderschept en verzoeken uit alle andere landen of regio's worden geblokkeerd. Deze aanpak zorgt ervoor dat alleen uw doelgroep toegang heeft tot uw webapplicatie, waardoor ongewenst verkeer uit andere regio's wordt voorkomen.
Als u mogelijke fout-positieven tot een minimum wilt beperken, neemt u de landcode ZZ op in de lijst 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 ontkenningsvoorwaarde voor het geolocatietype en een niet-ontkenningsvoorwaarde voor de URI-overeenkomst.
Als u een aangepaste geomatch-regel wilt maken die verkeer blokkeert van alle landen of regio's behalve de VS en Canada naar een opgegeven URI, raadpleegt u de portal-, Bicep- en Azure PowerShell-voorbeelden.
Voorbeeld van een portal - Application Gateway
Voorbeeld van een portaal - Voordeur
Voorbeeld van Bicep - 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'
}
Voorbeeld van biceps - Deur aan de voorkant
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'
}
Voorbeeld van Azure PowerShell - 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
Voorbeeld van Azure PowerShell - 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 blokkeren specifiek uit land of regio "x"
U kunt aangepaste geomatch-regels gebruiken om verkeer uit specifieke landen of regio's te blokkeren. Als uw webtoepassing bijvoorbeeld veel schadelijke verzoeken ontvangt van land of regio 'x', maakt u een aangepaste geomatch-regel om alle verzoeken uit dat land of die regio te blokkeren. Dit beschermt uw webapplicatie tegen mogelijke aanvallen en vermindert de belasting van bronnen. Pas dit patroon toe om meerdere kwaadaardige of vijandige landen of regio's te blokkeren. Deze techniek vereist een match-voorwaarde voor het verkeerspatroon. Als u verkeer van land of regio 'x' wilt blokkeren, raadpleegt u de volgende voorbeelden van portals, Bicep en Azure PowerShell.
Voorbeeld van een portal - Application Gateway
Voorbeeld van een portaal - Voordeur
Voorbeeld van Bicep - 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'
}
Voorbeeld van biceps - Deur aan de voorkant
properties: {
customRules: {
rules: [
{
name: 'GeoRule3'
enabledState: 'Enabled'
priority: 12
ruleType: 'MatchRule'
matchConditions: [
{
matchVariable: 'SocketAddr'
operator: 'GeoMatch'
negateCondition: false
matchValue: [
'US'
]
transforms: []
}
]
action: 'Block'
}
Voorbeeld van Azure PowerShell - 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
Voorbeeld van Azure PowerShell - 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
Geomatch aangepaste regel antipatronen
Vermijd antipatronen bij het gebruik van aangepaste geomatch-regels, zoals het instellen van de actie voor aangepaste regels op allow
in plaats van block
. Dit kan onbedoelde gevolgen hebben, zoals het toestaan dat verkeer de WAF omzeilt en uw webapplicatie mogelijk blootstelt aan andere bedreigingen.
In plaats van een allow
actie te gebruiken, gebruik je een block
actie met een ontkenningsvoorwaarde, zoals in eerdere patronen wordt getoond. Dit zorgt ervoor dat alleen verkeer uit de gewenste landen of regio's is toegestaan en dat de WAF al het andere verkeer blokkeert.
Scenario 4 - verkeer uit land of regio "x" toestaan
Stel de aangepaste geomatch-regel niet in om verkeer uit een specifiek land of een specifieke regio toe te staan. Als u bijvoorbeeld verkeer uit de Verenigde Staten wilt toestaan vanwege een groot klantenbestand, lijkt het maken van een aangepaste regel met de actie allow
en de waarde United States
de oplossing. Deze regel staat echter al het verkeer uit de Verenigde Staten toe, ongeacht of het een schadelijke payload heeft of niet, aangezien de allow
actie verdere regelverwerking van beheerde regelsets omzeilt. Bovendien verwerkt de WAF nog steeds verkeer uit alle andere landen of regio's, waardoor bronnen worden verbruikt. Dit stelt uw webapplicatie bloot aan kwaadaardige verzoeken uit de Verenigde Staten die de WAF anders zou blokkeren.
Scenario 5 - Verkeer uit alle provincies behalve "x" toestaan
Vermijd het instellen van de regelactie op allow
en het opgeven van een lijst met landen of regio's die moeten worden uitgesloten bij het gebruik van aangepaste geomatch-regels. Als u bijvoorbeeld verkeer wilt toestaan uit alle landen of regio's, met uitzondering van de Verenigde Staten, waar u schadelijke activiteiten vermoedt, kan deze aanpak onbedoelde gevolgen hebben. Het kan verkeer toestaan uit niet-geverifieerde of onveilige landen/regio's of landen/regio's met lage of geen beveiligingsstandaarden, waardoor uw webtoepassing wordt blootgesteld aan mogelijke kwetsbaarheden of aanvallen. Als u de allow
actie gebruikt voor alle landen of regio's behalve de VS, geeft de WAF aan dat de verwerking van aanvraagpayloads op basis van beheerde regelsets moet worden stopgezet. Alle regelevaluatie wordt stopgezet zodra de aangepaste regel is allow
verwerkt, waardoor de toepassing wordt blootgesteld aan ongewenste schadelijke 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 ontkenningsvoorwaarde. Dit zorgt ervoor dat alleen verkeer van vertrouwde en geverifieerde bronnen toegang heeft tot uw webtoepassing, terwijl verdacht of ongewenst verkeer wordt geblokkeerd.