Der folgende Blog-Beitrag stellt das Konzept des Alternate Data Stream vor und zeigt, wie es in der Vergangenheit und heute in der freien Wildbahn eingesetzt wird: als Technik, um eine bösartige Nutzlast im Dateisystem zu verstecken. Obwohl es sich um eine alte Technik handelt, ist sie auch heute noch relevant und weit verbreitet.
Was ist ein Alternate Data Stream?
Alternate Data Stream (ADS) ist die Fähigkeit eines NTFS-Dateisystems (das wichtigste Dateisystemformat in Windows), verschiedene Datenströme zu speichern, zusätzlich zu dem Standardstrom, der normalerweise für eine Datei verwendet wird. Als diese Funktion geschaffen wurde, bestand ihr Hauptzweck darin, das hierarchische Dateisystem (HFS) von macOS zu unterstützen.
Das NTFS-Dateisystem enthält Dateien mit Attributen. Das für unseren Anwendungsbereich relevante Attribut ist das $DATA-Attribut, das zum Speichern der Datenströme einer Datei verwendet wird.
In der Vergangenheit war es üblich, eine bösartige Nutzlast innerhalb eines ADS einer legitimen Datei zu speichern. Doch heute erkennen und scannen viele Sicherheitslösungen ADSs‘. In diesem Beitrag zeigen wir Ihnen jedoch, dass ein ADS immer noch zum Ausführen von Nutzdaten verwendet werden kann, während er vor dem Benutzer und verschiedenen Sicherheitsprodukten verborgen bleibt.
Um die in diesem Artikel vorgestellten Konzepte zu vereinfachen, basieren alle Beispiele auf nativen Tools in Windows.
Wie ADS verwendet werden
In den guten alten Zeiten von Windows Vista war Alternate Data Streams (ADS) eine gängige Methode für Malware-Entwickler, um ihren bösartigen Code zu verstecken. Ein alternativer Datenstrom wurde effektiv genutzt, um das Vorhandensein bösartiger schädlicher Dateien zu verschleiern, indem er in eine legitime Datei gequetscht wurde. Indem Malware in den alternativen Datenstrom eingefügt wurde, enthielt die Windows-Datei Informationen und Anweisungen für die legitimen Dateien, aber auch für die bösartige Datei. Um den bösartigen Code auszuführen, den der Hacker im alternativen Datenstrom hinterlegt hat, müsste er mit dem Befehl mklink einen Symlink erstellen. Dazu sind jedoch administrative Rechte auf dem Rechner erforderlich. Da das normale Verhalten eines Benutzers es nicht erfordert, als Administrator zu arbeiten, neigen Hacker dazu, sich ihren Zielen in der Annahme zu nähern, dass sie auf einem Rechner ohne Administratorrechte landen.
Aufzählung – Der Hauptstrom unter $DATA ist die leere Zeichenkette (also: „“, auch der unbenannte Strom genannt). Dieser Stream wird verwendet, um den regulären Stream einer Datei zu enthalten.
Nachfolgend ein Beispiel für die Aufzählung der Datenströme einer Datei mit PowerShell:
Sie können auch dir /R oder SysInternals\streams.exe verwenden, um einen ADS einer Datei / rekursiv auf ein Verzeichnis aufzuzählen
Wie Sie oben sehen können, enthält die Datei nur den unbenannten Stream.
Manchmal kann man jedoch einen ADS in einer legitimen Datei finden, da es mehrere legitime Verwendungen für diese Technik gibt.
Nachfolgend ein Beispiel für die Aufzählung von Datenströmen einer Datei mit einem ADS mit PowerShell:
Dies ist auch ein Beispiel für eine legitime Verwendung von ADS: der Zone. Identifier. Dieses Feld zeigt die Vertrauensstufe der Dateiquelle an. Dies ist eine Verwendung des Browsers, um das „Quarantäne-Bit“ zu speichern.
Erstellung – Während es legitime Verwendungszwecke für ADS geben kann, kann ADS auch verwendet werden, um eine bösartige Nutzlast zu speichern. Angreifer könnten diese Methode dem Speichern der Nutzlast im unbenannten Stream vorziehen, da ihr Vorhandensein dem Benutzer verborgen bleibt – sie ist nicht über explorer.exe zugänglich (und die angezeigte Größe einer Datei enthält nicht die Größe von ADS). Außerdem wird er standardmäßig nicht mit dem „dir“-Befehl angezeigt (mit dem Flag /R wird der ADS jedoch angezeigt und wird ab Windows Vista angewendet).
Das Erstellen eines ADS ist recht einfach.
Ein Beispiel für das Erstellen eines ADS mit dem Befehl type:
Bis Windows XP war es möglich, einen ADS mit dem Befehl start zu starten. Seit neueren Windows-Versionen ist dies jedoch nicht mehr möglich.
Datenzugriff – Der Missbrauch von ADS ist immer noch eine relevante Bedrohung, da es mehrere Möglichkeiten gibt, einen ADS zu lesen und auszuführen.
Die erste Möglichkeit ist der Zugriff auf die Daten. Auf den Inhalt der ADS kann leicht zugegriffen werden. Hier ein Beispiel mit PowerShell:
Ausführung – Neben dem Lesen der Daten ist auch die Ausführung möglich. Obwohl es nicht möglich ist, einen ADS mit dem Befehl „start“ auszuführen, kann er dennoch von anderen Programmen aus ausgeführt werden. Zum Beispiel mit WMI:
„wmic process call creates“ – führt einen Prozess mit WMI aus. Es kann auch ein ADS ausgeführt werden. Beispiel:
Es gibt weitere legitime native Tools von Windows, die verwendet werden können, um einen ADS direkt auszuführen. Beispielsweise kann eine DLL in einem ADS gespeichert und von DllMain über rundll32.exe aufgerufen werden; ebenso kann ein HTA in einem ADS gespeichert und über mshta.exe aufgerufen werden usw.
Bösartige Kampagnen, die ADS missbrauchen
Es mag den Anschein haben, dass Windows es geschafft hat, mit den Bedrohungen fertig zu werden, die sich in ADS befinden. Es gibt jedoch viele Malware-Familien in freier Wildbahn, die ADS immer noch missbrauchen.
Ein weiteres Beispiel aus dem Jahr 2017 ist BitPaymer, eine Ransomware, die zwei ADS in der Angriffssequenz verwendete, um die Aktionen zu tarnen und bösartige Aktivitäten zu verbergen. Der erste ADS wurde erstellt, um den Befehl „net view“ auszuführen, um Netzwerkfreigaben zu erhalten, dann verschlüsselt der zweite ADS die Daten auf der Festplatte und den Netzwerkfreigaben.
Abschließend lässt sich sagen, dass der Missbrauch von ADS eine Technik ist, die auch heute noch relevant ist. In der Tat haben neuere Windows-Versionen die Funktionalität von ADS eingeschränkt und gehärtet. Allerdings können Bedrohungsakteure mit grundlegenden Kenntnissen der nativen Windows-Tools wie Power-Shell und WMI oder mit einer gewissen Kenntnis der Windows-Befehlszeile ADS weiterhin für ihre Angriffe nutzen. Interessanterweise gelten die jüngsten Kampagnen, die ADS verwenden, als ziemlich ausgeklügelt und neigen dazu, die Verwendung von dauerhaften Dateien auf der Festplatte zu minimieren.