Introdução ao ModSecurity

Mod_sec é um Firewall de aplicação WEB, também conhecido como WAF. O mod_sec é hoje suportado pela equipe da SpiderLabs, blog sustentado pela Truswave, uma das gigantes da segurança. O mod_sec é um WAF Open Source que, em minha opinião, não perde em nada para os proprietários.

[ Hits: 7.948 ]

Por: Júnior Carreiro em 10/09/2014 | Blog: http://webdefense.blogspot.com.br/


Introdução ao ModSecurity



Para começar, vou abordar a instalação do mod_security, que é um Firewall de aplicação WEB, também conhecido como WAF.

O mod_security é hoje suportado pela equipe da SpiderLabs, blog sustentado pela Truswave, uma das gigantes da segurança.

O mod_security é um WAF Open Source que, em minha opinião, não perde em nada para os proprietários. Ele possui algumas regras pagas, desenvolvidas pelo pessoal do SpiderLabs e possui regras disponíveis de forma gratuita no site da OWASP, mas, a nossa intenção não é pegar nada pronto e sim entender como a ferramenta funciona, para criarmos nossas próprias regras.

Neste primeiro artigo, iremos abordar o conceito, funcionamento e instalação do mod_security. Já no próximo, vamos ver a integração dele com os dois principais WEB Servers Open Source.

Vamos começar listando onde o mod_security pode nos ajudar:
  • Visualização em tempo real dos acessos e das tentativas de burlar nossa aplicação.
  • Virtual patching, protegendo nossa aplicação até que a equipe de developers possa corrigir uma possível falha.
  • Log de todo o tráfego HTTP.
  • Avaliação contínua da segurança. Através de testes de segurança e análise dos logs, pode-se saber se nossa aplicação está vulnerável, antes de um terceiro.
  • Hardening de aplicação WEB.

Opções de instalação

O mod_security pode ser instalado direto no servidor WEB, ou pode ser usado com o proxy reverso.
  • No servidor WEB seria a melhor escolha para quem já tem sua arquitetura de rede e não deseja alterará-la. O ponto fraco dessa escolha, seria a administração dos recursos, já que o mod_security iria compartilhar desses recursos junto com o sistema.
  • Como proxy reverso, na minha opinião a melhor escolha, pois você está isolando de forma completa a sua rede e não compromete os recursos do servidor WEB.

Definições

Principais características:
  • Parsing.
  • Buffering :: na instalação padrão, o mod_security faz buffer do request e do response, podendo assim alterar ambos antes de concluir a ação.
  • Logging :: todas as transações são logadas, para que se possa fazer uma análise, caso seja preciso.
  • Rule Engine :: as rules, nós podemos dizer que são o coração do mod_security, pois são as responsáveis pelas execuções dos bloqueios.

Um exemplo de rule:

SecRule ARGS "<script>" log,deny,status:404

As regras

Por padrão, as regras seguem a seguinte sequência:

SecRule VARIAVEIS OPERADOR AÇOES


  • Variáveis :: vão dizer ao mod_security onde procurar. Em nosso exemplo, foi usada a variável ARGS, que diz ao mod_security para olhar todo os parâmetros de request.
  • Operador :: vai dizer ao mod_security o que procurar. Em nosso exemplo, temos a string JS <script>, usado em ataques XSS.
  • Ações :: vai dizer ao mod_security, a ação que deve tomar, caso a condição anterior for verdadeira. Em nosso exemplo o mod_security vai registar em log, vai negar o acesso e dar como resposta o status 404.

Fluxo

Podemos dividir as regras em 5 fases, onde em cada fase específica o mod_security executa a regra definida para a mesma.

1. Request headers
2. Request body
3. Response headers
4. Response body
5. Logging

Onde:
  • Nas fases de request, o mod_security faz análise das requisições e aplica as regras de acordo com o que foi configurado, se é para header ou pra body, e depois repassa a requisição ao WEBserver.
  • Nas fases de response, o mod_security faz a análise da resposta do WEBserver, a requisição enviada, tanto pra header quanto para body e depois repassa a resposta ao cliente.
  • Na fase de logging, dizemos ao mod_security como queremos que as requisições e respostas sejam registradas no log.

Instalação

*A instalação é baseada em derivados Red Hat.

Primeiro, vamos instalar todas as dependências:

# yum install gcc make libxml2 libxml2-devel httpd-devel pcre-devel curl-devel

Para a instalação do mod_security, vamos usar o Git (yum install git), e baixar a versão mais recente do projeto:

git clone git://github.com/SpiderLabs/ModSecurity.git
cd ModSecurity
./autogen.sh
./configure
make
# make install


Pronto, finalizamos a nossa instalação.

No próximo artigo, veremos como integrar o mod_security ao WEBserver.

   

Páginas do artigo
   1. Introdução ao ModSecurity
Outros artigos deste autor

Integrando ModSecurity ao NGINX e Apache

Nmap do início ao fim (parte 1)

Arquivo de configuração do mod_security

Leitura recomendada

Gateway autenticado com Apache, Iptables e CGI em shell

Rede wireless: autenticação em uma rede WPA

Encapsulando BIND 9 e Apache 2 para obter maior segurança

Segurança no SSH via plugins da PAM

Bom escudo não teme espada: o módulo pam_cracklib

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts