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.

[ Hits: 8.627 ]

Por: NerdBarbado em 30/07/2020


Instalação e configuração do mod_security e mod_evasive



Instalação do mod_security e mod_evasive

Atualize o servidor:

sudo yum update

Instalação dos pré-requisitos:

sudo yum install httpd epel-release git wget

Instalação do mod_security e mod_evasive

sudo yum install mod_security mod_evasive

Para testar se o mod_security está instalado e carregado, rode:

sudo httpd -M | grep security

Deve aparecer a seguinte linha:

security2_module (shared)

Para testar se o mod_evasive está instalado e carregado, rode:

sudo httpd -M | grep evasive

Deve aparecer a seguinte linha:

evasive20_module (shared)

Configuração do mod_security

Instalação das regras OWASP:

cd /etc/httpd/modsecurity.d
rm -rf activated_rules/
sudo git clone https://github.com/SpiderLabs/owasp-modsecurity-crs
cd owasp-modsecurity-crs/
cp crs-setup.conf.example crs-setup.conf

Altere a linha 4 do arquivo /etc/httpd/conf.d/mod_security.conf para:

IncludeOptional modsecurity.d/rules/*.conf

Ainda no arquivo /etc/httpd/modsecurity.d/mod_security.conf verifique se os seguintes parâmetros estão com os mesmos valores do exemplo abaixo:

SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecResponseBodyMimeType text/plain text/html text/xml application/octet-stream
SecAuditLog /var/log/httpd/modsec_audit.log
SecTmpDir /var/lib/mod_security
SecDataDir /var/lib/mod_security</IfModule>

Adicione as seguintes linhas no fim do arquivo /etc/httpd/conf/httpd.conf:

<IfModule security2_module>
        Include modsecurity.d/owasp-modsecurity-crs/crs-setup.conf
        Include modsecurity.d/owasp-modsecurity-crs/rules/*.conf
</IfModule>

Reinicie o Apache:

sudo systemctl restart httpd

Configuração do mod_evasive

Abra o arquivo /etc/httpd/modsecurity.d/mod_evasive.conf e verifique se os seguintes parâmetros estão com os mesmos valores do exemplo abaixo:

DOSHashTableSize    3097
DOSPageCount        2
DOSSiteCount        50
DOSPageInterval     1
DOSSiteInterval     1
DOSBlockingPeriod   10

Testando o mod_security

Abra um terminal e execute o seguinte comando, inserindo o endereço da sua aplicação:

curl -s -o /dev/null -w '%{http_code}' www.sistema.com?username=1'%20or%20'1'%20=%20'

Abra o arquivo de log do mod_security e veja o alerta que foi gerado:

sudo tail -f /var/log/httpd/modsec_audit.log

Testando mod_evasive

Abra o arquivo /usr/share/doc/mod_evasive-1.10.1/test.pl

sudo vi /usr/share/doc/mod_evasive-1.10.1/test.pl

Encontre a linha "for(0..100)" e substitua 100 por 200.

Encontre a linha 'PeerAddr=>"127.0.0.1:80"' e substitua 127.0.0.1 com o IP do seu servidor.

Feche o script e o execute:

sudo perl /usr/share/doc/mod_evasive-1.10.1/test.pl

Devem aparecer várias linhas com a mensagem "HTTP/1.1 403 Forbidden" na tela.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação e configuração do mod_security e mod_evasive
   3. Instalação e configuração do FileBeat e Logstash
   4. Testando integração do modsecurity, filebeat e logstash
   5. Integração com o Graylog
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Como saber se houve uma invasão

Administrando Linux via web (parte 1)

(IN)segurança Digital

Estrutura do Iptables

Mantendo seu Slackware atualizado com o slackcurrent

  
Comentários
[1] Comentário enviado por rabbit em 16/08/2020 - 17:36h

Fala amigo,

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


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts