10 dicas para manter seu site Drupal seguro

Manter o seu site Drupal atualizado é sempre um ponto crucial para garantir que ele esteja seguro. A recente divulgação da vulnerabilidade de SQL Injection e o subsequente anúncio de ataques automatizados espalharam um certo pânico em toda a comunidade Drupal global.

(benefício dos rápidos lançamentos comunidade)

Aqui vão 10 dicas para garantir que o Drupal e seus módulos estejam sempre atualizados com os últimos lançamentos de segurança.

1. Siga as notícias de segurança

Se você ainda não está seguindo as notícias de segurança do Drupal, agora é a hora de começar. É assim que você vai saber sobre as novas atualizações de segurança assim que elas são anunciadas.

Você pode obter recomendações de segurança das seguintes formas:

2. Verifique regularmente o relatório de atualizações

O relatório de status, disponível em Administrar » Relatórios » Relatório de status (Administer » Reports » Status reports) vai alertá-lo sobre os problemas com o seu site em Drupal, incluindo questões de segurança como módulos e núcleo desatualizados.

Você pode ser notificado quando as atualizações estiverem disponíveis adicionando seu email em Administração » Relatórios » Atualizações disponíveis Atualizações disponíveis (Administration » Reports » Available updates » Available updates).

Dica: por questões de performance, é melhor manter o módulo Update Manager (responsável por notificar as atualizações disponíveis) habilitado e rodando num ambiente de desenvolvimento ou staging ao invés do ambiente de produção.

3. Aplique os patches de segurança imediatamente

Quando uma atualização de segurança é anunciada, você deve aplicá-la o mais rápido que for humanamente possível. Há algum tempo era possível aguardar alguns dias para aplicar as atualizações e ainda assim estávamos seguros. Mas agora, com o Drupal se tornando mais popular, com grandes casos de uso etc, este processo vai se tornando mais crítico. Após o anúncio da vulnerabilidade corrigida no release 7.32, por exemplo, o primeiro ataque registrado ocorreu em apenas 7 horas. Então é bom se preparar para efetuar a próxima atualização em menos tempo ;)

4. Use o Drush para atualizações

Você pode estar fazendo download do Drupal e seus módulos e aplicando manualmente no seu site. Isso rapidamente se torna uma tarefa tediosa. Para tornar essa experiência menos dolorosa, você pode usar alguns comandos do Drush.

Verifique o que mudou

pm-update --pipe (alias: up --pipe) - lista os projetos que precisam ser atualizados. Você pode, então, checar as notas do release para saber o que foi alterado.

Rode as atualizações em apenas um passo

drush pm-update (alias: up) - atualiza código do núcleo, módulos e temas contribuídos, além de aplicar as atualizações pendentes do banco de dados.

Rode as atualizações em dois passos

Se você prefere não rodar as atualizações do banco de dados ao mesmo tempo, você pode executar o procedimento em 2 passos:

  1. drush pm-updatecode (alias: upc) - Atualiza o código
  2. drush updatedb (alias: updb) Roda as atualizações pendentes do banco de dados

Nota: Você não deve rodar esses comandos diretamente no ambiente de Produção. Em vez disso, rode em uma versão local (de desenvolvimento) e assegure-se que nada vai "quebrar" após aplicar as atualizações.

5. Não modifique o Drupal nem os módulos contribuídos

Pode até ser rápido fazer alterações diretamente no código dos módulos ou do Drupal, mas a longo prazo isso se torna um pesadelo para manutenção do projeto. Se eles se mantiverem inalterados, as atualizações se tornam muito mais simples. Caso contrário, a cada atualização você perderá suas modificações; e precisará reaplicá-las.

Leia mais sobre por que não se deve hackear o Drupal.

6. Verifique se o código dos seus módulos ou do Drupal foram modificados

Se não foi você quem desenvolveu o site, você pode não ter ideia das modificações que foram realizadas no código dele. Felizmente você pode descobrir rapidamente utilizando o módulo Hacked.

O Hacked é um módulo de grande utilidade que compara a versão dos códigos do seu site com os hospedados no repositório do drupal.org. Se tiver alguma diferença, ele indicará e você poderá tomar as devidas providências.

7. Crie patches para modificações realizadas nos códigos

Se, depois de rodar o Hacked, você descobrir que alguém alterou um módulo ou arquivos do núcleo, então é melhor registrar essas alterações em um arquivo patch. Assim, quando você precisar atualizar o Drupal, poderá reaplicar facilmente as modificações. Isso economizará um enorme tempo, em comparação com a aplicação manual das modificações.

8. Faça backups automaticos do seu banco de dados

Não conte com sua memória; configure uma rotina automatizada de backups do seu banco de dados. O módulo Backup & Migrate poderá ajudá-lo nisso.

9. Verifique se seus backups estão funcionando

Backups automáticos são fantásticos, mas e se eles não estiverem funcionando corretamente? É uma boa ideia verificar periodicamente se os backups estão corretos, restaurando-os num ambiente de desenvolvimento. Assim, quando você precisar, poderá estar seguro de que funcionará.

10. Tenha seu código num sistema de controle de versão

Guardar seus códigos num sistema de controle de versão (como o GIT) é ótimo por uma infinidade de razões. Assim, quando você aplicar atualizações de segurança, poderá saber exatamente o que mudou na nova versão. Isso torna muito mais fácil prever potenciais impactos dessa atualização no seu site.

Outro benefício é que rapidamente você pode verificar se algum código foi hackeado, pois o sistema acusará diferença entre seu código e o código armazenado nele.

BONUS: Pague por um suporte de qualidade!

Se você não tem tempo ou experiência para manter seu site atualizado e seguro, considere fortemente pagar por um serviço de manutenção e suporte. Acredite: isso poderá poupar-lhe muitas dores de cabeça. Se precisar, a Fisqua pode te ajudar com isso ;)

Este post é uma tradução adaptada do Eleven tips to keep Drupal up to date with security releases escrito por Blair Wadman.