Como funciona o AWS WAF Classic
Atenção
O suporte ao AWS WAF Classic terminará em 30 de setembro de 2025.
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.
Você usa o AWS WAF Classic para controlar como o API Gateway, o 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 que são 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, configure o Amazon ECS para usar um AWS WAF Classic habilitado para Application Load Balancer a fim de rotear e proteger o tráfego HTTP/HTTPS (camada 7) nas tarefas do 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 apontar precisamente as solicitações que deseja permitir, bloquear ou contar. AWS WAF O Classic oferece 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 doUser-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 doUser-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 em uma regra, o AWS WAF Classic pode bloquear ou permitir que a solicitação seja encaminhada à API do Gateway API, a uma distribuição do CloudFront ou a um Application Load Balancer. Você especifica a ação que deseja que o AWS WAF Classic execute para cada regra.
O AWS WAF Classic compara uma solicitação com as regras na web ACL na ordem em que você listou as regras. AWS WAF O Classic então toma 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 a outra regra que bloqueia solicitações, o AWS WAF Classic permitirá ou bloqueará a solicitação, dependendo de qual regra for listada primeiro.
Se você deseja testar uma nova regra antes de começar a usá-la, pode também 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 vai determinar se o AWS WAF Classic permitirá ou bloqueará uma solicitação que não corresponde a todas as condições em qualquer uma das regras na web ACL. 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 doUser-Agent
. -
Elas parecem incluir código SQL mal-intencionado na string de consulta.
Se uma solicitação não atender a todas as três condições na regra e se a ação padrão for
ALLOW
, o AWS WAF Classic encaminhará a solicitação para o API Gateway, para o 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 web ACL, o AWS WAF Classic executará a ação padrão somente se uma solicitação não atender a todas as condições em qualquer uma 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çalhoUser-Agent
.
O AWS WAF Classic executará a ação padrão somente quando uma solicitação não atender a todas as três condições na primeira regra e não atender a uma condição na segunda regra.
-
Em algumas ocasiões, o AWS WAF pode encontrar um erro interno que atrasa a resposta ao Amazon API Gateway, ao Amazon CloudFront ou a um Application Load Balancer sobre se deve permitir ou bloquear uma solicitação. Nesses casos, o CloudFront normalmente permitirá a solicitação ou fornecerá 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.