Apache seguro
Hoje em dia a segurança é de um servidor que esteja ligado a internet é muito importante, embora existam algumas empresas / pessoas a descoroar a segurança.
Para vos mostrar que não estamos seguros, deixo aqui um software gratuito que permite detectar algumas falhas de segurança em servidores. Para que possam corrigi-las
http://www.mavitunasecurity.com/communityedition/
Abaixo segue um texto retirado do blog do Amigo Ruben Alves, que explica como tornar mais seguro um servidor apache..
Hoje fiquei fascinado com a leitura de um artigo sobre uma empresa de segurança (auditorias, pentesting etc..) que para mostrar o exemplo, tinham tudo contra eles… Basicamente, estão num host da Amen com servidores próprios, correm um joomla da treta, Apache 2, PHP, etc… Enfim, o servidor normal de qualquer mortal.
Certamente que o meu fascínio teria terminado bem rapidamente caso não fosse o site da empresa estar no ramo da segurança informática. Foi então que me lembrei em escrever uma série de pequenos textos sobre segurança informática e como silenciar os malditos serviços que tantas fingerprints geram.
As evidências residuais ou efectivas das aplicações em produção são de facto os primeiros elementos em qualquer tipo de ataque. Nos ataques web, o primeiro a ser verificado é sem dúvida o servidor web, seguindo da camada aplicacional. A metodologia para descobrir as fingerprints segue os seguintes pontos:
- Identificar a arquitectura web/topologia
Verificar a existência de DMZ, servidor Proxy/Reverse Proxy, Loadbalancer, Firewall aplicacional (Ex: ModSecurity) etc… - Identificar a versão do servidor web
Verificar de qual é o tipo do servidor – Microsoft, Apache, Ngnix etc.. E claro a sua versão. - Identificar a(s) aplicação(ões) web
Verificar o tipo das aplicações web estão a correr no servidor como por exemplo Webmin, Joomla, PhpMyAdmin - Identificar a base de dados
Verificar se o sistema possui um sistema de base de dados, se sim, os ataques por SQL Injection podem sofrer alterações caso trate-se de um MySQL, PostgreSQL, SQL SERVER. O ataque directo ao SGBD também pode ser realizado caso este último não esteja devidamente protegido. - Identificar web services
CrossOver com o WSDL e acesso directo à plataforma de serviços.
Neste texto iremos ver como dificultar o segundo ponto apenas com algumas alterações no ficheiro de configuração do Apache.
ServerToken
Com apenas uma linha, podemos silenciar o apache de forma quase perfeita. Em tudo o que é Debian e Ubuntu (ainda tenho de verificar isso em CentOS) o ficheiro de configuração principal omite o valor ServerProd, tomando a por valor por omissão Full. A ideia, é criar uma nova linha com o valor correcto, neste caso Prod.
ServerTokens prod
Basta esta pequena alteração para passar de um servidor web muito conversador para algo de reservado.

A ideia por trás desta manipulação é obviamente esconder o máximo de detalhes possível sobre o tipo de aplicações que estão a correr no nosso servidor. Ao dar o número de versão do Apache, do PHP e informar sobre a existência do Suhosin-Patch, estamos de certa forma a dar a estrutura da porta de casa ao atacante. Ao ter o conhecimento destes dados, facilmente procuram exploits, limitações que podem ser exploradas com a finalidade de comprometer a máquina.
Existem outras alterações ao Apache que podem ser feitas de forma a simplesmente eliminar o nome do servidor, ou mesmo ainda invocar o erro por parte do atacante ao especificar outro tipo de servidor (de outra empresa, ou mesmo outro de tipo de versões). Mais complexo, pode-se igualmente compilar o código fonte do Apache já com o nome do servidor que desejamos no código fonte (um texto para breve). Para os menos aventureiros, é possível igualmente mudar o nome do servidor através do ModSecurity. A solução ideal é mesmo disponibilizar o mínimo de informações possíveis sobre o servidor de forma a dificultar a vida ao atacante de uma forma ou de outra.
ServerSignature
Depois de indicar o tipo de servertoken, a própria assinatura do servidor fica diferente. Os famosos erros 404 por omissão apresentam uma página branco com o erro, e claro toda a informação do servidor.
ServerSignature Off
Ao desligar o ServerSignature, toda a informação complementar e inútil simplesmente desaparece.

Homes Directories
Nada de melhor do que as homes directories para descobrir os utilizadores do servidor. Um ataque por bruteforce aos utilizadores simplifica em muito o processo de descoberta das palavras chaves.
Uma das formas para impedir a criação das homes directories é simplesmente adicionar a seguinte configuração:
<Directory /usr/users/*/public_html>
Order Deny,Allow
Allow from all
</Directory>
<Directory /usr/local/httpd>
Order Deny,Allow
Allow from all
</Directory>
robots.txt
O verdadeiro falso amigo! Todos o utilizam para impedir os crawlers (ex: Yahoo, Googlebot etc..) em navegar em zonas restritas (geralmente em directorias do tipo: /admin, /gestao, /root, /administration). Mau, muito mau! Ao indicar este tipo de informações ao ficheiro, estão directamente a dizer ao atacante onde está escondida o vosso backend! O melhor é mesmo criar uma pasta completamente diferente (ex: como se fosse uma password: /W31rd0—here) sem qualquer referência no código HTML a ficheiros, sitemap, e claro no robots.txt.
Ao longo dos próximos tempos irei descrever um pouco mais sobre metodologias de fingerprinting, e como proteger os servidores mais eficazmente. Antes de terminar este texto, queria referir, que apesar de mais complexo, a compilação própria do Apache (em vez dos RPM ou DEB) melhora o desempenho do servidor, tanto a nível de desempenho como de segurança (compilando apenas o que é necessário – criando assim um servidor à medida).
Fonte: Ruben Alves

