Ça se passe ainsi : le site est lent la nuit et personne ne comprend pourquoi. Dans les logs, des centaines de requêtes vers wp-login.php depuis quelques adresses. Les identifiants essayés sont admin ou le nom du domaine. C’est une attaque par force brute sur WordPress. Aucune faille à exploiter, juste des essais jusqu’à ce qu’un mot de passe cède.

Ce que fait le plugin quand l’attaque démarre
Chaque connexion échouée pendant une attaque par force brute est notée : IP, identifiant essayé, résultat, heure. Jamais le mot de passe. Quand une IP dépasse votre seuil, le plugin ajoute une règle à .htaccess (compatible avec Apache 2.4 et 2.2). Dès lors, les requêtes de cette adresse s’arrêtent au serveur web. WordPress n’est même pas chargé : le site respire à nouveau.
Un détail qui compte : le compteur est une opération atomique sur la base de données. Envoyer cent tentatives au même instant ne permet pas de franchir le seuil.
Où voir ce qui s’est passé
Dans Réglages › Cisilino Site Defense Network, vous trouvez l’onglet des IP bloquées après une attaque par force brute. Un filtre est disponible, avec la liste des 50 dernières détections. Si un client s’est bloqué lui-même, « Débloquer » sur la ligne et c’est réglé.
Quand les IP d’une attaque par force brute sont nombreuses
Le blocage par IP a une limite connue. Si l’attaque par force brute vient de centaines d’adresses différentes, chacune doit d’abord franchir le seuil. Avec le réseau Cisilino, une IP vue en échec sur un autre site de votre client est bloquée d’avance. Dans tous les cas, utilisez des identifiants peu évidents et des mots de passe longs. Le plugin supprime le bruit, mais ne rend pas fort un mot de passe faible.
Sur un hébergement nginx, le plugin enregistre les tentatives mais ne peut pas écrire la règle au niveau du serveur.
Pour aller plus loin, l’OWASP décrit les méthodes pour bloquer ce type d’attaque par force brute.
Questions fréquentes
Comment bloquer une attaque par force brute sur WordPress ?
En comptant les connexions échouées par IP et en bloquant celles qui dépassent un seuil. Le plugin le fait en écrivant une règle dans .htaccess : la requête s’arrête avant WordPress.
Le plugin enregistre-t-il les mots de passe essayés ?
Non. Il enregistre l’IP, l’identifiant tenté, le résultat et l’heure, jamais le mot de passe.
Puis-je débloquer une IP bloquée par erreur ?
Oui, depuis la liste des IP bloquées, avec le bouton Débloquer sur chaque ligne.
Laisser un commentaire