No ano passado, lançamos o Nemesida WAF Free, um módulo dinâmico para NGINX que bloqueia ataques a aplicações web. Ao contrário da versão comercial, que é baseada em aprendizado de máquina, a versão gratuita analisa as solicitações apenas pelo método de assinatura.
Características do lançamento do Nemesida WAF 4.0.129
Antes da versão atual, o módulo dinâmico Nemesida WAF suportava apenas Nginx Stable 1.12, 1.14 e 1.16. A nova versão adiciona suporte para Nginx Mainline, a partir de 1.17, e Nginx Plus, a partir de 1.15.10 (R18).
Por que fazer outro WAF?
NAXSI e mod_security são provavelmente os módulos WAF gratuitos mais populares, e mod_security é promovido ativamente pelo Nginx, embora inicialmente tenha sido usado apenas no Apache2. Ambas as soluções são gratuitas, de código aberto e possuem muitos usuários em todo o mundo. Para mod_security, conjuntos de assinaturas gratuitos e comerciais estão disponíveis por US$ 500 por ano, para NAXSI há um conjunto gratuito de assinaturas prontas para uso, e você também pode encontrar conjuntos adicionais de regras, como doxsi.
Este ano testamos o funcionamento do NAXSI e Nemesida WAF Free. Resumidamente sobre os resultados:
- NAXSI não faz decodificação dupla de URL em cookies
- O NAXSI leva muito tempo para configurar - por padrão, as configurações de regra padrão bloquearão a maioria das solicitações ao trabalhar com uma aplicação web (autorização, edição de perfil ou material, participação em pesquisas, etc.) e é necessário gerar listas de exceções , o que tem um efeito negativo na segurança. Nemesida WAF Free com configurações padrão não executou um único falso positivo ao trabalhar com o site.
- o número de ataques perdidos para NAXSI é muitas vezes maior, etc.
Apesar das deficiências, o NAXSI e o mod_security têm pelo menos duas vantagens - código aberto e um grande número de usuários. Apoiamos a ideia de divulgar o código fonte, mas ainda não podemos fazer isso devido a possíveis problemas de “pirataria” da versão comercial, mas para compensar esta lacuna, estamos divulgando integralmente o conteúdo do conjunto de assinaturas. Valorizamos a privacidade e sugerimos que você verifique isso usando um servidor proxy.
Recursos do Nemesida WAF grátis:
- banco de dados de assinaturas de alta qualidade com um número mínimo de falsos positivos e falsos negativos.
- instalação e atualização do repositório (é rápido e prático);
- eventos simples e compreensíveis sobre incidentes, e não uma “bagunça” como o NAXSI;
- totalmente gratuito, não tem restrições quanto à quantidade de tráfego, hosts virtuais, etc.
Concluindo, darei diversas consultas para avaliar o desempenho do WAF (recomenda-se utilizá-lo em cada uma das zonas: URL, ARGS, Cabeçalhos e Corpo):
')) un","ion se","lect 1,2,3,4,5,6,7,8,9,0,11#"]
')) union/**/select/**/1,/**/2,/**/3,/**/4,/**/5,/**/6,/**/7,/**/8,/**/9,/**/'some_text',/**/11#"]
union(select(1),2,3,4,5,6,7,8,9,0x70656e746573746974,11)#"]
')) union+/*!select*/ (1),(2),(3),(4),(5),(6),(7),(8),(9),(0x70656e746573746974),(11)#"]
')) /*!u%6eion*/ /*!se%6cect*/ (1),(2),(3),(4),(5),(6),(7),(8),(9.),(0x70656e746573746974),(11)#"]
')) %2f**%2funion%2f**%2fselect (1),(2),(3),(4),(5),(6),(7),(8),(9),(0x70656e746573746974),(11)#"]
%5B%221807182982%27%29%29%20uni%22%2C%22on
%20sel%22%2C%22ect%201%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C%2some_text%27%2C11%23%22%5D
cat /et?/pa?swd
cat /et'c/pa'ss'wd
cat /et*/pa**wd
e'c'ho 'swd test 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, provavelmente o WAF perderá o ataque real. Antes de usar os exemplos, certifique-se de que o WAF não esteja bloqueando solicitações legítimas.
Fonte: habr.com