Configuração da Área Restrita do Windows

A Área Restrita do Windows suporta arquivos de configuração simples, que fornece um conjunto mínimo de parâmetros de personalização para a Área Restrita. Esse recurso pode ser utilizado com o Windows 11 build 18342 ou Windows 10. Os arquivos de configuração da Área Restrita do Windows são formatados como XML e estão associados à Área Restrita através da extensão de arquivo .wsb.

Um arquivo de configuração permite ao usuário controlar os seguintes aspetos da Área Restrita do Windows:

  • vGPU (GPU virtualizada): habilite ou desabilite a GPU virtualizada. Se a vGPU estiver desabilitada, a área restrita usa a WARP (Plataforma de Rasterização Avançada do Windows).
  • Rede: habilite ou desabilite 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 malware afete o sistema ou roube dados.
  • Comando de início de sessão: um comando que é executado quando a Área Restrita do Windows é iniciada.
  • 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: coloca as configurações de segurança aumentadas na sessão do Protocolo RDP para a área restrita.
  • 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 restrita para que o texto e os arquivos possam ser colados de um para o outro.
  • Memória em MB: a quantidade de memória, em megabytes, a ser atribuída à área restrita.

Observação

Atualmente, o tamanho da janela da área restrita não é configurável.

Criar um arquivo de configuração

Para criar o arquivo 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, consulte os exemplos.

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

Usar um arquivo de configuração

Para usar um arquivo de configuração, clique duas vezes nele para iniciar a Área Restrita do Windows de acordo com as configurações. Você também pode invocá-la através 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 de vGPU na área restrita.
  • Desabilitar: desabilita o suporte de vGPU na área restrita. Se esse valor estiver definido, a área restrita usa a renderização de software, que poderá ser mais lenta do que a GPU virtualizada.
  • Padrão esse valor é o valor padrão para o suporte de vGPU. Atualmente, esse valor padrão indica que a vGPU está habilitada.

Observação

Ativar 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 pelo á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 de rede. Esse valor permite que a rede crie um comutador virtual no host e conecta a área restrita a ele através 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. Nesse momento, os caminhos relativos não são suportados. Se nenhum caminho for especificado, a pasta é mapeada para a área de trabalho do usuário do contêiner.

<MappedFolders>
  <MappedFolder>
    <HostFolder>absolute or relative 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 a ser compartilhada na área restrita. A pasta já tem de existir no host ou o contêiner não inicia.
  • 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 é mapeada para a área de trabalho do contêiner.
  • ReadOnly: Se for true, impõe o acesso somente leitura à pasta compartilhada a partir do contêiner. Valores suportados: true/false. O padrão é false.

Observação

Os arquivos e pastas mapeados a partir do host podem ser comprometidos por aplicativos na área restrita ou afetar potencialmente o host.

Comando de início de sessão

Especifica um único comando que será invocado automaticamente após a área restrita iniciar sessão. Os aplicativos na área restrita são executados na 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 arquivo executável ou script dentro do contêiner que será executado após iniciar sessão.

Observação

Embora os comandos muito simples funcionem (como iniciar um arquivo executável ou um script), os cenários mais complicados que envolvam várias etapas devem ser colocados num arquivo de script. Esse arquivo de script pode ser mapeado para o contêiner através de uma pasta compartilhada e, em seguida, executado através 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 estiver definido, a área restrita pode receber entradas de áudio do usuário. Os aplicativos que usam um microfone podem exigir esse recurso.
  • Desabilitar: desabilita a entrada de áudio na área restrita. Se esse valor estiver definido, a área restrita não pode receber entradas 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 de entrada de áudio. Atualmente, esse valor padrão indica que a entrada de áudio está habilitada.

Observação

Pode haver implicações de segurança na exposição de 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 video 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 de entrada de vídeo. Atualmente, esse valor padrão indica 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 na exposição de entrada de vídeo do host no contêiner.

Cliente protegido

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

O Isolamento de AppContainer fornece isolamento de Credencial, Dispositivo, Arquivo, Rede, Processo e Janela.

<ProtectedClient>value</ProtectedClient>

Valores com suporte:

  • Habilitar: executa a área restrita do Windows no modo Cliente Protegido. Se esse valor estiver definido, a Área Restrita é executada no Isolamento de 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 indica 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: permite o compartilhamento de impressoras host na área restrita.
  • Desabilitar: desabilita o redirecionamento de impressora na área restrita. Se esse valor estiver definido, a área restrita não pode exibir impressoras do host.
  • Padrão: esse valor é o valor padrão para o suporte de redirecionamento de impressora. Atualmente, esse valor padrão indica que o redirecionamento de impressora está desabilitado.

Redirecionamento da área de transferência

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

<ClipboardRedirection>value</ClipboardRedirection>

Valores com suporte:

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

Memória em 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 é aumentado automaticamente para a quantidade mínima necessária.

Exemplos

Exemplo 1

O seguinte arquivo de configuração pode ser utilizado para testar facilmente os arquivos baixados na área restrita. Para realizar esse teste, a rede e o vGPU estão desativados e a área restrita tem acesso somente leitura à pasta de download compartilhada. Para sua comodidade, o comando de início de sessão abre a pasta de downloads na área restrita quando é 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 seguinte arquivo de configuração instala o Visual Studio Code na área restrita, o que requer uma configuração LogonCommand um pouco mais complicada.

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

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

VSCodeInstall.cmd

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

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 arquivo 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.

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

SwapMouse.ps1

Crie um script do PowerShell com o seguinte código e guarde-o no diretório C:\sandbox 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>