Windows 10 Entreprise : Edge va tourner dans une machine virtuelle pour plus de sécurité

Stéphane Moussie |

Les navigateurs web sont des vecteurs critiques de piratages informatiques. Afin de réduire les risques de sécurité, les éditeurs les isolent (comme les autres applications) dans des bac à sable (sandbox). Avec la prochaine version majeure de Windows 10, Microsoft va aller plus loin en faisant tourner son navigateur Edge dans une machine virtuelle.

Le sandboxing d'OS X introduit avec Lion.

Les machines virtuelles, qui servent habituellement à faire tourner un OS à l'intérieur d'un autre OS, sont encore plus coupées du système que les sandbox. Elles ne peuvent pas voir les processus de la machine hôte, ni accéder à son espace de stockage et encore moins modifier l'OS principal.

En plaçant Edge dans sa propre machine virtuelle, Microsoft réduit ainsi drastiquement les risques d'infection. Si un malandrin venait à compromettre le navigateur, il resterait bloqué (en théorie) dans la machine virtuelle où il n'y a aucune donnée sensible.

Cette mesure de sécurité baptisée Application Guard entraîne aussi des contreparties qui font qu'elle est réservée à Windows 10 Enterprise — au moins dans un premier temps.

Les cookies des sites web ne peuvent pas être conservés, parce que la machine virtuelle est supprimée quand le navigateur est fermé. Cela signifie qu'il faut se reconnecter aux sites à chaque lancement. Les administrateurs auront tout de même la possibilité de désigner des sites sûrs qui n'utiliseront pas la machine virtuelle.

Par ailleurs, l'utilisation simultanée d'une autre machine virtuelle ne sera pas possible. Et puis il y a la question des performances que Microsoft n'a pas éclaircie. Application Guard, qui arrivera en 2017, n'en reste pas moins intéressant.

avatar reborn | 

C'est présent dans os x ?

avatar noooty | 

@reborn :
Tu n'as pas lu l'article?

avatar reborn | 

@noooty :
C'est par rapport à Safari, je voulais savoir si cette app précisément est sandboxé

avatar Stéphane Moussie | 
@reborn : oui, c'était même l'une des premières sandboxées.
avatar Lemmings | 

@Stéphane Moussie : heu, il y a une nuance importante, le sandboxing de safari n'est pas à ce niveau là. L'exécution js est sandboxée mais pas l'accès à l'ordinateur. Les cookies, le local storage et autres sont bien exploitables sur Safari mac et ios.

Ce que propose MS ici va bien plus loin. C'est un sandboxing via conteneur (fonction du kernel) qui isole réellement le process de la page.

avatar C1rc3@0rc | 

Faut attendre de voir comment ils vont realiser cela mais a premiere vue ça ressemblre plus a un constat d'echec qu'a toute autre chose. Et les contraintes indiquées semblent bien relever de la virtualisation la plus classique!

Le sandboxing c'est une technique complexe qui offre en theorie une isolation non penalisante pour une application ou une partie de cette application. Si c'est bien realisé et que l'OS est coherent, la compromission de la memoire ou des tentatives d'acces non autorisées tombent dans le vide et ne menacent ni le reste de la machine ni meme les autres doccuments du logiciel sandboxe.

La virtualisation c'est radicalcment different puisque il s'agit de faire tourner un ordinateur virtuel dans un ordinateur reel, qui peut avoir un processeur et une architecture specifique. Utiliser cette technique pour des raisons de securité, cela revient a dire que la plateforme (l'OS) reelle n'est pas securisable!

Dans les faits, si MS va dans cette direction, sur les versions incompatibles de Windows, la solution c'est carrement de lancer un OS different (Linux, OpenBSD, MacOS, ChromeOS,...) avec un navigateur securisé comme Chrome ou Firefox!

avatar awk | 

@C1rc3@0rc

Je trouve intéressant que tu considères ce type d'approche comme un "constat d'échec"

S'en est effectivement un, d'un point de vue purement formel, mais est-il pour autant non-pertinent ?

Sur la question de la sécurité informatique l'édifice sur lequel est battît toute l'informatique que nous utilisons n'est-il pas confronter à de profondes limites quant à la capacité de le sécuriser ?

Effectivement certaines approches actuelles tiennent tu contournement de l'obstacle plus que de son élimination, mais le pragmatisme de ces approches doit-il pour autant être condamné ?

La table rase du passé semble difficile a envisager pour reconstruire l'édifice en mettant cette fois l'emphase sur les enjeux de qualité et eue sécurité.

avatar C1rc3@0rc | 

@awk

Ta question est intéressante mais implique de passer a un débat sur la théorie de la science informatique.

On parle ici de périmètre d'un espace d'exécution.
L'OS s'exécute dans un espace qu'il est censé contrôler, maitriser et respecter. L'OS devrait etre garant de sous périmètres garantis pour les applications. La plupart des applications gerent un etat, le modifient et le restituent avec une certaine latitude. A l'intérieur de ces applications, il y a des espaces (périmètres) qui devraient être isolés si les applications étaient bien programmées... On parle de niveaux d'organisation.

L'OS est preemptif et doit être capable de contrôler ces périmètres afin que l'état global ne soit pas corrompu par une application qui outrepasse ses droits.

La virtualisation c'est un niveau (espace et périmètre) different et au-dela de l'OS (en fait contenant), preuve en est, qu'on peut faire tourner plusieurs OS en virtualisation...

Si un OS se défausse sur la virtualisation pour accomplir ses attributions, c'est que l'OS est incapable de faire ce qu'il annonce et pour quoi il est prévu.
C'est donc un échec.

Windows et Edge sont donc face a un échec.

Est ce que Microsoft fait la un choix pragmatique. Oui clairement, puisqu'il l'entreprise semble incapable de repondre autrement.

Le client d'entreprise a un argument que MS ne peut refuter: le serveur lance des machines virtuelles. Si l'une est corrompue, le serveur lui ne l'est pas et les autres espaces ne le sont pas.
Le client veut donc que sur son PC le navigateur soit capable de faire aussi bien, ce qui est le principe du sandboxing, qui impose deja des contraintes.

Le probleme venant de la conception (plus que de sa réalisation) de Windows, Microsoft etant incapable de remettre a plat Windows, la solution c'est la virtualisation. Cela participe du délitement de Windows et de son évolution vers un service et non plus un OS.

avatar C1rc3@0rc | 

Il y a un principe dans le developpement qui a été a l'origine du langage Ada et particulierment developpé par B.Meyer avec eiffel. Il s'agit de se focaliser sur la notion de "contrat". C'est a dire que tout est mis en oeuvre pour qu'une fonction fasse ce qu'elle annonce, ni plus ni moins et qu'elle restitue bien l'etat tel qu'attendu par rapport a des situations previsibles.

Il s'agit la de la notion de base du sandboxing. S'y rajoute apres la capacité au superviseur de garantir l'etat en le fixant dans des possibles previsibles.
Le probleme avec Windows, c'est que jamais a aucun moment l'etat et le perimetre ne sont grarantis. Et cela date de la conception de Windows et meme de son ancetre DOS.
Si les virus se sont tellement repandus sur Windows c'est d'abord pour cette raison.
On pourrait penser que cette faiblesse de conception a comme avantage de permettre une meilleure performance quant a l'exploitation de la puissance du materiel. Il en est rien puisque les Unix sont plus efficaces. On voit aussi que les OS des systemes embarqués mettent la priorité sur cette notion et eux doivent etre hyper efficace.

Lorsque le perimetre dans un Unix est violé, il s'agit d'une faille, le plus souvent issue d'une erreur de programation. Dans Windows c'est un probleme de conception que la programmation n'a pas reussi a contenir. C'est radicalement different.

Mais meme dans le monde Unix il y a un debat sur le niveau d'organisation et l'efficacité de la perimetrisation, et cela au niveau du kernel: doit il ou non etre monolithique?

Et puis on peut opposer l'ancienneté des Unix, mais s'ils sont anciens, leur concepts sont toujours aussi valable. A l'inverse Windows souffre de vétusté imposée par la compatibilité avec l'ancien. Donc meme avec la modernisation NT, on reste sur du vétuste.

Windows reste un tres mauvais OS mais de mieux en mieux realisé. MacOS c'est un bon OS de plus en plus mal realisé. A un moment il vont se rejoindre dans la mediocrité.

avatar awk | 

@C1rc3@0rc

Bertrand Meyer fait partie de ma bibliothèque ;-)

Sur le reste la question de la structure du noyau a quand même aboutis sur de l'hybridation pour Mac OS et NT et le modèle du micro-noyau est très marginalisé

Et je ne partage pas ta vision NT n'est pas une modernisation, j'ai le sentiment que tu le connais assez mal et que le débat que tu portes est en grande partie obsolète que ce soit pour Unix, pour NT ou pour MacOS ... j'ai l'impression de revenir des années en arrière

avatar Lemmings | 

@awk : comparer le kernel historique (DOS, 95, 98...) avec celui issu de NT... Effectivement c'est assez étonnant :)

avatar awk | 

@Lemmings

Notre camarde me donne l'impression d'être resté figé dans des débats aujourd'hui très daté et ne pas vouloir prendre conscience de l'évolution de la donne.

Au delà même de la question de l'état du noyau NT qu'il ne semble pas voir tel qu'il est, le passage sur la question du micro-kernel vs le kernel monolithique sent franchement la naphtaline.

avatar awk | 

@C1rc3@0rc

Merci pour ces rappels mais nous sommes d'accord , sur le fait qu'il s'agit d'un constat d'échec -)

Après nous ne sommes peut-être pas d'accord sur le périmètre de l'échec que tu semble circonscrire à Windows.

ça donnera peut envie à certain de lire le Andrew Tanenbaum :-)

avatar Lemmings | 

@C1rc3@0rc : j'aime bcp le "constat d'échec" alors que ça cible uniquement les clients en entreprise (un public très spécifique) qui gèrent des parcs informatiques autrement que les ordi personnels.

Accessoirement si tu avais un peu regardé, c'est de la virtualisation fine, ou utilisation de container via docker (intégré au kernel de windows), en gros niveau ressources c'est très très light, ça va très vite et surtout ça isole parfaitement plutôt que de tenter de coder un sandboxing complexe.

avatar awk | 

@Lemmings

Au delà de ces outrances C1rc3@0rc n'a pas totalement tort de parler de constat d'échec.

Même implémentée avec élégance ce type d'approche acte d'une incapacité globale a gérer la source des pb et l'obligation de mettre en oeuvre une stratégie de contournement.

avatar Lemmings | 

@awk : ces choses là peuvent arriver sur iOS ou Mac OS tu sais... Apple n'en fait malheureusement pas bien plus.

avatar awk | 

@Lemmings

C'est là exactement mon propos ;-)

De manière générale mon message st clairement : arrêtez d'imaginer que les OS d'Apple sont au dessus du lot en terme de sécurité et de considérer que Windows est aujourd'hui encore une merde sans nom.

L'impasse en terme de sécurité est globale et le propos que tu commentes n'est en rien une attaque de MS ;-)

avatar Dumber@Redmond | 

@awk :
Je crois que tu ne comprends pas grand chose à tout ce que tu racontes...
Par contre je sais OS X / macOS est un unix dérivé de BSD. CEST UNE BASE TRÈS SOLIDE et elle l'est encore aujourd'hui. On a le code source de Darwin qui est un fork.
Sur la planète,

avatar awk | 

@Dumber@Redmond

"Je crois que tu ne comprends pas grand chose à tout ce que tu racontes..."

Libres à toi de le croire, chacun juge avec l'équipement à sa disposition.

"Par contre je sais OS X / macOS est un unix dérivé de BSD. CEST UNE BASE TRÈS SOLIDE et elle l'est encore aujourd'hui. On a le code source de Darwin qui est un fork."

C'est beau la pensée magique.

Le fait qu'OS-X soit construit sur une version hybride du noyau Mach et de BSD est loin d'être une garantie absolue.

avatar Lemmings | 

@Dumber@Redmond : "Par contre je sais OS X / macOS est un unix dérivé de BSD. CEST UNE BASE TRÈS SOLIDE et elle l'est encore aujourd'hui. On a le code source de Darwin qui est un fork."

Haha merci j'ai bien ri... C'est une base solide, oui. Tout comme le kernel de windows 10, tout comme le kernel de Linux. Mais ça n’empêche en rien d'avoir des trous béants possibles à des couches plus élevées du système...

avatar awk | 

@Lemmings

C'est un des grands déni de l'époque : ne pas vouloir accepter que tous les OS majeurs sont des colosses aux pieds d'argile en terme de sécurité.

avatar Dumber@Redmond | 

@awk :
UNIX et tous ses dérivés ont prouvé leur qualités, leur stabilité et leur sécurité (relative) bien sûr car rien n'est sûr à 100%.
Par contre a-t-on le code source de Windows ? A-t-on pu évaluer la qualité de son code ?
Non non et non. Tout ce qu'on voit ce sont ses beaux bugs, tous les jours..
Ça ce sont des faits....

avatar awk | 

@Dumber@Redmond

Face à la foi on ne peu que s'incliner avec respect.

avatar awk | 

@Dumber@Redmond

"Par contre a-t-on le code source de Windows ? A-t-on pu évaluer la qualité de son code ?"

L'accès au code source est toujours intéressant, par exemple quand on met en regards celui de Linux et celui d'OpenSolaris on se rend compte du niveau de qualité de code assez hasardeux du premier :-)

Croire que l'accès au code source est l'Apia et l'Omega de la sécurité est un beau fantasme.

avatar awk | 

@Dumber@Redmond

Et pour compléter, certes l'on n'a pas accès au code de Windows (quoi que le WRK est un bon indice sur bien des points) mais.

Le Noyau NT 10 est un des rares noyau majeur issu d'un travail ex-nihilo relativement récent supervisé par Dave Cutler un des cadors du domaine. Cela peut paraitre lointain mais les fondements des divers noyaux unix-like sont souvent bien plus anciens.

L'architecture système de Windows est très largement documentée, décortiquée et analysé.

Les équipes de dev OS de MS sont aujourd'hui permis les meilleurs de la planète en terme de qualités des ressources et de méthodologie.

Quant au travail sur la sécurité les ressources mise en oeuvre par MS sont la encore permis les plus importante de la planète.

Linux est très largement surestimé sur bien des critères, tout comme MacOS, alors même que les windows actuel sont très sous estimé dans bien des cercles.

Pages

CONNEXION UTILISATEUR