Como tratar componentes de solicitação da web de tamanho grande no AWS WAF
Essa seção explica como gerenciar os limites de tamanho para inspecionar o corpo, os cabeçalhos e os cookies da solicitação da Web no AWS WAF.
O AWS WAF não suporta a inspeção de conteúdos muito grandes para o corpo, cabeçalhos ou cookies dos componentes da solicitação da web. O serviço de host subjacente tem limites de contagem e tamanho para o que ele encaminha ao AWS WAF para inspeção. Por exemplo, o serviço de host não envia mais de 200 cabeçalhos para o AWS WAF, portanto, para uma solicitação da web com 205 cabeçalhos, o AWS WAF não pode inspecionar os últimos 5 cabeçalhos.
Quando o AWS WAF permite que uma solicitação da web prossiga para seu recurso protegido, toda a solicitação da web é enviada, incluindo qualquer conteúdo que esteja fora dos limites de contagem e tamanho que o AWS WAF pôde inspecionar.
Limites de tamanho de inspeção de componentes
Os limites de tamanho de inspeção de componentes são os seguintes:
-
Body
eJSON Body
: para Application Load Balancer e AWS AppSync, o AWS WAF pode inspecionar os primeiros 8 KB do corpo de uma solicitação. Para o CloudFront, o API Gateway, o Amazon Cognito, o App Runner e o Verified Access, por padrão, o AWS WAF pode inspecionar os primeiros 16 KB, e você pode aumentar o limite para até 64 KB na configuração da ACL da Web. Para ter mais informações, consulte Como gerenciar limites de tamanho de inspeção de corpo para AWS WAF. -
Headers
:O 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 pelo AWS WAF até o primeiro limite atingido. -
Cookies
:O AWS WAF pode inspecionar no máximo os primeiros 8 KB (8.192 bytes) dos cookies da solicitação e no máximo os primeiros 200 cookies. O conteúdo está disponível para inspeção pelo AWS WAF até o primeiro limite atingido.
Opções de tratamento de tamanho grande para suas instruções de regras
Ao escrever uma instrução de regra que inspeciona um desses tipos de componentes de solicitação, você especifica como lidar com componentes de tamanho grande. O tratamento de tamanho grande informa ao AWS WAF o que fazer com uma solicitação da web quando o componente da solicitação que a regra inspeciona está acima dos limites de tamanho.
As opções para o tratamento de tamanhos acima do limitesão as seguintes:
-
Continue:Inspecionar o componente da solicitação normalmente de acordo com os critérios de inspeção de regras. O AWS WAF inspecionará o conteúdo do componente da solicitação que está dentro dos limites de tamanho.
-
Match:Tratar a solicitação da web como correspondente à instrução de regra. O AWS WAF aplica a ação de regra à solicitação sem avaliá-la com base nos critérios de inspeção da regra.
-
No match:Tratar a solicitação da web como não correspondente à instrução de regra sem avaliá-la em relação aos critérios de inspeção da regra. O AWS WAF continua sua inspeção da solicitação da web usando o resto das regras na web ACL, como faria com qualquer regra não correspondente.
No console do AWS WAF, você precisa escolher uma dessas opções de tratamento. Fora do console, a opção padrão é Continue.
Se você usar a opção Match em uma regra que tenha sua ação definida como Block, a regra bloqueará uma solicitação cujo componente inspecionado seja muito grande. Com qualquer outra configuração, a disposição final da solicitação depende de vários fatores, como a configuração das outras regras em sua web ACL e a configuração de ação padrão da web ACL.
Tratamento de tamanho grande em grupos de regras que você não possui
As limitações de tamanho e contagem de componentes se aplicam a todas as regras que você usa na sua web ACL. Isso inclui todas as regras que você usa, mas não gerencia, em grupos de regras gerenciadas e em grupos de regras que são compartilhados com você por outra conta.
Quando você usa um grupo de regras que você não gerencia, o grupo de regras pode ter uma regra que inspeciona um componente de solicitação limitado, mas que não processa conteúdos de tamanho grande da maneira que você precisa que eles sejam tratados. Para obter informações sobre como as regras gerenciadas da AWS gerenciam componentes de tamanho grande, consulte Lista de grupos de regras das regras gerenciadas da AWS. Para obter informações sobre outros grupos de regras, pergunte ao seu provedor de grupos de regras.
Diretrizes para gerenciar componentes de tamanho grande em sua web ACL
A maneira como você lida com componentes de tamanho grande na sua web ACL pode depender de vários fatores, como o tamanho esperado do conteúdo do componente da solicitação, o tratamento padrão da solicitação da sua web ACL e como outras regras na sua web ACL correspondem e tratam as solicitações.
As diretrizes gerais para gerenciar componentes de tamanho grande de solicitações da web são as seguintes:
-
Se você precisar permitir algumas solicitações com conteúdo de componente de tamanho grande, se possível, adicione regras para permitir explicitamente somente essas solicitações. Priorize essas regras para que elas sejam executadas antes de qualquer outra regra na web ACL que inspecione os mesmos tipos de componentes. Com essa abordagem, você não poderá usar o AWS WAF para inspecionar todo o conteúdo dos componentes de tamanho grande que você permitir passar para seu recurso protegido.
-
Para todas as outras solicitações, você pode impedir a passagem de bytes adicionais bloqueando as solicitações que ultrapassam o limite:
-
Suas regras e grupos de regras:Nas regras que inspecionam componentes com limites de tamanho, configure o tratamento de tamanho grande para bloquear solicitações que ultrapassem o limite. Por exemplo, se sua regra bloquear solicitações com conteúdo de cabeçalho específico, defina o tratamento de tamanho grande para corresponder às solicitações com conteúdo de cabeçalho grande. Como alternativa, se sua web ACL bloquear solicitações por padrão e sua regra permitir conteúdos de cabeçalho específicos, configure o tratamento de tamanho grande da regra para não corresponder a nenhuma solicitação com conteúdo de cabeçalho de tamanho grande.
-
Grupos de regras que você não gerencia:Para evitar que grupos de regras que você não gerencia permitam componentes de solicitação de tamanho grande, você pode adicionar uma regra separada que inspecione o tipo de componente da solicitação e bloqueie as solicitações que ultrapassam os limites. Priorize a regra em sua web ACL para que ela seja executada antes dos grupos de regras. Por exemplo, você pode bloquear solicitações com conteúdo do corpo grande antes que qualquer uma das regras de inspeção do corpo seja executada na web ACL. O procedimento a seguir descreve como adicionar esse tipo de regra.
-
Como bloquear componentes de solicitação da web de tamanho grande
Você pode adicionar uma regra na sua ACL da Web que bloqueie componentes de solicitação de tamanho grande.
Para adicionar uma regra que bloqueie conteúdos grandes
-
Ao criar ou editar sua web ACL, nas configurações de regras, escolha Adicionar regras, Adicionar minhas próprias regras e grupos de regras, Criador de regras e Editor visual de regras. Para obter orientação sobre como criar ou editar uma web ACL, consulte Como visualizar métricas de tráfego da Web no AWS WAF.
-
Insira um nome para sua regra e deixe a configuração Tipo em Regra normal.
-
Altere as seguintes configurações de correspondência de seus padrões:
-
Em Instrução, para Inspecionar, abra a lista suspensa e escolha o componente de solicitação da web de que você precisa, seja Corpo, Cabeçalhos ou Cookies.
-
Para Tipo de correspondência, escolha Tamanho maior que.
-
Em Tamanho, digite um número que seja pelo menos o tamanho mínimo para o tipo de componente. Para cabeçalhos e cookies, digite
8192
. Em Application Load Balancer ou nas ACLs da Web do AWS AppSync, para corpos, digite8192
. Para corpos no CloudFront, API Gateway, Amazon Cognito, App Runner ou ACLs da Web do Verified Access, se você estiver usando o limite de tamanho de corpo padrão, digite16384
. Caso contrário, digite o limite de tamanho de corpo que você definiu para sua ACL da Web. -
Para Tratamento de tamanhos grandes, selecione Corresponder.
-
-
Em Ação, selecione Bloquear.
-
Escolha Adicionar regra.
-
Depois de adicionar a regra, na página Definir prioridade da regra, mova-a acima de qualquer regra ou grupo de regras em sua web ACL que inspecione o mesmo tipo de componente. Isso dá à nova regra uma configuração de prioridade numérica mais baixa, o que faz com que o AWS WAF a avalie primeiro. Para ter mais informações, consulte Como definir a prioridade da regra em uma ACL da Web.