Como usar o AWS WAF para bloquear uploads de extensões de arquivo específicas?

5 minuto de leitura
0

Quero restringir o upload de arquivos (solicitações HTTP POST) com extensões específicas para meu servidor da Web.

Breve descrição

Quando você analisa os dados POST de uma solicitação HTTP, o conteúdo carregado pode ser de dois tipos:

  • Dados do formulário
  • Binário

Observação: o AWS WAF inspeciona os primeiros 8 KB (8.192 bytes) do corpo da solicitação. Esse é um limite de serviço rígido que você não pode alterar.

Para restringir os carregamentos de arquivos que usam uma extensão de arquivo específica, como .pdf, .docx ou.exe, conclua as seguintes etapas:

1.Crie uma regra personalizada de lista de controle de acesso da Web (ACL da Web) para inspecionar o CORPO da solicitação.

2.Crie uma condição de correspondência regex dentro da regra. Use esse padrão regex para configurar a regra para restringir várias extensões de arquivo.

3.Defina a ação da regra como BLOQUEAR.

4.Defina a prioridade da regra para que essa regra personalizada tenha uma prioridade maior do que qualquer regra de ACL da Web que possa bloquear essa regra.

5.Confirme se a regra bloqueia com êxito a extensão de arquivo específica.

Resolução

Identifique o tipo de conteúdo que os dados POST usam

Os dados POST nas solicitações HTTP normalmente usam dados do formulário ou binários.

  • Os dados do formulário incluem todos os dados que um usuário insere em uma página da Web (ou “formulário HTML”) que o HTTP envia (ou “publica”) em um servidor da Web.
  • Uma carga binária é qualquer coisa que não seja uma carga de texto. Por exemplo, uma carga binária pode ser um arquivo.jpeg, um arquivo.gzip ou um arquivo.xml. Isso inclui dados binários genéricos, como de uma aplicação .pdf, imagem .jpeg ou aplicação .zip. Para todos os tipos de extensão de arquivo, consulte Tipos de mídia no site da Internet Assigned Numbers Authority (IANA).

Para identificar o tipo de solicitação POST, consulte o valor Content-Type do cabeçalho HTTP POST. O exemplo a seguir contém um Content-Type de multipart/form-data:

Content-Type: multipart/form-data

Se o cabeçalho “Content-Type” tiver um valor de “multipart/form-data”, conclua as seguintes etapas para criar uma regra:

1. Abra o console do AWS WAF.

2.No painel de navegação, em AWS WAF, escolha ACLs da Web.

3.Em Região, escolha a região da AWS em que você criou sua ACL da web.
Observação: se você configurar sua ACL da Web para o Amazon CloudFront, selecione Global.

4.Selecione sua ACL da Web. Em seguida, escolha a guia Regras.

5.Escolha a lista suspensa Adicionar regras e escolha Adicionar minhas próprias regras e grupos de regras.

6.Em Tipo de regra, escolha Criador de regras.

7.Em Nome, insira um nome para identificar essa regra.

8.Em Tipo, escolha Regra regular.

9.Em Se uma solicitação, escolha corresponder à declaração. Em seguida, preencha os seguintes campos para a Declaração:
Em Inspecionar, escolha Corpo.
Em Tipo de conteúdo, escolha JSON.
Em 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 relevante 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.
Em Expressão regular, insira um padrão regex que corresponda. Veja o exemplo a seguir:

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

10.(Opcional) Em transformação de texto, você pode adicionar uma transformação de texto ou manter esses campos como Nenhum.

11.Em Tratamento de grandes dimensões, escolha a opção relevante para seu caso de uso.

12.Em Ação, escolha Bloquear.

13.Escolha Adicionar regra.

14.(Opcional) Em Definir prioridade da regra, selecione sua regra e mova sua prioridade. O AWS WAF processa as regras na ordem em que elas aparecem. Para obter mais informações, consulte Ordem de processamento de regras e grupos de regras em uma ACL da Web.

15.Escolha Salvar.

Valide se a regra funciona conforme o esperado.

Se o cabeçalho “Content-Type” tiver um valor binário, como “application/pdf” ou “application/ppt”, conclua as etapas a seguir para criar uma regra:

1. Abra o console do AWS WAF.

2.No painel de navegação, em AWS WAF, escolha ACLs da Web.

3.Em Região, escolha a região da AWS em que você criou sua ACL da web.
Observação: se você configurar sua ACL da Web para o Amazon CloudFront, selecione Global.

4.Selecione sua ACL da Web. Em seguida, escolha a guia Regras.

5.Escolha a lista suspensa Adicionar regras e escolha Adicionar minhas próprias regras e grupos de regras.

6.Em Tipo de regra, escolha Criador de regras.

7.Em Nome, insira um nome para identificar essa regra.

8.Em Tipo, escolha Regra regular.

9.Em Se uma solicitação, escolha corresponder à declaração. Em seguida, preencha os seguintes campos para a 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.
Em Expressão regular, insira um padrão regex que corresponda. Veja o exemplo a seguir para arquivos .pdf e .jpeg:

(?:pdf|jpeg)   

10.(Opcional) Em transformação de texto, você pode adicionar uma transformação de texto ou manter esses campos como Nenhum.

11.Em Ação, escolha Bloquear.

12.Escolha Adicionar regra.

13.(Opcional) Em Definir prioridade da regra, selecione sua regra e mova sua prioridade. O AWS WAF processa as regras na ordem em que elas aparecem. Para obter mais informações, consulte Ordem de processamento de regras e grupos de regras em uma ACL da Web.

14.Escolha Salvar.

Valide se a regra funciona 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 que inspeciona o caminho.

AWS OFICIAL
AWS OFICIALAtualizada há um ano