Aller au contenu

Analyse d'Artefact : Flux de Données Alternatifs NTFS (ADS)

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)

Section intitulée « 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.

  1. Exécution WMI : utiliser Windows Management Instrumentation pour lancer l’exécutable caché. wmic process call create "C:\Users\Public\readme.txt:hidden.exe"
  2. 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
  3. 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.

hunt_ads_creation.kql
// Détecte la création de flux exécutables attachés à des fichiers
DeviceEvents
| where ActionType == "SysmonFileCreateStreamHash"
// Filtrer la création légitime de Zone.Identifier
| where TargetFileName !endswith ":Zone.Identifier"
| where TargetFileName !endswith ":SmartScreen"
// Rechercher des flux avec des extensions exécutables
| where TargetFileName contains ".exe" or TargetFileName contains ".dll" or TargetFileName contains ".vbs" or TargetFileName contains ".ps1"
| project TimeGenerated, DeviceName, InitiatingProcessFileName, TargetFileName, SHA256
| sort by TimeGenerated desc

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.