Magic Quadrant™ für Privileged Access Management 2025: Netwrix zum vierten Jahr in Folge anerkannt. Laden Sie den Bericht herunter.

Plattform
Ressourcen­zentrumBlog
Warum NTFS-Alternate Data Streams eine Sicherheitsanfälligkeit darstellen

Warum NTFS-Alternate Data Streams eine Sicherheitsanfälligkeit darstellen

Dec 16, 2022

Sie sind vielleicht nicht mit NTFS-Dateistreams vertraut, aber Sie verwenden sie täglich, wenn Sie auf Dateien in einem modernen Windows-System zugreifen. Dieser Blogbeitrag erklärt dieses Feature von NTFS ADS, zeigt, wie Hacker die Funktionalität von Dateistreams in Cyberangriffen ausnutzen können und bietet Strategien zur Verteidigung Ihrer Organisation.

Standard-Datenströme und alternative Datenströme

Ein Dateistream ist eine Abfolge von Bytes, die Daten über eine Datei enthält, wie Schlüsselwörter oder die Identität des Benutzers, der die Datei erstellt hat. Stellen Sie sich einen Datenstrom als eine Datei innerhalb einer Datei vor – eine versteckte Datei, die innerhalb einer legitimen existiert. Jeder Stream hat seine eigene Speicherplatz-Zuweisung, seine eigene tatsächliche Größe (genutzte Bytes) und seine eigenen Dateisperren.

Jede Datei in Ihrer NTFS-Dateistruktur hat mindestens einen Datenstrom, ihren Standarddatenstrom. Der default data stream ist der normale, sichtbare Dateiinhalt — zum Beispiel der Text in einer .txt-Datei oder der ausführbare Code in einer .exe-Datei. Diese Informationen werden im $Data-Attribut gespeichert. Da der Name dieses Standardattributs leer ist (auf „“ gesetzt), wird der Standarddatenstrom oft auch als der „unnamed data stream“ bezeichnet.

Dateien können auch einen oder mehrere alternate data streams (ADSs) enthalten. Ein ADS muss benannt werden. Beachten Sie, dass der Standard-Datenstrom mit dem Hinzufügen von alternativen Datenströmen unverändert bleibt.

So erstellen Sie alternative Datenströme

Es ist ziemlich einfach, alternative Datenströme für eine Datei zu erstellen: Fügen Sie einfach einen Doppelpunkt (“:”) an den Dateinamen oder Pfad an, gefolgt vom Namen des Streams. Da der Doppelpunkt ein reserviertes Zeichen ist, das in einem Dateinamen nicht erlaubt ist, kommt es nicht zu Konflikten mit bestehenden Dateinamen.

Sie können einer Datei mehrere ADSs hinzufügen. Zum Beispiel, hier ist, wie wir zwei alternative Datenströme für eine Textdatei erstellen können:

Myfile.txt:stream2

Myfile.txt:secretstuff

Vorteile von NTFS-Dateistreams

Während ältere Windows-Dateisysteme wie FAT16 und FAT32 keine Unterstützung für mehrere Datenströme bieten, ist ADS keine neue Technologie; sie ist seit Windows NT in allen Versionen von Microsofts NTFS-Dateisystem vorhanden.

Schon früh half die Verwendung mehrerer Datenströme dabei, einen Windows-Server auch als Dateiserver für Apple Macintosh-Computer zu nutzen. Mac-Dateien verwenden zwei Ströme pro Datei — einen für Daten und einen für Ressourceninformationen. Da NTFS mehrere Ströme unterstützt, konnte ein Mac-Benutzer Dateien auf einen Windows-Server kopieren und dann wieder zurück auf einen Mac, ohne den Ressourcenstrom zu verlieren. Mit anderen Worten, das ADS konnte Kompatibilität für beide Systeme und deren Anwendungen bieten.

Es gibt auch legitime Gründe, alternative Datenströme innerhalb von Windows zu nutzen. Zum Beispiel verwenden einige Archivierungs- und Backup-Software ADS, um Dateirevisionsinformationen zu speichern, und viele Webbrowser fügen eine Datenstrom zu aus dem Internet heruntergeladenen Dateien hinzu, der Sicherheitsinformationen darüber enthält, woher die Datei stammt.

Die finstere Seite von ADS

Obwohl ADS viele legitime Zwecke hat, können Hacker es für bösartige Zwecke wie Malware-Angriffe missbrauchen. Wie ein geheimes Fach in einem Koffer, das von einem Schmuggler benutzt wird, um Schmuggelware vor einem Inspektor zu verstecken, kann ADS von Bedrohungsakteuren verwendet werden, um bösartigen Code zu verbergen und zukünftige Angriffe auszuführen, während es grundlegende Sicherheitserkennung umgeht. Ein ADS kann jede Art von Datei speichern, einschließlich Audio, Video, Bilder oder bösartigen Code wie Viren, Trojaner und Ransomware. Und weil alternative Datenströme versteckt sind, können Benutzer sie nicht mit Verzeichnislistungsbefehlen erkennen.

Tools zum Arbeiten mit NTFS-Streams

Es gibt einige native Tools, die Sie nutzen können, um mehr Sichtbarkeit in ADS zu erhalten. Dazu gehören:

  • Echo und Mehr
  • Das Sysinternals Streams-Utility
  • Die /R-Option des Dir-Befehls.
  • PowerShell 3.0, das sechs Cmdlets enthält, um Inhalte für ADS direkt zu manipulieren

Echo und Mehr

Beginnen wir mit der Verwendung von Echo und More. Im folgenden Beispiel wird der Echo-Befehl verwendet, um „:secret“ an eine Textdatei namens test.txt anzuhängen, und der More-Befehl wird verwendet, um eine geheime Nachricht zu schreiben, die standardmäßig nicht eingesehen werden kann. Beachten Sie, dass auch der Dir-Befehl den geheimen NTFS-Stream nicht sieht.

Image

Streams

Streams ist ein Befehlszeilen-Tool, das von Sysinternals erhältlich ist. Es wird verwendet, um anzuzeigen, welche Dateien in einem Ordner Streams verwenden, die über die standardmäßigen Datenströme hinausgehen. Der untenstehende Screenshot zeigt, dass die Datei test.txt einen alternativen Stream namens „secret“ hat, der eine Dateigröße von 86 Bytes aufweist. Beachten Sie, dass dies weit mehr als die 26 Bytes sind, die vom Dir-Befehl im vorherigen Beispiel angezeigt wurden.

Image

Dir /R

Die Dir /R-Option ist seit Windows Server 2003 verfügbar. Wie unten gezeigt, erscheint unsere Datei ‘test.txt’ zweimal, wenn die Dir /R-Option verwendet wird. Es wird auch die korrekte Dateigröße für beide, den Standard- und den geheimen Dateistream, angezeigt.

Image

PowerShell

Sie können auch PowerShell verwenden, um die alternativen Datenströme in einer Datei zu identifizieren. Im folgenden Beispiel haben wir den Befehl Get-Item mit der Option Stream und dem Wildcard-Parameter verwendet. Die Ausgabe zeigt beide Datenströme für unsere Datei; der Pfeil hebt die Ansicht des alternativen Streams hervor.

Image

Sie können auch PowerShell verwenden, um einen NTFS-Stream zu löschen. Im untenstehenden Screenshot haben wir den Befehl clear-content verwendet, um die mit dem geheimen Datenstrom verknüpften Daten zu löschen. Wenn man unmittelbar danach den Befehl get-item ausführt, bestätigt sich, dass die Daten im Stream gelöscht wurden, da die Dateigröße nun null ist.

Image

Wir können sogar noch einen Schritt weiter gehen und den Stream komplett löschen, indem wir den Befehl remove-item verwenden, wie unten gezeigt. Der Befehl get-item bestätigt, dass der Stream gelöscht wurde.

Image

Wie man sich gegen die ADS-Bedrohung verteidigt

Angreifer können und nutzen ADS, um bösartigen Inhalt, einschließlich Ransomware und anderer Malware, in Ihrer hierarchischen Dateistruktur zu verstecken. Leider geben der Windows-Datei-Explorer, der Dir-Befehl und verwandte Werkzeuge nur Informationen über den Standarddatenstrom einer Datei aus. Die Wahrheit ist, dass eine einfache .txt-Datei oder ein Word-Dokument, das 1k Daten meldet, tatsächlich Megabytes an versteckten Daten oder ausführbaren Code in einem ADS enthalten könnte.

Dementsprechend müssen Sie beim Aufbau Ihrer Sicherheitsmanagementstrategie die Sichtbarkeit in ADS verbessern. Insbesondere sollten Sie in Antivirenprodukte, Datenentdeckungstools und Datenexfiltrationsdetektoren investieren, die das Vorhandensein von alternativen Datenströmen erkennen und auf nicht autorisierte Inhalte scannen können, damit Sie diese proaktiv entfernen können. Schließlich ist die Prävention von Vorfällen immer besser als die Reaktion auf Vorfälle.

Best Practices für das Management von NTFS-Berechtigungen

Erfahren Sie mehr



Teilen auf

Erfahren Sie mehr

Über den Autor

Asset Not Found

Joe Dibley

Sicherheitsforscher

Security Researcher bei Netwrix und Mitglied des Netwrix Security Research Teams. Joe ist ein Experte für Active Directory, Windows und eine Vielzahl von Unternehmenssoftwareplattformen und -technologien. Joe erforscht neue Sicherheitsrisiken, komplexe Angriffstechniken sowie zugehörige Milderungs- und Erkennungsmaßnahmen.