
Le SRUM est un artefact souvent méconnu, et pourtant l’un des plus riches de Windows en matière d’investigation numérique. Il permet de reconstituer l’historique des applications exécutées, mais aussi leur consommation de ressources, leur activité réseau et leur utilisation de la batterie.
Dans la continuité des artefacts liés à l’activité des utilisateurs, nous allons nous intéresser dans cette douzième partie de la série consacrée au forensic Windows à la base SRUM : où elle se trouve, comment l’acquérir avec KAPE, puis comment l’analyser avec SrumECmd d’Eric Zimmerman. Si vous avez manqué les épisodes précédents, vous pouvez consulter la partie 9 sur la Corbeille et la partie 10 sur la MFT.
Qu’est-ce que le SRUM ?
Le System Resource Usage Monitor (SRUM) est un mécanisme introduit par Microsoft avec Windows 8 et présent sur toutes les versions récentes de Windows, y compris Windows 10, Windows 11 et Windows Server.
Son rôle est d’enregistrer périodiquement l’activité des applications ainsi que différentes métriques relatives à leur utilisation des ressources. Ces informations sont principalement utilisées par Windows pour produire les statistiques de consommation visibles dans le Gestionnaire des tâches (onglet Historique des applications) ou dans les paramètres d’utilisation de la batterie.
Pour un analyste forensic, SRUM constitue une véritable mine d’informations. Il permet notamment d’obtenir des éléments sur :
Les applications exécutées
Les utilisateurs concernés
L’activité réseau
La consommation CPU et mémoire
L’utilisation de la batterie sur les ordinateurs portables
Différents horodatages permettant de reconstruire une chronologie des événements.
Où se trouve SRUM ?
Windows expose une partie des informations SRUM à travers différentes interfaces graphiques. On peut notamment retrouver certaines statistiques dans le Gestionnaire des tâches, au niveau de l’onglet Historique des applications.
Les extensions utilisées par la base sont également référencées dans la clé de registre suivante :
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SRUM\Extension
Cette clé ne contient toutefois pas les données d’activité, mais uniquement les informations décrivant les différentes tables utilisées par SRUM.
Chaque sous-clé correspond à une extension identifiée par un GUID, avec la DLL associée (par exemple appsruprov.dll pour l’utilisation des applications, nduprov.dll pour l’utilisation du réseau, etc.). Cette clé ne contient pas l’historique d’activité : elle décrit les tables présentes dans la base et sert de zone tampon avant l’écriture périodique des données dans le fichier de base de données.
La véritable base de données est stockée dans le répertoire suivant :
C:\Windows\System32\sru\
Le fichier principal est celui-ci :
SRUDB.dat
Il s’agit d’une base de données ESE (Extensible Storage Engine), également appelée Jet Blue, le même moteur utilisé par plusieurs composants de Windows tels qu’Active Directory ou Windows Search.
Attention : le fichier étant utilisé en permanence par le système (via le service Diagnostic Policy Service), il est verrouillé et ne peut généralement pas être copié directement sur un système en fonctionnement. Lors d’une acquisition forensic, il est donc nécessaire de le récupérer à partir d’une copie VSS, d’un disque hors ligne, d’une image du système ou d’un outil d’acquisition comme KAPE.
Acquisition de la base SRUM avec KAPE
Comme pour la MFT, la base SRUM est protégée et utilisée en permanence par le système. Nous allons donc procéder à son acquisition à l’aide de KAPE.
Lancez gkape.exe, sélectionnez le disque source ainsi que le répertoire de destination, puis recherchez le Target SRUM afin de collecter le fichier SRUDB.dat.
Une fois l’acquisition terminée, naviguez dans le répertoire de sortie afin de retrouver la base SRUDB.dat.
Analyse de la base SRUM avec SrumECmd
Nous allons maintenant analyser ce fichier à l’aide de SrumECmd, un outil en ligne de commande développé par Eric Zimmerman, déjà à l’origine de plusieurs outils exploités dans cette série (PECmd, LECmd, SBECmd, RBCmd). Il est open source et gratuit.
Téléchargez la dernière version de l’outil, puis extrayez l’intégralité de son contenu dans un dossier. Comme pour les autres outils de la suite, vérifiez que les DLL ont bien été extraites.
Ouvrez ensuite une invite de commandes, placez-vous dans le dossier de l’outil et exécutez la commande suivante :
SrumECmd.exe -f “C:\chemin_de_la_base\SRUDB.dat” –csv “C:\chemin_de_sortie”
Le résultat est visible ci-dessous. En complément, voici des précisions à propos des options utilisées dans la commande précédente :
-f : fichier SRUDB.dat à analyser
–csv : dossier dans lequel enregistrer les rapports CSV (le chemin doit être entouré de guillemets doubles)
Analyse des résultats
À la fin de l’analyse, SrumECmd génère plusieurs fichiers CSV correspondant aux différentes catégories d’informations contenues dans la base.
Nous retrouvons notamment :
AppResourceUseInfo, qui contient les données relatives à l’utilisation des applications
NetworkConnections, qui renseigne sur les connexions et les interfaces réseau
NetworkUsages, qui présente les volumes de données envoyées et reçues
Les fichiers liés à la consommation énergétique et à l’utilisation de la batterie.
Il est recommandé d’examiner l’ensemble de ces rapports, car chacun apporte un point de vue différent sur l’activité du système.
Utilisation des applications
Dans notre exemple, nous allons principalement nous intéresser au fichier AppResourceUseInfo. Ce rapport contient de nombreuses informations, notamment :
L’horodatage de l’enregistrement
Le nom et le chemin de l’application
L’identité de l’utilisateur, représentée par son SID (et son nom si la ruche SOFTWARE a été fournie)
Le temps d’utilisation au premier plan et en arrière-plan
La consommation du processeur
Les quantités de données lues ou écrites
Différentes informations relatives à l’utilisation des ressources
Dans notre exemple, nous retrouvons une nouvelle fois, comme avec la MFT, une trace d’activité associée à SharpHound.exe.
La présence du SID permet également d’identifier le compte utilisateur auquel cette activité est associée, ce qui permet d’associer une application à un utilisateur.
Analyse de l’activité réseau
Le fichier NetworkUsages est un élément intéressant : il permet d’identifier l’utilisation du réseau associée aux applications et aux utilisateurs. Il contient notamment :
L’application concernée
Le SID de l’utilisateur
L’interface ou le profil réseau utilisé
La quantité de données envoyées
La quantité de données reçues
L’horodatage de l’enregistrement
Ces informations peuvent contribuer à identifier une activité réseau anormale, comme l’envoi d’une quantité importante de données par une application inhabituelle, ce qui est typique d’une exfiltration.
Dans notre exemple, nous pouvons observer l’activité réseau de plusieurs applications, comme Adobe et RDC-On, ainsi que le type de compte concerné et son SID. À l’aide des filtres, il est possible d’exclure les comptes système afin d’identifier plus facilement une activité réseau inhabituelle.
Le fichier CSV permet également de regrouper les résultats par application et de calculer le volume total de données envoyées et reçues. Ces informations peuvent aider à repérer une consommation réseau anormale, mais elles ne permettent pas d’identifier directement les adresses IP ou les domaines contactés.
Conclusion
Le SRUM constitue un artefact particulièrement riche pour reconstituer l’activité historique d’un système Windows. Grâce à la base SRUDB.dat, il est possible d’associer l’utilisation d’une application à un utilisateur, à une période et à différentes données de consommation système ou réseau, y compris pour des exécutables supprimés depuis.
Dans notre exemple, l’analyse a permis de retrouver une activité associée à SharpHound et de déterminer l’identité de l’utilisateur concerné. Cette information constitue un indice important, mais elle doit être corrélée avec d’autres artefacts (Prefetch, Amcache, BAM, MFT) afin de confirmer l’exécution de l’outil et de reconstruire précisément la chronologie des événements.
Consultant et formateur expert Windows Server et Cloud Azure. Chercheur en Cybersécurité.
