Solicitar opções de componentes - AWS WAF, AWS Firewall Manager, e AWS Shield Advanced

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Solicitar opções de componentes

Esta seção descreve os componentes da solicitação da web que você pode especificar para inspeção. Você especifica o componente de solicitação para instruções de regra de correspondência que procuram padrões dentro da solicitação da web. Esses tipos de instruções incluem correspondência de string, padrão regex, ataque de injeção de SQL e instruções de restrição de tamanho. Para obter informações sobre como usar essas configurações de componentes de solicitação, consulte as instruções de regras individuais em Instruções de regra de correspondência

Salvo indicação em contrário, se uma solicitação da Web não tiver o componente de solicitação especificado na declaração da regra, a solicitação será AWS WAF avaliada como não correspondendo aos critérios da regra.

nota

Especifique um único componente de solicitação para cada instrução de regra que o exija. Para inspecionar mais de um componente de uma solicitação, crie uma instrução de regra para cada componente.

A documentação do AWS WAF console e da API fornece orientação para as configurações do componente de solicitação nos seguintes locais:

  • Construtor de regras no console:Nas configurações de Instrução de um tipo de regra comum, escolha o componente que você deseja inspecionar na caixa de diálogo Inspecionar em Solicitar componentes.

  • Conteúdo da instrução da API: FieldToMatch

O restante desta seção descreve as opções da parte da solicitação da web a inspecionar.

Método HTTP

Inspectiona o método HTTP para a solicitação. O método HTTP indica o tipo de operação que a solicitação da Web está solicitando que seu recurso protegido realize, como POST ou GET.

Cabeçalho único

Inspeciona um único cabeçalho nomeado na solicitação.

Para essa opção, você especifica o nome do cabeçalho, por exemplo, User-Agent ou Referer. A correspondência de string para o nome não diferencia maiúsculas de minúsculas.

Todos os cabeçalhos

Inspeciona todos os cabeçalhos da solicitação, incluindo cookies. É possível aplicar um filtro para inspecionar um subconjunto de todos os cabeçalhos.

Para essa opção, você fornece as seguintes especificações:

  • Padrões de correspondência — O filtro a ser usado para obter um subconjunto de cabeçalhos para inspeção. AWS WAF procura esses padrões nas teclas dos cabeçalhos.

    A configuração de padrões de correspondência pode ser uma das seguintes:

    • Tudo:Corresponder todas as teclas. Avalie os critérios de inspeção de regras para todos os cabeçalhos.

    • Cabeçalhos excluídos:Inspeciona apenas os cabeçalhos cujas chaves não correspondem a nenhuma das strings especificadas aqui. A correspondência de string para uma chave não diferencia maiúsculas de minúsculas.

    • Cabeçalhos incluídos:Inspeciona apenas os cabeçalhos que têm uma chave que corresponda a uma das strings especificadas aqui. A correspondência de string para uma chave não diferencia maiúsculas de minúsculas.

  • Escopo correspondente — As partes dos cabeçalhos que AWS WAF devem ser inspecionadas de acordo com os critérios de inspeção da regra. Você pode especificar chaves, valores ou tudo para inspecionar as chaves e os valores em busca de uma correspondência.

    Tudo não exige que uma correspondência seja encontrada nas chaves e que uma correspondência seja encontrada nos valores. Isso requer que uma correspondência seja encontrada nas chaves, nos valores ou nos dois. Para exigir uma correspondência nas chaves e nos valores, use uma instrução lógica AND para combinar duas regras de correspondência, uma que inspeciona as chaves e outra que inspeciona os valores.

  • Manipulação de tamanho grande — Como AWS WAF lidar com solicitações que têm dados de cabeçalho maiores do que os que AWS WAF podem ser inspecionados. AWS WAF pode inspecionar no máximo os primeiros 8 KB (8.192 bytes) dos cabeçalhos da solicitação e, no máximo, os primeiros 200 cabeçalhos. O conteúdo está disponível para inspeção AWS WAF até o primeiro limite atingido. Você pode optar por continuar a inspeção ou pular a inspeção e marcar a solicitação como compatível ou não com a regra. Para obter mais informações sobre como processar conteúdo de tamanho acima do limite, consulte Tratamento de componentes de solicitação de tamanho grande no AWS WAF.

Ordem de cabeçalho

Inspecione uma string contendo a lista dos nomes dos cabeçalhos da solicitação, ordenados conforme aparecem na solicitação da web que AWS WAF recebe para inspeção. AWS WAF gera a string e, em seguida, a usa como campo para combinar o componente em sua inspeção. AWS WAF separa os nomes dos cabeçalhos na string com dois pontos e sem espaços adicionados, por exemplo. host:user-agent:accept:authorization:referer

Para essa opção, você fornece as seguintes especificações:

  • Manipulação de tamanho grande — Como AWS WAF lidar com solicitações que têm dados de cabeçalho mais numerosos ou maiores do que os que AWS WAF podem ser inspecionados. AWS WAF pode inspecionar no máximo os primeiros 8 KB (8.192 bytes) dos cabeçalhos da solicitação e, no máximo, os primeiros 200 cabeçalhos. O conteúdo está disponível para inspeção AWS WAF até o primeiro limite atingido. Você pode optar por continuar a inspeção dos cabeçalhos que estão disponíveis ou pular a inspeção e marcar a solicitação como compatível ou não com a regra. Para obter mais informações sobre como processar conteúdo de tamanho acima do limite, consulte Tratamento de componentes de solicitação de tamanho grande no AWS WAF.

Cookies

Inspeciona todos os cookies de solicitação. É possível aplicar um filtro para inspecionar um subconjunto de todos os cookies.

Para essa opção, você fornece as seguintes especificações:

  • Padrões de correspondência:O filtro a ser usado para obter um subconjunto de cookies para inspeção. O AWS WAF procura esses padrões nas chaves dos cookies.

    A configuração de padrões de correspondência pode ser uma das seguintes:

    • Tudo:Corresponder todas as teclas. Avalie os critérios de inspeção de regras para todos os cookies.

    • Cookies excluídos:Inspeciona apenas os cookies cujas chaves não correspondem a nenhuma das strings especificadas aqui. A correspondência de string para uma chave diferencia maiúsculas de minúsculas e deve ser exata.

    • Cookies incluídos:Inspeciona apenas os cookies que têm uma chave que corresponda a uma das strings especificadas aqui. A correspondência de string para uma chave diferencia maiúsculas de minúsculas e deve ser exata.

  • Escopo da correspondência — As partes dos cookies que AWS WAF devem ser inspecionadas de acordo com os critérios de inspeção da regra. Você pode especificar chaves, valores ou tudo para chaves e valores.

    Tudo não exige que uma correspondência seja encontrada nas chaves e que uma correspondência seja encontrada nos valores. Isso requer que uma correspondência seja encontrada nas chaves, nos valores ou nos dois. Para exigir uma correspondência nas chaves e nos valores, use uma instrução lógica AND para combinar duas regras de correspondência, uma que inspeciona as chaves e outra que inspeciona os valores.

  • Manipulação de tamanho grande — Como AWS WAF lidar com solicitações que têm dados de cookies maiores do que os que AWS WAF podem ser inspecionados. AWS WAF pode inspecionar no máximo os primeiros 8 KB (8.192 bytes) dos cookies de solicitação e no máximo os primeiros 200 cookies. O conteúdo está disponível para inspeção AWS WAF até o primeiro limite atingido. Você pode optar por continuar a inspeção ou pular a inspeção e marcar a solicitação como compatível ou não com a regra. Para obter mais informações sobre como processar conteúdo de tamanho acima do limite, consulte Tratamento de componentes de solicitação de tamanho grande no AWS WAF.

Caminho do URI

Inspeciona a parte de um URL que identifica um recurso, como /images/daily-ad.jpg. Para obter mais informações, consulte Identificador de recurso uniforme (URI): sintaxe genérica.

Se você não usa uma transformação de texto com essa opção, AWS WAF não normaliza o URI e o inspeciona exatamente como o recebe do cliente na solicitação. Para obter mais informações sobre transformações de texto, consulte Opções de transformação de texto.

Impressão digital JA3

Inspeciona a impressão digital JA3 da solicitação.

nota

A inspeção de impressão digital JA3 está disponível somente para CloudFront distribuições da Amazon e Application Load Balancers.

A impressão digital JA3 é um hash de 32 caracteres derivado do Hello do cliente TLS de uma solicitação recebida. Essa impressão digital serve como um identificador exclusivo para a configuração TLS do cliente. AWS WAF calcula e registra essa impressão digital para cada solicitação que tenha informações suficientes do TLS Client Hello para o cálculo. Quase todas as solicitações da web incluem essas informações.

Como obter a impressão digital JA3 para um cliente

Você pode obter a impressão digital JA3 para as solicitações de um cliente nos logs de web ACL. Se AWS WAF for capaz de calcular a impressão digital, ela a inclui nos registros. Para obter informações sobre os campos de log, consulte Campos de log.

Requisitos de instrução de regras

Você pode inspecionar a impressão digital JA3 somente dentro de uma instrução de correspondência de string definida para corresponder exatamente à string fornecida. Forneça a string de impressão digital JA3 dos logs em sua especificação de instrução de correspondência de string, para corresponder a quaisquer solicitações futuras que tenham a mesma configuração de TLS. Para obter mais informações sobre instruções de regra de correspondência de string, consulte Instrução de regra de correspondência de string.

Você deve fornecer um comportamento de fallback para essa instrução de regra. O comportamento de fallback é o status de correspondência que você deseja atribuir AWS WAF à solicitação da web AWS WAF se não conseguir calcular a impressão digital JA3. Se você optar pela correspondência, AWS WAF trata a solicitação como correspondente à instrução da regra e aplica a ação da regra à solicitação. Se você optar por não corresponder, AWS WAF tratará a solicitação como não correspondente à declaração da regra.

Para usar essa opção de correspondência, você deve registrar seu tráfego de web ACL. Para obter mais informações, consulte Registrando AWS WAF tráfego de ACL da web.

String de consulta

Inspeciona parte de um URL exibida após um caractere ?, se houver.

nota

Para condições de correspondência de cross-site scripting, recomendamos que você escolha Todos os parâmetros de consulta em vez de String de consulta. A escolha de Todos os parâmetros de consulta adiciona 10 WCUs ao custo base.

Parâmetro de consulta única

Inspeciona um único parâmetro de consulta que você definiu como parte da cadeia de caracteres de consulta. AWS WAF inspeciona o valor do parâmetro que você especifica.

Para essa opção, você também especifica um Argumento de consulta. Por exemplo, se o URL for www.xyz.com?UserName=abc&SalesRegion=seattle, você pode especificar UserName ou SalesRegion para o argumento da consulta. O tamanho máximo para o nome do argumento é de 30 caracteres. O nome não diferencia maiúsculas e minúsculas, portanto, se você especificar UserName, o AWS WAF combina a todas as variações de UserName, incluindo username e UsERName.

Se a string de consulta contiver mais de uma instância do argumento de consulta que você especificou, AWS WAF inspeciona todos os valores em busca de uma correspondência usando a OR lógica. Por exemplo, no URL www.xyz.com?SalesRegion=boston&SalesRegion=seattle, o AWS WAF avalia o nome que você especificou em boston e seattle. Se qualquer um for uma correspondência, a inspeção é uma correspondência.

Todos os parâmetros da consulta

Inspeciona todos os parâmetros de consulta na solicitação. Isso é semelhante à escolha do componente de parâmetro de consulta único, mas AWS WAF inspeciona os valores de todos os argumentos na string de consulta. Por exemplo, se o URL for www.xyz.com?UserName=abc&SalesRegion=seattle, o AWS WAF dispara uma correspondência se o valor UserName ou SalesRegion corresponder aos critérios de inspeção.

A escolha dessa opção adiciona 10 WCUs ao custo base.

Corpo

Inspeciona o corpo da solicitação, avaliado como texto simples. Você também pode avaliar o corpo como JSON usando o tipo de conteúdo JSON.

O corpo da solicitação é a parte da solicitação que segue imediatamente os cabeçalhos da solicitação. Contém quaisquer dados adicionais necessários para a solicitação da Web, por exemplo, dados de um formulário.

  • No console, você seleciona isso na opção Corpo da Opção de solicitação, selecionando a opção Tipo de conteúdo Texto simples.

  • Na API, na especificação da regra FieldToMatch, você especifica Body para inspecionar o corpo da solicitação como texto simples.

Para Application Load Balancer e AWS AppSync, AWS WAF pode inspecionar os primeiros 8 KB do corpo de uma solicitação. Pois CloudFront, o API Gateway, o Amazon Cognito, o App Runner e o Verified Access, por padrão, AWS WAF podem inspecionar os primeiros 16 KB e você pode aumentar o limite até 64 KB na sua configuração de ACL da web. Para ter mais informações, consulte Gerenciando os limites de tamanho da inspeção corporal.

Você deve especificar o tratamento de tamanho grande para esse tipo de componente. O tratamento de tamanho grande define como AWS WAF lida com solicitações que têm dados corporais maiores do que os que AWS WAF podem ser inspecionados. Você pode optar por continuar a inspeção ou pular a inspeção e marcar a solicitação como compatível ou não com a regra. Para obter mais informações sobre como processar conteúdo de tamanho acima do limite, consulte Tratamento de componentes de solicitação de tamanho grande no AWS WAF.

Você também pode avaliar o corpo como JSON analisado. Para obter mais informações, consulte a seção abaixo.

Corpo JSON

Inspeciona o corpo da solicitação, avaliado como JSON. Você também pode avaliar o corpo como texto simples.

O corpo da solicitação é a parte da solicitação que segue imediatamente os cabeçalhos da solicitação. Contém quaisquer dados adicionais necessários para a solicitação da Web, por exemplo, dados de um formulário.

  • No console, você seleciona isso na opção Corpo da Opção de solicitação, selecionando a opção Tipo de conteúdo JSON.

  • Na API, na especificação da regra FieldToMatch, você especifica JsonBody.

Para Application Load Balancer e AWS AppSync, AWS WAF pode inspecionar os primeiros 8 KB do corpo de uma solicitação. Pois CloudFront, o API Gateway, o Amazon Cognito, o App Runner e o Verified Access, por padrão, AWS WAF podem inspecionar os primeiros 16 KB e você pode aumentar o limite até 64 KB na sua configuração de ACL da web. Para ter mais informações, consulte Gerenciando os limites de tamanho da inspeção corporal.

Você deve especificar o tratamento de tamanho grande para esse tipo de componente. O tratamento de tamanho grande define como AWS WAF lida com solicitações que têm dados corporais maiores do que os que AWS WAF podem ser inspecionados. Você pode optar por continuar a inspeção ou pular a inspeção e marcar a solicitação como compatível ou não com a regra. Para obter mais informações sobre como processar conteúdo de tamanho acima do limite, consulte Tratamento de componentes de solicitação de tamanho grande no AWS WAF.

A escolha dessa opção dobra as WCUs de custo base da instrução de correspondência. Por exemplo, se o custo base da instrução de correspondência for 5 WCUs sem análise JSON, usar a análise JSON dobra o custo para 10 WCUs.

Etapas e opções para inspeção corporal JSON

Ao AWS WAF inspecionar o corpo da solicitação da web como JSON, ele executa etapas para analisar o corpo e extrair os elementos JSON para inspeção. A seguir estão listadas as etapas e suas opções adicionais de configuração para esse tipo de componente de solicitação.

  1. Analisar o conteúdo do corpo — AWS WAF analisa o conteúdo do corpo da solicitação da web para extrair os elementos JSON para inspeção. AWS WAF faz o possível para analisar todo o conteúdo do corpo, mas a análise pode falhar em vários estados de erro no conteúdo. Os exemplos incluem caracteres inválidos, chaves duplicadas, truncamento e conteúdo cujo nó raiz não é um objeto ou uma matriz.

    A opção Body parsing fallback behavior determina o que AWS WAF acontece se ela falhar na análise completa do corpo JSON:

    • Nenhum (comportamento padrão) - AWS WAF avalia o conteúdo somente até o ponto em que ele encontrou um erro de análise.

    • Avaliar como string - inspecione o corpo como texto simples. AWS WAF aplica as transformações de texto e os critérios de inspeção que você definiu para a inspeção JSON à string do corpo do texto.

    • Corresponder - Trate a solicitação da web como correspondente à declaração da regra. AWS WAF aplica a ação da regra à solicitação.

    • Sem correspondência: tratar a solicitação da Web como não correspondente à instrução de regra.

    nota

    Esse comportamento alternativo só é acionado quando AWS WAF encontra um erro ao analisar a string JSON.

    A análise não valida totalmente o JSON

    AWS WAF a análise não valida totalmente a string JSON de entrada, portanto, a análise pode ser bem-sucedida mesmo para JSON inválido.

    Por exemplo, AWS WAF analisa o seguinte JSON inválido sem erros:

    • Vírgula ausente: {"key1":"value1""key2":"value2"}

    • Dois pontos ausentes: {"key1":"value1","key2""value2"}

    • Dois pontos extras: {"key1"::"value1","key2""value2"}

    Para casos como esses em que a análise é bem-sucedida, mas o resultado não é um JSON totalmente válido, o resultado das etapas subsequentes da avaliação pode variar. A extração pode perder alguns elementos ou a avaliação da regra pode ter resultados inesperados. Recomendamos que você valide o JSON recebido em seu aplicativo e trate o JSON inválido conforme necessário.

  2. Extraia os elementos JSON — AWS WAF identifica o subconjunto de elementos JSON a serem inspecionados de acordo com suas configurações:

    • A opção JSON match scope especifica os tipos de elementos no JSON que AWS WAF devem ser inspecionados.

      Você pode especificar chaves, valores ou tudo para chaves e valores.

      Tudo não exige que uma correspondência seja encontrada nas chaves e que uma correspondência seja encontrada nos valores. Isso requer que uma correspondência seja encontrada nas chaves, nos valores ou nos dois. Para exigir uma correspondência nas chaves e nos valores, use uma instrução lógica AND para combinar duas regras de correspondência, uma que inspeciona as chaves e outra que inspeciona os valores.

    • A opção Conteúdo a ser inspecionado especifica como filtrar o conjunto de elementos para o subconjunto que você deseja AWS WAF inspecionar.

      É necessário especificar um dos seguintes:

      • Conteúdo JSON completo - Avalie todos os elementos.

      • Somente elementos incluídos - Avalie somente os elementos cujos caminhos correspondam aos critérios do JSON Pointer fornecidos por você. Não use essa opção para indicar todos os caminhos no JSON. Em vez disso, use conteúdo JSON completo.

        Para obter informações sobre a sintaxe do JSON Pointer, consulte a documentação do Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

        Por exemplo, é possível fornecer o seguinte no console:

        /dogs/0/name /dogs/1/name

        Na API ou na CLI, você pode fornecer o seguinte:

        "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]

    Por exemplo, digamos que a configuração Conteúdo a ser inspecionado seja Somente elementos incluídos e a configuração de elementos incluídos seja/a/b.

    Para o exemplo de corpo JSON a seguir:

    { "a":{ "c":"d", "b":{ "e":{ "f":"g" } } } }

    Os conjuntos de elementos que AWS WAF inspecionariam cada configuração do escopo de correspondência JSON estão listados abaixo. Observe que a chaveb, que faz parte do caminho dos elementos incluídos, não é avaliada.

    • Todos:e, f, g e.

    • Chaves: e f e.

    • Valores:g.

  3. Inspecione o conjunto de elementos JSON — AWS WAF aplica todas as transformações de texto que você especificou aos elementos JSON extraídos e, em seguida, compara o conjunto de elementos resultante com os critérios de correspondência da declaração de regra. Esse é o mesmo comportamento de transformação e avaliação de outros componentes de solicitação da web. Se algum dos elementos JSON extraídos corresponder, a solicitação da web corresponderá à regra.