Pourquoi les flux de données alternatifs NTFS représentent une vulnérabilité de sécurité
Dec 16, 2022
Vous n'êtes peut-être pas familier avec les flux de fichiers NTFS, mais vous les utilisez tous les jours lorsque vous accédez à des fichiers sur tout système Windows moderne. Ce billet de blog explique cette fonctionnalité des ADS NTFS, montre comment les pirates peuvent exploiter la fonctionnalité des flux de fichiers dans des cyberattaques et propose des stratégies pour défendre votre organisation.
Contenu connexe sélectionné :
Flux de données par défaut et flux de données alternatifs
Un flux de fichier est une séquence d'octets qui contient des données sur un fichier, telles que des mots-clés ou l'identité de l'utilisateur qui a créé le fichier. Pensez à un flux de données comme à un fichier dans un fichier — un fichier caché résidant dans un fichier légitime. Chaque flux a sa propre allocation d'espace disque, sa propre taille réelle (octets utilisés) et ses propres verrous de fichier.
Chaque fichier dans votre structure de fichiers NTFS possède au moins un flux, son flux par défaut. Le flux de données par défaut est le contenu de fichier normal et visible — par exemple, le texte dans un fichier .txt ou le code exécutable dans un fichier .exe. Ces informations sont stockées dans l'attribut $Data. Comme le nom de cet attribut par défaut est vide (défini sur “”), le flux de données par défaut est également souvent appelé le “flux de données sans nom”.
Les fichiers peuvent également contenir un ou plusieurs flux de données alternatifs (ADSs). Un ADS doit être nommé. Notez que le flux de données par défaut reste inchangé avec l'ajout de flux de données alternatifs.
Comment créer des flux de données alternatifs
Il est assez facile de créer des flux de données alternatifs pour un fichier : il suffit d'ajouter deux-points (“:”) au nom ou au chemin du fichier, suivi du nom du flux. Puisque les deux-points sont un caractère réservé non autorisé dans un nom de fichier, cela ne crée pas de conflit avec les noms de fichiers existants.
Vous pouvez ajouter plusieurs ADS à un fichier. Par exemple, voici comment nous pouvons créer deux flux de données alternatifs pour un fichier texte :
Myfile.txt:stream2
Myfile.txt:secretstuff
Avantages des flux de fichiers NTFS
Alors que les anciens systèmes de fichiers Windows tels que FAT16 et FAT32 ne prennent pas en charge plusieurs flux de données, ADS n'est pas une nouvelle technologie ; elle est présente dans toutes les versions du système de fichiers NTFS de Microsoft depuis Windows NT.
Dès le début, l'utilisation de multiples flux de données a permis à un serveur Windows de faire également office de serveur de fichiers pour les ordinateurs Apple Macintosh. Les fichiers Mac utilisent deux flux par fichier — un pour les données et un pour les informations de ressource. Avec le support de multiples flux par NTFS, un utilisateur Mac pouvait copier des fichiers vers un serveur Windows puis les retransférer vers un Mac sans perdre le flux de ressource. En d'autres termes, le ADS était capable d'assurer la compatibilité pour les deux systèmes et leurs applications.
Il existe également des raisons légitimes d'utiliser des flux de données alternatifs dans Windows. Par exemple, certains logiciels de gestion d'archives et de sauvegarde utilisent les ADS pour stocker des informations de révision de fichiers, et de nombreux navigateurs web ajoutent un flux aux fichiers téléchargés depuis internet qui comprend des informations de sécurité sur la provenance du fichier.
Le côté sinistre des ADS
Bien que les ADS aient de nombreux usages légitimes, les pirates peuvent les détourner à des fins malveillantes telles que des attaques par logiciels malveillants. Comme un compartiment secret à l'intérieur d'une valise utilisé par un contrebandier pour cacher des marchandises interdites à un inspecteur, les ADS peuvent être utilisés par des acteurs de menaces pour dissimuler du code malveillant et exécuter des attaques futures tout en contournant la détection de sécurité de base. Un ADS peut stocker tout type de fichier, y compris audio, vidéo, images ou code malveillant tel que des virus, des chevaux de Troie et des rançongiciels. Et parce que les flux de données alternatifs sont cachés, les utilisateurs ne peuvent pas les détecter en utilisant des commandes de listage de répertoires.
Outils pour travailler avec les flux NTFS
Il existe quelques outils natifs que vous pouvez utiliser pour obtenir plus de visibilité dans ADS. Ceux-ci incluent :
- Écho et plus
- L'utilitaire Sysinternals Streams
- L'option /R de la commande Dir.
- PowerShell 3.0, qui comprend six cmdlets pour manipuler directement le contenu pour ADS
Echo and More
Commençons par utiliser Echo et More. Dans l'exemple ci-dessous, la commande Echo est utilisée pour ajouter « :secret » à un fichier texte appelé test.txt, et la commande More est utilisée pour écrire un message secret qui ne peut pas être vu par défaut. Remarquez que la commande Dir ne voit pas non plus le flux NTFS secret.
Flux
Streams est un outil en ligne de commande disponible depuis Sysinternals. Il est utilisé pour montrer quels fichiers dans un dossier utilisent des flux au-delà des flux de données par défaut. La capture d'écran ci-dessous montre que le fichier test.txt possède un flux alternatif nommé « secret » qui a une taille de fichier de 86 octets. Notez que c'est bien plus que les 26 octets indiqués par la commande Dir dans l'exemple précédent.
Dir /R
L'option Dir /R est disponible depuis Windows Server 2003. Comme illustré ci-dessous, notre fichier ‘test.txt’ apparaît deux fois lors de l'utilisation de l'option Dir /R. Elle affiche également la taille correcte du fichier pour les flux de fichiers par défaut et secrets.
PowerShell
Vous pouvez également utiliser PowerShell pour identifier les flux de données alternatifs dans un fichier. Dans l'exemple ci-dessous, nous avons utilisé la commande Get-Item avec l'option Stream et le paramètre joker. La sortie montre les deux flux pour notre fichier ; la flèche met en évidence la vue du flux alternatif.
Vous pouvez également utiliser PowerShell pour effacer un flux NTFS. Dans la capture d'écran ci-dessous, nous avons utilisé la commande clear-content pour supprimer les données associées au flux de données secret. L'exécution de la commande get-item immédiatement après confirme que les données dans le flux ont été supprimées, puisque la taille du fichier est maintenant de zéro.
Nous pouvons même faire mieux et supprimer complètement le flux en utilisant la commande remove-item, comme indiqué ci-dessous. La commande get-item confirme que le flux a été supprimé.
Comment se défendre contre la menace ADS
Les adversaires peuvent et utilisent effectivement les ADS pour dissimuler du contenu malveillant, y compris des rançongiciels et autres logiciels malveillants, dans votre structure de fichiers hiérarchique. Malheureusement, l'Explorateur de fichiers Windows, la commande Dir et les outils associés ne fournissent des informations que sur le flux de données par défaut d'un fichier. La vérité est qu'un simple fichier .txt ou document Word indiquant 1k de données pourrait en réalité contenir des mégaoctets de données cachées ou de code exécutable dans un ADS.
En conséquence, lors de l'élaboration de votre stratégie de gestion de la sécurité, vous devez améliorer la visibilité dans les ADS. En particulier, envisagez d'investir dans des produits antivirus, des outils de découverte de données et des détecteurs d'exfiltration de données qui peuvent détecter l'existence de flux de données alternatifs et scanner le contenu non autorisé afin que vous puissiez le supprimer de manière proactive. Après tout, la prévention des incidents est toujours préférable à la réponse aux incidents.
Meilleures pratiques de gestion des autorisations NTFS
En savoir plusPartager sur
En savoir plus
À propos de l'auteur
Joe Dibley
Chercheur en sécurité
Chercheur en sécurité chez Netwrix et membre de l'équipe de recherche en sécurité de Netwrix. Joe est un expert en Active Directory, Windows et une grande variété de plateformes logicielles d'entreprise et de technologies, Joe étudie les nouveaux risques de sécurité, les techniques d'attaque complexes, ainsi que les atténuations et détections associées.
En savoir plus sur ce sujet
Lois sur la confidentialité des données par État : Différentes approches de la protection de la vie privée
Qu'est-ce que la gestion des documents électroniques ?
Expressions régulières pour débutants : Comment commencer à découvrir des données sensibles
Partage externe dans SharePoint : Conseils pour une mise en œuvre judicieuse
Confiances dans Active Directory