![]() |
Titre de l'article : Nouvelle tendance : Les vers XSS Auteur : Adrien Guinault, consultant sécurité Xmco Partners Courriel : adrien.guinault@xmcopartners.com Date : Janvier 2007 Version complète en PDF : Actu Sécurité Janvier 2007
|
Les pirates raffolentdes attaques de Cross Site Scripting. Nous avons choisi de vous présenter, cette fois-ci, les vers Javascript qui se sont développés depuis 2005 et qui ont attaqué quelques grands sites comme MySpace, Yahoo ou encore Google.
Comment fonctionnent-ils ? Comment se propagent-ils ?
Petite présentation des derniers vers qui tendent à se se développer sur la Toile.
Définitions et présentations
Qu'est-ce que le Javascript ?
|
Le Javascript est un langage de programmation principalement utilisé dans les pages HTML. |
|
Qu'est-ce que le XSS ?
Le XSS est la contraction de Cross Site Scripting. Ce terme désigne une insertion imprévue de code Javascript au sein d'une page renvoyée par le serveur web et exécutée du coté client par les navigateurs web.
Le Cross Site Scripting est donc une attaque menée dans le but d'exécuter un code Javascript directement sur le poste de la victime. Cette technique a été particulièrement utilisée par les pirates pour voler la session d'un utilisateur connecté.
Une fois le serveur web vulnérable identifié, le script est inséré au sein de l'URL et est envoyé la victime. Si cette dernière est connectée sur le site web vulnérable, elle enverra immédiatement, et à son insue, son cookie de session au pirate. L'attaquant pourra ensuite rejouer ce cookie et voler la session de la victime pour mener des actions frauduleuses.

On distinguent deux grandes familles de Cross Site Scripting : le XSS permanent et le XSS non permanent.
Le XSS non permanent est retourné immédiatement et ne reste pas sur le serveur web. La victime est touchée personnellement et l'attaque est souvent menée grâce à un paramètre non contrôlé dans l'URL.
Le XSS permanent est une technique employée pour laisser le code malicieux sur le serveur web pour que chaque client, qui visite la page web vérolée, devienne une nouvelle victime.
Le code réside alors sur le serveur web et sera exécuté par le navigateur. C'est cette méthode que les vers XSS utilisent.
Si vous souhaitez en savoir plus sur les techniques XSS non permanentes, nous vous proposons de vous référer à notre newsletter " Actu-Secu " de Décembre 2006.
Comment cette vulnérabilité est-elle exploitée par les vers ?
Comme les parasites qui doivent s'accrocher à un corps vivant, les vers XSS doivent s'accrocher à une page web pour vivre.

Les développeurs web ne prennent pas souvent la peine de vérifier chacune des entrées utilisateurs et laissent ainsi une porte ouverte aux pirates. Les failles XSS sont assez courantes et les avis sur la gravité de cette faille sont plutôt partagés. Certains (administrateurs, DSI, etc) ne prennent pas cette vulnérabilité au sérieux car ce genre d'attaque nécessite une intervention relativement difficile à réaliser pour l'utilisateur car elle doit être menée à grande échelle.
D'autres, dont les experts en sécurité, abordent le sujet sous un autre angle. Ils ont conscience du danger. En effet, cette faille de sécurité est bien plus grave qu'elle n'y paraît. Les pirates l'utilisent le plus souvent pour voler le cookie de session d'un utilisateur. Cela signifie qu'un attaquant peut prendre le contrôle de votre session lorsque vous êtes connecté sur le site de votre banque en ligne. Baptisée " le nouveau débordement de tampon " par certains spécialistes, elle offre d'autres possibilités dont celle d'exécuter n'importe quel code Javascript. Vous êtes donc à même d'imaginer les risques qu'une simple faille de Cross Site Scripting peut engendrer : scan d'un réseau interne, propagation de vers, etc.
Un ver XSS peut se propager par l'intermédiaire de plusieurs vecteurs. Les exemples qui suivent, présentent les différentes voies de contamination possibles.
Samy : premier ver pour MySpace
Le premier ver du genre fut créé en 2005 par un adolescent. Le ver n'avait aucun impact sérieux, il se contentait d'ajouter le profil "Samy " dans la liste d'amis de l'utilisateur abusé . Il se répliquait ensuite pour finalement contaminer près de 1 000 000 profils.
Le jeune pirate a, tout d'abord, analysé la sécurité du site en question et a constaté que l'insertion de balises HTML au sein de son profil était relativement simple. Bien que le site filtrait correctement plusieurs mots utilisés par le langage " Javascript " (ce qui restreint à priori ce genre d'attaque), l'insertion d'un tel code était toujours possible en utilisant des méthodes de contournement ingénieuses?(voir cadre a la fin de l'article)
Samy a trouvé une méthode relativement simple qui consistait à scinder le mot " Javascript " en 2 (retour chariot) afin de tromper une grande partie des navigateurs web. L'attaque pouvait alors commencer.

A l'aide d'un code Javascript particulièrement travaillé, le ver envoyait silencieusement des requêtes POST et GET via Ajax pour contaminer chacun des utilisateurs et des contacts visitant le profil " Samy ". La méthode utilisée était particulièrement astucieuse puisque l'auteur a réussi à générer des requêtes http via Ajax ainsi qu'un clic de validation sans la moindre intervention de l'utilisateur.
La création d'un tel ver n'est pas évidente car les plus grands sites prennent généralement des précautions afin d'éviter l'exécution de code Javascript. L'auteur de ce ver a donc du trouver des moyens pour contourner les contrôles de MySpace.
Yammaner : le premier ver sur une plateforme web-mail
|
Yammaner fut le premier ver du genre. Identifié en juin 2006, ce virus était inséré directement dans le corps d'un e-mail et s'exécutait dès qu'un utilisateur de la web-mail de Yahoo ouvrait l'e-mail vérolé. ` | ![]() |
Ce dernier avait pour but de chercher tous les contacts du carnet d'adresses pour se diffuser par la suite par l'intermédiaire des requêtes Ajax. L'exécution de code Javascript n'était pas interdite par Yahoo.
N'importe quel code pouvait donc être inséré dans un e-mail et s'exécuter dans le contexte de la victime. Une fois l'e-mail ouvert, le ver se propageait en envoyant une copie de lui-même à tous les contacts de la victime (avec un champ " From " correspondant à un des contacts).
Dernier exemple en date : Quickspace MySpace
MySpace est un site de rencontre utilisé par près de 73 millions de personnes dans le monde. La moindre faille pourrait affecter le profil de nombreux utilisateurs, ce qui fut le cas au mois de décembre dernier.
|
En effet, les pirates ont utilisé une fonction intégrée de Quicktime et une faille de Cross Site Scripting (corrigée maintenant) pour voler un grand nombre de comptes.
Le ver était écrit en Javascript et camouflé au sein d'une vidéo " .mov ". Le principe est relativement simple. La vidéo malicieuse est glissée sur une page de profil MySpace. |
|
Dès l'ouverture de la vidéo avec le lecteur Quicktime, le ver utilise une fonction nommée " HREF Track", qui oblige le lecteur à utiliser un code JavaScript (voir plus bas) afin de charger des pages web. Ce code téléchargeait un script " .js " aux adresses suivantes :
http://almobty.com/css/[REMOVED].js
http://www.cake.fi/images/[REMOVED].js
http://www.daviddraftsystem.com/images/[REMOVED].js
http://www.tm-group.co.uk/images/[REMOVED].js
Le contenu du profil de l'utilisateur abusé était alors modifié. Une fausse barre de navigation remplaçait la barre officielle et pointaient vers des sites pirates qui affichaient une fausse page de login MySpace. Par ailleurs, il subtilisait les mots de passe et les login entrés par les victimes. Quant à la vidéo infectée, elle apparaissait sur le profil MySpace de l'utilisateur qui devenait alors le nouvel hôte pour diffuser le ver.
Enfin le code qui contenait aussi une fonction de spamming était envoyé par e-mail à tous les contacts du compte infecté.
Comme nous vous le disions au préalable, le problème vient du logiciel Quicktime et de la fonction " HREF track ". D'après Apple, cette fonctionnalité permet de définir des fonctions Javascript ou bien des pages web qui chargeront une "frame" ou fenêtre précise. En d'autres termes, une page web spécifiée dans une balise " HREF Track " s'ouvrira dès le lancement de la vidéo.
La fonction de Quicktime mise en cause n'a pas alerté Apple qui a délivré un correctif temporaire ne prévoyant pas cependant de supprimer cette fonction.
La faille PDF au centre des interrogationsAprès l'insertion de code Javascript au sein de fichiers " .Mov " et " .swf " qui aident au développement de vers, un autre format de fichier extrêmement utilisé inquiète les experts en sécurité informatique. |
|
Le format PDF peut également exécuter du Code Javascript à l'aide d'une simple URL. En ajoutant un morceau de code après le nom du fichier PDF dans l'URL, une attaque de Cross Site Scripting est possible. Tous les sites qui hébergent un tel fichier, sont alors vulnérables ce qui laisse un très grand nombre de cibles pour les développeurs de malwares.
Un article détaillé a, d'ailleurs, été rédigé par nos consultants. Il est disponible à l'adresse citée en référence.
Webographie
Explication du code du ver Samy :
http://namb.la/popular/tech.html
Article Xmco : La faille d'Acrobat Reader qui inquiète les DSI :
http://www.mag-securs.com/article.php3?id_article=6940
Description du ver Yamanner par F-Secure :
http://www.f-secure.com/v-descs/yamanner_a.shtml





Autres articles