Há 6 meses iniciei uma pesquisa que visa encontrar um meio termo entre segurança e performance para servidores Web. Isso porque a instalação do Web Application Firewalls (Wafs), como o Mod Security, em um apache ou Nginx causa severas perdas de performances, principalmente em ambientes que suportam mais de 5 mil conexões HTTP estabelecidas ao mesmo tempo.

Fizemos, eu e mais alguns colegas, uma série parametrizações, compilações e testes de carga com o objetivo de encontrar os melhores parâmetros para o conjunto Waf + Web server (Apache ou Nginx).

Já é de conhecimento que o Nginx possui uma performance 4x melhor que se comparado com o Apache, mesmo utilizando o Waf com suas centenas de regras.

Para compensar esta perda de performance, nós utilizamos o Varnish e um conjunto de regras para cuidar do cache estático de sites e portais. Vale lembrar que esta solução só trabalha com o protocolo HTTP.

Cloud Computing entra como solução barata e rápida para testarmos todos os ambientes o mais real possível, tendo a digital ocean como parceria. Eles cobram US$ 5.00 mês por máquina. E isso ajuda e muita:)

Acontece que o Varnish mais do que abusa do Regex, coisa que o Mod Security também faz. Por este motivo que há dois interessantes projetos que visam a migração de regras do Mod Security para a linguagem Varnish Configuration Language – Security.vcl e o VSF – Varnish Security Firewall.

Problemas que encontramos em ambos os projetos:

  • Regras desatualizadas
  • Não é focado em um ambiente – Joomla, WordPress e outros
  • Não é focado em performance

A migração de regras do Mod Security by Owasp pode ser feita utilizando o script 2vcl.pl, este que é um script disponibilizado em ambos os projetos citados acima, mas há sérias ressalvas quanto a sua utilização, já que ele é limitado em diversos parses. Este problema aumenta quanto utilizamos as regras pagas da TrustWave ou da Atomic Corp, sendo esta últimas a preferida em utilização de nossos testes

Estamos desenvolvendo um script capaz de automatizar ao máximo o próximo este processo, mas focando em ambientes – wordpress, joomla e outros.

Sem o script ainda pronto, o jeito foi fazer esta análise manualmente e testar.

Os resultados foram muito bons até agora. O Varnish + regras modificadas do modsec para ele são 7x mais rápido que um nginx+modsec.

Mas nem tudo são flores. Encontramos alguns problemas de segurança devido a erros de migração de regras, sendo necessário a revisão de uma série de pontos.

Conclusão:

O Varnish + regras modificadas do Mod Security vem demonstrando melhores resultados, tanto de performance como também de segurança, do que se comparado com o Webserver+Waf(modsec).

Estou adicionando esta pesquisa a versão 2 do curso de segurança focada em servidores web, tendo como foco nginx + varnish + apache + modsec + naxsi (waf para nginx). 🙂