Cours sur la détection de malware via les outils Process Explorer et Autorus

Ce forum est dédié à la discussion et l'apprentissage de la sécurité informatique

Moderator: Rick

Forum rules
Bienvenue sur Inside the System.

Inside the System est un forum dédié au développement bas niveau, aux Windows Internals et à la compréhension réelle du fonctionnement du système. Ici, on s’intéresse à ce qu’il y a sous le capot : l’architecture, les mécanismes internes, le fonctionnement des processus, de la mémoire et du système dans son ensemble.

Ce forum regroupe avant tout une équipe de passionnés du système et du bas niveau. Des personnes curieuses, qui aiment comprendre comment les choses fonctionnent réellement, qui prennent le temps d’apprendre et de creuser les sujets. Les débutants passionnés sont les bienvenus : ce qui compte ici, ce n’est pas le niveau de départ, mais l’envie de progresser, de comprendre et de partager.

L’objectif d’Inside the System est simple : apprendre ensemble, échanger des connaissances solides et construire une communauté sérieuse autour du développement système et des Windows Internals. Ce n’est pas un forum généraliste, ni un espace de discussions superficielles. On privilégie la réflexion, la rigueur technique et les échanges constructifs.

Les discussions doivent rester strictement légales et éthiques. Toute demande ou tout contenu lié au piratage, à la fraude, au contournement de protections ou à toute activité illégale est interdit. Les sujets abordés doivent avoir une finalité pédagogique, technique ou de compréhension du système.

Le respect est une règle fondamentale. Les insultes, propos agressifs, discriminatoires ou haineux n’ont pas leur place ici. Les débats sont autorisés et même encouragés, tant qu’ils restent calmes, argumentés et respectueux.

Le forum n’est pas un espace de publicité ou de promotion personnelle. Le spam, le flood et les messages hors sujet ne sont pas tolérés. Chaque discussion doit être postée dans la section appropriée et rester cohérente avec la thématique du forum.

Les modérateurs peuvent intervenir à tout moment afin de préserver l’esprit du forum, la qualité des échanges et le bon fonctionnement de la communauté. Cela peut inclure l’édition ou la suppression de messages, voire des sanctions en cas de non-respect du règlement.

En rejoignant Inside the System, tu rejoins une équipe de passionnés du système, animée par l’envie de comprendre, d’apprendre et d’aller plus loin que la surface.
Post Reply
Hydraxx
Site Admin
Posts: 46
Joined: Mon Jan 12, 2026 4:04 pm
Location: France
Contact:

Cours sur la détection de malware via les outils Process Explorer et Autorus

Post by Hydraxx »

Salut, :D

dans ce cours on va voir une méthodologie concrète pour analyser un système Windows suspect à l’aide de deux outils devenus classiques en analyse terrain : Process Explorer et Autoruns.

Le but ici n’est pas de faire de la théorie “générale malware” détachée du réel, mais de raisonner comme un analyste système qui cherche des incohérences concrètes sur une machine : processus anormaux, parent douteux, signature absente, DLL injectées, persistance multiple, ou encore écart entre ce qui est visible en exécution et ce qui est censé exister au démarrage.

Autrement dit, on ne cherche pas d’abord “un virus” comme une entité abstraite.
On cherche une anomalie logique dans l’état du système.

Objectif du cours

Ce cours a pour but de t’apprendre à :
  • raisonner sur ce qui est normal ou anormal dans un système Windows
  • utiliser Process Explorer pour analyser ce qui s’exécute réellement
  • utiliser Autoruns pour comprendre les mécanismes de persistance
  • corréler processus, modules, démarrage, signatures et comportement
  • détecter des indices réalistes d’injection ou de rootkit user-mode
  • éviter les erreurs classiques d’interprétation
Il faut garder une idée simple en tête :

Code: Select all

un malware peut mentir partiellement
mais il ment rarement de manière parfaitement cohérente partout
C’est exactement sur ces incohérences qu’un analyste s’appuie.

1) Comprendre les processus Windows avant toute analyse

Avant de chercher quelque chose de suspect, il faut d’abord connaitre le normal. C’est probablement la partie la plus importante du travail. Quelqu’un qui ne sait pas à quoi ressemble un système Windows sain verra des “malwares” partout, ou au contraire manquera les vrais signaux forts.

1.1 Processus système légitimes : base minimale

Quelques processus système typiques qu’il faut reconnaitre rapidement :
  • System
  • smss.exe
  • csrss.exe
  • wininit.exe
  • services.exe
  • lsass.exe
  • svchost.exe
  • explorer.exe
  • winlogon.exe
  • RuntimeBroker.exe
  • dwm.exe
Leur simple nom ne suffit pas. Il faut toujours vérifier plusieurs choses à la fois :
  • le chemin réel du binaire
  • la signature numérique
  • la cohérence parent / enfant
  • le contexte de session
  • le comportement mémoire ou les modules chargés
Quelques règles très utiles :
  • un lsass.exe hors de System32 est extrêmement suspect
  • un svchost.exe lancé depuis AppData ou Public est suspect
  • un nom système correct mais dans le mauvais chemin est souvent plus révélateur qu’un faux nom grossier
  • les processus critiques Microsoft ont en général une hiérarchie cohérente et une signature cohérente
Un processus système “légitime en apparence” mais exécuté depuis :
  • C:\Users\...
  • C:\Users\Public\...
  • C:\ProgramData\...
  • C:\Temp\...
  • AppData\Roaming\...
doit immédiatement attirer l’attention.

1.2 Le nom seul ne veut rien dire

Un malware user-mode se trahit souvent par l’une des stratégies suivantes :
  • imiter un nom légitime
  • utiliser un nom aléatoire
  • se cacher derrière un chemin plausible
  • injecter son code dans un binaire réel
Exemples de faux noms proches du vrai :
  • svch0st.exe
  • expl0rer.exe
  • lsasss.exe
  • scvhost.exe
Exemples de noms aléatoires typiques :
  • xYp9Q.exe
  • a8f3.exe
  • kqjv.exe
Attention toutefois :
  • un binaire non signé n’est pas automatiquement malveillant
  • un binaire signé n’est pas automatiquement sain
Ce qui compte, c’est l’ensemble :

Code: Select all

nom
+ chemin
+ signature
+ parent
+ persistance
+ modules
+ comportement
= jugement plus fiable
1.3 Le parent d’un processus raconte souvent l’histoire

Beaucoup d’analyses rapides oublient le parent process, alors que c’est souvent l’un des signaux les plus parlants.

Questions à se poser :
  • qui a lancé ce processus
  • est-ce normal dans cette session
  • la chaîne de création a-t-elle du sens
Exemple suspect :

Code: Select all

explorer.exe
 └── svch0st.exe
     └── powershell.exe
Un faux svchost enfant d’explorer.exe qui lance powershell.exe, c’est déjà une chaîne anormale avant meme d’avoir regardé les modules.

En pratique, la hiérarchie parent / enfant est un excellent outil d’analyse initiale.

2) Analyse avec Process Explorer

Process Explorer est l’un des meilleurs outils pour comprendre ce qui tourne réellement dans le système. Il donne une vision plus riche que le Gestionnaire des tâches classique : arborescence, chemins, signatures, handles, threads, DLL, consommation mémoire, etc.

Ce qu’il faut regarder en priorité :
  • l’arbre des processus
  • le chemin réel de l’image
  • la signature
  • les DLL chargées
  • les handles ou objets ouverts si besoin
  • les threads et l’activité anormale
2.1 La vue arborescente : point de départ obligatoire

La Process Tree View est fondamentale.

C’est souvent la première chose à analyser, parce qu’elle donne la généalogie logique du processus.

Questions utiles :
  • ce parent est-il logique
  • ce processus devrait-il vraiment exister dans cette session
  • est-ce cohérent avec la manière normale dont Windows lance ce type de programme
Ce qu’un analyste cherche ici, ce sont des ruptures de logique :
  • un binaire système enfant d’un processus utilisateur non cohérent
  • une chaîne Office → cmd.exe → powershell.exe → script
  • un processus lancé depuis un emplacement utilisateur alors qu’il imite un service système
  • plusieurs descendants suspects créés à partir d’un parent inhabituel
2.2 Le chemin exact de l’image

Le chemin du binaire est un signal majeur.

Toujours vérifier :
  • le chemin complet
  • la date de création ou de modification
  • l’emplacement du fichier
  • la cohérence avec la nature du processus
Chemins souvent suspects :
  • C:\Users\Public\
  • C:\ProgramData\
  • C:\Users\<user>\AppData\Roaming\
  • C:\Users\<user>\AppData\Local\Temp\
  • C:\Temp\
Mais il faut garder une nuance importante :
  • un malware injecté dans explorer.exe aura le chemin légitime d’explorer.exe
  • un processus compromis peut donc paraitre sain si on ne regarde que son image path
Conclusion :

Code: Select all

chemin légitime ≠ mémoire saine
2.3 Signature numérique : signal fort, pas preuve absolue

Dans Process Explorer, la signature est un indicateur très utile.

Ce qu’il faut vérifier :
  • éditeur
  • présence ou absence de signature
  • cohérence entre le nom du binaire et le signataire
Une signature Microsoft valide sur un processus système attendu est un bon signe.
Une absence de signature sur un composant qui prétend etre système est un signal fort.
Mais il faut éviter les raccourcis simplistes :
  • un malware peut utiliser un binaire signé vulnérable ou détourné
  • un outil maison légitime peut etre non signé
La signature doit donc toujours être interprétée avec le reste.

2.4 Détection d’injection via les DLL

Un malware user-mode ou un injecteur se trahit souvent par ses modules chargés.

Scénarios fréquents :
  • injection dans explorer.exe
  • injection dans un navigateur
  • injection dans svchost.exe
  • injection dans RuntimeBroker.exe
  • injection dans un processus à forte visibilité utilisateur
Image

Dans Process Explorer, l’onglet DLLs est capital.

Ce qu’il faut regarder :
  • DLL non Microsoft chargée dans un processus très système
  • DLL chargée depuis AppData, Temp, ProgramData, Public
  • module sans signature
  • module présent dans plusieurs processus sans raison claire
  • nom de DLL étrange ou trop générique
Exemples très suspects :
  • une DLL inconnue injectée dans explorer.exe, chrome.exe et RuntimeBroker.exe
  • une DLL non signée chargée dans lsass.exe ou svchost.exe
  • une DLL au nom flou du style helper32.dll ou mscoreui.dll hors emplacement attendu
vue des dll utilisées par un processus : Image

2.5 Rootkits user-mode : ce qu’ils cachent vraiment

Un rootkit user-mode ne devient pas invisible au noyau. Il agit surtout au niveau des API ou de la présentation des données.

Techniques classiques :
  • API hooking
  • filtrage de listes retournées par l’API
  • injection de DLL dans les outils d’inspection
  • masquage partiel de fichiers, processus ou clés registre
Indices fréquents :
  • processus visible dans un outil mais pas un autre
  • DLL inconnue injectée dans plusieurs processus
  • incohérences entre Process Explorer, Task Manager et d’autres outils
  • hooks ou modules étranges autour de ntdll.dll ou d’APIs critiques
Règle importante :

Code: Select all

un rootkit user-mode ne peut pas tout rendre cohérent partout
C’est pour ça qu’il faut comparer les vues.

2.6 Vérifier les handles, threads et comportement secondaire

Même si le cœur de l’analyse rapide repose sur l’arbre et les DLL, Process Explorer permet aussi d’aller plus loin :
  • handles ouverts
  • threads
  • activité CPU anormale
  • pics mémoire
  • usage disque ou réseau anormal selon le moment
Des indices utiles peuvent apparaitre si un processus :
  • maintient des handles vers des emplacements suspects
  • crée beaucoup de threads courts ou anormaux
  • consomme du CPU sans raison visible
  • reste résident avec une activité faible mais une forte persistance
3) Analyse de la persistance avec Autoruns

Process Explorer répond surtout à la question :

Code: Select all

qu’est-ce qui tourne maintenant
Autoruns répond à une autre question essentielle :

Code: Select all

comment cela revient au redémarrage
Autrement dit, il sert à comprendre la persistance.

C’est un outil fondamental en analyse terrain, parce qu’un malware un peu sérieux ne se contente pas d’exécuter un binaire une fois. Il cherche à revenir.

3.1 Première règle : réduire le bruit

Dans Autoruns, la première étape pratique consiste souvent à :
  • activer Hide Microsoft Entries
  • trier par Publisher
  • regarder ce qui reste
Pourquoi :
  • cela retire une énorme partie du bruit légitime
  • cela rend plus visible l’anormal
  • cela évite de perdre du temps sur des composants Microsoft attendus
Ce qu’il faut examiner en priorité :
  • éditeur inconnu
  • signature absente
  • chemin douteux
  • composant présent au démarrage sans raison claire
3.2 Zones de persistance les plus importantes

Les grandes zones à surveiller sont :
  • Run / RunOnce
  • Services
  • Scheduled Tasks
  • Winlogon
  • Explorer
  • AppInit DLLs
  • KnownDLLs ou extensions shell selon le cas
  • Drivers si l’analyse l’exige
Exemple d'un malware qui se lance au démarrage: Image

Dans beaucoup de cas réels, un malware sérieux n’utilise pas une seule persistance.

Il peut combiner :
  • Run key
  • Scheduled Task
  • Service
  • DLL chargée par un composant utilisateur
Plus il y a de mécanismes différents, plus la suspicion augmente.

3.3 Les services et tâches planifiées

Deux zones sont particulièrement importantes en pratique :
  • les services
  • les tâches planifiées
Pourquoi :
  • elles permettent une persistance robuste
  • elles paraissent plus “système”
  • elles sont souvent moins visibles à l’utilisateur
Indices classiques :
  • nom de service trompeur
  • description floue
  • binaire non signé
  • chemin vers AppData, ProgramData, Temp, Public
  • Scheduled Task exécutant PowerShell, cmd ou un script dans un répertoire utilisateur
3.4 VirusTotal intégré : utile mais à relativiser

Autoruns peut aider à consulter VirusTotal ou au moins corréler un hash avec une réputation.

C’est utile, mais il faut bien garder une règle simple :

Code: Select all

VirusTotal = indice, pas preuve absolue
Pourquoi :
  • 0 détection ne garantit pas que le fichier est sain
  • un malware récent ou très ciblé peut être inconnu
  • certaines détections peuvent être fausses
Il faut donc utiliser VirusTotal comme un signal parmi d’autres, pas comme un verdict unique.

3.5 Rootkits user-mode et masquage du registre

Certains malwares user-mode peuvent essayer de masquer des éléments de persistance en filtrant la vue du registre ou de certaines zones de démarrage.

Indices possibles :
  • différence entre ce que voit Autoruns et ce qu’on voit dans une autre méthode
  • fichier présent mais persistance “introuvable”
  • processus actif mais point d’entrée démarrage difficile à expliquer
  • incohérence entre analyse live et analyse offline
C’est pour cela qu’il ne faut jamais se contenter d’un seul outil.

La bonne logique est toujours :
  • corréler
  • recouper
  • chercher les incohérences
4) Méthodologie réelle d’analyse

L’erreur fréquente du débutant consiste à ouvrir un outil, voir quelque chose de bizarre, puis conclure trop vite. Une vraie analyse suit plutot un ordre méthodique.

Ordre recommandé :
  • 1. Process Explorer
    arbre des processus, signature, image path, modules, DLL injectées, parent / enfant
  • 2. Autoruns
    persistance, éditeur, signature, emplacements de démarrage, tâches, services, vérification éventuelle VirusTotal
  • 3. Corrélation
    faire le lien entre processus observé en mémoire et mécanisme de persistance
  • 4. Hypothèse
    injection ? persistance multiple ? faux processus système ? rootkit user-mode ? simple logiciel légitime un peu sale ?
C’est cette méthode qui évite les conclusions trop rapides.

5) Corrélation : là où l’analyse devient solide

Un bon analyste ne s’arrête jamais à un seul signe. Il cherche une chaîne logique.

Exemples de corrélations utiles :
  • un processus non signé trouvé dans Process Explorer ↔ une clé Run correspondante dans Autoruns
  • une DLL injectée dans explorer.exe ↔ un chargeur persistant au démarrage
  • un service suspect ↔ un binaire non signé dans ProgramData
  • une tâche planifiée étrange ↔ un powershell.exe lancé régulièrement
  • un parent anormal ↔ un enfant au nom trompeur ↔ une persistance associée
Plus la chaîne devient cohérente, plus l’hypothèse malware devient solide.

6) Ce qu’un analyste cherche vraiment

L’analyste efficace ne cherche pas d’abord “un virus”. Il cherche :
  • une incohérence logique
  • un écart par rapport au comportement normal du système
  • une relation parent / enfant impossible ou douteuse
  • un module injecté là où il ne devrait pas être
  • une persistance injustifiée
  • une absence de signature là où elle devrait exister
En pratique, les meilleurs signaux ne sont pas toujours les plus spectaculaires. Très souvent, c’est une petite incohérence de placement, de hiérarchie, ou de chargement de DLL qui fait tomber tout le reste.

7) Erreurs classiques à éviter

Il y a plusieurs erreurs très fréquentes en analyse utilisateur :
  • penser qu’un fichier non signé est forcément malveillant
  • penser qu’un fichier signé est forcément sain
  • se fier uniquement au nom du processus
  • oublier de vérifier le chemin réel
  • ignorer le parent process
  • analyser la persistance sans corréler avec l’exécution mémoire
  • croire qu’un seul outil donne toute la vérité
  • prendre VirusTotal comme verdict absolu
La bonne analyse est toujours une analyse croisée.

8) Limites de la méthode

Il faut rester honnête : Process Explorer et Autoruns sont très puissants, mais ils ne suffisent pas à tout.

Ils sont excellents pour :
  • analyse rapide
  • hunting user-mode
  • persistance
  • diagnostic de base à intermédiaire
Mais ils ont leurs limites face à :
  • kernel rootkits
  • drivers malveillants
  • manipulations mémoire plus avancées
  • tampering profond du système
Dans ces cas-là, il faut souvent compléter avec :
  • analyse mémoire
  • outils kernel
  • logs ETW
  • offline triage
  • forensic plus poussée
9) Ce qu’il faut retenir

Les idées essentielles de ce cours sont les suivantes :
  • avant de chercher le malveillant, il faut connaitre le normal
  • le nom seul d’un processus ne suffit jamais
  • le parent process est souvent l’un des meilleurs indices
  • la signature est un signal fort, mais pas une preuve absolue
  • les DLL injectées trahissent souvent les malwares user-mode
  • Autoruns permet de comprendre comment une menace survit aux redémarrages
  • la vraie force de l’analyse vient de la corrélation entre exécution mémoire et persistance
  • un malware ne peut généralement pas tout rendre cohérent partout
Conclusion

Process Explorer montre ce qui s’exécute réellement en mémoire.
Autoruns montre ce qui revient au démarrage.
Ensemble, ils forment une base extrêmement solide pour l’analyse d’un système Windows suspect.

Un analyste efficace ne cherche pas un “virus” au sens abstrait.
Il cherche une anomalie logique dans la machine : un faux parent, une signature incohérente, un chemin douteux, une DLL injectée, une persistance injustifiée.

Et c’est précisément là que la compréhension du système fait toute la différence.

Quand tu comprends bien Windows, beaucoup de malwares user-mode deviennent beaucoup plus faciles à repérer, parce qu’ils finissent presque toujours par casser une cohérence quelque part. 8-)

Who is online

Users browsing this forum: No registered users and 0 guests