Site Isolation : Chrome utilise plus de ressources

Chrome-fast-Background

Dans un récent billet de son blog posté le 11 Juillet dernier, Google revient sur le système mis en place pour protéger les utilisateurs de Chrome contre la plupart des tentatives d’exploitation de la faille de sécurité Spectre. Voici ce que nous apprends la firme américaine sur ce dispositif nommé : Site Isolation.

La faille Spectre

C’est en Janvier dernier que le Google Project Zero a dévoilé un ensemble d’attaques par canal latéral d’exécution spéculatives. Nous les nommons aujourd’hui les failles Spectre et Meltdown. Pour faire simple, ces attaques exploitent la possibilité d’accéder à des parties mémoires interdites à un bout de code. Ainsi un code malveillant peut découvrir des données stockées dans cette mémoire, même si ces données sont celles d’un autre processus. Cela permet donc à n’importe quel code de lire n’importe quelle mémoire dans l’espace d’adressage de son processus.

 

Dans l’optique de contrer ce type d’attaques de nombreux correctifs ont été apportés sur différents supports comme les OS, les processeurs et sur les navigateurs. Mais ces correctifs ne sont pas toujours une protection parfaite car le problème vient de l’architecture même des processeurs. Et on ne peut pas faire de mise à jour sur une architecture matériel. Il faut donc trouver des astuces pour contourner ce problème. Et malheureusement, cela passe parfois par une baisse de performances …

 

Pourquoi les navigateurs sont-ils plus à risque ?

Les navigateurs sont des proies parfaites pour ce type d’attaque car ils ont la capacité d’exécuter du code Javascript. Ce code javascript peut potentiellement être malveillant car venant d’une source à laquelle on peut faire confiance ou non. Un petit malin peut tout à fait insérer du code Javascript malveillant dans un site internet lui appartenant ou bien dans un autre qu’il aurait piraté avant d’y insérer le fruit de son travail. Mais le plus gros problème réside dans le fait que la plupart du temps ce code Javascript est exécuté dans le même processus que celui du navigateur. Un site internet peut donc en théorie utiliser cette faille dans le but de dérober des données d’autres sites.

Atténuer les risques mais toujours pas le terme protection

Selon Google, tous les principaux navigateurs auraient déjà déployé des systèmes permetant d’atténuer les effets de Spectre, et ce principalement en modifiant leurs compilateurs Javascript. Mais, toujours selon la firme, cela ne ferait que réduire les chances de réussite d’exploitation de cette faille Spectre.

 

C’est sur ce constat que Google a planché sur une autre solution. Et d’après eux, l’atténuations la plus optimale et la plus efficace viendrait d’approches comme l’isolement des sites. Un peux à la manière des conteneurs pour ceux d’entre vous qui connaissent Docker par exemple. On notera tout de même qu’on ne parle toujours pas d’une protection pleine et entière, mais bien d’atténuer, d’amoindrir les risques …

 

Site Isolation

La mise en place de cette solution dans Chrome. Site isolation représente selon Google un changement important dans l’architecture de Chrome (et par définition dans Chromium). Cette solution va appliquer un changement profond dans la manière dont Chrome gère les sites auxquels nous accédons avec ce navigateur. Ainsi Chrome limite chaque processus de rendu aux documents d’un seul site.

 

NB: Chrome utilise une définition de “site” qui n’inclut que le schéma et le domaine enregistré. Par exemple, https://alexisvachard.fr dans ce contexte est un site avec son propre processus pour effectuer ses rendus. Mais le sous-domaine https://un-sous-domaine.alexisvachard.fr restera dans le même processus que celui de mon URL précédente. De manière plus simple, Chrome traite chaque élément venant de domaines différents en autant de processus distincts qu’il y a de domaines différents.

 

Si j’ai 5 éléments de 5 domaines différents, j’aurai alors 5 processus différents. Et c’est là que la différence se trouve par rapport au fonctionnement qu’avait Chrome avant Site Isolation. Avant ce système, si une page contenait par exemple une vidéos youtube, la page et la vidéos étaient traités dans le même processus que la page elle même. Désormais, nous aurons un processus pour la vidéos (car elle vient du domaine youtube.com) et un processus pour notre page web. De ce fait, si un site internet est corrompu, il ne pourra normalement pas accéder aux cookies exploités par d’autres sites, aux mots de passes ou tout autre donnée sensible présente dans la mémoire de votre ordinateur.

 

Le fonctionnement en image

Site Isolation for Google Chrome

 

Un autre risque à ne pas oublier

La firme met tout de même en garde sur un point. Même si chaque processus de rendu est limité à un domaine, il existe toujours le risque que la page d’un attaquant accède à des données provenant d’un autre site en les demandant en tant que sous-ressources. Cela peut être par exemple des images ou des scripts… En effet, si on veux intégrer une image sur une page web on peut très bien se servir de son URL pour l’afficher sur notre page et ne pas avoir à l’héberge nous même. Idem pour des scripts Javascript.

 

Mais une page pourrait demander une URL HTML ou JSON avec des données sensibles comme s’il s’agissait de simples images. Cela n’expose normalement pas les données demandées à la page, mais elles finiraient tout de même dans le processus de rendus du domaine de l’attaquant.

 

Pour atténuer cela (toujours pas mention de protection), le Site Isolation inclut une fonctionnalité nommée CORB pour Cross-Origin Read Blocking. Cette fonctionnalité fait d’ailleurs maintenant partie de la spécification Fetch (plus d’infos ici, ici, et ici).

 

CORB essaie de bloquer de manière transparente et implicite les réponses HTML, JSON et XML entre les sites internet à partir du processus de rendu. Ainsi, pour obtenir le maximum de protection de la part de Site Isolation et de CORB, Google encourage les développeurs à vérifier que les ressources sont servies avec le bon type MIME, et avec l’entête de réponse nosniff.

 

Mais les performances alors ?

On le sait tous ou presque, Chrome dans son état avant Site Isolation est gourmand. Et voici donc ce que précise Google à propos des performances. Malgré que ce changement représente une restructuration importante des mécanisme de Chrome, Google insiste sur le fait que cela ne devrait pas entraîner de changements visibles pour la plupart des utilisateurs (on notera l’utilisation du conditionnel et de la tournure de la phrase avec “la plupart des utilisateurs”).

Mais Google précise finalement, et on s’en doute, que cette technique grandi le nombre de processus de rendu ce qui s’accompagne par un compris sur les performances. D’un point de vue positif, chaques processus devient plus petit et possède une durée de vie moins grandes, mais on note une augmentation de 10% à 13% de la mémoire RAM à cause de cette augmentation significative des processus. Avant de finir par affirmer que leur équipe continue de travailler pour optimiser ce comportement.

 

Autres informations

Par défaut, Site Isolation est activé sous Chrome version 67 pour 99% des utilisateurs qu’ils soient sur Mac, Windows, Linux ou encore Chrome OS. Le dernier pourcentage servira à Google pour la surveillance et l’amélioration des performances de Chrome.

 

Finalement, la firme annonce avoir dors et déjà commencé à réfléchir à l’intégration de Site Isolation à Chrome pour Android. Site Isolation est annoncé pour Chrome 68 sur Android.

 

Source : Google Blog

Jeune étudiant en informatique curieux de tout. Je m'intéresse à de nombreux sujets différents qu'ils soient axés informatique ou non.
Posts created 6

Articles similaires

Commencez à saisir votre recherche ci-dessus et pressez Entrée pour rechercher. ESC pour annuler.

Retour en haut