L'une des nouvelles fonctionnalités de Tiger, la dernière mouture du MacOS X d'Apple, permet l'installation automatique de code à distance. Exploitable dans la configuration par défaut du système, l'attaque repose sur l'exécution automatique de contenus dits sûrs par le navigateur Safari. Un exemple fonctionnel existe déjà.

au sommaire


    Le Dashboard de MacOS 10.4 et ses widgetsCrédits : Apple

    Le Dashboard de MacOS 10.4 et ses widgetsCrédits : Apple

    Dashboard est l'une des nouvelles fonctionnalités proposées par Tiger, la dernière mouture de MacOS X. Le Dashboard est un "écran supplémentaire" qui apparaît et disparaît à volonté par dessus l'écran traditionnel. Il permet de stocker de petites applicationsapplications utilisées occasionnellement (la calculatrice, les post-it...) ou amusantes (afficher la météométéo, suivre un vol commercial en temps réel...) sans qu'elles n'encombrent pour autant l'écran principal. Ces applications sont appelées des widgets et sont en réalité un assemblage d'HTML, de CSS et de Javascript (et occasionnellement un langage compilé). AppleApple en fournit plusieurs par défaut, mais bien sûr n'importe qui peut en écrire et déjà les sites de passionnés fleurissent de widgets originaux.

    Mais voilà : depuis quelques jours des petits malins ont découvert qu'ils pouvaient aussi installer automatiquement leurs widgets sur les Mac des visiteurs de leur site web. L'attaque, car cela en est bien une, exploite le comportement par défaut du navigateur Safari, qui ouvre automatiquement les documents téléchargés jugés "sûrs". Ce comportement aberrantaberrant avait déjà été à l'origine d'une faille du même type l'an dernier. Aujourd'hui, il est utilisé pour forcer le téléchargement d'un widget et l'ouvrir automatiquement, ce qui provoquera son installation immédiate dans la bibliothèque des widgets.

    À partir de là, il ne sera pas exécuté automatiquement mais il apparaîtra dans la barre qui présente les widgets prêts à être utilisés d'un simple glissé-déplacé. Et l'utilisateur n'aura aucun moyen évident de le retirer : il lui faudra savoir où les widgets sont stockés sur le système de fichiers et aller l'effacer manuellement.

    Première exploitation possible de cette vulnérabilité : la publicité. Un site web pourra saturer la barre des widgets d'images publicitaires qui apparaîtront à chaque fois que l'utilisateur voudra modifier ses widgets. Accessoirement, il y a aussi le potentiel d'une attaque par déni de servicedéni de service si le nombre de widgets téléchargés de force est important.

    Deuxième attaque possible : l'utilisation du widget comme un cheval de Troiecheval de Troie. Car les widgets peuvent potentiellement accéder à toutes les fonctions du système. Apple a certes eu la bonne idée de mettre en oeuvre un système d'autorisation ingénieux où chaque widget doit déclarer au préalable les opérations "sensibles" dont il aura besoin pour son exécution et obtenir l'autorisation de l'utilisateur.

    Mais en dépit de ce modèle de sécurité, il demeure tout à fait possible de créer un widget malicieux qui nécessiterait certaines autorisations (accès au réseau par exemple) pour remplir une fonction légitime mais qui l'exploiterait également pour une autre tâche malicieuse. Cela serait d'autant plus simple que les messages d'alerte à l'utilisateur ne sont pas clairs du tout. Une fois autorisé, le widget dispose alors du même accès que n'importe quel programme lancé par l'utilisateur : il peut notamment exécuter n'importe quelle commande UnixUnix, accéder au réseau à sa guise, etc...

    Des parades efficaces en attendant une réponse officielle

    En attendant qu'Apple adapte le modèle de sécurité des widgets, il existe plusieurs méthodes afin d'empêcher leur installation automatique. La plus évidente est de décocher la case "Ouvrir les fichiers fiables" des préférences de Safari. Il est de toute façon franchement inconscient de laisser ce réglage tel quel.

    Une autre solution consiste à changer les autorisations sur le répertoire d'installation des widgets grâce à la commande chmod 0550 ~/Library/Widgets/. Cela est suffisant pour empêcher l'installation de widgets. Enfin, il est aussi possible d'utiliser l'outil baptisé "Widget, The World Watcher", justement destiné à surveiller les installations automatiques des widgets.

    Selon certains tests réalisés par des amateurs, il semblerait que l'affaire soit plus sérieuse encore : si un widget malicieux, téléchargé automatiquement, porteporte le même nom que l'un de ceux fournis par défaut avec le système, il pourra bénéficier des autorisations de l'original sans que l'utilisateur n'en soit avertit. À quand une signature électroniquesignature électronique pour les widgets ?