PORTAILS DE L'ADMINISTRATION Gouvernement Service public Légifrance
Portail officiel de la sécurité informatique - ANSSI - République française

Portail officiel de la sécurité informatique - ANSSI - République française

Actualités  >  Technique

Détecter un programme malveillant sous Windows

26 août 2008  12:56

Cette page vise à aider l’utilisateur ou l’administrateur système à reconnaître l’exécution de programmes malveillants sur un poste compromis lorsque l’antivirus ne fonctionne plus ou que les résultats de ce dernier se révèlent insuffisants. Les outils présentés dans cet article se veulent simples afin d’identifier, voire éliminer, une menace de premier niveau sur un système Windows.

Nota Bene

Les copies d’écran sont limitées en largeur au cadre de l’article. Pour les voir dans leur format normal, cliquez dessus.

A retenir

- Vérifier les journaux du serveur mandataire (ou proxy) et écouter le trafic sortant du poste à analyser.
- Débrancher le poste analysé du réseau.
- Sauvegarder les données importantes en cas d’erreur de manipulation.
- Vérifier l’intégrité du cœur de Windows à l’aide de l’outil Rootkit Unhooker ou Rootkit Revealer.
- Vérifier les programmes en cours d’exécution à l’aide de l’outil Process Explorer.
- Vérifier les programmes lancés automatiquement au démarrage de Windows ou d’une application à l’aide de l’outil Autoruns.
- Vérifier l’activité réseau à l’aide de l’outil Tcpview.
- Supprimer les programmes malveillants à l’aide d’outils dédiés ou par un système externe.
- Réitérer éventuellement les étapes précédentes.

Il est rappelé qu’en cas de découverte d’une réelle intrusion (action manifestement différente d’un programme autoreproducteur comme un ver) ou de fichiers pénalement répréhensibles (pédopornographie par exemple), il est convient de faire appel sans délai aux services spécialisés et d’adopter les bons premiers réflexes.

Introduction

Que l’on soit utilisateur ou responsable informatique, il devient de plus en plus courant d’être méfiant vis-à-vis d’une infection potentielle de l’un de ses postes par un programme malveillant (encore appelé malware). Le nombre grandissant de vecteurs de transport de ces derniers (site web, courrier électronique, réseau peer-to-peer, etc.) nécessite de vérifier régulièrement l’état d’intégrité d’un poste, ou d’un échantillon de poste, exposé. Le vecteur d’infection par le navigateur Internet est de plus en plus privilégié par les attaquants : un serveur web (complice ou à son insu) héberge un contenu malveillant pouvant se propager sur le poste via le navigateur. Les messages électroniques restent également encore largement utilisés comme mode de propagation : les attaquants privilégient l’utilisation d’un lien vers un site web hébergeant le contenu malveillant.

Les serveurs sont fonctionnellement moins affectés par ce type de menace : les administrateurs ou les exploitants ne naviguent pas sur Internet depuis un serveur, si tel est le cas seulement vers des sites d’éditeur reconnus. La navigation ou la consultation de message électronique sont réservées au poste de travail, qui devient de ce fait la cible quasiment exclusive des programmes malveillants. C’est pourquoi, cet article se limitera au cas d’un poste de travail sous Windows XP ou Vista. Par ailleurs, les méthodes et outils employés sont rapidement réalisables par une personne ayant des connaissances techniques courantes. Cette page ne se veut pas trop technique ou exhaustive sur les modifications faites sur le système. La démarche proposée peut-être réalisée de manière semi-automatisable (à l’aide de script) notamment si l’étude doit être menée sur plusieurs dizaines ou centaines de postes de travail.

L’identification de programmes malveillants s’arrête généralement aux résultats de l’antivirus, ce qui peut être une première étape vers la détection et l’éradication d’un malware, mais qui s’avère parfois longue et incomplète. Il est possible de faire appel à des services spécialisés ayant des connaissances juridiques et techniques avancées comme les CERT ou les sociétés de conseil en sécurité. Si cette solution est plutôt fortement recommandée dans le cas d’intrusion constatée, elle demeure excessive lorsqu’il s’agit d’une infection par un malware largement répandue ou dans un cadre familial. L’objectif de cette page est de fournir quelques commandes ainsi que quelques critères de décision simples et faciles pour permettre au service informatique ou à un informaticien d’identifier et d’éliminer un malware. Évidemment, les méthodes présentées ne remplaceront pas l’appel à des services spécialisés (cités précédemment) ayant les moyens de détecter un comportement malveillant et de réparer le système. De même, une solution fiable et radicale consiste à réinstaller le poste à partir du cédérom d’installation ou d’un clone. Toutefois, dans de nombreux cas, on peut apporter une réponse satisfaisante sans faire appel à un service spécialisé ou à la réinstallation du poste.

Enfin, en recherchant, même de manière superficielle, à identifier un malware, il est possible aussi d’apprendre de nombreuses fonctionnalités sur le système d’exploitation Windows et parfois même de localiser des problèmes de performances insoupçonnés comme un programme lancé de manière inopinée ou la consommation inutile de ressources, etc.

Première analyse de l’extérieur

Dans la plupart des cas, les malwares tenteront de se propager et de communiquer par le réseau interne, par courrier électronique ou en essayant de joindre un serveur complice sur Internet. En dehors du cas du réseau interne plus délicat, les communications vers Internet laissent des traces sur les serveurs et dispositifs réseau. Il faut néanmoins avoir configuré ces équipements pour journaliser les événements utiles et avoir les procédures adéquates de surveillance des journaux.

Le premier réflexe est donc de vérifier les accès suspects au serveur mandataire (ou proxy). Par « suspect », on entend, par exemple, un accès Internet aux heures non ouvrées depuis un poste de travail inoccupé ou des tentatives d’accès répétitives (parfois infructueuses) vers des sites inconnus. De même, les statistiques d’envoi de courriers électroniques permettent d’identifier un poste de travail infecté dont le vecteur de propagation est le service de messagerie.

Enfin, il est toujours souhaitable de trier (à l’aide d’un sniffer) les flux transitant sur les réseaux des postes de travail ; ne serait-ce que pour des questions de performance et de cohérence du réseau.

Symptômes de compromission

Les malwares ont des niveaux de furtivité différents. Cet article ne vous permettra pas de détecter les malwares utilisant les dernières techniques de rootkit (une réinstallation sera alors le remède le plus simple). Toutefois, dans la plupart des cas, des éléments simples vont trahir leur présence : un paramètre mal configuré, des hypothèses d’exécution trop restrictives (par exemple, le programme s’exécute avec les privilèges d’un utilisateur sans droits d’administration). Comme n’importe quel programme, le malware n’est pas toujours correctement implémenté et les actions qu’il réalise sont détectables, ce que nous allons utiliser.

PNG - 3.4 ko

La capture précédente montre une boite de dialogue pouvant apparaître au démarrage d’un poste compromis. Elle indique ici un programme malveillant (loa.exe) échouant lors de l’écriture d’un fichier dans le répertoire c:\Program Files\mIRC. Les hypothèses d’écriture de ce programme doivent être trop importantes : on peut supposer qu’il considère que l’utilisateur est administrateur de son poste.

Avant de commencer les opérations techniques, les questions suivantes peuvent être posées à l’utilisateur du poste suspecté et même réemployées dans le cadre de séances de sensibilisation.

- la présence et la disparition immédiate de boîtes de dialogue au démarrage de Windows. Il s’agit d’un symptôme très courant traduisant le lancement d’une commande au démarrage du système. Il est recommandé de noter le nom de la boîte de dialogue si le délai d’apparition le permet. Les procédures de démarrage de Windows sont anormalement plus longues ;

- un message d’erreur cyclique et récurrent. Une fenêtre (parfois en anglais) affiche un message parfois « cryptique » décrivant une erreur du système ou d’écriture de données. Comme explicité précédemment, ce symptôme traduit une opération échouée du malware comme l’écriture dans le répertoire c :\Windows alors que l’utilisateur n’est pas administrateur de son poste (ce qui est une bonne chose !) ;

- l’écran bleu de Windows. Ce symptôme exprime un bogue dans le cœur du système Windows. Si ce phénomène apparaît de manière régulière depuis peu de temps, il peut traduire la présence d’un malware logé dans le noyau ce qui est généralement mauvais signe ;

- le démarrage du navigateur Internet (Internet Explorer, Firefox, …) avec des adresses de navigation inconnues ou ce dernier s’arrête de fonctionner subitement. Il s’agit d’une technique souvent employée par les programmes malveillants pour naviguer sur Internet avec le compte de l’utilisateur (ce qui devrait toujours être le cas dans le cadre des bonnes pratiques de sécurisation du poste de travail) ;

- la fenêtre courante perd son focus, l’utilisateur est obligé de recliquer sur la fenêtre courante ;

- un poste de travail fonctionnant lentement ou ne disposant plus de mémoire après un certain temps de fonctionnement. Ce symptôme traduit un programme malveillant consommant (volontairement ou non) toute la mémoire du poste de travail ;

- la présence de fichiers inconnus (film, musique, etc.) sur le poste de travail. Ce symptôme traduit un poste de travail compromis et utilisé dans un réseau de machines compromises (ou « botnet »). Il est recommandé d’avertir les autorités qualifiées dans le cas de découverte d’un tel phénomène (la présence de fichiers pédopornographiques est répréhensible et est poursuivie pénalement) ;

- des messages électroniques envoyés du poste de travail sans interaction de l’utilisateur ;

- une activité matérielle suspecte comme l’ouverture et la fermeture du lecteur cédérom, un message d’avertissement de la désactivation du pare-feu ;

- dans le cas de Windows Vista, la boite de dialogue UAC (User Account Control) apparaît régulièrement afin de demander des droits d’administrateur ou d’exécution de commandes privilégiées ;

- une connexion Internet ralentie. Ce symptôme reste très subjectif et peut être causé par plusieurs actions concurrentes. Néanmoins, si la connexion Internet semble partagée entre plusieurs programmes, cela peut traduire l’utilisation d’Internet à l’insu de l’utilisateur. L’analyse des journaux du proxy ou du pare-feu peut confirmer ce symptôme.

Vecteurs de contamination

Dans la plus part des cas, un programme malveillant sera installé à l’aide d’une vulnérabilité sur le poste (une mise à jour absente, un mot de passe peu complexe, une configuration trop permissive, etc.) ou plus généralement à cause de la confiance trop importante accordée par les utilisateurs à la pièce jointe d’un message électronique ou d’un fichier téléchargé sur Internet (fichier au nom attrayant, nom de l’expéditeur falsifié, le fameux « clic » de trop). Ainsi, on rencontre généralement les scénarios de contaminations suivants :
- l’utilisateur télécharge une application contenant le programme malveillant comme, par exemple, un programme affichant de la publicité (aussi appelé adware) ;
- l’utilisateur valide par inadvertance sur une fenêtre (ou popup) de confirmation d’exécution d’un programme ;
- l’utilisateur visite un site exploitant une vulnérabilité du navigateur ou d’un composant installé comme, par exemple, le lecteur PDF ;
- l’antivirus n’a pas été mise à jour ou a été désactivé ce qui facile la propagation d’un programme malveillant. On constate d’ailleurs que de plus en plus de programmes malveillants s’attaquent à l’antivirus : ils empêchent la mise-à-jour de la base de ce dernier ou le désactive.

Boite à outils

Il est recommandé de stocker l’ensemble de ses outils sur une clé USB et de l’insérer dans le poste de travail à évaluer. Le nom des outils pourra être renommé pour éviter les attaques, de plus en plus fréquentes, contre ces derniers : par exemple, les programmes malveillants peuvent détecter l’utilisation du programme Process Explorer (explicité plus loin) et avoir un comportement différent lorsqu’il est lancé. Ensuite, il est préconisé de débrancher le poste de travail du réseau durant la manipulation et de désactiver l’antivirus éventuellement installé (pour ne pas interférer avec l’analyse). Les droits d’administration locale sont nécessaires pour exécuter la plupart des programmes.

La présence d’un programme suspect et la complexité des opérations réalisées font que tous les outils présentés dans ce document sont susceptibles d’altérer la fonction du poste de travail voire de provoquer un redémarrage inopiné de ce dernier. Une sauvegarde des données les plus précieuses pourra être réalisée avant le début de l’analyse (en vérifiant a posteriori qu’aucun fichier infecté n’a été copié).

Par ailleurs, il est à noter que les sources de ces outils ne sont pas toujours disponibles. Il est recommandé de télécharger les programmes depuis le site original du programme et en aucun cas depuis un réseau peer-to-peer. La plupart des outils peuvent se retrouver sur le site http://live.sysinternals.com/. Il est d’ores et déjà possible de télécharger :
- Process Explorer (procexp.exe et procexp.chm) : un gestionnaire de programme très évolué ;
- Autoruns (autoruns.exe et autoruns.chm) : un outil de collecte des programmes lancés au démarrage ;
- TcpView (tcpview.exe et tcpview.chm) : un analyseur de connexion réseau ;
- ListDLL (listdlls.exe) : un outil d’analyse de bibliothèques chargées en mémoire.

Recherche sur Internet

Internet est sans aucun doute l’aide la plus précieuse pour identifier les fichiers suspects. C’est pourquoi dans la suite de ce document, il sera plusieurs fois fait référence à des recherches sur Internet, notamment celles réalisées sur des moteurs de recherche. Le poste en cours d’analyse doit être normalement débranché d’Internet : on pourra utiliser un autre poste pour réaliser les recherches afin d’éviter de reconnecter le poste ce qui pourrait entraîner une réaction du malware. En effet, ces derniers renvoient à des analyses passées ou des commentaires de sites spécialisés (dont les éditeurs d’antivirus). Si un fichier (.exe, .reg, .bat), une bibliothèque (.dll) ou un driver (.sys) apparaît comme une ressource suspecte, la recherche sur Internet permet de confronter cette ressource à un ensemble de documents et d’analyses déjà réalisées. Les moteurs de recherche usuels (comme Exalead ou Google) peuvent être un bon moyen de départ.
Il suffit de taper le nom du fichier incriminé pour voir les pages associées. La capture suivante montre le résultat sur Exalead de la recherche d’un fichier suspect « 28348177711.exe ».

PNG - 63.4 ko

On constate que la plupart des recherches renvoient vers des analyses réalisées par des éditeurs d’antivirus.

Il existe des sites spécialisés dans l’identification de programmes malveillants. On compte tout d’abord les sites passifs (type encyclopédie). Le contenu est parfois très détaillé : il apporte une aide précieuse pour localiser et éliminer un programme malveillant. Parmi ces sites, on retrouve les grands éditeurs d’antivirus :
- Trendmicro - http://www.trendmicro.com/vinfo/fr
- Greatis Software - http://www.greatis.com/appdata
- Symantec - http://www.symantec.com/business/se...
- ThreatScanner - http://www.threatexpert.com/reports.aspx
- Sophos - http://www.sophos.com/security/analyses

Dans le cas où la recherche sur Internet ne permet pas de lever le doute sur un programme suspect, il est possible d’utiliser des moteurs d’analyse dynamiques. Le programme suspect est chargé sur le site, puis analysé par une vingtaine d’antivirus à jour. Le site donne le résultat de chaque antivirus au fur et à mesure de l’avancement de l’analyse virale : certains antivirus sont configurés pour être plus sensibles que d’autres, il convient de supprimer les fausses alertes manifestes (ou faux positif). Enfin, il arrive que, le programme ayant déjà été analysé auparavant, le rapport soit immédiat. Il faudra être vigilant à la date de dernière analyse, car les bases de signature ont été mises à jour depuis.

PNG - 20.6 ko

Les sites Virus Scan, Virus Total et Vir-Scan fournissent un tel service.

Important : Il est préconisé d’utiliser ces sites avec discernement. Par exemple, un document Word confidentiel ou un programme payant ne doivent pas être chargés sur ces sites.

Vérifier le noyau Windows

Le noyau est l’élément le plus important du système d’exploitation. Il est, par exemple, responsable du maintien de la liste des programmes en cours d’exécution (comme celle affichée par le gestionnaire des tâches de Windows). Ainsi, lorsqu’un programme malveillant arrive à compromettre le noyau, il peut dissimuler des informations comme un programme en cours d’exécution. Les programmes d’analyse ont donc une confiance implicite dans les appels au noyau encore appelés appels systèmes. Il n’existe pas de méthodes fiables à 100% pour détecter la compromission du noyau, mais certaines d’entre elles permettent de détecter une majorité de programmes malveillants. Le site ANTIROOKIT énumère un grand nombre de produits pour lutter contre les rootkits ainsi que les points de téléchargement. L’outil Rootkit Revealer identifie les fichiers ou les clés de la base de registre qui auraient été cachés par un rootkit. Toutefois, l’analyse est longue et l’interprétation des résultats parfois délicate. La capture suivante montre le résultat de l’outil RootkitRevealer.

PNG - 37.9 ko

Il est possible de déterminer les fichiers cachés par un programme malveillant « Hidden from Windows API ». Toutefois, RootkitRevealer ne permet pas d’identifier la cause de cette modification. C’est pourquoi, on pourra préférer l’outil Rootkit Unhooker (dont le développeur est maintenant employé de Microsoft) plus complet et plus rapide à utiliser.

La capture d’écran suivante montre l’outil l’écran principal de Rootkit Unhooker. Dans chacun des onglets SSDT (qui correspond à la table des appels systèmes Windows), Shadow SSDT, Processes et Drivers, on retrouve des informations comme le nom du fichier associé et une indication de suspicion (s’il a été modifié « hooked » ou caché « hidden »). Lorsqu’une telle indication est présente, il convient de mener une petite enquête comme décrit précédemment (moteur de recherche et encyclopédie).

PNG - 26 ko

Par exemple, sur la capture précédente, on constate que plusieurs éléments de la SSDT ont été modifiés par les modules cmdguard.sys et sptd.sys. Une recherche montre que ces modules sont légitimes et installés respectivement par le pare feu Comodo Firewall et le lecteur cédérom virtuel Daemon Tools.

PNG - 25.1 ko

La précédente capture montre l’onglet « Processes ». On constate qu’un processus evil.exe a été caché car il est marqué comme « Hidden from Windows API ». Que se soit ici dans l’onglet « Processes » ou « Drivers », on sera particulièrement vigilant au chemin de l’exécutable utilisé, notamment si le chemin pointe vers un répertoire temporaire ou du cache Internet Explorer de l’utilisateur, ce comportement est inhabituel, là aussi une recherche s’impose. Dans la capture précédente, le chemin d’exécution du processus evil.exe est le répertoire temporaire d’Internet Explorer. Dans le cas d’une modification du noyau, l’outil permet de remettre en état les éléments modifiés « Unhook ». D’autres outils antirootkit sont d’un usage équivalent.

Vérifier les programmes lancés en mémoire

Une fois que le noyau a été vérifié, les programmes lancés en mémoire vont être analysés. La majorité des programmes malveillants oublient ou évitent d’afficher certaines informations sur leur contenu comme pourrait le faire un programme légitime. On retrouve par exemple :

- la présence d’une icone, d’une description et d’un nom d’éditeur ;
- la présence de la signature de Microsoft ou d’un éditeur reconnu : il est possible d’ajouter une signature électronique dans la description du programme afin de prouver son origine ;
- le chemin d’exécution dans un répertoire dédié de Windows.

L’analyse va consister à étudier l’ensemble de ces informations à l’aide de l’outil Process Explorer de Sysinternals. Il s’agit d’un « super-taskmanager », il va permettre de lister les processus, mais aussi de donner les caractéristiques précises de chacun d’entre eux : caractéristiques (taille, éditeur, chemin d’exécution, etc.), bibliothèques dynamiques (ou DLL) utilisées, port réseau ouvert, etc.

Il faut tout d’abord sélectionner les informations dont on veut disposer ; dans le menu « View / Select Columns », on retiendra : Description, Company Name, Verified Signer, Command Line et Version. La capture suivante décrit la manipulation.

PNG - 11.8 ko

La capture suivante montre Process Explorer ainsi configuré.

PNG - 36.6 ko

L’analyse va consister à reprendre les critères définis précédemment pour rechercher les programmes suspicieux. Il faut tout d’abord retirer de l’analyse les programmes signés numériquement par un éditeur reconnu par Microsoft. Process Explorer permet de trier via la colonne « Verified Signer » la validité des signatures numériques. Les programmes considérés comme correctement signés (marqués Verified) peuvent être écartés de l’étude. Il est possible d’être plus précis et de consulter l’autorité de certification à l’aide des propriétés du programme dans l’explorateur de fichiers (onglet « Signature Numérique »). La capture suivante montre la validité de la signature du programme Firefox.

PNG - 30 ko

Dans les versions récentes de Windows, de nombreux programmes doivent être lancés avec une signature valide ce qui en facilite l’étude. Dans la capture suivante, le programme msmsn.exe ne possède pas de signature.

PNG - 44.6 ko

La colonne « Command Line » permet d’afficher le chemin d’exécution du programme. Si ce dernier est situé dans un répertoire temporaire (fichiers temporaires d’Internet Explorer, clé USB, etc.), le programme peut être considéré comme suspect. Généralement, les programmes sont lancés depuis c :\Program Files ou c :\Windows\system32. Là aussi le programme msmsn.exe est lancé depuis le répertoire temporaire de l’utilisateur : les soupçons se confirment.

Enfin, les programmes malveillants possèdent rarement une icône et les renseignements complémentaires comme les champs « Company name » et « Description » renseignés. Ces indications permettent là aussi d’affiner la liste précédente. Process Explorer affiche sur un fond violet les programmes « packés », c’est-à-dire dont la structure a été modifiée par souci d’optimisation ou de camouflage : ce dernier point permet définitivement de suspecter le programme msmsn.exe. Une recherche sur Internet prouve le caractère malveillant de ce programme.

Cas des services

Pour mieux se dissimuler, les malwares peuvent se lancer à partir d’un autre programme comme :

- rundll32.exe : ce programme permet d’exécuter des commandes situées dans des bibliothèques (DLL). Ainsi, un programme malveillant s’exécute sous la forme d’une bibliothèque ;

- svchost.exe : ce dernier est un hébergeur de services Windows (partage de fichiers, wifi, gestionnaire Netbios, etc.). Un programme malveillant ayant les privilèges nécessaires peut s’enregistrer comme service Windows et s’exécuter par l’hébergeur de services svchost.exe. Etant donné le nombre de services Windows, on retrouve généralement plusieurs processus portant ce nom. Process Explorer permet de détailler ces processus en affichant un texte flottant lorsque la souris survole le nom du programme (comme sur la capture d’écran précédente) ou de manière plus détaillée dans l’onglet « services » des propriétés du programme. La capture d’écran suivante liste les services lancés par svchost.exe (il peut y avoir plusieurs processus svchost.exe). Là aussi chaque service est identifié par une description et un chemin d’accès. Les premiers suspects concerneront les services sans description (ou si celle-ci est en anglais) et un chemin d’accès inhabituel.

PNG - 26 ko

Remarques : Windows possède des fonctions intégrées permettant de lister les services et les drivers installés. La commande « sc query » permet de réaliser cette opération.

Cas de l’injection DLL

L’injection DLL est une méthode ancienne permettant d’ajouter une bibliothèque à celles d’un programme. Process Explorer permet de lister les bibliothèques d’un programme en cours d’exécution et éventuellement de détecter l’utilisation d’une bibliothèque non sollicitée.

Les captures suivantes montrent la configuration de l’affichage pour lister les bibliothèques d’un programme (ici le programme Apache Monitor).

PNG - 42 ko
PNG - 39.4 ko

Suppression des programmes

Au terme de cette étude mémoire, si la machine est compromise, le chemin d’accès du malware doit être soigneusement noté. Il est possible de tuer un programme en mémoire, mais cette action est souvent inefficace : ce dernier va se relancer automatiquement, interdire sa fermeture ou, pire, lancer une action en réponse à la tentative de suppression (déni de service par exemple).

Le plus simple est de supprimer le fichier du malware du disque dur. Ainsi, au redémarrage suivant, la plupart des malwares ne pourront plus se lancer (sauf s’il y a une copie ailleurs sur le disque, ce dont nous parlerons après). Néanmoins, Windows verrouille les fichiers des programmes en cours d’exécution, rendant impossible leur suppression. Il existe des outils pour passer outre cette protection comme, par exemple Unlocker. Si un tel outil ne fonctionne pas, il existe une méthode plus générale, consistant à démarrer le poste de travail sur un cédérom où se trouve une distribution Linux récente (qui offre la possibilité de supprimer un fichier d’un système de fichiers NTFS).

Programmes lancés au démarrage

Afin d’être persistant, les malwares vont généralement paramétrer le système pour se lancer automatiquement à chaque démarrage du poste. Les fichiers précédemment identifiés avec l’outil Process Explorer donnent souvent une première piste sur les programmes exécutés au démarrage. On utilise ici l’outil Autoruns de Microsoft pour énumérer l’ensemble des programmes ou bibliothèques exécutés automatiquement au démarrage du système Windows. Cet outil distingue les programmes lancés automatiquement pour tous les utilisateurs et ceux lancés automatiquement par utilisateur. La capture suivante montre le programme Autoruns. Les programmes lancés au démarrage sont classés par type (ils correspondent à une localisation de la base de registre). Seules les localisations les plus couramment utilisées seront étudiées par la suite : Logon, Internet Explorer, Services, Drivers et AppInit.

Avant de procéder à l’étude des résultats du programme Autoruns, il convient d’activer là aussi le contrôle de la signature numérique : dans le menu « Options », il suffit de cocher les paramètres « Verifiy Code Signature » et « Hide Microsoft Signed Entries ». Ces options évitent de surcharger l’affichage en supprimant les configurations par défaut de Microsoft.

PNG - 57.1 ko

L’onglet « Logon » contient l’ensemble des programmes exécutés à l’ouverture de la session utilisateur. De manière analogue à l’étude menée avec Process Explorer, on vérifiera les programmes :
- qui ne possèdent pas d’icône ;
- exécutés depuis des répertoires temporaires ;
- dont les paramètres « Publisher » et « Description » sont vides ;
- dont les noms sont inconnus.

Internet est encore une fois d’une très grande utilité pour déterminer si un programme est suspect ou non. Autoruns intègre d’ailleurs nativement une fonction de recherche en ligne : elle se situe dans le menu Entry puis la commande « Search Online ».

Les programmes lancés à l’ouverture de session dépendent de l’utilisateur. Il est recommandé de réaliser une recherche pour chaque utilisateur en modifiant le paramètre « User » du menu principal.

Il est possible alors de décocher le programme suspect afin qu’il ne soit plus automatiquement lancé au démarrage. Attention : certains programmes malveillants surveillent leur capacité à démarrer automatiquement. Dans ce cas, Autoruns ne pourra pas les supprimer de la base de registre. Il convient alors de supprimer le fichier soit par un outil de type Unlocker, soit en démarrant le poste de travail sur un autre système d’exploitation. De même, une fois le nettoyage réalisé, il est recommandé de ne pas éteindre de manière classique le poste de travail (menu Démarrer) mais de redémarrer « violemment » le poste de travail : cette mesure évite la procédure classique d’extinction et qu’un malware s’ajoute dans la liste des programmes lancés au dernier moment précédent le redémarrage. L’outil NoMyfault permet de créer un redémarrage logiciel immédiat de Windows.

Le programme Explorer possède des extensions sous forme de bibliothèques. Certains programmes malveillants utilisent cette fonctionnalité pour se charger comme une extension de Explorer. Il convient donc de vérifier, dans l’onglet Explorer du programme Autorun, le chemin d’accès des bibliothèques utilisées.

Internet Explorer possède lui aussi des extensions appelées BHO (Browser Helper Objects) lancées automatiquement lorsque le client navigue sur Internet. Il convient d’appliquer les mêmes vérifications.

La plupart des programmes malveillants utilisent les services pour se lancer automatiquement avec un maximum de privilèges. La méthodologie à appliquer est identique à ce qui a été fait précédemment. Néanmoins, il faut être particulièrement vigilant à ne pas désactiver un service nécessaire au bon fonctionnement du poste de travail et à valider la désactivation des services un à un. Enfin, l’utilisation de drivers malveillants est la méthode privilégiée des rootkits noyau. Si l’étude menée au début n’a pas permis de déceler la présence d’un rootkit, Autoruns devrait confirmer ici l’absence de tels programmes.

Vérifier l’activité réseau

La présence d’un malware se caractérise aussi par des activités non contrôlées sur le réseau. Par exemple, on peut imaginer un programme envoyant sur un serveur situé sur Internet le contenu des données du disque par le port 80 du service Internet.

Si aucun programme n’est exécuté et si le poste est « au repos » (pas d’activité de l’utilisateur), aucune connexion réseau ne doit être réalisée en direction d’Internet (ou le proxy du réseau). Le programme Tcpview de Microsoft permet d’énumérer les connexions réseau. On distingue 3 types de connexions :

- established : une connexion réseau est réalisée entre le poste de travail et un site distant. Tcpview donne le programme et l’adresse Internet du site distant afin de déterminer si cette connexion est légitime ou non ;

- listening : le processus est en attente de connexion du réseau. En théorie, pour un poste de travail, seuls les ports Windows standards sont ouverts (135, 139, 445, 500, 4500, 123. Liste non exhaustive). En particulier, les ports 25 (smtp), 21 (ftp) ou 80 (web) doivent être fermés ; si ce n’est pas le cas, il est important d’en connaître la cause (programme légitime ou non) ;

- time_wait : la connexion est en attente de fermeture. Par défaut, l’option « Show Unconnected Endpoints » de TCPView est activée : sa désactivation permet de ne conserver que les connexions établies (established), ce qui présente l’avantage d’observer en temps réel une activité suspecte.

Automatiser les tâches

Il existe des versions en ligne de commande (cli) des outils autoruns, tcpview respectivement autorunsc et tcpvcon. A l’aide des pstools, il est possible d’exécuter à distance ces programmes et certaines tâches d’investigation (pslist pour lister les processus, psservice pour lister les services, etc.). Ceci permet d’automatiser une recherche ciblée sur un grand nombre de postes et éventuellement d’automatiser cette analyse et de l’exécuter selon un cycle régulier.

Conclusion

Une fois l’ensemble des programmes malveillants détectés et les fichiers supprimés, il convient de lancer l’antivirus pour un nettoyage final. Ce dernier va pouvoir analyser le reste et éventuellement fonctionner plus efficacement (ie. se mettre à jour, réaliser une recherche en profondeur, etc.).

Après avoir traité l’incident, il est important de tirer les leçons de l’infection. Quel a été le vecteur de propagation et de contamination ? Un correctif manquant ? Un mot de passe trop simple ou un manque de sensibilisation de l’utilisateur ? Dans ce dernier cas, il est recommandé de rappeler les bonnes pratiques, par de (courtes) séances de sensibilisation, des affiches à la cafétéria ou des messages électroniques, voir par des messages apparaissant sur l’écran de veille.

Au niveau des équipements de sortie, une configuration adéquate renforcera les mécanismes de défense en profondeur. Parmi les bonnes pratiques régulièrement préconisées, il faut installer un proxy pour se donner la capacité d’observer et de couper un flux suspect. En complément, une authentification des utilisateurs et un filtrage par « User-Agent » éviteront les connexions anonymes et automatiques.

Une version de cet article, rédigé par un inspecteur du bureau "inspections" de l’ANSSI (Arnaud PILON), a été publiée dans le magazine "MISC".


RÉPUBLIQUE FRANÇAISE | SGDSN | ANSSI © 2014 | Informations éditeur