Attaque combinée - Safari « Carpet Bomb » et vulnérabilité d’Internet Explorer

Date : 04 Juillet 2008

Introduction

Cet article a pour but de faire le point sur l’attaque combinée qui a mis en jeu la sécurité des navigateurs Safari de Apple et Internet Explorer de Microsoft ce mois-ci. En effet, nous avons pu lire de nombreuses polémiques dans la presse rejetant tantôt la faute sur l’un ou sur l’autre de ces logiciels. En particulier, une grande confusion s’est installée dans les esprits lorsque Microsoft a publié un avis de sécurité relatif aux risques liés à l’utilisation de Safari sur Windows.

L'attaque qui a été discutée couvre en fait deux problèmes. Pris séparément, ces problèmes ne représentent pas une véritable faille de sécurité. Ce n’est qu’une fois combinés ensembles qu’ils constituent un risque d’exécution de code à distance :

  • Le premier problème concerne la manière dont sont gérés les téléchargements par Safari. Ce problème a été baptisé dans la presse « Carpet Bomb »,
  • Le second problème concerne le chargement des librairies DLL par Internet Explorer. Ce problème est lui généralement dénommé « DLL-load hijacking attack » (attaque par détournement de DLL).

 

La vulnérabilité « Carpet Bomb » de Safari

Le problème appelé « Carpet Bomb » («tapis de bombe» en français) concerne donc le navigateur Safari, et est exploitable sous Windows et sous MacOs X. Son appellation peut s’expliquer par la conséquence de l’exploitation de cette faille : la visite d’un site spécialement construit peut en effet mener à un « bombardement » du répertoire de téléchargement (sous Windows le répertoire par défaut est le bureau) par un très grand nombre de fichiers non sollicités.

Le 15 mai 2008, le chercheur Nitesh Dhanjani a révélé ce problème et mis en garde les utilisateurs du navigateur d’Apple. En effet, le téléchargement de fichiers non interprétables par le navigateur lui-même (dll, exécutables, fichiers compressés…), est réalisé de manière automatique sous Safari. Ainsi, lorsqu’un utilisateur clique sur un fichier de ce type, Safari l’enregistre automatiquement sur le bureau de l’utilisateur sans aucune confirmation préalable (contrairement au comportement des autres navigateurs du marché).

Ce problème ne constitue pas une faille de sécurité à part entière, cependant couplée à une seconde vulnérabilité, cette attaque pourrait s’avérer dramatique. Notons qu’une page Web sur laquelle auraient été injectés un grand nombre de tags "Iframe" pointant vers des fichiers non interprétables par Safari causera le bombardement du bureau de l’utilisateur par des fichiers, et ce, sans que l’utilisateur ait eu à cliquer sur un quelconque lien.

Le 30 mai dernier, Microsoft a publié un avis de sécurité (KB953818) mentionnant la possibilité d’utiliser la vulnérabilité « Carpet Bomb » de Safari pour mener une attaque combinée impliquant Internet Explorer. Aucun détail supplémentaire n’est donné dans ce bulletin concernant la vulnérabilité exploitable dans le navigateur de Microsoft. Il nous faudra attendre quelques jours pour avoir, par l’intermédiaire de blogs dédiés à la sécurité, des détails techniques sur l’attaque combinée qui peut être menée à l’encontre des utilisateurs de ces 2 navigateurs.

 

La vulnérabilité « DLL-load hijacking » d’Internet Explorer

Cette vulnérabilité, à priori présente dans toutes les versions d’Internet Explorer, est due à la manière dont le navigateur recherche lors de son lancement les bibliothèques dynamiques (DLL) nécessaires à son fonctionnement. Il a en effet été constaté que le navigateur tentait d’abord de chercher ces DLL sur le bureau avant de les rechercher dans son propre répertoire de librairies (généralement c:windowssystem32). Pour exploiter cette vulnérabilité, il suffit de déposer sur le bureau un fichier DLL portant le nom d’un fichier DLL normalement chargé par Internet Explorer (Par exemple "schannel.dll" ou "imageres.dll"). Lors du prochain lancement d’Internet Explorer, c’est la DLL se trouvant sur le bureau qui sera chargée et non celle se trouvant dans le dossier système. Pour exploiter cette vulnérabilité, le pirate doit  donc créer une DLL et placer le code qu’il souhaite exécuter dans la fonction DllMain de cette DLL malveillante (fonction systématiquement exécutée lors du chargement d’une librairie dynamique sous Windows).

Cette vulnérabilité est en réalité connue depuis plus d’un an (fin 2006) comme le montre un post intitulé « Internet Explorer 7 - Still Spyware Writers Heaven » dans le blog du chercheur en sécurité Aviv Raff. Le nom de ce chercheur est par ailleurs mentionné dans le bulletin de Microsoft traitant de la vulnérabilité de Safari, ce qui nous a permis de faire le rapprochement entre les deux failles et d’envisager l’attaque combinant les 2 vulnérabilités.

 

Investigations du Cert-IST sur la vulnérabilité de IE

Le Cert-IST a mené des investigations sur la faille d’Internet Explorer, en particulier dans l’optique d’identifier des solutions palliatives. Certains articles par exemple mentionnaient qu’Internet Explorer recherchait les DLL d’abord dans le répertoire courant, ce qui expliquerait le fait qu’une DLL placée sur le bureau soit chargée lorsqu’Internet Explorer est exécuté à partir du bureau.

Nota : Les investigations ont été réalisées avec Internet Explorer 7 sur Windows XP SP3.  Nous avons constaté par ailleurs que la vulnérabilité ne se produisait pas sous Windows Vista SP1.

Nous avons donc étudié la fonctionnalité « SafeDllSearchMode » qui peut être activée au niveau de la base de registre à partir de Windows 2000 SP4. Cette fonctionnalité permet de modifier l’ordre de recherche des DLL par le système. Lorsque cette fonctionnalité est activée, les répertoires sont parcourus dans l’ordre suivant :

  • Le répertoire à partir duquel l’application est chargée (par exemple C:Program FilesInternet Explorer dans notre cas),
  • Les répertoires systèmes (WINDOWSSYSTEM32 et WINDOWSSYSTEM),
  • Le répertoire de Windows (par exemple C:WINDOWS),
  • Le répertoire courant,
  • Les répertoires listés dans la variable d’environnement « PATH ».

Lorsque l’option SafeDllSearchMode est désactivée, l’ordre de recherche est le même à l’exception du répertoire courant qui est parcouru juste après le répertoire de l’application. L’ordre dans une configuration non sécurisée est donc le suivant :

  • Le répertoire à partir duquel l’application s’est chargée,
  • Le répertoire courant,
  • Les répertoires système,
  • Le répertoire de Windows,
  • Les répertoires listés dans la variable d’environnement « PATH ».

Nous avons été très surpris de lire dans la documentation de Microsoft, que la fonctionnalité SafeDllSearchMode est activée par défaut à partir de Windows XP SP1. Nos expériences pratiques nous ont pourtant montré que la vulnérabilité restait exploitable sous Windows XP SP3 mis à jour avec les derniers correctifs de sécurité. Il semble donc qu’indépendamment du paramétrage concernant la recherche de DLL, Internet Explorer recherche systématiquement ses librairies sur le bureau avant de chercher dans les dossiers système.

Sur la base de nos tests, nous pensons donc :

  • qu’il n'existe pas de mesure palliative empêchant le comportement dangereux de IE,
  • que le comportement de IE concernant la recherche de librairies est : soit écrit en dur dans le code d’IE, soit induit par un problème situé dans l’API Windows.

Toutefois, on peut noter que si l’on exclut le scénario de l’attaque combinée avec Safari, cette vulnérabilité ne présente pas à elle seule un risque très élevé. En effet, quelqu’un qui est capable de déposer un fichier sur le bureau Windows a déjà probablement compromis la machine et, est donc en mesure d’exécuter le code de son choix (par d'autres moyens que IE).

Conséquence de l’attaque combinée

Si l’on résume, d’une part Safari pour Windows dépose par défaut les fichiers sur le bureau de l’utilisateur sans confirmation ; d’autre part, Internet Explorer charge les bibliothèques DLL à partir du bureau si celles-ci possèdent un nom de fichier spécifique. Lorsque ces deux vulnérabilités sont considérées dans le cadre d’une attaque combinée, Internet Explorer peut être amené à charger et exécuter du code issu de fichiers téléchargés par Safari.

Le scénario d’une telle attaque serait donc le suivant :

  • L’utilisateur lance Safari et navigue malencontreusement sur un site malveillant qui, grâce à la vulnérabilité existante dans ce navigateur, dépose un fichier DLL malveillant sur le bureau.
  • Un peu plus tard, ce même utilisateur lance Internet Explorer. Notons au passage qu’il n’est pas nécessaire de lancer IE à partir du bureau, et que cliquer sur un lien dans un e-mail provoque également l’exécution du code malveillant, si toutefois Internet Explorer est le navigateur par défaut de Windows.

Conclusion

Bien que l’impact associé à cette attaque combinée soit une exécution de code à distance, certains éléments font que le risque doit être relativisé :

  • La version Windows de Safari est assez peu répandue,

  • La vulnérabilité ne se produit pas sous Windows Vista,
  • La version 3.1.2 de Safari publiée le 19 juin 2008 demande la confirmation de l’utilisateur avant de télécharger des fichiers et, de plus, l’emplacement par défaut des fichiers téléchargés n’est plus le bureau.

Même si le risque n’est pas aussi critique que ce que la presse informatique a pu le laisser entendre, nous pensons que la vulnérabilité concernant Internet Explorer pourrait bien exister dans d’autres logiciels. S’il s’avère que le problème est lié à la fonctionnalité de recherche des DLL sous Windows XP, toute application ne spécifiant pas le chemin complet d’une librairie lors de l’appel à la fonction « LoadLibrary() » de l’API Windows pourrait alors être vulnérable à ce type de détournement.

 

Pour plus d’information :

 

Précedent Précedent Suivant Suivant Imprimer Imprimer