Les extensions de Firefox sont vulnérables à un certain type d’attaque, qui leur permet d’appeler des fonctions présentes dans d’autres. Cet appel peut permettre de déclencher des actions qui mèneront à la récupération d’un malware notamment. Le souci n’est pourtant pas nouveau.
Firefox a beaucoup fait pour populariser les extensions. Ces petits compléments s’installent via un centre spécifique, qui permet de renforcer le navigateur, principalement par l’ajout de fonctionnalités. Prise de note, gestion des téléchargements ou encore évidemment blocage de publicités, beaucoup sont très utilisées et, comme on a pu le voir avec Edge, elles sont considérées comme partie intégrante d’un navigateur moderne.
Le modèle utilisé par Firefox se nomme XPCOM, pour Cross Platform Component Object Model. C’est lui qui permet aux extensions de s’ébattre gaiement dans le jardin préparé par Mozilla, lui qui définit également leurs capacités et donc leurs limites. Or, XPCOM manque justement de limites, puisque les extensions peuvent voir leurs fonctionnalités appelées par d’autres, d’une manière qui n’était clairement pas prévue.
Une infrastructure trop permissive
C’est le résultat des travaux menées par quatre chercheurs et présenté lors de la conférence Black Hat Asia. Ils ont montré que les extensions pouvaient en effet faire appel à des fonctionnalités précises dans d’autres pour servir de sombres desseins. Une extension peut prévoir de tels mécanismes, sans les incorporer elle-même. Conséquence, elle passe tous les tests de validation, dont ceux de sécurité.
La faille est globalement nommée « Extension-reuse vulnerability », même si elle représente plus un mécanisme global qu’une faille précise. Les chercheurs, dans leurs documents, expliquent qu’ils ont pu ainsi publier une extension baptisée « ValidateThisWebsite » et dont l’objectif principal était, comme son nom l’indique, de valider des sites web. Mais elle contient dans ses routines un appel à l’extension NoScript dont elle se servira pour ouvrir un onglet sur une adresse précise. On comprend évidemment la portée du problème.
Les extensions peuvent accéder à de nombreuses données
Car cette technique peut s’insérer facilement dans une chaine menant à la contamination d’une machine et/ou au vol d’informations personnelles. Si l’utilisateur récupère une extension qu’il ne connaît pas, provenant d’une source qu’il n’a pas contrôlée, il peut se retrouver avec le téléchargement d’un malware ou l’ouverture d’un lien pointant vers une page qui, elle, tentera d’exploiter une autre faille, par exemple dans Flash.
Pour donner une idée plus précise de ce qui cloche, les chercheurs indiquent : « Les extensions peuvent souvent accéder à des informations privées de navigation telles que les cookies, l’historique et les mots de passe, et même des ressources système. Par exemple, Firefox expose une API riche à ses extensions à travers XPCOM qui permet un accès presque illimité aux ressources système sensibles, comme le système de fichiers et le réseau. En conséquence, les extensions malveillantes, ou les attaques dirigées contre les extensions légitimes, posent un risque significatif de sécurité pour les utilisateurs. »
Presque tous les grands noms sont touchés
Et ce risque peut rapidement se manifester, car les extensions vulnérables sont nombreuses. Les chercheurs expliquent ainsi que sur les 2 000 les plus téléchargées, plus de 3 000 fonctionnalités sont ainsi appelables. En fait, dans le top 10 des plus utilisées, seule une ne contient aucune vulnérabilité de ce type : Adblock Plus. NoScript en contient 5, VideoDownloadHelper en contient 15 et Web of Trust en présente même 33.
Le vrai problème est qu’il n’existe en l’état rien à faire de particulier pour remédier à la situation. Les développeurs d’extensions peuvent éventuellement se pencher sur leur code et « blinder » leurs fonctionnalités, mais sans aucune garantie de succès. Car le souci se situe dans l’infrastructure sous-jacente, qu’il revient donc à Mozilla à corriger.
L’éditeur est au courant de la situation. Interrogé par Threatpost, Nick Nguyen, vice-président de la stratégie produit, a ainsi répondu : « La manière dont les extensions sont implémentées dans Firefox aujourd’hui permet le scénario présenté à la Black Hat Asia ». Il a cependant indiqué que Firefox serait équipé plus tard dans l’année d’une nouvelle infrastructure qui isolerait davantage les extensions et bloquerait donc ce type de problème.
Patienter le temps que Mozilla mette en place les WebExtensions
Car si certains se sont posés la question de la reproductibilité sur Chrome, ils ont peut-être été étonnés de ne pas voir le navigateur de Google cité. La raison est simple : ces vulnérabilités n’y existent pas. Et il n’y a aucun hasard dans l’annonce de Mozilla d’utiliser le même mécanisme via les WebExtensions. D’ailleurs, les dernières versions de Firefox ont commencé à mettre en place les briques fondatrices de cette nouvelle infrastructure, Mozilla ayant multiplié les appels aux développeurs pour qu’ils commencent à mettre à jour leurs extensions.
En attendant, il est simplement recommandé aux utilisateurs d’installer des extensions dont la source est connue et clairement établie. Ce n’est donc pas le moment de trop tenter l’aventure puisque s’ouvre désormais une période d’incertitude, avant que les WebExtensions ne prennent le relai dans les prochains mois