Implementação de WAF mod_security e integração com Graylog utilizando Filebeat e Logstash
Instalar e configurar um WAF utilizando mod_security em um servidor de proxy reverso para bloquear acessos maliciosos. Também é mostrado como integrar os logs gerados com o Graylog, a fim de obter uma melhor visibilidade dos ataques. Essa integração é feita com FileBeat e Logstash e o tratamento dos dados com o projeto logstash-modsecurity.
Parte 5: Integração com o Graylog
Caso tenha conseguido configurar corretamente o mod_security, Filebeat e o Logstash basta agora configurar o Graylog para receber os logs já organizados do mod_security. Para isso, acesse a interface do Graylog e vá em System>Inputs e crie um input do tipo GELF UDP, como na imagem abaixo:
Nas configurações que aparecerão, dê um nome, configure uma porta (ex: 12200) para receber os logs e utilize a opção Override source para alterar o valor do campo source para ser sempre ?modsecurity?, facilitando encontrar os logs depois no Graylog. Demais configurações podem ser a padrão:
Depois de criado, clique no botão Show received messages do input, para ver as mensagens que chegarem ao Graylog:
Mas nenhuma mensagem vai chegar, visto que o Logstash e o Graylog estão em servidores diferentes e o servidor do Graylog não foi configurado para receber dados na porta que foi configurada no Graylog. Libere a porta 12200/UDP no firewalld do servidor com os seguintes comandos:
sudo firewall-cmd --reload
Pronto, a princípio logs do Logstash devem chegar ao Graylog. Para forçar isso, execute a linha abaixo novamente, substituindo pelo endereço do seu sistema web protegido pelo mod_security. Isso irá criar uma requisição que parece maliciosa, disparando o mod_security:
sudo curl -s -o /dev/null -w '%{http_code}' " teste.com.br?username=1'%20or%20'1'%20=%20'"
Depois de algum tempo o Graylog deve receber um log do Logstash e o listar na tela, já que foi configurado anteriormente para ele listar os dados recebidos do input criado especificamente para o modsecurity: Nesse ponto, você já tem toda a instalação e configuração funcional! Como passo seguinte pode-se ainda tentar criar extractors para retirar mais informações úteis dos logs recebidos do mod_security e muito mais, aproveitando todas as funcionalidades do Graylog.

sudo firewall-cmd --reload
Pronto, a princípio logs do Logstash devem chegar ao Graylog. Para forçar isso, execute a linha abaixo novamente, substituindo pelo endereço do seu sistema web protegido pelo mod_security. Isso irá criar uma requisição que parece maliciosa, disparando o mod_security:
sudo curl -s -o /dev/null -w '%{http_code}' " teste.com.br?username=1'%20or%20'1'%20=%20'"
Depois de algum tempo o Graylog deve receber um log do Logstash e o listar na tela, já que foi configurado anteriormente para ele listar os dados recebidos do input criado especificamente para o modsecurity: Nesse ponto, você já tem toda a instalação e configuração funcional! Como passo seguinte pode-se ainda tentar criar extractors para retirar mais informações úteis dos logs recebidos do mod_security e muito mais, aproveitando todas as funcionalidades do Graylog.
Primeiramente obrigado pelo artigo.
Uma observação:
Na parte "IncludeOptional modsecurity.d/rules/*.conf" seria "IncludeOptional modsecurity.d/owasp-modsecurity-crs/rules/*.conf"
Na parte "Ainda no arquivo /etc/httpd/modsecurity.d/mod_security.conf verifique..." o caminho do arquivo está errado. Seria o caminho /etc/httpd/conf.d/mod_security.conf
Atenciosamente,
x.x
run rabbit run