web-dev-qa-db-fra.com

Pourquoi le diable autorise-t-il NTFS autoriser des exécutables invisibles?

Vous pouvez masquer n'importe quel fichier à l'intérieur d'un autre fichier simplement en tapant:

type sol.exe > container.txt:sol.exe

et pour exécuter le fichier caché de fichier, utilisez simplement:

start c:\hide\container.txt:sol.exe

Mais la partie folle à ce sujet est qu'elle n'augmente pas la taille du fichier (il est donc totalement caché).

Et si vous supprimez le fichier avec les trucs cachés à l'intérieur, les trucs cachés ne sont pas supprimés. Il suffit d'utiliser:

more <  container.txt:sol.exe > sol.exe

Pourquoi les NTFS permettent-il cela? Cela semble être le meilleur moyen de cacher un virus.

104
Kredns

Il y a deux côtés à cette question. Le premier est pourquoi cette fonctionnalité existe-t-il du tout et le second est pourquoi l'interface graphique (ou l'invite de commande) ne permet pas de voir et de gérer la fonctionnalité.

Il existe parce que c'est utile. Plusieurs autres plates-formes prennent en charge plusieurs flux de données par fichier. Sur le Mac, ils ont été appelés Fourches , par exemple. Je suis raisonnablement sûr que des choses similaires existaient dans le monde du mainframe, mais ne peuvent pas mettre mes doigts sur des exemples explicites aujourd'hui.

Sur Windows modernes, il est utilisé pour contenir des attributs supplémentaires pour un fichier. Vous remarquerez peut-être que la zone Propriétés disponible à partir de Windows Explorer dispose d'un onglet Résumé de la simple vue (je suis sur Windows XP, votre kilométrage diffère sur les autres arômes) comprend un tas de champs utiles tels que le titre, le sujet, l'auteur et Donc. Ces données sont stockées dans un autre flux, plutôt que de créer une sorte de base de données latérale pour la conserver tout ce qui serait trop facilement séparé du fichier.

Un autre flux est également utilisé pour contenir le marqueur indiquant que le fichier est venu d'une source de réseau non approuvée appliquée par Internet Explorer et Firefox sur les téléchargements.

La question difficile est pourquoi il n'y a pas de meilleure interface utilisateur pour noter que les flux existent du tout et pourquoi il est possible de mettre un contenu exécutable en eux et pire, l'exécuter plus tard. S'il y a un bug et un risque de sécurité ici, ceci est-ce.

Edit:

Inspiré par un commentaire à une autre réponse, voici une façon de savoir si votre anti-virus et/ou une protection anti-malware est au courant des flux alternatifs.

Obtenez une copie du fichier fichier de test EICAR . Il est 68 octets de ASCII texte qui se trouve également une exécutable X86 valide. Bien que complètement inoffensif, il a été convenu par l'industrie anti-virus à détecter comme s'il s'agissait d'un véritable virus . Les initiateurs ont estimé que les tests AV Software avec un vrai virus seraient un peu trop semblables à tester l'alarme incendie en allumant la base de déchets sur le feu ...

Le fichier EICAR est:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Enregistrez-le avec l'extension .COM Et cela sera exécuté (à moins que votre AV ne paie pas l'attention) et imprimez une salutation.

Il serait informatif de l'enregistrer dans un autre flux de données et de lancer une analyse ...

98
RBerteig

Voici un bon article sur le potentiel Vulnérabilité de sécurité posé par alternez les flux de données .

5
JP Alioto

J'imagine que l'une des utilisations principales (peut-être même l'utilisation prévue) serait d'autoriser de manière transparente l'ajout de tout type de métadonnées à un fichier. La raison pour laquelle la taille du fichier ne change pas est dans ce scénario que vous ne souhaitez pas que le fichier soit égaré ou se comporte de manière différente de savoir que l'application d'origine s'appuie sur certains aspects du fichier.

Je pouvais imaginer des utilisations intéressantes dans les IDes, par exemple, où plusieurs fichiers sont impliqués pour former une seule unité (fichier de fichier/fichier de formulaire, etc.), ce qui pourrait être joint au fichier d'origine de cette manière afin qu'ils ne puissent pas être séparés accidentellement.

Je crois aussi qu'il existe une commande de trouver toutes ces "pièces jointes" dans un arborescence de répertoire donné, elles ne sont donc pas complètement cachées. Cela me surprendrait également si les meilleurs scanners virus n'en sont pas au courant de cela et vérifient ces zones "cachées", mais vous pouvez vérifier que en attachant délibérément une exécutable infectée à un fichier texte et en voyant si elle est prise en charge.

5
jerryjvl

Bonne question, je ne connaissais pas correctement les annonces avant l'année dernière et je suis un développeur de Windows depuis de nombreuses années. Je peux garantir que je ne suis pas seul à ce sujet.

En ce qui concerne la possibilité de rechercher des données alternatives sur les fichiers, j'ai trouvé l'utile petit outil appelé gars disponible auprès du logiciel Frank Heyne. Il peut indiquer des annonces sur tous les fichiers d'un répertoire donné, même sur des fichiers cryptés (ainsi que dans les sous-répertoires).

4
Ash