Hushfort

Comment vérifier la sécurité de mon site WordPress et ce qu’il expose ?

Par Eureka Studio · Mis à jour le

En bref

Testez votre site depuis l’extérieur avec de vraies requêtes, sans être connecté : ouvrez /wp-login.php, /xmlrpc.php, /wp-json/wp/v2/users, /?author=1 et /wp-sitemap-users-1.xml. Chacune indique si une porte de connexion est ouverte ou si un identifiant fuite. Vous pouvez les lancer avec un navigateur ou curl, ou laisser une extension d’analyse les lancer et nommer ce qu’elle trouve.

Étapes

  1. 1Étape 1

    Ouvrez une fenêtre privée ou un terminal

    Testez comme un inconnu, pas comme vous-même. Les requêtes connectées voient plus de choses que le public : vérifiez donc toujours en étant déconnecté.

    Cinq requêtes que ferait un robot
    curl -sI https://yoursite.com/wp-login.phpcurl -s  https://yoursite.com/xmlrpc.phpcurl -s  https://yoursite.com/wp-json/wp/v2/userscurl -sI https://yoursite.com/?author=1curl -sI https://yoursite.com/wp-sitemap-users-1.xml
  2. 2Étape 2

    Vérifiez les portes de connexion

    Si wp-login.php affiche un formulaire de connexion, la connexion par défaut est publique. Si xmlrpc.php répond « accepts POST requests only », une seconde porte de connexion est ouverte elle aussi.

    yoursite.com/xmlrpc.php qui répond : XML-RPC server accepts POST requests only
  3. 3Étape 3

    Recherchez les identifiants qui fuitent

    Une liste JSON renvoyée par /wp/v2/users, une redirection de ?author=1 vers /author/nom/ ou un plan du site des utilisateurs révèlent tous des identifiants de connexion.

    La liste publique des utilisateurs REST affichant l’identifiant demo-admin
  4. 4Étape 4

    Lancez l’Analyse de surface pour avoir une vue complète

    Dans Hushfort, ouvrez la Vue d’ensemble et cliquez sur Relancer l’analyse dans l’Analyse de surface. Elle envoie de vraies requêtes à votre site et nomme chaque identifiant qu’elle trouve.

    Analyse de surface avec 3 points ouverts : XML-RPC ouvert, liste des utilisateurs REST et scan des auteurs exposant demo-admin
  5. 5Étape 5

    Fermez ce que vous avez trouvé, puis relancez l’analyse

    Activez le Durcissement de surface et cliquez sur Relancer l’analyse. Les portes qui étaient en rouge affichent maintenant une coche verte ; ce qui reste est marqué Attention, avec une correction suggérée.

    Analyse de surface après le Durcissement de surface : XML-RPC, liste des utilisateurs REST, scan des auteurs et liste des auteurs du plan du site fermés

Pourquoi c’est important

La plupart des conseils de sécurité parlent d’interrupteurs : activez ceci, désactivez cela. Mais un interrupteur vous dit ce que vous avez demandé, pas ce qui s’est passé. Une couche de cache peut servir une ancienne réponse. Une règle de CDN peut bloquer un fichier avant même que WordPress ne voie la requête. Une extension peut rouvrir ce qu’une autre avait fermé. La seule réponse honnête à la question « que révèle mon site ? » consiste à l’interroger comme le ferait un inconnu.

La bonne nouvelle : côté connexion, la liste des points à vérifier est courte. Les robots cherchent la même poignée d’adresses sur chaque site WordPress :

Adresse Ce qu’elle révèle quand elle est ouverte
/wp-login.php, /wp-admin Le formulaire de connexion par défaut
/xmlrpc.php Une seconde porte de connexion, avec des tentatives en masse via system.multicall
/wp-json/wp/v2/users Une liste des auteurs et de leurs slugs de connexion
/?author=1 Une redirection vers /author/login-name/
/wp-sitemap-users-1.xml Les URL des archives d’auteur, qui contiennent les slugs de connexion

Aucune n’est catastrophique à elle seule. Ensemble, elles offrent à un robot une liste de noms et deux portes où les essayer. Savoir lesquelles sont ouvertes vous permet de les fermer dans le bon ordre : les portes d’abord, les noms ensuite.

Erreurs courantes

  • Tester en étant connecté. WordPress en montre davantage aux utilisateurs connectés. Utilisez une fenêtre privée ou curl.
  • Tester la page en cache. Si vous venez de modifier un réglage, videz d’abord votre cache de page et le cache de votre CDN, sinon vous verrez l’ancienne réponse.
  • S’arrêter au premier feu vert. Fermer le formulaire de connexion en laissant XML-RPC ouvert est la demi-mesure la plus courante que nous voyons.
  • S’attendre à un audit de sécurité complet. Ces vérifications portent sur les accès. Elles ne disent rien des malwares, des modifications de fichiers ou des extensions obsolètes.

Sans extension

Les cinq commandes curl de l’étape 1 constituent la méthode manuelle, et elles valent la peine d’être connues. Lisez les résultats ainsi :

  • HTTP/2 200 sur wp-login.php : la connexion par défaut est publique. 404 : elle est masquée.
  • XML-RPC server accepts POST requests only. sur xmlrpc.php : le point d’accès est actif. Pour savoir si la connexion est acceptée, il faudrait envoyer un appel wp.getUsersBlogs avec un compte de test.
  • Un tableau JSON renvoyé par /wp/v2/users avec des champs "slug" : les identifiants sont publics. 401 ou un tableau vide : fermé.
  • Location: /author/name/ sur ?author=1 : une fuite. Répétez avec 2, 3 et ainsi de suite pour voir combien d’utilisateurs un robot pourrait collecter.
  • 200 sur le plan du site des utilisateurs : les URL des auteurs sont listées.

L’inconvénient, c’est le temps et l’interprétation. Il faut tout recommencer après chaque modification, et tester correctement la connexion XML-RPC implique de rédiger du XML à la main.

En cas de problème

  • L’analyse indique « ouvert » alors que vous l’avez désactivé. Videz les caches de page et de CDN, puis relancez l’analyse. Si c’est toujours ouvert, une autre extension ou une règle du serveur prend peut-être le pas sur le réglage.
  • L’analyse n’arrive pas à joindre votre site. Certains hébergeurs empêchent un site de s’envoyer des requêtes à lui-même (loopback). Demandez à votre hébergeur d’autoriser les requêtes loopback, ou utilisez la méthode curl depuis l’extérieur.
  • Un identifiant fuite encore après le durcissement. Vérifiez l’encart auteur de votre thème et le plan du site des auteurs de votre extension SEO. Changez le nom affiché de l’auteur si le thème l’imprime.

Avec Hushfort

L’Analyse de surface est incluse dans Hushfort Security, l’extension de sécurité WordPress gratuite. L’Analyse de surface se trouve dans le panneau Durcissement de surface de Hushfort. Elle mesure ce que votre site expose réellement avec de vraies requêtes, exactement comme la méthode manuelle, et liste nommément les identifiants qu’elle trouve. Chaque constat correspond à une couche Hushfort qui le ferme :

Nous avons créé l’Analyse de surface après qu’une boutique a continué de recevoir des tentatives de mot de passe via XML-RPC alors même que sa page de connexion était masquée. Le réglage semblait correct ; seule une vraie requête a révélé la porte ouverte.

Questions fréquentes

Est-il légal d’analyser mon propre site WordPress ?

Oui, envoyer des requêtes normales à votre propre site ne pose aucun problème. Ne testez que les sites qui vous appartiennent ou que vous êtes autorisé à tester.

Pourquoi tester avec de vraies requêtes plutôt que de lire les réglages ?

Les réglages peuvent dire une chose alors qu’un cache, une règle de CDN, une autre extension ou un thème en fait une autre. Une vraie requête montre ce qu’un visiteur obtient réellement.

Cette vérification détecte-t-elle les malwares ou les extensions vulnérables ?

Non. Elle vérifie les portes et les fuites d’identifiants. La recherche de malwares et de vulnérabilités connues nécessite un autre outil ; Hushfort ne le fait pas.

À quelle fréquence dois-je vérifier ?

Après avoir installé ou supprimé des extensions, changé de thème, changé d’hébergeur ou modifié des règles de CDN. C’est à ces moments-là que l’exposition change sans bruit.

Signaler un bug ou demander une fonctionnalité

Votre message arrive directement à l’équipe qui développe Hushfort.

De quoi s’agit-il ?

Utilisé uniquement pour vous répondre.

Nous utilisons ces informations uniquement pour vous répondre. Confidentialité