Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Por que o AWS WAF bloqueia minha solicitação legítima de upload?
Quero fazer upload (POST) de um arquivo que usa uma extensão bloqueada pelo AWS WAF.
Breve descrição
O AWS WAF pode bloquear uma solicitação POST por um dos seguintes motivos:
- Seu arquivo é maior do que o tamanho máximo do corpo da solicitação que o AWS WAF pode inspecionar. O AWS WAF tem cotas fixas de tamanho de inspeção corporal.
- As regras de injeção de SQL e cross-site scripting (XSS) são sensíveis a arquivos com caracteres aleatórios em seus metadados. Esses caracteres aleatórios podem invocar as regras da lista de controle de acesso da web (ACL da web). Isso se deve à semelhança deles com uma assinatura real de injeção de XSS ou SQL no AWS WAF.
Primeiro, consulte as regras comuns que podem bloquear uploads de arquivos. Se uma regra comum não bloquear o upload, considere outras opções para permitir arquivos bloqueados.
As regras a seguir geralmente bloqueiam uploads de arquivos:
- SQLi_BODY
- CrossSiteScripting_BODY
- WindowsShellCommands_BODY
- GenericLFI_BODY
- SizeRestrictions_BODY
Resolução
Uploads de arquivos bloqueados pelas regras SQLi_BODY e CrossSiteScripting_BODY
Verifique o campo terminatingRuleMatchDetails nos seus logs abrangentes do AWS WAF para obter as informações da regra.
Observação: o campo terminatingRuleMatchDetails é preenchido somente para ataques de SQLi_BODY e CrossSiteScripting_BODY.
Veja a seguir um exemplo de matchedData para CrossSiteScripting_BODY:
"terminatingRuleMatchDetails": [{ "conditionType": "XSS", "location": "BODY", "matchedData": [ "
Veja a seguir um exemplo de matchedData para SQLi_BODY:
"terminatingRuleMatchDetails": [{ "conditionType": "SQL_INJECTION", "location": "BODY", "matchedData": [ ")", "*", "(", "0" ]
Para resolver os uploads bloqueados por SQLi_BODY ou CrossSiteScripting_BODY, escolha uma das seguintes opções:
Adicione endereços IP conhecidos por uma lista segura
Se você souber o intervalo de endereços IP que acessa sua aplicação, use as condições de correspondência de IP. Isso adiciona os endereços IP a uma regra de lista segura.
Use uma lista segura com uma condição de correspondência
Use uma lista segura com uma condição de correspondência de string ou expressão regular (regex) para permitir a solicitação. Crie uma lista segura com base em um URI, cabeçalhos HTTP ou uma frase associados ao corpo dos arquivos do AWS WAF.
Use identificadores exclusivos em sua lista segura para identificar solicitações que possam ser consideradas legítimas.
Para criar sua lista segura, crie uma nova regra personalizada. Essa regra bloqueia vetores XSS ou SQLi com uma condição de exceção. A condição é baseada nos dados correspondentes de atributos de solicitação válidos para upload. Substitua a ação das regras específicas dentro dos grupos de regras gerenciadas que causam o falso positivo. Para isso, defina SQLi_BODY e CrossSiteScripting_BODY como Contar.
Para criar essa regra personalizada, conclua as seguintes etapas:
- Abra o console do AWS WAF.
- No painel de navegação, selecione AWS WAF.
- Selecione Pacotes de recursos e proteção.
- Encontre seu pacote de proteção e selecione Exibir e editar ao lado de Regras.
- No painel direito, selecione Adicionar regras.
Selecione Regra personalizada e clique em Próximo.
Selecione Regra personalizada novamente e clique em Próximo. - Atualize a Ação da regra para BLOQUEAR.
- Insira o Nome da regra.
- Em Se for uma solicitação, expanda a lista suspensa e selecione corresponde a todas as declarações (AND).
- Para a Declaração 1, conclua as seguintes etapas:
Em Inspecionar, escolha Tem uma etiqueta.
Em Declaração, selecione Rótulo.
Em Chave de correspondência, insira o rótulo da regra que cria o falso positivo. Por exemplo, se a regra CrossSiteScripting_BODY criar o falso positivo, insira awswaf:managed:aws:core-rule-set:CrossSiteScripting_Body. - Em Declaração 2, conclua as seguintes etapas: Em Inspecionar, selecione Corpo.
Em Declaração, selecione Tratamento de tamanho grande para Continuar.
Em Tipo de correspondência, escolha ** Contém string**.
Em String para correspondência, insira o valor que você deseja que corresponda à regra.
(Opcional) Em Transformação de texto, selecione uma transformação de texto ou Nenhuma.
Expanda Configuração da regra, em Negar declaração (NOT), selecione Negar resultados da declaração. - Selecione Criar regra.
- Para definir a prioridade da regra, selecione Editar ordem de regras no painel direito e arraste essa regra abaixo do grupo de regras gerenciadas que bloqueia a solicitação. Isso define primeiro o rótulo da regra gerenciada para a inspeção do grupo de regras. Em seguida, o AWS WAF usa o rótulo na próxima prioridade da regra.
- Selecione Salvar ordem das regras.
Observação: É uma prática recomendada testar regras em um ambiente de não produção com a Ação definida como Contar. Para avaliar a regra, use métricas do Amazon CloudWatch combinadas com amostras de solicitações do AWS WAF ou logs do AWS WAF. Quando a regra for executada conforme o esperado, altere a Ação para Bloquear.
Uploads de arquivos bloqueados pelas regras WindowsShellCommands_BODY, GenericLFI_BODY ou SizeRestrictions_BODY
Crie um arquivo HTTP Archive (HAR) quando o arquivo for carregado. Em seguida, consulte-o em busca das regras WindowsShellCommands_BODY, GenericLFI_BODY ou SizeRestrictions_BODY.
Para permitir falsos positivos para WindowsShellCommands_BODY, GenericLFI_BODY ou SizeRestrictions_BODY, primeiro defina a regra bloqueadora como Contar. Para obter instruções, consulte Substituição do resultado da avaliação de um grupo de regras para Count.
Em seguida, crie uma regra personalizada para a regra gerenciada que causa o falso positivo:
- Abra o console do AWS WAF.
- No painel de navegação, selecione AWS WAF.
- Selecione Pacotes de recursos e proteção.
- Encontre seu pacote de proteção e selecione Exibir e editar ao lado de Regras.
- No painel direito, selecione Adicionar regras.
Selecione Regra personalizada e clique em Próximo.
Selecione Regra personalizada novamente e clique em Próximo. - Atualize a Ação da regra para BLOQUEAR.
- Insira o Nome da regra.
- Em Se for uma solicitação, expanda a lista suspensa e selecione corresponde a todas as declarações (AND).
- Para a Declaração 1, conclua as seguintes etapas:
Em Inspecionar, escolha Tem uma etiqueta.
Em Declaração, selecione Rótulo.
Em Chave de correspondência, insira o rótulo da regra que cria o falso positivo. Por exemplo, se a regra WindowsShellCommands_BODY criar o falso positivo, insira awswaf:managed:aws:windows-os:WindowsShellCommands_Body. - Em Declaração 2, conclua as seguintes etapas:
Em Inspecionar, selecione caminho do URI. Em Declaração, em Tipo de correspondência, selecione Corresponde exatamente à string.
Em String para correspondência, insira o caminho do URI em que as solicitações estão sendo feitas.
(Opcional) Em Transformação de texto, selecione uma transformação de texto ou Nenhuma.
Expanda Configuração da regra, em Negar declaração (NOT), selecione Negar resultados da declaração. - Selecione Criar regra.
- Para definir a prioridade da regra, selecione Editar ordem de regras no painel direito e arraste essa regra abaixo do grupo de regras gerenciadas que bloqueia a solicitação.
- Selecione Salvar ordem das regras.
Observação: É uma prática recomendada testar regras em um ambiente de não produção com a Ação definida como Contar. Para avaliar a regra, use métricas do Amazon CloudWatch combinadas com as solicitações amostradas do AWS WAF ou logs do AWS WAF. Quando a regra for executada conforme o esperado, altere a Ação para Bloquear.
Outras opções para permitir arquivos bloqueados
Observação: As regras são processadas na ordem em que são listadas. Para as práticas recomendadas a seguir, reordene suas prioridades de regras conforme necessário.
Escolha o melhor método para seu caso de uso:
- Aplique a exclusão seletiva com uma declaração de regra de correspondência de string do AWS WAF ou uma condição de correspondência de string do AWS WAF Classic. Adicione frases específicas associadas ao corpo dos arquivos à sua lista segura. Por exemplo: Se falsos positivos ocorrerem em um determinado caminho de URI, adicione esse caminho à sua lista segura.
- Use um domínio separado para uploads de arquivos. Verifique se essa é uma opção econômica para seu caso de uso.
- Examine (limpe) arquivos e imagens em busca de código e dados incorporados. É possível realizar essa ação no lado do cliente antes de fazer o upload dos arquivos. Ou, se você criar uma regra de exclusão, é possível realizar essa ação no backend após o upload dos arquivos.
- Compacte os arquivos antes do upload.
Observação: Certifique-se de não compactar arquivos maliciosos. - Se o upload ocorrer a partir de vários endereços IP conhecidos, adicione esses endereços IP à sua lista segura.
- Use a codificação base64 para codificar todos os dados de imagem. de forma que o AWS WAF não invoque XSS ou SQLi nessas imagens.
Observação: Certifique-se de não codificar imagens maliciosas. - Implemente técnicas de otimização de imagem, como remoção de fragmentos ou randomização de bits.
- Tags
- AWS WAF
- Idioma
- Português

Conteúdo relevante
- feita há um ano
- feita há 4 meses
- feita há 2 meses
- feita há 2 meses