Web Application Firewall
Web Application Firewall (WAF) é um módulo do Azion Edge Firewall desenvolvido para proteger edge applications contra ameaças do tipo SQL Injections, Remote File Inclusion (RFI), Cross-Site Scripting (XSS) e outras vulnerabilidades da web. O WAF analisa requisições HTTP e HTTPS, detecta e bloqueia atividades maliciosas, antes que elas cheguem à sua infraestrutura, origem ou servidor.
O WAF opera na sétima camada do modelo OSI, a camada da aplicação, onde ocorre o relacionamento entre as aplicações web, seus respectivos serviços de rede e dados de usuários. Funciona também como uma barreira para filtrar e monitorar o tráfego entre sua aplicação e as requisições da internet.
O Web Application Firewall se baseia em uma metodologia de pontuação por requisição. Cada requisição HTTP/HTTPS é comparada a um conjunto rigoroso e detalhado de padrões de aplicações e recebe uma pontuação associada a determinada família de ameaças. De acordo com a pontuação recebida pela requisição, ela pode ser liberada ou bloqueada diretamente nos edge nodes da Azion, antes que a ameaça atinja sua origem ou cause qualquer tipo de dano. O nível de sensibilidade para cada família de ameaças pode ser customizado a qualquer momento.
O WAF pode operar em dois modos: Learning ou Blocking. Você pode definir o modo em uma regra no Rules Engine com o comportamento Set WAF Rule Set ou via API da Azion.
Você pode usar o modo Learning para evitar o bloqueio de requisições legítimas e mau funcionamento de sua aplicação. Nesta etapa, o WAF identifica os comportamentos legítimos de sua aplicação, colocando-os em uma allowlist.
Se tráfego interno, testes e falsos positivos estiverem sendo bloqueados pelo WAF, você também pode ajustar suas configurações com o recurso Tuning, disponível dentro de uma configuração do WAF.
Implementação
Escopo | Fonte |
---|---|
Criar WAF rule set | Como criar um WAF rule set |
Modo WAF | Como verificar o modo do seu WAF |
Score WAF | Como encontrar o score de requisições bloqueadas pelo WAF |
Integrar WAF com SIEMs | Como integrar WAF com SIEMs |
Pré-requisitos
Para configurar um WAF Rule Set, que é como uma configuração de WAF é chamada, você precisa ter uma configuração de Edge Firewall com o módulo Web Application Firewall ativado.
Consulte o guia configurar edge firewallWAF Main Settings
A seção de Main Settings é configurada ativando a proteção contra famílias específicas de ameaças: SQL Injection, Remote File Inclusions (RFI), Directory Traversal, Cross-Site Scripting (XSS), File upload, Evading tricks, Unwanted Access e Identified Attack, e definindo um nível de sensibilidade: Lowest, Low, Medium, High e Highest.
A tabela de Threat Type Configuration categoriza as ameaças em famílias, de acordo com o propósito do ataque.
Saiba mais sobre os tipos de ameaçaConsulte o guia sobre criar rule set
Você também pode ativar ou desativar a proteção para cada família de ameaças individualmente através do switch Active.
Os níveis de Sensitivity define o rigor com o qual o WAF considera uma requisição como uma ameaça.
Cada nível de sensibilidade tolera um número definido de indícios de ameaças e o score do WAF representa essa quantidade de indícios de ameaças. Quanto mais flexível é o nível de sensibilidade, maior é o score do WAF que ela aceita. Já as sensibilidades mais rígidas aceitam apenas requisições que somaram poucos indícios de ameaças.
Saiba mais sobre níveis de sensibilidadeWAF Tuning
WAF Tuning é uma ferramenta analítica, que mostra os IPs bloqueados por possível tentativa de ataque. Na aba Tuning, é onde você pode flexibilizar o funcionamento do WAF. Os IPs bloqueados são exibidos de forma agrupada na tabela Filter Possible Attacks e é possível filtrar por Domínio, Data, Network Lists, IP e país.
Consulte o guia fazer tuning do WAFNos filtros abaixo de Filter Possible Attacks, informe o domínio (obrigatório), a data, quais Network Lists prefere utilizar, quais IPs está investigando e o país de origem da requisição.
Ao clicar no botão Apply filter, uma lista de Possible Attacks será exibida. Essa lista conta com os campos Rule ID, Description, Hits, IPs, Countries, Top 10 IPs Address e Top 10 Countries.
Saiba mais sobre Custom Allowed Rules do WAFAllowed Rules
Essa aba permite a criação, edição e deleção de Allowed Rules.
Allowed Rules são compostas pelos seguintes campos:
Campo | Descrição |
---|---|
Rule ID | ID numérico exclusivo da regra WAF |
Rule Description | Descrição automática do que a regra é/faz |
Reason | Campo de descrição textual alternativa |
URI | Uniform Resource Identifier (URI) é o caminho (path) após o domínio na URL |
Path | Delimita o escopo de atuação da regra. Se especificado, restringe a aplicação da Match Zone somente ao path definido |
Match Zone | Partes ou campos da requisição que serão comparados com o match pattern . Saiba mais sobre cada opção na tabela de Match Zones abaixo |
Active | Switch de ativação da Allowed Rule |
Opções de Match Zone
O menu suspenso da Match Zone abre as opções disponíveis para preencher este campo. Cada opção tem um comportamento específico, conforme explicado na tabela abaixo.
Campo | Descrição | Exemplo para o campo | Matches on |
---|---|---|---|
Conditional Query String | Match pattern será comparado com os parâmetros da string de consulta da requisição | ?id=123&user=admin | Você pode selecionar para adicionar ou o nome da chave ou o valor na allowed rule |
Conditional Request Body | Match pattern será comparado com os cabeçalhos HTTP da requisição sob certas condições | {"username": "admin", "password": "123456"} | Você pode selecionar para adicionar ou o nome da chave ou o valor na allowed rule |
Conditional Request Header | Match pattern será comparado com os cabeçalhos HTTP da requisição sob certas condições | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 | Você pode selecionar para adicionar ou o nome do cabeçalho ou o valor na allowed rule |
File Name (Multipart body) | Match pattern será comparado com o nome dos arquivos em multipart POSTs | - | - |
Path | Match pattern será comparado com o caminho (path) da requisição | - | - |
Query String | Match pattern será comparado à string de consulta (query string), também chamada de GET arguments | - | Você pode selecionar para adicionar ou o nome da chave ou o valor na allowed rule |
Raw Body | Match pattern será comparado ao body não interpretado (unparsed body) de uma requisição | - | - |
Request Body | Match pattern será comparado ao body de um POST, também chamado de POST arguments | - | Você pode selecionar para adicionar ou o nome da chave ou o valor na allowed rule |
Request Header | Match pattern será comparado aos headers HTTP da requisição | - | Você pode selecionar para adicionar ou o nome do cabeçalho ou o valor na allowed rule |
Limites
Estes são os limites default:
Escopo | Limite |
---|---|
Tamanho de logs de Debug Rules | 1.5 kB |
Consultas de WAF Tuning | 3 dias |