Les malwares qui infectent un site WordPress sont rarement visibles à l’œil nu pour le propriétaire : un attaquant qui prend le contrôle de votre site n’a généralement aucun intérêt à dégrader l’apparence publique, parce que la dégradation visible alerte immédiatement et déclenche le nettoyage. À la place, il préfère installer du code discret qui sert ses propres objectifs : redirection des visiteurs vers des sites de phishing, injection de liens cachés vers ses propres pages pour gagner du SEO, vol des données de paiement saisies par vos clients, ou ajout de votre serveur à un botnet d’attaque DDoS. Le résultat : un site qui semble normal côté propriétaire mais qui dégrade activement son SEO, vole ses clients et risque le blacklisting Google à tout moment. Le scan régulier est la seule façon de détecter ces infections silencieuses. Chez Propuls’Lead, nous incluons un scan hebdomadaire automatisé dans tous les contrats de maintenance WordPress, parce que l’expérience montre que la détection précoce divise par dix le coût de la récupération.
Comprendre les types de malwares qui ciblent les sites WordPress
Les malwares WordPress se répartissent en cinq familles principales avec des objectifs et des signatures distincts. Famille 1 : les redirections malveillantes qui réécrivent l’URL de destination quand un visiteur arrive depuis un moteur de recherche. Le propriétaire qui visite son site directement ne voit rien d’anormal, mais les visiteurs Google sont redirigés vers un site de pharmacie illégale ou de jeux d’argent. Cette famille est la plus fréquente sur les sites WordPress de PME et la plus dévastatrice pour le SEO.
Famille 2 : les portes dérobées (backdoors) qui maintiennent l’accès de l’attaquant même après un nettoyage partiel. Typiquement un fichier PHP minuscule (parfois 200 octets) caché dans wp-content/uploads ou parmi les plugins, qui accepte une requête HTTP spécifique pour exécuter n’importe quel code sur le serveur. Ces fichiers échappent souvent aux scans superficiels.
Famille 3 : les injections de SEO spam qui ajoutent des liens cachés en CSS (display:none ou positionnement hors écran) vers des sites tiers, généralement liés au business de l’attaquant. Famille 4 : les malwares de vol de données (card skimmers) qui interceptent les saisies sur les formulaires de paiement et envoient les numéros de carte à un serveur tiers. Spécialement dangereux sur les sites e-commerce. Famille 5 : les mineurs de cryptomonnaie qui utilisent la puissance du serveur ou des visiteurs pour miner du Monero ou autres cryptos en arrière-plan. Notre article sur site WordPress piraté, le guide de récupération pas à pas pour reprendre la main revient sur la procédure complète une fois l’infection détectée.
Lancer un scan externe gratuit avec Sucuri SiteCheck et Quttera
Le premier réflexe pour détecter un malware est le scan externe gratuit qui ne nécessite aucun accès au serveur. Outil 1 : Sucuri SiteCheck (sitecheck.sucuri.net), accessible en saisissant l’URL du site dans le formulaire. L’outil analyse les pages publiques, détecte les redirections suspectes, vérifie la présence sur les blacklists Google Safe Browsing, McAfee SiteAdvisor et Norton, et identifie certaines signatures de malwares connus.
L’avantage du scan externe est sa rapidité (résultat en 30 secondes) et son absence d’impact sur le serveur. Sa limite : il ne voit que ce qui est exposé publiquement. Un backdoor PHP caché qui ne s’active que sur une requête spécifique, ou un card skimmer qui ne s’active que sur la page de checkout, ne sont pas détectés. Le scan externe est un premier filtre utile mais ne remplace pas un scan interne.
Outil 2 : Quttera Web Malware Scanner (quttera.com), similaire dans son fonctionnement mais avec une base de signatures différente, ce qui permet de détecter des malwares manqués par Sucuri. Bon réflexe : lancer les deux scans en parallèle pour couvrir un spectre plus large. Outil 3 : VirusTotal qui agrège les résultats de 70 antivirus en une seule analyse. Pour les domaines suspectés, VirusTotal donne un panorama complet du statut de réputation. Notre article sur Wordfence vs Sucuri, quel plugin de sécurité WordPress choisir pour une PME revient sur le choix entre ces deux écosystèmes pour la protection continue.
Installer un scanner interne via plugin Wordfence ou MalCare
Pour détecter les malwares cachés à l’intérieur du serveur, le scan interne est indispensable. Plugin 1 : Wordfence Scanner (gratuit dans la version free, premium à 119 USD par an). Compare chaque fichier du cœur WordPress, des plugins du repository officiel et des thèmes WordPress.org avec la version officielle pour détecter les modifications non autorisées. Détecte également les signatures de malwares connus dans les fichiers personnalisés et les backdoors les plus fréquents.
Le scan Wordfence se programme à la fréquence souhaitée (quotidien recommandé pour les sites e-commerce, hebdomadaire pour les sites vitrine) et envoie un rapport email à chaque exécution. Les fichiers suspects sont listés avec leur emplacement et la raison de la détection. Une fonction de comparaison permet de visualiser la différence entre la version trouvée et la version officielle attendue.
Plugin 2 : MalCare (gratuit pour le scan, payant 99 USD par an pour le nettoyage automatique). Approche complémentaire à Wordfence : exécute le scan sur les serveurs MalCare (pas sur votre serveur), ce qui évite la surcharge CPU et la fuite d’informations qui rendrait le scan détectable par l’attaquant. Particulièrement adapté aux hébergements mutualisés où la puissance CPU est limitée. Plugin 3 : Sucuri Security (gratuit pour la détection, premium à 199 USD par an pour le nettoyage). Bonne intégration avec la suite Sucuri externe pour une vision unifiée. Notre article sur sécuriser son site WordPress avec les 10 actions qui bloquent 99 % des attaques revient sur le contexte de sécurité qui inclut le scan en mesure de détection.
Interpréter les résultats et distinguer faux positifs et vraies menaces
Tout scanner produit des faux positifs : des fichiers signalés comme suspects alors qu’ils sont légitimes. La capacité à distinguer une vraie menace d’un faux positif est essentielle pour éviter à la fois la panique inutile et la négligence d’une vraie infection. Trois indicateurs aident à cette distinction.
Indicateur 1 : la date de modification du fichier. Un fichier du cœur WordPress modifié à une date qui ne correspond pas à une mise à jour officielle est suspect. Un fichier modifié quelques minutes après une intervention administrateur légitime est probablement un faux positif lié à l’intervention. Le journal des actions WordPress (via plugin WP Activity Log) facilite cette corrélation.
Indicateur 2 : l’emplacement du fichier. Un fichier PHP trouvé dans wp-content/uploads est presque toujours malveillant, parce que ce dossier ne doit contenir que des médias téléversés. Un fichier modifié dans wp-includes est suspect parce que ce dossier contient le cœur immuable de WordPress. Un fichier modifié dans un thème personnalisé peut être légitime si un développeur intervient régulièrement.
Indicateur 3 : la signature du contenu. Un fichier qui contient des fonctions PHP suspectes comme eval(), base64_decode(), shell_exec() ou des chaînes longues de caractères non lisibles est très probablement un malware. Un fichier qui contient du code lisible et cohérent avec sa supposée fonction est probablement légitime. Notre article sur WordPress et permissions fichiers, les réglages serveur qui protègent votre site revient sur les contrôles serveur qui empêchent l’écriture de ces fichiers en amont.
Industrialiser la détection dans la méthodologie PROPULSE
Dans le cadre de la méthodologie PROPULSE que nous appliquons chez Propuls’Lead, la détection de malwares suit un protocole en trois temps pour tous les sites WordPress sous maintenance. Temps 1 : un scan externe automatisé via l’API Sucuri SiteCheck tourne quotidiennement et alerte en cas de détection d’une redirection suspecte ou d’un blacklisting par Google. Cette alerte permet une réaction en quelques heures, avant que le SEO ne soit dégradé sur plusieurs semaines.
Temps 2 : un scan interne via Wordfence Premium tourne quotidiennement sur les sites e-commerce et hebdomadairement sur les sites vitrine. Le rapport est traité par un consultant qui distingue les faux positifs (modifications légitimes d’un développeur, plugins payants avec signatures inconnues) des vraies menaces (fichiers PHP injectés dans uploads, backdoors avec eval base64). Les vraies menaces déclenchent un protocole de récupération immédiat.
Temps 3 : un test de pénétration semestriel par un consultant qui tente activement de détecter des malwares passés sous le radar des scanners automatisés. Ce test inclut l’inspection manuelle des fichiers récemment modifiés, l’analyse des logs d’accès anormaux, et la vérification de l’intégrité de la base de données. Sur les sites e-commerce que nous accompagnons, ce protocole a permis de détecter quatre infections dans l’année écoulée, toutes nettoyées en moins de 24 heures sans impact SEO ni perte de données client. Notre article sur WordPress et sauvegardes, la règle 3-2-1 appliquée à un site web revient sur le filet de sécurité qui complète la détection en permettant la restauration rapide.
Ce qu’il faut retenir pour scanner son site WordPress
Le scan régulier d’un site WordPress est la mesure unique qui transforme une infection invisible en problème détectable. Cinq points clés à retenir : les malwares WordPress ciblent les redirections SEO, les backdoors, le SEO spam, le vol de paiement et le minage crypto, le scan externe Sucuri SiteCheck détecte les symptômes publics en 30 secondes sans accès serveur, le scan interne via Wordfence ou MalCare détecte les fichiers cachés modifiés et les signatures de malware connues, l’interprétation des résultats croise date emplacement et signature pour distinguer faux positifs et vraies menaces, l’industrialisation combine scan externe quotidien scan interne planifié et pentest semestriel. Chez Propuls’Lead, ce protocole de détection précoce divise par dix le coût et la durée des récupérations sur les sites que nous accompagnons.
