Ir para o conteúdo

Como eu permito explicitamente os uploads de arquivos que uma regra do AWS WAF bloqueia sem excluir a regra?

6 minuto de leitura
0

Quero permitir que os usuários façam upload de arquivos usando extensões de arquivo específicas sem precisar bloquear a regra de configuração atual do AWS WAF.

Breve descrição

O conteúdo de upload de arquivos HTTP geralmente é um dos seguintes tipos:

  • Dados do formulário: Dados enviados de formulários de sites para APIs como parte de dados de formulário com várias partes.
  • Dados binários: Um arquivo que não é uma carga útil de texto. O arquivo binário pode ser um arquivo JPEG, um arquivo GZip ou um arquivo PDF.

Para descobrir por que o AWS WAF bloqueia uma solicitação POST, analise as regras comuns que bloqueiam o upload de arquivos. Se uma regra comum não estiver bloqueando o upload, revise as opções adicionais para permitir arquivos bloqueados.

As regras a seguir geralmente bloqueiam uploads de arquivos:

  • CrossSiteScripting_BODY
  • SQLi_BODY
  • SizeRestrictions_BODY
  • Regras personalizadas que avaliam a solicitação BODY

Resolução

Determine qual regra bloqueia os carregamentos de arquivos

Conclua as etapas a seguir para determinar qual regra bloqueia o upload do arquivo:

1.    Abra o console do AWS WAF.

2.    Analise os exemplos de solicitações da web. As solicitações de amostra contêm informações sobre a regra que bloqueia a solicitação e os componentes da solicitação HTTP.

3.    Na página Visão geral, em Regra dentro do grupo de regras, encontre os componentes da solicitação HTTP. Os componentes são semelhantes aos exemplos a seguir:

Regra dentro do grupo de regras

awswaf:managed:aws:core-rule-set:CrossSiteScripting_Body

Solicitação

`POST /upload`  
`User-Agent: PostmanRuntime/7.30.0 Accept: */* Host: example.amazonaws.com Connection: keep-alive Content-Type: multipart/form-data; boundary=--------------------------421232031360350156757252 Content-Length: 4060737 `

4.   Analise os logs abrangentes do AWS WAF para terminatingRuleMatchDetails.

Observação: o campo terminatingRuleMatchDetails é preenchido somente para ataques de SQLi_BODY e CrossSiteScripting_BODY.

Identifique o tipo de conteúdo dos dados POST

Para identificar o tipo de conteúdo, revise o cabeçalho HTTP em seus dados POST para ver o content-type. No exemplo anterior, o tipo de conteúdo é multipart/form-data.

Conteúdo de dados do formulário

Para conteúdo form-data que tenha multipart/form-data como valor do cabeçalho, conclua as seguintes etapas:

1.     Abra o console do AWS WAF.

2.No painel de navegação, em AWS WAF, escolha ACLs da Web.
Observação: a seleção padrão para Região é Leste dos EUA (Norte da Virgínia). Escolha a região da AWS em que você criou sua ACL da web. Escolha Global se sua ACL da web estiver configurada para o Amazon CloudFront.

3.    Escolha sua ACL da Web.

4.    Na guia Regras, escolha Adicionar regras e depois escolha Adicionar minhas próprias regras e grupos de regras.

5.    Na tela Adicionar regra, em Tipo de regra, escolha Construtor de regras.
Em Nome, insira um nome para identificar essa regra.
Em Tipo, escolha Regra regular.
Em Se uma solicitação, escolha corresponder à declaração.
Em Inspecionar, escolha Corpo.
Em Tipo de conteúdo, escolha JSON.
Para o escopo de correspondência JSON, escolha Valores.
Em Como o AWS WAF deve lidar com a solicitação se o JSON no corpo da solicitação for inválido, escolha a opção apropriada para seu caso de uso.
Em Conteúdo a ser inspecionado, escolha Conteúdo JSON completo.
Em Tipo de correspondência, escolha Corresponde à expressão regular.
Para Expressão regular, cole o seguinte exemplo de padrão regex:

(?:.pdf|.doc|.docx|.ppt)

(Opcional) Para Transformação de texto, escolha uma Transformação de texto ou Nenhuma. Para obter mais informações, consulte Transformações de texto.
Para Manipulação de tamanho grande, escolha a opção apropriada para sua configuração. Para obter mais informações, consulte Como lidar com componentes de solicitações web de tamanho grande no AWS WAF.
Em Ação, escolha Permitir. Para mais informações, consulte Ação da regra.

6.    Escolha Adicionar regra.

7.    Em Definir prioridade da regra, selecione sua regra e mova-a para uma prioridade maior do que a regra que bloqueia a solicitação. O AWS WAF avalia as regras de acordo com a prioridade definida. Para obter mais informações, consulte Ordem de processamento de regras e grupos de regras em uma ACL da Web.

8.    Escolha Salvar. Certifique-se de que as regras funcionem conforme o esperado.

Conteúdo de dados binários

Para conteúdo de dados binários que tenha um valor semelhante a application/pdf ou application/ppt para o valor do cabeçalho, conclua as seguintes etapas:

1. Abra o console do AWS WAF.

2.No painel de navegação, em AWS WAF, escolha ACLs da Web.
Observação: a seleção padrão para Região é Leste dos EUA (Norte da Virgínia). Escolha a região da AWS em que você criou sua ACL da web. Escolha Global se sua ACL da web estiver configurada para o Amazon CloudFront.

3.    Escolha sua ACL da Web.

4.    Na guia Regras, escolha Adicionar regras e depois escolha Adicionar minhas próprias regras e grupos de regras.

5.    Na tela Adicionar regra, em Tipo de regra, escolha Construtor de regras.
Em Nome, insira um nome para identificar essa regra.
Em Tipo, escolha Regra regular.
Em Se uma solicitação, escolha corresponder à declaração.
Em Inspecionar, escolha Cabeçalho único.
Em Nome do campo do cabeçalho, insira Content-Type.
Em Tipo de correspondência, escolha Corresponde à expressão regular.
Para Expressão regular, cole o seguinte exemplo de padrão regex:

(?:pdf|jpeg)

(Opcional) Para Transformação de texto, escolha uma Transformação de texto ou Nenhuma. Para obter mais informações, consulte Transformações de texto.
Em Ação, escolha Permitir. Para mais informações, consulte Ação da regra.

6.    Escolha Adicionar regra.

7.    Em Definir prioridade da regra, selecione sua regra e mova-a para uma prioridade maior do que a regra que bloqueia a solicitação. O AWS WAF avalia as regras de acordo com a prioridade definida. Para obter mais informações, consulte Ordem de processamento de regras e grupos de regras em uma ACL da Web.

8.    Escolha Salvar. Certifique-se de que a regra funcione conforme o esperado.

Observação: para restringir a regra para um caminho de URI de upload específico, use uma instrução AND dentro da regra de ACL da Web.

Informações relacionadas

Como faço para ativar o registro em log do AWS WAF e enviar logs para o CloudWatch, Amazon S3 ou Kinesis Data Firehose?

AWS OFICIALAtualizada há 3 anos