Configuração da Área Restrita do Windows

Área Restrita do Windows dá suporte a arquivos de configuração simples, que fornecem um conjunto mínimo de parâmetros de personalização para o Sandbox. Esse recurso pode ser usado com Windows 10 build 18342 ou Windows 11. Área Restrita do Windows arquivos de configuração são formatados como XML e estão associados ao Sandbox por meio da extensão de .wsb arquivo.

Um arquivo de configuração permite que o usuário controle os seguintes aspectos de Área Restrita do Windows:

  • vGPU (GPU virtualizada): habilitar ou desabilitar a GPU virtualizada. Se o vGPU estiver desabilitado, a área restrita usará a Plataforma de Rasterização Avançada do Windows (WARP).
  • Rede: habilitar ou desabilitar o acesso à rede na área restrita.
  • Pastas mapeadas: compartilhe pastas do host com permissões de leitura ou gravação . Expor diretórios de host pode permitir que o software mal-intencionado afete o sistema ou roube dados.
  • Comando logon: um comando executado quando Área Restrita do Windows é iniciado.
  • Entrada de áudio: compartilha a entrada do microfone do host na área restrita.
  • Entrada de vídeo: compartilha a entrada da webcam do host na área restrita.
  • Cliente protegido: Places configurações de segurança aumentadas na sessão RDP (Protocolo de Área de Trabalho Remota) para a área de areia.
  • Redirecionamento da impressora: compartilha impressoras do host na área restrita.
  • Redirecionamento da área de transferência: compartilha a área de transferência do host com a área de areia para que o texto e os arquivos possam ser colados para frente e para trás.
  • Memória no MB: a quantidade de memória, em megabytes, a ser atribuída à área restrita.

Observação

O tamanho da janela da área restrita atualmente não é configurável.

Criando um arquivo de configuração

Para criar um arquivo de configuração:

  1. Abra um editor de texto simples ou um 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 apropriado entre as duas linhas. Para obter detalhes, confira exemplos.

  4. Salve o arquivo com o nome desejado, mas verifique se sua extensão de nome de arquivo é .wsb. No Bloco de Notas, você deve incluir o nome do arquivo e a extensão dentro de aspas duplas, por exemplo, "My config file.wsb".

Usando um arquivo de configuração

Para usar um arquivo de configuração, clique duas vezes nele para iniciar Área Restrita do Windows de acordo com suas configurações. Você também pode invocá-lo por meio da linha de comando, conforme mostrado aqui:

C:\Temp> MyConfigFile.wsb

Palavras-chave, valores e limites

vGPU

Habilita ou desabilita o compartilhamento de GPU.

<vGPU>value</vGPU>

Valores com suporte:

  • Habilitar: habilita o suporte vGPU na área restrita.
  • Desabilitar: desabilita o suporte vGPU na área restrita. Se esse valor for definido, a área restrita usará a renderização de software, que pode ser mais lenta do que a GPU virtualizada.
  • Padrão Esse valor é o valor padrão para o suporte vGPU. Atualmente, esse valor padrão denota que o vGPU está desabilitado.

Observação

Habilitar a GPU virtualizada pode potencialmente aumentar a superfície de ataque da área restrita.

Rede

Habilita ou desabilita a rede na área restrita. Você pode desabilitar o acesso à rede para diminuir a superfície de ataque exposta pela área restrita.

<Networking>value</Networking>

Valores com suporte:

  • Habilitar: habilita a rede na área restrita.
  • Desabilitar: desabilita a rede na área restrita.
  • Padrão: esse valor é o valor padrão para o suporte à rede. Esse valor permite a rede criando uma opção virtual no host e conecta a área restrita a ela por meio de uma NIC virtual.

Observação

Habilitar a rede pode expor aplicativos não confiáveis à rede interna.

Pastas mapeadas

Uma matriz de pastas, cada uma representando um local no computador host que é compartilhado com a área restrita no caminho especificado. Neste momento, não há suporte para caminhos relativos. Se nenhum caminho for especificado, a pasta será mapeada para a área de trabalho do usuário do contêiner.

<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 host para compartilhar na área restrita. A pasta já deve existir no host ou o contêiner não é iniciado.
  • SandboxFolder: especifica o destino na área restrita para o qual mapear a pasta. Se a pasta não existir, ela será criada. Se nenhuma pasta de área restrita for especificada, a pasta será mapeada para a área de trabalho do contêiner.
  • ReadOnly: se for true, impõe o acesso somente leitura à pasta compartilhada de dentro do contêiner. Valores com suporte: true/false. O padrão é false.

Observação

Arquivos e pastas mapeados do host podem ser comprometidos por aplicativos na área restrita ou afetar potencialmente o host.

Comando logon

Especifica um único comando que será invocado automaticamente após o logon da área restrita. Os aplicativos na área restrita são executados sob a conta de usuário do contêiner. A conta de usuário do contêiner 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 contêiner que será executado após a entrada.

Observação

Embora comandos muito simples funcionem (como iniciar um script ou executável), cenários mais complicados envolvendo várias etapas devem ser colocados em um arquivo de script. Esse arquivo de script pode ser mapeado no contêiner por meio de uma pasta compartilhada e executado por meio da diretiva LogonCommand .

Entrada de áudio

Habilita ou desabilita a entrada de áudio na área restrita.

<AudioInput>value</AudioInput>

Valores com suporte:

  • Habilitar: habilita a entrada de áudio na área restrita. Se esse valor for definido, a área restrita poderá receber a entrada de áudio do usuário. Aplicativos que usam um microfone podem exigir essa funcionalidade.
  • Desabilitar: desabilita a entrada de áudio na área restrita. Se esse valor for definido, a área restrita não poderá receber a entrada de áudio do usuário. Os aplicativos que usam um microfone podem não funcionar corretamente com essa configuração.
  • Padrão: esse valor é o valor padrão para o suporte à entrada de áudio. Atualmente, esse valor padrão denota que a entrada de áudio está habilitada.

Observação

Pode haver implicações de segurança de expor a entrada de áudio do host no contêiner.

Entrada de vídeo

Habilita ou desabilita a entrada de vídeo na área restrita.

<VideoInput>value</VideoInput>

Valores com suporte:

  • Habilitar: habilita a entrada de vídeo na área restrita.
  • Desabilitar: desabilita a entrada de vídeo na área restrita. Os aplicativos que usam a entrada de vídeo podem não funcionar corretamente na área restrita.
  • Padrão: esse valor é o valor padrão para o suporte à entrada de vídeo. Atualmente, esse valor padrão denota que a entrada de vídeo está desabilitada. Os aplicativos que usam a entrada de vídeo podem não funcionar corretamente na área restrita.

Observação

Pode haver implicações de segurança de expor a entrada de vídeo do host no contêiner.

Cliente protegido

Quando o modo Cliente Protegido está habilitado, o Sandbox adiciona uma nova camada de limite de segurança executando dentro de um ambiente de execução de isolamento appContainer .

O Isolamento do AppContainer fornece credencial, dispositivo, arquivo, rede, processo e isolamento da janela.

<ProtectedClient>value</ProtectedClient>

Valores com suporte:

  • Habilitar: executa a área restrita do Windows no modo Cliente Protegido. Se esse valor for definido, o Sandbox será executado no Isolamento do AppContainer.
  • Desabilitar: executa a Área restrita no modo padrão sem mitigações de segurança extras.
  • Padrão: esse valor é o valor padrão para o modo Cliente Protegido. Atualmente, esse valor padrão denota que a área restrita não é executada no modo Cliente Protegido.

Observação

Essa configuração pode restringir a capacidade do usuário de copiar/colar arquivos dentro e fora da área restrita.

Redirecionamento de impressora

Habilita ou desabilita o compartilhamento de impressora do host na área restrita.

<PrinterRedirection>value</PrinterRedirection>

Valores com suporte:

  • Habilitar: habilita o compartilhamento de impressoras host na área restrita.
  • Desabilitar: desabilita o redirecionamento da impressora na área restrita. Se esse valor for definido, a área restrita não poderá exibir impressoras do host.
  • Padrão: esse valor é o valor padrão para o suporte ao redirecionamento da impressora. Atualmente, esse valor padrão denota que o redirecionamento da impressora está desabilitado.

Redirecionamento da área de transferência

Habilita ou desabilita o compartilhamento da área de transferência do host com a área de areia.

<ClipboardRedirection>value</ClipboardRedirection>

Valores com suporte:

  • Habilitar: habilita o compartilhamento da área de transferência do host com a área de areia.
  • Desabilitar: desabilita o redirecionamento da área de transferência na área restrita. Se esse valor for definido, copie/cole dentro e fora da área restrita.
  • Padrão: esse valor é o valor padrão para o redirecionamento da área de transferência. Atualmente, copiar/colar entre o host e a área restrita são permitidos em Padrão.

Memória no MB

Especifica a quantidade de memória que a área restrita pode usar em megabytes (MB).

<MemoryInMB>value</MemoryInMB>

Se o valor de memória especificado for insuficiente para inicializar uma área restrita, ele será automaticamente aumentado para a quantidade mínima necessária.

Exemplos

Exemplo 1

O arquivo de configuração a seguir pode ser usado para testar facilmente os arquivos baixados dentro da área restrita. Para obter esse teste, a rede e a vGPU estão desabilitadas e a área restrita tem acesso somente leitura à pasta de downloads compartilhados. Para conveniência, o comando logon abre a pasta downloads dentro da área restrita quando ela é iniciada.

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 arquivo de configuração a seguir instala Visual Studio Code na área restrita, o que requer uma configuração logonCommand um pouco mais complicada.

Duas pastas são mapeadas na área restrita; o primeiro (SandboxScripts) contém VSCodeInstall.cmd, que instala e executa Visual Studio Code. Supõe-se que a segunda pasta (CodingProjects) contenha arquivos de projeto que o desenvolvedor deseja modificar usando Visual Studio Code.

Com o script do instalador Visual Studio Code já mapeado na área restrita, o LogonCommand pode referenciá-lo.

VSCodeInstall.cmd

Baixa o VS Code para pasta e executa a downloads instalação 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 arquivo de configuração a seguir executa um script do PowerShell como um comando de logon para trocar o botão do mouse primário por usuários canhotos.

C:\sandbox A pasta no host é mapeada para a C:\sandbox pasta na área restrita, para que o SwapMouse.ps1 script possa ser referenciado no arquivo de configuração de área restrita.

SwapMouse.ps1

Crie um script do PowerShell usando o código a seguir e salve-o C:\sandbox no 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>