
Revue de sécurité - un module pour Drupal
Lorsqu'on travaille sur un projet, il existe de nombreuses façons d'augmenter la sécurité d'un site web. L'une d'elles est l'utilisation de tests de sécurité automatisés qui aident les développeurs à éliminer un maximum de bugs de sécurité.
Chez Droptica, nos développeurs Drupal se concentrent sur la fourniture des solutions les plus sûres. Le CMS Drupal lui-même nous aide en cela, car il est plus sûr que d'autres CMS. Grâce à la vaste communauté axée sur les projets open source, dont Drupal fait partie, les clients reçoivent, d'une part, des solutions efficaces et, d'autre part, peuvent être certains de leur sécurité. Il convient à ce point de mentionner une équipe spéciale dédiée à cette question, qui est la Drupal Security Team.
Dans ce texte, je voudrais vous présenter le fonctionnement de l'un des outils pour augmenter la sécurité de votre site web – le module Security Review.
Dates
Le module a été diffusé le 4 novembre 2009, et la mise à jour la plus récente a été introduite le 4 octobre 2019. Le module dispose d'une version pour Drupal 7 et 8
Popularité du module
Selon drupal.org, 30 000 sites utilisent le module, 28 000 desquels sont en Drupal 7 et 2 000 sont en Drupal 8.
Créateurs du module
Le créateur du module est l'utilisateur nommé greggles. Le module est soutenu et développé par les organisations Acquia, CARD.com et Google Summer of Code. Les contributions les plus importantes ont été apportées par les utilisateurs coltrane (111), banviktor (58) et greggles (8).
À quoi sert le module ?
Le module effectue un audit automatique du site détaillant de nombreux vecteurs d'attaque pouvant mener à des erreurs de sécurité. Voici la liste de certains d'entre eux :
Permissions de fichiers
Enregistrer des fichiers dans le répertoire racine du serveur est dangereux et peut entraîner une erreur d'exécution de code à distance. Un attaquant peut exploiter cette vulnérabilité pour prendre le contrôle d'un site web. Plus d'informations sur la configuration correcte des permissions peuvent être trouvées à ce lien.
La liste des balises acceptées par les formats de texte disponibles dans le CMS
Certaines balises HTML sont considérées comme non sécurisées. Cela signifie qu'elles peuvent permettre à un attaquant de prendre le contrôle d'un site web. Drupal dispose d'un moteur de filtrage HTML qui supprime les balises malveillantes - ce test vérifie si le filtrage est correctement configuré.
Rapport d'erreurs
Drupal peut divulguer des informations sur des erreurs à des personnes non autorisées. Un attaquant peut utiliser ces informations pour affiner une attaque ou trouver plus de vecteurs.
Extensions de fichiers non sécurisées
Certaines extensions sont considérées comme non sécurisées. Cela signifie qu'elles peuvent causer des erreurs de sécurité telles que l'exécution de code à distance. Cela permet à un attaquant de prendre le contrôle d'un site web, et Security Review vérifie si Drupal permet le transfert de fichiers avec des extensions non sécurisées.
Erreurs de base de données
De nombreuses erreurs de base de données déclenchées par une seule adresse IP sont un signe que quelqu'un tente de lancer une attaque par injection SQL. Le module informe si de multiples erreurs de base de données ont été déclenchées depuis la même adresse IP.
Force brute sur le panneau de connexion
De nombreuses tentatives de connexion échouées indiquent que quelqu'un essaie de pénétrer dans le compte d'un autre utilisateur. Vous en êtes informé.
Hôtes de confiance (attaque d'en-tête HTTP host)
La configuration correcte des hôtes de confiance protège contre l'attaque d'en-tête HTTP host, une description détaillée des réglages est disponible à ce lien.
Accès aux vues
Security Review recommande que l'accès aux vues Drupal dispose au moins d'un contrôle de ‘accès au contenu’. Ce test vérifie si les vues ont au moins un niveau minimum de contrôle d'accès.
Security Review n'apporte aucune correction de sécurité mais suggère seulement où des vecteurs d'attaque peuvent être présents. Ce sont des changements suggérés qui doivent être analysés par un spécialiste.
Déballage
L'installation du module est standard, mais nous suggérons d'utiliser le Composer :
composer require drupal/security_review
Paramètres
Sous l'adresse
/admin/config/security-review
vous pouvez configurer le module en sélectionnant les rôles qui ne sont pas de confiance. Security Review utilise cela comme base pour vérifier si les utilisateurs avec des rôles non de confiance disposent de permissions pour les fonctionnalités pouvant causer des erreurs de sécurité. Vous pouvez également choisir quels éléments de la liste de contrôle vous souhaitez omettre et choisir la méthode de vérification des hôtes de confiance.
Configuration des rôles
Le module fournit deux types de permissions : ‘accéder à la liste Security Review’, ‘exécuter les vérifications de sécurité’. Tout d'abord, vous devez configurer les rôles de confiance qui seront capables de lire les rapports et d'exécuter le scan. Pour ce faire, allez à
/admin/people/permissions
et configurez les permissions pour les rôles sélectionnés :
Utilisation du module
Le module a déjà été configuré. Pour lancer un audit, il suffit d'aller à
/admin/reports/security-review
et de cliquer sur “Exécuter la liste de contrôle”, et Security Review effectuera l'audit. Vous pouvez également utiliser la commande drush :
drush secrev
Chaque test a un résumé que vous pouvez voir en cliquant sur les “détails”. Un exemple pour “Les erreurs sont écrites à l'écran” :
En passant aux paramètres de journalisation des erreurs, vous pouvez voir que Drupal affiche toutes les informations, y compris le backtrace :
Dans le cas d'une version de production d'un site web, réglez cette option sur “aucun” afin de minimiser le risque de divulgation d'informations pouvant aider un attaquant à détourner le site web.
Des informations similaires sont fournies pour chacune des erreurs de sécurité détectées lors de l'audit. Tous les éléments doivent être examinés manuellement, et des changements appropriés doivent être effectués – si nécessaire.
Modules alternatifs
Le module Paranoia identifie toutes les zones où un utilisateur peut être en mesure de déclencher le code PHP personnalisé et tente de les bloquer. Cela réduit la possibilité qu'une erreur d'exécution de code à distance se produise. De plus, le module protège le compte administrateur principal (compte avec id 1), empêchant son édition et bloquant la possibilité de se désinstaller de manière standard (pour désinstaller le module paranoia, vous devez modifier manuellement la base de données). Toutes les fonctionnalités fournies par le module Paranoia sont destinées à augmenter la sécurité d'un site web.
Résumé
Le module Security Review est un outil extrêmement important et utile. Grâce aux informations recueillies par le module, vous obtenez des connaissances inestimables sur ce qui doit être fait pour améliorer la sécurité de votre site web. Après analyse des résultats, vous pouvez éliminer certains vecteurs d'attaque. Notre équipe recommande l'utilisation de ce module lors de la création d'un site web.