Vous êtes sur le site public du Cert-IST
Les Alternate Data Stream (ADS) et les virus

Date :26 Juillet 2005

Publication: Article

Les Alternate Data Stream (ADS) et les virus

Les fichiers dans une partition NTFS (NT FileSystem) sont représentés par une liste d’attributs :

  • nom du fichier,
  • dates,
  • listes des contrôles d’accès,
  • données,
  • ...

qui sont plus ou moins "visibles" par l’utilisateur.

Par exemple les données concernant les dates de création/modification/... ainsi que les permissions d’un fichier ne sont accessibles qu’à partir d’interfaces du système contrairement au contenu du fichier qui l'est directement. Certains de ces attributs ne sont cependant visibles qu’à partir de partitions NTFS.

Le système de fichier NTFS prévoit que de nouveaux attributs puissent être ajoutés. Ainsi, il est possible d’ajouter à un fichier un " flux de données additionnel ". Ce type d’attribut est un Alternate Data Stream (ADS).

Exemple :

Dans un même répertoire :

Prendre un fichier test.txt contenant le texte " donnees du fichier test.txt " (28 octets)

Ajouter des données dans une Alternate Data Stream du fichier test.txt :

Echo " Donnees ADS " > test.txt :flux.txt

Important : A la suite de cette opération, on peut remarquer que la taille du fichier test.txt reste inchangée (28 octets) et que seule la date d’accès a été modifiée.

Le contenu du fichier test.txt est toujours " données du fichier test.txt " (notepad test.txt)

Pour accéder au contenu de l’ADS, il suffit de faire notepad test.txt:flux.txt (les commandes de type " type " ou " edit " ne savent pas traiter les ADS et retournent une erreur).

Des données peuvent être également cachées dans un fichier " invisible ".

Exemple : type flux.txt > :cache.txt. Elles resteront accessibles par notepad :cache.txt.

Ici, l’ADS a été rajouté au répertoire courant.

Remarque : La commande del n’est pas en mesure de supprimer ce type de données (del test.txt:flux.txt ne marche pas).

Sur le même principe, les ADS peuvent être utilisées pour cacher et lancer des fichiers exécutables.

Exemple :

type fic.exe > notepad.exe:fic.exe pour cacher le fichier " fic.exe ".

Cette manipulation ne détériore en rien le fichier "hôte".

start notepad.exe:fic.exe pour l’activer

Cette particularité des systèmes NTFS peut être utilisée par les concepteurs de virus. Ainsi, elle peut servir à cacher des Chevaux de Troie dans des fichiers présumés sains afin de les distribuer massivement sur Internet. Il suffirait alors qu’un "petit" virus, appelant les Chevaux de Troie cachés dans les ADS de ces derniers, se propage pour qu’une multitude de machines soient infectées et passent "sous le contrôle" de tierces personnes, à l'insu des utilisateurs.

La plupart des éditeurs de logiciels d’anti-virus travaillent actuellement sur des mises à jour leurs solutions permettant d’analyser les données situées dans les ADS d’un fichier.

Ce mois-ci, un premier virus s’appuyant sur ces mécanismes a vu le jour : Stream (CERT-IST/AV-2000.210). Il se présente cependant plus comme un modèle expérimental qu’une menace réelle.

Documentation supplémentaire :