Un piratage de site client se voit souvent avant que le client reçoive un appel de ses propres clients : un utilisateur administrateur que personne n’a créé, un fichier .php dans wp-content/uploads, ou une URL de production qui redirige vers un autre domaine. Dans Search Console, le rapport Sécurité et actions manuelles affiche un problème de sécurité ou une action manuelle. Ces signes ne se valent pas, mais chacun justifie d’ouvrir une note de compromission le jour même.
Ce que vous relevez avant de modifier quoi que ce soit
- Heure, fuseau, URL exacte, code HTTP. Une redirection 301 vers un domaine inconnu se note avec l’en-tête
Location, pas avec un le site est bizarre. - Liste des utilisateurs WordPress : identifiant, e-mail, rôle, date d’inscription s’il figure. Tout administrateur absent de votre registre d’accès est une ligne de la note.
- Fichiers PHP modifiés récemment hors mise à jour connue :
wp-config.php,index.phpà la racine,functions.php, et tout.phpsousuploads. - Comptes SFTP et utilisateurs du panneau d’hébergement : une clé ou un utilisateur ajouté.
- Capture du robots.txt et de la page d’accueil. Des liens cachés ou un cloaking (autre contenu pour Googlebot que pour un navigateur) se voient en comparant les deux.
Ne changez pas les mots de passe avant d’avoir copié ces éléments. Vous pouvez, en revanche, bloquer l’écriture si l’hébergeur le permet, le temps de finir la note. Le ménage vient ensuite, dans l’ordre décrit pour nettoyer un WordPress infecté.
Où les signes apparaissent
| Endroit | Signe | Ce que ça ne prouve pas à lui seul |
|---|---|---|
| WordPress, utilisateurs | Admin inconnu, e-mail extérieur | Un prestataire précédent non retiré du registre |
wp-content/uploads | Fichiers .php, .ico qui sont du PHP, dossiers au nom aléatoire | Rien d’anodin : un média légitime n’est pas du PHP |
| Accueil | 301 ou meta refresh vers un autre hôte | Une migration mal finie, à confirmer avec le client |
| Search Console | Problème de sécurité, action manuelle | L’étendue : seules les URL citées sont sûres d’être signalées |
| Navigateur | Page d’avertissement Safe Browsing | Que toutes les URL sont touchées |
| Journaux | POST répétés vers xmlrpc.php ou wp-login.php | Une compromission réussie : ça peut n’être qu’une tentative |
Le cloaking SEO (pages parasites, liens sortants cachés) se cherche aussi avec un détecteur de piratage SEO : comparez le HTML servi à un visiteur et celui qui intéresse un moteur. Une extension de sécurité qui affiche rien à signaler ne clôt pas la note si un admin inconnu est là.
La note de compromission
C’est le livrable, une page, pas un roman. En-tête : site, heure de détection, qui a détecté. Puis les preuves brutes (utilisateur, chemin de fichier, code HTTP, extrait d’en-tête). Puis l’hypothèse d’entrée, marquée comme hypothèse : extension non mise à jour, thème obtenu hors du répertoire officiel, mot de passe réutilisé, compte d’hébergement sans second facteur. Puis le périmètre supposé : fichiers seuls, ou fichiers et base (comptes, options siteurl, contenus injectés).
Décidez ensuite de la restauration : sauvegarde d’avant la date du premier fichier douteux, pas la sauvegarde de cette nuit si elle a déjà copié les fichiers infectés. Après restauration : nouveaux mots de passe WordPress, base, SFTP, panneau ; nouvelles clés dans wp-config.php (AUTH_KEY et les suivantes) ; sessions détruites. Tant que l’entrée (compte hébergeur, poste d’un salarié) n’est pas coupée, la restauration ne tient pas.
Prévenir le client sans minimiser
Le message au client reprend la note : ce qui est constaté, ce que vous avez isolé, si des données de formulaire ont pu être lues, et si vous demandez un réexamen dans Search Console. Ne promettez pas aucun vol de données si vous n’avez pas lu les journaux. Dites ce que vous avez vérifié et ce que vous n’avez pas pu vérifier.
Si Google affiche un avertissement au public, la vérification et la demande de réexamen suivent le parcours de site signalé par Google. Vous ne demandez le réexamen qu’une fois les URL citées propres. Un second signalement sur les mêmes URL retarde la levée.
Rangez la note dans le dossier du client, à côté de la sauvegarde utilisée et de la liste des mots de passe changés (les noms des comptes, pas les secrets). Le mois suivant, l’audit d’extensions sert à voir si la porte d’entrée est revenue. La note, elle, reste le document qui dit ce qui a été fait ce jour-là.
