Protegendo Webservers(apache) com o Mod_Security no FreeBSD

22 de novembro de 2007 » Post Anterior:

Apache com mod_security no FreeBSD

Porque usar ?
mod security
Atualmente com o aumento de falhas de segurança, a velocidade nas correções dos bugs em um servidor é muito importante para garantir seu emprego. Não podemos perder tempo analisando aplicações web feitas por programadores iniciantes que estão armazenadas em um webserver de nossa responsábilidade. Imagine se um estágiario de sua empresa for acionado pelo seu gerente para fazer um website em PHP com destinação qualquer e que utilize o mysql como base de informações. Para garantir a segurança esse estágiario deve ser um bom programador php para saber proteger as variaveis que trabalham com a base de dados ou então os kiddies gostarão de utilizar tecnicas de SQL INJECT conhecidas para dropar suas tabelas e ou então fazer um defacer nesse website. Seu gerente não vai querer saber que o problema foi numa programação injenua do estágiario , então é bom se preparar para sua demissão. A solução é instalar o mod_security em seu servidor web e inserir regras para segurar suas aplicações web de ataques conhecidos e mais utilizados por script kiddies. Instalando: Antes de iniciar é importante que o apache esteja instalado e funcional. Instale via ports: Entre no diretório:

Instalação
# cd /usr/ports/www/mod_security/

Compile e instale :
make ; make install

Após isso, verifique a existência da seguinte linha dentro do seu “/usr/local/etc/apache/httpd.conf”

LoadModule security_module libexec/apache/mod_security.so

Configurando:
Pronto, após instalado é so criar as regras. Por exemplo, vou aplicar algumas regras básicas segue:

<?IfModule mod_security.c?>
SecFilterEngine On
SecFilterDebugLog /var/…/modsecurity_auditoria.log
SecFilter “‘” redirect: http://security.xx.com/aviso.htm
<?IfModule?> SecServerSignature “Microsoft-IIS/5.0″

Agora é só restartar o apache. Nesse exemplo acima respectivamente você ativou o mod_security, protegeu a aplicação contra algumas técnicas de SQL INJECT , logando tudo em “modsecurity_auditoria.log” e mudando a assinatura do apache. Existe diversas formas de configuração, inclusive a integração com regras do snort, nesse documento não irei detalhar muito, mas abaixo irei passar links interessantes que falam muito bem sobre o assunto.

Uma coisa interessante e que só conseguiamos efetuar baixando o codigo do apache e mudando o version.h, é que podemos mudar a assinatura do apache para qualquer nome inserindo o seguinte:

SecServerSignature “Microsoft-IIS/5.0″

Então se um usuário qualquer scaneia seu servidor e ver o serviço : http://xxxxx.xxx.com was running Microsoft-IIS on FreeBSD Se for amador, entao ele ficará um pouco confuso e procurará por ferramentas para explorar vunerábilidades em Microsoft-IIS. Com isso você já retirar de sua lista os invasores amadores. Isso é interessante, porém vale lembrar que não mantem ninguem seguro, o interessante é manter os serviços atualizados e monitorados sempre. Outra coisa interessante é que você pode redirecionar para um determinada página caso o usuário seja barrado em algum filtro, observe :

SecFilter “‘” redirect:http://security.xx.com/aviso.htm

Caso algum usuário seja barrado nesse filtro ele será redirecionado para essa página, nela você pode por mensagens personalizadas, exemplo:

“Tentativa sem sucesso. Você esta sendo logado” etc etc Mais Informações em :
http://www.modsecurity.org/documentation/php-register-globals.html
http://www.onlamp.com/pub/a/apache/2003/11/26/mod_security.html
http://www.securityfocus.com/infocus/1739

Finalizando
Bem, agora você não precisa ficar analisando códigos web de terceiros para ver se ele compromete seu servidor. Vale lembrar que as regras aqui utilizadas são básicas, somente para demonstrar a funcionalidade do mod_security, existe uma infinidade de filtros.

Envie por email:





Envie por email:

Categoria: WordPress » Protegendo Webservers(apache) com o Mod_Security no FreeBSD

1 Comentário | Adicionar comentário

  • 1. Roberto Rocha  |  2/06/08

    Valeu pela dica, eu queria algo assim.

Deixe seu Comentário

Obrigatório

Obrigatório, (não publicado)

URL para Trackback





Posts Recentes:

Random Posts:

Feeds