Backdoor vulnerability

Comment trouver une « porte dérobée » sur WordPress et réparer le site ?

Mis à jours 14 novembre 2017 Comment trouver une « porte dérobée » sur WordPress et réparer le site ?

Lorsqu’ils sont victimes de piratage, les éditeurs de sites WordPress demandent des aides extérieures pour réparer les dégâts. Certains d’entre eux le font même à plusieurs reprises. Souvent, ils appellent au secours après avoir essayé de faire le ménage eux-mêmes. Les pirates ont pu forcer leurs plateformes puisque le nettoyage n’a pas été correctement réalisé. Les choses se compliquent également lorsque les éditeurs ne savent pas à qui ou à quoi ils ont affaire. Toutefois, les professionnels finissent par trouver l’origine du problème. Généralement, c’est une faille, de type backdoor, qui a été créée, puis exploitée par le pirate informatique. Cette brèche a permis à l’intrus d’outrepasser l’authentification normale. Cet article montre la manière de trouver une porte dérobée sur WordPress, puis de la réparer.

Qu’est-ce que le backdoor ?

Considéré comme une porte dérobée, le backdoor est une entrée qui permet de contourner de l’authentification normale. Ce procédé de piratage donne l’accès, à distance, au serveur d’un site sans être détecté. Faisant preuve d’intelligence, les hackers commencent par mettre en place leur entrée privée. L’accès qu’ils ont ainsi créé reste ouvert même lorsque le plugin qu’ils ont initialement exploité a été supprimé. Les backdoors continuent d’exister en dépit des mises à jour d’un site. Ils rendent le portail Web vulnérable jusqu’à un nettoyage correct. Parfois, les failles les plus simples permettent aux hackers de créer un nom d’utilisateur, en tant qu’administrateur caché. Par ailleurs, les backdoors les plus complexes autorisent les pirates à intercepter n’importe quel code PHP envoyé depuis le navigateur. Encore plus élaborés, d’autres programmes ont une interface complète qui gère les courriels en tant que serveur. Ils permettent même d’exécuter des requêtes SQL et toute autre commande que les pirates souhaitent réaliser.

backdoorss

Où le pirate cache-t-il ses codes ?

Les backdoors installés sur WordPress sont généralement stockés dans les emplacements suivants :

  • Thèmes — Ce n’est probablement pas dans le thème actuellement utilisé. Les pirates veulent que le code survive aux mises à jour de base. De ce fait, les codes intrus pourront probablement être glissés dans le répertoire de thèmes. Ce sont notamment, les modèles non utilisés de type Kubrick. C’est la raison pour laquelle, il est conseillé de supprimer tous les thèmes inactifs.
  • Plug-ins — Ce sont d’excellents endroits pour cacher le code de backdoor. Le pirate a trois raisons de le faire. D’abord, les webmasters ne prêtent pas attention aux plugins. De deux, ils n’aiment pas les mettre à jour. Ces plugins survivent aux mises à jour alors les webmasters doivent les garder à jour. Troisièmement, il existe des plug-ins mal codés qui présentent des failles exploitables par des tiers.
  • Répertoire des téléchargements — En tant que blogueur, il est impossible de rester attentif au répertoire de téléchargement à tout moment. L’éditeur se contente de télécharger, puis d’utiliser un fichier image. Sa base de données contient ainsi des milliers d’images classées par date. Il est aisé pour le hacker de laisser un backdoor dans le dossier des téléchargements. Ce programme sera confortablement caché parmi des milliers de contenus multimédias. Par ailleurs, la vérification n’est jamais systématique, pourtant des systèmes de surveillance comme Sucuri permettent de le faire. Puisque le répertoire de téléchargement peut accueillir de nouvelles données, cette interface entre l’ordinateur de l’éditeur et le serveur devient une cible de choix pour les pirates. Ils y cachent leurs programmes en toute impunité.
  • wp-config.php – Ces fichiers sont indispensables à la personnalisation des pages WordPress. Ils figurent parmi les plus ciblés par les pirates informatiques. Ce qui en fait un des endroits qu’il faut contrôler régulièrement, mais seuls certains éditeurs le vérifient régulièrement.
  • Fichier Includes : /wp-includes/folder – Ce dossier, qui fait partie des principales bases d’un site WordPress, peut être infecté par les backdoors. Certains hackers y laissent plusieurs brèches. Une fois qu’ils en auront téléchargé un programme, ils ajouteront une autre sauvegarde pour assurer leur accès. Seuls de rares éditeurs prennent la peine de jeter un coup d’œil à leur dossier wp-includes.

Dans tous les cas, le programme laissé par le pirate est souvent déguisé pour ressembler à un fichier WordPress normal.

Par exemple : Lors de la mise à jour d’un site WordPress, le backdoor était caché dans le dossier wp-includes. Il est camouflé sous le nom wp-user.php (Ceci n’existe pas dans l’installation normale). Bien sûr, le sous-fichier dénommé user.php existe dans le fichier /wp-includes/folder mais non wp-user.php. Dans d’autre cas, un fichier pirate se nomme hello.php. Cette brèche se trouve dans le dossier des téléchargements pour se confondre avec le plug-in Hello Dolly. Mais pourquoi cette brèche a-t-elle été ajoutée dans ce dossier ?

Des noms comme wp-content.old.tmp, data.php, php5.php peuvent également être utilisés par les pirates. Il ne suffit pas qu’un contenu se terminer par PHP pour être un bon code PHP. Sinon, il y a également la possibilité, pour le hacker, d’utiliser un fichier compressé .zip. Dans la plupart des cas, ces programmes ont des codes base64 qui effectuent généralement toutes les opérations de tri. Ils permettent ainsi l’ajout de liens de spam, l’ouverture de pages supplémentaires ou la redirection vers des pages de spam, etc.
Force est de constater que WordPress n’est pas entièrement sûr puisqu’il permet aux pirates d’avoir leurs entrées privées. Pourtant, la version actuelle de WordPress semble être invulnérable. La mise en place de portes d’entrée privées constitue la deuxième étape du piratage. En premier lieu, les hackers trouvent une faille dans un plug-in ou un script tiers. Cette imperfection leur ouvre ensuite la voie pour l’implantation de leur backdoor.

C’est peut-être une imperfection au niveau du TimThumb, l’outil de redimensionnement automatique des pages. Un plugin mal codé occasionne le dérapage de l’utilisateur mal intentionné. Dans le cas d’un site ouvert aux inscriptions, le pirate peut tout simplement s’inscrire gratuitement. Par la suite, il exploite les fonctionnalités à sa disposition pour obtenir davantage de privilèges (ce qui lui permet ensuite de télécharger ses fichiers malintentionnés). Dans d’autres cas, il se peut que les informations d’identification, dont l’ID et mot de passe, soient tombées entre de mauvaises mains. La faute vient parfois des hébergeurs.

Comment localiser la brèche et réparer le site ?

hacker

La connaissance d’un backdoor et de ses emplacements permet de remédier à un acte de piratage. Le nettoyage est aussi simple que la suppression du fichier ou du code. Auparavant, la recherche peut être laborieuse. Il faudra commencer par revoir les plugins WordPress en scannant à partir de logiciels spécialement conçus pour démasquer les fichiers malveillants. Les experts recommandent notamment, Sucuri, un outil efficace, mais payant.

L’outil Exploit Scanner peut également être envisagé. Toutefois, les codes base64 utilisés dans les bons plugins vont occasionner de nombreux cas de faux positifs. Seul le développeur saura exactement quel code est l’intrus dans les milliers de lignes. La meilleure chose à faire serait de supprimer le répertoire de plugins et de les réinstaller à partir de zéro. C’est la seule façon d’être totalement sûr à moins d’avoir beaucoup de temps à consacrer aux examens minutieux des codes, ligne par ligne.

1. Chercher dans le dossier de téléchargements

Au moins, un des scanneurs de plugins est capable de trouver un fichier intrus dans le dossier de téléchargements. Pour ceux qui connaissent le protocole de sécurité SSH, il suffit d’écrire la commande suivante :

find uploads -name "*.php" –print

Un fichier php ne doit pas normalement se trouver dans le dossier de téléchargement. Cet emplacement est davantage conçu pour les fichiers multimédias. Tout contenu php doit ainsi être effacé.

2. Supprimer les thèmes inactifs

Vu que les thèmes inactifs comportent parfois des programmes intrus, la meilleure précaution serait de les supprimer. Cela doit inclure seulement le thème par défaut et classique. Si le fichier backdoor s’y trouve, il sera définitivement supprimé. Cette méthode fait gagner du temps en plus de se protéger de prochaines intrusions.

3. Fichier .htaccess

Parfois, les codes de redirection se trouvent dans le fichier .htacess. Il suffit de le supprimer. Normalement, il va réapparaître. Dans le cas échéant, il faudrait aller au panneau d’administration WordPress, au niveau des paramètres, ensuite sur Permaliens, puis cliquer sur enregistrer. Cette commande recréera le fichier .htaccess.

4. Fichier wp-config.php

Comparer ce fichier au fichier par défaut wp-config-sample.php. Dès la moindre suspicion, il faut s’en débarrasser.

5. Analyse de la base de données pour Exploits et SPAM

Un hacker intelligent ne se contente pas d’un seul backdoor, mais en crée de nombreux points d’intrusion. Pour ce hacker, cibler une base de données complète reste assez simple. Il peut, entre autres, stocker leurs programmes pirates PHP, leurs nouveaux comptes administrateurs, leurs liens SPAM, etc. dans la base de données. Parfois, l’admin pirate est invisible sur votre page d’utilisateur. Vous constaterez 3 utilisateurs cependant, seuls deux d’entre eux s’afficheront. Dans ce cas, il y a des fortes chances que le site soit piraté.

À moins de maîtriser SQL, il vaut mieux laisser les outils de scan s’occuper du nettoyage. Le plugin Exploit Scanner ou Sucuri (la version payante) fera le nécessaire.

Comment savoir si le nettoyage a été correctement fait ?

Avant de se réjouir d’avoir fait le ménage du site, il faudra ouvrir le navigateur en mode privé pour voir si le piratage est revenu ou non. Certains pirates cachent leurs actes aux utilisateurs connectés. Seul le mode hors ligne permet de les voir. Sinon, il faudrait changer l’agent utilisateur du navigateur comme Google. Parfois, les pirates veulent exactement cibler les moteurs de recherche. Lorsque tout semble aller normalement à ce niveau, le nettoyage a été correctement réalisé.

Juste pour information, le seul moyen de venir à bout d’un piratage, c’est de supprimer un site pour ensuite le recréer. Radicale, cette option se réservera à une poignée d’éditeurs.

Comment prévenir les hackers dans le futur ?

Sécuriser votre site WordPress

Le premier conseil serait de conserver de bonnes sauvegardes sur VaultPress ou BackupBuddy puis, de commencer à utiliser un service de surveillance. Cette deuxième recommandation permet de garder un œil sur ce qui se passe sur le site. C’est une raison de commencer à utiliser Sucuri, sans pour autant faire la promotion de cet outil. Ce conseil n’est pas motivé par une commission pour chaque éditeur inscrit à Sucuri même si une telle collaboration existe. Il s’agit davantage d’un conseil en faveur d’un produit de qualité. De nombreux médias, notamment CNN, USAToday, PC World, TechCrunch, The Next Web et bien d’autres recommandent également Sucuri. C’est tout simplement parce que cet outil est assez performant.

Sinon, voici quelques solutions concrètes à la portée des éditeurs de site sous WordPress :

  • Utiliser des mots de passe complexes — Il convient d’utiliser des mots de passe robustes et d’imposer la même consigne pour les utilisateurs. Il faudrait également commencer à recourir à un utilitaire de gestion de mot de passe tel que 1Password.
  • Authentification à deux étapes — Dans le cas où le hacker tente de compromettre le mot de passe, il devra toujours obtenir un code de vérification. Ce dernier sera envoyé par message sur le téléphone portable de l’éditeur.
  • Limiter les tentatives de connexion — Le plugin limitant les tentatives de connexion pourrait également être utile. Il permet de verrouiller l’utilisateur après un certain nombre de tentatives de connexion infructueuses.
  • Désactiver les éditeurs de thèmes et de plugins — Il est recommandé de mettre les éditeurs de thèmes et de plugins en mode désactivé. Cela évite les problèmes d’atteinte aux paramétrages privilégiés à l’éditeur. De cette manière, l’hacker ne peut plus modifier ni le thème ni les plugins en usurpant la fonction de WP-Admin.
  • Utiliser la protection de mot de passe de l’administrateur WordPress dans WP-Admin — Vous pouvez protéger le mot de passe de l’ensemble de l’interface. Sinon, il est également possible de limiter l’accès par adresse IP.
  • Désactiver l’exécution de code PHP dans certains répertoires WordPress — Vous pouvez désactiver l’exécution de code PHP dans certains répertoires WordPress de votre choix comme le téléchargement et les autres dossiers. De cette manière, si un intrus est capable d’ajouter le fichier dans votre dossier de téléchargements, il ne serait pas en mesure de l’exécuter.
  • Rester à jour — Il serait préférable d’utiliser la plus récente version de WordPress, puis de faire une mise à jour régulière des plugins.

En résumé, une meilleure protection passe avant tout par de bonnes sauvegardes. Il est fortement recommandé de sauvegarder convenablement les données de votre site. La plupart des sociétés d’hébergement ne proposent pas systématiquement ce service. Des solutions fiables comme BackupBuddy ou VaultPress sont pourtant disponibles sur le marché. Ainsi, après avoir été victime d’un piratage, vous avez toujours un point de restauration comme Sucuri. Ce dernier vous épargnerait d’un certain nombre d’ennuis. Cet outil payant surveille et nettoie votre site en cas de besoin. Cela ne vous coûte que 3 dollars par mois.

À découvrir

macos big sur

Comment télécharger et installer macOS Big Sur ?

Table de matièreQu’est-ce que le backdoor ?Où le pirate cache-t-il ses codes ?Comment localiser la brèche et …