Windows-Sandbox-Konfiguration

Windows-Sandbox unterstützt einfache Konfigurationsdateien, die einen minimalen Satz von Anpassungsparametern für Sandbox bereitstellen. Dieses Feature kann mit Windows 10, Build 18342 oder Windows 11 verwendet werden. Windows-Sandbox-Konfigurationsdateien sind als XML formatiert und mit der .wsb-Dateierweiterung Sandbox zugeordnet.

Eine Konfigurationsdatei ermöglicht es dem Benutzer, die folgenden Aspekte von Windows-Sandbox zu steuern:

  • vGPU (virtualisierte GPU): Aktivieren oder Deaktivieren der virtualisierten GPU. Wenn vGPU deaktiviert ist, verwendet Sandbox die Windows Advanced Rasterization Platform (WARP).
  • Networking: Aktivieren oder Deaktivieren des Netzwerkzugriffs innerhalb der Sandbox.
  • Zugeordnete Ordner: Freigeben von Ordnern vom Host mit Lese- oder Schreibberechtigungen. Das Verfügbarmachen von Hostverzeichnissen kann es Malware ermöglichen, das System zu beeinflussen oder Daten zu stehlen.
  • Anmeldebefehl: Ein Befehl, der beim Starten von Windows-Sandbox ausgeführt wird.
  • Audioeingang: Gibt den Mikrofoneingang des Hosts in die Sandbox frei.
  • Videoeingang: Gibt den Webcameingang des Hosts in die Sandbox frei.
  • Geschützter Client: Fügt erhöhte Sicherheitseinstellungen für die RDP-Sitzung in die Sandbox ein.
  • Druckerumleitung: Gibt Drucker des Hosts für die Sandbox frei.
  • Zwischenablageumleitung: Gibt die Host-Zwischenablage für die Sandbox frei, sodass Text und Dateien hin und her eingefügt werden können.
  • Arbeitsspeicher in MB: Die Größe des Arbeitsspeicher in Megabyte, der der Sandbox zugewiesen werden soll.

Erstellen einer Konfigurationsdatei

So erstellen Sie eine Konfigurationsdatei

  1. Öffnen Sie einen Nur-Text-Editor oder Quellcode-Editor (z.B. Editor, Visual Studio Code usw.).

  2. Fügen Sie die folgenden Zeilen ein:

    <Configuration>
    </Configuration>
    
  3. Fügen Sie den entsprechenden Konfigurationstext zwischen den beiden Zeilen hinzu. Weitere Informationen finden Sie unter der richtigen Syntax und in den folgenden Beispielen.

  4. Speichern Sie die Datei unter dem gewünschten Namen, stellen Sie jedoch sicher, dass die Dateinamenerweiterung .wsb ist. Im Windows-Editor sollten Sie den Dateinamen und die Erweiterung in doppelte Anführungszeichen einschließen, z.B. "My config file.wsb".

Verwenden einer Konfigurationsdatei

Um eine Konfigurationsdatei zu verwenden, doppelklicken Sie darauf, um Windows-Sandbox entsprechend den Einstellungen zu starten. Sie können sie auch über die Befehlszeile aufrufen, wie hier gezeigt:

C:\Temp> MyConfigFile.wsb 

Schlüsselwörter, Werte und Limits

vGPU

Aktiviert oder deaktiviert die GPU-Freigabe.

<vGPU>value</vGPU>

Unterstützte Werte:

  • Aktivieren: Aktiviert die vGPU-Unterstützung in der Sandbox.
  • Deaktivieren: Deaktiviert die vGPU-Unterstützung in der Sandbox. Wenn dieser Wert festgelegt ist, verwendet die Sandbox Softwarerendering, das langsamer als die virtualisierte GPU sein kann.
  • Standard: Dieser Wert ist der Standardwert für die vGPU-Unterstützung. Zurzeit gibt dieser Standardwert an, dass vGPU deaktiviert ist.

Hinweis

Das Aktivieren der virtualisierten GPU kann die Angriffsfläche der Sandbox möglicherweise vergrößern.

Networking

Aktiviert oder deaktiviert die Vernetzung in der Sandbox. Sie können den Netzwerkzugriff deaktivieren, um die durch die Sandbox exponierte Angriffsfläche zu verringern.

<Networking>value</Networking>

Unterstützte Werte:

  • Deaktivieren: Deaktiviert die Vernetzung in der Sandbox.
  • Standard: Dieser Wert ist der Standardwert für die Netzwerkunterstützung. Dieser Wert aktiviert die Vernetzung, indem ein virtueller Switch auf dem Host erstellt wird und die Sandbox über eine virtuelle Netzwerkkarte mit diesem verbunden wird.

Hinweis

Das Aktivieren der Vernetzung kann das interne Netzwerk nicht vertrauenswürdige Anwendungen aussetzen.

Zugeordnete Ordner

Ein Array von Ordnern, die jeweils einen Speicherort auf dem Hostcomputer darstellen, der im angegebenen Pfad in der Sandbox freigegeben wird. Zurzeit werden relative Pfade nicht unterstützt. Wenn kein Pfad angegeben ist, wird der Ordner dem Desktop des Containerbenutzers zugeordnet.

<MappedFolders>
  <MappedFolder> 
    <HostFolder>absolute path to the host folder</HostFolder> 
    <SandboxFolder>absolute path to the sandbox folder</SandboxFolder> 
    <ReadOnly>value</ReadOnly> 
  </MappedFolder>
  <MappedFolder>  
    ...
  </MappedFolder>
</MappedFolders>

HostFolder: Gibt den Ordner auf dem Hostcomputer an, der in der Sandbox freigegeben werden soll. Der Ordner muss bereits auf dem Host vorhanden sein, andernfalls kann der Container nicht gestartet werden.

SandboxFolder: Gibt das Ziel in der Sandbox an, dem der Ordner zugeordnet werden soll. Wenn dieser Ordner nicht vorhanden ist, wird er automatisch erstellt. Wenn kein Sandbox-Ordner angegeben ist, wird der Ordner dem Containerdesktop zugeordnet.

ReadOnly: Wenn true, wird der schreibgeschützte Zugriff auf den freigegebenen Ordner innerhalb des Containers erzwungen. Unterstützte Werte: true/false. Der Standardwert ist false.

Hinweis

Dateien und Ordner, die vom Host zugeordnet sind, können von Apps in der Sandbox kompromittiert werden oder sich möglicherweise auf den Host auswirken.

Befehl "Logon command"

Gibt einen einzelnen Befehl an, der automatisch aufgerufen wird, nachdem sich die Sandbox angemeldet hat. Apps in der Sandbox werden unter dem Containerbenutzerkonto ausgeführt. Das Containerbenutzerkonto muss ein Administratorkonto sein.

<LogonCommand>
  <Command>command to be invoked</Command>
</LogonCommand>

Befehl: Ein Pfad zu einer ausführbaren Datei oder einem Skript innerhalb des Containers, die/das nach der Anmeldung ausgeführt wird.

Hinweis

Obwohl sehr einfache Befehle funktionieren (z. B. das Starten einer ausführbaren Datei oder eines Skripts), sollten komplexere Szenarien mit mehreren Schritten in eine Skriptdatei aufgenommen werden. Diese Skriptdatei kann über einen freigegebenen Ordner dem Container zugeordnet und dann über die Richtlinie LogonCommand ausgeführt werden.

Audioeingang

Aktiviert oder deaktiviert den Audioeingang in die Sandbox.

<AudioInput>value</AudioInput>

Unterstützte Werte:

  • Aktivieren: Aktiviert den Audioeingang in der Sandbox. Wenn dieser Wert festgelegt ist, kann die Sandbox Audioeingaben vom Benutzer empfangen. Für Anwendungen, die ein Mikrofon verwenden, ist diese Funktion möglicherweise erforderlich.
  • Disable: Deaktiviert den Audioeingang in der Sandbox. Wenn dieser Wert festgelegt ist, kann die Sandbox keine Audiosignale des Benutzers empfangen. Anwendungen, die ein Mikrofon verwenden, funktionieren mit dieser Einstellung möglicherweise nicht ordnungsgemäß.
  • Standard: Dieser Wert ist der Standardwert für die Unterstützung des Audioeingangs. Zurzeit gibt dieser Standardwert an, dass die Audioeingabe aktiviert ist.

Hinweis

Die Bereitstellung des Hostaudioeingangs für den Container kann Auswirkungen auf die Sicherheit haben.

Videoeingang

Aktiviert oder deaktiviert den Videoeingang in der Sandbox.

<VideoInput>value</VideoInput>

Unterstützte Werte:

  • Aktivieren: Aktiviert den Videoeingang in der Sandbox.
  • Disable: Deaktiviert den Videoeingang in der Sandbox. Anwendungen, die den Videoeingang verwenden, funktionieren in der Sandbox möglicherweise nicht ordnungsgemäß.
  • Standard: Dieser Wert ist der Standardwert für die Unterstützung des Videoeingangs. Zurzeit gibt dieser Standardwert an, dass die Videoeingabe deaktiviert ist. Anwendungen, die den Videoeingang verwenden, funktionieren in der Sandbox möglicherweise nicht ordnungsgemäß.

Hinweis

Die Bereitstellung des Host-Videoeingangs für den Container kann Auswirkungen auf die Sicherheit haben.

Geschützter Client

Wendet weitere Sicherheitseinstellungen auf den Sandbox-Remotedesktopclient an, wodurch die Angriffsfläche verringert wird.

<ProtectedClient>value</ProtectedClient>

Unterstützte Werte:

  • Aktivieren: Führt die Windows-Sandbox im geschützter Clientmodus aus. Wenn dieser Wert festgelegt ist, wird die Sandbox mit aktivierten zusätzlichen Sicherheitsausgleichen ausgeführt.
  • Deaktivieren: Führt die Sandbox im Standardmodus ohne zusätzliche Sicherheitsausgleiche aus.
  • Standard: Dieser Wert ist der Standardwert für den geschützten Clientmodus. Zurzeit gibt dieser Standardwert an, dass die Sandbox nicht im geschützten Clientmodus ausgeführt wird.

Hinweis

Diese Einstellung kann die Möglichkeit des Benutzers einschränken, Dateien in und aus der Sandbox zu kopieren/einzufügen.

Druckerumleitung

Aktiviert oder deaktiviert die Druckerfreigabe vom Host in der Sandbox.

<PrinterRedirection>value</PrinterRedirection>

Unterstützte Werte:

  • Aktivieren: Aktiviert die Freigabe von Hostdruckern in der Sandbox.
  • Deaktivieren: Deaktiviert die Druckerumleitung in der Sandbox. Wenn dieser Wert festgelegt ist, kann die Sandbox keine Drucker vom Host anzeigen.
  • Standard: Dieser Wert ist der Standardwert für die Unterstützung der Druckerumleitung. Zurzeit gibt dieser Standardwert an, dass die Druckerumleitung deaktiviert ist.

Zwischenablageumleitung

Aktiviert oder deaktiviert die Freigabe der Hostablage für die Sandbox.

<ClipboardRedirection>value</ClipboardRedirection>

Unterstützte Werte:

  • Deaktivieren: Deaktiviert die Umleitung der Zwischenablage in der Sandbox. Wenn dieser Wert festgelegt ist, wird das Kopieren/Einfügen in und aus der Sandbox eingeschränkt.
  • Standard: Dieser Wert ist der Standardwert für die Umleitung der Zwischenablage. Zurzeit ist das Kopieren/Einfügen zwischen Host und Sandbox unter Standard zulässig.

Arbeitsspeicher in MB

Gibt die Speichermenge in Megabyte (MB) an, die Sandbox verwenden kann.

<MemoryInMB>value</MemoryInMB>

Wenn der angegebene Arbeitsspeicher nicht ausreicht, um eine Sandbox zu starten, wird er automatisch auf den erforderlichen Mindestwert erhöht.

Beispiel 1

Die folgende Konfigurationsdatei kann verwendet werden, um die heruntergeladenen Dateien einfach innerhalb der Sandbox zu testen. Um diesen Test zu erreichen, sind Netzwerk und vGPU deaktiviert, und der Sandbox wird schreibgeschützter Zugriff auf den freigegebenen Downloadordner gewährt. Der Einfachheit halber öffnet der Anmeldebefehl den Downloadordner innerhalb der Sandbox, wenn er gestartet wird.

Downloads.wsb

<Configuration>
  <VGpu>Disable</VGpu>
  <Networking>Disable</Networking>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\Users\Public\Downloads</HostFolder>
      <SandboxFolder>C:\Users\WDAGUtilityAccount\Downloads</SandboxFolder>
      <ReadOnly>true</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>explorer.exe C:\users\WDAGUtilityAccount\Downloads</Command>
  </LogonCommand>
</Configuration>

Beispiel 2

Die folgende Konfigurationsdatei installiert Visual Studio Code in der Sandbox, was ein etwas komplizierteres LogonCommand-Setup erfordert.

Zwei Ordner werden der Sandbox zugeordnet. Der erste (SandboxScripts) enthält VSCodeInstall.cmd, der den Visual Studio Code installiert und ausführt. Der zweite Ordner (CodingProjects) enthält Projektdateien, die der Entwickler mit Visual Studio Code ändern möchte.

Da das Visual Studio Code-Installationsprogrammskript bereits der Sandbox zugeordnet ist, kann der Befehl "LogonCommand" darauf verweisen.

VSCodeInstall.cmd

REM Download Visual Studio Code
curl -L "https://update.code.visualstudio.com/latest/win32-x64-user/stable" --output C:\users\WDAGUtilityAccount\Desktop\vscode.exe

REM Install and run Visual Studio Code
C:\users\WDAGUtilityAccount\Desktop\vscode.exe /verysilent /suppressmsgboxes

VSCode.wsb

<Configuration>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\SandboxScripts</HostFolder>
      <ReadOnly>true</ReadOnly>
    </MappedFolder>
    <MappedFolder>
      <HostFolder>C:\CodingProjects</HostFolder>
      <ReadOnly>false</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>C:\Users\WDAGUtilityAccount\Desktop\SandboxScripts\VSCodeInstall.cmd</Command>
  </LogonCommand>
</Configuration>