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.
Introdução
Problema
É um caminho sem volta a disponibilização de sistemas para acesso a partir internet por diversas empresas e órgãos. Porém a presença de um firewall simples só protege os sistemas de ataques na camada 4 ou inferior do modelo OSI. Diante disso é de suma importância a implementação de um Web Application Firewall (WAF), que é um software que monitora em tempo real as requisições feitas aos sistemas por ele protegidos, verificando se existem indícios de ataques ocultos nessas requisições, como SQL Injection, cross-site-scripting (XSS), file inclusion e outros. Caso haja indício de que a requisição contém um ataque o acesso é bloqueado. O WAF não protege o ambiente de todos os ataques possíveis, mas desempenha um papel fundamental na segurança da informação.Solução proposta
Adoção de uma solução de WAF opensource chamada mod_security, por ser a mais bem documentada na internet, mundialmente adotada e se integra naturalmente com o servidor web Apache, também muito comum e bem documentado. Além do mod_security foi adotado o mod_evasive para tratar de ataques como DDoS (Distributed Denial of Service).Também faz parte do escopo desse projeto o envio das informações geradas pelo mod_security para o servidor de logs Graylog para tratamento, visto que não é prático a utilização dos logs do mod_security como estão.
A leitura dos logs do mod_security, tratamento e envio para o Graylog será feita pelos softwares Filebeat e Logstash, escolhidos por contarem com um projeto (bitsofinfo/logstash-modsecurity) que é capaz de tratar os logs do mod_security e delimitar seus campos, facilitando a posterior utilização e leitura no Graylog.
Fluxo da informação
De forma resumida, o mod_security é instalado no servidor de proxy reverso, gera logs ao bloquear requisições maliciosas com dados como: tipo de ataque, IP do atacante, sistema atacado e outros. Por sua vez o Filebeat lê periodicamente o arquivo de logs e envia as atualizações dele para o Logstash. O software Logstash, ao receber os dados do Filebeat aplica uma série de regras de tratamento do projeto logstash-modsecurity, concatenando as linhas do log e separando-o em campos pesquisáveis e só depois, envia o log já organizado para o Graylog, que já tem uma entrada de dados configurada para receber essa informação, exibi-la e até gerar alertas por e-mail para os responsáveis caso desejado.Escopo
Nesse tutorial não iremos instalar nem configurar nenhuma VM, nem configurar o servidor de proxy reverso com apache e o Graylog. Você já deve ter essas etapas concluídas. No tutorial iremos apenas instalar e configurar os pacotes do mod_security, mod_evasive, Filebeat, Logstash, o plugin logstash-modsecurity e a integração com o Graylog.O mod_security e o mod_evasive foram instalados no servidor de proxy reverso, que atende às requisições de acesso aos sistemas web, portanto, já tem uma instalação do Apache funcionando e configurada como proxy reverso. O Filebeat e o Logstash também serão instalados no servidor de proxy reverso para facilitar a implantação, mas o Filebeat pode enviar os logs para um servidor diferente com o Logstash instalado. O Graylog já está instalado e configurado em outro servidor e é utilizado para receber logs de várias aplicações do ambiente.
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