Site Drupal hacké : Les bonnes pratiques

Drupal urgence sécurité
Que faire quand votre site Drupal a été piraté ? Dans ce post, nous synthétisons une méthode de restauration et résumons quelques bonnes pratiques à suivre pour rétablir et maintenir la sécurité de votre site Drupal.

Avec une équipe dédiée pour la sécurité, Drupal est considéré comme l’un des CMS les plus sécurisés dans le monde de l’Open Source. Les attaques, plus innovantes les unes que les autres, font de la sécurité un enjeu majeur pour la communauté Drupal. Ceci dit, le risque zéro n’existe pas. Vous avez déjà fait face à des attaques, à des pannes, à des problèmes de performance… mais que faire quand votre site Drupal a été piraté ? Dans ce post, nous synthétisons quelques bonnes pratiques à suivre pour rétablir et maintenir la sécurité de votre site Drupal.

Comment savoir si mon site Drupal a été hacké ?

Généralement lorsqu’un site a été piraté, on le remarque rapidement : des éléments de l’interface ou du back-office ont été modifiés, des fichiers sont supprimés, des fonctionnalités sont altérés ou indisponibles... Des contenus ou des liens suspects sont désormais affichés sur le site...

A la moindre suspicion, il est préférable d’analyser le site et le serveur à la recherche de traces de hacking. La liste des moyens pour vérifier si un site a été piraté est non exhaustive, mais voici un bon début pour commencer votre enquête :

  • Analyser les logs serveur - Des messages d’erreurs anormaux peuvent indiquer une attaque malveillante sur le site. Il existe des outils comme Scalp qui permettent d’analyser les logs. Vous pouvez également exécuter des commandes manuelles pour récupérer le contenu du répertoire de logs. Par exemple, sous Linux, la commande Last permet d’afficher la liste des derniers utilisateurs connectés ainsi que leur adresse IP respectives pour repérer les adresses IP inhabituelles qui peuvent trahir une intrusion sur votre site.
  • Analyser les fichiers modifiés - plusieurs moyens permettent de vérifier si certains fichiers ont été modifiés. Par exemple avec Linux, il est possible d’utiliser la commande find/repertoire_a_observer_mtine 1 -print | more pour analyser les derniers fichiers modifiés (les 24h dernières heures).
  • Analyser les messages sur les moteurs de recherche - dans les résultats de recherche Google, ce dernier peut afficher en dessous du résultat de votre site "Ce site risque d’endommager votre ordinateur". Il est également possible d'utiliser un antivirus qui permet de détecter si le site est corrompu. Ces messages sont des indicateurs que votre site semble avoir été victime d'une attaque.   

Quelles solutions possibles ?

Votre site a été piraté, vous en êtes à présent sûr ! Que faire ? 

  • Vous choisissez de restaurer votre site dans un état antérieur et en bon état de fonctionnement (grâce au backup). Et cela est possible seulement dans le cas où vous disposez d’une sauvegarde propre et récente.
  • Vous vous contentez de corriger le site en analysant la faille de sécurité. Comment et par où les hackers ont-il réussi à infiltrer le site ? Vous procédez ensuite à la correction de la faille.
  • Vous êtes plutôt prudent et vous passez en revue toutes les possibilités que les hackers pourraient utiliser pour compromettre votre site et vous essayez d’optimiser au maximum la sécurité de ce dernier.
  • Perdu pour perdu, vous envisagez de refondre votre site (ce qui n’empêche pas que vous devez à priori récupérer vos fichiers et vos données).
  • Une chose est sûre : il faut agir vite. Voici quelques bonnes pratiques à suivre pour sauver votre site Drupal et le maintenir en sécurité.

Comment récupérer mon site Drupal ?

L’objectif principal est de nettoyer votre site et empêcher de nouveaux piratages. Pour cela, plusieurs méthodologies sont possibles pour gérer cette crise, mais vous pouvez partir sur la base de celle-ci :

1. Analyser les problèmes et prévoir un plan d’action

Cette phase doit permettre de mettre en place toutes les actions pour n’en oublier aucune. Il s’agit de documenter :

  • Tous les problèmes rencontrés et les activités anormales sur votre site.
  • La procédure impliquant toutes les étapes pour supprimer les malwares et restaurer le site. Notons, qu’il est plus judicieux de prévoir une méthodologie type avant qu’une situation de piratage ne se présente pour être préparé et gagner du temps.
  • Les mesures de sécurité préventive à mettre en place et à exécuter pour éviter qu’un tel cas de figure ne se reproduise. Pour être efficace, cette initiative doit être également pensée en amont pour prévenir le piratage. Cependant, si le hack est déjà survenu, cette phase reste indispensable pour prévoir des précautions de sécurité préventive afin de minimiser les risques d’un renouvellement d’une quelconque attaque.  

2. Faire une copie intégrale de votre site Drupal

Avant de commencer une analyse sur la façon dont votre site a été hacké, il convient impérativement de réaliser une copie de tous les fichiers, de la base de données et de l’environnement système. Vous pouvez utiliser un support de stockage externe pour ces copies et les stocker en dehors du site. Tandis que vous parcourez les fichiers, pensez à détecter les virus et les programmes malveillants qu’il faudra nettoyer. N’hésitez pas à créer de nouvelle sauvegardes et les stocker dans un répertoire différent. Ces sauvegardes permettront d’avoir des versions du site avant votre intervention de nettoyage. Ainsi, si vous avez aggravé ou cassé quelque chose en voulant debuguer, vous pourrez revenir en arrière et annuler les modifications.

3. Avertir son hébergeur que le site Drupal a été piraté

Le mieux est d’avertir son hébergeur le plus tôt possible. Ainsi celui-ci pourra commencer à scanner ses propres systèmes et vous aider dans le processus de récupération et de sécurisation du site.

4. Analyser les serveurs et le PC pour en détecter les fichiers contaminés

Avant de changer le mot de passe de votre site, il convient de constater l’origine du piratage. Celui-ci a t-il infecté les serveurs ou l’ordinateur, voire les deux ? Plusieurs outils anti-malware et anti-virus existent pour permettre de détecter cela, comme AVG, BitDefender, Malwarebytes, etc.

5. Envisager de mettre votre site hors ligne le temps de corriger la faille

Tout dépend du type de site et de la fréquentation de celui-ci. S’il s’agit d’un site e-commerce, il est impératif de mettre le site hors ligne pour éviter que les malwares et les spams ne se propagent mais également pour ne pas aggraver la sécurité au niveau des données sensibles des utilisateurs (moyens de paiement, etc.)  Attention le "Mode maintenance" Drupal n’est pas la même chose que le "Mode hors ligne", tant que votre site est en ligne, les programmes malveillants continuent de se propager.

6. Fermer tous les accès possibles pour les hackers

Nettoyer les programmes, le code et les logiciels malveillants ne suffit pas. Il faut impérativement fermer toutes les portes d’accès possibles pour éviter de nouveaux piratages. Où chercher ? Voici quelques éléments qu’il faudra impérativement surveiller pour en optimiser la sécurité :

  • Les logs d’accès : il s’agit de vérifier les scripts PHP et les requêtes POST ajoutées au répertoire.
  • Les configurations dans le cas d’un site ou d'une fonctionnalité e-commerce : il convient de vérifier tous les modes de paiement, les adresses de livraison, les comptes liés ainsi que les données suspectes récemment ajoutées.
  • Les mots de passes : il est impératif de vérifier / modifier les mots de passe FTP, les mots de passe administrateur, etc.
  • Les règles et filtres e-mail : il est recommandé de vérifier si la messagerie a été sécurisée notamment avec des réponses complexes aux questions de sécurité. Une analyse de la conformité des e-mails est également appréciable pour vérifier si une adresse e-mail non désirée est présente dans la messagerie.

7. Enquêter sur l’attaque et identifier la source

A présent il faut auditer votre site. Vous pouvez procéder à l’inspection directement sur la version du site infecté si vous ne disposez pas de sauvegarde récente. Dans le cas contraire, il est possible de faire une analyse comparative avec un environnement de test ou de préproduction dont la version est assez récente pour en comparer le code avec la version du site en ligne. De cette manière, vous pourrez traquer les fichiers infectés, les programmes malveillants présents sur le site et les paramètres non autorisés. Où chercher ? Plusieurs endroits sont à inspecter minutieusement :

  • Les fichiers .php et les fichiers .html ;
  • Les tables de sessions ;
  • Les fichiers nouvellement créés ou modifiés ;
  • Les comptes utilisateurs nouveaux ou mis à jour récemment ;
  • Les répertoires ;
  • La base de données.

8. Restaurer le site Drupal

Une fois que vous avez détecté et nettoyé tout le code malveillant, il est temps de restaurer votre site Drupal en réparant tous les dégâts causés ! Deux principales options sont envisageables :

  • Si vous disposez d’une sauvegarde propre et récente : c’est l’idéal ! Vous pouvez restaurer votre site. Il est impératif d’être sûr de la date et de l’heure du piratage pour restaurer une version antérieure. Toutefois, il sera indispensable de mettre en place une action régulière de maintenance préventive.
  • Vous n’avez pas de version récente, vous ne connaissez pas la date et l’heure du piratage et après l’audit vous constatez que les dommages sont trop importants : alors il faut envisager l’option de la refonte du site Drupal. Cette solution est plus lourde mais beaucoup plus prudente : les risques en termes de sécurité sont moins importants puisque vous ne restaurez pas une version de site qui a été sujette à un piratage. De plus, il se peut que vous passiez plus de temps à restaurer votre site qu’à le refondre !

9. Prendre des précautions supplémentaires sur la gestion des données utilisateur

Il s’agit de mettre en place des mesures de sécurité préventive pour minimiser les risques d’un nouveau piratage. Plusieurs moyens sont possibles :

  • Mettre en place un certificat SSL pour sécuriser l’échange des données ;
  • Réaliser régulièrement les opérations de maintenance préventive (montées en version du Core et des modules contribués) ;
  • Réaliser régulièrement des sauvegardes du site ;
  • Vérifier à nouveau des fichiers de logs pour savoir si les données sur les utilisateurs ont-elles été copiées, modifiées ou téléchargées ;
  • Crypter les connexions aux services utilisés pour l’envoi de données utilisateur confidentielles.

10. Un dernière vérification avant de mettre en ligne

Votre site est à présent nettoyé est restauré mais un dernier audit est recommandé avant de le mettre en ligne pour être sûr qu’aucun programme malveillant ne persiste et surtout que les mesures de sécurité préventive ont été appliquées pour éviter un nouvel épisode !

Conclusion

Le processus de récupération de votre site peut être long et fastidieux. Pour éviter cette mésaventure, l’un des seuls moyens est de prendre au sérieux l’enjeu de la sécurité de votre site Drupal en prévoyant des mesures de sécurité préventive et être soigneusement préparé à une situation de piratage avec une procédure prédéfinie. Faites les mises à jour de sécurité Drupal, prévoyez des sauvegardes régulières de votre site, tenez vous en veille permanente sur les alertes transmises par la communauté Drupal, disposez d’un centre de service de maintenance ou prévoyez des ressources en interne pour cela…il vaut mieux prévenir que guérir !