Menggunakan aturan kustom geomatch Azure WAF untuk meningkatkan keamanan jaringan

Firewall aplikasi web (WAF) adalah alat penting yang membantu melindungi aplikasi web dari serangan berbahaya. Mereka dapat memfilter, memantau, dan menghentikan lalu lintas web menggunakan aturan prasetel dan kustom. Anda dapat membuat aturan Anda sendiri yang diperiksa WAF untuk setiap permintaan yang didapatkannya. Aturan kustom memiliki prioritas yang lebih tinggi daripada aturan terkelola dan diperiksa terlebih dahulu.

Salah satu fitur paling canggih dari Azure Web Application Firewall adalah aturan kustom geomatch. Aturan ini memungkinkan Anda mencocokkan permintaan web dengan lokasi geografis asalnya. Anda mungkin ingin menghentikan permintaan dari tempat-tempat tertentu yang dikenal untuk aktivitas berbahaya, atau Anda mungkin ingin mengizinkan permintaan dari tempat-tempat penting untuk bisnis Anda. Aturan kustom geomatch juga dapat membantu Anda mengikuti undang-undang kedaulatan data dan privasi dengan membatasi akses ke aplikasi web Anda berdasarkan lokasi orang yang menggunakannya.

Gunakan parameter prioritas dengan bijaksana saat menggunakan aturan kustom geomatch untuk menghindari pemrosesan atau konflik yang tidak perlu. Azure WAF mengevaluasi aturan dalam urutan yang ditentukan oleh parameter prioritas, nilai numerik mulai dari 1 hingga 100, dengan nilai yang lebih rendah menunjukkan prioritas yang lebih tinggi. Prioritas harus unik di semua aturan kustom. Tetapkan prioritas yang lebih tinggi untuk aturan penting atau spesifik untuk keamanan aplikasi web Anda dan prioritas yang lebih rendah ke aturan yang kurang penting atau umum. Ini memastikan WAF menerapkan tindakan yang paling tepat untuk lalu lintas web Anda. Misalnya, skenario di mana Anda mengidentifikasi jalur URI eksplisit adalah yang paling spesifik dan harus memiliki aturan prioritas yang lebih tinggi daripada jenis pola lainnya. Ini melindungi jalur penting pada aplikasi dengan prioritas tertinggi sekaligus memungkinkan lalu lintas yang lebih umum dievaluasi di seluruh aturan kustom atau aturan terkelola lainnya.

Untuk membuat paragraf lebih mudah dipahami bagi audiens teknis menggunakan sajikan suara tegang dan aktif, Anda dapat menulis ulang sebagai berikut:

Selalu uji aturan Anda sebelum menerapkannya ke produksi dan memantau performa dan dampaknya secara teratur. Dengan mengikuti praktik terbaik ini, Anda dapat meningkatkan keamanan aplikasi web Anda dengan menggunakan kekuatan aturan kustom geomatch.

Artikel ini memperkenalkan aturan kustom geomatch Azure WAF dan menunjukkan kepada Anda cara membuat dan mengelolanya menggunakan portal Azure, Bicep, dan Azure PowerShell.

Pola aturan kustom geomatch

Aturan kustom geomatch memungkinkan Anda memenuhi beragam tujuan keamanan, seperti memblokir permintaan dari area berisiko tinggi dan mengizinkan permintaan dari lokasi tepercaya. Mereka sangat efektif dalam mengurangi serangan penolakan layanan terdistribusi (DDoS), yang berusaha membantah aplikasi web Anda dengan banyak permintaan dari berbagai sumber. Dengan aturan kustom geomatch, Anda dapat segera menentukan dan memblokir wilayah yang menghasilkan lalu lintas DDoS terbanyak, sambil tetap memberikan akses ke pengguna yang sah. Dalam artikel ini, Anda mempelajari tentang berbagai pola aturan kustom yang dapat Anda gunakan untuk mengoptimalkan Azure WAF Anda menggunakan aturan kustom geomatch.

Skenario 1 - Memblokir lalu lintas dari semua negara kecuali "x"

Aturan kustom geomatch terbukti berguna ketika Anda bertujuan untuk memblokir lalu lintas dari semua negara, melarang satu. Misalnya, jika aplikasi web Anda melayani secara eksklusif untuk pengguna di Amerika Serikat, Anda dapat merumuskan aturan kustom geomatch yang menghalangi semua permintaan yang tidak berasal dari AS. Strategi ini secara efektif meminimalkan permukaan serangan aplikasi web Anda dan menghalangi akses tidak sah dari wilayah lain. Teknik khusus ini menggunakan kondisi negasi untuk memfasilitasi pola lalu lintas ini. Untuk membuat aturan kustom geomatch yang menghalangi lalu lintas dari semua negara kecuali AS, lihat contoh portal, Bicep, dan PowerShell berikut:

Contoh portal - Application Gateway

Screenshot showing the Application Gateway WAF add custom rule screen.

Contoh portal - Front Door

Screenshot showing the Front Door WAF add custom rule screen.

Catatan

Perhatikan pada Azure Front Door WAF, Anda menggunakan SocketAddr sebagai variabel pencocokan dan bukan RemoteAddr. Variabel RemoteAddr adalah alamat IP klien asli yang biasanya dikirim melalui X-Forwarded-For header permintaan. Variabel SocketAddr adalah alamat IP sumber yang dilihat WAF.

Contoh Bicep - 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'
      }

Contoh Bicep - 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'
        }

Contoh 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

Contoh 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

Skenario 2 - Blokir lalu lintas dari semua negara kecuali "x" dan "y" yang menargetkan URI "foo" atau "bar"

Pertimbangkan skenario di mana Anda perlu menggunakan aturan kustom geomatch untuk memblokir lalu lintas dari semua negara, kecuali untuk dua atau beberapa yang spesifik, yang menargetkan URI tertentu. Misalkan aplikasi web Anda memiliki jalur URI tertentu yang hanya ditujukan untuk pengguna di AS dan Kanada. Dalam hal ini, Anda membuat aturan kustom geomatch yang memblokir semua permintaan yang tidak berasal dari negara-negara ini.

Pola ini memproses permintaan payload dari AS dan Kanada melalui seperangkat aturan terkelola, menangkap serangan berbahaya, sambil memblokir permintaan dari semua negara lain. Pendekatan ini memastikan bahwa hanya audiens target Anda yang dapat mengakses aplikasi web Anda, menghindari lalu lintas yang tidak diinginkan dari wilayah lain.

Untuk meminimalkan potensi positif palsu, sertakan kode negara ZZ dalam daftar untuk mengambil alamat IP yang belum dipetakan ke negara di himpunan data Azure. Teknik ini menggunakan kondisi negate untuk jenis Geolokasi dan kondisi non-negasi untuk kecocokan URI.

Untuk membuat aturan kustom geomatch yang memblokir lalu lintas dari semua negara kecuali AS dan Kanada ke URI tertentu, lihat contoh portal, Bicep, dan Azure PowerShell yang disediakan.

Contoh portal - Application Gateway

Screenshot showing add custom rule for Application Gateway.

Contoh portal - Front Door

Screenshot showing add custom rule for Front Door.

Contoh Bicep - 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'
      }

Contoh Bicep - 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'
        }

Contoh 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

Contoh 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

Skenario 3 - Memblokir lalu lintas khusus dari negara "x"

Anda dapat menggunakan aturan kustom geomatch untuk memblokir lalu lintas dari negara tertentu. Misalnya, jika aplikasi web Anda menerima banyak permintaan berbahaya dari negara "x", buat aturan kustom geomatch untuk memblokir semua permintaan dari negara tersebut. Ini melindungi aplikasi web Anda dari potensi serangan dan mengurangi beban sumber daya. Terapkan pola ini untuk memblokir beberapa negara berbahaya atau bermusuhan. Teknik ini memerlukan kondisi kecocokan untuk pola lalu lintas. Untuk memblokir lalu lintas dari negara "x", lihat contoh portal, Bicep, dan Azure PowerShell berikut ini.

Contoh portal - Application Gateway

Screenshot showing the application gateway add custom rule screen.

Contoh portal - Front Door

Screenshot showing the front door add custom rule screen.

Contoh Bicep - 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'
      }

Contoh Bicep - 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'
        }

Contoh 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

Contoh 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

Anti-pola aturan kustom geomatch

Hindari anti-pola saat menggunakan aturan kustom geomatch, seperti mengatur tindakan aturan kustom ke allow bukan block. Ini dapat memiliki konsekuensi yang tidak diinginkan, seperti memungkinkan lalu lintas melewati WAF dan berpotensi mengekspos aplikasi web Anda ke ancaman lain.

Alih-alih menggunakan tindakan, gunakan block tindakan dengan kondisi negrigasi, seperti yang allow ditunjukkan dalam pola sebelumnya. Ini memastikan hanya lalu lintas dari negara yang diinginkan yang diizinkan dan WAF memblokir semua lalu lintas lainnya.

Skenario 4 - izinkan lalu lintas dari negara "x"

Hindari mengatur aturan kustom geomatch untuk mengizinkan lalu lintas dari negara tertentu. Misalnya, jika Anda ingin mengizinkan lalu lintas dari Amerika Serikat karena basis pelanggan yang besar, membuat aturan kustom dengan tindakan allow dan nilainya United States mungkin tampak seperti solusi. Namun, aturan ini memungkinkan semua lalu lintas dari Amerika Serikat, terlepas dari apakah memiliki payload berbahaya atau tidak, karena allow tindakan melewati pemrosesan aturan lebih lanjut dari seperangkat aturan terkelola. Selain itu, WAF masih memproses lalu lintas dari semua negara lain, menggunakan sumber daya. Ini mengekspos aplikasi web Anda ke permintaan berbahaya dari Amerika Serikat yang akan diblokir OLEH WAF.

Skenario 5 - Izinkan lalu lintas dari semua kabupaten kecuali "x"

Hindari mengatur tindakan aturan ke allow dan menentukan daftar negara yang akan dikecualikan saat menggunakan aturan kustom geomatch. Misalnya, jika Anda ingin mengizinkan lalu lintas dari semua negara kecuali Amerika Serikat, di mana Anda mencurigai aktivitas berbahaya, pendekatan ini dapat memiliki konsekuensi yang tidak diinginkan. Ini mungkin memungkinkan lalu lintas dari negara atau negara yang tidak terverifikasi atau tidak aman dengan standar keamanan rendah atau tanpa, mengekspos aplikasi web Anda terhadap potensi kerentanan atau serangan. allow Menggunakan tindakan untuk semua negara kecuali AS menunjukkan kepada WAF untuk menghentikan pemrosesan payload permintaan terhadap seperangkat aturan terkelola. Semua evaluasi aturan berhenti setelah aturan kustom dengan allow diproses, mengekspos aplikasi ke serangan berbahaya yang tidak diinginkan.

Sebagai gantinya, gunakan tindakan aturan yang lebih ketat dan spesifik, seperti blokir, dan tentukan daftar negara yang diizinkan dengan kondisi meniadakan. Ini memastikan hanya lalu lintas dari sumber tepercaya dan terverifikasi yang dapat mengakses aplikasi web Anda sambil memblokir lalu lintas yang mencurigakan atau tidak diinginkan.

Langkah berikutnya