Une attaque de MarioNET permet aux pirates de contrôler votre navigateur, même après avoir quitté la page d'attaque

La montée des technologies Web a ouvert de nouvelles possibilités sur Internet. Les navigateurs sont devenus plus puissants au fur et à mesure de l’apparition de nouvelles API et de la prise en charge de certaines fonctionnalités.

Une nouvelle attaque, appelée MarioNET par les chercheurs qui l'ont découverte, souligne que les API peuvent également être utilisées de manière abusive si aucune protection adéquate n'est en place (ce qui est le cas actuellement).

L'attaque repose sur les API HTML5 existantes prises en charge par tous les navigateurs Web modernes. Il ne nécessite ni l'installation de logiciel ni l'interaction de l'utilisateur et persiste même après que l'utilisateur a quitté la page Web sur laquelle l'attaque a été créée.

L’attaquant peut exploiter les ressources de l’ordinateur pour toutes sortes d’activités, notamment les attaques DDOS, les opérations de crypto-extraction ou la recherche de mots de passe.

Mise à jour : Vous trouvez une voix critique qui s'oppose au scénario décrit dans le document de recherche ici. Le principal point de critique est que la méthode d'attaque s'appuie sur une fonctionnalité appelée PeriodicSync et qu'elle ne fait pas partie d'une spécification à ce stade. Fin

MarioNET utilise les services ouvriers, des scripts exécutés séparément des pages Web visitées et en arrière-plan, lors de l'attaque. L'idée principale derrière Service Workers est de déplacer certains calculs vers un thread séparé afin que celui-ci ne bloque pas ou ne ralentisse pas l'application ou la page Web avec laquelle l'utilisateur interagit.

Le cycle de vie de Service Workers est complètement indépendant de la page sur laquelle ils ont été créés. Les employés de service n'ont pas accès au DOM (Document Object Model) de la page Web et aux variables et fonctions de la page parent.

L'utilisation de Service Workers isole le système du site Web d'origine, confère un contrôle permanent à l'attaquant et empêche les utilisateurs de détecter ce qui se passe.

En particulier, notre système remplit trois objectifs importants:

(i) isolement du site Web visité, permettant un contrôle précis des ressources utilisées; (ii) la persistance, en continuant son fonctionnement en arrière-plan même après la fermeture de l'onglet parent; et (iii) l'évitement, en évitant la détection par les extensions du navigateur qui tentent de surveiller l'activité de la page Web ou les communications sortantes.

MarioNET enregistre un agent de service lorsqu'un utilisateur visite une page Web à l'origine des attaques. Les possibilités de propagation de l'attaque incluent la création de sites Web malveillants, le piratage de sites ou l'utilisation de publicités.

Les navigateurs fournissent peu d'informations aux utilisateurs sur les travailleurs de service; En fait, les navigateurs ne soulignent pas la création de nouveaux agents de service sur les sites pour les utilisateurs. Il n'y a pas d'alerte, pas d'invite, et même pas l'option d'afficher une invite demandant l'autorisation de l'utilisateur lorsque des agents de maintenance sont créés.

La seule demande qui révèle l'existence du prestataire de services est la requête GET initiale au moment de la première visite du site Web de l'utilisateur, lorsque le prestataire de services est initialement enregistré. Bien que pendant cette demande GET, une extension de surveillance puisse observer le contenu du service worker, celui-ci ne détectera toujours aucun code suspect. cette communication est cachée des extensions du navigateur

Ce qui rend MarioNET particulièrement troublant, c’est qu’il continue à s’exécuter en arrière-plan après la fermeture du site Web à l’origine de l’attaque. Le contrôle se termine lorsque le navigateur Web est fermé. les chercheurs ont également trouvé un moyen de remédier à ce problème, mais cela nécessite l'intervention de l'utilisateur car il utilise l'API Web Push pour le faire.

protection

La plupart des navigateurs modernes incluent des options pour afficher les travailleurs de service existants. Les utilisateurs de Firefox peuvent charger à propos de: serviceworkers ou à propos du: débogage # workers et les utilisateurs de Chrome peuvent charger chrome: // serviceworker-internals / pour le faire.

Vous pouvez annuler l’enregistrement de tout travailleur de service à l’aide des fonctionnalités fournies dans ces pages. Les utilisateurs de Firefox peuvent également désactiver complètement les travailleurs de service.

Notez que cela peut avoir un impact sur les fonctionnalités des sites qui l'utilisent à des fins légitimes. Vous devez définir la préférence dom.serviceWorkers.enabled sur false pour about: config.

Certaines extensions de navigateur, par exemple Service Worker Detector pour Chrome et Firefox, informent les utilisateurs lorsqu'une page Web enregistre un agent de service.

Maintenant vous : Les développeurs de navigateurs devraient-ils mettre en œuvre des garanties supplémentaires? (via ZDNet)