Firewall
Um firewall inspeciona cada requisição que um workload recebe e decide se ela chega à aplicação. Habilite WAF, Network Shield e Bot Manager nele.
Um firewall para tráfego web é um ponto de controle entre os clientes na internet e uma aplicação. Ele lê cada requisição antes da aplicação: o endereço de onde ela vem, o caminho que ela pede e os headers que ela envia. Ele compara o que lê com condições que você escreve, e uma requisição que atende a uma delas recebe a ação associada a essa condição, como uma recusa. Todas as outras requisições chegam à aplicação sem alteração, então a aplicação nunca processa o tráfego que o ponto de controle recusa.
Firewall é o recurso da plataforma que executa esse ponto de controle na infraestrutura distribuída da Azion, perto do cliente, na frente de cada workload que o vincula. Um firewall guarda uma lista ordenada de regras, e uma requisição que uma regra interrompe nunca chega à sua aplicação nem à origem dela. Use Firewall para negar um caminho, bloquear endereços ou países, aplicar um rate limit a um cliente, recusar requisições que carregam um ataque ou distinguir scripts de pessoas.
Primeiros passos Referência do FirewallEstrutura da regra
Um firewall age por meio das regras dele. Cada regra combina critérios, que selecionam requisições, com comportamentos, que agem sobre as requisições selecionadas. Esta regra nega toda requisição cujo caminho começa com /deny-test, enviada como corpo de POST /v4/workspace/firewalls/<firewall-id>/request_rules:
criteriaguarda blocos de condições. O primeiro critério de um bloco abre comif, e cada critério seguinte se junta a ele comandouor. Aqui,${request_uri}comstarts_withcorresponde a/deny-teste a todo caminho que começa com ele, como/deny-test/page.behaviorslista o que a regra faz com uma requisição que corresponde a ela.denyresponde403com a página de erro padrão da Azion, e nenhuma regra posterior é executada para essa requisição.nameeactivesão campos da própria regra. A API acrescentaorder, a posição da regra na lista do firewall, na ordem em que as regras são criadas.- Azion Console monta a mesma regra na aba Rules Engine do firewall, a partir de Request Uri, starts with e Deny (403 Forbidden).
Se você já escreveu regras de firewall como uma condição e uma ação, o modelo se mantém: os critérios são a condição, e os comportamentos são a ação.
Caminho da requisição
Criar um firewall não protege nada. Um firewall não tem domínio próprio: ele inspeciona as requisições de cada workload cujo deployment o nomeia, e nenhuma requisição enquanto nenhum deployment o nomear.
- Um workload responde no domínio dele, e o deployment dele nomeia um firewall e uma aplicação. No Azion Console, o vínculo é o campo Firewall de Deployment Settings. A API o carrega como
strategy.attributes.firewall, eazion create workload-deploymento recebe como--firewall-id. - Cada requisição para o workload chega ao firewall antes da aplicação.
- O firewall compara os critérios de cada regra com a requisição, em ordem. Uma regra cujos critérios não correspondem não executa nada.
- Uma regra cujos critérios correspondem executa os comportamentos dela. Um comportamento que interrompe a requisição, como uma negação, responde ao cliente, e nenhuma regra posterior é executada.
- Uma requisição que nenhuma regra interrompe chega à aplicação, que nunca vê uma requisição que uma regra interrompeu.
Um firewall pode atender aos deployments de vários workloads, e uma mudança nas regras dele chega a todos eles. Nenhum tempo de propagação é garantido. Uma regra nova alcança o tráfego de 6 min 29 s a 9 min 18 s depois de salva. Um workload recém-vinculado a um firewall pode levar vários minutos para aplicar a primeira regra. Até uma mudança se estabilizar, as respostas alternam entre o estado anterior e o novo, então envie a requisição de novo até ela responder como esperado. Para a ordem das regras, o que cada comportamento retorna e todos os tempos de propagação, consulte Como Firewall funciona.
Recursos
Um firewall pode executar três produtos, e cada um age somente sobre as requisições que uma regra entrega a ele.
WAF
Web Application Firewall (WAF) é o firewall de aplicação web que um firewall executa: na camada 7, a camada de aplicação, ele pontua cada requisição que um comportamento Set WAF entrega a ele contra oito famílias de ameaças. Ative-o para recusar requisições que carregam ameaças do OWASP Top 10 e outras, como SQL injection, cross-site scripting e remote file inclusion. WAF vem desativado em um firewall novo, e você o ativa em Main Settings › Modules.
Para saber como WAF pontua uma requisição e quais campos o ajustam, consulte Score e modos, Rule sets e Exceções, e para recusar a sua primeira requisição com WAF, consulte Primeiros passos com WAF.
Network Shield
Network Shield acrescenta o critério Network, ${network} na API, que compara o endereço do cliente de uma requisição com uma lista de endereços IP e intervalos CIDR, de Autonomous System Numbers (ASNs) ou de países. Use-o para bloquear endereços sabidamente maliciosos, restringir o acesso por país, permitir somente as suas próprias redes, aplicar um rate limit a um conjunto de clientes ou bloquear exit nodes Tor. Network Shield vem ativado em um firewall novo.
Para saber como uma lista corresponde ao endereço do cliente e quais tipos de lista existem, consulte Correspondência de listas e Network Lists, e para negar o seu próprio endereço em um caminho de teste, consulte Primeiros passos com Network Shield.
Bot Manager
Bot Manager pontua cada requisição que uma regra de firewall entrega a ele em busca de sinais de automação, e executa a ação que você configura quando o score atinge o seu limite. Ative-o quando automação, como credential stuffing, varredura de vulnerabilidades, scraping de estoque ou abuso de checkout, chega a uma aplicação que também atende pessoas. Bot Manager não tem interruptor em Modules: ele é executado como uma instância de função que um comportamento Run Function invoca, então o firewall precisa do interruptor Functions ativado.
Para saber como Bot Manager calcula um score, como configurá-lo e o que o report log registra, consulte Score de bots, Argumentos, Logs e Bot Manager Lite, e para pontuar a sua primeira requisição, consulte Primeiros passos com Bot Manager.
Escopo e limites
- Regras nativas: sem nenhum produto ativado, uma regra corresponde a requisições por Host, Request Uri, Scheme, Ssl Verification Status e Client Certificate Validation. Ela pode negar, descartar, aplicar um rate limit ou responder à requisição com uma resposta personalizada. Para cada critério, operador e comportamento, consulte Rules Engine para Firewall.
- Respostas: Deny (403 Forbidden) responde
403com a página de erro padrão da Azion, e Drop (Close Without Response) não envia nenhuma resposta HTTP. Set Rate Limit libera as requisições na taxa configurada e responde429somente a requisições simultâneas além do burst dele, e um bloqueio do WAF responde400. - Functions: um firewall executa JavaScript, incluindo a sua própria lógica de proteção, por meio de uma instância de função que um comportamento Run Function invoca. A função declara o ambiente de execução
firewall, e ela pode negar, descartar ou responder à requisição, ou adicionar headers de requisição e de resposta. Você a escreve em Functions ou a instala pelo Azion Marketplace. Functions vem ativado em um firewall criado pela API, pela CLI ou pela página Create Firewall. Para o evento e os métodos dele, consulte Functions no Firewall, e para código funcional, consulte Functions em um firewall. - Marketplace: Radware Bot Manager e DataDome Bot Protection são instalados pelo Azion Marketplace como funções de firewall, com assinaturas próprias.
- Proteção contra DDoS: DDoS Protection mitiga ataques de negação de serviço (DoS) e de negação de serviço distribuída (DDoS) em todas as contas, sem configuração. O interruptor DDoS Protection Unmetered do firewall carrega a tag Automatically enabled in all accounts e não pode ser desativado.
- Workloads: o deployment de um workload nomeia um firewall, e um firewall pode atender a vários workloads. Uma regra pertence ao firewall em que foi criada. Clone, uma ação de linha da lista Firewalls no Azion Console, inicia um firewall como cópia de outro, incluindo as instâncias de função e as regras dele. Para saber quando compartilhar um firewall, consulte Boas práticas de Firewall.
- Interfaces: você cria e gerencia firewalls na página Firewalls do Azion Console e pela Azion API, em
/v4/workspace/firewalls. Azion CLI gerencia os firewalls com comandos comoazion create firewalleazion create firewall-rule.azion.config.jsdeclara um firewall e as regras dele para que Azion CLI os crie, como mostra Vincule um rule set no azion.config.js. A instalação de uma função pelo Azion Marketplace é feita no Azion Console. - Observabilidade: nenhum header de resposta nomeia o firewall ou a regra que decidiu. Toda resposta carrega um header
x-azion-request-id, que a página de erro padrão da Azion repete. Com a configuração Debug Rules do firewall ativada, Real-Time Events e Data Stream mostram as regras que uma requisição executou, no campo$traceback. A configuração vem desativada por padrão. - Limites: uma regra carrega de 1 a 5 blocos de 1 a 10 critérios cada, e os argumentos de uma instância de função guardam até 100.000 bytes. Para cada limite, a resposta quando ele é ultrapassado e os limites de WAF, Network Shield e Bot Manager, consulte Limites de Firewall.
- Cobrança: Firewall é cobrado por requisições e por regras. Cada plano inclui uma quantidade de ambos, como 10 regras por firewall no Hobby e 20 no Pro, e o uso além dela é cobrado. Para os valores, consulte Preços.
- Termos: o glossário de Firewall define as palavras às quais as páginas de Firewall dão um significado específico, como critério, comportamento, rule set, network list e limite.