Partilhar via


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

O Firewall de Aplicativo Web do Gateway de Aplicativo do Azure (WAF) v2 vem com um conjunto de regras pré-configurado e gerenciado por plataforma que oferece proteção contra muitos tipos diferentes de ataques. Esses ataques incluem scripts 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). Suas regras personalizadas podem bloquear, permitir ou registrar o tráfego solicitado com base em critérios de correspondência. Se a política WAF estiver definida para o modo de deteção e uma regra de bloqueio personalizada for acionada, a solicitação será registrada e nenhuma ação de bloqueio será executada.

As regras personalizadas permitem que você crie suas próprias regras que são avaliadas para cada solicitação que passa pelo WAF. Essas regras têm uma prioridade maior do que o resto das regras nos conjuntos de regras gerenciados. As regras personalizadas contêm um nome de regra, prioridade de regra e uma matriz de condições correspondentes. Se essas condições forem atendidas, uma ação será executada (para permitir, bloquear ou registrar). Se uma regra personalizada for acionada e uma ação de permissão ou bloqueio for executada, nenhuma outra ação de regras personalizadas ou gerenciadas será executada. No caso de uma regra personalizada acionar uma ação de permitir ou bloquear, pode ainda ver alguns eventos de log para correspondências de regras do conjunto de regras que configurou (Conjunto de Regras Principais/Conjunto de Regras Padrão), mas essas regras 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. As regras personalizadas podem ser ativadas/desativadas sob demanda.

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. Você também define o nome, a prioridade e o estado habilitado/desabilitado da regra.

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.

Expressões regulares também são suportadas em regras personalizadas, assim 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

O número máximo de regras personalizadas do WAF é 100. 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

Qualquer regra de redirecionamento aplicada no nível do gateway de aplicativo ignorará as regras personalizadas do WAF. Para obter mais informações, consulte Visão geral do redirecionamento do Application Gateway.

Permitir vs. bloquear

Permitir e bloquear o tráfego é simples com regras personalizadas. Por exemplo, você pode bloquear todo o tráfego proveniente de um intervalo de endereços IP. Você pode criar outra regra para permitir o tráfego se a solicitação vier de um navegador específico.

Para permitir algo, certifique-se de que o -Action parâmetro esteja definido como Allow. Para bloquear algo, verifique se o -Action parâmetro está definido como Block.

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

Ative ou desative 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. O intervalo permitido é de 1-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 / Alcance da conexão do computador remoto
  • RequestMethod – Método HTTP Request
  • QueryString – Variável no URI
  • PostArgs – Argumentos enviados no corpo do POST. As regras personalizadas que usam essa variável de correspondência só são aplicadas se o cabeçalho 'Content-Type' estiver definido como 'application/x-www-form-urlencoded' e 'multipart/form-data'. O tipo de conteúdo adicional de application/json é suportado com a CRS versão 3.2 ou superior, 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. As regras personalizadas que usam essa variável de correspondência só são aplicadas se o cabeçalho 'Content-Type' estiver definido como application/x-www-form-urlencoded tipo de mídia. Tipos de conteúdo adicionais de application/soap+xml, application/xml, text/xml são suportados com CRS versão 3.2 ou superior, conjunto de regras de proteção para bots e regras personalizadas de correspondência geográfica.
  • 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]

Deve ser um dos seguintes operadores:

  • IPMatch - usado apenas quando a variável Match é RemoteAddr e suporta apenas IPv4
  • Igual – a entrada é a mesma que o MatchValue
  • Qualquer – Não deve ter um "MatchValue". É aconselhável usar uma Variável de Correspondência com um Seletor válido.
  • Contém
  • MenosQue
  • Maior Que
  • LessThanOrEqual
  • Maior ou Igual
  • ComeçaCom
  • TerminaCom
  • Regex
  • Geomatch

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

Nega a condição atual.

Transformar [opcional]

Uma lista de valores de cadeia de caracteres especificando transformações a serem aplicadas 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]

Lista de valores a serem correspondidos, que podem ser considerados como OR'ed. Por exemplo, podem ser endereços IP ou outras cadeias de caracteres. O formato do valor depende do operador anterior.

Nota

Se o WAF estiver executando o Core Rule Set (CRS) 3.1 ou qualquer outra versão anterior do CRS, o valor correspondente permite apenas letras, números e sinais de pontuação. Não há suporte para aspas "' e espaços.

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 registra a transação com base em SecDefaultAction (modo de deteção/prevenção).
    • Modo de prevenção - Bloqueia a transação com base em SecDefaultAction. Assim como a Allow ação, uma vez que a solicitação é avaliada e adicionada à lista de bloqueio, a avaliação é interrompida e a solicitação é bloqueada. Qualquer solicitação depois que atenda às mesmas condições não é avaliada e é bloqueada.
    • Modo de deteção - Registra a transação com base em SecDefaultAction após o qual a avaliação é interrompida. 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

As regras personalizadas podem ser duplicadas dentro de uma determinada política. Ao duplicar uma regra, você precisa especificar um nome exclusivo para a regra e um valor de prioridade exclusivo. Além disso, as regras personalizadas podem ser copiadas de uma política WAF do Application Gateway para outra, desde que as políticas estejam ambas na mesma assinatura. Ao copiar uma regra de uma política para outra, você precisa selecionar a política WAF do Application Gateway para a qual deseja copiar a regra. Depois de selecionar a política WAF, você precisa dar à regra um nome exclusivo 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/região. Para obter mais informações, consulte Regras personalizadas de correspondência geográfica.

Próximo passo