Table de Matieres
I. Présentation
Dans cet article, nous allons découvrir l’outil Process Explorer de la suite SysInternals de Microsoft, au sein de laquelle il y a d’autres outils, dont l’excellent PsExec.
Sur Windows, il y a un outil natif que vous connaissez tous pour obtenir des informations sur les processus : le « Gestionnaire des tâches« . L’application Process Explorer est un outil qui va permettre d’aller plus loin et obtenir des détails supplémentaires sur les processus en cours d’exécution sur une machine. Process Explorer est utile quand le Gestionnaire des tâches ne suffit pas, et nous pourrions dire qu’il s’agit d’une version évoluée.
Remarque : Process Explorer ne doit pas être confondu avec Process Monitor (ProcMon), un autre outil SysInternals capable de capturer l’activité relative aux processus, au Registre Windows, aux fichiers et au réseau de la machine.
II. Utilisation de Process Explorer sur Windows
Avant de commencer, vous devez télécharger cet outil gratuit, via le lien suivant :
Vous obtiendrez une archive ZIP nommée « ProcessExplorer.zip » qui contient plusieurs exécutables. Vous devez extraire le contenu de l’archive et par la suite, nous utiliserons l’exécutable nommé « procexp64.exe« . De plus, sachez que vous devez ouvrir Process Explorer en tant qu’administrateur pour avoir une visibilité complète sur les processus en cours d’exécution sur la machine. En principe, le titre de la fenêtre de l’application doit inclure la mention « Administrator« .
L’interface de l’application contient plusieurs colonnes, telles que le nom du processus, la consommation CPU, la charge mémoire, ou encore le PID du processus. En effectuant un clic droit sur l’en-tête des colonnes, vous pouvez cliquer sur « Select Columns… » afin de sélectionner et afficher des champs supplémentaires. Par exemple, la colonne « User Name » indiquera quel est le compte utilisateur propriétaire du processus.
A. Identifier le parent d’un processus
Process Explorer est capable de fournir des informations sur l’origine d’un processus, ce qui permet de répondre à la question suivante : qu’est-ce qui est à l’origine de la création d’un processus ?
Sur Windows, lorsqu’un processus exécute un autre processus, cela ne signifie pas qu’il y a une relation « parent-enfant » qui est créée, dans le sens où il n’y a pas de dépendance. Retenez que les deux processus ne sont pas liés : si le processus A lance le processus B et que le processus A est arrêté, le processus B ne sera pas affecté.
Pour identifier le processus parent, vous devez accéder aux propriétés d’un processus en effectuant un double-clic sur son nom dans la liste (ou un clic droit « Properties« ). Prenons un exemple : nous lançons l’application « Notepad » (Bloc-notes) à partir d’une console PowerShell. Si nous regardons la valeur de l’attribut « Parent« , nous pouvons lire « powershell.exe (2672)« , ce qui montre bien que le Bloc-notes a été lancé depuis PowerShell.
Dans l’arborescence de Process Explorer, nous pouvons voir que « notepad.exe » se positionne sous « powershell.exe« , qui lui-même est sous « WindowsTerminal.exe » puisqu’il s’agit d’une console ouverte dans l’application Windows Terminal.
Il est aussi possible de voir cette valeur : « (3448)« , lorsque le processus parent n’existe plus. Son ID est toujours affiché, même s’il faut prendre cette information avec des pincettes : l’ID peut désormais être utilisé par un autre processus, qui ne correspond pas pour autant au processus parent du processus que nous analysons.
B. Les couleurs des processus
Dans l’interface de Process Explorer, vous remarquerez que chaque processus est associé à une couleur particulière. Cela a une réelle signification et donne des informations sur le type ou l’origine d’un service. Prenons quelques exemples.
- La couleur rose pour identifier les services
Pour commencer, nous allons évoquer la couleur rose, utilisée pour identifier les processus associés à des services dans Process Explorer.
Tout d’abord, je vous invite à ajouter une nouvelle colonne, en sélectionnant celle nommée « Command Line« . Ceci permettra d’avoir des détails supplémentaires sur la ligne de commande à l’origine de la création de chaque processus. Pour information, cette information est accessible depuis le « Gestionnaire des tâches« , à condition d’ajouter la colonne nommée « Ligne de commande« .
Par exemple, nous pouvons voir que le processus avec le PID « 3892 » correspond au service WinRM (Gestion à distance) de la machine analysée.
Sans cela, il serait difficile d’identifier à quoi correspond exactement ce processus. En effet, comme beaucoup d’autres, il est associé à « svchost.exe« . SvcHost est un composant vital utilisé par Windows pour héberger les processus des services.
Si vous accédez aux propriétés d’une ligne rose, vous aurez accès à l’onglet « Services« . Il permet d’identifier clairement les services associés à ce processus (il peut y en avoir un seul ou plusieurs), ainsi que les bibliothèques DLL associées. Vous pouvez aussi en profiter pour naviguer dans les autres onglets : ils font partie de la richesse de Process Explorer.
- La couleur cyan pour identifier les applications UWP
Depuis plusieurs années, Windows prend en charge ce que l’on appelle la « plateforme Windows universelle » ou « UWP« , ce qui correspond aux applications modernes. Ces applications, au même titre que celles qui s’appuient sur les API Windows Runtime, sont identifiables dans Process Explorer grâce à la couleur cyan.
Par exemple, si nous lançons la Calculatrice sur la machine, nous voyons bien un processus « CalculatorApp.exe » de cette couleur. Ces processus présentent la particularité de pouvoir être « Suspendu« , c’est d’ailleurs ce qui se passe si l’application est réduite. La ligne passe du cyan au gris, et son état est modifié. Néanmoins, ce comportement n’est pas vrai pour tous les processus, notamment pour l’Explorer pour des raisons de stabilité du système.
Par cette même couleur, sont représentés les processus nommés « RuntimeBroker« , que vous avez surement déjà vu sur Windows, si vous avez l’habitude de regarder les processus. Il s’agit de helpers pour aider certains processus à effectuer des actions qu’ils ne peuvent pas faire eux-mêmes, à cause de restriction. Ceci s’explique, car les processus UWP sont exécutés dans un « AppContainer« , comme nous pouvons le voir en ajoutant la colonne « Integrity » dans Process Explorer.
- La couleur fuchsia représente les processus protégés
Les processus protégés, y compris de l’administrateur, sont représentés par la couleur fuchsia.
- La couleur marron représente les jobs
Lorsqu’un processus est associé à un job, il est représenté par la couleur marron. Dans les propriétés du processus, l’onglet « Job » donne accès à la liste des jobs associés.
- Personnaliser les couleurs
Si vous avez besoin de personnaliser les couleurs utilisées par Process Explorer, cliquez sur le menu « Options » puis sur « Configure colors« . Vous n’aurez plus qu’à changer les valeurs.
C. Effectuer une recherche
Process Explorer vous permet de filtrer la liste des processus et d’y faire des recherches. Il y a deux façons d’effectuer cette action :
- Via la barre de recherche présente en haut à droite, pour une recherche basée sur le nom du processus.
- Via le menu « Find » puis « Find Handle or DLL » afin d’effectuer une recherche de processus basée sur un nom de DLL (fichier « .dll« ).
Si vous recherchez tous les processus associés à une DLL, la seconde méthode est à préférer, tandis que la première méthode sera pratique pour identifier rapidement un processus.
D. Interagir avec un processus
Au-delà de fournir des informations précieuses, Process Explorer vous donne aussi l’occasion d’agir sur les processus. Si vous effectuez un clic droit sur un processus, vous verrez apparaître certaines actions, dont :
- Kill Process pour tuer le processus sélectionné.
- Kill Process Tree pour tuer le processus sélectionné et tous les processus descendants (selon l’arborescence visible dans la console). Si Windows Terminal est tué de cette façon et qu’il est associé à une console PowerShell et que cette console a été utilisée pour lancée Notepad, alors les 3 applications seront fermées (fin des processus).
- Restart pour relancer le processus sélectionné.
L’option « Check VirusTotal.com » est aussi très intéressante et nous l’évoquerons dans la suite de l’article.
E. Analyser les processus avec VirusTotal
VirusTotal est un service en ligne populaire et utilisable pour effectuer l’analyse de fichiers suspects. Process Explorer présente l’avantage de pouvoir effectuer la vérification des processus en cours d’exécution sur votre machine, à partir du hash du fichier et de la bibliothèque. Ceci peut s’avérer très utile pour effectuer une vérification quant à un processus qui semble suspect.
Si vous réalisez un clic droit sur un processus, vous verrez l’option « Check VirusTotal.com« . Si vous cliquez dessus, une fenêtre apparaîtra pour vous suggérer d’accepter les conditions d’utilisation. Ensuite, je vous invite à cliquer sur le menu « Options« , afin d’aller sur « VirusTotal.com » puis de cliquer sur « Check VirusTotal.com« . Ceci va permettre d’évaluer les processus actifs sur votre machine et un score s’affichera dans la colonne « VirusTotal« .
Voici un exemple :
Lorsque c’est précisé « 0/76« , cela signifie que sur 76 moteurs de détection différents, aucun ne considère ce processus comme malveillant. Nous pouvons donc considérer que c’est un processus sain (ou alors encore inconnu par les bases, ce qui peut être le cas s’il s’agit d’une nouvelle menace). Il convient donc de surveiller les processus où le score de gauche n’est pas à 0… En cliquant sur le lien, nous sommes redirigés vers l’analyse VirusTotal.
F. Visualiser les DLL et Handles d’un processus
Process Explorer, par l’intermédiaire de son « Lower Pane » permet de visualiser les bibliothèques DLL et les Handles chargés par un processus. Les Handles sont des pointeurs vers des ressources du système d’exploitation, tels que des fichiers, des clés de Registre Windows et d’autres éléments (Thread, Dossier, ALPC Port, etc.). Ceci permet d’en savoir plus sur l’activité d’un processus et les éléments auxquels il accède.
Vous pouvez l’activer via l’icône mise en évidence sur l’image ci-dessous, ou via le menu « View » puis « Show Lower Pane« .
III. Conclusion
Process Explorer est une application que tout administrateur système Windows se doit de connaître ! Elle fournit de nombreuses informations sur les processus en cours d’exécution, ainsi que leur activité, ce qui en fait un précieux outil pour aller plus loin que le Gestionnaire des tâches.