Infraestrutura para Aplicações Web Seguras parte 3 - Aplicação
Colaboração: Alexandro Silva
Data de Publicação: 18 de março de 2010
Finalizando nossa trilogia farei algumas recomendações para fortalecer o Apache2 e algumas referências sobre boas práticas de segurança no desenvolvimento de aplicações.
Apache2 Seguro
- Atualização É chato falar sempre a mesma ladainha mas atualização é o item número 1 de qualquer cheklist de pós instalação. Sobre isso comentei na 1a. parte.
- Escolha o módulo do Apache que melhor atenda suas necessidades
Isso mesmo. Existe um módulo do Apache para cada necessidade vejamos:
Apache MPM Prefork
Ele implementa um non-threaded web server que processa os pedidos de maneira similar ao Apache 1.3, sendo o melhor MPM para isolar cada requisição, assim um problema com uma única requisição não afetará as outras.
Ele é auto-ajustável tornando muito rara a necessidade de ajustar as suas diretivas de configuração.
O mais importante é que a diretiva MaxClients possua um valor suficientemente grande para lidar com tantas solicitações simultâneas, mas pequena o suficiente para assegurar que haja bastante RAM física para todos os processos.
Para instalar o Apache MPM Prefork execute
aptitude install apache2-mpm-prefork
Apache MPM Worker Ele implementa um multi-threaded server hibrido. Usando threads para tratar as requisições. Ele atende a apliações que necessitam atender muitas requisições usando poucos recursos do sistema, entretando ele retém a estabilidade do servidor porque mantem muitos processos abertos onde cada um desse processos rodam várias threads. As diretivas mais importantes no uso deste módulo são ThreadsPerChild e MaxClients. Para instalar o Apache MPM Worker executeaptitude install apache2-mpm-worker
Apache Hardening
Este assunto já foi tratado anteriormente porém quero atualizar alguns itens:
- Edite os seguintes parâmetros do arquivo /etc/apache2/conf.d/security
Server Tokens
De
ServerTokens Full
ParaServerTokens Prod
ServerSignature DeServerSignature On
ParaServerSignature Off
TraceEnable DeTraceEnable On
ParaTraceEnable Off
- Proteja o acesso aos arquivos editando os arquivos existentes no diretório /etc/apache/sites-available . Altere os parâmetros diretiva "Directory /" deixando da seguinte forma:
Order Deny,Allow Deny from all
Habilite o mod_security
Se você possuir um espírito aventureiro e gostar de fortes emoções recomendo o uso do mod_security. Ele bloqueia o monitoramento de requisições e respostas HTTP tanto quanto a negação de pacotes suspeitos.
Se você possui as caracteristicas acima então siga meu blog post com o passo a passo para habilitá-lo.
Links Recomendados
Auditoria - Ferramentas
Nikto
O Nikto Webserver Scanner é uma excelente ferramenta de auditoria para servidores Web. Escrito em perl e mantido pelo CIRT se tornou parte integrante do Nessus.
Muito cuidado com os relatórios gerados por ele. O ideal é estudar e testar cada alerta gerado pois alguns deles são falsos positivos, mas isso não tira de forma alguma o brilho desta ferramenta.
W3af
O W3af é um completo framework para ataque e auditoria de servidores Web. Ele faz o serviço completo (barba, cabelo e bigode) sendo capaz de fazer uma simples auditoria de vulnerabilidades ao ataque propriamente dito.
Diferentemente do Nikto ele é um devorador de recursos e pode levar dias para concluir uma auditoria de acordo com os plugins habilitados, principalmente se habilitar todos os plugins do módulo Discovery.
Para um relatório efetivo de como anda a segurança do seu Webserver recomendo o trabalho em conjunto do Nessus, Nikto e o W3af.
Blog do Autor: http://blog.alexos.com.br