Firefox : de nombreuses extensions vulnérables à la réutilisation des fonctions

Firefox : de nombreuses extensions vulnérables à la réutilisation des fonctions

Aucune recette miracle

Avatar de l'auteur
Vincent Hermann

Publié dans

Logiciel

05/04/2016 5 minutes
27

Firefox : de nombreuses extensions vulnérables à la réutilisation des fonctions

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

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Une infrastructure trop permissive

Les extensions peuvent accéder à de nombreuses données

Presque tous les grands noms sont touchés

Patienter le temps que Mozilla mette en place les WebExtensions

Le brief de ce matin n'est pas encore là

Partez acheter vos croissants
Et faites chauffer votre bouilloire,
Le brief arrive dans un instant,
Tout frais du matin, gardez espoir.

Fermer

Commentaires (27)


En fait, le fait que Mozilla force à court terme les Webextensions (qui font raler certains) est bien pour cette raison à mon avis.


Après sur le store des extension pour Chrome, il y a à boire et à manger. Comme n’importe quelle app android. Je ne suis pas sûr que question confidentialité ou sécurité ça soit la panacée non plus.


Je ne connais que très peu ce sujet mais XPCom n’étant qu’un modèle conceptuel ne serait-il pas possible de simplement mettre à jour la technique pour dire “maintenant l’application X ne peut plus appeler les fonctions de l’extension Y” ?



Ou serait-ce trop compliqué de mettre à jour le modèle conceptuel ?



A moins qu’ils ne se disent “autant en profiter pour migrer sur autre chose” d’où les webextensions.


Merci pour cette news très avertissante.



Serait il possible de connaitre les autres extension touché par cette vulnérabilité ? Car le top 10 sur les milliers d’extension dispo c’est peu.








Dyfchris a écrit :



Merci pour cette news très avertissante.



Serait il possible de connaitre les autres extension touché par cette vulnérabilité ? Car le top 10 sur les milliers d’extension dispo c’est peu.





Pareil… Pour l’instant, 1 me concerne, je suis sur que d’autres aussi <img data-src=" />; y’a une liste quelque part ?



Pour le coup c’est une non nouvelle. On sait depuis toujours que ce genre d’exploitation de faille est possible et que c’est une conséquence du modèle très libre des extensions de Firefox.



&nbsp;







Crillus a écrit :



Je ne connais que très peu ce sujet mais XPCom n’étant qu’un modèle conceptuel ne serait-il pas possible de simplement mettre à jour la technique pour dire “maintenant l’application X ne peut plus appeler les fonctions de l’extension Y” ?





&nbsp;Trop compliqué a détailler, mais en gros non, XPCOM ne gère pas ça et ça remettrait probablement tout Firefox en cause.







Dyfchris a écrit :



Merci pour cette news très avertissante.



Serait il possible de connaitre les autres extension touché par cette vulnérabilité ? Car le top 10 sur les milliers d’extension dispo c’est peu.





En gros aucune extension n’a de faille de sécurité en soi, mais une extension malicieuse peut s’appuyer sur les fonctionnalités d’une extension saine, pour éviter d’agir elle même et d’ainsi être détectée. Ceci on a déjà vu plein d’extension malicieuses passer au travers de la détection sans recourir à ça, donc au final ça ne change rien.

La clé reste toujours de ne pas utiliser les extensions auxquelles on ne fait pas confiance



Aïe, aïe, aïe… Ouille, ouille, ouille !



Liste des extensions vulnérables du Top 10 listées dans l’article :





  • Video DownloadHelper

  • Firebug

  • NoScript

  • DownThemAll!

  • Greasemonkey

  • Web of Trust

  • Flash Video Download

  • FlashGot Mass Download

  • Download YouTube Videos







    Sinon, en examinant le Top 2000 des extensions, ils ont déterminé qu’il y avait plus de 3018 vulnérabilités exploitables.



    Autrement dit, c’est juste Aaargh !


Il n’y a aps de raison particulière de paniquer : ces extensions ne sont pas vulnérables directement.

Elles ne peuvent être exploitées que si on a installé une autre extension malicieuse, ce qui a de toute façon toujours été un risque bien connu.


Bah, si, un peu quand même : comment sait-on si une extension est malicieuse ou pas ?








Uther a écrit :



Il n’y a aps de raison particulière de paniquer : ces extensions ne sont pas vulnérables directement.

Elles ne peuvent être exploitées que si on a installé une autre extension malicieuse, ce qui a de toute façon toujours été un risque bien connu.





C’est juste, mais ce qu’ils ont aussi montré est qu’une extension peut être à la fois utile et malveillante et peut parfaitement réussir l’examen de validation le plus poussé proposé par Mozilla.



Je comprends pas trop le véritable risque.

Si, pour etre malveillante, une extension a besion d’une autre elle meme malveillante, alors cette derniere pourrait de toute facon exécuter directement le code malveillant. Donc le fait que la premiere puisse faire appel à la seconde ne rajoute pas de risque supplémentaire ?


“Aurait pu”, c’est la nuance !



Là tu as une extension qui contient du code qui “pourrait” etre mal utilisé, mais qui ne l’est pas, donc aucune raison de la bloquer, et de une deuxième extension qui n’a pas besoin d’inclure du code qui “pourrait” etre mal utilisé puisqu’il lui suffit d’aller piocher dans la première, donc aucune raison de bloquer la deuxième non plus.



Pour faire une analogie, imagine une app sur ton smartphone qui accède à tes contacts, elle te demande la première fois, si tu as confiance tu valides, jusque là tout va bien. Maintenant tu en installes un deuxième, qui ne te demande rien, mais qui via la première accède à tes contacts. (Évidemment cette faille là n’existe pas à priori <img data-src=" />)


Pour DownThemAll!, de toute façon son sort est scellé, il ne sera pas porté sur le système de WebExtensions comme ses créateurs l’ont annoncé il y a longtemps (et il ne fonctionne plus très bien avec les dernières versions de Firefox).

&nbsp;


C’est une impossibilité technique ou c’est plus politique ?



Sachant que les WebExtensions touchent Firefox, Edge et sûrement Chrome c’est dommage…


Je me suis toujours posé une question : Les extensions installées mais non activées sont vulnérables également ? Pas activée veut dire pas en mémoire ou ça ne change rien, le code est quand même installé dans Firefox ?



Dans le même ordre d’idée, on peut alléger son Firefox en désactivant les extensions ou il faut obligatoirement les désinstaller ?








picoteras a écrit :



C’est juste, mais ce qu’ils ont aussi montré est qu’une extension peut être à la fois utile et malveillante et peut parfaitement réussir l’examen de validation le plus poussé proposé par Mozilla.





ça j’ai du mal à comprendre comment c’est possible sachant que le code source des extensions est accessible à tous.



perso je n’installe des extensions que depuis le site de mozilla et uniquement des extensions qui sont signées ET vérifiées (en vert donc).









jeje07bis a écrit :



ça j’ai du mal à comprendre comment c’est possible sachant que le code source des extensions est accessible à tous.



perso je n’installe des extensions que depuis le site de mozilla et uniquement des extensions qui sont signées ET vérifiées (en vert donc).





Si tu vas à la page 9 du PDF dont le lien était donné dans la news, tu verras que leur extension proof of concept était en vert sur le catalogue de Mozilla.



Leur passage pertinent :

“Our extension consisted of approximately 50 lines of JavaScript code, and did not contain code obfuscation or any other attempt to hinder analysis. We submitted our extension to the Mozilla Add-ons repository, and opted for the full review option. This option represents the highest degree of scrutiny offered by Mozilla, and involves functional testing and human code reviews for security.

[…]

Our extension successfully passed the initial automated analysis upon submission, and subsequently passed the full review process without receiving any security warnings. We were notified of its acceptance to the online repository two days after its submission […].

[…]

We downloaded and tested the online version of our extension, and verified that the cross-extension call indeed works as intended. This case study […] serves as an existence proof that malicious extensions exploiting extension-reuse vulnerabilities can indeed pass the vetting process undetected, and that they pose a real threat to Firefox users.”



L’avenir c’est edge bloqué à sa version actuelle.

[]=&gt;








S.M. Eisenstein a écrit :



Pour DownThemAll!, de toute façon son sort est scellé, il ne sera pas porté sur le système de WebExtensions comme ses créateurs l’ont annoncé il y a longtemps (et il ne fonctionne plus très bien avec les dernières versions de Firefox).

&nbsp;





Et c’est quoi l’équivalent qui marche bien, qui continuera à marcher et qui sera porté ?



Bon ben c’est dommage alors. Du coup je vais regarder si je ne peux pas trouver plus d’infos sur le sujet. Merci pour la réponse. <img data-src=" />





Après remettre tout en question ne serait pas un mal, je suis un grand fan du panda roux depuis plus de 10 ans et le pauvre commence à accuser certaines obsolescences, dont on constate aujourd’hui un des éléments apparemment dans sa conception même.


La seule que j’utilise dans cette liste est Video Download Helper (qui devent de plus en plus chiante au passage). Il existe quoi comme alternatives ?








arno53 a écrit :



C’est une impossibilité technique ou c’est plus politique ?




Sachant que les WebExtensions touchent Firefox,  Edge et sûrement Chrome c'est dommage...








C'est probablement "politique", http://www.downthemall.net/the-likely-end-of-downthemall/  



(ça date de 2015, donc pas nouveau).

&nbsp;





Zorglob a écrit :



Et c’est quoi l’équivalent qui marche bien, qui continuera à marcher et qui sera porté ?






Sur Firefox, je n'ai rien trouvé, ce qui ne signifie pas qu’il n' y ait rien.     



Sur Chrome, il y a : http://www.chronodownloader.net/ qui lui&nbsp; ressemble un peu, mais “en moins bien” et il y a de la pub.



Les commentaires sur la page de DTA : https://addons.mozilla.org/fr/firefox/addon/downthemall/ et ma courte expérience http://forum.hardware.fr/hfr/WindowsSoftware/Logiciels/mozilla-firefox-nightly-s… montrent que de toute façon, DownThemAll! fonctionne de plus en plus mal avec les versions récentes de Firefox (moi, c’est la V45, c’est encore pire avec les suivantes).



Je continuerai à m’en servir jusqu’à ce qu’il soit “cassé” (surtout pour mes podcasts Radio France), l’astuce mentionnée dans les commentaires marche très bien chez moi et a rétabli un fonctionnement quasi normal avec la version stable officielle :



KungFuGrip, sur les commentaires de DTA a écrit :



“ Since the latest version (2.0.18.1) whenever you try to change the “concurrent downloads”, “downloads per server” and “max segments per download” they would always go back to the default of 1. To fix this, use about:config:extensions.dta.ntask —- for max concurrent downloads - I use 20 since that is the max in preferences. Now you can always use a higher number in any of the 3 settings and lower it if DTA starts acting funny.extensions.dta.serverlimit.perserver —- for max concurrent downloads per server - I use 10extensions.dta.maxchunks —- for max segments per download - I use 10After you do that in about:config when you close/reopen FF and you open the preferences panel it will still look like it’s defaulted back to 1,1,1 but I have noticed a HUGE difference even though it says 1,1,1. Try it out and see. It can’t hurt to experiment with the settings in about:config. If you don’t like it, you can always set it back to the default in about:config.”









Gilbert_Gosseyn a écrit :



La seule que j’utilise dans cette liste…





Il y a surtout à ne pas faire une fixette sur cette liste car c’était juste celle des extensions qu’ils ont trouvé vulnérables dans le Top 10 du catalogue Mozilla (tel qu’il était lorsqu’ils ont effectué leur recherche).



Leurs résultats globaux – plus de 3018 vulnérabilités exploitables dans le Top 2000 – signifient que des vulnérabilités exploitables sont présentes dans l’écrasante majorité des extensions de ce Top 2000.



Pour les inconditionnels de Firefox – dont je suis – il reste à serrer les fesses en attendant l’implémentation des WebExtensions, en formulant très fort les vœux 1) qu’aucun des développeurs de nos extensions favorites ne pique une crise façon supervillain à l’occasion d’une mise à jour de son bébé et 2) qu’aucun ne cède aux sirènes de très sympathiques correspondants, écrivant d’ordinaire en cyrillique, qui offriraient de très alléchantes sommes en bitcoins pour qu’ils insèrent – oh, juste 3-4 petites – nouvelles lignes de codes à peine obscures dans leurs extensions.





Par ailleurs, je relaie volontiers la question fort intéressante et stratégique qu’a posé plus haut Depy1501, à laquelle je n’ai jusqu’ici pas de réponse (mais que sûrement d’autres INpactiens connaissent) :





Depy1501 a écrit :



Je me suis toujours posé une question : Les extensions installées mais non activées sont vulnérables également ?










picoteras a écrit :



Par ailleurs, je relaie volontiers la question fort intéressante et stratégique qu’a posé plus haut Depy1501, à laquelle je n’ai jusqu’ici pas de réponse (mais que sûrement d’autres INpactiens connaissent) :





Il faut voir&nbsp; cela comme un module apportant son jeu de fonctions / fichiers. Si il n’est pas activé, rien du module ne peut répondre.









YesWeekEnd a écrit :



Il faut voir  cela comme un module apportant son jeu de fonctions / fichiers. Si il n’est pas activé, rien du module ne peut répondre.





Concis et limpide. Merci !



D’un autre coté, un plugin ou une extension (deux choses différentes) qui ne sert pas, vaut mieux le/la supprimer.








Gilbert_Gosseyn a écrit :



D’un autre coté, un plugin ou une extension (deux choses différentes) qui ne sert pas, vaut mieux le/la supprimer.





Evidemment. Mais on peut aussi vouloir désactiver un module (terme générique employé par mozilla) temporairement.