Le billet de blog suivant présente le concept d’Alternate Data Stream et comment il a été utilisé dans la nature, dans le passé comme de nos jours : comme une technique utilisée pour cacher une charge utile malveillante dans le système de fichiers. Bien qu’elle puisse être considérée comme une technique ancienne, elle est toujours pertinente aujourd’hui et courante dans la nature.
Qu’est-ce qu’un Alternate Data Stream ?
L’Alternate Data Stream (ADS) est la capacité d’un système de fichiers NTFS (le principal format de système de fichiers de Windows) à stocker différents flux de données, en plus du flux par défaut qui est normalement utilisé pour un fichier. Lorsque cette fonctionnalité a été créée, son objectif principal était de fournir un support au système de fichiers hiérarchique (HFS) de macOS.
Le système de fichiers NTFS contient des fichiers avec des attributs. L’attribut pertinent pour notre champ d’application est l’attribut $DATA, qui est utilisé pour stocker les flux de données d’un fichier.
Par le passé, il était courant de stocker une charge utile malveillante dans un ADS d’un fichier légitime. Mais aujourd’hui, de nombreuses solutions de sécurité détectent et analysent les « ADS ». Cependant, nous allons vous montrer dans ce post, qu’un ADS peut toujours être utilisé pour exécuter des charges utiles tout en étant caché de l’utilisateur ainsi que de divers produits de sécurité.
Pour simplifier les concepts qui sont présentés dans cet article, tous les exemples sont basés sur des outils natifs de Windows.
Comment utiliser les ADS
Au bon vieux temps de Windows Vista, les flux de données alternatifs (ADS) étaient une méthode courante pour les développeurs de logiciels malveillants pour cacher leur code malveillant. Un flux de données alternatif était utilisé efficacement pour sa présence de fichiers corrompus malveillants, en le comprimant à l’intérieur d’un fichier légitime. En plaçant le malware dans l’Alternate Data Stream, le fichier Windows contiendrait des informations et des instructions pour les fichiers légitimes, mais aussi pour le fichier malveillant. Afin d’exécuter le code malveillant que le pirate a déposé dans le flux de données alternatif, il doit créer un lien symbolique à l’aide de la commande mklink. Mais pour ce faire, il doit disposer de droits d’administration sur la machine. Considérant que le comportement normal d’un utilisateur ne nécessite pas de fonctionner en tant qu’administrateur, les pirates ont tendance à aborder leurs cibles en supposant qu’ils atterrissent sur une boîte sans aucun droit d’administration.
Enumération – Le flux principal sous $DATA est la chaîne vide (donc : « », également appelé le flux sans nom). Ce flux est utilisé pour contenir le flux régulier d’un fichier.
Voici un exemple d’énumération des flux de données d’un fichier avec PowerShell:
Vous pouvez également utiliser dir /R, ou SysInternals\streams.exe pour énumérer un SDA d’un fichier / de manière récursive sur un répertoire
Comme vous pouvez le voir ci-dessus, le fichier ne contient que le flux non nommé.
Cependant, vous pouvez parfois trouver un ADS dans un fichier légitime, car il existe plusieurs utilisations légitimes de cette technique.
Vous trouverez ci-dessous un exemple d’énumération des flux de données d’un fichier avec un ADS avec PowerShell:
C’est également un exemple d’utilisation légitime de l’ADS : la zone. Identifiant . Ce champ présente le niveau de confiance de la source du fichier. C’est un usage des navigateurs pour stocker le Son macOS correspondant est le « bit de quarantaine ».
Création – Bien qu’il puisse y avoir des utilisations légitimes de l’ADS, l’ADS peut également être utilisé pour stocker une charge utile malveillante. Les attaquants pourraient préférer cette méthode à l’enregistrement de la charge utile dans le flux sans nom, car sa présence sera cachée à l’utilisateur – elle n’est pas accessible depuis explorer.exe (et la taille affichée d’un fichier n’inclut pas celle d’ADS). En outre, il n’est pas affiché par défaut avec la commande « dir » (cependant, le drapeau /R affiche l’ADS, et est appliqué à partir de Windows Vista).
Créer un ADS est assez simple.
Un exemple de création d’un ADS avec la commande type:
Jusqu’à Windows XP, il était possible d’exécuter un ADS avec la commande start. Cependant, depuis les versions ultérieures de Windows, ce n’est plus possible.
Accès aux données – L’utilisation abusive des SDA est toujours une menace pertinente, car il existe plusieurs façons de lire et d’exécuter un SDA.
La première utilisation est l’accès aux données. Il est possible d’accéder facilement au contenu de l’ADS. Voici un exemple avec PowerShell:
Exécution – En plus de la lecture des données, il est également possible de les exécuter. Bien qu’il ne soit pas possible d’exécuter un ADS avec la commande « start », il peut toujours être exécuté à partir d’autres programmes. Par exemple, avec WMI:
« wmic process call creates » – exécute un processus avec WMI. Elle peut également exécuter un ADS. Exemple:
Il existe d’autres outils natifs légitimes de Windows qui peuvent être utilisés pour exécuter directement un ADS. Par exemple, une DLL peut être sauvegardée à l’intérieur d’un ADS et appelée par DllMain via rundll32.exe ; de même, une HTA peut être sauvegardée à l’intérieur d’un ADS et appelée via mshta.exe ; et ainsi de suite.
Campagnes malveillantes abusant de l’ADS
Il peut sembler que Windows ait réussi à gérer les menaces qui résident dans l’ADS. Cependant, il existe de nombreuses familles de logiciels malveillants dans la nature qui abusent encore des ADS.
Un autre exemple de 2017 est BitPaymer, ransomware qui a utilisé deux ADS dans la séquence d’attaque, afin d’ajouter de la furtivité aux actions et de cacher l’activité malveillante. Le premier ADS a été créé afin d’exécuter la commande « net view » pour obtenir les partages réseau, puis le second ADS brouille les données sur le disque et les partages réseau.
Pour conclure, l’abus d’ADS est une technique toujours d’actualité. En effet, les versions récentes de Windows ont limité et durci les fonctionnalités de l’ADS. Cependant, une maîtrise de base des outils natifs de Windows, tels que Power-Shell et WMI, ou une certaine connaissance de la ligne de commande Windows permet aux acteurs de la menace de continuer à utiliser ADS dans leurs attaques. Il est intéressant de noter que les récentes campagnes utilisant ADS sont considérées comme plutôt sophistiquées et ont tendance à minimiser l’utilisation de fichiers persistants sur le disque.