Regras personalizadas da Firewall de Aplicações Web v2 no Gateway de Aplicação do Azure

Aplica-se a: ✔️ Application Gateway V2

O Gateway de Aplicação do Azure Firewall de Aplicações Web (WAF) v2 inclui um conjunto de regras pré-configurado e gerido pela plataforma que protege contra muitos tipos diferentes de ataques. Estes ataques incluem scripting entre sites, injeção de SQL e outros. Se você for um administrador do WAF, talvez queira escrever suas próprias regras para aumentar as regras do conjunto de regras principais (CRS). As suas regras personalizadas podem bloquear, permitir ou registar o tráfego solicitado com base em critérios de correspondência. Se definir a política WAF para modo de deteção e uma regra de bloqueio personalizada for ativada, o pedido é registado e nenhuma ação de bloqueio é tomada.

Utilize regras personalizadas para criar as suas próprias regras que o WAF avalia para cada pedido. Estas regras têm uma prioridade superior às restantes regras nos conjuntos de regras geridas. As regras personalizadas contêm um nome de regra, prioridade de regra e uma matriz de condições correspondentes. Se estas condições forem cumpridas, o WAF toma uma ação para permitir, bloquear ou registar. Se uma regra personalizada é ativada e o WAF toma uma ação de permitir ou bloquear, o WAF não toma mais ações a partir de regras personalizadas ou geridas. No caso de uma regra personalizada desencadear uma ação de permitir ou bloquear, poderá ainda ver alguns eventos de registo para correspondências de regras a partir do conjunto de regras configurado (Core Rule Set/Default Rule Set), mas essas regras, contudo, não são aplicadas. Os eventos de log são exibidos apenas devido à otimização imposta pelo mecanismo WAF para processamento paralelo de regras e podem ser ignorados com segurança. Podes ativar ou desativar regras personalizadas a pedido.

Por exemplo, você pode bloquear todas as solicitações de um endereço IP no intervalo 192.168.5.0/24. Nesta regra, o operador é IPMatch, matchValues é o intervalo de endereços IP (192.168.5.0/24) e a ação é bloquear o tráfego. Também defines o nome da regra, a prioridade e o estado ativado ou desativado.

As regras personalizadas suportam o uso da lógica de composição para criar regras mais avançadas que atendam às suas necessidades de segurança. Por exemplo, você pode usar duas regras personalizadas para criar a seguinte lógica ((rule1:Condition 1 e rule1:Condition 2) ou rule2:Condition 3). Essa lógica significa que, se a Condição 1 e a Condição 2 forem atendidas, ou se a Condição 3 for atendida, o WAF deverá executar a ação especificada nas regras personalizadas.

Diferentes condições de correspondência dentro da mesma regra são sempre compostas usando e. Por exemplo, bloqueie o tráfego de um endereço IP específico e somente se eles estiverem usando um determinado navegador.

Se você quiser usar ou entre duas condições diferentes, então as duas condições devem estar em regras diferentes. Por exemplo, bloqueie o tráfego de um endereço IP específico ou bloqueie o tráfego se estiver usando um navegador específico.

Regras personalizadas também suportam expressões regulares, tal como nos conjuntos de regras CRS. Para obter exemplos, consulte Exemplos 3 e 5 em Criar e usar regras personalizadas de firewall de aplicativos Web.

Nota

Podes criar até 100 regras WAF personalizadas. Para obter mais informações sobre os limites do Application Gateway, consulte Limites, cotas e restrições de serviços e subscrição do Azure.

Atenção

Quaisquer regras de redirecionamento que apliques ao nível do gateway de aplicação ignoram as regras personalizadas do WAF. Para obter mais informações, consulte Visão geral do redirecionamento do Application Gateway.

Permitir vs. bloquear

Pode facilmente permitir ou bloquear tráfego usando regras personalizadas. Por exemplo, pode bloquear todo o tráfego de vários endereços IP. Pode criar outra regra para permitir tráfego se o pedido vier de um navegador específico.

Para permitir algo, defina o -Action parâmetro para Permitir. Para bloquear algo, defina o -Action parâmetro para Bloquear.

$AllowRule = New-AzApplicationGatewayFirewallCustomRule `
   -Name example1 `
   -Priority 2 `
   -RuleType MatchRule `
   -MatchCondition $condition `
   -Action Allow `
   -State Enabled

$BlockRule = New-AzApplicationGatewayFirewallCustomRule `
   -Name example2 `
   -Priority 2 `
   -RuleType MatchRule `
   -MatchCondition $condition `
   -Action Block `
   -State Enabled

A definição anterior $BlockRule mapeia para a seguinte regra personalizada no Azure Resource Manager.

"customRules": [
      {
        "name": "blockEvilBot",
        "priority": 2,
        "ruleType": "MatchRule",
        "action": "Block",
        "state": "Enabled",
        "matchConditions": [
          {
            "matchVariables": [
              {
                "variableName": "RequestHeaders",
                "selector": "User-Agent"
              }
            ],
            "operator": "Contains",
            "negationCondition": false,
            "matchValues": [
              "evilbot"
            ],
            "transforms": [
              "Lowercase"
            ]
          }
        ]
      }
    ], 

Esta regra personalizada contém um nome, prioridade, uma ação e a matriz de condições correspondentes que devem ser atendidas para que a ação ocorra. Para mais explicações sobre estes campos, consulte as seguintes descrições de campos. Por exemplo, regras personalizadas, consulte Criar e usar regras personalizadas de firewall de aplicativos Web.

Nota

As regras personalizadas do WAF não suportam permitir ou bloquear solicitações com base em nomes de arquivos ou tipos de arquivo.

Campos para regras personalizadas

Nome [opcional]

O nome da regra. Aparece nos registos.

Ativar regra [opcional]

Ativa ou desliga esta regra. As regras personalizadas são ativadas por padrão.

Prioridade [obrigatório]

  • Determina a ordem de avaliação da regra. Quanto menor o valor, mais cedo a avaliação da regra. A faixa permitida é de 1 a 100.
  • Deve ser exclusivo em todas as regras personalizadas. Uma regra com prioridade 40 é avaliada antes de uma regra com prioridade 80.

Tipo de regra [obrigatório]

Atualmente, deve ser MatchRule.

Variável de correspondência [obrigatório]

Deve ser uma das variáveis:

  • RemoteAddr – Endereço IPv4 ou intervalo da ligação remota ao computador
  • RequestMethod – método de pedido HTTP
  • QueryString – Variável no URI
  • PostArgs – Argumentos enviados no corpo do POST. Regras personalizadas que usam esta variável de correspondência aplicam-se apenas se o cabeçalho 'Content-Type' estiver definido como 'application/x-www-form-urlencoded' ou 'multipart/form-data.' A versão CRS 3.2 ou superior suporta um tipo adicional de application/jsonconteúdo , juntamente com conjunto de regras de proteção contra bots e regras personalizadas de correspondência geográfica.
  • RequestUri – URI da solicitação
  • RequestHeaders – Cabeçalhos da requisição
  • RequestBody – Esta variável contém todo o corpo da solicitação como um todo. Regras personalizadas que usam esta variável de correspondência aplicam-se apenas se o cabeçalho 'Content-Type' estiver definido como application/x-www-form-urlencoded tipo de média. A versão CRS 3.2 ou superior suporta tipos adicionais de application/soap+xml, application/xml, text/xmlconteúdo , juntamente com conjunto de regras de proteção de bots e regras personalizadas de geo-match.
  • RequestCookies – Cookies do pedido

Seletor [opcional]

Descreve o campo da coleção matchVariable. Por exemplo, se matchVariable for RequestHeaders, o seletor poderá estar no cabeçalho User-Agent .

Operador [obrigatório]

Utilize um dos seguintes operadores:

  • IPMatch - Usar apenas quando for a variável de correspondência RemoteAddr e suportar apenas IPv4.
  • Equal - Usar quando a entrada for a mesma do MatchValue.
  • Any - Usar quando não houver MatchValue. É aconselhável usar uma Variável de Correspondência com um Seletor válido.
  • Contains - Usar quando o MatchValue for apenas um valor explícito. Wildcard e regex não são suportados.
  • LessThan
  • GreaterThan
  • Menor ou Igual
  • Maior ou Igual
  • ComeçaCom
  • EndsWith
  • Regex
  • Geomatch

Condição de negação [opcional]

Nega a condição atual.

Transformar [opcional]

Uma lista de valores de cadeia que especificam transformações a aplicar antes de tentar uma correspondência. As transformações disponíveis incluem:

  • Minúsculas
  • Maiúsculas
  • Ajustar
  • Decodificação de URL
  • Codificação de URL
  • RemoveNulls
  • HtmlEntityDecode

Correspondência de valores [obrigatório]

Uma lista de valores para comparar, que podes pensar como sendo OR. Por exemplo, a lista pode conter endereços IP ou outras cadeias de caracteres. O formato do valor depende do operador anterior.

Nota

Se o seu WAF executar o Core Rule Set (CRS) 3.1, ou qualquer outra versão anterior do CRS, o valor de correspondência só aceita letras, números e sinais de pontuação. Aspas ", ', e espaços não são suportados.

Os valores do método de solicitação HTTP suportados incluem:

  • Obtém
  • CABEÇA
  • Publicar
  • OPÇÕES
  • INSERIR
  • APAGAR
  • CORREÇÃO

Ação [obrigatório]

No modo de deteção de política WAF, se uma regra personalizada for acionada, a ação será sempre registrada, independentemente do valor da ação definido na regra personalizada.

  • Permitir – Autoriza a transação, ignorando todas as outras regras. A solicitação especificada é adicionada à lista de permissões e, uma vez correspondida, a solicitação interrompe a avaliação adicional e é enviada para o pool de back-end. As regras que estão na lista de permissões não são avaliadas para quaisquer outras regras personalizadas ou regras gerenciadas.
  • Bloquear - Bloqueia ou regista a transação com base no SecDefaultAction (modo de deteção ou prevenção). - Modo de prevenção - Bloqueia a transação com base no SecDefaultAction. Tal como a Allow ação, uma vez que o pedido é avaliado e adicionado à lista de bloqueio, a avaliação para e o pedido é bloqueado. Qualquer solicitação depois que atenda às mesmas condições não é avaliada e é bloqueada.
    • Modo de deteção - Regista a transação com base no SecDefaultAction, após o que a avaliação termina. Qualquer pedido subsequente que cumpra as mesmas condições não é avaliado e é registado.
  • Log – Permite que a regra grave no log, mas permite que o resto das regras continuem a ser processadas para avaliação. As outras regras personalizadas são avaliadas em ordem de prioridade, seguidas pelas regras gerenciadas.

Cópia e duplicação de regras personalizadas

Pode duplicar regras personalizadas dentro de uma determinada política. Quando duplicas uma regra, precisas de especificar um nome único para a regra e um valor de prioridade único. Além disso, pode copiar regras personalizadas de uma política WAF do Application Gateway para outra, desde que as políticas estejam ambas na mesma subscrição. Quando copia uma regra de uma política para outra, precisa de selecionar a política do Application Gateway WAF para a qual deseja copiar a regra. Depois de selecionares a política WAF, tens de dar um nome único à regra e atribuir uma classificação de prioridade.

Regras personalizadas de correspondência geográfica

As regras personalizadas permitem que você crie regras personalizadas para atender às necessidades exatas de seus aplicativos e políticas de segurança. Pode restringir o acesso às suas aplicações web por país ou região. Para obter mais informações, consulte Regras personalizadas de correspondência geográfica.

Próximo passo