Volatility unlinked processes rootkits
forensicsDéfinition
La détection des processus non liés (unlinked processes) est une technique forensique mémoire avancée permettant de découvrir des processus cachés par des rootkits utilisant la manipulation directe d'objets noyau (DKOM). Cette technique est implémentée dans Volatility via les plugins psscan (scan de pool mémoire) et psxview (comparaison multi-sources). Comme expliqué précédemment, pslist parcourt la liste chaînée PsActiveProcessHead pour énumérer les processus. Un rootkit DKOM retire le processus malveillant de cette liste en modifiant les pointeurs Flink et Blink des structures EPROCESS adjacentes, rendant le processus invisible à pslist. La structure EPROCESS malveillante reste cependant intacte en mémoire et le processus continue à fonctionner normalement. psscan (windows.psscan dans Volatility 3) contourne cette technique en scannant directement les pools mémoire à la recherche de pool tags 'Proc' qui précèdent toutes les structures EPROCESS, indépendamment de leur présence dans les listes chaînées. Tout processus dont la structure EPROCESS est encore en mémoire physique est découvert par psscan, qu'il soit listé ou non dans PsActiveProcessHead. Les processus présents dans psscan mais absents de pslist sont presque certainement cachés par un rootkit DKOM. psxview (disponible dans Volatility 2, et reconstruit manuellement dans V3 en combinant plusieurs sources) compare les processus visibles depuis sept sources différentes : pslist, psscan, thrdscan (via threads), PspCidTable (table globale des PIDs valides), csrss handles, session processes, et deskthrd. Un processus légitime doit être visible dans toutes ces sources. Un processus visible dans certaines sources mais absent d'autres révèle une tentative d'occultation partielle, caractéristique d'un rootkit. Les rootkits mémoire modernes peuvent également manipuler d'autres structures : PspCidTable (pour masquer les PIDs), le Module List du noyau (pour cacher les pilotes), et les listes de threads (pour cacher les threads d'exécution). Des plugins Volatility spécialisés existent pour chaque type de manipulation.
Fonctionnement
DKOM modifie les pointeurs ActiveProcessLinks.Flink et .Blink dans les EPROCESS adjacents pour sauter par-dessus le processus caché. Le processus caché continue à fonctionner car le scheduler accède aux threads via d'autres structures. psscan utilise le tag de pool mémoire 'Proc' (0x636f7250) pour localiser toutes les structures EPROCESS indépendamment des listes. La comparaison pslist vs psscan révèle les processus DKOM-hidden.
Application DFIR
Détection rootkit : 1) vol.py windows.pslist → liste processus via linked list, 2) vol.py windows.psscan → liste processus via pool scan, 3) Comparer les deux listes (diff) → processus dans psscan mais pas pslist = DKOM suspect, 4) Analyser les processus suspects avec windows.dlllist et windows.handles, 5) Extraire les images suspectes avec windows.dumpfiles. Les processus terminés légitimement peuvent apparaître dans psscan mais pas pslist — vérifier ExitTime.
Outils
Volatility 3 : windows.psscan, windows.pslist (comparer manuellement). Volatility 2 : psscan, pslist, psxview (comparaison automatique 7 sources). Analyse rootkits mémoire : windows.ssdt (SSDT hooks), windows.driverlist (modules noyau non listés), Kernel Inspector. Manuellement : comparer exports pslist et psscan avec diff ou Python scripts.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h