Skip to content

Forensik der Windows-Benachrichtigungen: wpndatabase.db

Was die Windows-Benachrichtigungsdatenbank speichert, wo sie liegt, was sie belegt und wo ihre Grenzen liegen: ein Praxisleitfaden zu wpndatabase.db für DFIR.

Veröffentlicht am 4 Min. Lesezeit

Kurz gesagt. Jedes Profil unter Windows 10 (ab 1607) und Windows 11 hat eine Benachrichtigungsdatenbank unter %LOCALAPPDATA%\Microsoft\Windows\Notifications\wpndatabase.db. Sie speichert die empfangenen Toasts als XML — Absender, Textzeilen, Schaltflächen, Startargumente — mit Eingangs- und Ablaufzeit in UTC. Es handelt sich um eine SQLite-Datenbank im WAL-Modus, daher muss wpndatabase.db-wal mitgesichert werden. Gelöschte Benachrichtigungen überdauern oft im freien Speicher.

Benachrichtigungen sind ein unterschätztes Artefakt. Das Betriebssystem schreibt sie im Auftrag anderer Apps, sie enthalten eine Kopie dessen, was der Benutzer auf dem Bildschirm sah, und sie überleben das, was sie angekündigt haben: Die Chatnachricht ist in der App gelöscht, die Schadsoftware in Quarantäne, der Download verschoben — der Toast steht noch in der Datenbank.

Dieser Leitfaden ist der Einstieg in die Serie; jeder Abschnitt verweist auf einen vertiefenden Artikel.

Was gespeichert wird

Apps lösen Benachrichtigungen über die Windows-Benachrichtigungsplattform aus, entweder lokal oder über die Windows Push Notification Services (WNS). Die Plattform speichert sie pro Benutzer in einer SQLite-Datenbank mit diesen Haupttabellen (Schema wie von den Parsern Plaso und Dissect dokumentiert):

TabelleInhalt
NotificationEine Zeile pro Toast, Kachel-Update oder Badge: Type, das Payload-XML, Tag, Group, ArrivalTime, ExpiryTime
NotificationHandlerEine Zeile pro benachrichtigungsfähiger App: PrimaryId, HandlerType, CreatedTime, ModifiedTime
HandlerAssets, HandlerSettingsSchlüssel-/Wert-Details pro Handler
WNSPushChannelVon WNS an Apps vergebene Push-Kanal-URIs mit Erstellungs- und Ablaufzeit
MetadataSchlüssel auf Datenbankebene

Die vollständige Feldreferenz finden Sie unter Tabellen und Spalten von wpndatabase.db erklärt.

Wo sie liegt

C:\Users\<user>\AppData\Local\Microsoft\Windows\Notifications\wpndatabase.db, daneben wpndatabase.db-wal und wpndatabase.db-shm. Windows-10-Builds vor 1607 und Windows 8.x nutzten eine Binärdatei, appdb.dat, im selben Ordner — siehe appdb.dat, der alte Benachrichtigungsspeicher. Wie Sie beide sicher kopieren, erklärt die Anleitung zur Sicherung.

Was sie verrät

  • Nachrichtenvorschauen. Chat- und Mail-Apps schreiben Absender und die ersten Zeilen einer Nachricht in den Toast. Diese Vorschauen bleiben in der Datenbank, bis die Benachrichtigung abläuft oder geschlossen wird, ihre Bytes oft noch länger.
  • Sicherheitswarnungen. Toasts von Antivirus und Windows-Sicherheit nennen die Bedrohung und oft den Dateipfad.
  • Benutzeraktivität mit genauen Zeiten. „Download abgeschlossen“, Hinweise zu Wechseldatenträgern, Erinnerungen und Anmeldeaufforderungen tragen alle eine Eingangszeit in UTC (Windows-FILETIME).
  • Welche Apps benachrichtigen dürfen. Die Handler-Tabelle listet jede registrierte App mit Erstellungszeit auf, auch eine, die während eines Vorfalls aufgetaucht ist.
  • Cloud-Infrastruktur. WNSPushChannel zeigt, welche Apps einen Push-Kanal hatten und wann er erstellt wurde.

Das Fallbeispiel zeigt, wie sich diese Teile in eine Zeitlinie fügen.

Was sie nicht verrät

Eine Benachrichtigung existiert nur, wenn die App eine ausgelöst hat, der Benutzer Benachrichtigungen für sie aktiviert hatte und sie noch nicht abgelaufen oder geschlossen ist. Fehlende Einträge beweisen nichts. Ein Toast belegt zudem nur, dass das System eine Benachrichtigung empfangen hat, nicht, dass der Benutzer sie gelesen hat. Handler-Zeiten sind als Text ohne dokumentierte Zeitzone gespeichert, anders als die FILETIME-Werte der Benachrichtigungen, die in UTC vorliegen.

Gelöschte Benachrichtigungen

Wird eine Benachrichtigung geschlossen oder läuft sie ab, löscht Windows die Zeile. SQLite überschreibt gelöschte Datensätze standardmäßig nicht: Sie bleiben als freier Speicher in der Seite, in der Freelist oder in älteren Seitenabbildern in der Datei und der WAL. Gelöschte Benachrichtigungen wiederherstellen erklärt den Mechanismus und seine Grenzen.

Werkzeuge

Plaso hat ein SQLite-Plugin windows_push_notification, Dissect ein Plugin notifications (für wpndatabase.db und appdb.dat), und im Velociraptor-Exchange gibt es das Artefakt Windows.Forensics.NotificationsDatabase. Der Windows Notification Parser auf dieser Website läuft im Browser, wendet die WAL an, stellt jeden Payload als lesbare Karte dar und stellt gelöschte Zeilen wieder her — siehe wpndatabase.db im Browser analysieren.

FAQ

Was ist wpndatabase.db?

Die benutzerspezifische SQLite-Datenbank der Windows-Push-Notification-Plattform. Sie speichert die Toasts, Kachel-Updates und Badges, die Apps an den Benutzer gesendet haben, mit der sendenden App, Eingangszeit, Ablaufzeit und dem XML-Inhalt der Benachrichtigung.

Behält Windows Benachrichtigungen, nachdem sie geschlossen wurden?

Die Zeile wird gelöscht, doch SQLite lässt die Bytes des gelöschten Datensatzes in der Regel in der Datei, bis der Speicher wiederverwendet wird. Geschlossene Benachrichtigungen lassen sich daher oft aus freiem Speicher wiederherstellen.

Verwandte Artikel

Fiktiver Fall: was die Benachrichtigungsdatenbank eines Benutzers zur Zeitlinie eines Einbruchs beiträgt — Download, Virenwarnung, neue App, gelöschter Chat.

Schritt für Schritt: Benachrichtigungsdatenbank samt -wal im Browser auswerten, Befunde sichten, gelöschte Toasts wiederherstellen, als CSV/JSON exportieren.

Warum geschlossene Toasts in wpndatabase.db überdauern, wo SQLite sie ablegt (Freeblocks, Freelist, WAL-Frames) und wie Sie sie belastbar wiederherstellen.