Drupal
04/06/2015

Sécurité Drupal : n'économisez pas de contrat de maintenance préventive !

image
Le CMS Drupal a la réputation d’être l’un des "mieux entretenus" en matière de sécurité... Tant que la maintenance préventive est correctement réalisée, et si possible dans des délais raisonnables.

Le CMS Drupal a la réputation d’être l’un des "mieux entretenus" en matière de sécurité... Tant que la maintenance préventive est correctement réalisée, et si possible dans des délais raisonnables. Nous observons toutefois qu'elle est souvent sous-estimée et constatons que de plus en plus de dossiers urgents nous arrivent, avec toutes les contraintes liées à cette "panique". C’est pourtant un point important lorsque l’on veut que son site Drupal soit stable, fiable et sécurisé. Voici quelques conseils pour organiser vos opérations de maintenance préventive :

La veille - Security news

Il est primordial de commencer par réaliser et suivre les annonces en matière de sécurité. Ainsi, vous devez :

  • Vous inscrire à la newsletter de drupal.org en vous connectant à Drupal.org. Une fois connecté, rendez-vous sur votre page de profil utilisateur, cliquez sur l’onglet Edit - My Newsletters puis, cochez l’onglet Security announcements.
  • Suivre les annonces sur le compte twitter @drupalsecurity.
  • Suivre les flux RSS suivants : core , contribué , annonces de service public

Vous serez ainsi averti lorsqu’une mise à jour sécurité est publiée. Pensez à appliquer cette dernière le plus rapidement possible ! En effet, en prenant pour exemple la faille de sécurité d’injection SQL du 15 octobre 2014, on peut aisément affirmer que si vous n’aviez pas appliqué son correctif de sécurité dans les sept heures suivant sa sortie, votre site aurait eu de fortes chances de s’être fait piraté. Toutefois, les estimations actuelles se veulent rassurantes puisqu’elles indiquent qu’en moyenne, l’application d’un correctif de sécurité doit être réalisée au plus tard une semaine après être sorti avant de subir des attaques non ciblées.

En interne, l'équipe de bluedrop.fr a intégré les flux RSS de drupal.org sur Slack : toute l'équipe est informée immédiatement des mises à jour de sécurité. Nous partageons même ce canal "sécurité" avec nos clients en contrat de maintenance : les alertes sont transparentes pour toutes les parties, notre responsabilité ne peut être écartée en cas d'absence de mise à jour.

Les rapports de mise à jour

Les rapports de mise à jour (disponibles sur : /admin/reports/status) vous alerteront des problèmes avec votre site Drupal. Ce dernier inclut les problèmes de sécurité comme par exemple les modules obsolètes, le core Drupal ou, les mises à jour de base de données devant être exécutées. Vous devez donc le vérifier de façon régulière. Nous vous conseillons d'effectuer ces rapports sur le serveur de développement ou de recette. En effet le module consomme régulièrement des ressources inutiles au fonctionnement du site en production et risque d'endommager la bonne performance du site.

De plus, nous vous recommandons d’ajouter votre adresse mail ici : /admin/reports/updates/settings, afin d’être averti lorsqu‘une mise à jour de votre core ou d’un de votre module est disponible.

Drush, l'outil magique

L’installation manuelle des mises à jour de modules et du core drupal n’est en soit pas compliquée mais demeure fastidieuse. Pour gagner du temps dans la mise à jour de vos modules et du core drupal, nous vous conseillons d’utiliser Drush.

Voici quelques commandes utiles :

drush pm-update

permet de mettre à jour le core Drupal, les modules, les thèmes mais aussi la base de données en une seule fois.

Pour ne pas lancer toutes les mises à jour avec une seule commande, vous pouvez utiliser ces commandes (la 1ère met à jour le code et la seconde met à jour la base de données) :

drush pm-updatecode
drush updatedb

Pour mettre à jour seulement un module drupal, utilisez drush up suivi du nom du module, par ex :

drush up views
drush up --security-only

Pour avoir la liste des modules ayant besoin d’une mise à jour, utilisez :

pm-update --pipe

Ne hackez pas le coeur

Dans le jargon drupal, le hack est le fait de modifier le code de base du core drupal ou d’un module contribué. C’est exactement ce qu'il faut éviter de faire. En effet, l’ensemble des modifications réalisées dans le cœur seront irrémédiablement perdues dès qu’il y aura une mise à jour effectuée.

Il se peut cependant que vous n’ayez pas développé le site vous-même, vous pouvez donc avoir des doutes sur le fait que votre code ait été hacké ou pas. Pas de panique, il y a un module très utile et qui fonctionne à merveille pour vous informer si le code que vous avez est différent du code de base : Hacked module.

Si après vérification vous vous rendez compte que votre core drupal a été hacké, nous vous conseillons de placer les modifications apportés par le hack dans un fichier patch. Ainsi, quand vous aurez à mettre à jour votre installation Drupal, vous n’aurez plus qu’à lancer le fichier patch pour réappliquer les modifications.

Industrialisez votre infrastructure d'hébergement

  • Ne faites jamais de modifications sur le site de production sans avoir au préalable vérifié qu’elles sont fonctionnelles et donc qu’elles n’empêchent pas le site de bien s’exécuter sur l’environnement de développement.
  • Mettez en place un système de sauvegarde automatique de votre base de données et vérifiez régulièrement que les sauvegardes sont bien fonctionnelles.
  • Utilisez un logiciel de gestion de version qui est pratique dans plusieurs contextes. Celui-ci peut permettre par exemple de savoir ce qui a été modifié sur votre site lors d’une mise à jour ou même de savoir si votre site a été piraté en comparant le code de votre site à celui placé dans le logiciel. Chaque modification fait office de « version » du code.

Le mot de la fin

Les mises à jour de sécurité consomment en général entre 2 et 4 heures par mois pour des sites "moyens" (eu égard à leurs périmètres fonctionnels et techniques). Bluedrop.fr propose désormais une plateforme d'hébergement globale optimisée pour Drupal, disposant de plusieurs environnements, d'optimisation de performance par défaut, d'un outil de versionning (GIT) et d'une procédure d'intégration simplifiée. Tous nos contrats d'hébergement comprennent la maintenance préventive des sites Drupal que nous hébergeons. Mieux vaut prévenir... Que n'en plus dormir !

Sofiane Abidi et Christophe Dugué @chdugue