Rendre les erreurs de login moins bavardes et utiliser Apocalypse Meow sous WordPress

BadPoney

Si vous tenez un site ou un blog tournant sous WordPress, j’imagine que la sécurité est une chose qui ne vous laisse pas insensible. En dehors des bons usages qui consistent avant tout à choisir des mots de passe solides, à effectuer régulièrement les mises à jour de votre template dès qu’elles sont disponibles et à vous parer de certains plungins intéressants, vous pouvez aussi mettre quelques barrières supplémentaires dans le but de masquer quelques infos trop bavardes. Si ça vous intéresse nous allons voir dans ce billet comment faire pour uniformiser les retours en cas d’erreur de login et comment utiliser Apocalypse Meow, un plugin assez intéressant et plutôt efficace.

Changer le message en cas d’erreur de login :

Quand vous entrez un mauvais identifiant WordPress est très poli et vous indique immédiatement où se situe le problème. Si  vous entrez un mauvais nom d’utilisateur par exemple, vous allez avoir un retour détaillé de ce type :

ERREUR : Nom d'utilisateur invalide. Vous avez perdu votre mot de passe ?

Ce retour vous indique que le nom d’utilisateur est incorrect et laisse supposer que le mot de passe est le bon. Comme vous (et les autres admins de votre blog s’il y en a) connaissez le mot de passe ce n’est pas dramatique, ou dans le pire des cas, c’est qu’il est déjà presque trop tard. Pwned épissétout!

Si l’erreur se situe uniquement au niveau du mot de passe en revanche, le message sera alors similaire à celui-ci :

ERREUR : Le mot de passe que vous avez saisi pour ce nom d'utilisateur Poney est incorrect. Vous avez perdu votre mot de passe ?

Le message suivant a deux significations et implique bien entendu que le mot de passe n’est pas le bon, mais aussi et c’est plus embêtant, que le nom d’utilisateur lui est correct. Un vilain pirate saura alors qu’il ne lui reste plus qu’à trouver le mot de passe et qu’il n’aura plus à se soucier du nom d’utilisateur. Sic.

Pour éviter ça et rendre le message d’erreur un peu moins bavard, il suffi d’éditer le fichier functions.php de votre site et d’y ajouter les lignes suivantes :

/* Ne pas mettre le retour d'erreur classique si l'opération de login échoue. ---------------*/
add_filter('login_errors', create_function('$no_login_error', "return 'Ces identifiants ne roxent pas du poney.';"));

NB : J’ai mis le message personnalisé en gras dans ma commande, mais bien entendu vous pouvez l’adapter et y mettre ce que vous voulez. De même il est fort probable que vous ayez à refaire la manipulation, dans le cas où votre CMS bénéficie d’une mise à jour.

Une fois que vous aurez enregistré les changements, le message d’erreur indiqué sera celui que vous avez mis dans la portion de code (voir image d’illustration) et sera par conséquent moins bavard. Il ne sera plus possible à une éventuel attaquant de savoir si l’erreur se situe au niveau du login ou du mot de passe.

Alors bien entendu ce n’est pas la protection ultime et (presque) tout le monde sait bien qu’il est assez facile de trouver l’auteur d’un billet, même s’il utilise un pseudo. Ceci étant dit ça ne mange pas de pain et comme je le dis souvent c’est déjà mieux que rien. Si c’est faisable autant en profiter.

Apocalypse Meow :

Pour parfaire tout ça et renforcer un peu la protection de wp-admin j’utilise également Apocalypse Meow, un plugin assez intéressant et très efficace pour ceux qui comme moi ne sont pas des gourous du Failban. Concrètement celui-ci va vous permettre de mettre en place une protection contre les attaques en Brute-force et dispose en prime de quelques options vraiment très intéressantes.

Changement de nom du compte User Admin : Vous avez sans doute remarqué qu’il y a toujours un compte utilisateur nommé « Admin » sous WordPress, qui si vous ne savez comment faire est impossible à renommer (ça a peut être changé depuis la version 4.0).

Quand vous aurez utilisé ce plugin et jeté un œil aux tentatives d’accès non autorisées, vous allez constater que plus de 70% des bots utilisent « Admin » par défaut comme nom d’utilisateur pour leur attaques et que par conséquent le renommer n’est pas inutile. Apocalypse Meow dispose d’une option vous permettant de le faire un un clic.

Protection contre le Brute-force : Vous pourrez également spécifier un nombre maximum de tentatives de connexions consécutives, qui quand il est dépassé entraîne un ban automatique de l’adresse IP en cause, pour un labs de temps que vous aurez déterminé.  Vous aurez la possibilité d’exclure votre IP (si elle est fixe), afin d’éviter d’être banni par erreur si vous vous plantez (c’est du vécu) ;)

Masquer la version de WordPress : Apocalypse Meow permet également de masquer la version de WordPress que vous utilisez, ce qui peut être utile dans le cas où vous n’effectuez pas assez vite la mise à jour de votre CMS (pas bien). Ainsi si vous utilisez une ancienne version de WP et donc les failles qui vont avec, un attaquant ne pourra pas le savoir et en profiter pour utiliser un exploit connu. Bien entendu cela ne l’empêche pas de le faire à l’aveugle, mais comme dit plus haut, ça ne mange pas de pain.

En vrac : Pour le reste vous pourrez obliger les autres utilisateurs de votre CMS à choisir un mot de passe relatif à vos critères de sélection (nombre et type de caractères), vous pourrez désactiver l’accès à l’éditeur (CSS) et aux fichiers de configuration, consulter la liste des IP bloquées et quelques autres truc intéressants.

Conclusion :

J’espère que ces petites astuces vont vous plaire et vous être utiles et pour finir ce billet, il est bon que de noter que la première partie de celui-ci a pour source une suite de billets trouvée chez Korben, qui contient par ailleurs un grand nombre d’autres conseils utiles pour sécuriser votre WordPress. N’hésitez pas à y jeter un œil pour aller bien plus loin dans la sécurisation de votre CMS préféré.

Amusez-vous bien.


13 Responses

  1. Louis 24 novembre 2014 / 21 h 28 min

    Bonjour, le site est-il entrain de mourir ? Car c’est un peu dommage..
    Merci de votre réponse!

    • Noireaude 25 novembre 2014 / 19 h 24 min

      En train de mourir c’est beaucoup dire, mais c’est vrai que j’ai moins le temps d’écrire ces derniers temps et que son avenir est plus qu’incertain. J’ai pas mal de taf, d’autres centres d’intérêts et un peu moins le temps de suivre activement ma veille. Je prendrai une décision d’ici Janvier.

  2. Seboss666 20 novembre 2014 / 18 h 41 min

    On peut aussi utiliser les thèmes enfants pour ça, ce qui évite d’avoir à refaire la manip à chaque mise à jour de thème ;)

    • Noireaude 20 novembre 2014 / 19 h 21 min

      Alors là, j’ai jamais rien compris à ce truc là :)

      • Seboss666 20 novembre 2014 / 19 h 23 min

        Et pourtant c’est assez simple, pour ce genre d’ajout. Par contre, pour des trucs plus compliqués, je suis en pleine souffrance en ce moment (style éclaté en plusieurs CSS dans plusieurs dossiers) :(

        • Noireaude 20 novembre 2014 / 19 h 24 min

          Moi c’est pour la migration du site :s

          • Seboss666 21 novembre 2014 / 0 h 32 min

            Tu veux migrer sur quoi ? (mon blog tourne avec Apache/Mysql, et j’ai réussi à installer une sauvegarde fonctionnelle sur nginx/mariadb :P)

          • Noireaude 21 novembre 2014 / 18 h 51 min

            En fait je veux changer d’hébergeur, mais c’est un peu galère. Je ne sais pas trop comment et surtout « où » déplacer les répertoires du site. Ils ne sont pas organisés de la même manière chez l’autre hébergeur.

  3. fred 20 novembre 2014 / 15 h 08 min

    perso pour la l’accès à wp-login j’ai mis un htaccess et hop plus personne peu accéder au login sauf moi :-)

    • Noireaude 20 novembre 2014 / 17 h 46 min

      Ça a l’air sympa comme idée, la procédure est compliquée?

      • Frederic Bezies 22 novembre 2014 / 9 h 16 min

        Pas trop. Mais sauf erreur de ma part, il faut utiliser une IP fixe pour cette manipulation. Mon homonyme t’aidera sûrement :D

        Sinon, j’aime bien le bon vieux limit login attempts.

        • Noireaude 22 novembre 2014 / 18 h 17 min

          Ah. S’il faut une ip fixe c’est d’ores et déjà râpé. J’aime bien la fonction limit login attempts également, mais il est préférable de laisser une valeur se situant aux alentours de 4 tentatives. J’ai déjà réussi à me bannir comme un gland :)

          • Alexis 25 novembre 2014 / 12 h 49 min

            En complément, modifier l’adresse de connexion à l’interface admin, est un vrai plus contre les bots ou les curieux qui tentent de se connecter. Vous pouvez utiliser un plugin comme Rename wp-login.php par exemple.

Comments are closed.