Die Eigenschaften des Windows-Search-Index erklärt
System.ItemPathDisplay, System.Search.GatherTime, System.Search.AutoSummary und die übrigen Windows-Search-Eigenschaften, die in einer Ermittlung zählen.
Kurz gesagt. Jedes Element im Windows-Search-Index ist ein Bündel von Windows-Shell-Eigenschaften, identifiziert durch eine WorkId. Ein Dutzend davon trägt den Großteil des forensischen Werts: System.ItemPathDisplay (vollständiger Pfad), System.Size, System.FileOwner, System.DateCreated / DateModified / DateAccessed (Dateisystemzeiten zum Indizierungszeitpunkt), System.Search.GatherTime (wann der Indexer das Element verarbeitet hat), System.Search.AutoSummary (ein Inhaltsauszug), System.ItemType und System.Kind (was es ist) sowie URL-Eigenschaften für den Webverlauf. Microsoft dokumentiert, was jede Eigenschaft bedeutet, nicht, wie die Datenbank sie speichert. Alle Zeiten sind FILETIME-Werte in UTC.
Woher die Eigenschaften kommen
Das Windows-Eigenschaftensystem definiert kanonische Namen wie System.ItemPathDisplay, jeweils mit Format-ID und Eigenschafts-ID (einem PROPERTYKEY). Der Indexer wendet Eigenschaftenhandler auf jede Datei an und speichert die Werte. In Windows.edb ist jede Eigenschaft eine Spalte mit einem Namen wie 4447-System_ItemPathDisplay. In Windows.db ist sie eine Zeile, deren ColumnId über SystemIndex_1_PropertyStore_Metadata auf den Namen verweist. Der Formatvergleich zeigt beide Strukturen.
Das numerische Präfix gilt nur für die jeweilige Datenbank. Nach dem Namen gehen. Microsofts Referenzseiten nennen Bedeutung und Typ jedes Namens, etwa für System.ItemPathDisplay.
Die Eigenschaften, die zählen
Identität und Ort
| Eigenschaft | Bedeutung (Microsoft) | Forensische Hinweise |
|---|---|---|
System.ItemPathDisplay | Benutzerfreundlicher Anzeigepfad des Elements | Der Pfad, den man zitiert. Enthält die Erweiterung. Lokalisiert, falls ein lokalisierter Name existiert. UNC-Pfade bei Freigaben. |
System.ItemUrl | URL-Form mit Schema (file:, iehistory:, mapi:…) | Zeigt, welche Art von Element es ist: Datei, Webverlauf, Mail. |
System.ItemFolderPathDisplay | Ordneranteil des Pfads | Praktisch, um Bereitstellungsordner zu gruppieren. |
System.FileName / System.ItemNameDisplay | Dateiname / Anzeigename | Der Anzeigename kann die Erweiterung verbergen. |
System.ComputerName | Name des Computers, auf dem sich das Element befindet | Nützlich, wenn Indizes mehrerer Rechner in einem Fall gemischt werden. |
Microsofts Beispiele für System.ItemPathDisplay umfassen einen lokalen Pfad, einen UNC-Pfad und einen Postfachpfad: Der Index erfasst mehr als lokale Dateien.
Typ
| Eigenschaft | Bedeutung | Forensische Hinweise |
|---|---|---|
System.ItemType | Kanonischer Typ, meist die Erweiterung (.exe, .zip) oder Directory | Es gibt Sonderwerte wie ActivityHistoryItem für Aktivitätsdatensätze. |
System.ItemTypeText | Lesbarer Typ („Anwendung“, „Textdokument“) | Lokalisiert. Nicht danach filtern. |
System.Kind | Aus der Erweiterung abgeleitete Kategorie: document, program, folder, link, webhistory… | Microsoft ordnet Erweiterungen Kategorien zu, im Registry-Schlüssel KindMap. Mehrwertig. |
System.FileAttributes | Win32-Dateiattribute | Versteckt- / System-Attribute an Benutzerdateien verdienen einen Blick. |
Besitz und Größe
| Eigenschaft | Bedeutung | Forensische Hinweise |
|---|---|---|
System.FileOwner | Der Besitzer der Datei, wie ihn das Dateisystem kennt | DOMÄNE\benutzer oder RECHNER\benutzer. Das stärkste Zuordnungsfeld im Index, aber Besitz ist nicht Urheberschaft: Ein Administrator, der eine Datei kopiert, kann ihr Besitzer werden. |
System.Size | Größe in Bytes | Größe zum Zeitpunkt der Indizierung. |
Zeit
| Eigenschaft | Bedeutung | Forensische Hinweise |
|---|---|---|
System.DateCreated | Erstellungszeit des Elements | Bei der Indizierung aus dem Dateisystem kopiert. |
System.DateModified | Letzte Änderung | Ebenso. |
System.DateAccessed | Letzter Zugriff | Ebenso; zudem ist die Aktualisierung des letzten Zugriffs unter NTFS oft deaktiviert oder grob. |
System.Search.GatherTime | Wann der Gatherer die Eigenschaften des Dokuments zuletzt weitergegeben hat | Die eigene Uhr des Indexers. Kein Dateisystemzeitstempel, daher ändert Timestomping der Datei ihn nicht. |
Alle vier sind FILETIME-Werte: 100-Nanosekunden-Intervalle seit dem 1. Januar 1601, UTC. In Windows.db liest der Parser sie gemäß öffentlicher Forschung als 8-Byte-Little-Endian-Werte und bewahrt die Rohbytes neben dem dekodierten Datum.
Inhalt
| Eigenschaft | Bedeutung | Forensische Hinweise |
|---|---|---|
System.Search.AutoSummary | Eine automatische Zusammenfassung des Volltexts des Dokuments | In der Praxis der Textanfang. Stroz Friedberg berichtet von bis zu 1.024 Bytes unter Windows 11. |
System.Title, System.Author, System.Subject… | Dokument-Metadaten aus Eigenschaftenhandlern | Office-Dokumente, PDFs und E-Mails tragen zusätzliche Metadaten, die man in der Liste der Roh-Eigenschaften lesen sollte. |
Web und Aktivität
| Eigenschaft | Bedeutung | Forensische Hinweise |
|---|---|---|
System.Link.TargetUrl | Ziel-URL eines Links / Verlaufselements | Unter Windows 11 fand Stroz Friedberg hier besuchte URLs. |
System.ItemUrl mit iehistory://{SID}/… | Element des Webverlaufs | Die SID ordnet den Eintrag einem Benutzer zu. |
ActivityHistory-Eigenschaften (StartTime, EndTime, AppId) | Datensätze des Aktivitätsverlaufs | Vorhanden, wenn System.ItemType den Wert ActivityHistoryItem hat, laut derselben Forschung. |
Die Zeitstempel gemeinsam lesen
Die Gather-Zeit ist das Feld, an das ein Angreifer selten denkt, und sie macht die anderen nützlicher.
| Muster | Wahrscheinliche Deutung |
|---|---|
Gather-Zeit wenige Sekunden oder Minuten nach DateModified | Der Indexer hat eine frische Änderung erfasst. Normal bei aktiven Dateien. |
Gather-Zeit lange nach DateModified | Die Datei wurde später indiziert: neu indizierter Ort, Neuerstellung des Index, Neuindizierung oder wieder angeschlossenes Laufwerk. |
DateCreated später als DateModified | Typisch für eine kopierte oder entpackte Datei mit erhaltener ursprünglicher Änderungszeit. Die Quelle suchen. |
Sehr altes DateModified bei einer ausführbaren Datei in einem vom Benutzer beschreibbaren Ordner, Gather-Zeit aktuell | Mögliches Timestomping oder eine Archiventpackung. USN-Journal und MFT prüfen. |
| Gather-Zeit nach der letzten bekannten Anmeldung des Besitzers | Jemand oder etwas anderes hat an diesen Ort geschrieben, oder der Indexer hat verspätet aufgeholt. |
Der Windows Search Index Parser markiert „kürzlich indizierte“ Elemente: nach ihrer letzten Änderung indiziert und innerhalb von 24 Stunden vor der jüngsten Gather-Zeit derselben Datenbank. Auf einem Rechner, der kurz nach einem Vorfall sichergestellt wurde, hebt das hervor, was sich am letzten Aktivitätstag geändert hat.
Stolperfallen
- Werte sind Momentaufnahmen. Alles außer der Gather-Zeit beschreibt die Datei zum Zeitpunkt der Indizierung. Eine danach geänderte und nie neu indizierte Datei zeigt veraltete Werte.
- Lokalisierung. Anzeigenamen und Typtexte ändern sich mit der Systemsprache. Stattdessen nach
System.ItemType,System.Kindoder Erweiterungen filtern. - Mehrwertige Eigenschaften.
System.Kindund einige andere enthalten mehrere Werte („program; executable“). Ein Parser, der nur den ersten behält, verliert Information. - Fehlend ist nicht null. Eine fehlende Eigenschaft bedeutet, dass kein Handler sie gesetzt hat. Nicht „leer“ und nicht „falsch“.
- Undokumentierte Speicherung. Microsoft dokumentiert die Eigenschaften, nicht die Datenbank. Wie ein Wert in
Windows.edboderWindows.dbkodiert ist, stammt aus öffentlicher Forschung. Im Zweifel die Rohbytes ansehen; deshalb zeigt der Parser jede Roh-Eigenschaft.