Skip to content

Analyse forensique des notifications Windows

Ce que la base de notifications Windows enregistre, où elle se trouve, ce qu'elle prouve et ses limites : guide pratique de wpndatabase.db pour le DFIR.

Publié le 4 min de lecture

En bref. Chaque profil Windows 10 (1607+) et Windows 11 possède une base de notifications dans %LOCALAPPDATA%\Microsoft\Windows\Notifications\wpndatabase.db. Elle stocke en XML les toasts reçus par l'utilisateur — expéditeur, lignes de texte, boutons, arguments de lancement — avec une heure d'arrivée et d'expiration en UTC. C'est une base SQLite en mode WAL : collectez wpndatabase.db-wal avec elle. Les notifications supprimées survivent souvent dans l'espace libre.

Les notifications sont un artefact sous-estimé. Elles sont écrites par le système d'exploitation pour le compte d'autres applications, elles contiennent une copie du contenu que l'utilisateur a vu à l'écran, et elles survivent à ce qu'elles annonçaient : le message de discussion est supprimé dans l'application, le malware est mis en quarantaine, le téléchargement est déplacé — le toast est toujours dans la base.

Ce guide est le point d'entrée de la série ; chaque section renvoie à un article plus approfondi.

Ce qui est stocké

Les applications émettent des notifications via la plateforme de notifications Windows, soit localement, soit par les Windows Push Notification Services (WNS). La plateforme les conserve par utilisateur dans une base SQLite dont voici les principales tables (schéma tel que documenté par les parseurs Plaso et Dissect) :

TableContenu
NotificationUne ligne par toast, mise à jour de vignette ou badge : Type, le XML Payload, Tag, Group, ArrivalTime, ExpiryTime
NotificationHandlerUne ligne par application pouvant notifier : PrimaryId, HandlerType, CreatedTime, ModifiedTime
HandlerAssets, HandlerSettingsDétails clé / valeur par gestionnaire
WNSPushChannelURI de canal push attribuées aux applications par WNS, avec heures de création et d'expiration
MetadataClés au niveau de la base

La référence complète des champs se trouve dans les tables et colonnes de wpndatabase.db expliquées.

Où elle se trouve

C:\Users\<user>\AppData\Local\Microsoft\Windows\Notifications\wpndatabase.db, avec wpndatabase.db-wal et wpndatabase.db-shm à côté. Les builds de Windows 10 antérieures à 1607 et Windows 8.x utilisaient un fichier binaire, appdb.dat, dans le même dossier — voir appdb.dat, l'ancien stockage des notifications. La manière de copier les deux en toute sécurité est traitée dans le guide de collecte.

Ce qu'elle vous apprend

  • Aperçus de messages. Les applications de messagerie instantanée et de courriel placent l'expéditeur et les premières lignes du message dans le toast. Ces aperçus restent dans la base jusqu'à l'expiration ou la fermeture de la notification, et leurs octets souvent plus longtemps.
  • Alertes de sécurité. Les toasts de l'antivirus et de la sécurité Windows nomment la menace et souvent le chemin du fichier.
  • Activité de l'utilisateur horodatée avec précision. « Téléchargement terminé », invites de lecteur amovible, rappels et invites de connexion portent tous une heure d'arrivée en UTC (FILETIME Windows).
  • Les applications autorisées à notifier. La table des gestionnaires liste chaque application enregistrée avec une heure de création, y compris une application apparue pendant un incident.
  • La mécanique cloud. WNSPushChannel montre quelles applications disposaient d'un canal push et quand il a été créé.

Le cas d'investigation montre comment ces éléments s'intègrent dans une chronologie.

Ce qu'elle ne vous apprend pas

Une notification n'existe que si l'application a choisi d'en émettre une, si l'utilisateur avait activé les notifications pour elle, et si elle n'a pas encore expiré ni été fermée. L'absence ne prouve rien. Un toast prouve aussi que le système a reçu une notification, pas que l'utilisateur l'a lue. Les heures des gestionnaires sont stockées sous forme de texte sans fuseau horaire documenté, contrairement aux valeurs FILETIME des notifications, qui sont en UTC.

Notifications supprimées

Lorsqu'une notification est fermée ou expire, Windows supprime la ligne. Par défaut, SQLite n'efface pas les enregistrements supprimés : ils restent dans la page sous forme d'espace libre, dans la freelist, ou dans d'anciennes images de pages du fichier et du WAL. Récupérer les notifications supprimées explique le mécanisme et ses limites.

Outils

Plaso dispose d'un plugin SQLite windows_push_notification, Dissect d'un plugin notifications (pour wpndatabase.db et appdb.dat), et l'exchange de Velociraptor propose un artefact Windows.Forensics.NotificationsDatabase. Le Windows Notification Parser de ce site s'exécute dans le navigateur, applique le WAL, restitue chaque payload sous forme de carte lisible et récupère les lignes supprimées — voir comment analyser wpndatabase.db dans votre navigateur.

FAQ

Qu'est-ce que wpndatabase.db ?

La base SQLite, propre à chaque utilisateur, de la plateforme Windows Push Notification. Elle stocke les toasts, mises à jour de vignettes et badges envoyés à l'utilisateur par les applications, avec l'application émettrice, l'heure d'arrivée, l'heure d'expiration et le contenu XML de la notification.

Windows conserve-t-il les notifications après leur fermeture ?

La ligne est supprimée, mais SQLite laisse généralement les octets de l'enregistrement supprimé dans le fichier jusqu'à la réutilisation de l'espace : les notifications fermées peuvent donc souvent être récupérées depuis l'espace libre.

Articles liés

Cas fictif : l'apport d'une base de notifications à la chronologie d'une intrusion — téléchargement, alerte antivirus, nouvelle app, message supprimé.

Pas à pas : ouvrir la base de notifications Windows et son -wal dans un parseur web gratuit, trier, récupérer les toasts supprimés et exporter.

Pourquoi les toasts fermés ou expirés survivent dans wpndatabase.db, où SQLite les laisse et comment les récupérer sans se tromper soi-même.