Share via


Ağ güvenliğini geliştirmek için Azure WAF coğrafi eşleşme özel kurallarını kullanma

Web uygulaması güvenlik duvarları (WAF' ler), web uygulamalarının zararlı saldırılara karşı korunmasına yardımcı olan önemli bir araçtır. Önceden ayarlanmış ve özel kuralları kullanarak web trafiğini filtreleyebilir, izleyebilir ve durdurabilir. WAF'nin aldığı her isteği denetlemesi için kendi kuralınızı oluşturabilirsiniz. Özel kurallar, yönetilen kurallardan daha yüksek önceliğe sahiptir ve önce denetlenilir.

Azure Web Uygulaması Güvenlik Duvarı'nin en güçlü özelliklerinden biri, coğrafi olarak özel kurallardır. Bu kurallar, web isteklerini geldikleri coğrafi konumla eşleştirmenize olanak sağlar. Zararlı etkinliklerle bilinen belirli yerlerden gelen istekleri durdurmak veya işletmeniz için önemli yerlerden gelen isteklere izin vermek isteyebilirsiniz. Geomatch özel kuralları, web uygulamalarınıza erişimi bunları kullanan kişilerin konumuna göre sınırlayarak veri hakimiyeti ve gizlilik yasalarına uymanıza da yardımcı olabilir.

Gereksiz işleme veya çakışmaları önlemek için coğrafi eşleşme özel kurallarını kullanırken öncelik parametresini akıllıca kullanın. Azure WAF, kuralları 1 ile 100 arasında bir sayısal değer olan öncelik parametresi tarafından belirlenen sırayla değerlendirir ve daha düşük değerler daha yüksek önceliğe işaret eder. Öncelik, tüm özel kurallarda benzersiz olmalıdır. Web uygulamanızın güvenliği için kritik veya belirli kurallara daha yüksek öncelik ve daha az temel veya genel kurallara daha düşük öncelik atayın. Bu, WAF'nin web trafiğinize en uygun eylemleri uygulamasını sağlar. Örneğin, açık bir URI yolunu tanımladığınız senaryo en belirgindir ve diğer desen türlerinden daha yüksek bir öncelik kuralına sahip olmalıdır. Bu, uygulamadaki kritik bir yolu en yüksek önceliğe sahip korurken diğer özel kurallar veya yönetilen kural kümeleri arasında daha genel trafiğin değerlendirilmesine olanak sağlar.

Mevcut zaman ve etkin sesi kullanarak paragrafın teknik izleyiciler için daha kolay anlaşılmasını sağlamak için, paragrafı aşağıdaki gibi yeniden yazabilirsiniz:

Kurallarınızı üretime uygulamadan önce her zaman test edin ve bunların performansını ve etkisini düzenli olarak izleyin. Bu en iyi yöntemleri izleyerek coğrafi eşleştirme özel kurallarının gücünü kullanarak web uygulaması güvenliğinizi geliştirebilirsiniz.

Bu makalede Azure WAF coğrafi eşleşme özel kuralları tanıtılmaktadır ve Azure portalı, Bicep ve Azure PowerShell'i kullanarak bunları nasıl oluşturacağınız ve yönetebilirsiniz.

Geomatch özel kural desenleri

Coğrafi eşleşme özel kuralları, yüksek riskli alanlardan gelen istekleri engelleme ve güvenilen konumlardan gelen isteklere izin verme gibi çeşitli güvenlik hedeflerini karşılamanızı sağlar. Bunlar, çeşitli kaynaklardan gelen çok sayıda istekle web uygulamanızın zararını azaltmaya çalışan dağıtılmış hizmet reddi (DDoS) saldırılarını azaltmada özellikle etkilidir. Coğrafi eşleşme özel kurallarıyla, yasal kullanıcılara erişim izni verirken en çok DDoS trafiğini oluşturan bölgeleri hemen tespit edebilir ve engelleyebilirsiniz. Bu makalede, coğrafi eşleşme özel kurallarını kullanarak Azure WAF'nizi iyileştirmek için kullanabileceğiniz çeşitli özel kural desenleri hakkında bilgi ediniyorsunuz.

Senaryo 1 - "x" dışındaki tüm ülkelerden gelen trafiği engelleme

Geomatch özel kuralları, tüm ülkelerden gelen trafiği engellemeyi ve birini engellemeyi hedeflediğinizde yararlı olur. Örneğin, web uygulamanız yalnızca Birleşik Devletler kullanıcılara yönelikse, ABD'den kaynaklanan olmayan tüm istekleri engelleyen bir coğrafi eşleşme özel kuralı formüle edebilirsiniz. Bu strateji, web uygulamanızın saldırı yüzeyini etkili bir şekilde en aza indirir ve diğer bölgelerden yetkisiz erişimi engeller. Bu özel teknik, bu trafik düzenini kolaylaştırmak için bir olumsuzlama koşulu uygular. ABD dışındaki tüm ülkelerden gelen trafiği engelleyen bir coğrafi eşleşme özel kuralı oluşturmak için aşağıdaki portal, Bicep ve PowerShell örneklerine bakın:

Portal örneği - Application Gateway

Screenshot showing the Application Gateway WAF add custom rule screen.

Portal örneği - Front Door

Screenshot showing the Front Door WAF add custom rule screen.

Not

Azure Front Door WAF'de eşleşme değişkeni olarak kullandığınıza SocketAddr dikkat edin; değil RemoteAddr. RemoteAddr değişkeni, genellikle istek üst bilgisi aracılığıyla X-Forwarded-For gönderilen özgün istemci IP adresidir. SocketAddr değişken, WAF'nin gördüğü kaynak IP adresidir.

Bicep örneği - Application Gateway

properties: {
    customRules: [
      {
        name: 'GeoRule1'
        priority: 10
        ruleType: 'MatchRule'
        action: 'Block'
        matchConditions: [
          {
            matchVariables: [
              {
                variableName: 'RemoteAddr'
              }
            ]
            operator: 'GeoMatch'
            negationConditon: true
            matchValues: [
              'US'
            ]
            transforms: []
          }
        ]
        state: 'Enabled'
      }

Bicep örneği - 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 örneği - 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 örneği - 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

Senaryo 2 - "foo" veya "bar" URI'sini hedefleyen "x" ve "y" dışındaki tüm ülkelerden gelen trafiği engelleme

belirli bir URI'yi hedefleyen iki veya daha fazla belirli ülke dışında tüm ülkelerden gelen trafiği engellemek için coğrafi eşleşme özel kurallarını kullanmanız gereken bir senaryo düşünün. Web uygulamanızın yalnızca ABD ve Kanada'daki kullanıcılara yönelik belirli URI yollarına sahip olduğunu varsayalım. Bu durumda, bu ülkelerden gelen tüm istekleri engelleyen bir coğrafi eşleşme özel kuralı oluşturursunuz.

Bu düzen, yönetilen kural kümeleri aracılığıyla ABD ve Kanada'dan gelen istek yüklerini işler, kötü amaçlı saldırıları yakalar ve diğer tüm ülkelerden gelen istekleri engeller. Bu yaklaşım, web uygulamanıza yalnızca hedef kitlenizin erişebilmesini sağlar ve diğer bölgelerden gelen istenmeyen trafiği önler.

Olası hatalı pozitif sonuçları en aza indirmek için, Azure'ın veri kümesindeki bir ülkeyle henüz eşlenmemiş IP adreslerini yakalamak için ZZ ülke kodunu listeye ekleyin. Bu teknik, Coğrafi Konum türü için bir olumsuz koşul ve URI eşleşmesi için olumsuz olmayan bir koşul kullanır.

ABD ve Kanada dışındaki tüm ülkelerden belirtilen bir URI'ye trafiği engelleyen bir coğrafi eşleşme özel kuralı oluşturmak için, sağlanan portal, Bicep ve Azure PowerShell örneklerine bakın.

Portal örneği - Application Gateway

Screenshot showing add custom rule for Application Gateway.

Portal örneği - Front Door

Screenshot showing add custom rule for Front Door.

Bicep örneği - Application Gateway

properties: {
    customRules: [
      {
        name: 'GeoRule2'
        priority: 11
        ruleType: 'MatchRule'
        action: 'Block'
        matchConditions: [
          {
            matchVariables: [
              {
                variableName: 'RemoteAddr'
              }
            ]
            operator: 'GeoMatch'
            negationConditon: true
            matchValues: [
              'US'
              'CA'
            ]
            transforms: []
          }
          {
            matchVariables: [
              {
                variableName: 'RequestUri'
              }
            ]
            operator: 'Contains'
            negationConditon: false
            matchValues: [
              '/foo'
              '/bar'
            ]
            transforms: []
          }
        ]
        state: 'Enabled'
      }

Bicep örneği - 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 örneği - 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 örneği - 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

Senaryo 3 - Özellikle "x" ülkesinden gelen trafiği engelleme

Belirli ülkelerden gelen trafiği engellemek için coğrafi eşleşme özel kurallarını kullanabilirsiniz. Örneğin, web uygulamanız "x" ülkesinden çok sayıda kötü amaçlı istek alıyorsa, bu ülkeden gelen tüm istekleri engellemek için bir coğrafi eşleşme özel kuralı oluşturun. Bu, web uygulamanızı olası saldırılara karşı korur ve kaynak yükünü azaltır. Birden çok kötü amaçlı veya düşman ülkeyi engellemek için bu düzeni uygulayın. Bu teknik, trafik düzeni için bir eşleşme koşulu gerektirir. "x" ülkesinden gelen trafiği engellemek için aşağıdaki portal, Bicep ve Azure PowerShell örneklerine bakın.

Portal örneği - Application Gateway

Screenshot showing the application gateway add custom rule screen.

Portal örneği - Front Door

Screenshot showing the front door add custom rule screen.

Bicep örneği - Application Gateway

properties: {
    customRules: [
      {
        name: 'GeoRule3'
        priority: 12
        ruleType: 'MatchRule'
        action: 'Block'
        matchConditions: [
          {
            matchVariables: [
              {
                variableName: 'RemoteAddr'
              }
            ]
            operator: 'GeoMatch'
            negationConditon: false
            matchValues: [
              'US'
            ]
            transforms: []
          }
        ]
        state: 'Enabled'
      }

Bicep örneği - 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 örneği - 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 örneği - 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 özel kural desenleri önleme

Geomatch özel kurallarını kullanırken özel kural eylemini allow yerine blockolarak ayarlama gibi desenlerden kaçının. Bu, trafiğin WAF'yi atlamasına izin vermek ve web uygulamanızı diğer tehditlere maruz bırakarak istenmeyen sonuçlar doğurabilir.

Eylem kullanmak allow yerine, önceki desenlerde gösterildiği gibi bir eylemi geçersiz bir koşulla kullanın block . Bu sayede yalnızca istenen ülkelerden gelen trafiğe izin verilir ve WAF diğer tüm trafiği engeller.

Senaryo 4 - "x" ülkesinden gelen trafiğe izin ver

Coğrafi eşleşme özel kuralını belirli bir ülkeden gelen trafiğe izin verecek şekilde ayarlamaktan kaçının. Örneğin, büyük bir müşteri tabanı nedeniyle Birleşik Devletler gelen trafiğe izin vermek istiyorsanız, eylem allow ve değer United States ile özel bir kural oluşturmak çözüm gibi görünebilir. Ancak bu kural, kötü amaçlı yüke sahip olup olmadığına bakılmaksızın Birleşik Devletler gelen tüm trafiğe izin verir. Eylem, yönetilen kural kümelerinin daha fazla kural işlemesini allow atlar. Buna ek olarak WAF, diğer tüm ülkelerden gelen trafiği işleyerek kaynakları kullanmaya devam eder. Bu, web uygulamanızı WAF'nin engelleyeceği Birleşik Devletler gelen kötü amaçlı isteklere maruz bırakır.

Senaryo 5 - "x" dışındaki tüm ilçelerden gelen trafiğe izin ver

Kural eylemini olarak allow ayarlamaktan ve geomatch özel kuralları kullanılırken dışlanması gereken ülkelerin listesini belirtmekten kaçının. Örneğin, kötü amaçlı etkinliklerden şüphelendiğiniz Birleşik Devletler dışındaki tüm ülkelerden gelen trafiğe izin vermek istiyorsanız, bu yaklaşımın istenmeyen sonuçları olabilir. Doğrulanmamış veya güvenli olmayan ülkelerden ya da güvenlik standartları düşük veya hiç olmayan ülkelerden gelen trafiğe izin verebilir ve web uygulamanızı olası güvenlik açıklarına veya saldırılara maruz kalabilir. Eylemin allow ABD dışındaki tüm ülkeler için kullanılması WAF'ye yönetilen kural kümelerine karşı istek yüklerinin işlenmesini durdurmasını belirtir. ile özel kural işlendikten sonra tüm kural allow değerlendirmesi durdurularak uygulamayı istenmeyen kötü amaçlı saldırılara maruz bırakarak.

Bunun yerine, blok gibi daha kısıtlayıcı ve belirli bir kural eylemi kullanın ve bir olumsuzlama koşuluyla izin verecek ülkelerin listesini belirtin. Bu, şüpheli veya istenmeyen trafiği engellerken yalnızca güvenilir ve doğrulanmış kaynaklardan gelen trafiğin web uygulamanıza erişmesini sağlar.

Sonraki adımlar