Buscar

Ferramentas

ModSecurity

Motor de WAF open source, hoje sob a OWASP, que aplica regras no formato SecRules ao tráfego HTTP do servidor web por meio de conectores.

  • Segurança
  • Open Source
  • Self-hosted
ModSecurity

Na versão 3, o ModSecurity é uma biblioteca em C++, a libModSecurity, que lê regras no formato SecRules e as aplica ao conteúdo HTTP de uma aplicação. Ela não roda sozinha. Um conector, publicado como projeto à parte, a liga ao servidor web, e o ModSecurity-nginx é o exemplo citado no repositório. Para as regras, o site oficial aponta o OWASP Core Rule Set, que chama de conjunto dominante de regras de WAF.

Para que serve

  • Barrar injeção de SQL e XSS com os operadores @detectSQL e @detectXSS, que usam a libinjection.
  • Aplicar o OWASP Core Rule Set ao tráfego que passa pelo Nginx.
  • Escrever regras próprias para uma aplicação específica.
  • Puxar regras de um endereço remoto com SecRemoteRules.

Como começar

Em sistemas tipo Unix, a compilação a partir do Git segue estes passos:

git clone https://github.com/owasp-modsecurity/ModSecurity ModSecurity
cd ModSecurity
git submodule update --init --recursive
./build.sh
./configure
make
sudo make install

Você vai precisar de compilador com C++17, Flex, Bison, YAJL e PCRE2. LibXML2, Lua, LMDB e MaxMind DB são opcionais. Depois compile o conector do seu servidor e aponte para os arquivos de regra. A wiki do projeto traz receitas por distribuição, e o Windows tem instruções próprias. Para Apache, a versão 2 continua mantida num ramo separado.

Licença e custo

Nenhuma parte é paga. O repositório usa a Apache 2.0, cujas condições aparecem na hora de redistribuir o motor: a cópia da licença vai junto, as notas de copyright e o NOTICE ficam como estão, e cada arquivo mudado ganha um aviso da alteração. O patrocínio da Trustwave ao desenvolvimento terminou em 1º de julho de 2024. Segundo o site, a OWASP agora conduz o projeto e aceita patrocinadores.

Quando vale a pena

Com Nginx ou Apache já em produção, o ModSecurity dá controle fino sobre cada regra sem trocar de servidor. Em troca, pede tempo para compilar, ajustar o Core Rule Set à aplicação e revisar bloqueios indevidos. O BunkerWeb entrega o mesmo motor já embalado, com painel e o Core Rule Set integrado. O CrowdSec carrega o mesmo conjunto de regras no módulo AppSec, baseado no Coraza.