Pour comprendre les ADS, les analystes doivent se pencher sur la gestion des données par le New Technology File System (NTFS). Chaque fichier sur un volume NTFS est constitué d’un ensemble d’attributs stockés au sein d’un enregistrement de la Master File Table (MFT).
Le contenu réel d’un fichier est stocké dans l’attribut $DATA. Un fichier standard possède un attribut $DATA unique et non nommé. Cependant, NTFS autorise un seul fichier à posséder plusieurs attributs $DATA nommés. Ce sont les flux de données alternatifs.
Un ADS est accessible en ajoutant deux-points (:) au nom du fichier principal :
NomFichier.extension:NomFlux.extension:$DATA
Par exemple, si un attaquant cache une charge utile nommée malware.exe à l’intérieur d’un fichier texte bénin nommé readme.txt, le flux résultant est adressé ainsi :
readme.txt:malware.exe
Point crucial : l’ajout d’un exécutable de 50 Mo à l’ADS d’un fichier texte de 1 Ko ne modifiera pas la taille de fichier signalée pour le fichier texte dans l’Explorateur Windows ou via les commandes dir standard, rendant la charge utile totalement invisible pour un observateur non averti.
2. Utilisation légitime : le Zone.Identifier (MoTW)
Avant de chasser les malwares, les analystes DFIR doivent comprendre l’utilisation légitime la plus critique des ADS : le Mark of the Web (MoTW).
Lorsqu’un utilisateur télécharge un fichier depuis Internet via un navigateur web ou un client de messagerie, Windows crée automatiquement un ADS nommé Zone.Identifier. Ce flux contient des métadonnées indiquant la zone d’origine du fichier (ex: Internet, Intranet).
Valeur forensique du MoTW
Lors de l’analyse d’un email suspect ou d’une investigation de phishing, la lecture du flux Zone.Identifier d’une charge utile téléchargée révèle l’URL exacte depuis laquelle le fichier a été téléchargé (le champ HostUrl). Cela fournit des indicateurs de compromission (IOCs) immédiats et de haute fidélité pour le Threat Hunting.
Les acteurs de la menace exploitent les ADS à travers de multiples phases de la chaîne d’attaque (kill chain) : préparation des charges utiles (staging), établissement de la persistance, et évasion de la détection.
Les adversaires utilisent souvent des commandes Windows natives pour rediriger (pipe) des binaires ou des scripts malveillants dans les ADS de fichiers système légitimes ou de documents banals.
Fenêtre de terminal
# Dissimulation d'un exécutable malveillant dans un fichier texte standard
type evil.exe> C:\Users\Public\readme.txt:hidden.exe
Écrire dans un ADS est trivial ; exécuter à partir de celui-ci nécessite des techniques spécifiques “Living off the Land” (LOLBAS). Les versions modernes de Windows restreignant l’exécution directe d’un .exe depuis un ADS via la ligne de commande, les attaquants emploient des méthodes d’exécution indirectes.
Exécution WMI : utiliser Windows Management Instrumentation pour lancer l’exécutable caché.
wmic process call create "C:\Users\Public\readme.txt:hidden.exe"
Exécution Rundll32 : si la charge utile cachée est une DLL, elle peut être exécutée via l’utilitaire natif rundll32.exe.
rundll32.exe C:\Users\Public\readme.txt:hidden.dll,EntryPoint
Exécution de script : cacher du code PowerShell ou VBScript à l’intérieur d’un ADS et l’exécuter via Get-Content ou wscript.
Les charges utiles ADS étant invisibles pour les vérifications standard de dir ou de l’Explorateur Windows, les analystes doivent utiliser des utilitaires spécifiques lors de la réponse en direct (live response) ou du parsing hors ligne de la MFT.
Invite de commande : l’indicateur /R ordonne à la commande dir d’afficher les flux de données alternatifs.
dir /R C:\Users\Public\
PowerShell : les applets de commande natives peuvent interroger et lire les flux directement.
Get-Item -Path C:\Users\Public\readme.txt -Stream *Get-Content -Path C:\Users\Public\readme.txt -Stream hidden.exe
Lors de l’analyse d’une image forensique, les analystes parsent le fichier $MFT. Des outils comme MFTECmd d’Eric Zimmerman listeront explicitement les fichiers contenant des attributs $DATA nommés, permettant aux analystes d’extraire la charge utile cachée directement de l’image brute du disque, sans se soucier des restrictions de l’OS.
La détection de l’abus des ADS nécessite une télémétrie granulaire des terminaux. Les journaux d’événements Windows natifs étant insuffisants, les organisations doivent s’appuyer sur des solutions Sysmon ou EDR.
L’événement Sysmon 15 est spécifiquement conçu pour consigner la création de flux de fichiers nommés. Il enregistre le fichier cible, le nom du flux et, fait crucial, le hash cryptographique du contenu du flux, permettant une corrélation immédiate des IOCs.
Désactiver les flux de données alternatifs est impossible, car il s’agit d’un composant architectural fondamental du système de fichiers NTFS, requis par des services Windows légitimes. L’atténuation repose entièrement sur une stricte prévention de l’exécution (bloquer l’exécution à partir de chemins non autorisés via WDAC/AppLocker) et une solide surveillance comportementale (EDR/Sysmon) pour détecter la création et l’exécution de flux anormaux.