Desktop Activity Moderator (DAM): análisis forense explicado
Qué es el Desktop Activity Moderator, por qué su clave está vacía en casi todos los sobremesa, en qué se diferencia de BAM y cómo aprovecharlo en portátiles.
TL;DR. DAM (Desktop Activity Moderator) es el hermano de BAM para la espera conectada. Microsoft lo describe como un controlador del kernel que suspende o limita los procesos de escritorio cuando el equipo entra en espera conectada, que solo se carga si el hardware lo admite y que no existe en servidores. Cuando registra, usa la misma clave <SID> y el mismo formato de valor que BAM, bajo Services\dam. Espéralo en portátiles y tabletas con Modern Standby, no esperes nada en la mayoría de los sobremesa, y trata lo que encuentres como un segundo BAM, más pequeño.
Casi todos los artículos sobre BAM dedican una frase a DAM. Es comprensible: en la imagen de un sobremesa típico, la clave está vacía. En un portátil moderno no lo está, y conviene saber qué se está mirando. Para el contexto: la guía completa de BAM/DAM.
Lo que dice Microsoft sobre DAM
La documentación de compatibilidad de Microsoft presenta el Desktop Activity Moderator como una de las funciones de Windows 8 para equipos compatibles con la espera conectada (Microsoft Learn). Lo esencial:
- Es un controlador en modo kernel «cargado e inicializado al arrancar si el sistema admite la espera conectada», algo que determina el campo
AOACdeSYSTEM_POWER_CAPABILITIES(referencia de la estructura). - Con la pantalla apagada en espera conectada, suspende los procesos de escritorio de las sesiones interactivas y limita los de la sesión 0 (servicios).
- Se desactiva cuando la pantalla está encendida.
- «No está presente en las ediciones de servidor».
La espera conectada ha pasado a llamarse Modern Standby en la documentación de hardware de Microsoft, que describe cómo se pausan las aplicaciones de escritorio mientras el equipo está en espera (visión general de Modern Standby, preparar el software).
Dónde están los registros de DAM
Misma colmena, misma estructura que BAM:
SYSTEM\ControlSet00X\Services\dam\State\UserSettings\<SID> (Windows 10 1809+, 11)
SYSTEM\ControlSet00X\Services\dam\UserSettings\<SID> (older layout)
La cobertura varía según el analizador: el plugin BamDam de Eric Zimmerman incluye dam\UserSettings entre sus rutas de clave (ver la comparación de herramientas), y nuestro BAM/DAM Parser lee bam y dam en ambos formatos y en todos los control sets. Cada valor es la ruta de un ejecutable (o un nombre de familia de paquete) con un REG_BINARY cuyos primeros 8 bytes son un FILETIME — ver el artículo sobre el formato de los valores.
BAM y DAM, cara a cara
| BAM | DAM | |
|---|---|---|
| Función | Moderar la actividad en segundo plano | Suspender/limitar apps de escritorio en espera conectada |
| Controlador | bam.sys | dam.sys (Boutnaru) |
| Presente en | Windows 10 1709+, Windows 11 | Equipos con espera conectada/Modern Standby; no en ediciones de servidor |
| Clave | Services\bam\State\UserSettings\<SID> | Services\dam\State\UserSettings\<SID> |
| Formato del valor | Ruta → REG_BINARY, FILETIME al principio | Igual |
| Contenido típico | La mayoría de los programas ejecutados localmente la última semana, por usuario | Normalmente menos entradas; a menudo vacía en sobremesa (ElcomSoft) |
| Nivel de investigación | Ingeniería inversa publicada (Suhanov) | Documentado sobre todo por observación |
La última fila es la advertencia importante. Los hallazgos detallados sobre BAM — marca de tiempo actualizada al iniciar y terminar el proceso, purga a los siete días al arrancar, eliminación de entradas de ejecutables borrados, ninguna entrada para rutas extraíbles o de red — proceden del análisis de bam.sys. No hemos encontrado un análisis publicado equivalente de cómo registra dam.sys. Trata esos comportamientos como probables en DAM, no como establecidos.
Cuándo ayuda DAM
Un segundo testigo. Si el mismo ejecutable aparece bajo el mismo SID en BAM y en DAM con marcas de tiempo cercanas, tienes dos escrituras independientes que apuntan a la misma actividad. Útil cuando un hallazgo va a ser cuestionado.
Un subconjunto distinto. DAM se ocupa de los procesos de escritorio en torno a la espera, así que su lista no es una copia de la de BAM. En la colmena de ejemplo ficticia del sitio, DAM solo contiene explorer.exe para la usuaria alice, mientras que BAM tiene ocho programas. No esperes una correspondencia uno a uno.
Perfil del hardware. Una clave DAM con contenido indica rápidamente que el equipo admite Modern Standby — normalmente un portátil o una tableta. Junto con el nombre del equipo y los datos de red y energía de SRUM, ayuda a describir el dispositivo en un informe.
Cuándo DAM está vacío
Una clave dam vacía o ausente es normal en:
- equipos de sobremesa y VM sin espera conectada;
- servidores («no está presente en las ediciones de servidor»);
- portátiles antiguos que usan la suspensión S3 tradicional.
Solo merece preguntas cuando el hardware admite claramente Modern Standby, BAM tiene contenido para los mismos usuarios y DAM está vacía en todos los control sets. Incluso entonces, revisa la compilación y la configuración de energía antes de hablar de manipulación. El artículo sobre antiforense enumera las señales que sí indican un borrado.
Leer DAM con la herramienta
- Suelta
SYSTEM(ySOFTWAREpara los nombres de usuario) en el BAM/DAM Parser. - Usa el filtro de fuente: «BAM + DAM» muestra ambos, o elige solo DAM.
- La columna «Fuente» indica
damen esas filas; el panel de detalle muestra la ruta completa de la clave. - Ordena por cuenta y hora para alinear las filas DAM con las filas BAM de la misma cuenta.
Todo lo demás — señales, cambio UTC/local, exportación CSV/JSON — funciona igual para las filas DAM.
Preguntas abiertas que conviene probar
Como la forma en que DAM guarda sus registros no se ha analizado públicamente por ingeniería inversa como la de BAM, conviene comprobar algunos comportamientos en un portátil de referencia con la misma compilación de Windows que tu evidencia antes de apoyarte en ellos:
| Pregunta | Por qué importa | Cómo probarlo |
|---|---|---|
| ¿Se purgan las entradas DAM al cabo de una semana, como en BAM? | Indica hasta dónde tiene sentido una clave DAM vacía | Ejecutar un programa conocido, esperar más de siete días, reiniciar, volver a exportar SYSTEM |
| ¿Ignora DAM las rutas extraíbles y de red? | Decide si una ausencia es informativa | Ejecutar el mismo binario de prueba desde un disco local, un USB y un recurso compartido |
| ¿Cuándo se actualiza la marca de tiempo? | Inicio, fin, entrada o salida de la espera | Ejecutar un programa durante un ciclo de espera y comparar con las horas del evento 1 de Sysmon |
| ¿Qué programas reciben entrada? | DAM se centra en los procesos de escritorio en torno a la espera | Comparar las listas de BAM y DAM tras un día de uso normal |
Documenta la compilación, el hardware y los pasos exactos, y conserva las colmenas exportadas: una prueba reproducible pesa más en un informe que el resumen de un blog, incluido este.
Preguntas frecuentes
¿Qué diferencia hay entre BAM y DAM?
BAM modera la actividad en segundo plano en cualquier sistema Windows 10 1709+. DAM suspende o limita las aplicaciones de escritorio mientras un equipo con Modern Standby está en espera. Ambos guardan en la colmena SYSTEM registros ejecutable/marca de tiempo por usuario con el mismo formato; DAM suele contener muchas menos entradas.
¿Por qué la clave DAM está vacía en mi imagen?
Lo más probable es que el equipo no admita Modern Standby (espera conectada), así que el controlador DAM nunca se cargó. Es normal en la mayoría de los equipos de sobremesa y servidores, y por sí solo no indica manipulación.
Fuentes
- Microsoft Learn, Desktop Activity Moderator y Modern Standby.
- Maxim Suhanov, BAM internals (solo BAM).
- Shlomi Boutnaru, The Windows Forensic Journey — DAM.