Article original : How to Use WPScan to Keep Your WordPress Site Secure

Plus de 40 % du web est alimenté par WordPress. Mais cela fait de ce CMS populaire une cible attrayante pour les pirates.

Ainsi, si vous gérez un site WordPress, vous devrez vous assurer qu'il est sécurisé. Et ce n'est pas seulement une tâche technique, mais aussi une responsabilité clé à plusieurs égards, tels que la réputation de la marque, la violation de données et la continuité des activités.

Un outil qui se distingue dans l'écosystème WordPress est WPScan. C'est un scanner de sécurité spécialement conçu pour WordPress. Il est disponible avec une licence payante et gratuite, selon vos besoins. Il est également préinstallé dans les distributions Kali Linux.

Que vous soyez un administrateur de site expérimenté ou un propriétaire de site cherchant à améliorer la sécurité de votre site, WPScan peut vous aider à identifier les vulnérabilités avant que les attaquants ne les exploitent.

Avant de continuer, une chose très importante : le but de cet article est d'aider les individus et les organisations à renforcer la sécurité de leurs sites WordPress en utilisant efficacement WPScan.

Bien que cet outil soit incroyablement puissant pour identifier les vulnérabilités, il est important de souligner que toute utilisation non autorisée de WPScan, telle que l'analyse de sites web sans autorisation appropriée, n'est pas seulement contraire à l'éthique mais aussi illégale.

Mon objectif en partageant ces informations est de donner aux administrateurs de sites et aux développeurs les moyens de sécuriser proactivement leurs sites web, de protéger leurs données et de créer un environnement en ligne plus sûr pour tous.

Ce que nous allons couvrir :

  1. Qu'est-ce que WPScan ?

  2. Comment analyser votre site WordPress avec WPScan

  3. Que faire des résultats de WPScan

  4. Limitations de WPScan

  5. Meilleures pratiques pour utiliser WPScan

  6. Comment surveiller les résultats efficacement

  7. Conclusion

Qu'est-ce que WPScan ?

WPScan est un outil en ligne de commande qui vous aide à identifier les vulnérabilités potentielles dans votre installation WordPress. C'est comme un garde de sécurité pour votre site web, surveillant les plugins obsolètes, les mauvaises configurations et autres problèmes courants.

Ce qui rend WPScan unique, c'est son focus sur WordPress. Il utilise une base de données maintenue par des experts en sécurité, qui est régulièrement mise à jour pour suivre des milliers de vulnérabilités connues dans le cœur de WordPress, les plugins et les thèmes.

Que peut faire WPScan ?

Voici quelques-unes des choses que WPScan peut vous aider à faire :

  • Détecter les versions obsolètes du cœur de WordPress.

  • Identifier les vulnérabilités dans les plugins et les thèmes.

  • Énumérer les utilisateurs (par exemple, découvrir les noms d'utilisateur).

  • Tester les mots de passe faibles (en utilisant une attaque par dictionnaire).

  • Trouver des fichiers sensibles exposés (comme les sauvegardes ou les journaux de débogage).

Voyons maintenant les commandes les plus courantes que vous pouvez utiliser.

Comment analyser votre site WordPress avec WPScan

1. Analyse de base

Une analyse de base fournit un aperçu de la sécurité de votre site WordPress en identifiant les vulnérabilités ou les mauvaises configurations clés. Elle peut détecter la version du cœur de WordPress et la signaler si elle est obsolète, mettant en évidence les risques potentiels tels que les vulnérabilités d'injection SQL ou de script inter-site (XSS) associées aux anciennes versions.

L'analyse peut également révéler des fichiers de sauvegarde accessibles publiquement (par exemple, .sql ou .zip) ou des fichiers de débogage comme debug.log, qui pourraient exposer des informations sensibles telles que les identifiants de la base de données ou les chemins du serveur.

Elle peut signaler les en-têtes de sécurité HTTP manquants ou mal configurés, tels que Strict-Transport-Security (HSTS) ou Content-Security-Policy (CSP), qui sont cruciaux pour se protéger contre les attaques de rétrogradation de protocole et l'exécution non autorisée de scripts.

Les répertoires ouverts qui exposent la structure de fichiers de votre site et les plugins ou thèmes potentiellement vulnérables peuvent également être signalés s'ils sont identifiés dans les métadonnées publiques.

Ces résultats fournissent un point de départ pour traiter les lacunes de sécurité fondamentales.

wpscan --url http://votresite.com

Voici ce que vous verrez dans votre terminal lorsque vous exécuterez cette commande :

Résultats de l'analyse de base avec WPScan

2. Énumération des utilisateurs

L'énumération des utilisateurs est un processus d'identification des noms d'utilisateur sur votre site WordPress. Connaître ces noms d'utilisateur peut aider les attaquants à cibler des comptes spécifiques pour des attaques par force brute.

Pour énumérer les utilisateurs, exécutez :

wpscan --url http://votresite.com --enumerate u

La sortie affichera les noms d'utilisateur :

3650be6a-e8e6-4c8b-a183-f986643c8ac2

Si vous trouvez des noms d'utilisateur par défaut comme admin, vous devriez les remplacer par quelque chose d'unique et sécurisé.

Voici quelques bonnes pratiques pour les noms d'utilisateur :

  • Évitez les noms par défaut : Remplacez les noms d'utilisateur par défaut comme admin ou user par quelque chose d'unique et non facilement devinable.

  • Renommez les noms d'utilisateur vulnérables : Pour changer un nom d'utilisateur, vous pouvez créer un nouvel utilisateur avec des privilèges d'administrateur, transférer la propriété des articles ou du contenu, puis supprimer l'ancien utilisateur.

  • Utilisez les noms d'utilisateur basés sur les rôles avec prudence : Évitez de nommer les comptes d'après leurs rôles (par exemple, editor, manager), car ceux-ci peuvent être des cibles faciles.

  • Implémentez des verrouillages de connexion : Combinez des noms d'utilisateur sécurisés avec des plugins qui verrouillent les comptes après plusieurs tentatives de connexion infructueuses.

  • Activez l'authentification à deux facteurs (2FA) : L'ajout de 2FA garantit que même si un nom d'utilisateur est deviné, le compte reste sécurisé.

3. Vérification des plugins et des thèmes

Les plugins et les thèmes peuvent avoir des problèmes de sécurité. WPScan peut lister tous les plugins et thèmes installés, ainsi que les vulnérabilités associées.

Pour les plugins, exécutez ceci :

wpscan --url http://votresite.com --enumerate p

Il aura une sortie comme ceci :

Résultats de l'analyse des plugins

Pour les thèmes, exécutez ceci :

wpscan --url http://votresite.com --enumerate t

Il aura une sortie similaire à ceci :

Résultats de l'analyse des thèmes

Recherchez les versions obsolètes ou les vulnérabilités connues dans les résultats, et mettez à jour ou remplacez immédiatement ces composants.

Examinons quelques problèmes de sécurité courants dans les plugins et les thèmes.

Tout d'abord, nous avons le Cross-Site Scripting (XSS). Une gestion non sécurisée des entrées dans les plugins ou les thèmes peut permettre aux attaquants d'injecter des scripts malveillants, potentiellement volant des informations utilisateur ou prenant le contrôle des sessions admin. Un site WordPress mal sécurisé avec une vulnérabilité XSS peut permettre aux attaquants de voler des cookies de session, potentiellement obtenir un accès admin non autorisé, injecter des redirections malveillantes, emmener les utilisateurs vers des sites de phishing, afficher du contenu trompeur, incitant les utilisateurs à fournir des informations sensibles.

Il y a aussi l'injection SQL. Des plugins ou thèmes mal écrits peuvent permettre aux attaquants de manipuler les requêtes de la base de données, exposant des données sensibles ou endommageant votre site. Les vulnérabilités d'injection SQL peuvent être exploitées pour extraire des données sensibles, contourner l'authentification et modifier ou supprimer des données.

Certains plugins ou thèmes peuvent inclure du code malveillant, intentionnellement ou en raison d'une mauvaise sécurité, qui accorde aux attaquants un accès non autorisé à votre site, connu sous le nom de backdoors. Une fois installé, une porte dérobée peut accorder un accès persistant, permettre des téléchargements de fichiers arbitraires, saper l'intégrité du site et voler des données sensibles.

Il y a aussi l'exécution de code à distance (RCE) – des vulnérabilités qui permettent aux attaquants d'exécuter du code arbitraire sur votre serveur, conduisant souvent à un contrôle total de votre site ou serveur. Une fois que les attaquants obtiennent un accès RCE, ils peuvent créer des utilisateurs admin, exfiltrer des données, lancer d'autres attaques et escalader les privilèges.

Bonnes pratiques :

  • Toujours garder les plugins et les thèmes à jour avec les dernières versions.

  • Supprimer tous les plugins et thèmes inutilisés ou inactifs, car ceux-ci peuvent encore poser un risque.

  • S'assurer que les plugins et les thèmes sont téléchargés depuis des sources fiables et réputées et ont un historique de maintenance active.

  • Envisager d'utiliser des plugins de sécurité pour surveiller les changements dans les fichiers des plugins ou des thèmes et détecter les activités suspectes.

4. Test de mot de passe

WPScan peut tester les mots de passe faibles en tentant une attaque par force brute en utilisant une liste de mots :

wpscan --url http://votresite.com --passwords /chemin/vers/motsdepasse.txt

et voici la sortie sur votre ligne de commande :

Sortie du test de mot de passe

Qu'est-ce que le brute-forcing ?

Le brute-forcing est une méthode utilisée par les attaquants pour deviner les mots de passe en essayant systématiquement toutes les combinaisons possibles jusqu'à trouver la bonne. Lorsqu'il est combiné avec une wordlist – un fichier contenant une collection de mots de passe couramment utilisés – le brute-forcing devient beaucoup plus rapide et efficace.

Une wordlist typique peut inclure :

  • Mots de passe simples comme 123456, password, et qwerty.

  • Motifs courants tels que Spring2024! ou welcome123.

  • Mots de passe divulgués provenant de précédentes violations de données.

En simulant ce type d'attaque, WPScan peut identifier les comptes qui utilisent des mots de passe faibles, vous permettant de traiter les vulnérabilités de manière proactive.

Les mots de passe faibles rendent le brute-forcing plus facile et plus rapide. Un mot de passe court ou prévisible peut être deviné en quelques secondes, tandis qu'un mot de passe long et complexe avec des éléments uniques est exponentiellement plus difficile à craquer.

Comment créer des mots de passe forts

Les mots de passe forts sont votre première ligne de défense contre les attaques par force brute. Voici les caractéristiques clés des mots de passe forts :

  • Longueur : Au moins 12 à 16 caractères.

  • Complexité : Utilisez un mélange de lettres majuscules et minuscules, de chiffres et de caractères spéciaux.

  • Unicité : Évitez de réutiliser les mots de passe sur plusieurs comptes.

  • Imprévisibilité : Évitez les mots du dictionnaire, les phrases courantes ou les informations personnelles comme les dates de naissance.

Stratégies pour générer des mots de passe forts

Il existe diverses mesures que vous pouvez prendre pour créer des mots de passe forts. Tout d'abord, utilisez un générateur de mots de passe. Des outils comme LastPass et Bitwarden peuvent créer et stocker des mots de passe hautement complexes pour vous.

Vous devriez également utiliser des phrases de passe (au lieu de simples mots de passe). Combinez des mots aléatoires et sans rapport avec des chiffres et des symboles, comme Sky#Tree!Motorbike12.

Enfin, évitez les motifs qui pourraient être facilement devinés par un attaquant. N'utilisez pas de motifs séquentiels ou de clavier comme abcdef ou qwerty.

Utilisez des outils pour gérer les mots de passe

Gérer des mots de passe forts peut être difficile. Les gestionnaires de mots de passe simplifient cela en stockant et en remplissant automatiquement vos identifiants de manière sécurisée. Les options populaires incluent :

  • Bitwarden

  • LastPass

Ces outils ont également des fonctionnalités comme l'audit de mots de passe pour détecter les mots de passe réutilisés ou faibles.

Utilisez l'authentification à deux facteurs (2FA)

L'authentification à deux facteurs (2FA) ajoute une couche supplémentaire de sécurité en exigeant que les utilisateurs vérifient leur identité via un second facteur au-delà du mot de passe. Cela peut inclure :

  • Codes à usage unique envoyés par e-mail ou SMS.

  • Codes générés par une application à partir d'outils comme Google Authenticator ou Authy.

  • Vérification biométrique, comme les empreintes digitales ou la reconnaissance faciale.

Même si un attaquant devine votre mot de passe par brute-forcing, le 2FA l'empêche d'accéder à votre compte sans vérification secondaire. Cette étape supplémentaire rend le brute-forcing impraticable, car les attaquants devraient également compromettre votre appareil ou méthode 2FA.

Comment implémenter le 2FA dans WordPress
  1. Installez un plugin WordPress tel que Google Authenticator.

  2. Exigez que tous les comptes utilisateurs, en particulier les administrateurs, activent le 2FA.

  3. Offrez des codes de secours ou des options de récupération au cas où les utilisateurs perdraient l'accès à leur appareil 2FA.

  4. Testez et assurez-vous que le 2FA fonctionne de manière fiable pour tous les rôles d'utilisateur avant de le rendre obligatoire.

L'importance de l'hygiène des mots de passe

En utilisant des mots de passe forts et en implémentant le 2FA, vous pouvez réduire considérablement l'efficacité des attaques par force brute.

La fonction de test de mot de passe de WPScan peut vous aider à identifier les identifiants faibles. Elle souligne également le besoin critique d'une hygiène proactive des mots de passe et de couches de sécurité supplémentaires pour garder votre site WordPress sécurisé.

Que faire des résultats de WPScan

Les rapports de WPScan fournissent des informations exploitables sur la sécurité de votre site. Voici ce que vous pouvez faire avec ces informations :

Tout d'abord, mettez à jour le cœur de WordPress, les plugins et les thèmes : gardez tout à jour pour corriger les vulnérabilités.

Ensuite, traitez les problèmes de configuration : corrigez les permissions de fichiers mal configurées, les en-têtes HTTP non sécurisés et autres avertissements.

Voici quelques exemples de remédiation que vous pouvez appliquer :

  • Indexation des répertoires : Si WPScan détecte des répertoires ouverts, désactivez la navigation dans les répertoires en ajoutant cette ligne à votre fichier .htaccess :

      Options -Indexes
    
  • Permissions de fichiers : Assurez-vous que les fichiers critiques comme wp-config.php sont en lecture seule en définissant les permissions à 440 ou 400 en utilisant la commande :

      chmod 400 wp-config.php
    

Vous devriez également renforcer tous les comptes utilisateurs. Vous pouvez le faire de plusieurs manières :

  • Mettez à jour les mots de passe faibles : Utilisez des mots de passe forts et uniques pour tous les comptes utilisateurs (reportage à la section de test de mot de passe pour des conseils).

  • Supprimez les comptes inutilisés : Supprimez les comptes inactifs, en particulier ceux avec des privilèges d'administrateur.

  • Renommez les noms d'utilisateur prévisibles : Changez les noms d'utilisateur comme admin en quelque chose de moins évident.

Assurez-vous également de sécuriser tous les fichiers sensibles : Si WPScan trouve des fichiers exposés comme debug.log, supprimez-les ou sécurisez-les. Supprimez les fichiers inutiles ou les anciennes sauvegardes.

Pour les fichiers que vous devez garder, déplacez-les dans un répertoire en dehors de la racine web. Vous pouvez également protéger les fichiers avec .htaccess, en bloquant l'accès aux fichiers sensibles en utilisant les règles Deny et Allow :

<Files wp-login.php>
    Order Deny,Allow
    Deny from all
    Allow from 123.456.789.000
</Files>

Limitations de WPScan

WPScan est un outil puissant, mais il a certaines limitations. Soyez simplement conscient d'elles afin de pouvoir prendre d'autres mesures pour protéger vos sites WP.

1. Vulnérabilités connues uniquement

WPScan repose sur sa base de données de vulnérabilités connues, il ne détectera donc pas les exploits zero-day ou les vulnérabilités personnalisées.

Voici quelques conseils sur la manière de pallier ce problème :

  • Restez informé : Surveillez les blogs de sécurité WordPress, les bases de données de vulnérabilités comme CVE ou WPVulnDB, et les forums communautaires pour les menaces émergentes.

  • Utilisez un pare-feu d'application web (WAF) : Des outils comme Cloudflare ou Sucuri peuvent bloquer les activités suspectes et les tentatives d'exploitation de vulnérabilités inconnues.

  • Effectuez des revues de sécurité manuelles : Examinez périodiquement votre site pour détecter les comportements inhabituels ou les modifications non autorisées, en particulier dans les fichiers critiques comme wp-config.php ou votre base de données.

2. Pas de protection en temps réel

WPScan est un outil de diagnostic, pas un pare-feu ou un système de détection d'intrusion. Pour une protection en temps réel, il est bon de combiner WPScan avec d'autres outils.

Voici quelques étapes que vous pouvez suivre :

  • Installez des plugins de sécurité : Utilisez des plugins de sécurité spécifiques pour fournir une surveillance continue, une analyse des logiciels malveillants et une protection par pare-feu.

  • Surveillez les journaux d'activité : Configurez le suivi des activités pour identifier les tentatives de connexion suspectes, les modifications de fichiers ou les actions d'utilisateurs non autorisées.

3. Gourmand en ressources

L'analyse de grands sites avec de nombreux plugins et thèmes peut être longue et peut avoir un impact sur les performances du serveur.

Il existe diverses stratégies que vous pouvez adopter pour atténuer cela, comme planifier les analyses pendant les périodes de faible trafic pour minimiser les perturbations pour les visiteurs du site. Vous pouvez également effectuer des analyses sur une copie de staging de votre site plutôt que directement sur l'environnement en direct.

4. Courbe d'apprentissage

En tant qu'outil en ligne de commande, WPScan peut être intimidant pour les utilisateurs moins techniques. Cependant, la documentation est excellente, et avec la pratique, vous deviendrez compétent.

Si la CLI est écrasante pour vous, essayez de coupler WPScan avec des plugins de sécurité qui offrent une analyse et des rapports basés sur une interface graphique.

Meilleures pratiques pour utiliser WPScan

Pour tirer le meilleur parti de WPScan, vous voudrez adapter son utilisation aux besoins spécifiques de votre site et établir une stratégie robuste pour surveiller les résultats. Voici comment vous pouvez maximiser son efficacité :

Choisissez les bonnes analyses pour votre site

WPScan offre une variété d'options d'analyse, des analyses de base aux vérifications ciblées de vulnérabilités pour les plugins, les thèmes et les comptes utilisateurs. Le choix des bonnes analyses dépend du type de site que vous gérez et de la sensibilité des données qu'il traite.

Pour les petits sites à faible trafic :

  • Priorisez les analyses de base pour vérifier les mises à jour et les vulnérabilités du cœur de WordPress, des plugins et des thèmes.

  • Exécutez des analyses mensuelles ou après des mises à jour majeures.

  • Utilisez l'énumération des utilisateurs (--enumerate u) si vous suspectez des mots de passe faibles ou des noms d'utilisateur par défaut.

Pour les sites d'entreprise de taille moyenne :

  • En plus des analyses de base, incluez l'énumération des plugins et des thèmes (--enumerate p,t) pour vous assurer que tous les composants sont sécurisés.

  • Analyses hebdomadaires pour rester en avance sur les menaces émergentes.

  • Combinez WPScan avec des plugins de journal d'activité pour suivre les actions des utilisateurs et les modifications de fichiers.

Pour les sites à fort trafic ou les sites e-commerce :

  • Effectuez des analyses complètes, y compris l'énumération des utilisateurs (--enumerate u), l'énumération des fichiers (--enumerate f) et les tests de force brute des mots de passe (si autorisé).

  • Analyses quotidiennes ou hebdomadaires pour minimiser les risques.

  • Implémentez des mesures supplémentaires comme le 2FA pour les comptes admin, un pare-feu d'application web (WAF) et des en-têtes de sécurité pour renforcer votre site.

Pour les sites traitant des données sensibles :

  • Priorisez toutes les analyses disponibles, y compris celles pour les fichiers exposés et les vulnérabilités de configuration.

  • Analyses hebdomadaires avec surveillance en temps réel via un plugin de sécurité.

  • Utilisez des environnements de staging pour tester les paramètres de sécurité sans affecter la production.

Devez-vous utiliser toutes les analyses ?

Bien qu'il puisse sembler bénéfique d'utiliser toutes les analyses offertes par WPScan, il y a divers facteurs à considérer.

Tout d'abord, pensez à la taille de votre site et à vos ressources. Pour les petits sites, exécuter toutes les analyses peut être excessif et gourmand en ressources.

Vous voudrez également vous concentrer sur les analyses qui traitent des vulnérabilités les plus probables de votre site. Par exemple, un site e-commerce devrait prioriser la sécurité des utilisateurs et des paiements plutôt que l'énumération exhaustive des fichiers.

Les exigences de conformité sont également importantes à prendre en considération. Si vous êtes soumis à des réglementations comme le RGPD, assurez-vous de scanner et de traiter les vulnérabilités liées à la protection des données.

Comment surveiller les résultats efficacement

Surveiller les résultats de WPScan est important. Cela vous aide à corriger les vulnérabilités, bien sûr, mais cela vous aide également à créer un système pour suivre les changements au fil du temps et rester vigilant.

Configurer les rapports

Vous pouvez sauvegarder les résultats des analyses dans des fichiers en utilisant le flag --output :

wpscan --url http://example.com --output /chemin/vers/rapport.txt

Ensuite, examinez régulièrement les rapports et comparez-les aux analyses précédentes pour identifier les problèmes récurrents ou les nouvelles vulnérabilités.

Créer un plan d'action

Il est bon de catégoriser les vulnérabilités en fonction de leur gravité (par exemple, critique, modérée, faible).

Cela vous permet de traiter les problèmes de haute gravité (comme les plugins obsolètes avec des exploits connus) immédiatement. Ensuite, vous pouvez planifier les tâches de moindre priorité, telles que les ajustements des permissions de fichiers ou les modifications mineures de configuration, pour la maintenance de routine.

Suivre les tendances au fil du temps

Utilisez des outils comme des feuilles de calcul ou une application de gestion de projet (par exemple, Trello, Asana) pour consigner les vulnérabilités, les corrections et les actions de suivi.

Assurez-vous d'analyser les problèmes récurrents pour identifier les schémas, comme les vulnérabilités fréquentes des plugins, et envisagez de remplacer les composants problématiques.

Automatiser les notifications

Si vous planifiez des analyses en utilisant des tâches cron, configurez des alertes par e-mail ou des notifications pour examiner les résultats sans délai.

Utilisez des plugins de sécurité avec surveillance en temps réel pour vous notifier des activités suspectes entre les vérifications de WPScan.

Communiquer avec votre équipe :

Vous voudrez vous assurer de partager les rapports avec les membres pertinents de l'équipe, tels que les développeurs ou les administrateurs de site, afin que tout le monde soit conscient des vulnérabilités potentielles.

Il est également bon d'établir des protocoles pour une action immédiate si des vulnérabilités critiques sont découvertes.

En choisissant des analyses basées sur les besoins spécifiques de votre site et en mettant en œuvre une approche structurée pour surveiller les résultats, vous pouvez vous assurer que WPScan est utilisé efficacement. Assurez-vous également d'adapter l'outil à votre profil de risque, de suivre les vulnérabilités au fil du temps et d'intégrer ses résultats dans une stratégie de sécurité plus large.

Cette approche non seulement améliore la posture de sécurité de votre site, mais minimise également l'utilisation des ressources et des efforts tout en offrant une protection maximale.

Conclusion

WPScan est un outil inestimable pour toute personne gérant un site WordPress. Il simplifie le processus d'identification des vulnérabilités et fournit des recommandations claires et exploitables pour renforcer la sécurité de votre site.

En intégrant WPScan dans votre flux de travail et en suivant les meilleures pratiques, vous pouvez réduire le risque d'attaques et garder votre site WordPress sécurisé. La sécurité est un voyage continu, et des outils comme WPScan le rendent plus facile pour rester en avance sur les menaces potentielles.