Pourquoi diable NTFS autorise-t-il les exécutables invisibles?

105

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 fichier caché, utilisez simplement:

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

Mais la partie folle à ce sujet est que cela n’augmente pas la taille du fichier (donc, il est totalement caché).

Et si vous supprimez le fichier contenant les éléments cachés, ceux-ci ne sont pas supprimés. Il suffit d'utiliser:

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

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

Kredns
la source
1
sympa, semble être une fourchette de ressources mac.
Stefano Borini
15
pire, quand vous démarrez sol.exe comme ça, le gestionnaire de tâches affiche le nom du processus comme container.txt
hasen le
16
Nous devrions bombarder Google pour que "effrayant" mène à cette question
vendredi
4
Tant que cela dure, il est toujours étonnant de rencontrer de temps en temps des développeurs audiovisuels / d'autres personnes qui travaillent beaucoup avec le système de fichiers et qui, ENCORE, n'en ont pas connaissance. Je ne m'attends pas à ce que le développeur d'applications moyen le sache, car il n'en a pas besoin, mais si vous êtes féru de systèmes de fichiers ... :-)
Brian Knoblauch Le
Soi-disant, vous pouvez également joindre un ADS à un dossier. Vous pouvez supprimer les ADS en supprimant le dossier, mais lorsque le dossier est la racine de votre lecteur, vous ne pouvez pas supprimer votre lecteur C:, par exemple, sans reformater le lecteur. On dirait un mécanisme pour créer un virus de rootkit caché (?).
HighTechGeek

Réponses:

98

Il y a deux côtés à cette question. La première est pourquoi cette fonctionnalité existe et la seconde est pourquoi l'interface graphique (ou l'invite de commande) ne facilite pas la visualisation et la gestion de la fonctionnalité.

Cela existe parce que c'est utile. Plusieurs autres plates-formes prennent en charge plusieurs flux de données par fichier. Sur le Mac, on les appelait des fourchettes , par exemple. Je suis raisonnablement sûr que des choses similaires existaient dans le monde du mainframe, mais je ne peux pas mettre la main sur des exemples explicites aujourd'hui.

Sous Windows moderne, il est utilisé pour conserver des attributs supplémentaires pour un fichier. Vous remarquerez peut-être que la boîte de dialogue Propriétés disponible dans l'Explorateur Windows contient un onglet Résumé qui, dans la vue Simple (je suis sous Windows XP, votre kilométrage variera selon les variantes), comprend une série de champs utiles tels que Titre, Objet, Auteur et etc. Ces données sont stockées dans un autre flux, plutôt que de créer une sorte de base de données side-car pour stocker toutes les informations qui seraient trop facilement séparées du fichier.

Un autre flux est également utilisé pour contenir le marqueur indiquant que le fichier provient d'une source réseau non approuvée appliquée à la fois par Internet Explorer et Firefox lors des téléchargements.

La question difficile est de savoir pourquoi il n’existe pas de meilleure interface utilisateur pour constater l’existence des flux, et pourquoi il est possible d’y insérer du contenu exécutable et, pire, de l’exécuter ultérieurement. S'il y a un bug et un risque de sécurité ici, c'est ça.

Modifier:

Inspiré par un commentaire à une autre réponse, voici un moyen de savoir si votre protection anti-virus et / ou anti-programme malveillant prend en compte des flux alternatifs.

Obtenez une copie du fichier de test EICAR . Ce sont 68 octets de texte ASCII qui sont également des exécutables x86 valides. Bien que totalement inoffensif, le secteur des antivirus a décidé de le détecter comme s'il s'agissait d'un véritable virus. Les concepteurs pensaient que tester un logiciel antivirus avec un vrai virus ressemblerait un peu trop à tester l’alarme incendie en allumant la corbeille à papier ...

Le fichier EICAR est:

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

Enregistrez-le avec l'extension .COMet il s'exécutera (à moins que votre AV ne prête attention) et affichera un message d'accueil.

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

RBerteig
la source
11
De par sa conception, la taille du fichier affiché n’indique que la taille du flux principal $ DATA. C’est aussi ce que vous voulez habituellement. Vous n'incluez pas non plus la longueur du nom de fichier (qui est un type de métadonnées) dans la taille du fichier. Quant à être un risque de sécurité. L'ADS n'est pas plus un risque que n'importe quel fichier individuel. Je n'ai entendu parler d'aucun malware qui se soit propagé / caché avec ces mécanismes.
Joey
4
Vous ne pouvez pas exécuter accidentellement un exécutable stocké dans un ADS d'un fichier texte. Il est bien caché, trop bien caché pour qu'un utilisateur ordinaire puisse l'exécuter accidentellement. Vous auriez besoin d'être compromis en premier.
R. Martinho Fernandes
7
@ashh: Martinho a bien compris - l'obscurité qui rend difficile la recherche d'un exécutable sur un tel flux rend également difficile l'exécution d'un script sans le vouloir. Comparez cela avec, disons, le fiasco entier des "extensions de fichiers cachées", dans lequel les fichiers exécutables peuvent sembler être, par exemple, des fichiers texte dans l'interface graphique ... et toujours s'exécuter très facilement.
Shog9
3
En supposant que votre fichier audiovisuel accorde au moins une attention en temps réel au fichier .COM, vous ne pourrez pas le joindre en tant que ADS, car celui-ci vous empêcherait d’accéder au fichier .COM (la connexion en tant que ADS en nécessite un pour accéder au fichier). Vous devriez cependant pouvoir attacher un fichier texte avec la chaîne EICAR et le nommer avec une extension .COM à l'intérieur de l'ADS. c'est à dire type EICAR.txt> test.txt: EICAR.COM
KTC
2
Fait intéressant à propos du fichier EICAR.COM: il ne fonctionnera sur aucune version 64 bits de Windows. Je suppose donc que cette astuce ne fonctionnera plus une fois que tout le monde sera sur des ordinateurs 64 bits (ce qui prendra probablement encore un certain temps).
Kredns
15

Cette fonctionnalité est requise pour une fonctionnalité multiplate-forme de Windows Server: services pour mac.

Cela permet à un serveur Windows fonctionnant sur un partage NTFS de partager des macs via AFP. Pour que cette fonctionnalité fonctionne, le système de fichiers NTFS doit prendre en charge les fourches depuis le premier jour.

Et avant de vous demander, cette fonctionnalité est-elle toujours utilisée? Oui, je le fais tourner et je l'utilise quotidiennement sur un serveur d'un client que je supporte.

Le principal problème de sécurité survient lorsque les utilisateurs et les applications oublient ou ne réalisent pas qu’il existe.

Il devrait probablement y avoir une option permettant d’inclure les forks dans la taille totale du fichier ou de les afficher dans l’explorateur Windows.

Bruce McLeod
la source
2
Si vous allez voter par la base, laissez un commentaire pour expliquer pourquoi.
Bruce McLeod
2
Cela ressemble à une raison tout à fait plausible pour que la fonctionnalité existe en premier lieu.
RBerteig
3
l'ajout de cette fonctionnalité simplement pour permettre le partage de fichiers sur Mac ne semble pas être une raison plausible. Le partage sur le réseau n'exige pas que le fichier soit stocké intact côté serveur. J'ai vu plusieurs serveurs de partage * nix apple divisant le fichier en informations de données et de ressources. Ceci est transparent pour le client. Changer le format du lecteur pour autoriser uniquement AFP ne semble pas réaliste. Peut-être un avantage intéressant, mais pas en tant que RAISON de cette fonctionnalité.
Simurr
2
Oui, je pense [citation nécessaire] si vous voulez affirmer que la SfM est la principale raison pour laquelle MS a implémenté ADSes dans NTFS.
afrazier
3
Citation trouvée: ... Les fonctionnalités ADS ont été conçues à l'origine pour permettre la compatibilité avec le système de fichiers hiérarchique Macintosh, HFS ; où les informations de fichier sont parfois divisées en ressources séparées. D'autres flux de données ont été légitimement utilisés par divers programmes, notamment le système d'exploitation Windows natif, pour stocker des informations sur les fichiers, telles que les attributs et le stockage temporaire. source: windowsecurity.com/articles/Alternate_Data_Streams.html
JamesBarnett
5

J'imagine qu'une des utilisations principales (peut-être même l'utilisation envisagée) serait de permettre de manière transparente l'ajout de n'importe quel type de métadonnées dans un fichier. La raison pour laquelle la taille du fichier ne change pas est que, dans ce scénario, vous ne souhaitez pas que le fichier apparaisse ou se comporte différemment, car l'application d'origine s'appuie sur un aspect de l'apparence du fichier.

Je pourrais imaginer des utilisations intéressantes dans les IDE, par exemple, où plusieurs fichiers sont impliqués pour former une seule unité (fichier de code / fichier de formulaire, etc.), qui pourraient être attachés au fichier d'origine de cette manière afin d'éviter toute séparation accidentelle.

Je pense également qu’il existe une commande permettant de rechercher toutes ces "pièces jointes" dans une arborescence de répertoires donnée, afin qu’elles ne soient pas complètement masquées. Cela me surprendrait également si les meilleurs scanneurs de virus ne sont pas conscients de cela et vérifient ces zones "cachées", mais vous pouvez le vérifier en attachant volontairement un fichier exécutable infecté à un fichier texte et en vérifiant si celui-ci est détecté.

jerryjvl
la source
Pourriez-vous s'il vous plaît poster un lien vers un tel exécutable afin que je puisse essayer? ;)
R. Martinho Fernandes Le
Je vous suggère d'exécuter AVG sur votre ordinateur, puis de récupérer l'un des exécutables du dossier de quarantaine pour essayer;)
jerryjvl le
2
@martinho, vous voulez le fichier de test EICAR: X5O! P% @ AP [4 \ PZX54 (P ^) 7CC) 7} $ EICAR-STANDARD-ANTIVIRUS-TEST-FILE! $ H + H * Il suffit de coller ce texte (exactement 68 octets de texte ASCII, voir eicar.org/anti_virus_test_file.htm pour l’ensemble du récit) dans un fichier portant l’extension .COM. Il va courir et imprimer un message. À moins que votre AV fonctionne, bien sûr. Déposez-le dans un autre flux de données et vérifiez-le également.
RBerteig
@RBerteig: Hé cool ... je ne savais pas qu'il y avait une telle chose.
jerryjvl
@jerryjvl, comme on dit, ça bat de tester l'alarme incendie en allumant la corbeille à feu ...
RBerteig Le
5

Voici un bon article sur la faille de sécurité potentielle posée par les autres flux de données .

JP Alioto
la source
6
<nitpick> C'est une vulnérabilité et non une menace </ nitpick>. Et ce n'est pas aussi grave que cela puisse paraître. Vous devez déjà avoir des informations d'identification pour l'utiliser.
Romandas
Pas de problème. Au fait, vérifiez votre orthographe. Et rappelez-vous toujours: les menaces exploitent les vulnérabilités. Les menaces sont généralement humaines, mais les catastrophes naturelles et provoquées comptent également.
Romandas
@romandas, quelles sont les informations d'identification dont vous avez déjà besoin? À la maison, la plupart des utilisateurs de Windows (XP en particulier) utilisent des privilèges d’administrateur. Pourquoi n’est-ce pas si grave?
Cendres
@ashh, "avec une méthode de dissimulation ... sur un système endommagé". Le système doit déjà être compromis en premier lieu pour cacher quoi que ce soit, et de la même manière pour exécuter quelque chose de caché comme ça.
KTC
5

Bonne question, je ne connaissais pas bien ADS jusqu'à l'année dernière et je suis développeur Windows depuis de nombreuses années. Je peux vous garantir que je ne suis pas seul à ce sujet.

En ce qui concerne la possibilité de rechercher d’autres données sur des fichiers, j’ai trouvé le petit outil utile appelé Lads, disponible dans le logiciel Frank Heyne. Il peut répertorier les ADS sur tous les fichiers d'un répertoire donné, même sur des fichiers cryptés (et également dans des sous-répertoires).

Cendre
la source