10 dicas para preservar a segurança do seu site em Joomla! - Internet
10 dicas para preservar a segurança do seu site em Joomla!
Um dos sistemas de gestão de conteúdo (CMS) mais utilizados do mundo, o Joomla! tornou-se alvo de grandes focos de ataque de hackers. Isso fez com que seus usuários passassem a redobrar a atenção nas questões de segurança, evitando a invasão ou roubo de informações. Se você ainda não sabe como instalá-lo e pretende se aventurar em novos desafios, mesmo que apenas por curiosidade, o Canaltech vai te ajudar nos próximos dias com um tutorial passo-a-passo, não perca! Veja agora 10 dicas para manter seu Joomla mais seguro:
1. Esqueça as versões 1.5.X
Descontinuadas desde março de 2013, essas versões não recebem mais suporte das comunidades de desenvolvedores e, portanto, são um alvo muito fácil de invasão. Nós recomendamos a utilização das novas versões a partir da 3.0 (no momento da escrita desse artigo, a versão 3.2 é a mais atual). Por que? Poderíamos elencar aqui facilmente uma lista com 10 motivos, mas primeiro frisamos a questão das atualizações do sistema, que contêm em sua essência correções das vulnerabilidades detectadas, além de eventuais novas funcionalidades. Fora disso, desde a versão 3.0 o Joomla passou a estar muito mais voltado à internet móvel através de seus layouts responsivos e começou a atingir um público-alvo menos experiente através de seu back-end muito mais amigável.
2. Mantenha seu sistema sempre atualizado
Pode parecer redundante, mas a falta de atualização é atualmente uma das formas mais fáceis que os invasores encontram de causar um estrago no seu sistema. Mesmo assim tem muita gente marcando bobeira por aí. Uma empresa de hospedagem de sites já deixa bem claro em seu blog que isso vai muito além da versão do CMS. Tudo o que você instalar, seja plugin, tema ou semelhante está sujeito aos mesmos riscos de invasão, portanto esteja sempre atento aos sites dos desenvolvedores, pois seja por códigos mal desenvolvidos ou por brechas descobertas por crackers, rapidamente a comunidade atualiza a versão oficial da plataforma e a disponibiliza para seus usuários. Ficar um dia sequer sem a atualização do seu CMS pode expô-lo a falhas críticas de segurança.
3. Utilize o arquivo .htaccess fornecido na instalação
Sempre que você fizer uma instalação do Joomla, procure pelo arquivo htaccess.txt. Essa é a versão original do arquivo responsável pelas regras que ajudam a mitigar os ataques mais comuns. Basta renomeá-lo para ".htaccess". Supondo que o joomla esteja instalado no diretório /var/www/html/canaltech, ficaria assim:
# cd /var/www/html/canaltech
Repare que para isso o uso de htaccess deve estar habilitado no apache. Verifique no arquivo de configuração do apache, na sessão correspondente ao diretório do site, se a diretiva AllowOverride está habilitada conforme abaixo:
<Directory "/var/www/html/canaltech">
4. Seja criterioso com as permissões do sistema de arquivos
Por padrão, tudo precisa estar com permisão para "somente leitura". Se possível, dê permissão de escrita apenas ao arquivo de log, e caso haja algum plugin para upload de arquivos, dê permissão apenas à pasta necessária. O owner dos arquivos deve ser diferente do usuário do Apache.
Supondo que o usuário do apache seja "apache", e que o joomla esteja instalado no diretório /var/www/html/canaltech, as permissões abaixo são suficientes:
# chown -R usuario:apache /var/www/html/canaltech
# chmod 640 /var/www/html/canaltech/*
# chmod 770 /var/www/html/canaltech/logs/*
5. Limite o acesso à área de administração (back-end)
6. Novamente as permissões. Forneça somente o necessário ao usuário do banco de dados
Na maioria dos casos, o usuário mysql usado durante a instalação do Joomla não é alterado. Isso porque muitas vezes é instalado através de softwares de terceiros que automatizam todo esse processo para os usuários mais leigos. Logo, muitos privilégios desnecessários acabam sendo atribuídos, como por exemplo "INTO OUTFILE", que permite salvar o resultado de um SELECT em um arquivo de texto. Em um eventual ataque de SQL Injection, o invasor pode acabar se beneficiando desse privilégio para salvar um arquivo malicioso no servidor.
Em uma situação ideal, apenas as permissões "SELECT", "INSERT" e "UPDATE" são mais que suficientes para o funcionamento do site. Considerando que seu banco chame-se "joomla", você pode criar o usuário do joomla com o comando abaixo (mysql):
mysql> CREATE USER 'usuario'@'host' IDENTIFIED BY 'senha';;
Você pode ser ainda mais específico nas permissões, e atribuir INSERT e UPDATE apenas para os campos necessários. Considerando que o prefixo das tabelas seja "jos", ficaria:
Não esqueça que o "owner" do banco NÃO deve ser o mesmo usuário utilizado pelo Joomla.
7. Habilite as opções "Adicionar sufixo de URL" e "Utilizar mod_rewrite" nas "Configurações globais"
Essas opções vão fazer com que a URL seja reescrita antes do Joomla interpretar a solicitação. Isso dificulta ataques que utilizam a URL para passagem de parâmetros. Perceba que o invasor pode acabar conseguindo "driblar" essa opção caso descubra o padrão de reescrita da URL e enviando os parâmetros maliciosos. Acontece que os invasores procuram por facilidades na internet, e como isso existe de sobra, é bem provável que acabem desistindo de algum ataque contra o seu site e partindo para algum outro alvo mais fácil.
A opção "Utilizar mod_rewrite" vai fazer com que ele "esconda" o "index.php" da URL, dando a "impressão" de se tratar de um site estático. Normalmente, as URLs são assim:
http://www.meusite.com.br/index.php/artigo
Após habilitar a opção "mod_rewrite", ficaria assim:
http://www.meusite.com.br/artigo
A opção "Adicionar sufixo de URL" faz com que ele adicione um sufixo na URL baseado no tipo do documento (normalmente html). A URL passaria a ficar igual à de um site estático:
http://www.meusite.com.br/artigo.html
É importante frisar que, para que essas opções funcionem, o arquivo .htaccess fornecido na instalação deve estar em uso, como vimos na dica 3.
8. Tome muito cuidado com os plugins
9. Desabilite algumas funções vulneráveis do PHP
Algumas funções do PHP acabam sendo extremamente perigosas quando um atacante consegue de alguma forma explorar uma vulnerabilidade. A configuração abaixo, que deve ser realizada no arquivo php.ini (normalmente /etc/php.ini) desabilita boa parte destas funções e normalmente não prejudica o funcionamento do Joomla:
Certifique-se de que essas funções estão ativas. Para ter acesso às configurações do PHP no servidor, basta criar um arquivo .php com o seguinte conteúdo:
Supondo que você subiu o arquivo com o nome de info.php, então acesse www.meusite.com.br/info.php e faça as verificações.
10. Configure as URLs amigáveis nas configurações globais
Diversos ataques a sites Joomla são feitos a partir de uma pesquisa no Google por uma determinada vulnerabilidade, ou seja, o atacante conhece a vulnerabilidade "X" de um plugin e descobriu que a URL para explorá-la é "/com_plugin?nomedapagina.php?id=123&x=456", ele irá realizar a pesquisa por essa URL. Usando este padrão de URL é bem provável que seu site seja localizado. Utilizar URL amigável faz com que você "oculte" sua vulnerabilidade, caso ela exista. Verifique também o arquivo robots.txt do seu site para certificar-se de que somente as páginas autorizadas estão sendo indexadas pelo motor de buscas do Google.