Un fantôme dans le navigateur ?
Date : 03 Juillet 2008
"Est-ce que vous croyez aux fantômes ?". C'est par
cette question accrocheuse que Manuel Caballero a débuté sa
présentation lors de la conférence "BlueHat" organisée par
Microsoft en
Avant de décrire ces vulnérabilités, nous présentons tout d'abord la notion de sécurité "inter-domaine" ("cross-domain security") dans les navigateurs web. Cette notion existe aussi bien dans Firefox (qui la nomme "same origin policy") que dans Internet Explorer (qui parle de "cross-domain security model"). Elle vise à limiter les interactions possibles entre les différentes fenêtres du navigateur web. Lorsque plusieurs fenêtres existent (ou lorsque dans une même fenêtre plusieurs "frames" existent) alors un code Javascript dans une fenêtre donnée n'est autorisé à agir sur une autre fenêtre (par exemple une fenêtre fille) que si les deux fenêtres visualisent des données appartenant au même domaine (au sens DNS). Par exemple, une fenêtre visualisant des données provenant de www.microsoft.com ne peut agir que sur les fenêtres qui visualisent des données provenant de ce même domaine. Si le contrôle inter-domaine n'est pas correctement implémenté (on parle alors d'une vulnérabilité "cross-domain") une attaque classique est qu'une fenêtre mère (qui est sous le contrôle du pirate) espionne l'activité d'une fenêtre fille (qui peut être par exemple une "frame" incrustée dans la fenêtre mère) et capture toutes les frappes au clavier lorsque cette fenêtre fille navigue sur Internet.
En fait, cette attaque correspond exactement au "fantôme dans le navigateur" décrit par Manuel Caballero. Eduardo Vela (www.sirdarckcat.net) a effectivement démontré que dans Internet Explorer (versions 6, 7 et 8 beta) il existait un moyen de contourner le modèle de sécurité "cross-domain" et d'interagir avec une fenêtre fille alors que cette fenêtre visite d'autres sites web. Les interactions qui sont possibles avec cette vulnérabilité sont cependant limitées. Il n'est pas possible par exemple de voler les cookies des autres sites web. Par contre, l'écoute du clavier (interception des touches tapées au clavier) est tout à fait possible, comme le montre le PoC développé par Eduardo Vela.
Une seconde vulnérabilité "cross-domain" a ensuite été trouvée en juin 2008 par un groupe de hackers chinois (le groupe "Ph4nt0m Security Team") et publiée dans "PSTZine" (un journal de hacking chinois). Cette seconde vulnérabilité est plus grave, car cette fois (contrairement à la première vulnérabilité) il est possible pour le pirate de voler les cookies des autres sites web visités. En fait, il est probable que cette vulnérabilité "cross-domain" permette à la fenêtre mère d'avoir un contrôle complet sur la fenêtre fille. D'après les découvreurs, cette vulnérabilité n'existe que sur la version 6 d'Internet Explorer. Aviv Raff a publié une page de test démontrant la vulnérabilité.
Ces deux vulnérabilités sont suivies par le Cert-IST sous
Pour plus
d'information :
- Description de la vulnérabilité par Ryan Naraine : http://blogs.zdnet.com/security/?p=1348