ModSecurity: Um Guia Abrangente
home > ferramentas de segurança > este artigo
– Introdução –

Vivemos em um mundo digital onde ataques cibernéticos estão em constante evolução, tornando a segurança das aplicações web uma necessidade absoluta. Aqui entram os Firewalls de Aplicação Web (WAFs), a primeira linha de defesa contra tráfego malicioso. Entre as soluções disponíveis, o ModSecurity se destaca como um WAF open source, poderoso e altamente personalizável. Este guia, cobrirá desde a instalação até a integração com outras ferramentas de segurança.
O que é um WAF e por que você precisa de um?
Um WAF (Web Application Firewall) monitora, filtra e bloqueia tráfego HTTP/HTTPS malicioso antes que ele atinja sua aplicação. Ele é essencial para proteger contra ameaças como:
- SQL Injection
- Cross-Site Scripting (XSS)
- Cross-Site Request Forgery (CSRF)
- Remote File Inclusion (RFI)
- Ataques de negação de serviço (DoS e DDoS)
Tipos de WAFs
- Baseados em nuvem: Fáceis de configurar e escaláveis, ideais para aplicações SaaS.
- Aparelhos físicos (hardware WAFs): Alto desempenho, indicados para grandes corporações com alto tráfego.
- Open Source (ModSecurity): Flexível, altamente customizável e sem custo de licenciamento.
ModSecurity: Uma Visão Detalhada
O ModSecurity é um dos WAFs open source mais populares e pode ser integrado ao Apache, Nginx e IIS. Ele opera analisando requisições HTTP/HTTPS em tempo real e aplicando regras de segurança para bloquear tráfego malicioso.
Principais Características
- Regras personalizáveis – Você pode criar ou modificar regras para atender às necessidades específicas da sua aplicação.
- Compatibilidade com múltiplas plataformas – Funciona com os servidores web mais populares.
- Monitoramento e logs detalhados – Fornece visibilidade sobre tentativas de ataque e tráfego suspeito.
Implementação do ModSecurity: Guia Passo a Passo
1. Instalação
A instalação varia conforme o servidor web:
- Apache:
sudo apt install libapache2-mod-security2
- Nginx: Compilação manual ou pacotes de terceiros.
Compilação manual:
git clone --depth 1 https://github.com/SpiderLabs/ModSecurity.git
cd ModSecurity
git submodule init
./build.sh
./configure
make
sudo make install
Pacotes de terceiros:
Dependendo da distribuição, podem existir pacotes já prontos, como os do repositório do EPEL para CentOS.
- IIS: Disponível como módulo da Microsoft. (Release v2.9.7)
2. Configuração Básica
O ModSecurity pode operar em modo de detecção (somente alerta) ou modo de bloqueio. A configuração principal está em: /etc/modsecurity/modsecurity.conf
Ative o modo de segurança estrito:
SecRuleEngine On
3. Implementação do OWASP CRS
O OWASP Core Rule Set (CRS) é um conjunto de regras pré-configuradas que protege contra ameaças conhecidas.
Instalação:
sudo apt install modsecurity-crs
Algumas distribuições exigem a instalação manual do repositório!
Habilite as regras no arquivo de configuração:
Include /usr/share/modsecurity-crs/crs-setup.conf
Include /usr/share/modsecurity-crs/rules/*.conf
4. Criando Regras Personalizadas
Exemplo de regra para bloquear tentativas de injeção SQL:
SecRule ARGS "(?:union.*select.*from)" "id:1001,deny,status:403"
Essa regra verifica consultas maliciosas nos parâmetros e responde com erro 403 Forbidden.
Exemplo de regra para bloquear ataques de Cross-Site Scripting (XSS):
SecRule ARGS "(<script>|javascript:|onerror=|onload=)" "id:1002,deny,status:403"
Essa regra detecta tentativas de injetar código JavaScript malicioso e bloqueia a requisição.
5. Monitoramento e Logs
O ModSecurity gera logs detalhados em: /var/log/modsecurity/audit.log
Exemplo de entrada no log:
Message: Warning. Pattern match "union select" at ARGS:query.
Para análises mais profundas, ferramentas como ELK Stack e Splunk podem ser utilizadas.
Tópicos Avançados
1. Otimização de desempenho
Dicas para minimizar o impacto do ModSecurity no tempo de resposta da aplicação.
- Utilizar cache para respostas repetitivas: Para configurar cache no ModSecurity, pode-se usar um proxy reverso como o Varnish ou configurar o Nginx da seguinte forma:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=cache_zone:10m inactive=60m;
server {
location / {
proxy_cache cache_zone;
proxy_pass http://backend;
}
}
- Ajuste de regras e configurações para otimizar o desempenho.
Atenção ao Consumo de Memória: O uso de cache pode reduzir a latência e melhorar o desempenho, mas também aumenta o consumo de memória. Para evitar impactos negativos, ajuste os parâmetros de armazenamento e monitore o uso de recursos com ferramentas como “htop”
ou “free -m”
.
Para limitar o consumo de memória do cache, considere definir restrições, como:
proxy_cache_min_uses 3;
proxy_cache_lock on;
proxy_cache_valid 200 10m;
Além disso, o ModSecurity Performance Tuning Guide fornece boas práticas para otimizar regras e reduzir o impacto no desempenho.
2. Integração com SIEMs e IDS
Os logs do ModSecurity podem ser enviados para sistemas como Wazuh, Splunk ou Graylog, permitindo correlação com outras fontes de dados.
Enviando Logs do ModSecurity para Wazuh/Splunk via Syslog
Para integrar os logs do ModSecurity com sistemas de monitoramento como Wazuh ou Splunk, podemos utilizar o Syslog:
2.1. Configuração no ModSecurity
Edite o arquivo de configuração do ModSecurity (/etc/modsecurity/modsecurity.conf) e habilite o envio dos logs:
SecAuditEngine RelevantOnly
SecAuditLogType Serial
SecAuditLog /var/log/modsecurity/audit.log
SecAuditLogFormat JSON
SecAuditLogStorageDir /var/log/modsecurity/
SecAuditLogRelevantStatus "^(4|5)"
SecAuditLogParts ABIJDEFHZ
SecAuditLog Syslog
2.2. Configuração do Rsyslog
Adicione a seguinte linha ao /etc/rsyslog.conf para encaminhar os logs:
Para Wazuh:
:msg, contains, "ModSecurity" @IP_DO_WAZUH:514
Para Splunk:
:msg, contains, "ModSecurity" @IP_DO_SPLUNK:514
Reinicie o serviço para aplicar as mudanças:
sudo systemctl restart rsyslog
2.3. Configuração no Wazuh/Splunk
No Wazuh, os logs podem ser analisados via ruleset do ModSecurity. No Splunk, basta configurar uma input UDP na porta 514 para receber os logs.
3. Conformidade e Regulamentação
O ModSecurity pode ajudar no cumprimento de normas como:
- PCI DSS – Proteção de dados de cartões de crédito.
- GDPR – Privacidade de dados.
4. ModSecurity e DevOps
- Integração do ModSecurity em pipelines de CI/CD para automação da segurança.
Exemplo de pipeline de CI/CD com ModSecurity usando GitHub Actions:
jobs:
security_tests:
runs-on: ubuntu-latest
steps:
- name: Checkout código
uses: actions/checkout@v2
- name: Configurar ModSecurity
run: sudo apt install libapache2-mod-security2
- name: Executar testes de segurança
run:
sudo service apache2 restart
curl -I http://localhost | grep ModSecurity
Conclusão
O ModSecurity é uma ferramenta essencial para fortalecer a segurança de aplicações web. Com este guia, você pode implementá-lo, configurá-lo e otimizá-lo para proteger seus sistemas contra ataques cibernéticos.
Atualizado em 13/03/2025.
Recursos Adicionais
🔗 Documentação Oficial do ModSecurity
🔗 OWASP Core Rule Set
🔗 Guia de Logs do ModSecurity
📖 Glossário:
- WAF (Web Application Firewall): Um firewall de aplicação web que monitora, filtra e bloqueia tráfego HTTP/HTTPS malicioso antes que ele atinja sua aplicação. É essencial para proteger contra ameaças como SQL Injection, XSS, CSRF, entre outras.
- SQL Injection: Técnica de ataque que explora vulnerabilidades em bancos de dados, permitindo que um invasor execute comandos SQL maliciosos. Isso pode resultar em acesso não autorizado a dados sensíveis.
- Cross-Site Scripting (XSS): Tipo de vulnerabilidade de segurança que permite a um invasor injetar scripts maliciosos em páginas web visualizadas por outros usuários. Isso pode levar ao roubo de cookies, sessões, ou redirecionamento para sites maliciosos.
- Cross-Site Request Forgery (CSRF): Ataque que engana um usuário autenticado para realizar ações indesejadas em uma aplicação web, sem o seu conhecimento ou consentimento.
- Remote File Inclusion (RFI): Técnica de ataque que permite a um invasor incluir arquivos remotos em um servidor web, potencialmente levando à execução de código malicioso.
- Denial of Service (DoS): Ataque que visa tornar um serviço ou recurso indisponível para seus usuários legítimos, geralmente sobrecarregando o sistema com tráfego excessivo.
- Distributed Denial of Service (DDoS): Versão distribuída de um ataque DoS, onde múltiplos sistemas comprometidos são usados para lançar o ataque, tornando-o mais difícil de mitigar.
- OWASP Core Rule Set (CRS): Conjunto de regras pré-configuradas para o ModSecurity que protege contra uma variedade de ameaças conhecidas. É mantido pela Open Web Application Security Project (OWASP).
- SIEM (Security Information and Event Management): Sistema que coleta, analisa e correlaciona eventos de segurança de várias fontes para fornecer uma visão abrangente da segurança de uma organização.
- PCI DSS (Payment Card Industry Data Security Standard): Conjunto de normas de segurança projetadas para garantir que todas as empresas que processam, armazenam ou transmitem informações de cartões de crédito mantenham um ambiente seguro.
- GDPR (General Data Protection Regulation): Regulamento da União Europeia que protege a privacidade e os dados pessoais dos cidadãos, impondo requisitos rigorosos sobre como os dados são coletados, armazenados e processados.
- CI/CD (Continuous Integration/Continuous Deployment): Práticas de desenvolvimento de software que visam integrar e entregar código de forma contínua e automatizada, melhorando a eficiência e a qualidade do software.
- Proxy Reverso: Servidor que atua como intermediário para requisições de clientes, encaminhando-as para servidores backend. Pode ser usado para balanceamento de carga, cache e segurança.
- Cache: Mecanismo de armazenamento temporário de dados para reduzir o tempo de resposta e a carga no servidor, melhorando o desempenho da aplicação.
- Logs: Registros de eventos gerados por sistemas e aplicações, usados para monitoramento, análise e solução de problemas.
- Regras Personalizadas: Conjunto de diretivas configuradas pelo usuário para definir como o ModSecurity deve responder a diferentes tipos de tráfego e ameaças.
- ModSecurity: Um firewall de aplicação web open source que protege aplicações web contra uma variedade de ataques, oferecendo flexibilidade e personalização através de regras.
- Apache: Servidor web amplamente utilizado que suporta uma variedade de módulos, incluindo o ModSecurity.
- Nginx: Servidor web e proxy reverso conhecido por sua alta performance e baixo consumo de recursos, também compatível com o ModSecurity.
- IIS (Internet Information Services): Servidor web da Microsoft, que também pode ser protegido com o ModSecurity.
- ELK Stack: Conjunto de ferramentas de software (Elasticsearch, Logstash, Kibana) usadas para coleta, armazenamento e análise de logs.
- Splunk: Plataforma de análise de dados que permite coletar, indexar e correlacionar logs em tempo real, fornecendo insights sobre a segurança e o desempenho de sistemas.
- Graylog: Ferramenta de gerenciamento de logs que ajuda a coletar, armazenar e analisar grandes volumes de dados de log.
- Varnish: Proxy reverso de alto desempenho usado para acelerar o tempo de resposta de aplicações web através de cache.
- Rsyslog: Sistema de log avançado usado para encaminhar logs para diferentes destinos, como servidores remotos ou ferramentas de análise.
- GitHub Actions: Ferramenta de automação de CI/CD integrada ao GitHub, permitindo a execução de pipelines de integração e entrega contínua.