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: 2.457 ]

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

Uma introdução ao Linux-PAM

Festa com SQL injection

Segurança em Redes Wifi: Hacking x Defesa!

OpenVPN se comportando como PPTP

SSH: Métodos e ferramentas para invasão

  
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