asbSTREAMlist, Analyse von Streams in NTFS Objekten
Was sind Streams?
Windows NT/ 2000/ XP und W2k sowie weitere
Systeme können mit dem NTFS Filesystem umgehen. NTFS
ist das derzeit bekannteste Filesystem-Format,
welches Streams unterstützt. Streams (zu deutsch
auch als Datenstrom übersetzbar) ist die Eigenschaft
einer Datei oder eines Objektes Inhalte in
verschiedene Fächer abzulegen. Im Normalfall
verwenden Programme nur den "Standardstream". Aber
auch in sonstigen, mit einem Namen kennzeichneten
Stream können in einer Datei verschiedene Inhalte
gespeichert werden. Programme nutzen Streams nur
unzureichend, überhaupt nicht, oder können auch das
Vorhandensein von Streams nicht erkennen. Streams
werden von verschiedenen Programmen zu Speicherung
von "systemeigenen" Informationen (MS Office) oder
aber auch zu Speicherung überflüssiger und
gefährlichen Informationen (Viren) verwendet).
Multiple-Data-Streams stellen dabei eine Form
anwendbarer Streamformate dar und tragen die
Besonderheit, dass diese nur sehr schwer erkennbar
sind. Die meisten am Markt befindlichen
Softwarepakete können genau die multiplen Streams
nicht erkennen.
Fragen und Antworten zu Streams
Wie erkannt man nun im Normalfall ein Stream?
Antwort schwer oder gar nicht;
Wie merkt man, dass im Filesystem Streams
vorhanden sind ?
Antwort an der Differenz aller Daten auf der
festplatte zum Gesamtvolumen. Stream-behaftete
Dateien, werden auch unter W2K nur in der Größe des
Standard-Streams sichtbar.
Wie löscht man ein Stream aus einer Datei, wenn
man den Verdacht hat, diese enthält einen Stream?
Antwort man kopiert die Datei auf z.B. eine FAT
Struktur-Medium, die keine Streams darstellen kann,
dabei wird nur der "Standardstream" kopiert und der
Rest ignoriert.
Warum können Stream so gefährlich sein? Antwort: In Streams können ausführbarer
Programmcode und ganze Softwaremodule versteckt
werden.
Kleines Beispiel für Streams
Wie kann man einen Stream testweise erzeugen?
Antwort: Es gibt nur wenige Konsolenprogramme die
Streams unterstützen:
- Erzeugen Sie mit CMD> NOTEPAD T.TXT mit
beliebigen Inhalt.
- Listen Sie die Datei aus und merken sich die
Dateigröße.
- Editieren Sie nun CMD>NOTEPAD T.TXT:name (name =
beliebiger Name)
und füllen die Datei mit Inhalt.
- Listen Sie nunmehr wieder T.TXT aus und
vergleichen die Dateigröße.
- Vergleichen Sie nochmals die Inhalte,...
=> Die Datei T.TXT enthält nun "wesentlich mehr Inhalt" als vom System
angezeigt.
Das obige Beispiel soll die Gefährlichkeit von
Streams demonstrieren.
Es ist beispielsweise möglich in eine Datei mit
einem Byte im Standardstrom und einigen hundert
Megabyte in einem oder mehreren Streams anzulegen.
Der Explorer bzw. der Befehl „dir“ zeigt für diese
Datei eine Größe von einem Byte an ! Dadurch ist
es realisierbar beliebige Mengen an Daten in
Multiple-Data-Streams zu verbergen.
Der Verwendung Befehl "MORE" ist eine weitere
Möglichkeit den Inhalt eines Streams zu
betrachten. Dazu muss man jedoch den Namen des
Streams kennen.
Aufbau eines NTFS Objektes
Die Lösung: asbStreamlist:
asbSTREAMlist ermöglicht die Eingabe die Suche
nach Streams jeglicher Art in NTFS Objekten und
listet die Ergebnisse auf.
Weitere Informationen zu NTFS Streams finden Sie
auch in einschlägigen Medien sowie Microsoft
Dokumenten (Unterlagen).