Skip to content

Análisis forense de notificaciones: guía de wpndatabase.db

Qué registra la base de datos de notificaciones de Windows, dónde está, qué demuestra y dónde se queda corta: guía práctica de wpndatabase.db para DFIR.

Publicado el 4 min de lectura

En resumen. Todos los perfiles de Windows 10 (1607+) y Windows 11 tienen una base de datos de notificaciones en %LOCALAPPDATA%\Microsoft\Windows\Notifications\wpndatabase.db. Almacena como XML los toasts que recibió el usuario (remitente, líneas de texto, botones, argumentos de lanzamiento) con una hora de llegada y una de caducidad en UTC. Es una base de datos SQLite en modo WAL, así que hay que recolectar wpndatabase.db-wal junto con ella. Las notificaciones borradas a menudo sobreviven en el espacio libre.

Las notificaciones son un artefacto infravalorado. Las escribe el sistema operativo en nombre de otras aplicaciones, contienen una copia del contenido que el usuario vio en pantalla y sobreviven a aquello que anunciaban: el mensaje de chat se borra en la aplicación, el malware se pone en cuarentena, la descarga se mueve… y el toast sigue en la base de datos.

Esta guía es el punto de entrada de la serie; cada sección enlaza a un artículo más detallado.

Qué se almacena

Las aplicaciones generan notificaciones a través de la plataforma de notificaciones de Windows, ya sea en local o mediante Windows Push Notification Services (WNS). La plataforma las guarda por usuario en una base de datos SQLite con estas tablas principales (esquema según lo documentan los parsers de Plaso y Dissect):

TablaQué contiene
NotificationUna fila por toast, actualización de icono o distintivo: Type, el XML Payload, Tag, Group, ArrivalTime, ExpiryTime
NotificationHandlerUna fila por cada aplicación que puede notificar: PrimaryId, HandlerType, CreatedTime, ModifiedTime
HandlerAssets, HandlerSettingsDetalles clave / valor por gestor
WNSPushChannelURI de canales push que WNS asigna a las aplicaciones, con horas de creación y caducidad
MetadataClaves a nivel de base de datos

La referencia completa de campos está en tablas y columnas de wpndatabase.db.

Dónde se encuentra

C:\Users\<user>\AppData\Local\Microsoft\Windows\Notifications\wpndatabase.db, con wpndatabase.db-wal y wpndatabase.db-shm al lado. Las compilaciones de Windows 10 anteriores a 1607 y Windows 8.x usaban un archivo binario, appdb.dat, en la misma carpeta: consulta appdb.dat, el antiguo almacén de notificaciones. Cómo copiar ambos de forma segura se explica en la guía de adquisición.

Qué revela

  • Vistas previas de mensajes. Las aplicaciones de chat y correo incluyen en el toast el remitente y las primeras líneas del mensaje. Esas vistas previas permanecen en la base de datos hasta que la notificación caduca o se descarta, y sus bytes, a menudo, más tiempo.
  • Alertas de seguridad. Los toasts del antivirus y de Seguridad de Windows nombran la amenaza y a menudo la ruta del archivo.
  • Actividad del usuario con horas precisas. «Descarga completada», los avisos de unidades extraíbles, los recordatorios y las solicitudes de inicio de sesión llevan una hora de llegada en UTC (FILETIME de Windows).
  • Qué aplicaciones pueden notificar. La tabla de gestores enumera todas las aplicaciones registradas con su hora de creación, incluida cualquiera que apareciera durante un incidente.
  • La infraestructura en la nube. WNSPushChannel muestra qué aplicaciones tenían un canal push y cuándo se creó.

El caso práctico de incidente muestra cómo encajan estas piezas en una cronología.

Qué no revela

Una notificación solo existe si la aplicación decidió generarla, el usuario tenía las notificaciones activadas para ella y todavía no ha caducado ni se ha descartado. La ausencia no demuestra nada. Además, un toast demuestra que el sistema recibió una notificación, no que el usuario la leyera. Las horas de los gestores se guardan como texto sin zona horaria documentada, a diferencia de los valores FILETIME de las notificaciones, que están en UTC.

Notificaciones borradas

Cuando una notificación se descarta o caduca, Windows borra la fila. SQLite no elimina por defecto los registros borrados: permanecen en la página como espacio libre, en la freelist o en imágenes antiguas de páginas en el archivo y en el WAL. Recuperar notificaciones borradas explica el mecanismo y sus limitaciones.

Herramientas

Plaso tiene un plugin SQLite windows_push_notification, Dissect un plugin notifications (para wpndatabase.db y appdb.dat), y el exchange de Velociraptor ofrece el artefacto Windows.Forensics.NotificationsDatabase. Windows Notification Parser, en este sitio, se ejecuta en el navegador, aplica el WAL, muestra cada carga útil como una tarjeta legible y recupera las filas borradas: consulta cómo analizar wpndatabase.db en el navegador.

Preguntas frecuentes

¿Qué es wpndatabase.db?

La base de datos SQLite, una por usuario, de la plataforma Windows Push Notification. Almacena los toasts, las actualizaciones de iconos y los distintivos que las aplicaciones enviaron al usuario, con la aplicación emisora, la hora de llegada, la hora de caducidad y el contenido XML de la notificación.

¿Conserva Windows las notificaciones después de descartarlas?

La fila se borra, pero SQLite suele dejar los bytes del registro borrado en el archivo hasta que se reutiliza el espacio, por lo que a menudo es posible recuperar del espacio libre las notificaciones descartadas.

Artículos relacionados

Caso ficticio: lo que la base de notificaciones de un usuario aporta a la cronología de una intrusión: descarga, alerta antivirus, app nueva y chat borrado.

Paso a paso: abre la base de notificaciones de Windows y su -wal en un parser gratuito, prioriza hallazgos, recupera toasts borrados y exporta.

Por qué los toasts descartados y caducados sobreviven en wpndatabase.db, dónde los deja SQLite y cómo recuperarlos sin llevarse sorpresas.