I. Présentation
Depuis Windows 10 "1903", Microsoft a ajouté la fonctionnalité Windows Sandbox à son système d'exploitation, appelée également bac à sable en français. Cet environnement bac à sable met à votre disposition un espace léger, avec un bureau Windows, dans lequel vous pouvez :
- Tester l'installation d'un logiciel, en mode silencieux notamment
- Ouvrir un fichier suspect
- Ouvrir une application suspecte
- Utiliser un logiciel temporairement
Cet environnement est totalement isolé du système d'exploitation Windows de votre PC, ce qui vous permet de réaliser des manipulations en toute sécurité. Cet environnement est temporaire : lorsque la sandbox est fermée, tout est effacé et perdu définitivement. Si vous l'ouvrez à nouveau, vous repartez de zéro, etc.
II. Les prérequis à Windows Sandbox
Quelques prérequis sont à connaître avant de se lancer dans l'installation de Windows Sandbox sur votre machine :
- Windows 10 Pro ou Windows 10 Entreprise, version 1903 à minima - Pas compatible Windows 10 Famille
- Processeur 64 bits (architecture AMD64)
- Fonctionnalités de virtualisation activées dans le BIOS
- Au moins 4 Go de RAM, même si 8 Go est recommandé
- Au moins 1 Go d'espace disque
- Un processeur avec au moins 2 cœurs
Si tout est bon pour vous, il est temps de passer à la suite ! 🚀
III. Installer Windows Sandbox sur Windows 10
Dans la zone de recherche de Windows 10, recherchez "Fonctionnalités" et le résultat "Activer ou désactiver des fonctionnalités Windows" devrait apparaître.
Une fenêtre va s'ouvrir, dans la liste cochez la case à côté de "Bac à sable Windows" ou "Windows Sandbox" si votre Windows est en anglais. Cliquez sur "OK".
Note : si la fonctionnalité "Bac à sable Windows" est grisée, c'est que la virtualisation n'est pas active dans les paramètres du BIOS de votre machine. Vous pouvez aussi l'activer grâce à la commande suivante : Enable-WindowsOptionalFeature -FeatureName "Containers-DisposableClientVM" -Online
L'installation va démarrer et devrait être assez rapide. À la fin, vous serez amené à redémarrer votre PC.
Après le redémarrage, si vous recherchez Sandbox sur Windows, l'application Windows Sandbox devrait apparaître, comme ceci :
Le bac à sable va démarrer et afficher un environnement Windows sous la forme d'une machine virtuelle allégée en se basant sur la technologie Windows Containers. Le lancement de la Sandbox crée plusieurs processus au niveau de Windows : un processus WindowsSandbox.exe qui consomme environ 160 Mo de RAM et un processus nommé vmmem qui consomme entre 1,2 Go et 1,5 Go de RAM. Ce second processus est exécuté à l'aide d'un utilisateur temporaire et spécifique à la Sandbox.
Remarque : La session ouverte dans la Sandbox s'appuie sur un utilisateur nommé WDAGUtilityAccount.
Vous pouvez réaliser différentes actions dans la Sandbox, lorsque sera fermée, tout sera effacé. Vous repartez de zéro à chaque fois.
IV. Configuration de Windows Sandbox
Pour démarrer un environnement bac à sable avec une configuration spécifique, il est nécessaire de créer un fichier de configuration WSB. Il s'agit de l'extension choisie par Microsoft pour les fichiers de configuration Windows Sandbox.
Ce fichier doit contenir le bloc suivant pour déclarer la configuration :
<Configuration>
</Configuration>
À l'intérieur de ces deux balises, nous allons pouvoir déclarer la configuration souhaitée. Par exemple, il est possible de désactiver le réseau, de monter un répertoire du système hôte, d'exécuter un script, etc.
Voici quelques exemples de configuration (explications à l'étape suivante pour lancer une sandbox avec une configuration personnalisée) :
- Désactiver le réseau dans la Sandbox
Vous devez ajouter ce paramètre dans le bloc <Configuration> :
<Networking>Disable</Networking>
Ce qui donnera :
<Configuration>
<Networking>Disable</Networking>
</Configuration>
- Monter un dossier partagé dans la Sandbox
Si vous souhaitez monter un dossier (ou plusieurs) de votre PC au sein de la Sandbox comme s'il s'agissait d'un dossier partagé, c'est possible ! Il faut ajouter le bloc <MappedFolders> qui peut contenir un ou plusieurs sous-blocs <MappedFolder> (sans "s") correspondant à chaque dossier. Le dossier peut être monté en lecture seule ou en lecture écriture. Tout en sachant que le copier-coller est possible du PC vers la Sandbox, et inversement.
Pour monter le dossier "C:\SANDBOX" en lecture seule, cela donne :
<MappedFolders>
<MappedFolder>
<HostFolder>C:\SANDBOX</HostFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
Lorsqu'un dossier est monté dans la Sandbox, il est accessible par l'intermédiaire d'un raccourci sur le bureau.
Note : on peut imaginer monter un dossier local dans la Sandbox avec quelques exécutables de logiciels, et grâce à l'exécution de commandes au démarrage de la Sandbox on peut automatiser l'installation de quelques logiciels.
- Désactiver le GPU virtuel
<VGpu>Disable</VGpu>
- Exécuter un script ou une commande au démarrage
Pour automatiser l'installation d'un logiciel, on peut s'appuyer sur l'exécution d'une commande de démarrage. Par exemple, pour automatiser l'installation de Firefox (à partir d'un dossier monté dans la Sandbox) :
<LogonCommand>
<Command>C:\Users\WDAGUtilityAccount\Desktop\SANDBOX\Firefox.exe /S</Command>
</LogonCommand>
Cette méthode peut-être utilisée pour lancer un script PowerShell à l'aide de powershell.exe et des bons arguments 😉
Ce qui nous donne :
V. Exécuter une sandbox préconfigurée
Maintenant que vous avez votre fichier avec la configuration au format texte, comme celle ci-dessous par exemple, il reste à l'enregistrer : il suffit d'enregistrer le fichier avec l'extension .WSB.
<Configuration>
<Networking>Enable</Networking>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\SANDBOX</HostFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>C:\Users\WDAGUtilityAccount\Desktop\SANDBOX\Firefox.exe /S</Command>
</LogonCommand>
</Configuration>
Dès lors que le fichier est enregistré dans ce format, il peut-être exécuté ! Windows va alors générer une Sandbox en se basant sur la configuration intégrée à l'intérieur du fichier. L'intérêt, c'est que cela vous permet de préconfigurer différentes Sandbox et de les utiliser en fonction des circonstances. Plutôt pratique, non ?