Les meilleures pratiques pour sécuriser votre site Drupal

Avez-vous rencontré Drupal Security et vous vous demandez comment protéger votre application ?

Tu es venu au bon endroit.

Au-delà des gains financiers que l’on peut réaliser en créant des applications logicielles robustes, innover dans ce secteur donne aux entreprises l’opportunité d’avoir un impact fort sur la vie des utilisateurs. Pour preuve, plusieurs sociétés ont déjà fait appel à DevTeam.space pour développer leurs produits. Trois exemples parlent d’eux-mêmes :

  1. Logiciel de gestion immobilière, Programme de vérification de propriété
  2. Cadeau Swift, Application eCommerce sur Android et iOS
  3. Reconnaissance de visage, sexe, âge, Solution d’apprentissage automatique

Introduction

Chaque semaine, de nouveaux incidents de piratage sont signalés à travers la planète. Certains sont bénins, d’autres se soldent par la perte de données personnelles, financières ou sensibles.

Le propriétaire d’un site redoute par-dessus tout de voir son travail saboté ou effacé par des individus malveillants ou des programmes automatisés. Les pirates, spammeurs et autres intrus rôdent en permanence, à l’affût de la moindre faille à exploiter. Le piratage figure aujourd’hui parmi les menaces majeures qui pèsent sur les entreprises du web. Prendre le temps de sécuriser son site n’est donc pas un luxe.

Dans ce billet, nous allons justement aborder ce défi. Focus sur Drupal : que vous soyez développeur, responsable technique, administrateur système ou simplement en train d’envisager Drupal pour la première fois, ce guide vous permettra d’appréhender les mécanismes de sécurité de la plateforme, de comprendre comment la défendre face aux utilisateurs indésirables et de protéger efficacement vos données.

Voici les principaux thèmes que nous allons explorer :

  • Quel niveau de vulnérabilité présente Drupal ?
  • Fonctionnalités de sécurité et points différenciants
  • Modules Drupal à installer pour renforcer la sécurité
  • Recommandations concrètes pour sécuriser votre site Drupal
  • Résumé

Quelle est la vulnérabilité de Drupal ?

À quel risque s’expose-t-on lorsqu’on utilise Drupal ? Selon la base Common Vulnerabilities and Exposures (CVE), plus de 290 failles ont été recensées depuis 2002.

En scrutant ces données, un chiffre saute aux yeux : 46 % des vulnérabilités détectées sur Drupal proviennent de scripts intersites. Voyons plus en détail la répartition :

Source : (Jackson, 2018)

Caractéristiques de sécurité et facteurs de différenciation

Drupal propulse près de 2,5 % de l’ensemble des sites web. Ce CMS open-source écrit en PHP se distingue par la fréquence de ses mises à jour, qui apportent de nouvelles fonctionnalités et une sécurité renforcée.

Sa large communauté de développeurs contribue sans relâche à l’écosystème des modules et thèmes. Le projet a été pensé pour limiter les failles et garantir que les sites construits sur cette base restent sûrs.

Attention toutefois : une version obsolète de Drupal expose votre site à des faiblesses. D’où l’intérêt de connaître les bonnes pratiques de sécurité et de les appliquer. Pour bien protéger son site, il est indispensable de comprendre le fonctionnement des principales protections offertes par Drupal, comme :

Accès sécurisé Les mots de passe sont stockés de façon chiffrée, ce qui permet d’appliquer des politiques robustes sur la composition, l’expiration ou la complexité des accès. Ce mécanisme d’authentification limite l’intrusion des robots ou des utilisateurs non autorisés.

Contrôle d’accès granulaire Drupal permet de paramétrer très finement qui peut consulter ou modifier chaque section du site. Tout repose sur un système de rôles utilisateurs et d’autorisations ajustables.

Un administrateur peut ainsi, par exemple, créer un rôle « Auteur » limité à la modification de contenus, sans droit de publication ou de suppression.

Face à d’autres CMS, Drupal s’avère résistant aux logiciels malveillants les plus courants. La plateforme offre aussi une grande souplesse via ses nombreux thèmes et options de personnalisation.

Gestion des mises à jour avec Update Manager Toute plateforme logicielle doit être régulièrement corrigée. Chaque nouvelle version de Drupal corrige des bugs, renforce la sécurité et comble les failles.

Le module Update Manager intégré signale automatiquement la disponibilité des nouveaux modules ou thèmes. Cette fonctionnalité s’impose comme un pilier de la sécurité pour tout site Drupal.

Modules pour sécuriser davantage votre site Drupal

Voici quelques modules incontournables pour renforcer la sécurité de votre installation :

  • Formulaire de connexion Ce module sécurise les accès de connexion. Il permet par exemple de : limiter le nombre d’essais échoués, filtrer les accès par IP, masquer la cause de l’échec d’identification ou encore générer des alertes en cas de tentative suspecte.
  • Stratégies de mot de passe Ce module impose la création de mots de passe solides, basés sur l’utilisation de majuscules, de caractères spéciaux, de chiffres et d’une longueur minimale. Il empêche aussi la réutilisation de mots de passe trop proches et notifie automatiquement les utilisateurs lorsqu’un renouvellement est nécessaire.
  • Captcha Pour contrer les robots spammeurs, Drupal propose la mise en place de CAPTCHA afin de distinguer les humains des scripts automatisés. Cette barrière bloque l’injection massive de données dans la base ou la messagerie.
  • Contrôle des inondations Face aux attaques par force brute, ce module limite les tentatives de connexion consécutives et bloque les accès suspects.
  • Prévention du détournement Ce module ajoute une protection aux pages déjà sécurisées et évite la prise de contrôle illicite sur les pages SSL du site.
  • Délai Ce module gère l’expiration automatique des sessions inactives, personnalisable selon le rôle utilisateur. Certains utilisateurs peuvent même choisir leur propre durée de session pour plus de sécurité.
  • Sessions simultanées Ce module interdit à un même compte d’ouvrir plusieurs sessions en parallèle sur le même navigateur. Une nouvelle session n’est possible qu’après déconnexion de la précédente, limitant ainsi les risques de détournement de compte.
  • Accès au contenu Ce module permet de restreindre l’accès, la modification ou la suppression de contenus en fonction du rôle ou de l’utilisateur. Les paramètres par défaut sont ajustables selon les besoins spécifiques de chaque profil.

Conseils pour sécuriser votre site web Drupal

Après avoir abordé les vulnérabilités et les modules de protection, il est temps de passer à l’action avec des recommandations concrètes pour muscler la sécurité de votre site Drupal.

Mettez à jour Drupal sans attendre Si vous utilisez déjà Drupal, la première étape consiste à migrer vers la version la plus récente, par exemple Drupal 8 ou toute version ultérieure disponible. Testez ensuite les fonctions clés du site (boutons, formulaires, envoi d’e-mails) afin de détecter d’éventuels problèmes.

La mise à niveau ne se limite pas à de nouvelles fonctionnalités : elle apporte aussi les derniers correctifs de sécurité pour protéger votre plateforme.

Gardez vos modules à jour Mettre à jour le cœur du CMS ne suffit pas. Assurez-vous aussi que vos modules complémentaires sont maintenus à jour pour limiter les failles exploitables.

Des modules ou scripts obsolètes exposent votre site à des attaques. En restant à la page, vous profitez des patches les plus récents et évitez les failles déjà connues.

Choisissez vos modules avec discernement Drupal propose des milliers de modules pour personnaliser votre site. Mais chaque ajout est une surface d’attaque potentielle. Installez uniquement ceux dont vous avez réellement besoin.

Contrôlez les fichiers téléchargés Si vous autorisez les utilisateurs à déposer des fichiers sur votre site, vérifiez les types autorisés. Sinon, un pirate pourrait injecter un script ou un logiciel malveillant à votre insu.

Pour limiter les risques, Drupal inclut une gestion des « Content-Type ». Voici comment affiner les restrictions :

  • Dans « Structure > Types de contenu > Gérer les champs », cliquez sur « Modifier » à côté de l’élément Images pour limiter les extensions autorisées.
  • Pour accepter des fichiers comme les PDF, rendez-vous dans « Administrer > Configuration du site > Chargement de fichiers » et supprimez les extensions HTML ou script de la liste des fichiers acceptés.
  • N’oubliez pas d’enregistrer vos modifications.

Désinfectez le code HTML avec « HTMLLawed » Des utilisateurs malveillants peuvent tenter d’injecter du code HTML dangereux. Le module HTMLLawed vous aide à filtrer et à nettoyer le code inséré, selon des règles que vous définissez. Installer ce module ajoute une barrière supplémentaire contre les attaques par injection.

Duo Security, Authentification à deux facteurs La validation en deux étapes renforce la sécurité en demandant aux utilisateurs de prouver leur identité via deux méthodes différentes.

L’activation du module Duo Security impose par exemple, en plus du mot de passe, la saisie d’un code généré par une application mobile. Une double vérification qui limite considérablement les risques de piratage.

Plus d’informations sur ce module et téléchargement : https://www.drupal.org/project/duo.

Module Paranoia Ce module cible les points faibles où un utilisateur pourrait exécuter du code PHP via l’interface web et neutralise ces failles. Parmi ses actions :

  • Désactivation de l’autorisation « Utiliser PHP pour la visibilité du bloc »
  • Blocage de la modification du compte utilisateur #1
  • Suppression des autorisations à risque
  • Désactivation de la création de formats PHP utilisant le filtre PHP

Paranoia limite ainsi la possibilité pour un pirate de s’octroyer des droits avancés sur votre site. Pour en savoir plus, consultez la documentation officielle.

Enfin

Une fois les modules clés installés et configurés, prenez le temps de passer en revue votre infrastructure, vos politiques de mots de passe et la fréquence de vos sauvegardes. Voici d’autres recommandations à considérer pour renforcer la sécurité de votre site Drupal.

Adoptez des mots de passe robustes Des identifiants complexes sont indispensables pour barrer la route aux attaques automatisées. Mettez en place une politique exigeant la création de mots de passe solides.

De nombreux pirates utilisent des robots qui tournent en continu pour tester des combinaisons de connexions. Imposer un niveau d’exigence dès la création d’un mot de passe diminue fortement le risque d’intrusion.

Sécurisez vos connexions Assurez-vous que vos échanges avec le serveur sont chiffrés, quelle que soit votre localisation. Optez pour le transfert sécurisé SFTP plutôt que les protocoles classiques.

Attention : certains clients FTP enregistrent des mots de passe encodés sur votre machine, pouvant être décodés. Évitez si possible ce stockage local, ou protégez-le par un mot de passe principal. Pensez aussi à bien configurer les règles de pare-feu, aussi bien chez vous qu’au bureau, et à ne jamais faire confiance aux réseaux publics.

Installez un certificat HTTPS/SSL Pour les sites e-commerce ou ceux gérant des données sensibles, chiffrer les communications s’impose. Le protocole SSL (Secure Sockets Layer) protège les échanges entre le navigateur et le serveur Drupal.

On pourrait croire qu’un blog n’a pas besoin de chiffrement, mais dès que vous ajoutez un module e-commerce (par exemple Drupal Commerce), l’activation du certificat SSL devient incontournable.

Anticipez la catastrophe avec des sauvegardes régulières La prévention passe aussi par la planification du pire. En cas de piratage ou d’effacement accidentel de la base de données, disposer de sauvegardes à jour vous permettra de redémarrer rapidement, en limitant la casse.

Le module « Sauvegarder et migrer » facilite la création et la restauration de copies, avec prise en charge des formats gzip, bzip ou zip. Vous pouvez choisir de sauvegarder tout ou partie des tables, les télécharger ou les transférer vers un serveur distant. La planification automatique des sauvegardes vous évite d’y penser au quotidien.

Protégez les fichiers critiques de votre serveur Limitez l’accès aux fichiers sensibles via le fichier .htaccess de votre serveur web.

Ce fichier permet d’indiquer à Drupal la gestion des accès selon les types de fichiers. Par exemple, pour autoriser tous les visiteurs à accéder à robots.txt :

Order allow,deny
Allow from all

Vous pouvez également restreindre l’accès à certains fichiers de configuration, en l’autorisant uniquement à des IP spécifiques :

Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 123.123.123.123

Supprimez les modules et points d’accès inutiles Limitez votre installation aux fonctionnalités strictement nécessaires. Moins il y a de modules actifs, moins il y a de failles potentielles à surveiller. Supprimez tout ce qui n’est pas indispensable.

Pensez aussi à restreindre l’accès à la console d’administration selon l’adresse IP. Beaucoup d’entreprises utilisent des plages IP statiques : limitez les connexions à ces plages. Si l’accès distant est requis, optez pour un VPN.

Gérez finement les accès utilisateurs Si plusieurs utilisateurs accèdent à votre site, définissez précisément les rôles et droits associés à chacun.

Adoptez le principe du « moindre privilège » : chaque utilisateur ne doit accéder qu’aux fonctions nécessaires à ses missions. Par exemple, un rédacteur n’a pas besoin de droits d’administration. Ce découpage limite l’impact possible d’erreurs ou d’actions malveillantes.

Supprimez les portes dérobées cachées Les pirates cherchent sans cesse à installer des accès secrets sur votre site. Ces backdoors prennent souvent la forme de fichiers apparemment légitimes, mais placés dans des répertoires inappropriés.

Des malwares peuvent être injectés dans des dossiers tels que /modules, /themes, /sites/all/modules ou /sites/all/themes. Les fonctions PHP courantes à surveiller incluent :

  • str_rot13
  • gzuncompress
  • gzinflate
  • eval
  • exec
  • create_function
  • href
  • curl_exec
  • stream

Vérifiez régulièrement ces points pour déceler d’éventuelles faiblesses ou appliquer les correctifs nécessaires.

Vérifiez la fiabilité de vos sources Lorsque vous sélectionnez un thème ou un module, renseignez-vous sur l’auteur ou l’équipe qui l’a créé. Privilégiez les modules maintenus et mis à jour régulièrement, disponibles sur la bibliothèque officielle Drupal Download and Extend. Évitez tout téléchargement aléatoire trouvé sur le web.

Résumé

Vous disposez désormais d’un panel de méthodes concrètes pour renforcer la sécurité de votre site Drupal. Nous avons détaillé les vulnérabilités potentielles, exploré les protections natives et les modules à privilégier, et fourni une feuille de route pour bâtir une défense solide.

Que vous soyez un professionnel chevronné ou un nouvel utilisateur de Drupal, vous avez désormais de quoi renforcer vos défenses face aux cyberattaques. Quels outils ou stratégies avez-vous mis en place sur votre propre site ? Votre expérience mérite d’être partagée.

Références : Jackson, B. (2018). Guide complet sur la sécurité Drupal. Blog KeyCDN. Extrait le 2 février 2018, de https://www.keycdn.com/blog/drupal-security/

Foire aux questions

Comment protéger mon site web ?

De nombreuses méthodes et outils peuvent vous aider à sécuriser votre site contre les attaques. Drupal, reconnu pour ses options de sécurité, en fait partie. Il est également conseillé que vos développeurs adoptent des pratiques de codage irréprochables.

Drupal Security Day : comment installer ?

Activez d’abord le module gestionnaire de mises à jour, puis rendez-vous sur /admin/reports/status. Un message vous indiquera les mises à jour disponibles, que vous pourrez installer directement.

Comment ajouter un certificat de sécurité dans Drupal ?

Procurez-vous un certificat SSL, configurez le serveur, activez SSL puis finalisez l’installation. Ainsi, votre site profitera d’une meilleure protection lors des échanges de données.