Desktop Activity Moderator (DAM) : la forensique expliquée
Ce qu'est le Desktop Activity Moderator, pourquoi sa clé est vide sur la plupart des postes fixes, ce qui le distingue de BAM et comment l'exploiter.
TL;DR. DAM (Desktop Activity Moderator) est le cousin de BAM dédié à la veille connectée. Microsoft le décrit comme un pilote noyau qui suspend ou bride les processus de bureau quand l'appareil passe en veille connectée, chargé uniquement si le matériel le permet, et absent des serveurs. Quand il enregistre, il utilise la même clé <SID> et le même format de valeur que BAM, sous Services\dam. Attendez-vous à le trouver sur les portables et tablettes Modern Standby, à ne rien trouver sur la plupart des postes fixes, et traitez son contenu comme un second BAM, plus petit.
La plupart des articles sur BAM accordent une phrase à DAM. C'est compréhensible : sur l'image d'un poste fixe moyen, la clé est vide. Sur un portable récent, elle ne l'est pas, et mieux vaut savoir ce que l'on regarde. Pour le contexte : le guide complet BAM/DAM.
Ce que Microsoft dit de DAM
La documentation de compatibilité de Microsoft présente le Desktop Activity Moderator comme l'une des fonctionnalités de Windows 8 destinées aux appareils prenant en charge la veille connectée (Microsoft Learn). Les points essentiels :
- C'est un pilote en mode noyau « chargé et initialisé au démarrage si le système prend en charge la veille connectée » — ce que détermine le champ
AOACdeSYSTEM_POWER_CAPABILITIES(référence de la structure). - Écran éteint en veille connectée, il suspend les processus de bureau des sessions interactives et bride ceux de la session 0 (services).
- Il est désactivé quand l'écran est allumé.
- Il « n'est pas présent sur les éditions serveur ».
La veille connectée est depuis devenue Modern Standby dans la documentation matérielle de Microsoft, qui décrit comment les applications de bureau sont mises en pause pendant la veille (présentation de Modern Standby, préparer les logiciels).
Où se trouvent les enregistrements DAM
Même ruche, même structure que BAM :
SYSTEM\ControlSet00X\Services\dam\State\UserSettings\<SID> (Windows 10 1809+, 11)
SYSTEM\ControlSet00X\Services\dam\UserSettings\<SID> (older layout)
La couverture varie selon les parseurs : le plugin BamDam d'Eric Zimmerman liste dam\UserSettings parmi ses chemins de clés (voir la comparaison des outils), et notre BAM/DAM Parser lit bam et dam dans les deux formats et dans tous les control sets. Chaque valeur est un chemin d'exécutable (ou un nom de famille de package) avec un REG_BINARY dont les 8 premiers octets sont un FILETIME — voir l'article sur le format des valeurs.
BAM et DAM côte à côte
| BAM | DAM | |
|---|---|---|
| Rôle | Modérer l'activité en arrière-plan | Suspendre/brider les applications de bureau en veille connectée |
| Pilote | bam.sys | dam.sys (Boutnaru) |
| Présent sur | Windows 10 1709+, Windows 11 | Appareils compatibles veille connectée/Modern Standby ; pas sur les éditions serveur |
| Clé | Services\bam\State\UserSettings\<SID> | Services\dam\State\UserSettings\<SID> |
| Format des valeurs | Chemin → REG_BINARY, FILETIME en tête | Identique |
| Contenu typique | La plupart des programmes lancés localement la dernière semaine, par utilisateur | En général moins d'entrées ; souvent vide sur les postes fixes (ElcomSoft) |
| Niveau de recherche | Rétro-ingénierie publiée (Suhanov) | Surtout documenté par observation |
La dernière ligne est la réserve importante. Les résultats détaillés sur BAM — horodatage mis à jour au lancement et à la fin du processus, purge à sept jours au démarrage, suppression des entrées d'exécutables effacés, aucune entrée pour les chemins amovibles ou réseau — viennent de l'analyse de bam.sys. Nous n'avons pas trouvé d'analyse publiée équivalente de la tenue des enregistrements par dam.sys. Considérez ces comportements comme probables pour DAM, pas comme établis.
Quand DAM est utile
Un second témoin. Si le même exécutable apparaît sous le même SID dans BAM et dans DAM avec des horodatages proches, vous avez deux écritures indépendantes qui désignent la même activité. Utile quand une conclusion risque d'être contestée.
Un sous-ensemble différent. DAM concerne les processus de bureau autour de la veille : sa liste n'est pas une copie de celle de BAM. Dans la ruche d'exemple fictive du site, DAM ne contient pour l'utilisatrice alice que explorer.exe, alors que BAM liste huit programmes. N'attendez pas de correspondance un pour un.
Profil matériel. Une clé DAM remplie indique rapidement que l'appareil prend en charge Modern Standby — typiquement un portable ou une tablette. Combinée au nom de la machine et aux données réseau et énergie de SRUM, elle aide à décrire l'appareil dans un rapport.
Quand DAM est vide
Une clé dam vide ou absente est normale sur :
- les postes fixes et VM sans veille connectée ;
- les serveurs (« pas présent sur les éditions serveur ») ;
- les portables plus anciens qui utilisent la veille S3 classique.
Elle ne mérite d'être questionnée que si le matériel prend clairement en charge Modern Standby, que BAM est rempli pour les mêmes utilisateurs et que DAM est vide dans tous les control sets. Même dans ce cas, vérifiez le build et la configuration d'alimentation avant de parler d'altération. L'article sur l'anti-forensique liste les signaux qui indiquent réellement une suppression.
Lire DAM avec l'outil
- Déposez
SYSTEM(etSOFTWAREpour les noms d'utilisateur) dans le BAM/DAM Parser. - Utilisez le filtre de source : « BAM + DAM » affiche les deux, ou choisissez DAM seul.
- La colonne « Source » indique
dampour ces lignes ; le panneau de détail affiche le chemin complet de la clé. - Triez par compte puis par heure pour aligner les lignes DAM sur les lignes BAM du même compte.
Tout le reste — signalements, bascule UTC/local, export CSV/JSON — fonctionne de la même manière pour les lignes DAM.
Questions ouvertes à tester
Faute de rétro-ingénierie publique de la tenue des enregistrements DAM comparable à celle de BAM, quelques comportements méritent d'être vérifiés sur un portable de référence, au même build que votre preuve, avant de vous appuyer dessus :
| Question | Pourquoi c'est important | Comment tester |
|---|---|---|
| Les entrées DAM sont-elles purgées après une semaine, comme BAM ? | Indique jusqu'où une clé DAM vide a un sens | Lancer un programme connu, attendre plus de sept jours, redémarrer, réexporter SYSTEM |
| DAM ignore-t-il les chemins amovibles et réseau ? | Décide si une absence est informative | Lancer le même binaire de test depuis un disque local, une clé USB et un partage |
| Quand l'horodatage est-il mis à jour ? | Lancement, fin, entrée ou sortie de veille | Lancer un programme à travers un cycle de veille et comparer avec les heures de l'événement Sysmon 1 |
| Quels programmes obtiennent une entrée ? | DAM vise les processus de bureau autour de la veille | Comparer les listes BAM et DAM après une journée d'usage normal |
Documentez le build, le matériel et les étapes exactes, et conservez les ruches exportées : un test reproductible pèse plus dans un rapport que le résumé d'un blog, celui-ci compris.
Questions fréquentes
Quelle est la différence entre BAM et DAM ?
BAM modère l'activité en arrière-plan sur tout système Windows 10 1709+. DAM suspend ou bride les applications de bureau pendant la mise en veille d'un appareil Modern Standby. Les deux tiennent dans la ruche SYSTEM des enregistrements exécutable/horodatage par utilisateur au même format ; DAM contient en général beaucoup moins d'entrées.
Pourquoi la clé DAM est-elle vide sur mon image ?
Très probablement parce que la machine ne prend pas en charge Modern Standby (veille connectée) : le pilote DAM n'a jamais été chargé. C'est normal sur la plupart des postes fixes et des serveurs, et ce n'est pas en soi un signe d'altération.
Sources
- Microsoft Learn, Desktop Activity Moderator et Modern Standby.
- Maxim Suhanov, BAM internals (BAM uniquement).
- Shlomi Boutnaru, The Windows Forensic Journey — DAM.