Dashboard, la passoire d'OSX en terme de sécurité [MAJ]
Je laisse la parole à Julious qui amène quelques précisions quant au trou de sécurité que représente Dashboard:
Se protéger des widgets malicieux (suite)Ce genre de trou de sécurité créé de toute pièce ressemble furieusement à du Microsoft... Va-t'on bientôt commencer à voir arriver de nombreux patchs de sécurité pour combler les failles évitables du système?
Dans cette news d'il y a deux jours , Lionel a averti qu'un problème pouvait se poser quant à l'installation automatique de widgets. Voici plus de précisions sur les risques encourus :
Quand Safari rencontre un fichier de type wdgt, il l'installe par défaut automatiquement dans ~/Library/Widgets. L'identification de chaque widget au niveau de Dashboard est faite par un fichier interne au widget. Le problème se pose quand Dashboard va essayer de charger les widgets pour la première fois. Si deux widgets ont le même identifiant, seul le second va être chargé par Dashboard. Or, les widgets dans le dossier de l'utilisateur (~/Library/Widgets) sont chargés après ceux du système (/Library/Widgets). Et c'est justement dans les widgets de l'utilisateur que peuvent se loger des widgets malicieux.
Les widgets peuvent faire absolument tout ce qu'ils veulent sur le système, modulo les permissions de l'utilisateur. Apple a bien mis en place une certaine politique de sécurité qui oblige les widgets à déclarer ce qu'ils vont faire (lire ou écrire un fichier,accéder aux net, lancer des commandes...), mais aucun feedback n'est donné à l'utilisateur sur ces actions. Il n'y a jamais aucune demande d'autorisation formelle. Un widget qui déclare l'utilisation de la ligne de commande peut donc faire ce qu'il veut à l'intérieur du dossier home.
Les widgets peuvent se télécharger automatiquement, juste en surfant sur le web, il suffit de les mettre dans une balise meta.
Dans ces conditions, il est extrêmement aisé pour un vilain bougre de créer une page web qui télécharge un widget à l'insu de l'utilisateur. Safari décompresse le fichier, l'installe automatiquement. Le widget, qui aura par exemple le même identifiant et la même icône et le même nom qu'un widget apple, se chargera à la place de celui-ci quand Dashboard sera appelé. L'utilisateur n'aura rien vu, sauf que quand il essayera de glisser le widget en question, en croyant que c'est un widget Apple, le widget pourra prendre la main et effacer tous les fichiers de l'utilisateur.
Certains ne considèrent pas celà comme une faille car dans le fond, c'est bien l'utilisateur qui autorise le widget à effacer tous ses fichiers, mais Dashboard et Safari proposent assez de facilité pour permettre de tromper l'utilisateur avec éventuellement des conséquences lourdes. Les solutions sont simples :
- interdire la décompression automatique de Safari
- changer les permissions du dossier ~/Library/Widgets
- utiliser AppleScript pour notifier l'installation d'un nouveau widget dans ~/Library/Widgets.
en attendant 10.4.1
la plupart des infos proviennent d' Ars Technica et j'ai pu en constater la véracité en créant moi-même un petit widget. Ca m'a pris 20 minutes.
[MAJ]
Comme certaines personnes ont du mal à comprendre le problème voici une petite explication de ce qui peut arriver lorsque vous surfez sur le web avec l'option "ouvrir automatiquement les fichiers fiables" de Safari:
Vous arrivez sur un site quelconque qui lance un téléchargement automatique d'un widget zippé. Vous ne voyez rien sauf si vous avez les yeux sur le gestionnaire de download de Safari. Le fichier est dézippé puis installé tout seul (vous ne voyez toujours rien) dans le dossier des widgets.
Supposons que ce widget soit malicieux, pour le moment vous ne connaissez même pas son existence sur votre disque. Il peut prendre la place d'un des widgets d'Apple en usurpant son identité, par exemple la calculatrice. Lorsque vous ouvrez dashboard vous ne verrez rien de nouveau, le widget a pris l'identité et l'icône de la calculatrice de dashboard sans rien vous demander. Vous lancer la calculatrice, aucune demande de confirmation ne sera faite, celle-ci sera directement exécutée. Si le code du widget malicieux fait un rm sur vos dossiers vous perdez vos dossiers! Sans rien comprendre....