Trabalhar com condições de correspondência de injeção de SQL - Administrador de segurança da rede do AWS WAF, AWS Firewall Manager, AWS Shield Advanced e AWS Shield

Apresentação de uma nova experiência de console para o AWS WAF

Agora você pode usar a experiência atualizada para acessar a funcionalidade do AWS WAF em qualquer lugar no console. Consulte mais detalhes em Trabalhar com a experiência atualizada do console.

Trabalhar com condições de correspondência de injeção de SQL

Atenção

O AWS WAF Classic está passando por um processo de fim de vida útil planejado. Consulte o painel AWS Health para ver os marcos e datas específicos para a sua região.

nota

Essa é a documentação do AWS WAF Classic. Você só deverá usar essa versão se tiver criado recursos do AWS WAF, como regras e web ACLs, no AWS WAF antes de novembro de 2019, e ainda não os tiver migrado para a versão mais recente. Para migrar suas ACLs da Web, consulte Como migrar recursos do AWS WAF Classic para o AWS WAF.

Para obter a versão mais recente do AWS WAF, consulte AWS WAF.

Invasores às vezes inserem código SQL mal-intencionado em solicitações da web ma tentativa de extrair dados do seu banco de dados. Para permitir ou bloquear solicitações da web que aparentem conter código SQL mal-intencionado, crie uma ou mais condições de correspondência de injeção de SQL. A condição de correspondência de injeção de SQL identifica a parte das solicitações da web, como o URI ou a string de consulta, que você deseja que o AWS WAF Classic inspecione. Mais adiante no processo, ao criar uma web ACL, você especificará se deseja permitir ou bloquear solicitações que aparentem conter código SQL mal-intencionado.

Criar condições de correspondência de injeção de SQL

Ao criar condições de correspondência de injeção de SQL, você especifica filtros, que indicam a parte das solicitações da web para o AWS WAF Classic inspecionar quanto a código SQL mal-intencionado, como o URI ou a string de consulta. Você pode adicionar mais de um filtro a uma condição de correspondência de injeção de SQL ou criar uma condição separada para cada filtro. Veja como cada configuração afeta o comportamento do AWS WAF Classic:

  • Mais de um filtro por condição de correspondência de injeção de SQL (recomendado): quando você adiciona uma condição de correspondência de injeção de SQL contendo vários filtros a uma regra e adiciona a regra a uma web ACL, uma solicitação da web precisará corresponder apenas a um dos filtros na condição de correspondência de injeção de SQL para o AWS WAF Classic permitir ou bloquear a solicitação de acordo com essa condição.

    Por exemplo, vamos supor que você crie uma condição de correspondência de injeção de SQL e a condição contém dois filtros. Um filtro instrui o AWS WAF Classic a inspecionar o URI quanto a código SQL mal-intencionado e o outro instrui o AWS WAF Classic a inspecionar a string de consulta. AWS WAF O Classic permite ou bloqueia solicitações se elas aparentarem conter código SQL mal-intencionado seja no URI ou na string de consulta.

  • Um filtro por condição de correspondência de injeção de SQL: quando você adiciona condições de correspondência de injeção de SQL a uma regra e adiciona a regra à web ACL, as solicitações da web devem corresponder a todas as condições para o AWS WAF Classic permitir ou bloquear solicitações de acordo com as condições.

    Vamos supor que você crie duas condições e que cada condição contenha um dos dois filtros do exemplo anterior. Ao adicionar as duas condições à mesma regra e adicionar a regra a uma web ACL, o AWS WAF Classic permitirá ou bloqueará solicitações somente quando o URI e a string de consulta parecerem conter código SQL mal-intencionado.

nota

Ao adicionar uma condição de correspondência de injeção de SQL a uma regra, você também pode configurar o AWS WAF Classic para permitir ou bloquear solicitações da web que não pareçam conter código SQL mal-intencionado.

Para criar uma condição de correspondência de injeção de SQL
  1. Faça login no Console de gerenciamento da AWS e abra o console do AWS WAF em https://console.aws.amazon.com/wafv2/.

    Se você vir Switch to AWS WAF Classic no painel de navegação, selecione-o.

  2. No painel de navegação, selecione SQL injection.

  3. Escolha Create condition.

  4. Especifique as configurações de filtro aplicáveis. Para obter mais informações, consulte Valores especificados ao criar ou editar condições de correspondência de injeção de SQL.

  5. Escolha Add another filter.

  6. Se você quiser adicionar outro filtro, repita as etapas 4 e 5.

  7. Ao terminar de adicionar os filtros, escolha Criar.

Valores especificados ao criar ou editar condições de correspondência de injeção de SQL

Ao criar ou atualizar uma condição de correspondência de injeção de SQL, você especifica os seguintes valores:

Name

O nome da condição de correspondência de injeção de SQL.

O nome pode conter somente os caracteres alfanuméricos (A-Z, a-z, 0-9) ou os seguintes caracteres especiais _-!"#`+*},./. Você não poderá alterar o nome de uma condição depois de criá-la.

Parte da solicitação a ser usada como filtro

Escolha a parte de cada solicitação da web que você deseja que o AWS WAF Classic inspecione quanto a código SQL mal-intencionado:

Cabeçalho

Um cabeçalho da solicitação especificada, como o cabeçalho User-Agent ou Referer. Se você selecionar Header, especifique o nome do cabeçalho no campo Header.

Método HTTP

O método HTTP, que indica o tipo de operação que a solicitação pede à origem para executar. O CloudFront oferece suporte aos seguintes métodos: DELETE, GET, HEAD, OPTIONS, PATCH, POST e PUT.

String de consulta

A parte de um URL exibida após um caractere ?, se houver.

nota

Para condições de correspondência de injeção de SQL, recomendamos que você selecione Todos os parâmetros de consulta (somente valores) em vez de String de consulta para Parte da solicitação a ser usada como filtro.

URI

O caminho do URI da solicitação, que identifica o recurso, por exemplo, /images/daily-ad.jpg. Isso não inclui a string de consulta ou os componentes de fragmento do URI. Para obter mais informações, consulte Identificador de recurso uniforme (URI): sintaxe genérica.

A menos que uma Transformação seja especificada, um URI não será normalizado, mas sim inspecionado, exatamente como a AWS o receber do cliente como parte da solicitação. Uma Transformação reformata o URI conforme especificado.

Corpo

A parte de uma solicitação que contém dados adicionais que você deseja enviar para o seu servidor web na forma de corpo da solicitação HTTP, como dados de um formulário.

nota

Se você selecionar Corpo para o valor de Parte da solicitação a ser usada como filtro, o AWS WAF Classic inspecionará somente os primeiros 8.192 bytes (8 KB). Para permitir ou bloquear solicitações para as quais o corpo seja maior que 8.192 bytes, você pode criar uma condição de restrição de tamanho. (O AWS WAF Classic obtém o comprimento do corpo dos cabeçalhos da solicitação.) Para obter mais informações, consulte Trabalhar com condições de restrição de tamanho.

Parâmetro de consulta única (somente valor)

Qualquer parâmetro que você tenha definido como parte da string de consulta. Por exemplo, se o URL for “www.xyz.com?UserName=abc&SalesRegion=seattle”, você pode adicionar um filtro para o parâmetro UserName ou SalesRegion.

Se você escolher Single query parameter (value only) [Parâmetro de consulta única (somente valor)], também especificará um Query parameter name (Nome de parâmetro de consulta). Este é o parâmetro na string de consulta que você vai inspecionar, tal como UserName ou SalesRegion. O tamanho máximo do Query parameter name (Nome de parâmetro de consulta) é 30 caracteres. O Query parameter name (Nome de parâmetro de consulta) não diferencia maiúsculas de minúsculas. Por exemplo, se você especificar UserName como Query parameter name (Nome de parâmetro de consulta), todas as variações de UserName serão correspondentes, como username e UsERName.

Todos os parâmetros de consulta (somente valores)

Semelhante ao Parâmetro de consulta única (somente valor), mas em vez de inspecionar o valor de um único parâmetro, o AWS WAF Classic inspeciona o valor de todos os parâmetros na string de consulta quanto a possíveis códigos SQL mal-intencionados. Por exemplo se a URL for “www.xyz.com?UserName=abc&SalesRegion=seattle” e você escolher Todos os parâmetros de consulta (somente valores), o AWS WAF Classic acionará uma correspondência se o valor de UserName ou SalesRegion contiver um código SQL possivelmente malicioso.

Cabeçalho

Se você selecionar Cabeçalho para Parte da solicitação a ser usada como filtro, escolha um cabeçalho na lista de cabeçalhos comuns ou digite o nome de um cabeçalho no qual você deseja que o AWS WAF Classic inspecione código SQL mal-intencionado.

Transformação

Uma transformação reformata uma solicitação da web antes de o AWS WAF Classic inspecionar a solicitação. Isso elimina algumas das formatações incomuns que os invasores usam em solicitações da web na tentativa de evitar o AWS WAF Classic.

Você só pode especificar um único tipo de transformação de texto.

As transformações podem executar as seguintes operações:

Nenhum

O AWS WAF Classic não executa nenhuma transformação de texto na solicitação da web antes de inspecioná-la em busca da string em Valor para correspondência.

Converter para minúsculas

O AWS WAF Classic converte letras maiúsculas (A-Z) em minúsculas (a-z).

Decodificação de HTML

O AWS WAF Classic substitui caracteres codificados em HTML por caracteres não codificados:

  • Substitui " por &

  • Substitui   por espaço incondicional

  • Substitui &lt; por <

  • Substitui &gt; por >

  • Substitui caracteres representados em formato hexadecimal, &#xhhhh;, pelos caracteres correspondentes

  • Substitui caracteres representados em formato decimal, &#nnnn;, pelos caracteres correspondentes

Normalizar espaços em branco

O AWS WAF Classic substitui os seguintes caracteres por um caractere de espaço (decimal 32):

  • \f, quebra de página, decimal 12

  • \t, tabulação, decimal 9

  • \n, quebra de linha, decimal 10

  • \r, retorno de carro, decimal 13

  • \v, tabulação vertical, decimal 11

  • espaço incondicional, decimal 160

Além disso, essa opção substitui vários espaços por um único.

Simplificar a linha de comando

Para solicitações que contenham comandos de linha de comando do sistema operacional, use esta opção para executar as seguintes transformações:

  • Excluir os seguintes caracteres: \" '^

  • Excluir espaços antes os seguintes caracteres: / (

  • Substituir os seguintes caracteres por um espaço: , ;

  • Substituir vários espaços por um espaço

  • Converter maiúsculas (A-Z) em minúsculas (a-z)

Decodificar URL

Decodifica uma solicitação codificada por URL.

Adicionar e excluir filtros em uma condição de correspondência de injeção de SQL

Você pode adicionar ou excluir filtros em uma condição de correspondência de injeção de SQL. Para alterar um filtro, adicione um novo e exclua o antigo.

Para adicionar ou excluir filtros de uma condição de correspondência de injeção de SQL
  1. Faça login no Console de gerenciamento da AWS e abra o console do AWS WAF em https://console.aws.amazon.com/wafv2/.

    Se você vir Switch to AWS WAF Classic no painel de navegação, selecione-o.

  2. No painel de navegação, selecione SQL injection.

  3. Escolha a condição na qual você deseja adicionar ou excluir filtros.

  4. Para adicionar filtros, execute as etapas a seguir:

    1. Escolha Adicionar filtro.

    2. Especifique as configurações de filtro aplicáveis. Para obter mais informações, consulte Valores especificados ao criar ou editar condições de correspondência de injeção de SQL.

    3. Escolha Adicionar.

  5. Para excluir filtros, execute as etapas a seguir:

    1. Selecione o filtro que você deseja excluir.

    2. Escolha Delete filter.

Excluir condições de correspondência de injeção de SQL

Se você deseja excluir uma condição de correspondência de injeção de SQL, é preciso primeiro excluir todos os filtros na condição e remover a condição de todas as regras que a estiverem usando, conforme descrito no procedimento a seguir.

Para excluir uma condição de correspondência de injeção de SQL
  1. Faça login no Console de gerenciamento da AWS e abra o console do AWS WAF em https://console.aws.amazon.com/wafv2/.

    Se você vir Switch to AWS WAF Classic no painel de navegação, selecione-o.

  2. No painel de navegação, selecione SQL injection.

  3. No painel SQL injection match conditions, selecione a condição de correspondência de SQL injection que você deseja excluir.

  4. No painel direito, selecione a guia Associated rules.

    Se a lista de regras usando essa condição de correspondência de injeção de SQL estiver vazia, vá para a etapa 6. Se a lista contiver regras, anote-as e continue para a etapa 5.

  5. Para remover a condição de correspondência de injeção de SQL das regras que a estão usando, execute as seguintes etapas:

    1. No painel de navegação, escolha Rules.

    2. Escolha o nome de uma regra que esteja usando a condição de correspondência de injeção de SQL que você deseja excluir.

    3. No painel direito, selecione a condição de correspondência de SQL injection que você deseja remover da regra e escolha Remove selected condition.

    4. Repita as etapas b e c para todas as demais regras que estão usando a condição de correspondência de injeção de SQL que você deseja excluir.

    5. No painel de navegação, selecione SQL injection.

    6. No painel SQL injection match conditions, selecione a condição de correspondência de SQL injection que você deseja excluir.

  6. Selecione Delete para excluir a condição selecionada.