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.
Ausgewählte verwandte Inhalte:
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.
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.
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.
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.
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.
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.
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 mehrTeilen auf
Erfahren Sie mehr
Über den Autor
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.
Erfahren Sie mehr zu diesem Thema
Datenschutzgesetze der Bundesstaaten: Unterschiedliche Ansätze zum Datenschutz
Was ist elektronisches Records Management?
Reguläre Ausdrücke für Anfänger: Wie man beginnt, sensible Daten zu entdecken
Externe Freigabe in SharePoint: Tipps für eine kluge Implementierung
Vertrauensstellungen in Active Directory