Поделиться через


Использование пользовательских правил геоматча Azure WAF для повышения безопасности сети

Брандмауэры веб-приложений (WAFs) — это важное средство, которое помогает защитить веб-приложения от вредоносных атак. Они могут фильтровать, отслеживать и останавливать веб-трафик с помощью предварительно заданных и пользовательских правил. Вы можете создать собственное правило, которое проверка WAF для каждого запроса. Пользовательские правила имеют более высокий приоритет, чем управляемые правила, и сначала проверка.

Одним из самых мощных функций Azure Брандмауэр веб-приложений является геоматч настраиваемые правила. Эти правила позволяют сопоставлять веб-запросы с географическим расположением, откуда они приходят. Возможно, вы хотите остановить запросы из определенных мест, известных для вредной деятельности, или вы можете разрешить запросы из мест, важных для вашего бизнеса. Пользовательские правила geomatch также могут помочь вам следовать законам о независимости данных и конфиденциальности путем ограничения доступа к веб-приложениям на основе расположения пользователей, использующих их.

Используйте параметр приоритета мудро при использовании пользовательских правил геоматч, чтобы избежать ненужных операций обработки или конфликтов. Azure WAF оценивает правила в порядке, определяемом параметром приоритета, числовым значением от 1 до 100 с меньшими значениями, указывающими на более высокий приоритет. Приоритет должен быть уникальным для всех пользовательских правил. Назначьте более высокий приоритет критическим или конкретным правилам безопасности веб-приложения и более низким приоритетом менее важным или общим правилам. Это гарантирует, что WAF применяет наиболее подходящие действия к веб-трафику. Например, сценарий, в котором вы определяете явный ПУТЬ URI, является наиболее конкретным и должен иметь более высокое правило приоритета, чем другие типы шаблонов. Это защищает критически важный путь к приложению с наивысшим приоритетом, позволяя оценить более универсальный трафик в других пользовательских правилах или управляемых наборах правил.

Чтобы упростить понимание абзаца для технической аудитории с помощью текущей напряженной и активной голосовой связи, вы можете переписать его следующим образом:

Всегда тестируйте правила перед применением их к рабочей среде и регулярно отслеживайте их производительность и влияние. Следуя этим рекомендациям, вы можете улучшить безопасность веб-приложений с помощью возможностей пользовательских правил геоматч.

В этой статье представлены пользовательские правила геоматч Azure WAF и показано, как создавать и управлять ими с помощью портал Azure, Bicep и Azure PowerShell.

Шаблоны настраиваемых правил geomatch

Пользовательские правила geomatch позволяют выполнять различные цели безопасности, например блокировать запросы из областей высокого риска и разрешать запросы из надежных расположений. Они особенно эффективны в устранении распределенных атак типа "отказ в обслуживании" (DDoS), которые стремятся обундировать веб-приложение множеством запросов из различных источников. С помощью пользовательских правил геоматч можно быстро определить и заблокировать регионы, создающие большую часть трафика DDoS, при этом доступ к законным пользователям по-прежнему предоставляется. В этой статье вы узнаете о различных пользовательских шаблонах правил, которые можно использовать для оптимизации Azure WAF с помощью пользовательских правил геоматча.

Сценарий 1. Блокировка трафика со всех стран, кроме x

Пользовательские правила geomatch могут оказаться полезными, если вы стремитесь заблокировать трафик со всех стран, за исключением одного. Например, если веб-приложение обслуживает исключительно пользователей в США, можно сформулировать пользовательское правило геоматч, которое препятствует всем запросам, не исходящим из США. Эта стратегия эффективно сводит к минимуму область атаки веб-приложения и сдерживает несанкционированный доступ из других регионов. Этот конкретный метод использует отрицающее условие для упрощения этого шаблона трафика. Для создания пользовательского правила геоматча, которое препятствует трафику со всех стран, кроме США, см. следующие примеры портала, Bicep и PowerShell:

Пример портала — Шлюз приложений

Screenshot showing the Application Gateway WAF add custom rule screen.

Пример портала — Front Door

Screenshot showing the Front Door WAF add custom rule screen.

Примечание.

Обратите внимание на WAF Azure Front Door, вы используете SocketAddr в качестве переменной соответствия, а не RemoteAddr. Переменная RemoteAddr — это исходный IP-адрес клиента, который обычно отправляется с помощью заголовка X-Forwarded-For запроса. Переменная SocketAddr — это исходный IP-адрес, который отображает WAF.

Пример Bicep — Шлюз приложений

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

Пример 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'
        }

Пример Azure PowerShell — Шлюз приложений

$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 — 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

Сценарий 2. Блокировка трафика со всех стран, кроме "x" и "y", предназначенных для URI "foo" или "bar"

Рассмотрим сценарий, в котором необходимо использовать пользовательские правила геоматч для блокировки трафика со всех стран, за исключением двух или более конкретных, предназначенных для определенного URI. Предположим, что веб-приложение имеет определенные пути URI, предназначенные только для пользователей в США и Канаде. В этом случае создается пользовательское правило геоматч, которое блокирует все запросы, не исходящие из этих стран.

Этот шаблон обрабатывает запрос полезных данных из США и Канады через управляемые наборы правил, перехватыв любые вредоносные атаки, блокируя запросы со всех других стран. Этот подход гарантирует, что только целевая аудитория может получить доступ к веб-приложению, избегая нежелательного трафика из других регионов.

Чтобы свести к минимуму потенциальные ложные срабатывания, включите код страны в список для записи IP-адресов, которые еще не сопоставлены с страной в наборе данных Azure. Этот метод использует негейтное условие для типа географического расположения и негейтового условия для сопоставления URI.

Чтобы создать пользовательское правило геоматч, которое блокирует трафик со всех стран, кроме США и Канады, к указанному URI, см. на портале, Bicep и Azure PowerShell, приведенных в примерах.

Пример портала — Шлюз приложений

Screenshot showing add custom rule for Application Gateway.

Пример портала — Front Door

Screenshot showing add custom rule for Front Door.

Пример Bicep — Шлюз приложений

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 — 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 — Шлюз приложений

$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 — 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

Сценарий 3. Блокировка трафика конкретно из страны "x"

Пользовательские правила геоматч можно использовать для блокировки трафика из определенных стран. Например, если веб-приложение получает множество вредоносных запросов из страны "x", создайте настраиваемое правило geomatch, чтобы заблокировать все запросы из этой страны. Это защищает веб-приложение от потенциальных атак и снижает нагрузку ресурсов. Примените этот шаблон, чтобы заблокировать несколько вредоносных или враждебных стран. Для этого метода требуется условие соответствия для шаблона трафика. Сведения о блокировке трафика из страны x см. на следующем портале, Bicep и Azure PowerShell.

Пример портала — Шлюз приложений

Screenshot showing the application gateway add custom rule screen.

Пример портала — Front Door

Screenshot showing the front door add custom rule screen.

Пример Bicep — Шлюз приложений

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

Пример 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'
        }

Пример Azure PowerShell — Шлюз приложений

$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 — 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

Геоматч настраиваемых шаблонов правил

Избегайте защиты от шаблонов при использовании пользовательских правил геоматча, например при задании действия пользовательского правила allow вместо block. Это может иметь непреднамеренные последствия, например, позволяя трафику обходить WAF и потенциально предоставлять веб-приложению другие угрозы.

Вместо использования allow действия используйте block действие с неуготным условием, как показано в предыдущих шаблонах. Это гарантирует, что разрешен только трафик из нужных стран, а WAF блокирует весь остальной трафик.

Сценарий 4. Разрешить трафик из страны "x"

Избегайте настройки настраиваемого правила геоматча, чтобы разрешить трафик из определенной страны. Например, если вы хотите разрешить трафик из США из-за большой клиентской базы, создание настраиваемого правила с действием allow и значение United States может показаться решением. Однако это правило разрешает весь трафик из США независимо от того, имеет ли он вредоносные полезные данные или нет, так как allow действие проходит дальнейшую обработку правил управляемых наборов правил. Кроме того, WAF по-прежнему обрабатывает трафик со всех других стран, потребляя ресурсы. Это предоставляет веб-приложению вредоносные запросы из США, что WAF в противном случае будет блокироваться.

Сценарий 5. Разрешить трафик из всех округов, кроме x

Избегайте настройки действия allow правила и указания списка стран, которые следует исключить при использовании пользовательских правил геоматча. Например, если вы хотите разрешить трафик со всех стран, кроме США, где вы подозреваете вредоносное действие, этот подход может иметь непредвиденные последствия. Это может позволить трафику из небезопасных или небезопасных стран или стран с низкими или без стандартов безопасности, предоставляя веб-приложению потенциальные уязвимости или атаки. allow Использование действия для всех стран, кроме США, указывает WAF, чтобы прекратить обработку полезных данных запросов к управляемым правилам. Все вычисление правил прекращается после обработки пользовательского правила allow , предоставляя приложению нежелательные вредоносные атаки.

Вместо этого используйте более строгое и конкретное действие правила, например блокировку, и укажите список стран, которые разрешают с неустранительным условием. Это гарантирует, что только трафик из доверенных и проверенных источников может получить доступ к веб-приложению, блокируя любой подозрительный или нежелательный трафик.

Следующие шаги