Compartilhar via


Configuração da Área Restrita do Windows

O Sandbox do Windows suporta ficheiros de configuração simples, que fornecem um conjunto mínimo de parâmetros de personalização para o Sandbox. Esta funcionalidade pode ser utilizada com a compilação 18342 ou Windows 11 do Windows 10. Os ficheiros de configuração do Sandbox do Windows são formatados como XML e estão associados ao Sandbox através da extensão de .wsb ficheiro.

Um ficheiro de configuração permite ao utilizador controlar os seguintes aspetos do Sandbox do Windows:

  • vGPU (GPU virtualizada): ative ou desative a GPU virtualizada. Se a vGPU estiver desativada, o sandbox utiliza a Plataforma de Rasterização Avançada do Windows (WARP).
  • Rede: ative ou desative o acesso à rede no sandbox.
  • Pastas mapeadas: partilhe pastas do anfitrião com permissões de leitura ou escrita . Expor diretórios de anfitriões pode permitir que software malicioso afete o sistema ou roube dados.
  • Comando de início de sessão: um comando que é executado quando o Windows Sandbox é iniciado.
  • Entrada de áudio: partilha a entrada do microfone do anfitrião no sandbox.
  • Entrada de vídeo: partilha a entrada da câmara Web do anfitrião no sandbox.
  • Cliente protegido: coloca as definições de segurança aumentadas na sessão do Protocolo RDP (Remote Desktop Protocol) para o sandbox.
  • Redirecionamento da impressora: partilha impressoras do anfitrião no sandbox.
  • Redirecionamento da área de transferência: partilha a área de transferência do anfitrião com o sandbox para que o texto e os ficheiros possam ser colados para trás e para a frente.
  • Memória em MB: a quantidade de memória, em megabytes, a atribuir ao sandbox.

Observação

Atualmente, o tamanho da janela do sandbox não é configurável.

Criar um ficheiro de configuração

Para criar um ficheiro de configuração:

  1. Abra um editor de texto simples ou editor de código fonte (por exemplo, Bloco de notas, Visual Studio Code, etc.)

  2. Insira as seguintes linhas:

    <Configuration>
    </Configuration>
    
  3. Adicione o texto de configuração adequado entre as duas linhas. Para obter detalhes, veja exemplos.

  4. Guarde o ficheiro com o nome pretendido, mas certifique-se de que a extensão de nome de ficheiro é .wsb. No Bloco de Notas, deve incluir o nome do ficheiro e a extensão entre aspas duplas, por exemplo, "My config file.wsb".

Utilizar um ficheiro de configuração

Para utilizar um ficheiro de configuração, faça duplo clique no mesmo para iniciar o Windows Sandbox de acordo com as respetivas definições. Também pode invocá-la através da linha de comandos, conforme mostrado aqui:

C:\Temp> MyConfigFile.wsb

Palavras-chave, valores e limites

vGPU

Ativa ou desativa a partilha de GPU.

<vGPU>value</vGPU>

Valores com suporte:

  • Ativar: ativa o suporte da vGPU no sandbox.
  • Desativar: desativa o suporte de vGPU no sandbox. Se este valor estiver definido, o sandbox utiliza a composição de software, que poderá ser mais lenta do que a GPU virtualizada.
  • Predefinição Este valor é o valor predefinido para o suporte de vGPU. Atualmente, este valor predefinido indica que a vGPU está desativada.

Observação

Ativar a GPU virtualizada pode potencialmente aumentar a superfície de ataque do sandbox.

Rede

Ativa ou desativa a rede no sandbox. Pode desativar o acesso à rede para diminuir a superfície de ataque exposta pelo sandbox.

<Networking>value</Networking>

Valores com suporte:

  • Ativar: ativa a rede no sandbox.
  • Desativar: desativa a rede no sandbox.
  • Predefinição: este valor é o valor predefinido para o suporte de rede. Este valor permite a rede ao criar um comutador virtual no anfitrião e liga o sandbox ao mesmo através de uma NIC virtual.

Observação

Ativar a rede pode expor aplicações não fidedignas à rede interna.

Pastas mapeadas

Uma matriz de pastas, cada uma representando uma localização no computador anfitrião que é partilhada com o sandbox no caminho especificado. Neste momento, os caminhos relativos não são suportados. Se não for especificado nenhum caminho, a pasta é mapeada para o ambiente de trabalho do utilizador do contentor.

<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: especifica a pasta no computador anfitrião a partilhar no sandbox. A pasta já tem de existir no anfitrião ou o contentor não inicia.
  • SandboxFolder: especifica o destino no sandbox para o qual mapear a pasta. Se a pasta não existir, é criada. Se não for especificada nenhuma pasta do sandbox, a pasta é mapeada para o ambiente de trabalho do contentor.
  • ReadOnly: Se for verdadeiro, impõe o acesso só de leitura à pasta partilhada a partir do contentor. Valores suportados: verdadeiro/falso. A predefinição é false.

Observação

Os ficheiros e pastas mapeados a partir do anfitrião podem ser comprometidos por aplicações no sandbox ou afetar potencialmente o anfitrião.

Comando de início de sessão

Especifica um único comando que será invocado automaticamente após o sandbox iniciar sessão. As aplicações no sandbox são executadas na conta de utilizador do contentor. A conta de utilizador do contentor deve ser uma conta de administrador.

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

Comando: um caminho para um executável ou script dentro do contentor que será executado após iniciar sessão.

Observação

Embora os comandos muito simples funcionem (como iniciar um executável ou um script), os cenários mais complicados que envolvam vários passos devem ser colocados num ficheiro de script. Este ficheiro de script pode ser mapeado para o contentor através de uma pasta partilhada e, em seguida, executado através da diretiva LogonCommand .

Entrada de áudio

Ativa ou desativa a entrada de áudio no sandbox.

<AudioInput>value</AudioInput>

Valores com suporte:

  • Ativar: ativa a entrada de áudio no sandbox. Se este valor estiver definido, o sandbox pode receber entradas de áudio do utilizador. As aplicações que utilizam um microfone podem exigir esta capacidade.
  • Desativar: desativa a entrada de áudio no sandbox. Se este valor estiver definido, o sandbox não poderá receber entradas de áudio do utilizador. As aplicações que utilizam um microfone podem não funcionar corretamente com esta definição.
  • Predefinição: este valor é o valor predefinido do suporte de entrada de áudio. Atualmente, este valor predefinido indica que a entrada de áudio está ativada.

Observação

Podem existir implicações de segurança ao expor a entrada de áudio do anfitrião no contentor.

Entrada de vídeo

Ativa ou desativa a entrada de vídeo no sandbox.

<VideoInput>value</VideoInput>

Valores com suporte:

  • Ativar: ativa a entrada de vídeo no sandbox.
  • Desativar: desativa a entrada de vídeo no sandbox. As aplicações que utilizam a entrada de vídeo podem não funcionar corretamente no sandbox.
  • Predefinição: este valor é o valor predefinido do suporte de entrada de vídeo. Atualmente, este valor predefinido indica que a entrada de vídeo está desativada. As aplicações que utilizam a entrada de vídeo podem não funcionar corretamente no sandbox.

Observação

Podem existir implicações de segurança ao expor a entrada de vídeo do anfitrião no contentor.

Cliente protegido

Quando o modo Cliente Protegido está ativado, o Sandbox adiciona uma nova camada de limite de segurança ao executar dentro de um ambiente de execução de Isolamento de AppContainer .

O Isolamento do AppContainer fornece isolamento de Credenciais, Dispositivo, Ficheiro, Rede, Processo e Janela.

<ProtectedClient>value</ProtectedClient>

Valores com suporte:

  • Ativar: executa o sandbox do Windows no modo de Cliente Protegido. Se este valor estiver definido, o Sandbox é executado no Isolamento appContainer.
  • Desativar: executa o Sandbox no modo padrão sem mitigações de segurança adicionais.
  • Predefinição: este valor é o valor predefinido para o modo Cliente Protegido. Atualmente, este valor predefinido indica que o sandbox não é executado no modo Cliente Protegido.

Observação

Esta definição pode restringir a capacidade do utilizador de copiar/colar ficheiros dentro e fora do sandbox.

Redirecionamento da impressora

Ativa ou desativa a partilha de impressoras do anfitrião no sandbox.

<PrinterRedirection>value</PrinterRedirection>

Valores com suporte:

  • Ativar: ativa a partilha de impressoras anfitriãs no sandbox.
  • Desativar: desativa o redirecionamento da impressora no sandbox. Se este valor estiver definido, o sandbox não conseguirá ver impressoras do anfitrião.
  • Predefinição: este valor é o valor predefinido do suporte de redirecionamento da impressora. Atualmente, este valor predefinido indica que o redirecionamento da impressora está desativado.

Redirecionamento da área de transferência

Ativa ou desativa a partilha da área de transferência do anfitrião com o sandbox.

<ClipboardRedirection>value</ClipboardRedirection>

Valores com suporte:

  • Ativar: ativa a partilha da área de transferência do anfitrião com o sandbox.
  • Desativar: desativa o redirecionamento da área de transferência no sandbox. Se este valor estiver definido, a opção copiar/colar dentro e fora do sandbox é restrita.
  • Predefinição: este valor é o valor predefinido para redirecionamento da área de transferência. Atualmente, é permitido copiar/colar entre o anfitrião e o sandbox em Predefinição.

Memória em MB

Especifica a quantidade de memória que o sandbox pode utilizar em megabytes (MB).

<MemoryInMB>value</MemoryInMB>

Se o valor de memória especificado for insuficiente para arrancar um sandbox, este é automaticamente aumentado para a quantidade mínima necessária.

Exemplos

Exemplo 1

O seguinte ficheiro de configuração pode ser utilizado para testar facilmente os ficheiros transferidos no sandbox. Para realizar este teste, a rede e o vGPU estão desativados e o sandbox tem acesso só de leitura à pasta de transferências partilhadas. Para sua comodidade, o comando de início de sessão abre a pasta de transferências no sandbox quando é iniciado.

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>

Exemplo 2

O seguinte ficheiro de configuração instala o Visual Studio Code no sandbox, o que requer uma configuração logonCommand ligeiramente mais complicada.

Duas pastas são mapeadas para o sandbox; o primeiro (SandboxScripts) contém VSCodeInstall.cmd, que instala e executa o Visual Studio Code. Presume-se que a segunda pasta (CodingProjects) contém ficheiros de projeto que o programador quer modificar com o Visual Studio Code.

Com o script do instalador do Visual Studio Code já mapeado para o sandbox, o LogonCommand pode referenciá-lo.

VSCodeInstall.cmd

Transfere o VS Code para a pasta e executa a downloads instalação a partir da downloads pasta.

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

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

VSCode.wsb

<Configuration>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\SandboxScripts</HostFolder>
      <SandboxFolder>C:\Users\WDAGUtilityAccount\Downloads\sandbox</SandboxFolder>
      <ReadOnly>true</ReadOnly>
    </MappedFolder>
    <MappedFolder>
      <HostFolder>C:\CodingProjects</HostFolder>
      <SandboxFolder>C:\Users\WDAGUtilityAccount\Documents\Projects</SandboxFolder>
      <ReadOnly>false</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>C:\Users\WDAGUtilityAccount\Downloads\sandbox\VSCodeInstall.cmd</Command>
  </LogonCommand>
</Configuration>

Exemplo 3

O seguinte ficheiro de configuração executa um script do PowerShell como um comando de início de sessão para trocar o botão principal do rato por utilizadores canhotos.

C:\sandbox A pasta no anfitrião é mapeada para a C:\sandbox pasta no sandbox, para que o SwapMouse.ps1 script possa ser referenciado no ficheiro de configuração do sandbox.

SwapMouse.ps1

Crie um script do PowerShell com o seguinte código e guarde-o no C:\sandbox diretório como SwapMouse.ps1.

[Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null

$SwapButtons = Add-Type -MemberDefinition @'
[DllImport("user32.dll")]
public static extern bool SwapMouseButton(bool swap);
'@ -Name "NativeMethods" -Namespace "PInvoke" -PassThru

$SwapButtons::SwapMouseButton(!([System.Windows.Forms.SystemInformation]::MouseButtonsSwapped))

SwapMouse.wsb

<Configuration>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\sandbox</HostFolder>
      <SandboxFolder>C:\sandbox</SandboxFolder>
      <ReadOnly>True</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>powershell.exe -ExecutionPolicy Bypass -File C:\sandbox\SwapMouse.ps1</Command>
  </LogonCommand>
</Configuration>