CERTA-2000-ALE-012
Vulnerability from certfr_alerte - Published: - Updated:
Le système de fichier NTFS permet de créer des Flux de Données Additionnels (Alternate Data Streams) associés ou non à un fichier. Il a été relevé dès 1998 que cela permettait de dissimuler de l'information pour 2 raisons essentielles :
- Cette fonctionnalité est très mal documentée par Microsoft et peu d'administrateurs la connaisse,
- Beaucoup d'outils de Windows n'ont même pas la capacité de gérer ces flux.
C'est ainsi que la commande dir ou l'explorateur de Windows ne sont pas capables de les afficher, ni même d'indiquer le changement de taille d'un fichier auquel on aurait adjoint un flux additionnel.
Les analyseurs antivirus n'échappaient jusqu'alors pas à la règle, et ne recherchaient donc pas de signatures caractéristiques dissimulées dans un flux additionnel.
Un premier virus est apparu sous Windows 2000 : Win2K.Stream, Win2k_Stream ou simplement Stream. Ce n'est qu'une version expérimentale qui n'est pas nocive aujourd'hui. Cependant il faut noter qu'il est apparu seulement quelques jours après une alerte du ``SANS Institute'' expliquant le danger potentiel des flux additionnels pour les antivirus.
Description
L'ensemble du système de fichier NTFS est géré comme une base de données relationnelle composée uniquement de fichiers. Chaque fichier a une liste d'attributs (nom de fichier, descripteur de sécurité, données,...) de longueur variable. Tout fichier accepte de nouveaux attributs caractérisés par leur nom. Un attribut est divisé en 2 parties : l'entête et le contenu, ce dernier étant composé du nom de l'attribut et d'un flux de données.
Un flux de données addtionnel peut donc être créé par la simple ligne de commande echo ``Test de flux de données addtionnel'' > fichier_existant:flux1.txt, où fichier_existant est un fichier présent dans le répertoire courant (on ajoute un nouvel attribut de nom flux1.txt au fichier fichier_existant). Ni la commande dir ni l'explorateur de fichiers ne révèlent son existence. Il peut en revanche être ouvert par la commande notepad fichier_existant:flux1.txt. D'autres flux additionnels peuvent évidemment être ajoutés. La commande del, incompatible, n'est pas en mesure de les supprimer. Cependant un tel flux est inerte, il ne peut être directement exécuté.
Dans l'optique d'une utilisation malicieuse, cette restriction peut être facilement contournée : l'essentiel du code du virus est masqué dans un flux additionnel, et il est simplement appelé par un code minimal depuis le flux ``normal'' (script vba sous Word, scriptlet vbs, modification d'un exécutable,...). Le peu de code qui estalors visible par les antivirus ne permet pas de générer une signature : il est trop peu caractéristique pour ne pas générer de nombreuses fausses alarmes.
Solution
Depuis la publication du bulletin du ``SANS Institute'' et l'apparition du virus Stream, il est impératif que les éditeurs d'antivirus rendent les moteurs d'analyse compatibles avec les flux de données additionnels.
Il est donc essentiel de mettre à jour les bases de signature de vos antivirus (détection de Stream), de prendre contact avec vos éditeurs pour connaître les modalités d'évolution des moteurs d'analyse (achat, mise à jour,...) et de prendre en compte dès aujourd'hui le déploiement.
Windows NT et 2000 utilisant le système de fichiers NTFS.
| Vendor | Product | Description |
|---|
| Title | Publication Time | Tags | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
{
"$ref": "https://www.cert.ssi.gouv.fr/openapi.json",
"affected_systems": [],
"affected_systems_content": "\u003cP\u003eWindows NT et 2000 utilisant le syst\u00e8me de fichiers NTFS.\u003c/P\u003e",
"closed_at": "2000-09-08",
"content": "## Description\n\nL\u0027ensemble du syst\u00e8me de fichier NTFS est g\u00e9r\u00e9 comme une base de donn\u00e9es\nrelationnelle compos\u00e9e uniquement de fichiers. Chaque fichier a une\nliste d\u0027attributs (nom de fichier, descripteur de s\u00e9curit\u00e9, donn\u00e9es,...)\nde longueur variable. Tout fichier accepte de nouveaux attributs\ncaract\u00e9ris\u00e9s par leur nom. Un attribut est divis\u00e9 en 2 parties :\nl\u0027ent\u00eate et le contenu, ce dernier \u00e9tant compos\u00e9 du nom de l\u0027attribut et\nd\u0027un flux de donn\u00e9es.\n\nUn flux de donn\u00e9es addtionnel peut donc \u00eatre cr\u00e9\u00e9 par la simple ligne de\ncommande echo \\`\\`Test de flux de donn\u00e9es addtionnel\u0027\u0027 \\\u003e\nfichier_existant:flux1.txt, o\u00f9 fichier_existant est un fichier pr\u00e9sent\ndans le r\u00e9pertoire courant (on ajoute un nouvel attribut de nom\nflux1.txt au fichier fichier_existant). Ni la commande dir ni\nl\u0027explorateur de fichiers ne r\u00e9v\u00e8lent son existence. Il peut en revanche\n\u00eatre ouvert par la commande notepad fichier_existant:flux1.txt. D\u0027autres\nflux additionnels peuvent \u00e9videmment \u00eatre ajout\u00e9s. La commande del,\nincompatible, n\u0027est pas en mesure de les supprimer. Cependant un tel\nflux est inerte, il ne peut \u00eatre directement ex\u00e9cut\u00e9.\n\nDans l\u0027optique d\u0027une utilisation malicieuse, cette restriction peut \u00eatre\nfacilement contourn\u00e9e : l\u0027essentiel du code du virus est masqu\u00e9 dans un\nflux additionnel, et il est simplement appel\u00e9 par un code minimal depuis\nle flux \\`\\`normal\u0027\u0027 (script vba sous Word, scriptlet vbs, modification\nd\u0027un ex\u00e9cutable,...). Le peu de code qui estalors visible par les\nantivirus ne permet pas de g\u00e9n\u00e9rer une signature : il est trop peu\ncaract\u00e9ristique pour ne pas g\u00e9n\u00e9rer de nombreuses fausses alarmes.\n\n## Solution\n\nDepuis la publication du bulletin du \\`\\`SANS Institute\u0027\u0027 et\nl\u0027apparition du virus Stream, il est imp\u00e9ratif que les \u00e9diteurs\nd\u0027antivirus rendent les moteurs d\u0027analyse compatibles avec les flux de\ndonn\u00e9es additionnels.\n\nIl est donc essentiel de mettre \u00e0 jour les bases de signature de vos\nantivirus (d\u00e9tection de Stream), de prendre contact avec vos \u00e9diteurs\npour conna\u00eetre les modalit\u00e9s d\u0027\u00e9volution des moteurs d\u0027analyse (achat,\nmise \u00e0 jour,...) et de prendre en compte d\u00e8s aujourd\u0027hui le d\u00e9ploiement.\n",
"cves": [],
"links": [
{
"title": "Copie du bulletin d\u0027alerte du ``SANS Institute\u0027\u0027 :",
"url": "http://securityportal.com/topnews/sans20000907.html"
},
{
"title": "Analyse de Stream par Symantec :",
"url": "http://www.symantec.com/avcenter/venc/data/w2k.stream.html"
}
],
"reference": "CERTA-2000-ALE-012",
"revisions": [
{
"description": "version initiale.",
"revision_date": "2000-09-08T00:00:00.000000"
}
],
"risks": [
{
"description": "Prolif\u00e9ration de virus non d\u00e9tect\u00e9s par les analyseurs antivirus"
}
],
"summary": "Le syst\u00e8me de fichier NTFS permet de cr\u00e9er des Flux de Donn\u00e9es\nAdditionnels (Alternate Data Streams) associ\u00e9s ou non \u00e0 un fichier. Il a\n\u00e9t\u00e9 relev\u00e9 d\u00e8s 1998 que cela permettait de dissimuler de l\u0027information\npour 2 raisons essentielles :\n\n- Cette fonctionnalit\u00e9 est tr\u00e8s mal document\u00e9e par Microsoft et peu\n d\u0027administrateurs la connaisse,\n- Beaucoup d\u0027outils de Windows n\u0027ont m\u00eame pas la capacit\u00e9 de g\u00e9rer ces\n flux.\n\nC\u0027est ainsi que la commande \u003cspan class=\"textit\"\u003edir\u003c/span\u003e ou l\u0027\u003cspan\nclass=\"textit\"\u003eexplorateur\u003c/span\u003e de Windows ne sont pas capables de les\nafficher, ni m\u00eame d\u0027indiquer le changement de taille d\u0027un fichier auquel\non aurait adjoint un flux additionnel.\n\nLes analyseurs antivirus n\u0027\u00e9chappaient jusqu\u0027alors pas \u00e0 la r\u00e8gle, et ne\nrecherchaient donc pas de signatures caract\u00e9ristiques dissimul\u00e9es dans\nun flux additionnel.\n\nUn premier virus est apparu sous Windows 2000 : \u003cspan\nclass=\"textit\"\u003eWin2K.Stream\u003c/span\u003e, \u003cspan\nclass=\"textit\"\u003eWin2k_Stream\u003c/span\u003e ou simplement \u003cspan\nclass=\"textit\"\u003eStream\u003c/span\u003e. Ce n\u0027est qu\u0027une version exp\u00e9rimentale qui\nn\u0027est pas nocive aujourd\u0027hui. Cependant il faut noter qu\u0027il est apparu\nseulement quelques jours apr\u00e8s une alerte du \\`\\`SANS Institute\u0027\u0027\nexpliquant le danger potentiel des flux additionnels pour les antivirus.\n",
"title": "Mauvaise compatibilit\u00e9 des scanners de virus avec NTFS",
"vendor_advisories": [
{
"published_at": null,
"title": "F-Secure",
"url": "http://www.datafellows.fi/v-descs/w2kstrm.htm"
},
{
"published_at": null,
"title": "Sophos",
"url": "http://www.sophos.com/virusinfo/analyses/w2kstreams.html"
},
{
"published_at": null,
"title": "NAI",
"url": "http://vil.nai.com/villib/dispvirus.asp?virus_k=98803"
},
{
"published_at": null,
"title": "Avis du CERT-IST",
"url": null
}
]
}
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.