Premiers secours · 10 min · publié le 29 février 2024 · mis à jour le 1 novembre 2024

Nettoyer un site piraté soi-même ou déléguer : comment décider

Si vous savez comparer des fichiers à leur version d’origine et lire un journal, un nettoyage manuel est possible. Sinon, le risque est de retirer les symptômes — home propre, backdoor encore là — et de recommencer. Voici un arbre de décision, pas un jugement sur votre débrouillardise.

Réponse directe

Si vous savez comparer des fichiers à leur version d'origine et lire un journal, un nettoyage manuel est possible. Sinon, le risque est de retirer les symptômes.

nettoyer site piraté soi-même faire appel prestataire malware diy wordpress hack

La question n’est pas le courage

Nettoyer un site piraté soi-même n’est pas une affaire de fierté. C’est une affaire d’outils mentaux : différencier un `functions.php` légitime d’une ligne ajoutée, ne pas jeter un fichier CMS parce qu’un scanner a crié, suivre une date. Beaucoup de développeurs le font bien. Beaucoup de bons commerçants s’y cassent, et ce n’est pas un défaut.

Le critère simple : si vous hésitez entre « je supprime ce PHP » et « je ne sais pas à quoi il sert », arrêtez-vous. Isoler n’est pas supprimer. Déléguer n’est pas avouer. C’est choisir l’horloge 1 courte plutôt que l’horloge 1 × 3.

Lisez la suite comme un arbre. Un « non » n’interdit pas d’apprendre. Il interdit d’apprendre sur le site de production un dimanche, sans copie.

  • Copie hors serveur déjà faite ? Sinon, personne ne commence — ni vous, ni nous.
  • Vous lisez du PHP assez pour un grep `eval` / `base64` ?
  • Vous avez déjà restauré un cœur WP depuis le zip sans paniquer ?
  • Boutique ou fuite possible → biais vers déléguer.
Installer un plugin cleaner n’est pas « le faire soi-même ». C’est déléguer à un logiciel qui ne connaît pas votre thème enfant.

Savez-vous faire un diff avec le zip officiel ?

Télécharger WordPress / l’extension / le thème parent, comparer. C’est 70 % d’un nettoyage vitrine. Si l’idée d’un diff (WinMerge, `diff -r`, l’outil de l’hébergeur) vous est étrangère, le FTP au jugé va casser plus que le pirate. Ne pas supprimer au hasard.

Thème enfant, mu-plugins, uploads : pas de zip officiel. Là il faut lire. Si vous ne lisez pas, vous avez besoin de quelqu’un qui lit, pas d’un scanner.

Réinstaller le cœur depuis le panel sans diff : geste possible en complément, pas à la place de uploads et de la base. Voir réinstaller WordPress.

Savez-vous lire une ligne de log et un cron ?

Le journal dit le fichier. Le cron dit ce qui revient à H+5. Sans ces deux lectures, vous jouez à Whac-A-Mole. Avec, un dossier « mystérieux » devient un chemin. C’est apprenable en une heure — pas au moment où Chrome est rouge et le gérant au téléphone.

Si SSH / les logs vous sont fermés, vous pouvez encore DIY sur les fichiers, plus aveugle. Demandez les logs à l’hébergeur (ticket factuel). Un DIY sans logs sur une 500, c’est de la divination.

Base (`wp_options` autoload, utilisateurs) : troisième compétence. Injection JS en option, aucun fichier sale. Les scanners de fichiers sont verts. Vous, tout seul, concluez « c’est bon ». Les visiteurs, non.

Vitrine, boutique, ou données clients

Vitrine brochure, pas de compte client, pas de paiement : le coût d’une erreur DIY est surtout du temps et une réinfection. Encore réel, rarement une CNIL. Boutique, formulaires de leads, espace adhérents : le coût d’une erreur est une table lue ou un skimmer laissé. Biais fort vers quelqu’un qui a déjà ouvert ces tables.

PrestaShop / Woo : pages métier — employés, modules, checkout. Ce n’est pas « WordPress en plus gros ». C’est un autre arbre.

Si vous ne savez pas si une fuite est possible, ce n’est pas un DIY de plus : c’est un constat à faire faire. Vous décidez ensuite de la notification. Le prestataire n’est pas votre DPO.

Ce que le DIY rate le plus souvent

Le mu-plugin, le prepend `.user.ini`, le voisin `old/`, l’Application Password, le cron, l’option en base, le second admin, la clé SSH. La home, elle, est propre. C’est le motif du second appel. Pas parce que les gens sont nuls. Parce que le symptôme est là où on clique.

Le restore « dernière save » sans ouvrir. Le plugin « repair all ». Le chmod 777. La réinstall par-dessus. Quatre classiques, documentés dans les autres articles de ce lot. Les faire soi-même n’est pas plus sage que de les faire faire à un plugin.

Le suivi 30 jours : personne ne le fait vraiment tout seul après avoir « fini ». Un calendrier (J+1, J+3, J+7, dates de fichiers, `site:`) est le minimum DIY sérieux.

Cinq critères pour déléguer tout de suite

1) Phishing, exe, skimmer, rançon active. 2) Compte suspendu et archive à extraire. 3) Plus d’accès FTP/admin et prestataire introuvable. 4) Plusieurs sites sur le compte. 5) Vous avez déjà « nettoyé » une fois et ça a recommencé. Un seul de ces cinq : le ROI du prestataire est évident. Les cinq : n’ouvrez plus FileZilla pour « encore un fichier ».

Critère bonus : vous n’avez pas trois heures calmes. Un nettoyage interrompu toutes les dix minutes par le téléphone, c’est ainsi qu’on laisse le prepend.

Si aucun critère, que le diff ne vous fait pas peur, et que c’est une vitrine : DIY possible. Suivez l’ordre premiers gestes, pas un tuto « 5 plugins to remove malware ».

L’hybride : vous figez, quelqu’un compare

Même délégué, vous êtes utile J0 : captures, copie, panel, ticket, tests visiteurs. Ça ne casse rien, ça raccourcit le dossier, ça réduit la facture. Ne « commencez pas le nettoyage pour avancer » si vous allez déléguer dans l’après-midi : vous déplacez les dates et vous cassez parfois le thème.

L’hybride inverse (prestataire pour l’entrée, vous pour le contenu) marche si les rôles sont écrits. L’hybride flou (deux personnes qui delete dans le FTP) est un incident dans l’incident.

Créer un espace sans fournir l’accès tout de suite : vous pouvez figer d’abord, envoyer ensuite. C’est un hybride propre.

Prix du prestataire vs prix du deuxième incident

Un forfait vitrine se compare à une journée de votre temps + le risque d’un J+8. Combien ça coûte : le moins-disant scanner est plus cher que le forfait complet si vous le payez deux fois. Le DIY « réussi » est le moins cher. Le DIY « presque » est le plus cher.

Demandez un écrit, des accès révocables, le périmètre (un site / le compte), le suivi. Si on vous promet « Google comme avant vendredi » et « 79 € tout compris boutique », continuez à chercher.

Décider ce soir : arbre ci-dessus, une page. Pas un comité. Chaque heure sur un phishing en 200 vaut plus que la nuance DIY.

Questions fréquentes

Je suis développeur mais pas « sécu ». DIY ?

+
Souvent oui sur une vitrine, si vous difféz et lisez les logs. Non si boutique / fuite / second incident. La sécu ici, c’est surtout de la méthode, pas du reverse 0-day.

Mon neveu « s’y connaît en ordi ». Ça compte comme déléguer ?

+
Si le neveu diffé et écrit un constat, peut-être. S’il installe un antivirus Windows sur le PC et un plugin WP, non. Posez-lui la question du zip officiel.

Je commence seul et je délègue si je bloque ?

+
Oui à condition de copier avant et de noter chaque geste. Non si vous delete au jugé « en attendant ». Le prestataire hérite alors d’un site cassé plus d’un site piraté.

Un plugin « malware remover » est-il un bon compromis ?

+
C’est un scanner. Utile pour trier après, dangereux comme seul traitement. Pas un compromis, un outil.

Combien de temps me laisser avant d’appeler ?

+
Une session calme (deux-trois heures) avec copie + log + diff cœur. Si à la fin l’hypothèse d’entrée n’existe pas, ou si un des cinq critères apparaît : stop.
À lire ensuite
Coût d’une intervention Réinstaller WordPress ? Plugin de sécu pendant l’attaque WordPress piraté Premiers gestes Déclarer mon site