Notre contribution à la communauté de la sécurité de l'information et des systèmes d'information

XSSFramework

XSSF : La sensibilisation par la démonstration (épisode 1)

Présenté aux GSDays 2010, l’outil XSSFramework vise à démontrer la dangerosité des failles de type Cross-Site Scripting [Réf. 1, 2, 3] afin de faire prendre conscience aux développeurs et chefs de projets des réels dangers qu’elles représentent. XSSF s’intègre dans un outil déjà largement utilisé lors des tests d’intrusion: Metasploit Framework (MSF) [Réf. 4].

Capacités grandissantes du JavaScript, arrivée du HTML 5, nombre de vulnérabilités sur les navigateurs en constante augmentation, etc. : autant d’éléments qui viennent amplifier la puissance des attaques XSS. Pourtant, la faille reste plutôt méconnue, complexe à expliquer lors des audits, avec des dangers parfois souvent incompris. La preuve de concept se limite souvent à un scénario d’attaque simple – alert(123) en JavaScript – ou au mieux à une attaque ajustée à chaque fois au contexte par l’auditeur.

XSSFramework permet de réaliser une injection XSS simple, indépendante du contexte, offrant à l’attaquant la possibilité de garder un lien avec les victimes afin de leur envoyer des attaques par la suite. Chaque attaque (alerte, vol de cookie, keylogger, tabnapping [Réf. 5], etc.) est stockée sous la forme d’un module MSF (fichier structuré contenant le code à exécuter).

Ainsi, il est relativement simple de démontrer, au travers d’une injection enfantine, les possibilités énormes d’attaques XSS. De plus, l’intégration de XSSFramework dans le framework Metasploit permet aussi de montrer simplement la prise de contrôle (totale) d’une machine distante à partir d’une simple XSS. Cette prise de contrôle est possible dès lors que le navigateur – ou l’un de ses plugins – est vulnérable à une faille de sécurité (comme c’est assez souvent le cas malheureusement).

Malheureusement, ce fut le cas pour le système d’exploitation Android (utilisé sur les smartphones). Une vulnérabilité découverte récemment par Thomas Cannon [Réf. 6], permet de récupérer depuis un site web malicieux (ou vulnérable aux XSS) n’importe quelle information stockée sur la carte SD du téléphone. Grâce à XSSFramework, il est possible de démontrer cette faille d’une part, et d’appuyer les propos précédents sur la dangerosité des XSS (sur des sites de confiance) d’autre part.


Vidéo de vol de données sur Android avec XSSF

Suite à la vidéo, nous pouvons nous poser plusieurs questions :

  • Quelles données sont accessibles par l’attaquant ? : La vulnérabilité se trouve dans le navigateur qui n’a pas les droits « root » sur le système. Par conséquent, il est possible de récupérer seulement les fichiers accessibles par l’utilisateur : tous ceux de la carte SD (photos, sauvegardes, logs, téléchargements, …) plus quelques autres (tous ceux n’ayant pas les droits « root »).

 

  • Est-il vraiment simple pour l’attaquant de connaître le nom des fichiers à voler ? : Android est un système d’exploitation open-source, les chemins de stockage sur la carte SD varient très peu entre les différents constructeurs de mobiles. Par exemple, les photos prises avec le téléphone sont souvent stockées dans le répertoire ‘/sdcard/DCIM/100ANDRO/IMGxxxx.jpg’ (xxxx variant de 0000 à 9999 ; ‘IMG’ pouvant être ‘DSC_’ chez Sony par exemple). On retrouve aussi des fichiers de sauvegarde contenus dans le répertoire ‘sdcard/data/backup’, des pièces jointes de mails personnels ou professionnels dans ‘sdcard/MoxierMail/mailbox’, etc. !
  • L’utilisateur peut-il annuler l’attaque avant de se faire voler ses données ? : Afin de rendre la vidéo plutôt compréhensible, l’attaque dure environ 7 secondes. Dans la pratique, ce temps peut être réduit à environ 3 secondes. Le seul moyen d’annuler réellement l’attaque est d’annuler le téléchargement du fichier malicieux. Celui-ci ayant une taille d’environ 700 octets, l’utilisateur dispose d’à peu près 1 seconde (dépend de la connexion) pour annuler le téléchargement ou quitter complètement le navigateur. Pour un utilisateur qui ne s’attend pas à l’attaque et qui croit être sur un site de confiance, il est donc relativement difficile d’éviter le vol de données !

 

  • Peut-on se protéger d’un tel vol de données ? : Google ayant été informé de cette vulnérabilité, la nouvelle version d’Android (2.3) intègre une mise à jour permettant de corriger la faille. Toutes les versions inférieures restent donc vulnérables, et c’est là toute la problématique. En effet, chaque constructeur, pour chaque modèle de smartphone, est libre de fournir officiellement une nouvelle version d’Android (après y avoir fait quelques « retouches »). Problème encore, « nouvelle version » ne signifiant pas « dernière version », certains constructeurs se préparent tout juste à sortir Android 2.2 à l’heure où la version 3.0 est déjà annoncée par Google ! La vigilance et la sensibilisation aux dangers des failles XSS restent donc ici les seuls vrais moyens de protection pour les utilisateurs délaissés par la version 2.3 !

Etant donné la criticité de la vulnérabilité, ce module XSSFramework ne sera pas mis à disposition (bien que relativement simple à coder), d’autant plus que le but du framework n’est pas l’attaque mais la démonstration !

D’autres vidéos sont disponibles afin de comprendre un peu mieux les possibilités d’attaques XSS :

Références :

[Réf. 1] Pierre Gardenat. « <script>alert(‘xss’)</script> xss : de la brise à l’ouragan ». Actes SSTIC 2009, Juin 2009. http://actes.sstic.org/SSTIC09/XSS-_de_la_brise_a_louragan/SSTIC09-article-P-Gardenat-XSS-_de_la_brise_a_louragan.pdf.

[Réf. 2] OWASP (Open WEB Application Security Project). Cross-site scripting (xss), 2010. http://www.owasp.org/index.php/XSS.

[Réf. 3] Wikipedia. Cross-site scripting, 2010. http://en.wikipedia.org/wiki/Cross-site_scripting.

[Réf. 4] Wikipedia. Metasploit Framework. http://fr.wikipedia.org/wiki/Metasploit.

[Réf. 5] Principes du tabnapping. http://www.seiso.fr/2010061553/securite-sauvegarde-informatique/securite-tabnapping-seiso.html.

[Réf. 6] Android data stealing vulnerability. http://thomascannon.net/blog/2010/11/android-data-stealing-vulnerability/.

 

CONIX

By | 2017-08-04T14:57:03+00:00 14/01/2011|Technique, Veille|