Como funciona o AWS WAF Classic - AWS WAF, AWS Firewall Manager, e AWS Shield Advanced

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Como funciona o AWS WAF Classic

nota

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

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

Você usa o AWS WAF Classic para controlar como o API Gateway, a Amazon CloudFront ou um Application Load Balancer respondem às solicitações da web. Comece criando condições, regras e listas de controle de acesso à web (web ACLs). Você define as condições, combina as condições em regras e combinar as regras em uma web ACL.

nota

Você também pode usar o AWS WAF Classic para proteger seus aplicativos hospedados em contêineres do Amazon Elastic Container Service (Amazon ECS). O Amazon ECS é um serviço de gerenciamento de contêineres com alta escalabilidade e rapidez que facilita a execução, a interrupção e o gerenciamento de contêineres do Docker em um cluster. Para usar essa opção, você configura o Amazon ECS para usar um Application Load Balancer habilitado para AWS WAF Classic para rotear e proteger o tráfego HTTP/HTTPS (camada 7) nas tarefas do seu serviço. Para obter mais informações, consulte o tópico Balanceador de carga de serviço no Guia do desenvolvedor do Amazon Elastic Container Service.

Condições

As condições definem as características básicas que você deseja que o AWS WAF Classic observe nas solicitações da web:

  • Scripts que provavelmente são mal-intencionados. Os invasores incorporam scripts que podem explorar vulnerabilidades nas aplicações web. Isso é conhecido como cross-site scripting.

  • Endereços IP ou intervalos de endereços IP dos quais as solicitações se originam.

  • País ou localização geográfica de origem das solicitações.

  • Comprimento das partes específicas da solicitação, como a string de consulta.

  • Código SQL que provavelmente é mal-intencionado. Os invasores tentam extrair dados do seu banco de dados ao incorporarem código SQL mal-intencionado a uma solicitação da web. Isso é conhecido como injeção de SQL.

  • Strings que aparecem na solicitação, por exemplo, valores que aparecem no cabeçalho User-Agent ou strings de texto que aparecem na string de consulta. Você também pode usar expressões regulares (regex) para especificar essas strings.

Algumas condições têm vários valores. Por exemplo, você pode especificar até 10,000 endereços IP ou intervalos de endereços IP em uma condição de IP.

Regras

Você combina condições em regras para direcionar com precisão as solicitações que você deseja permitir, bloquear ou contar. AWS WAF O Classic fornece dois tipos de regras:

Regra regular

As regras regulares usam apenas condições para apontar solicitações específicas. Por exemplo, com base nas solicitações recentes que está vendo de um invasor, você pode criar uma regra que inclui as seguintes condições:

  • As solicitações vêm de 192.0.2.44.

  • Elas contém o valor BadBot no cabeçalho do User-Agent.

  • Elas parecem incluir código do tipo SQL na query string.

Quando uma regra inclui várias condições, como neste exemplo, o AWS WAF Classic procura solicitações que correspondam a todas as condições, ou seja, ele usa o AND para unir as condições.

Adicione pelo menos uma condição a uma regra regular. Uma regra regular sem condições não pode corresponder a nenhuma solicitação, portanto, a ação da regra (permitir, contar ou bloquear) nunca é acionada.

Regra baseada em intervalos

As regras baseada em intervalos são como regras regulares com um limite de taxa adicional. Uma regra baseada em intervalos conta as solicitações que chegam de endereços IP que atendem às condições da regra. Se as solicitações de um endereço IP excederem o limite de taxa em um período de cinco minutos, a regra poderá acionar uma ação. Pode levar um ou dois minutos para que a ação seja acionada.

As condições são opcionais nas regras com base em taxa. Se você não adicionar nenhuma condição em uma regra com base em taxa, o limite de taxa será aplicado a todos os endereços IP. Se você combinar condições com o limite de taxa, o limite de taxa será aplicado aos endereços IP que corresponderem às condições.

Por exemplo, com base nas solicitações recentes que você viu de um invasor, é possível criar uma regra baseada em intervalos que inclui as seguintes condições:

  • As solicitações vêm de 192.0.2.44.

  • Elas contém o valor BadBot no cabeçalho do User-Agent.

Nesta regra baseada em intervalos, você também define um limite de taxa. Neste exemplo, vamos supor que você crie um limite de taxa de 1.000. As solicitações que atenderem às duas condições anteriores e excederem 1.000 solicitações por cinco minutos acionarão a ação da regra (bloquear ou contar), que foi definida na web ACL.

As solicitações que não atenderem a ambas as condições não serão contabilizadas para o limite de taxa e não serão afetadas por essa regra.

Como um segundo exemplo, suponha que você queira limitar as solicitações a uma determinada página em seu site. Para fazer isso, você pode adicionar a seguinte condição de correspondência de string a uma regra baseada em intervalos:

  • A Parte da solicitação a ser usada como filtro é URI.

  • O Match Type é Starts with.

  • O Value to match é login.

Além disso, você especifica um RateLimit de 1.000.

Ao adicionar essa regra baseada em intervalos a uma web ACL, você pode limitar as solicitações à sua página de login sem afetar o restante do site.

Web ACLs

Depois de combinar suas condições em regras, você combina as regras em uma web ACL. É neste ponto que você define uma ação para cada regra: permitir, bloquear ou contar, além de uma ação padrão:

Uma ação para cada regra

Quando uma solicitação da web corresponde a todas as condições de uma regra, o AWS WAF Classic pode bloquear a solicitação ou permitir que a solicitação seja encaminhada para a API do API Gateway, CloudFront distribuição ou um Application Load Balancer. Você especifica a ação que deseja que o AWS WAF Classic execute para cada regra.

AWS WAF O Classic compara uma solicitação com as regras em uma ACL da web na ordem em que você listou as regras. AWS WAF Em seguida, o Classic executa a ação associada à primeira regra à qual a solicitação corresponde. Por exemplo, se uma solicitação da Web corresponder a uma regra que permite solicitações e outra regra que bloqueia solicitações, o AWS WAF Classic permitirá ou bloqueará a solicitação, dependendo da regra listada primeiro.

Se quiser testar uma nova regra antes de começar a usá-la, você também pode configurar o AWS WAF Classic para contar as solicitações que atendem a todas as condições da regra. Assim como ocorre com regras que permitem ou bloqueiam solicitações, uma regra que conta solicitações é afetada pela posição que ocupa na lista de regras da web ACL. Por exemplo, se uma solicitação da web corresponder a uma regra que permite solicitações e a outra regra que conta solicitações, e se a regra que permite solicitações estiver listada primeiro, a solicitação não será contada.

Uma ação padrão

A ação padrão determina se o AWS WAF Classic permite ou bloqueia uma solicitação que não corresponde a todas as condições em nenhuma das regras na ACL da web. Por exemplo, vamos supor que você cria uma web ACL e adiciona apenas a regra que definiu antes:

  • As solicitações vêm de 192.0.2.44.

  • Elas contém o valor BadBot no cabeçalho do User-Agent.

  • Elas parecem incluir código SQL mal-intencionado na string de consulta.

Se uma solicitação não atender às três condições da regra e se a ação padrão forALLOW, o AWS WAF Classic encaminha a solicitação para o API Gateway CloudFront ou para um Application Load Balancer, e o serviço responderá com o objeto solicitado.

Se você adicionar duas ou mais regras a uma ACL da web, o AWS WAF Classic executará a ação padrão somente se uma solicitação não atender a todas as condições em nenhuma das regras. Por exemplo, vamos supor que você adicione uma segunda regra que contém uma condição:

  • As solicitações que contêm o valor BIGBadBot no cabeçalho User-Agent.

AWS WAF O Classic executa a ação padrão somente quando uma solicitação não atende às três condições na primeira regra e não atende a uma condição na segunda regra.

Em algumas ocasiões, AWS WAF pode encontrar um erro interno que atrasa a resposta ao Amazon API Gateway, à Amazon CloudFront ou a um Application Load Balancer sobre a possibilidade de permitir ou bloquear uma solicitação. Nessas ocasiões, CloudFront normalmente permite a solicitação ou veicula o conteúdo. O API Gateway e um Application Load Balancer normalmente negarão a solicitação e não fornecerão o conteúdo.