Blog

Site WordPress piraté : les étapes pour le nettoyer et éviter la réinfection

Votre site WordPress a été piraté : ce guide vous donne l'ordre des opérations pour le nettoyer sans laisser de porte dérobée, puis pour éviter qu'il soit réinfecté. Il précise aussi ce que nexya fait pour sécuriser le site ensuite, et ce qu'il ne fait pas, puisqu'il ne nettoie pas les logiciels malveillants.

Site WordPress piraté : les étapes pour le nettoyer et éviter la réinfection

L’essentiel

  • nexya ne nettoie pas les logiciels malveillants : le nettoyage se fait à la main, avec l'hébergeur, un outil spécialisé ou un professionnel.
  • Fermez le site et exportez la base avant de toucher aux fichiers ; le module Maintenance fait les deux.
  • Remplacez le cœur, les extensions et les thèmes par des copies officielles plutôt que de chercher les fichiers infectés un par un.
  • Une réinfection vient presque toujours d'une faille encore ouverte ou d'une porte dérobée oubliée ; la vérification des extensions vulnérables est gratuite.
  • En-têtes de sécurité, CSP et limite des connexions ratées sont gratuits ; la connexion en deux étapes et l'empreinte des fichiers avec retour en arrière sont dans nexya Pro.

Site WordPress piraté : ce que nexya fait, et ce qu'il ne fait pas

Un site WordPress piraté se reconnaît souvent à des signes précis : des comptes administrateurs que personne n'a créés, des fichiers PHP inconnus dans le dossier des médias, des redirections vers des sites douteux, ou une infection qui revient quelques jours après un nettoyage complet. Ce sont les cas qui reviennent le plus souvent sur les forums de WordPress.org.

Disons-le tout de suite : nexya ne nettoie pas les logiciels malveillants. Il n'a pas de scanner anti-malware et ne supprime aucun fichier infecté. Il intervient avant et après le nettoyage : il repère ce qui a changé, ferme les portes d'entrée connues et vous prévient si quelque chose bouge à nouveau.

Le nettoyage lui-même se fait à la main, avec votre hébergeur, un outil spécialisé ou un professionnel. Cet article décrit l'ordre dans lequel procéder, et à quel moment nexya peut vous aider.

Les premières heures : fermer, copier, prévenir

Avant de supprimer quoi que ce soit, fermez le site au public. Le module Maintenance affiche une page d'attente aux visiteurs pendant que vous travaillez sur le site, connecté. Vos visiteurs ne sont ainsi ni redirigés ni exposés pendant l'intervention.

Prenez ensuite une copie de la base de données. Le module Maintenance permet d'exporter la base. Même infectée, cette copie a son utilité : elle garde la trace de ce que l'attaquant a modifié, et elle permet de revenir en arrière si le nettoyage efface trop de choses.

Enfin, prévenez votre hébergeur. Il a accès aux journaux du serveur, que WordPress ne voit pas, et il peut vous dire si d'autres sites du même compte sont touchés. C'est souvent là qu'on trouve la réponse à la question « par où sont-ils entrés ».

Nettoyer : repartir de fichiers que vous savez sains

Un webshell est un petit fichier PHP qui donne à l'attaquant un accès au serveur. Il se cache volontiers dans wp-content/uploads, dans le dossier d'une extension ou sous un nom qui imite un fichier de WordPress. Si vous les supprimez un par un, vous en oublierez presque toujours un.

Le plus sûr est de remplacer les fichiers plutôt que de les trier :

Sur ce point, le module Sécurité vous aide. Depuis la version 1.2.34, il compare chaque jour les fichiers du cœur de WordPress avec les originaux publiés par wordpress.org. Il liste tout fichier modifié, tout fichier manquant et tout fichier PHP qui n'a rien à faire là, et vous envoie un e-mail quand il en trouve un nouveau. La comparaison ne porte que sur le cœur : les extensions, les thèmes et les médias restent à vérifier vous-même.

  • réinstaller le cœur de WordPress à partir de l'archive officielle de wordpress.org ;
  • réinstaller chaque extension et chaque thème depuis sa source officielle, et supprimer ceux que vous n'utilisez plus ;
  • chercher les fichiers PHP dans wp-content/uploads, où ils n'ont normalement rien à faire ;
  • relire wp-config.php et le dossier mu-plugins, deux endroits souvent oubliés.
Les droits rangés sous le type de contenu qui les crée : pour vérifier ce que chaque rôle peut faire après une intrusion.
Les droits rangés sous le type de contenu qui les crée : pour vérifier ce que chaque rôle peut faire après une intrusion.

Les comptes administrateurs créés par l'attaquant

Quand des comptes administrateurs réapparaissent après avoir été supprimés, une porte dérobée est presque toujours encore en place, dans un fichier ou dans la base. Supprimer ces comptes ne suffit donc pas, mais il faut quand même le faire, et changer en même temps tout ce qui donne accès au site.

Le module Rôles & capacités range les droits sous le type de contenu qui les crée. Vous voyez d'un coup d'œil ce que chaque rôle peut faire, et vous repérez plus facilement un rôle ordinaire qui a reçu des droits qu'il ne devrait pas avoir. Vous pouvez aussi voir le site avec les yeux d'un rôle sans quitter votre propre compte.

  • supprimer les comptes inconnus et changer le mot de passe de tous les administrateurs ;
  • renouveler les clés de sécurité de wp-config.php, ce qui ferme toutes les sessions ouvertes ;
  • changer aussi les accès FTP ou SFTP, ceux de la base de données et ceux du compte d'hébergement.

Pourquoi le site est réinfecté après un nettoyage complet

C'est la situation la plus décourageante : tout a été nettoyé, les mots de passe ont été changés, et l'infection revient. Les causes habituelles sont peu nombreuses.

Contre la première cause, le module Sécurité vérifie les extensions installées par rapport à la liste des failles connues. Cette vérification fait partie de la version gratuite. nexya Pro ajoute un passage automatique chaque jour.

Une extension signalée comme vulnérable doit être mise à jour, ou supprimée si aucune correction n'existe. Juste avant chaque mise à jour, le module Maintenance garde la version précédente de l'extension. Si la nouvelle version casse quelque chose, vous la remettez en un clic.

  • la faille par laquelle l'attaquant est entré est toujours là, souvent dans une extension ou un thème pas à jour ;
  • une porte dérobée a survécu, dans la base de données, dans une tâche planifiée ou dans un fichier oublié ;
  • un autre site du même compte d'hébergement est resté infecté et contamine à nouveau le vôtre ;
  • un ordinateur compromis transmet les nouveaux mots de passe à l'attaquant.

Si la porte d'entrée reste ouverte, un nettoyage ne tient pas.

La politique de contenu : seules les origines de cette liste peuvent charger des scripts sur le site.
La politique de contenu : seules les origines de cette liste peuvent charger des scripts sur le site.

Sécuriser le site : ce que le module Sécurité met en place

Une fois le site propre, le module Sécurité réduit les possibilités d'attaque de plusieurs façons.

Les en-têtes de sécurité indiquent au navigateur comment traiter les pages du site. Ils ne remplacent pas un nettoyage, mais compliquent l'exploitation de certaines failles côté visiteur.

La politique de contenu (CSP) fixe la liste des origines depuis lesquelles le site peut charger des scripts, des styles ou des images. Si un script injecté essaie de se charger depuis un domaine qui n'est pas dans la liste, le navigateur le refuse. Après l'avoir mise en place, parcourez le site pour vérifier que vos services légitimes sont bien autorisés.

La limite des connexions ratées bloque une adresse après plusieurs échecs, chaque fois plus longtemps. Le vrai propriétaire du compte le débloque avec un lien reçu par e-mail. Un e-mail vous prévient aussi quand une adresse est bloquée, au maximum un par heure.

nexya Pro ajoute une connexion en deux étapes, exigée pour les rôles que vous choisissez : un code tiré d'une application d'authentification ou reçu par e-mail, avec des codes de secours. Un mot de passe volé ne suffit alors plus pour ouvrir un compte administrateur.

Sécuriser un site WordPress piraté avec nexya, en quatre étapes

  1. 1

    Fermer le site pendant l'intervention

    Dans le module Maintenance, activez la page d'attente avant de toucher aux fichiers, puis exportez la base de données depuis le même module. Gardez cette copie en dehors du serveur.

    Fermer le site pendant l'intervention
  2. 2

    Activer le module Sécurité depuis le hub

    Activez Sécurité dans le hub. Lisez la liste des extensions signalées comme vulnérables, puis celle des fichiers du cœur qui diffèrent des originaux de wordpress.org. Mettez à jour ou supprimez ce qui est signalé.

    Activer le module Sécurité depuis le hub
  3. 3

    Mettre en place les en-têtes et la politique de contenu

    Une fois le site nettoyé, activez les en-têtes de sécurité et la politique de contenu, puis parcourez le site pour vérifier que vos services légitimes sont bien autorisés. La limite des connexions ratées fait partie du même module.

    Mettre en place les en-têtes et la politique de contenu
  4. 4

    Suivre les modifications des semaines suivantes

    Activez le journal d'activité et consultez-le régulièrement : chaque modification y figure avec son auteur et l'état avant et après. Une modification que personne n'a faite doit vous alerter.

    Suivre les modifications des semaines suivantes

Après le nettoyage : surveiller sans y passer ses journées

Le journal d'activité indique qui a changé quoi, avec l'état avant et après la modification. Dans les semaines qui suivent le nettoyage, c'est là que vous repérerez une modification que personne dans l'équipe n'a faite.

nexya Pro ajoute une empreinte des fichiers avec retour en arrière, ainsi qu'une conservation plus longue des journaux.

Gardez aussi des sauvegardes en dehors du serveur. Une copie stockée chez le même hébergeur peut être touchée en même temps que le site.

Tous ces modules s'activent et se désactivent depuis le hub. Un module désactivé n'enregistre rien sur le site : vous n'activez que ce dont vous avez besoin.

Questions fréquentes

nexya peut-il nettoyer mon site WordPress piraté ?

Non. nexya n'a pas de scanner anti-malware et ne supprime aucun fichier infecté. Il aide avant et après le nettoyage : il ferme le site pendant l'intervention, exporte la base, liste les fichiers du cœur modifiés, vérifie les extensions vulnérables et met en place les protections de connexion.

Pourquoi des comptes administrateurs réapparaissent-ils après les avoir supprimés ?

En général, une porte dérobée est restée en place, dans un fichier ou dans la base de données, ou la faille d'origine est toujours ouverte. Il faut remplacer les fichiers par des copies officielles, renouveler les clés de wp-config.php et changer tous les accès, pas seulement les mots de passe WordPress.

La vérification des extensions vulnérables est-elle gratuite ?

Oui. Le module Sécurité vérifie gratuitement les extensions installées par rapport aux failles connues. nexya Pro ajoute un passage automatique chaque jour.

La politique de contenu (CSP) peut-elle bloquer des éléments légitimes ?

Elle bloque tout ce qui vient d'une origine non autorisée. Après l'avoir mise en place, parcourez le site et ajoutez les origines de vos services légitimes dans la liste des origines autorisées.

La comparaison des fichiers vérifie-t-elle aussi les extensions et le dossier uploads ?

Elle porte sur les fichiers du cœur de WordPress, comparés chaque jour avec les originaux de wordpress.org. Les extensions, les thèmes et le dossier uploads restent à vérifier vous-même.

Les modules de cet article

nexya security nexya maintenance nexya activities nexya roles nexya hub

Essayez nexya Pro 7 jours, gratuitement

Tous les modules, les formulaires, les newsletters et le cache de pages, sur votre site. Sans engagement.

Voir les plans Ou découvrir la version gratuite