Protegendo seu Site e Economizando Banda com WAF

Quando alguém precisa descobrir o IP de um computador é quase certo que utilizará o famoso site MeuIP.com.br. O site tem mais de 20 anos de existência e é, de longe, o mais usado para essa simples, porém importante, funcionalidade.

Nos últimos meses este site estava tendo um problema muito grande de gastos com banda, desproporcional ao número de visitantes que recebia. Após alguns dias analisando o problema, os administradores chegaram a conclusão de que havia um número excessivo de acessos de robôs, crawlers e outros tipos de user agents maliciosos, e estes estavam consumindo muita banda e processamento do servidor (user agent é o identificador dos navegadores que acessam seu site).

Foi então que o MeuIP decidiu utilizar um WAF (Web Application Firewall) para bloquear esses acessos indesejados. Eles utilizaram o sistema da GoCache para isso e o sucesso foi tamanho que resolveram dividir conosco, através deste artigo, os resultados que conseguiram. 

Acesso de User Agents indesejados ao site:

Após analisar profundamente os acessos ao site, os administradores notaram que haviam milhares de acessos onde o user agent continha strings como: Indy, Sinapse, curl, Python, Delphi, Java, Ruby e mesmo vazia.

Aparentemente isso ocorria porque inúmeros aplicativos estavam usando o servidor, indevidamente, para resolver o endereço IP dos computadores onde estavam rodando. O problema é que o site não estava preparado para isso, o que acabou por sobrecarregar os servidores e consumir muita banda.

A solução foi utilizar o WAF da GoCache para bloquear esses acessos indesejados, veja como:

 

Configurando o Web Application Firewall:

1. Nível de Segurança:

O primeiro ponto a ser configurado foi em regras “Geral” do Firewall. Conforme pode ver abaixo, foi escolhido o nível de segurança Alto, e modo de Simulação.

O modo de simulação costuma ser inicialmente utilizado para ter certeza de que não estará bloqueando acessos que gostaria que fossem permitidos. Após simularmos e termos certeza de que está tudo certo, muda-se o Modo de Segurança de “Simular” para “Bloquear”.

 

Em apenas alguns segundos após habilitar essa regra no firewall, dezenas de eventos de bloqueio aparecem na aba “Eventos”:

Clicando no ícone azul, do lado direito, pudemos analisar os bloqueios que seriam feitos. Veja, por exemplo, que o WAF bloqueará acesso do User Agent Indy, que é considerado um Rogue Crawler, ou seja, um Navegador malicioso, muito usado para Spam, por exemplo.

Além deste User Agent, o WAF também mostrou outros eventos de bloqueio, como User Agent Vazio ou outros acessos suspeitos.

No entanto, ainda havia vários outros User Agent que gostaríamos de bloquear. Poderíamos adicionar outras regras ao Firewall, uma para cada User Agent que desejássemos bloquear. No entanto, optamos por utilizar as SmartRules do Firewall, como verá abaixo.

2. Regras SmartRules do Firewall:

Ao invés de colocarmos uma regra para cada User Agent que desejávamos bloquear, utilizamos apenas uma SmartRule para WAF, bloqueando todos os agentes. (Para usar, clique em SmartRules e depois Firewall).

Isso ocorre porque nas SmartRules podemos usar expressões regulares, como os símbolos: * = significando tudo, & = significando ‘e’, | = significando ‘ou’.

Veja a nossa regra de bloqueio:

curl*|Wget*|Python*|Synapse*|Indy*|DynDNS*|Java*|ELinks*|Delphi*|Lynx*|DDNS*|DirectUpdate*|Test*|Ruby*|AAA*

Inicialmente parece um pouco assustadora, mas ela é bem simples e foi capaz de bloquear praticamente todos os User Agents indesejados.

É importante lembrar que, para que todas as configurações façam efeito, você precisa trocar o Modo de Segurança do Firewall, do modo “Simular” para o modo “Bloquear”.

 

Economia de Banda após o uso do WAF:

Imediatamente após proteger o site com o Web Application Firewall e bloquear os User Agents com a SmartRule, ocorreu uma queda surpreendente no consumo de banda. Veja os gráficos do servidor que estava hospedado na AWS (Amazon).

O site estava consumindo por volta de 27MBytes a cada 5 minutos e passou a consumir pouco mais de 10MBytes. Isso representou uma economia de quase 70% de banda, muito mais do que os administradores do site esperavam.

Veja que o Gráfico de Consumo encontrado no Painel da GoCache também confirma a redução de 3 vezes na transferência de dados. (A escala é diferente do anterior e um deles está no horário de SP e outro GMT).

Também note que o tráfego na CDN se manteve igual (verde escuro) e os tráfegos no servidor (verde claro) e total (marrom) foram reduzidos. Ou seja, a CDN bloqueou o tráfego indesejado ao servidor, economizando banda e processamento.

Considerando que a banda era um dos principais gastos do site, o uso do WAF representou uma excepcional economia com da transferência de dados. Especialmente se considerar que o tráfego de dados na Amazon é bastante caro.

Por fim, além da economia de banda, o WAF também, certamente, deixou o sistema mais seguro contra outros tipos de ataques, como DDoS e Força Bruta.

Uma outra dica interessante sobre WAF é que você pode também bloquear o acesso de ataques vindos de outros países, deixando seu site ainda mais seguro. Veja como fazer isto neste artigo: Bloquear IPs de outros países.

E, para entender melhor como uma CDN pode acelerar e proteger seu site, não deixe de ver o vídeo abaixo.

[youtube https://www.youtube.com/watch?v=WKxS_spzMOE&w=640&h=360]