WordPress compromis : nettoyer, restaurer et surveiller après une attaque

Votre site WordPress est compromis ? Découvrez notre guide essentiel pour nettoyer, restaurer et sécuriser efficacement votre installation. Apprenez à protéger votre site des menaces futures et à reprendre le contrôle total.

Ouch. Ton site WordPress a été compromis. C’est une situation frustrante, voire carrément paniquante. On est tous passés par là, ou on connaît quelqu’un qui y est passé. Que ce soit un defacement, l’injection de liens spammy, une porte dérobée (backdoor) ou un malware qui redirige tes visiteurs, la première chose à faire est de ne pas céder à la panique. La seconde ? Agir méthodiquement et rapidement.

Tu as un site infecté, c’est un fait. Maintenant, on va voir ensemble comment le nettoyer en profondeur, le remettre sur pied et, surtout, s’assurer que ça ne se reproduise plus. C’est une opération délicate, qui demande de la rigueur, mais c’est tout à fait faisable.

Nettoyage et éradication : la phase chirurgicale

La première étape est de couper l’hémorragie. Ton site est une menace pour tes visiteurs et potentiellement pour ton hébergement.

Diagnostic rapide et mise hors ligne

Avant toute chose, essaie de comprendre l’étendue des dégâts. Tu peux utiliser des scanners en ligne gratuits comme [Sucuri SiteCheck](https://sitecheck.sucuri.net/) ou [Google Safe Browsing](https://transparencyreport.google.com/safe-browsing/search?hl=fr) pour avoir une première idée. Est-ce un simple spam, un redirect, ou le site est-il complètement inaccessible ?

Ensuite, mets ton site hors ligne. Oui, ça peut paraître drastique, mais c’est essentiel pour stopper la propagation de l’attaque, protéger tes visiteurs et éviter que les attaquants ne continuent leurs méfaits pendant que tu travailles. Tu peux renommer ton fichier `index.php` ou ajouter une règle dans ton `.htaccess` pour rediriger tout le trafic vers une page statique qui indique que le site est en maintenance.

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/maintenance.html$

RewriteRule ^(.*)$ /maintenance.html [R=302,L]

 

Ceci redirige tout vers `maintenance.html`. N’oublie pas de créer cette page simple.

Nettoyage des fichiers : le balai et la loupe

C’est là que le travail manuel commence. Accède à ton site via FTP ou SSH.

1. Supprime tout sauf le strict nécessaire. Commence par supprimer tous les fichiers et dossiers WordPress (sauf `wp-content` et `wp-config.php`). Ensuite, télécharge une nouvelle copie propre de WordPress depuis [WordPress.org](https://fr.wordpress.org/download/) et transfère tous ces nouveaux fichiers (sauf `wp-content` et `wp-config.php`) à la racine de ton site. Cela garantit que ton cœur WordPress est sain.

2. Passe au crible `wp-config.php`. Ce fichier est vital. Vérifie qu’il n’y a pas de lignes suspectes ajoutées, surtout à la fin du fichier. Assure-toi que tes clés de sécurité (`AUTH_KEY`, `SECURE_AUTH_KEY`, etc.) sont uniques et complexes. Si ce n’est pas le cas, tu peux les regénérer via l’API officielle de WordPress : [api.wordpress.org/secret-key/1.1/salt/](https://api.wordpress.org/secret-key/1.1/salt/).

3. Analyse le dossier `wp-content`. C’est souvent là que les backdoors et malwares se cachent.

    • Thèmes : Supprime tous les thèmes que tu n’utilises pas. Pour ceux que tu utilises, télécharge une version fraîche depuis leur source officielle et remplace les fichiers. Vérifie minutieusement les fichiers `functions.php`, `header.php`, `footer.php` et tout nouveau fichier étrange. Cherche des encodages `base64_decode`, `eval`, `str_rot13` ou des inclusions de fichiers distants.
    • Plugins : Même combat. Supprime tous les plugins inutiles. Pour les autres, télécharge-les depuis le répertoire WordPress ou leur site officiel et écrase les anciennes versions. Vérifie aussi les dossiers de plugins pour des fichiers inattendus. Les fichiers comme `wp-vcd.php` ou `class-wp-support.php` sont souvent des malwares connus.
    • Uploads : Le dossier `wp-content/uploads` peut contenir des fichiers malveillants, notamment des fichiers PHP cachés. Vérifie la présence de fichiers `.php` ou de fichiers avec des extensions doubles (`image.jpg.php`). Par défaut, WordPress ne devrait pas exécuter de PHP dans ce dossier. Tu peux ajouter une règle `.htaccess` pour t’en assurer :

# wp-content/uploads/.htaccess

deny from all

 

      • Autres fichiers : Regarde à la racine de ton site, ou dans `wp-includes`, pour tout fichier étrange (par exemple, des fichiers avec des noms aléatoires, des fichiers `.php` qui ne font pas partie de WordPress).

Nettoyage de la base de données

La base de données est une autre cachette privilégiée. Accède à phpMyAdmin ou à un outil similaire.

1. Change les préfixes de table si tu ne l’as pas déjà fait. C’est une bonne pratique de sécurité.

2. Vérifie la table `wp_users` (ou `tonprefix_users`). Y a-t-il de nouveaux utilisateurs administrateurs que tu n’as pas créés ? Supprime-les immédiatement. Change les mots de passe de tous les comptes administrateurs restants, y compris le tien.

3. Examine les tables `wp_options` et `wp_posts` (ou leurs équivalents avec ton préfixe). Cherche des injections de spam, des liens suspects, des redirections malveillantes. Par exemple, une option `siteurl` ou `home` modifiée pourrait rediriger ton site. Des scripts malveillants peuvent aussi être injectés dans le contenu des posts ou des pages.

4. Vérifie la table `wp_comments` pour du spam non désiré.

Changement de tous les identifiants

C’est crucial.

        • Change le mot de passe de ton compte administrateur WordPress.
        • Change le mot de passe de tous les autres comptes utilisateurs importants.
        • Change le mot de passe de la base de données (et mets à jour `wp-config.php`).
        • Change les mots de passe FTP/SSH.
        • Change le mot de passe de ton panneau d’hébergement (cPanel, Plesk, etc.).

Prends des mots de passe forts, uniques et longs. Utilise un gestionnaire de mots de passe.

Restauration et durcissement : reconstruire et fortifier

Une fois le nettoyage fait, il faut s’assurer que le site est fonctionnel et plus solide qu’avant.

Restauration depuis une sauvegarde saine (si applicable)

Si tu as une sauvegarde antérieure à l’attaque et dont tu es certain qu’elle est propre, c’est le moment de l’utiliser. Cela peut simplifier grandement le processus de nettoyage. Attention : une sauvegarde infectée ne fera que réintroduire le problème.

Mises à jour critiques

Mets à jour tout :

          • Le cœur de WordPress.
          • Tous tes thèmes (même ceux que tu n’utilises pas, ou supprime-les).
          • Tous tes plugins.

Les failles non patchées sont la cause numéro un des attaques. C’est non négociable.

Durcissement de la sécurité

Maintenant que ton site est propre, renforce-le.

            • Permissions de fichiers : Assure-toi que les permissions sont correctes. Généralement, les dossiers doivent être en `755` et les fichiers en `644`. Le fichier `wp-config.php` est souvent en `600` ou `440`. Des permissions trop laxistes (`777`) sont une invitation ouverte.
            • Sécurité du `wp-config.php` : En plus des clés de sécurité, tu peux ajouter ceci :

 

define('DISALLOW_FILE_EDIT', true); // Désactive l'édition de fichiers via l'admin WP

define('DISALLOW_FILE_MODS', true); // Empêche l'installation/mise à jour de plugins/thèmes via l'admin WP (à désactiver temporairement si besoin)

 

              • Protection du `.htaccess` :
              • Empêche l’accès aux fichiers sensibles :

Order Allow,Deny

Deny from all

 

                • Protège `wp-config.php` :

Order Allow,Deny

Deny from all

 

                  • Désactive l’exploration des répertoires : `Options -Indexes`
                  • Désactive l’utilisateur « admin » par défaut s’il existe et si tu ne l’as pas déjà fait. Utilise un nom d’utilisateur unique et non prévisible.
                  • Mets en place la double authentification (2FA) pour l’accès à l’administration WordPress, si ton hébergeur ou un plugin le permet.
                  • Utilise un plugin de sécurité. Des solutions comme [Wordfence Security](https://fr.wordpress.org/plugins/wordfence/) ou [Sucuri Security](https://fr.wordpress.org/plugins/sucuri-security-scanner/) peuvent t’aider à scanner régulièrement ton site, à mettre en place un pare-feu applicatif (WAF) et à surveiller les modifications de fichiers.

Surveillance et prévention : garder un œil vigilant

Le nettoyage est une chose, la pérennité en est une autre. Un site compromis est souvent une cible récurrente.

Surveiller l’activité du site

                    • Logs serveur : Apprends à consulter les logs de ton serveur web (accès, erreur). Ils sont une mine d’informations pour détecter des requêtes suspectes ou des tentatives d’intrusion.
                    • Scans réguliers : Planifie des scans de sécurité réguliers avec un plugin ou un service externe.
                    • Alertes : Configure des alertes pour les modifications de fichiers critiques, les tentatives de connexion échouées ou les nouvelles installations.
                    • Google Search Console : Vérifie régulièrement si Google a détecté des problèmes de sécurité sur ton site.

Les bonnes habitudes pour l’avenir

                    • Sauvegardes régulières et externes : C’est ta meilleure assurance. Fais des sauvegardes complètes (fichiers et base de données) et stocke-les en dehors de ton serveur. Des plugins comme [UpdraftPlus](https://fr.wordpress.org/plugins/updraftplus/) peuvent automatiser cela vers des services cloud.
                    • Mises à jour automatiques : Active les mises à jour automatiques pour les versions mineures de WordPress et les plugins/thèmes de confiance. Pour les versions majeures, prévois un test avant de déployer.
                    • Limitation des tentatives de connexion : Un plugin peut bloquer les adresses IP après un certain nombre de tentatives échouées.
                    • Hébergement de qualité : Un bon hébergeur fournit un environnement sécurisé
Stéphane
Stéphane
Articles: 39