Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Windows 10 19H1 va embarquer Windows Sandbox, une machine virtuelle légère
Pour exécuter des logiciels potentiellement suspects en sécurité

Le , par Stéphane le calme

274PARTAGES

14  0 
En août, nous vous rapportions que Microsoft était en train de développer une nouvelle fonctionnalité « Sandbox jetable » appelée « InPrivate Desktop ». D’après la description de la fuite, nous avions pensé que cette fonction pourrait être exclusive aux versions Entreprise de Windows 10 et allait permettre aux administrateurs de lancer des exécutables non fiables dans un sandbox sécurisé sans crainte d'apporter des modifications au système d'exploitation ou aux fichiers du système.

On peut comparer ce mode à une machine virtuelle sur laquelle votre application sera exécutée, préservant ainsi la santé de votre système d’exploitation en cas de risque potentiel. Ainsi, si l’application contient un malware, ce dernier ne se répandrait pas au système mais resterait localisé dans la machine virtuelle temporaire. Il serait totalement détruit une fois la session de l’application fermée.

« InPrivate Desktop (Preview) fournit aux administrateurs un moyen de lancer un sandbox jetable pour une exécution sécurisée et ponctuelle de logiciels non fiables. Il s’agit d’une VM intégrée à la boîte qui est recyclée lorsque vous fermez l’application », pouvait-on lire sur le descriptif.

Windows Sandbox

Microsoft a dévoilé une fonctionnalité prévue pour Windows 10 19H1 (version qui sera déployée au début de l'année prochaine) qui a été baptisée Windows Sandbox. Cette fonctionnalité, qui fera partie des éditions Windows 10 Pro et Enterprise, crée « un environnement de bureau temporaire et isolé » où les utilisateurs peuvent exécuter des logiciels potentiellement suspects, ont annoncé des responsables dans un blog le 18 décembre.


Voici les prérequis pour se servir de cette fonctionnalité
  • Windows 10 Pro ou Enterprise build 18305 ou ultérieure
  • Architecture AMD64
  • Fonctions de virtualisation activées dans le BIOS
  • Au moins 4 Go de RAM (8 Go recommandés)
  • Au moins 1 Go d'espace disque disponible (SSD recommandé)
  • Au moins 2 cœurs de processeur (4 cœurs avec hyperthreading recommandés)

L’équipe décrit Windows Sandbox comme un nouvel environnement de bureau léger conçu pour exécuter en toute sécurité des applications isolées.

Citation Envoyé par Microsoft
Combien de fois avez-vous téléchargé un fichier exécutable sans avoir peur de l'exécuter? Avez-vous déjà été dans une situation qui nécessitait une nouvelle installation de Windows, mais vous ne vouliez pas configurer une machine virtuelle ?

Chez Microsoft, nous rencontrons régulièrement ces situations, nous avons donc développé Windows Sandbox: un environnement de bureau temporaire et isolé, dans lequel vous pouvez exécuter des logiciels non fiables sans crainte de conséquences durables pour votre PC. Tout logiciel installé dans le Windows Sandbox reste uniquement dans le Sandbox et ne peut affecter votre hôte. Une fois que Windows Sandbox est fermé, tous les logiciels avec tous leurs fichiers et leur état sont définitivement supprimés.

Windows Sandbox a les propriétés suivantes:
  • Il fait partie de Windows : tout ce qui est requis pour cette fonctionnalité est fourni avec Windows 10 Pro et Enterprise. Pas besoin de télécharger un disque dur virtuel !
  • En parfait état : chaque fois que Windows Sandbox s'exécute, il est aussi propre qu'une nouvelle installation de Windows.
  • Jetable : rien ne persiste sur l'appareil; tout est jeté après la fermeture de l'application
  • Sécurisé : utilise la virtualisation matérielle pour l’isolation du noyau, laquelle repose sur l’hyperviseur de Microsoft pour exécuter un noyau distinct qui isole le bac à sable Windows de l’hôte.
  • Efficace : utilise le planificateur de noyau intégré, la gestion intelligente de la mémoire et le processeur graphique virtuel

Sous le capot de Windows Sandbox

Windows Sandbox s'appuie sur les technologies utilisées dans les conteneurs Windows. Les conteneurs Windows ont été conçus pour s'exécuter dans le cloud. Microsoft a utilisé cette technologie, à laquelle l’entreprise a ajouté une intégration avec Windows 10 et des fonctionnalités qui la rendent plus approprié pour fonctionner sur des périphériques et des ordinateurs portables sans nécessiter toute la puissance de Windows Server.

Parmi les principales améliorations apportées, figurent :

La génération dynamique d’image

À la base, Windows Sandbox est une machine virtuelle légère, de sorte qu’elle a besoin d’une image de système d’exploitation. L'une des améliorations clés apportées à Windows Sandbox est la possibilité d'utiliser une copie de Windows 10 installée sur votre ordinateur, au lieu de télécharger une nouvelle image VHD comme vous le feriez avec une machine virtuelle ordinaire.

Microsoft indique vouloir toujours présenter un environnement propre, mais le problème est que certains fichiers du système d'exploitation peuvent changer. Aussi, la solution choisie par l’éditeur consiste à construire ce qu’il appelle une « image de base dynamique »: une image de système d’exploitation contenant des copies nettes de fichiers pouvant être modifiés, mais des liens vers des fichiers ne pouvant pas être modifiés et figurant dans l’image Windows déjà présente sur l’hôte. La majorité des fichiers sont des liens (fichiers immuables) ce qui est la raison de la petite taille (~ 100 Mo) d’un système d’exploitation complet. Microsoft appelle cette instance « image de base » pour Windows Sandbox, un nom qui lui vient directement du jargon de Windows Container.

Lorsque Windows Sandbox n'est pas installé, l’éditeur conserve l'image de base dynamique dans un package compressé de 25 Mo seulement. Une fois installé, le package de base dynamique occupe environ 100 Mo d’espace disque.


Gestion intelligente de la mémoire

La gestion de la mémoire est un autre domaine dans lequel Microsoft a intégré le noyau Windows. L’hyperviseur de Microsoft permet de diviser une seule machine physique en plusieurs machines virtuelles partageant le même matériel physique. Bien que cette approche fonctionne bien pour les charges de travail de serveur traditionnelles, elle n'est pas aussi bien adaptée à l'exécution de périphériques avec des ressources plus limitées. En effet, Microsoft a conçu Windows Sandbox de manière à ce que l'hôte puisse récupérer la mémoire du bac à sable si nécessaire.

De plus, comme Windows Sandbox exécute fondamentalement la même image de système d'exploitation que l'hôte, Microsoft autorise également Windows Sandbox à utiliser les mêmes pages de mémoire physique que l'hôte pour les fichiers binaires du système d'exploitation via une technologie appelée « direct map ». En d'autres termes, les mêmes pages exécutables de ntdll sont mappées dans le bac à sable comme celles de l'hôte. L’éditeur assure qu’il veille à ce que cela soit fait de manière sécurisée et qu'aucun secret ne soit partagé.


Planificateur intégré de noyau

Avec les machines virtuelles ordinaires, l’hyperviseur de Microsoft contrôle la planification des processeurs virtuels exécutés sur les machines virtuels. Cependant, pour Windows Sandbox, Microsoft se sert d’une nouvelle technologie appelée « planificateur intégré » qui permet à l'hôte de décider du moment où le Sandbox s'exécute.

Pour Windows Sandbox, l’éditeur utilise une stratégie de planification unique qui permet aux processeurs virtuels du sandbox d'être planifiés de la même manière que les threads seraient planifiés pour un processus. Les tâches hautement prioritaires sur l'hôte peuvent anticiper un travail moins important dans le Sandbox. L'avantage d'utiliser le planificateur intégré est que l'hôte gère Windows Sandbox comme un processus plutôt que comme une machine virtuelle, ce qui donne un hôte beaucoup plus réactif, similaire au KVM Linux.

L’objectif ici est de traiter la Sandbox comme une application mais avec les garanties de sécurité d’une machine virtuelle.

Snapshot et clone

Comme indiqué ci-dessus, Windows Sandbox utilise l'hyperviseur de Microsoft. Microsoft utilise essentiellement une autre copie de Windows qui doit être démarrée, ce qui peut prendre un certain temps. Ainsi, plutôt que de payer le coût total du démarrage du système d'exploitation sandbox à chaque démarrage de Windows Sandbox, Microsoft se sert de deux autres technologies; Snapshot et Clone.

Snapshot permet d’amorcer une seule fois le démarrage de l’environnement sandbox et de conserver l’état de la mémoire, du processeur et du périphérique sur le disque. Ensuite, l’éditeur peut restaurer l’environnement sandbox à partir du disque et le mettre en mémoire plutôt que de le démarrer, lorsque l’utilisateur a besoin d’une nouvelle instance de Windows Sandbox. Cela améliore considérablement le temps de démarrage de Windows Sandbox.

Source ! Microsoft

Voir aussi :

Windows 10 October 2018 : Microsoft dit avoir corrigé tous les bogues et les problèmes signalés et propose une nouvelle mise à jour plus stable
Red Hat Enterprise Linux débarque sur Windows 10 via WLinux Enterprise, une distribution payante pour le sous-système Windows pour Linux
Windows 10 : Comment empêcher l'OS de partager des données de votre historique d'activités ? Microsoft donne plus d'informations
Microsoft confirme que les utilisateurs de Windows 10 risque de tester une mise à jour instable lorsqu'ils font la mise à jour manuellement
Windows 10 transmet à Microsoft l'historique d'activités de votre PC une fois connecté, même si vous lui dites de ne pas le faire

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de sergio_is_back
Membre émérite https://www.developpez.com
Le 20/12/2018 à 8:10
Citation Envoyé par redcurve Voir le message
Prochaine étape mettre l'ensemble de win32 en boite
Sur, comme c'est la seule API de Windows à peu prêt stable vaut mieux que M$ s'en débarrasse rapidement
1  0 
Avatar de Capitaine_aizen
Membre régulier https://www.developpez.com
Le 19/12/2018 à 17:16
Est-ce "déconfinable" via Spectre/Meltdown ? (Vrai question)

Ok, c'est clairement plus complexe qu'un cryptoware. Je m'attends donc à ce que sa protège contre une grande gamme de menace "standard".
0  0 
Avatar de Aurelien.Regat-Barrel
Expert éminent sénior https://www.developpez.com
Le 19/12/2018 à 17:56
Citation Envoyé par Capitaine_aizen Voir le message
Est-ce "déconfinable" via Spectre/Meltdown ? (Vrai question)
Il me semble que Spectre/Meltdown ne permettent "que" de sniffer la mémoire, pas de la modifier. Donc on peut s'en servir pour voler des infos sensibles mais pas corrompre directement la machine.
0  0 
Avatar de redcurve
Membre confirmé https://www.developpez.com
Le 19/12/2018 à 22:40
Prochaine étape mettre l'ensemble de win32 en boite
0  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 20/12/2018 à 9:22
Donc ça passe par la virtualisation. C'est plus lourd que des systèmes comme Sandboxie, mais ça isoler plus (du moins en théorie).

Un autre principe de sandboxing est de faire en sorte qu'une application ne puisse pas lancer d'API système que le code source n'utilise pas. Il existe sous Linux des bibliothèque faisant cela, donc probablement pour Windows aussi.

Apple impose l'usage de sandboxing sur Applestore depuis 2012. Cela est présent également sous Mac OS X (mais non obligatoire je pense). Mac OS X étant une base BSD, je pense qu'ils utilisent les bsd-jails.

Le principe étant une collaboration entre l'appli sandboxée et l'OS, toute comme la paravirtualisation, ou la VM sait qu'elle est virtualisée et collabore avec l'hôte à des fins d'optimisation.
0  0 
Avatar de Aurelien.Regat-Barrel
Expert éminent sénior https://www.developpez.com
Le 20/12/2018 à 16:20
Citation Envoyé par chrtophe Voir le message
Donc ça passe par la virtualisation. C'est plus lourd que des systèmes comme Sandboxie, mais ça isoler plus (du moins en théorie).
Effectivement l'article du blog MS explique que c'est bien un deuxième kernel qui est isolé du kernel hôte. Même chose avec la couche driver / graphique. Donc c'est beaucoup plus lourd qu'une isolation via namespaces (à la Docker). Et j'ai trouvé cet article de MS qui explique que les 2 modes sont supportés par leur techno de conteneurs, et que c'est le mode VM qui est utilisé pour le bac à sable :
https://docs.microsoft.com/fr-fr/vir...tainers/about/

Les conteneurs Windows incluent deux types de conteneurs différents, ou runtimes.

Conteneurs Windows Server: Ils assurent l’isolation des applications via une technologie d’isolation des processus et des espaces de noms. Un conteneur Windows Server partage un noyau avec l’hôte de conteneur et tous les conteneurs exécutés sur l’hôte. Ces conteneurs ne créent pas de frontière de sécurité contre le code hostile et ne doivent pas être utilisés pour isoler du code non fiable. En raison de l’espace de noyau partagé, ces conteneurs requièrent la même version et configuration de noyau.

Isolation Hyper-V: Développe l’isolation fournie par les conteneurs WindowsServer en exécutant chaque conteneur dans une machine virtuelle hautement optimisée. Dans cette configuration, le noyau de l’hôte de conteneur n’est pas partagé avec d’autres conteneurs exécutés sur l’hôte. Ces conteneurs sont conçus pour un hébergement mutualisé hostile avec les mêmes garanties de sécurité qu’une machine virtuelle. Dans la mesure où ces conteneurs ne partagent pas le noyau avec l’hôte et les autres conteneurs exécutés sur l’hôte, ils peuvent exécuter des noyaux ayant des versions et des configurations différentes (dans les versions prises en charge)
Citation Envoyé par chrtophe Voir le message
Un autre principe de sandboxing est de faire en sorte qu'une application ne puisse pas lancer d'API système que le code source n'utilise pas. Il existe sous Linux des bibliothèque faisant cela
Tu as des infos plus précises là dessus ? car je vois pas mal comment ça peut être mis en place dans le cas d'application natives. Pour des applis mobiles à la Android ça a du sens : on utilise un manifest pour déclarer les groupes d'APIs dont on a besoin (les applis Windows UWP ont le même principe), mais pour des appels système on se base en général sur une gestion de privilèges (sudo, UAC...).
0  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 20/12/2018 à 22:12
Il y a seccomp sous Linux, utilisé par Docker et pour sandboxer chrome il me semble :
https://sysdig.com/blog/selinux-secc...al-discussion/
0  0 
Avatar de Aurelien.Regat-Barrel
Expert éminent sénior https://www.developpez.com
Le 24/12/2018 à 10:26
Thanks
0  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web