Como faço para criar uma regra no AWS WAF para evitar SQLi e XSS?

Data da última atualização: 12/7/2022

Quero evitar injeção de SQL (SQLi) e cross-site scripting (XSS). Quais opções o AWS WAF oferece para evitar ataques SQLi e XSS?

Breve descrição

O AWS WAF oferece as seguintes proteções para evitar ataques SQLi e XSS:

  • Mecanismos SQLi e XSS integrados
  • Regras gerenciadas pela AWS disponíveis para ataques de injeção SQLi e XSS

Para configurar essas proteções, verifique se você configurou o AWS WAF e criou uma ACL da Web.

Observação: o AWS WAF possui limitações ao inspecionar os componentes corpo, cabeçalhos ou cookies da solicitação. Para obter mais informações, consulte Inspection of the request body, headers, and cookies (Inspeção do corpo, cabeçalhos e cookies da solicitação).

Resolução

Importante: é uma prática recomendada testar as regras em um ambiente de não produção com a opção Action (Ação) definida como Count (Contagem). Avalie a regra usando métricas do Amazon CloudWatch combinadas com solicitações por amostra do AWS WAF ou logs do AWS WAF. Quando estiver convicto de que a regra faz o que você deseja, altere a opção Action (Ação) para Block (Bloquear).

Use mecanismos SQLi e XSS integrados

Os ataques podem ocorrer em diferentes partes da solicitação HTTP, como no cabeçalho HTTP, na string de consulta ou no URI. Configure as regras no AWS WAF para inspecionar diferentes partes da solicitação HTTP em relação aos mecanismos de mitigação integrados.

Instrução de regra de ataque de SQLi

Crie uma SQL injection attack rule statement (Instrução de regra de ataque de injeção de SQL) para inspecionar o código SQL mal-intencionado. Para criar uma instrução de regra de ataque de SQLi, faça o seguinte:

  1. Abra o console do AWS WAF.
  2. No painel de navegação, em AWS WAF, escolha Web ACLs (ACLs da Web).
  3. Em Region (Região), escolha a região da AWS em que você criou sua ACL da Web.
    Observação: selecione Global se a sua ACL da Web estiver configurada para o Amazon CloudFront.
  4. Selecione sua ACL da Web.
  5. Escolha Rules (Regras) e, em seguida, selecione Add Rules (Adicionar regras). Selecione Add my own rules and rule groups (Adicionar minhas próprias regras e grupos de regras) na lista suspensa.
  6. Em Name (Nome), insira um nome para a regra e escolha Regular Rule (Regra regular).
  7. Em If a request (Se uma solicitação), escolha matches the statement (corresponde à instrução).
  8. Em Inspect (Inspecionar), selecione os componentes de solicitação que serão avaliados em relação ao mecanismo de mitigação do SQLi integrado.
  9. Em Match Type (Tipo de correspondência), selecione Contains SQL injection attacks (Contém ataques de injeção de SQL) na lista suspensa.
  10. Escolha uma Text transformation (Transformação de texto).
  11. Em Action (Ação), escolha Block (Bloquear).
  12. Selecione Add Rule (Adicionar regra).
  13. Escolha Save (Salvar).

Instrução de regra de ataque de XSS

Crie uma Cross-site scripting attack rule statement (Instrução de regra de ataque de cross-site scripting) para inspecionar scripts mal-intencionados em um componente de solicitação da Web. Para criar uma instrução de regra de ataque de XSS, faça o seguinte:

  1. Abra o console do AWS WAF.
  2. No painel de navegação, em AWS WAF, escolha Web ACLs (ACLs da Web).
  3. Em Region (Região), escolha a região da AWS em que você criou sua ACL da Web.
    Observação: selecione Global se a sua ACL da Web estiver configurada para o Amazon CloudFront.
  4. Selecione sua ACL da Web.
  5. Escolha Rules (Regras) e, em seguida, selecione Add Rules (Adicionar regras). Selecione Add my own rules and rule groups (Adicionar minhas próprias regras e grupos de regras) na lista suspensa.
  6. Em Name (Nome), insira um nome para a regra e escolha Regular Rule (Regra regular).
  7. Em If a request (Se uma solicitação), escolha matches the statement (corresponde à instrução).
  8. Em Inspect (Inspecionar), selecione os componentes de solicitação que serão avaliados em relação ao mecanismo de mitigação de XSS integrado.
  9. Em Match Type (Tipo de correspondência), selecione Contains XSS injection attacks (Contém ataques de injeção de XSS) na lista suspensa.
  10. Escolha uma Text transformation (Transformação de texto).
  11. Em Action (Ação), escolha Block (Bloquear).
  12. Selecione Add Rule (Adicionar regra).
  13. Escolha Save (Salvar).

Regras de ataque de SQLi e XSS que avaliam vários componentes de solicitação

Para criar uma regra de ataque que avalie vários componentes de solicitação, faça o seguinte:

  1. Abra o console do AWS WAF.
  2. No painel de navegação, em AWS WAF, escolha Web ACLs (ACLs da Web).
  3. Em Region (Região), escolha a região da AWS em que você criou sua ACL da Web.
    Observação: selecione Global se a sua ACL da Web estiver configurada para o Amazon CloudFront.
  4. Selecione sua ACL da Web.
  5. Escolha Rules (Regras) e, em seguida, selecione Add Rules (Adicionar regras). Selecione Add my own rules and rule groups (Adicionar minhas próprias regras e grupos de regras) na lista suspensa.
  6. Em Name (Nome), insira um nome para a regra e escolha Regular Rule (Regra regular).
  7. Em If a request (Se uma solicitação), escolha matches at least one of the statements (OR) (corresponde a pelo menos uma das instruções [OR]).
  8. Em Inspect (Inspecionar), selecione os componentes de solicitação que serão avaliados em relação ao mecanismo de mitigação de SQLi ou XSS integrado.
  9. Em Match Type (Tipo de correspondência), selecione Contains SQLi injection attacks (Contém ataques de injeção de SQLi) ou Contains XSS injection attacks (Contém ataques de injeção de XSS) na lista suspensa.
  10. Escolha uma Text transformation (Transformação de texto).
  11. Repita as etapas oito a dez para cada Statement (Instrução). Escolha Add another statement (Adicionar outra instrução) para avaliações de regras adicionais.
  12. Em Action (Ação), escolha Block (Bloquear).
  13. Selecione Add Rule (Adicionar regra).
  14. Escolha Save (Salvar).

Importante: você deve aplicar as transformações de texto corretas para que a regra funcione conforme o esperado. Por exemplo, se você estiver inspecionando um Cookie, use as seguintes transformações associadas a um cookie:

  • URL Decode (Decodificação de URL)
  • HTML entity decode (Decodificação de entidade HTML)
  • Lowercase (Minúsculas)

Use as regras gerenciadas pela AWS disponíveis para ataques de injeção de SQLi e XSS

Use as regras gerenciadas pela AWS para o AWS WAF a fim de se proteger contra vulnerabilidades de aplicações ou outro tráfego indesejado sem precisar escrever suas próprias regras.

Observação: as regras gerenciadas estão sujeitas a alterações de versão e expiração. Para obter mais informações, consulte Best practices for handling managed rule group versions (Práticas recomendadas para lidar com versões de grupos de regras gerenciadas).

Use o SQL database managed rule group (Grupo de regras gerenciadas do banco de dados SQL) para se proteger contra ataques de injeção de SQL. Para fornecer proteção, o grupo de regras gerenciadas do banco de dados SQL (versão padrão 1.1) possui as seguintes regras:

  • SQLiExtendedPatterns_QUERYARGUMENTS
  • SQLi_QUERYARGUMENTS
  • SQLi_Body
  • SQLi_COOKIE
  • SQLi_URIPATH

Use o Core rule set (CRS) managed rule group (Grupo de regras gerenciadas do conjunto de regras principais [CRS]) para se proteger contra ataques de injeção de XSS. Para fornecer proteção, o grupo de regras gerenciadas do conjunto de regras principais (CRS) (versão padrão 1.3) possui as seguintes regras:

  • CrossSiteScripting_COOKIE
  • CrossSiteScripting_QUERYARGUMENTS
  • CrossSiteScripting_BODY
  • CrossSiteScripting_URIPATH

Para adicionar um grupo de regras gerenciadas pela AWS à sua ACL da Web

  1. Abra o console do AWS WAF.
  2. No painel de navegação, em AWS WAF, escolha Web ACLs (ACLs da Web).
  3. Em Region (Região), escolha a região da AWS em que você criou sua ACL da Web.
    Observação: selecione Global se a sua ACL da Web estiver configurada para o Amazon CloudFront.
  4. Selecione sua ACL da Web.
  5. Escolha Rules (Regras) e, em seguida, selecione Add Rules (Adicionar regras). Selecione Add managed rule groups (Adicionar grupos de regras gerenciadas) na lista suspensa.
  6. Expanda a seção AWS managed rule groups (Grupos de regras gerenciadas pela AWS).
  7. Localize o grupo de regras e ative Add to web ACL (Adicionar à ACL da Web).
    Por exemplo, você pode ativar Add to web ACL (Adicionar à ACL da Web) para o SQL database (banco de dados SQL) para proteção contra SQLi e Core rule set (Conjunto de regras principais) para proteção contra XSS.
  8. (Opcional) Escolha Edit (Editar) para visualizar e modificar as configurações do grupo de regras.
  9. Selecione Add rules (Adicionar regras).
  10. Escolha Save (Salvar).

Para editar um grupo de regras gerenciadas pela AWS existente em sua ACL da Web

  1. Abra o console do AWS WAF.
  2. No painel de navegação, em AWS WAF, escolha Web ACLs (ACLs da Web).
  3. Em Region (Região), escolha a região da AWS em que você criou sua ACL da Web.
    Observação: selecione Global se a sua ACL da Web estiver configurada para o Amazon CloudFront.
  4. Selecione sua ACL da Web.
  5. Escolha Rules (Regras), em seguida, selecione Edit (Editar) para exibir e modificar as configurações.
    Observação: para obter informações adicionais sobre a edição de configurações, consulte Working with managed rule groups (Como trabalhar com grupos de regras gerenciadas).
  6. Quando finalizar suas edições, selecione Save (Salvar).

Se você obtiver cenários falso-positivos com grupos de regras de regras gerenciadas da AWS, consulte AWS Managed Rules for AWS WAF (Regras gerenciadas pela AWS para o AWS WAF).


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?