Search Console signale un logiciel malveillant : quoi nettoyer
Search Console dit « logiciel malveillant » : Google a téléchargé une ressource dangereuse. Il faut cette URL exacte. Tant qu'elle répond 200, le réexamen échoue. On teste comme un robot, pas comme un admin logué, et on ne se fie pas à « chez moi ça télécharge une image ».
Google a téléchargé une ressource dangereuse. Trouvez cette URL exacte. Tant qu'elle répond 200, le réexamen échoue. Testez comme un robot, pas comme un admin.
Malware dans GSC ≠ virus sur votre PC
Google a classé une ressource de votre site (ou servie via votre site) comme dangereuse pour ceux qui la téléchargent. Votre Windows peut être sain. Inversement, un Wordfence vert ne dit rien de cette URL. Le rapport pointe un fetch.
Ce n'est pas forcément un `.exe`. Un `.js`, un `.pdf` piégé, un `.php` qui sert un payload, un `.apk`. L'extension ment. Google classe le comportement au téléchargement (en-têtes, hash, sandbox), pas le nom que vous voyez dans le FTP. Un `photo.jpg` qui part en `Content-Type: application/octet-stream` avec un PE en corps, c'est le dossier.
Ne formatez pas le PC de la compta comme premier geste. Isolez l'URL.
Trouver l'URL citée, toutes les variantes
Le rapport liste des exemples. Exportez. Ajoutez www, http, les query strings (`?f=1`). Un CDN hostname. Un `uploads/2024/08/invoice.php.jpg`.
Si GSC est vague, les logs : `GET` vers des binaires, user-agent Google. `access.log` autour de la date du mail.
`site:votre-domaine.fr filetype:exe` et cousins. Imparfait, parfois utile. Cherchez aussi `filetype:apk`, `filetype:zip`, et les URL avec `download`, `setup`, `update`. Un rapport GSC ne liste souvent qu'un exemple : le dossier frère (`/files/`, `/dl/`) en contient dix. Listing par date sur tout le webroot, pas seulement `uploads`.
- Export du rapport.
- Hôtes et schémas.
- Logs autour de la date GSC.
Ce que Google a pu prendre pour un binaire
Un `Content-Disposition: attachment` sur un HTML. Un faux codec. Un « update Flash » — encore. Un zip de backup `wp-config` n'est pas un malware classique mais peut être classé dangereux / sensible. Sortez les zips du webroot.
Les `.svg` / `.html` en téléchargement forcé : téléchargement forcé.
Un skimmer n'est pas toujours « malware GSC » ; parfois seulement un JS. Si GSC dit malware, cherchez le drop, pas seulement le formulaire carte.
200, 302, et le fichier qui « n'est plus là »
Vous avez effacé le fichier, l'URL 302 vers un miroir, ou un `.htaccess` la ressert. Le fetch voit encore un corps dangereux. Suivez les redirects jusqu'au bout (5 sauts).
Un 200 avec un corps vide ou un 403 « qui avoue que ça existe » : moins bon qu'un 404/410 franc.
Le CDN : 200 ancien. Purge par URL, pas seulement « everything » oublié sur un préfixe.
JS, iframe, et téléchargement forcé
La home 200 propre, un JS charge `malware.dat`. GSC a fetche le `.dat`. Cherchez tous les `src` / `iframe` / `window.open`. HAR.
Un iframe caché : iframe.
Cloaking : le robot reçoit le binaire, vous une image. Inspection directe. cloaking.
Tester sans être admin, sans cookie de cache
Privé, 4G, curl sans cookies. Inspection GSC. Si vous êtes logué, un WAF vous montre une image, Google le PHP.
Ne téléchargez pas le malware sur le PC de prod « pour analyser ». Copie isolée, ou hash, ou prestataire.
Le type MIME : `application/x-msdownload` sur une URL `.jpg` est un aveu. `curl -I` sur l'URL citée, depuis un réseau qui n'est pas le bureau, montre ces en-têtes sans ouvrir le fichier. Notez `Content-Length` : un « jpg » de 3 Mo n'est pas votre favicon. Cette ligne va dans le constat, à côté de la date GSC.
Retirer, 410, bloquer la réécriture
Fichier hors web, 410, règle qui interdit ce path. Cron / shell qui le repose : tournée habituelle. PHP uploads.
Les backups publics du même binaire : `old/malware.exe`. Cherchez le nom de fichier sur tout le compte.
Porte : sinon GSC reviendra. Admins, FTP.
Réexamen malware, pas le texte phishing
Bouton du rapport malware. « Ressource X retirée le [date], 410, plus de 200. » Pas un roman sur les impôts si le type est malware. demande.
SB peut se lever en 24-72 h ; le rapport malware GSC peut suivre ou précéder. Deux checks.
Trop tôt = refus. Live 410 d'abord. Si le rapport cite encore l'URL 24 h après votre 410, purge CDN puis re-test en direct. Un objet Cloudflare non invalidé a déjà fait échouer des réexamens malware alors que le disque était propre. Le délai Safe Browsing (24 à 72 h) ne démarre pas tant que ce 200 de cache existe.
Après : postes clients et listes antivirus
Si des clients ont téléchargé, dites-leur de scanner / changer les mots de passe selon le payload (vous ne le savez pas toujours). Factuel, pas panique.
Norton et proxies : autres files. proxy.
Vous pouvez déclarer. L'URL exacte du rapport, c'est le brief idéal. Ne téléchargez pas le binaire sur le PC de la compta « pour nous l'envoyer ». Hash, path, en-têtes `curl -I` suffisent à démarrer. Le réexamen attend un 410, pas une analyse reverse du payload.
- URL exacte, fetch anonyme.
- Chaîne de redirects jusqu'au corps.
- 410 + écrivain mort.
- Réexamen du type malware.