DevSecOps

24 abr, 2015

As 7 melhores práticas de segurança para servidores Apache

Publicidade

A maioria das pessoas na área de TI está familiarizada com o servidor Apache de alguma forma. Trata-se de um servidor web de código aberto, criado em 1999 e mantido por uma comunidade de desenvolvedores, sob a orientação da Apache Software Foundation, uma das maiores incubadoras de projetos de software livre do mundo. Com base nos últimos números da fundação Apache, este é utilizado por 58,4% de todos os sites publicados, seguido pelo Nginx (23,3%) e pelo Microsoft IIS (13,2%).

Os números indicam a confiança que temos no Apache para executar seus serviços web. É uma ferramenta comprovadamente confiável. Mas, como todos sabemos, 2014 foi um ano muito ruim para o cibercrime devido aos inúmeros ataques web. Portanto, é incumbência de empresas e profissionais fazer tudo o que podem para garantir que seu servidor Apache esteja seguro contra ataques. Isso começa com a garantia (o chamado endurecimento) de sua configuração. Aqui estão sete itens para verificar e garantir que você está tirando o máximo proveito de sua configuração do Apache, com segurança.

apache-1

1. Mantenha seu Apache atualizado com as últimas versões e correções

Como mencionado, o Apache é mantido por meio de uma comunidade de desenvolvedores que estão empenhados em manter o software seguro e robusto. Novas correções e patches de segurança são adicionados a cada lançamento (ou sob a forma de correções emergenciais). Então, uma boa prática é sempre atualizar o servidor para a última versão estável do Apache (e aplicar correções quando necessário). Isso irá garantir que você mantenha seus serviços e aplicativos em execução de forma segura.

2. Desative a lista de diretórios

Por padrão, o Apache enumera todo o conteúdo do seu diretório raiz de documentos na ausência de um arquivo de índice.

apache-2

Em outras palavras, se o arquivo de índice como index.html ou index.php não está disponível, qualquer um poderá ver todos os arquivos e sub-diretórios listados no navegador. Isso cria uma vulnerabilidade de segurança, porque um invasor pode analisar o código-fonte para possíveis falhas de segurança ou para obter mais informações sobre um aplicativo, como strings de conexão de banco de dados, senhas para outros sistemas etc.; portanto, é melhor desativar a listagem do diretório. Para desabilitar a pesquisa no diretório, é preciso definir a diretiva Options no arquivo httpd.conf do Apache como segue:

apache-3

3. Desative módulos desnecessários

Por padrão, o Apache vem com uma série de módulos pré-instalados e ativados. No entanto, isso cria uma vulnerabilidade de segurança adicional. A fim de reduzir suas chances de se tornar uma vítima de um ataque web, é melhor para desativar os módulos que não estão sendo usados ​​atualmente. Módulos desnecessários podem ser desativados no arquivo httpd.conf e adicionando um caractere # na frente da linha LoadModule.

4. Desative os serviços desnecessários

Você pode desabilitar a execução de serviços de CGI desnecessários, links simbólicos, e outros serviços do lado servidor, usando a diretiva Options do arquivo de configuração httpd.conf. A imagem abaixo mostra o que você precisa incluir em seu arquivo de configuração para desativar o CGI:

apache-4

5. Certifique-se de que o serviço Apache server-info esteja desativado

Se a diretiva <Location /server-info>, presente no arquivo de configuração httpd.conf, está habilitada, irá exibir informações sobre a configuração do Apache quando a página server-info for acessada a partir http://www.examplo.com/server-info. Isso poderia incluir informações sensíveis sobre as configurações do servidor, tais como a versão do servidor, caminhos do sistema, nomes de bancos de dados, informações de biblioteca, e assim por diante. Essa informação pode ser desativada, comentando a diretiva <Location / server-info> do arquivo de configuração httpd.conf como ilustrado a seguir:

apache-5

6. Desative o rastreamento HTTP Request

“TRACE” é um método de solicitação HTTP usado para depuração de resultados, que ecoa o pedido recebido por um cliente para que ele possa ver quais alterações foram feitas. Esse recurso cria uma vulnerabilidade de segurança porque um invasor pode explorá-lo e roubar informações confidenciais via conectores como cookies e credenciais do site. Você pode desativar esse serviço simplesmente mudando a diretiva do seu arquivo httpd.conf para TraceEnableOff.

7. Não execute o Apache como usuário ‘root’

Executar o servidor Apache como usuário root é um problema de segurança. A razão é simples: se um invasor pode conseguir acesso gratuitamente em um site, com usuário root completo ele terá acesso a todo o servidor. Assim como você não iria deixar a chave da porta da sua sala na varanda da frente de sua casa, tomar precauções e evitar executar o Apache como root é fundamental.

***

Hovhannes Avoyan faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link:  http://blog.monitis.com/2015/03/05/top-7-apache-security-best-practices/