Null ist nicht immer 0

Die Trennung von Struktur und Inhalt ist zusammen mit dem Substitutions-Mechanismus eines der grundlegenden Konzepte des Ereignisprotokolls. In die Beschreibung der XML-Struktur sind Platzhalter eingebettet, die mit Werten aus dem SubstitutionArray, einer Tabelle am Ende des jeweiligen Protokolleintrags, gefüllt werden. Wann immer ein Eintrag in dieser Tabelle dem "Wert" NullType enthält, wird in der XML-Struktur der zugehörige Platzhalter mitsamt des ihn umgebenden XML-Elements unterdrückt. Die mit NullTypes gefüllten Einträge der Tabelle enthalten sonst keine weiteren Daten. Jedenfalls nahm ich das an, bis ich mich kürzlich überraschen lassen musste.

Die folgende Abbildung zeigt einen Ausschnitt aus einem typischen SubstitutionArray. Die Daten wurden zur besseren Lesbarkeit mit dem Template für den 010 Editor interpretiert.

Common substitution array with an empty slot.

In diesem Beispiel enthält der obere Eintrag 12 Bytes an Daten, die entsprechend dem Inhalt des Feldes "Type" als Security Identifier (SID) interpretiert werden sollen. Der nachfolgende Eintrag, Nr. 13, soll hingegen als NullType interpretiert werden. Dieser Eintrag enthält auch keine weiteren Daten.

Genau das habe ich in unzähligen Protokolleinträgen gesehen. Eines Tages aber schickte mir Roberto De Vivo eine Protokolldatei, die meinen Parser abstürzen ließ. Mehrere SubstitutionArrays in seiner Datei sahen in etwa so aus, wie es die folgende Abbildung zeigt:

Dieser NullType enthält Daten.

Die Länge ist eindeutig von 0 verschieden und der Tabelleneintrag enthält Daten. Ich konnte in der Datei weitere NullType-Objekte finden; manche von ihnen enthalten bis zu16 Bytes an Daten.

Zunächst vermutete ich, dass ich ein grundlegend falsches Verständnis des NullType-Objektes entwickelt hatte. Also wandelte ich mit Microsofts eigener Ereignisprotokollanzeige die betreffenden Datensätzte in XML um. In diesem Klartext konnte ich die fraglichen Daten jedoch nicht finden.

Weitere Untersuchungen sind notwendig, um die Ursache für diese Daten zu finden, und ob sie in einer forensischen Analyse von Wert sind.

Archiv

Impressum

Dieses Blog ist ein Projekt von:
Andreas Schuster
Im Äuelchen 45
D-53177 Bonn
impressum@forensikblog.de

Copyright © 2005-2012 by
Andreas Schuster
Alle Rechte vorbehalten.
Powered by Movable Type 5.12