Préparer la mise à jour critique Drupal 6/7/8 du 28/03/2018

Le 21/03/2018, la Security Team de Drupal a annoncé dans son "Public Service Announcement" PSA-2018-001 la sortie imminente de versions de sécurité pour Drupal, le mercredi 28/03/2018.

De telles préannonces sont particulièrement rares, la précédente remontant à la faille d'injection SQL "Drupalgeddon" de novembre 2014, et sont réservées aux mises à jour les plus critiques.

Sévérité / Criticité

En temps normal, la couverture de sécurité est limitée aux versions supportées, qui sont actuellement la version courante (8.5.x) et la précédente (7.x).

Fait inhabituel là aussi, la mise à jour du 28 couvre également les versions obsolètes 8.3.x et 8.4.x, et un patch a également été annoncé sur le projet D6LTS pour une mise à jour équivalente sur Drupal 6.x, alors que son support est terminé depuis le 24/02/2016, ce qui renforce le niveau de risque estimé de la faille que corrigent ces mises à jour, et l'importance de les appliquer dans les meilleurs délais.

Quand agir ?

Mais quels sont ces délais, précisément ? Selon le bulletin PSA-2018-001, les "exploits" de la faille révélée par le correctif pourraient être développés dans les "heures ou jours qui suivent" la publication.

En 2014, la faille Drupalgeddon avait commencé à être exploitée dans les 6 heures qui avaient suivi la publication du correctif. Avec l'élévation progressive du niveau de risque des agresseurs, tout permet de supposer que le délai pourrait être encore plus court cette fois.

La Security Team annonce une publication des correctifs mercredi entre 18:00 et 20:30 UTC, soit 20:00-21:30 heure de Paris, du fait de l'heure d'été.

Une marge de sécurité de 6 heures, comme celle dont ont bénéficié les sites en 2014, mène donc au mieux à 03:30 jeudi matin, et au pire 02:00. Dans tous les cas, une mise à jour le jeudi matin 29/03 court donc un risque important d'arriver trop tard.

En résumé: préparez votre équipe à une intervention dans la nuit de mercredi à jeudi.

Stratégie de mise à niveau

Selon le bulletin PSA-2018-001 et les compléments du project D6LTS, la stratégie recommandée est la suivante:

  • Sites sous drupal 8.5.x ou 7.x: appliquer la version de sécurité publiée dans ce correctif selon la procédure standard.
  • Sites sous Drupal 8.4.x: appliquer immédiatement la version 8.4.x qui sera publiée dans ce correctif, puis planifier une mise à jour vers la plus récente version 8.5.x de sécurité, annoncée pour le mois d'avril.
  • Sites sous Drupal 8.3.x: appliquer immédiatement la version 8.3.x qui sera publiée dans ce correctif, puis planifier une mise à jour vers la plus récente version 8.5.x de sécurité, annoncée pour le mois d'avril.
  • Sites sous Drupal/Pressflow 6.x avec un contrat de support auprès de l'un des prestataires du programme commercial D6LTS: suivre les recommandations spécifiques de ce programme.
  • Sites sous Drupal/Pressflow 6.x sans contrat D6LTS: télécharger le patch disponible sur https://www.drupal.org/project/issues/d6lts et l'appliquer au site avec les commandes de patch standard.

Les versions exactes à utiliser pour les mises à jour seront indiquées lors de la publication du correctif.

Ces mises à jour de sécurité ne modifieront pas le schéma de base de données par rapport à la dernière version actuellement disponible sur chacune des branches concernées.

Attention sur les sites utilisant 8.3.x/8.4.x, le rapport du module update sur le tableau de bord d'administration disponible sur /admin/reports/status indiquera une mise à jour recommandée vers une release 8.5.x plutôt que vers la version de sécurité 8.3.x/8.4.x, mais compte tenu des évolutions entre les versions 8.3/8.4/8.5, ceci présente un risque d'effets de bord non souhaités, et il est donc préférable d'appliquer les mises à jour indiquées par le bulletin de sécurité plutôt que celles indiquées par le site, afin de pouvoir plus sereinement préparer la mise à jour en 8.5.x pour avril 2018.

Tactique de déploiement

Si votre équipe ou prestataire a d'ores et déjà choisi une tactique, mieux vaut l'appliquer qu'improviser au dernier moment: ce sont ceux qui sont les mieux placés pour connaître les contraintes d'exploitation de votre site.

A défaut, quatre principales tactiques sont envisageables pour ce déploiement. Les détails dépendent évidemment de vos processus de déploiement et, le cas échéant, de ceux de l'agence ou infogérant en charge de votre site. Cela étant dit, les grandes lignes tactiques sont les suivantes, et commencent AVANT la publication du bulletin:

  1. Avant l'après-midi de mercredi 28, mettre à jour le site à la dernière version courante sur la branche concernée: 8.3.x, 8.4.x, 8.5.x. Ne pas tenter à ce stade une mise à jour précipitée vers 8.5.x, pour éviter toute situation problématique à la veille d'une mise à jour de sécurité critique
  2. En fin d'après-midi du 28, préparer une sauvegarde intégrale du/des serveurs, par exemple un snapshot disque. En effet, si un exploit vient à être réalisé avant la fin du déploiement du correctif, seule une restauration intégrale de l'infrastructure - par opposition à une restauration de Drupal seul - permettra de garantir l'absence de maliciel sur les serveurs. S'assurer que cette sauvegarde est terminée pour 20:00, heure de publication annoncée au plus tôt
  3. Dès la publication, télécharger le patch s'il est disponible, ou la version complète recommandées sinon, et en extraire un patch.
  4. Appliquer immédiatement le patch en production. Cela permet de fermer la faille après seulement quelques minutes de vulnérabilité, avec un niveau de risque fonctionnel des plus limités puisque les sites auront été mis au dernier niveau de correction de bogues avant mercredi (cf premier point). Si cette étape n'est pas appliquée, par exemple du fait de règle interdisant les mises à jour en production dans un processus industrialisé certifié, passer immédiatement au point suivant, sinon la suite des opérations peut attendre jeudi matin pour travailler dans de bonnes conditions.
  5. Intégrer la nouvelle version complète au projet, et lui faire passer la suite de tests sur l'environnement de recette/préproduction. Une fois la version validée, la déployer. Fin de l'incident.
  6. Si le patch a été déployé dès le début, le niveau de risque est très faible, et le déploiement peut être réalisé sur les serveurs en l'état. Si l'étape du patch a été omise et que la nouvelle mise en production a été réalisée moins de 4h après la publication de la version de sécurité, le risque demeure faible. Mais si, en l'absence de patch, la mise en production a attendu jusqu'au jeudi matin, il est préférable de réaliser un nouveau cliché des serveurs, puis de restaurer la version de la veille et de lui appliquer la nouvelle version avant de revenir en ligne. Le cliché du matin pourra alors être examiné pour rechercher des traces d'éventuelles tentatives d'intrusion durant la période de vulnérabilité.
  7. Si les contraintes organisationnelles ne permettent pas de réaliser les étapes précédentes, la méthode la plus prudente consiste à mettre le site hors ligne mercredi juste avant 20:00, avec une page statique signalant le caractère volontaire/prudentiel de cette interruption de service, et ne le remettre en ligne qu'une fois la nouvelle version déployée le lendemain
  8. S'il n'est possible ni de suivre les procédures de mise à jour rapides précédentes, ni de mettre le site hors ligne jusqu'à la correction, le plus raisonnable sera de considérer que le site est susceptible d'avoir été exploité, donc réaliser une sauvegarde intégrale des serveurs et des serveurs de logs (journaux) disponible, avant de redéployer sur des machines vierges ou sur la sauvegarde de la veille la version corrigée, puis de procéder à un audit visant à identifier si une pénétration a effectivement eu lieu. A ce stade, la présentation Mon site est hacké, que faire ? pourra vous être utile

Pour plus d'informations

La Security Team pas plus qu'aucune tierce partie ne peut communiquer plus d'informations jusqu'à la publication des correctifs.

L'annonce du correctif sera publiées sur https://www.drupal.org/security, sur Twitter, et par courriel pour les abonnés à la liste de diffusion de la Security Team, à laquelle il est possible de s'abonner en allant sur sa page de profil sur https://drupal.org (pas sur https://drupal.fr), et en se rendant sur l'onglet My newsletters pour s'abonner à cette liste de diffusion.

Les journalistes intéressés par plus d'informations sur les développements de ce sujet sont invités à contacter directement security-press@drupal.org pour obtenir une version centrée sur leurs préoccupations. La Security Team publiera un courriel résumé à destination de la presse en même temps que la publication du code et du bulletin de version associé.

Licence Creative Commons
Cet article, créé par OSInet est mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 France. pour faciliter la diffusion de l'information de sécurité de Drupal.