
No ano passado, lançamos o Nemesida WAF Free — um módulo dinâmico para NGINX que bloqueia ataques a aplicações web. Diferente da versão comercial, que se baseia em aprendizado de máquina, a versão gratuita analisa as requisições apenas pelo método de assinatura.
Recursos do lançamento Nemesida WAF 4.0.129
Até o lançamento atual, o módulo dinâmico Nemesida WAF suportava apenas Nginx Stable 1.12, 1.14 e 1.16. Na nova versão, foi adicionada a compatibilidade com o Nginx Mainline, a partir da versão 1.17, e Nginx Plus, a partir da versão 1.15.10 (R18).
Por que criar mais um WAF?
NAXSI e mod_security são, provavelmente, os módulos WAF gratuitos mais populares, sendo que o mod_security é ativamente promovido pela equipe do Nginx, embora inicialmente tenha sido utilizado apenas no Apache2. Ambas as soluções são gratuitas, de código aberto e têm muitos usuários em todo o mundo. Para o mod_security, existem conjuntos de assinaturas gratuitos e comerciais, custando $500 por ano; já para o NAXSI, existe um conjunto de assinaturas 'pronto para uso', além de outros conjuntos de regras, como o doxsi.
Neste ano, realizamos testes com o NAXSI e o Nemesida WAF Free. Em resumo dos resultados:
- NAXSI não executa duplo URL-decode em cookies
- O NAXSI tem uma configuração muito demorada — por padrão, as configurações de regras bloqueiam a maior parte das requisições ao trabalhar com aplicações web (como autenticação, edição de perfil ou material, participação em pesquisas etc.), sendo necessário gerar listas de exceção, o que prejudica a segurança. O Nemesida WAF Free, com as configurações padrão, não gerou nenhum falso positivo durante o uso do site.
- o número de ataques negligenciados pelo NAXSI é significativamente maior, etc.
Apesar das desvantagens, o NAXSI e o mod_security têm, pelo menos, duas vantagens — código aberto e um grande número de usuários. Apoiamo-nos na ideia de revelar o código fonte, mas ainda não podemos fazer isso devido a possíveis problemas com 'pirataria' da versão comercial; contudo, para compensar essa desvantagem, revelamos completamente o conteúdo do conjunto de assinaturas. Valorizamos a privacidade e convidamos você a verificar por si mesmo por meio de proxy-servidor.
Características do Nemesida WAF Free:
- uma base de assinaturas de alta qualidade com um número mínimo de Falsos Positivos e Falsos Negativos.
- instalação e atualização a partir do repositório (isso é rápido e conveniente);
- eventos de incidentes simples e claros, e não uma 'confusão', como no NAXSI;
- totalmente gratuito, sem limitações quanto à quantidade de tráfego, hosts virtuais, etc.
Para finalizar, apresentarei algumas solicitações para avaliar o funcionamento do WAF (recomendado para uso em cada uma das zonas: URL, ARGS, Headers & Body):
')) união se','lecionar 1,2,3,4,5,6,7,8,9,0,11#"]
')) união/**/selecionar/**/1,/**/2,/**/3,/**/4,/**/5,/**/6,/**/7,/**/8,/**/9,/**/'some_text',/**/11#"]
união(selecionar(1),2,3,4,5,6,7,8,9,0x70656e746573746974,11)#"]
')) união+ /*!selecionar*/ (1),(2),(3),(4),(5),(6),(7),(8),(9),(0x70656e746573746974),(11)#"]
')) *eion* / *seect* / (1),(2),(3),(4),(5),(6),(7),(8),(9.),(0x70656e746573746974),(11)#"]
')) **union**select (1),(2),(3),(4),(5),(6),(7),(8),(9),(0x70656e746573746974),(11)#"]
1807182982union
select123456789%2some_text11
cat /et?/?pa?swd
cat /et'c/pas's'wd
cat /et*/pa**wd
e'c'ho 'swd teste pentest' |awk '{print "cat /etc/pas"$1}' |bas'h
cat /etc/passwd
cat$u+/etc$u/passwd$u
<svg/onload=alert()//
Se as solicitações não forem bloqueadas, é provável que o WAF também não consiga impedir um ataque real. Antes de usar os exemplos, verifique se o WAF não bloqueia solicitações legítimas.
Fonte: habr.com
