Sandbox sur Windows

Le sandboxing est un nouvel outil léger sous Windows qui vous permet d'exécuter des applications dans un environnement sécurisé et isolé.

Vous êtes-vous déjà retrouvé dans une situation où vous devez exécuter une sorte de programme, mais vous n'êtes pas entièrement sûr de la source de son origine? Ou un autre exemple - la nécessité de vérifier quelque chose sur une version "propre" de Windows. Dans tous ces cas, avant il n'y avait qu'une seule issue: installer le système d'exploitation sur une machine physique ou virtuelle distincte et mener l'expérience nécessaire. Mais ce n'est plus le cas.

Microsoft a développé un nouveau mécanisme appelé Sandbox (eng. Windows Sandbox). Il s'agit d'un environnement temporaire isolé dans lequel vous pouvez exécuter des logiciels suspects sans risquer d'endommager votre PC. Tout logiciel installé dans le bac à sable reste uniquement dans le bac à sable et ne peut pas interagir avec le système d'exploitation principal. Dès que vous fermez le Sandbox, tout son contenu est irrémédiablement détruit.

Voici les principales caractéristiques du Sandbox:

  • Cela fait partie du système d'exploitation Windows. Si vous avez Windows 10 Pro ou Enterprise, vous pouvez déjà commencer à l'utiliser.
  • D'une ardoise propre. Chaque fois que vous démarrez le bac à sable, vous obtenez le même environnement, propre et immuable. Exactement ce qu'était votre système d'exploitation juste après son installation.
  • Aucune trace. Lorsque vous fermez le bac à sable, toutes les applications qui y sont installées, tous les fichiers qui y sont créés sont détruits. Ils ont fermé le Sandbox - il n'y avait aucune trace de son existence.
  • La sécurité Il utilise la virtualisation matérielle, qui utilise un hyperviseur pour exécuter un noyau de système d'exploitation distinct et l'isole de votre système d'exploitation principal
  • Efficacité Il utilise un planificateur de tâches intégré, une gestion intelligente de la mémoire, un GPU virtuel.

Configuration requise


  • Windows 10 Pro ou Enterprise, build 18305 ou supérieur
  • Architecture AMD64
  • Virtualisation activée par le BIOS
  • 4 Go minimum (8 Go recommandés) de RAM
  • 1 Go minimum d'espace disque libre (SSD recommandé)
  • Processeur double cœur (4 recommandés avec prise en charge de l'hyper-threading)

Démarrage rapide


1. Installez Windows 10 Pro ou Enterprise build 18305 ou supérieur

2. Activez la virtualisation:

  • Si vous travaillez sur une machine physique - faites-le dans le BIOS
  • Si vous travaillez sur une machine virtuelle, utilisez la commande PowerShell suivante:

    Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true 

3. Ouvrez (via le Panneau de configuration) une liste des composants Windows installés et activez-y le Sandbox. Cliquez OK. Si vous voyez une demande de redémarrage de l'ordinateur - confirmez-la.

image

4. Lancez le bac à sable à partir du menu Démarrer. Permettre l'élévation des droits pour son processus.

5. Copiez (via le presse-papiers) dans le bac à sable le fichier binaire que vous souhaitez exécuter.

6. Lancez le binaire dans le bac à sable. S'il s'agit d'un programme d'installation, suivez la procédure d'installation et exécutez l'application installée.

7. Utilisez l'application comme prévu.

8. Une fois terminé, fermez simplement le bac à sable. Tout son contenu sera supprimé.

9. Facultatif - vous pouvez vous assurer que rien n'a changé dans votre système d'exploitation principal.

image

Sous le capot du bac à sable


Windows Sandbox est construit sur une technologie appelée Windows Containers. Des conteneurs ont été développés (et utilisés depuis longtemps) pour fonctionner dans le cloud. Microsoft a déjà pris une technologie assez mature et testée et l'a finalisée pour les utilisateurs de Windows de bureau.

Parmi les adaptations clés, on peut noter:

Image générée dynamiquement


Le bac à sable est, bien que léger, mais toujours une machine virtuelle. Et, comme toute machine virtuelle, elle a besoin d'une image à partir de laquelle elle peut démarrer. La caractéristique la plus importante du Sandbox est que vous n'avez pas besoin de télécharger ou de créer cette image quelque part. Il sera créé à la volée, à partir des fichiers de votre système d'exploitation Windows actuel.

Nous voulons toujours obtenir le même environnement «propre» pour le bac à sable. Mais il y a un problème: certains fichiers système peuvent changer. La solution a été de créer une «image générée dynamiquement»: pour les fichiers modifiés, leurs versions originales y seront incluses, mais les fichiers immuables ne seront pas physiquement inclus dans cette image. Au lieu de cela, ils utiliseront des liens vers de vrais fichiers sur le disque. Comme la pratique l'a montré, la plupart des fichiers de l'image seront de tels liens. Seule une petite partie d'entre eux (environ 100 Mo) sera complètement incluse dans l'image - ce sera sa taille. De plus, lorsque vous n'utilisez pas le bac à sable, ces fichiers sont stockés sous forme compressée et occupent environ 25 Mo. Lorsque vous démarrez le Sandbox, ils sont déployés sur une image très dynamique d'environ 100 Mo.

image

Gestion intelligente de la mémoire


La gestion de la mémoire Sandbox est une autre amélioration majeure. L'hyperviseur vous permet d'exécuter plusieurs machines virtuelles sur la même machine physique et cela, en général, fonctionne bien sur les serveurs. Mais, contrairement aux serveurs, les ressources des machines utilisateur ordinaires sont beaucoup plus limitées. Pour atteindre un niveau de performances acceptable, Microsoft a développé un mode mémoire spécial dans lequel le système d'exploitation principal et le bac à sable peuvent utiliser les mêmes pages mémoire dans certains cas.

En fait: étant donné que le système d'exploitation principal et le bac à sable exécutent la même image de système d'exploitation, la plupart des fichiers système qu'ils contiennent seront les mêmes, ce qui signifie qu'il est inutile de charger deux fois les mêmes bibliothèques en mémoire. Vous pouvez le faire une fois dans le système d'exploitation principal et lorsque le même fichier est nécessaire dans la mémoire Sandbox, vous pouvez lui donner un lien vers la même page. Bien sûr, certaines mesures supplémentaires sont nécessaires pour garantir la sécurité de cette approche, mais Microsoft s'en est occupé.

image

Planificateur intégré


Dans le cas de l'utilisation de machines virtuelles conventionnelles, l'hyperviseur contrôle le fonctionnement des processeurs virtuels qui y sont exécutés. Une nouvelle technologie a été développée pour le Sandbox, appelée "planificateur intégré", qui permet au système d'exploitation principal de décider quand et combien de ressources allouer au Sandbox. Cela fonctionne comme ceci: les processeurs Sandbox virtuels fonctionnent comme des threads à l'intérieur du processus Sandbox. Par conséquent, ils ont les mêmes «droits» que les autres threads de votre système d'exploitation principal. Si, par exemple, certains threads de haute priorité fonctionnent pour vous, le bac à sable ne leur prendra pas beaucoup de temps pour terminer leurs tâches, qui ont une priorité normale. Cela vous permettra d'utiliser le Sandbox sans ralentir le fonctionnement des applications critiques et en conservant une réactivité suffisante de l'interface utilisateur du système d'exploitation principal, similaire au fonctionnement de Linux KVM .

La tâche principale était de faire du Sandbox, d'une part, une application ordinaire, et d'autre part, de garantir son isolement au niveau des machines virtuelles classiques.

Utilisation d'instantanés


Comme mentionné ci-dessus, le Sandbox utilise un hyperviseur. Nous exécutons essentiellement une copie de Windows dans une autre. Et cela signifie qu'il faudra un certain temps pour le charger. Nous pouvons le dépenser chaque fois que vous démarrez le Sandbox, ou le faire une seule fois, après avoir enregistré après avoir chargé tout l'état du système d'exploitation virtuel (fichiers modifiés, mémoire, registres du processeur) sur le disque. Après cela, nous pourrons lancer le Sandbox à partir de cette image, tout en enregistrant son heure de début.

Virtualisation graphique


La virtualisation matérielle des graphiques est la clé d'une interface utilisateur fluide et rapide, en particulier pour les applications "lourdes" en termes d'applications graphiques. Cependant, les machines virtuelles classiques sont initialement limitées dans leur capacité à utiliser directement toutes les ressources du GPU. Et ici, un rôle important est joué par les outils de virtualisation graphique, qui permettent de surmonter ce problème et, sous une certaine forme, d'utiliser l'accélération matérielle dans un environnement virtuel. Un exemple d'une telle technologie pourrait être, par exemple, Microsoft RemoteFX .

De plus, Microsoft a travaillé activement avec les fabricants de systèmes graphiques et de pilotes afin d'intégrer des capacités de virtualisation graphique directement dans DirectX et WDDM (un modèle de pilote sous Windows).

Par conséquent, les graphiques dans le bac à sable fonctionnent comme suit:

  • Une application dans le Sandbox utilise les fonctions graphiques de la manière habituelle, sans savoir qui ni comment les exécutera
  • Le sous-système graphique Sandbox, ayant reçu des commandes de rendu graphique, les transfère vers le système d'exploitation principal
  • Le système d'exploitation principal, ayant reçu des commandes de rendu graphique, les perçoit comme provenant d'une application lancée localement et les exécute en conséquence, en allouant et en gérant les ressources nécessaires.

Ce processus peut être représenté comme suit:

image

Cela permet à l'environnement virtuel d'avoir un accès complet aux graphiques accélérés par le matériel, ce qui donne à la fois une augmentation des performances et des ressources (par exemple, la batterie pour les ordinateurs portables), du fait que les calculs lourds sur le CPU ne sont plus utilisés pour le rendu des graphiques.

Utilisation de la batterie


Le bac à sable a accès aux informations sur la charge de la batterie et peut optimiser son travail pour le sauvegarder.

Avis et rapports de bogues


Il peut y avoir des bogues dans toute nouvelle technologie. Microsoft demande d'envoyer des messages à leur sujet et des suggestions de nouvelles fonctionnalités via le Hub de commentaires .

Source: https://habr.com/ru/post/fr433706/


All Articles