Aller au contenu
Genevois Informatique
Sites internet

WordPress piraté : reprendre la main dans le bon ordre

Contenir, copier l'état compromis, dater l'intrusion, puis choisir entre nettoyage et restauration. La rotation des secrets et la levée du signalement terminent le travail.

Par ·

Cadenas ouvert devant un site WordPress compromis

Les appels se ressemblent. Un client vous signale que votre site le renvoie vers une page en langue étrangère. Un fichier PHP que personne n'a déposé apparaît à la racine de l'hébergement. Un compte administrateur au nom improbable figure dans la liste des utilisateurs. Votre serveur d'envoi émet soudain des milliers de messages et votre nom de domaine se retrouve sur une liste noire d'expéditeurs. Dans tous les cas, la question est la même : que faut-il faire dans l'heure qui vient, et dans quel ordre ?

Cet article traite du jour de l'incident. Il ne traite pas de la prévention, que nous détaillons dans pourquoi un WordPress sans suivi finit par céder. Nous intervenons sur ce type de dossier à distance, partout en France et en Suisse. Si vous êtes déjà sous contrat de maintenance WordPress à 500 HT / an, la reprise fait partie du suivi. Hors contrat, l'intervention relève de l'urgence et se facture 230 HT / h.

Les signes qui confirment une compromission, et ceux qui trompent

Tous les comportements anormaux ne sont pas des piratages. Un site lent après une mise à jour, une page blanche liée à une erreur PHP ou un formulaire qui n'envoie plus rien relèvent souvent d'un problème de configuration. À l'inverse, quelques signaux ne laissent que peu de place au doute.

La redirection conditionnelle en fait partie : le site s'affiche normalement pour vous, parce que vous êtes connecté à l'administration ou parce que votre navigateur a été identifié, mais il redirige les visiteurs arrivant depuis un moteur de recherche. La présence de pages que vous n'avez jamais créées, souvent orientées vers des produits pharmaceutiques ou des jeux d'argent, en est un autre. L'apparition d'un compte administrateur inconnu, l'ajout d'une tâche planifiée que personne ne reconnaît, ou la modification simultanée de dizaines de fichiers à une heure inhabituelle complètent le tableau.

Le point important, c'est que l'attaquant a presque toujours prévu son retour. Un accès obtenu par une extension vulnérable sert d'abord à déposer un second accès indépendant, souvent dans un dossier de médias ou dans un fichier de thème. Corriger uniquement la faille initiale ne suffit donc pas.

Les premières heures : contenir avant de nettoyer

Notre première décision consiste à limiter ce que l'attaquant peut encore faire, sans détruire ce dont nous aurons besoin ensuite.

  1. Nous coupons ce qui doit l'être. Selon la gravité, cela va du mode maintenance qui bloque l'accès public à la suspension temporaire du site par l'hébergeur. Sur un site marchand, cette décision se prend avec vous, parce qu'elle a un coût commercial immédiat.
  2. Nous réalisons une copie complète du site dans son état compromis, fichiers et base de données, stockée en dehors du serveur. Cette copie ne sert pas à restaurer, elle sert de preuve et de point de comparaison pour identifier ce qui a été modifié.
  3. Nous rassemblons les accès : administration WordPress, panneau de l'hébergeur, accès SFTP et base de données, registrar du nom de domaine, boîte de réception qui reçoit les formulaires. Quand ces accès manquent, nous passons par l'hébergeur avec une preuve de propriété, jamais par un contournement. Ce sujet est développé dans à qui appartient votre site une fois livré.
  4. Nous établissons une chronologie à partir des dates de modification des fichiers et des journaux d'accès du serveur, afin de situer la date probable de l'intrusion.

Cette dernière étape conditionne tout le reste : sans date d'intrusion approximative, vous ne savez pas quelle sauvegarde est encore saine.

Cadenas, administration WordPress et reprise après incident
Cadenas, administration WordPress et reprise après incident

Nettoyer les fichiers ou restaurer une copie : comment nous tranchons

Deux chemins existent, et le choix dépend des sauvegardes disponibles.

La restauration est préférable quand vous disposez d'une copie antérieure à l'intrusion, stockée ailleurs que sur le serveur infecté, et que le contenu produit depuis cette date est limité. Nous restaurons cette version sur un environnement propre, nous appliquons immédiatement les correctifs manquants, puis nous remettons en ligne. C'est le chemin le plus rapide et le plus sûr, à condition que les copies existent réellement, ce qui suppose de les avoir stockées correctement en amont comme nous l'expliquons dans sauvegarder WordPress ailleurs que chez l'hébergeur.

Le nettoyage s'impose quand la seule sauvegarde disponible est postérieure à l'infection, ou quand des commandes et des données récentes doivent absolument être conservées. Nous comparons alors les fichiers du cœur et des extensions avec les versions officielles pour repérer les ajouts, nous inspectons les répertoires qui ne devraient contenir aucun code exécutable, et nous relisons la base de données à la recherche de contenus injectés et de comptes ajoutés. Ce travail est plus long et plus incertain que la restauration.

Il existe un troisième cas, plus rare mais réel : un site construit sur un thème d'origine douteuse et sur une accumulation d'extensions abandonnées ne mérite pas d'être réparé. Reconstruire sur un socle propre coûte alors moins cher que de fiabiliser l'existant, à partir de 900 HT pour une vitrine. Nous vous le disons franchement quand c'est le cas.

La rotation des secrets, l'étape que l'on saute trop souvent

Un site remis en ligne avec les mêmes identifiants qu'avant l'incident est un site qui sera repris. Nous changeons systématiquement les mots de passe de tous les comptes administrateurs, l'accès SFTP, l'utilisateur de la base de données, le mot de passe du panneau d'hébergement, ainsi que les identifiants du compte de messagerie utilisé pour l'envoi des formulaires.

Nous régénérons également les clés de sécurité présentes dans le fichier wp-config.php, ce qui a pour effet de déconnecter toutes les sessions ouvertes, y compris celles de l'attaquant. Nous supprimons les comptes inconnus plutôt que de nous contenter de les désactiver, et nous vérifions les tâches planifiées ainsi que les éventuelles clés d'accès applicatives ajoutées pendant l'intrusion.

Faire retirer l'avertissement affiché par les moteurs de recherche

Quand le site a servi à héberger du contenu frauduleux, il est fréquemment signalé, et un avertissement s'affiche avant l'ouverture des pages. Le retrait ne se fait pas automatiquement à la fin du nettoyage : il faut le demander depuis l'outil de suivi du site, ce qui suppose d'y avoir un accès à votre nom. Nous décrivons cet outil dans Search Console, le tableau de bord que vous devez posséder. Nous préparons la demande de réexamen une fois l'assainissement terminé, et nous surveillons la réindexation des pages dans les jours qui suivent.

Ce que nous ne promettons pas

Nous ne promettons pas un délai universel. Certains dossiers se referment dans la journée, d'autres demandent plusieurs jours parce que les accès manquent ou parce que l'hébergement ne conserve aucun journal exploitable. Nous ne promettons pas non plus de retrouver l'auteur de l'intrusion : cette recherche relève d'un dépôt de plainte, pas d'une prestation technique. Enfin, nous ne promettons pas une conservation intégrale du contenu quand la seule copie existante se trouvait sur le disque compromis.

Ce que nous vous rendons, c'est votre site, sous votre contrôle, avec des accès dont vous êtes seul détenteur et une configuration durcie. Après l'incident, nous fermons ce qui restait ouvert : mise à jour de la version de PHP, suppression des extensions abandonnées, double authentification sur les comptes administrateurs, sauvegardes déplacées hors du serveur.

Un piratage se traite dans l'ordre : contenir, copier, dater, décider, assainir, changer les secrets, faire lever le signalement. Si votre site affiche aujourd'hui un contenu que vous n'avez pas publié, appelez l'urgence. Si vous préférez ne pas découvrir cet article un dimanche soir, parlons du contrat de suivi avant l'incident.

Commençons ensemble

Un projet, une panne, un rendez-vous.

Choisissez un créneau, ou décrivez votre besoin : nous répondons avec un périmètre clair, un prix hors taxes en euros ou en francs, et un interlocuteur nommé.