Поделиться через


Конфигурация Песочницы Windows

Песочница Windows поддерживает простые файлы конфигурации, которые предоставляют минимальный набор параметров настройки для песочницы. Эту функцию можно использовать с Windows 10 сборки 18342 или Windows 11. Файлы конфигурации песочницы Windows форматируются как XML и связываются с песочницей через .wsb расширение файла.

Файл конфигурации позволяет пользователю управлять следующими аспектами песочницы Windows:

  • vGPU (виртуализированный GPU): включение или отключение виртуализированного GPU. Если vGPU отключен, песочница использует windows Advanced Rasterization Platform (WARP).
  • Сеть: включение или отключение сетевого доступа в песочнице.
  • Сопоставленные папки. Предоставление общего доступа к папкам с узла с разрешениями на чтение или запись . Предоставление каталогов узлов может позволить вредоносному программному обеспечению повлиять на систему или украсть данные.
  • Команда входа: команда, которая выполняется при запуске песочницы Windows.
  • Аудиовход: предоставляет входные данные микрофона узла в песочницу.
  • Видеовход: предоставляет доступ к входу веб-камеры узла в песочницу.
  • Защищенный клиент. Помещает расширенные параметры безопасности в сеансе протокола удаленного рабочего стола (RDP) в песочницу.
  • Перенаправление принтеров. Предоставляет общий доступ к принтерам из узла в песочницу.
  • Перенаправление буфера обмена. Предоставляет доступ к буферу обмена узла с песочницей, чтобы текст и файлы можно было вставлять туда и обратно.
  • Память в МБ. Объем памяти в мегабайтах, который назначается песочнице.

Примечание.

Размер окна песочницы в настоящее время не настраивается.

Создание файла конфигурации

Чтобы создать файл конфигурации, выполните приведенные далее действия.

  1. Открытие редактора обычного текста или редактора исходного кода (например, Блокнот, Visual Studio Code и т. д.)

  2. Вставьте следующие строки:

    <Configuration>
    </Configuration>
    
  3. Добавьте соответствующий текст конфигурации между двумя строками. Дополнительные сведения см. в примерах.

  4. Сохраните файл с нужным именем, но убедитесь, что его расширение имеет значение .wsb. В Блокноте следует заключить имя файла и расширение в двойные кавычки, например "My config file.wsb".

Использование файла конфигурации

Чтобы использовать файл конфигурации, дважды щелкните его, чтобы запустить песочницу Windows в соответствии с его параметрами. Его также можно вызвать с помощью командной строки, как показано ниже:

C:\Temp> MyConfigFile.wsb

Ключевые слова, значения и ограничения

VGPU

Включает или отключает общий доступ к GPU.

<vGPU>value</vGPU>

Поддерживаемые значения:

  • Включить: включает поддержку vGPU в песочнице.
  • Отключить. Отключает поддержку vGPU в песочнице. Если это значение задано, песочница использует программную отрисовку, которая может работать медленнее, чем виртуализированный GPU.
  • По умолчанию Это значение является значением по умолчанию для поддержки виртуальных ЦП. В настоящее время это значение по умолчанию указывает, что vGPU включен.

Примечание.

Включение виртуализированного GPU может потенциально увеличить область атак в песочнице.

Сеть

Включает или отключает сеть в песочнице. Вы можете отключить сетевой доступ, чтобы уменьшить область атак, которую предоставляет песочница.

<Networking>value</Networking>

Поддерживаемые значения:

  • Включить. Включает сеть в песочнице.
  • Отключить. Отключает сеть в песочнице.
  • По умолчанию. Это значение является значением по умолчанию для поддержки сети. Это значение позволяет создать виртуальный коммутатор на узле и подключить к нему песочницу через виртуальную сетевую карту.

Примечание.

Включение сети может предоставить ненадежные приложения для внутренней сети.

Сопоставленные папки

Массив папок, каждая из которых представляет расположение на хост-компьютере, которое совместно используется песочницей по указанному пути. В настоящее время относительные пути не поддерживаются. Если путь не указан, папка сопоставляется с рабочим столом пользователя контейнера.

<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: указывает папку на хост-компьютере для совместного использования в песочнице. Папка должна уже существовать на узле, иначе контейнер не запускается.
  • SandboxFolder: указывает назначение в песочнице для сопоставления папки. Если папка не существует, она создается. Если папка песочницы не указана, она сопоставляется с рабочим столом контейнера.
  • ReadOnly. Если значение равно true, обеспечивает доступ только для чтения к общей папке из контейнера. Поддерживаемые значения: true/false. Значение по умолчанию — false.

Примечание.

Файлы и папки, сопоставленные с узлом, могут быть скомпрометированы приложениями в песочнице или потенциально повлиять на узел.

Команда входа

Указывает одну команду, которая будет вызвана автоматически после входа в песочницу. Приложения в песочнице выполняются под учетной записью пользователя контейнера. Учетная запись пользователя контейнера должна быть учетной записью администратора.

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

Команда. Путь к исполняемому файлу или скрипту в контейнере, который будет выполнен после входа.

Примечание.

Хотя будут работать очень простые команды (например, запуск исполняемого файла или скрипта), более сложные сценарии, включающие несколько шагов, следует поместить в файл скрипта. Этот файл скрипта можно сопоставить с контейнером через общую папку, а затем выполнить с помощью директивы LogonCommand .

Аудиовход

Включает или отключает вход звука в песочницу.

<AudioInput>value</AudioInput>

Поддерживаемые значения:

  • Включить: включает вход звука в песочнице. Если это значение задано, песочница может получать звуковые данные от пользователя. Эта возможность может потребоваться приложениям, используюющим микрофон.
  • Отключить. Отключает вход звука в песочнице. Если это значение задано, песочница не может принимать входные данные звука от пользователя. Приложения, использующие микрофон, могут неправильно работать с этим параметром.
  • По умолчанию. Это значение является значением по умолчанию для поддержки аудиовхода. В настоящее время это значение по умолчанию указывает, что аудиовход включен.

Примечание.

Могут быть последствия для безопасности, связанные с предоставлением аудиовхода узла контейнеру.

Видеовход

Включает или отключает вход видео в песочницу.

<VideoInput>value</VideoInput>

Поддерживаемые значения:

  • Включить: включает видеовход в песочнице.
  • Отключить: отключает видеовход в песочнице. Приложения, использующие видеовход, могут неправильно работать в песочнице.
  • По умолчанию: это значение по умолчанию для поддержки видеовхода. В настоящее время это значение по умолчанию означает, что видеовход отключен. Приложения, использующие видеовход, могут неправильно работать в песочнице.

Примечание.

Могут быть последствия для безопасности, связанные с предоставлением входного видео узла контейнеру.

Защищенный клиент

Если включен режим защищенного клиента, песочница добавляет новый уровень границы безопасности, запуская в среде выполнения изоляции AppContainer .

Изоляция AppContainer обеспечивает изоляцию учетных данных, устройств, файлов, сети, процессов и окон.

<ProtectedClient>value</ProtectedClient>

Поддерживаемые значения:

  • Включить: запускает песочницу Windows в режиме защищенного клиента. Если это значение задано, песочница выполняется в изоляции AppContainer.
  • Отключить. Запускает песочницу в стандартном режиме без дополнительных мер безопасности.
  • По умолчанию. Это значение является значением по умолчанию для режима защищенного клиента. В настоящее время это значение по умолчанию означает, что песочница не работает в режиме защищенного клиента.

Примечание.

Этот параметр может ограничить возможность пользователя копировать и вставлять файлы в песочницу и из нее.

Перенаправление принтера

Включает или отключает общий доступ к принтеру с узла в песочницу.

<PrinterRedirection>value</PrinterRedirection>

Поддерживаемые значения:

  • Включить: позволяет совместно использовать принтеры узла в песочнице.
  • Отключить. Отключает перенаправление принтера в песочнице. Если это значение задано, песочница не сможет просматривать принтеры с узла.
  • По умолчанию. Это значение является значением по умолчанию для поддержки перенаправления принтера. В настоящее время это значение по умолчанию означает, что перенаправление принтера отключено.

Перенаправление буфера обмена

Включает или отключает общий доступ к буферу обмена узла с песочницей.

<ClipboardRedirection>value</ClipboardRedirection>

Поддерживаемые значения:

  • Включить. Включает общий доступ к буферу обмена узла с песочницей.
  • Отключить. Отключает перенаправление буфера обмена в песочнице. Если это значение задано, копирование и вставка в песочнице и из нее ограничены.
  • По умолчанию: это значение по умолчанию для перенаправления буфера обмена. В настоящее время копирование и вставка между узлом и песочницей разрешено в разделе По умолчанию.

Память в МБ

Указывает объем памяти, который песочница может использовать в мегабайтах (МБ).

<MemoryInMB>value</MemoryInMB>

Если указанного значения памяти недостаточно для загрузки песочницы, оно автоматически увеличивается до требуемого минимального объема.

Примеры:

Пример 1

Следующий файл конфигурации можно использовать для простого тестирования скачанных файлов в песочнице. Чтобы выполнить это тестирование, сеть и vGPU отключены, а песочнице разрешен доступ только для чтения к общей папке загрузки. Для удобства при запуске команда входа открывает папку downloads внутри песочницы.

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>

Пример 2

Следующий файл конфигурации устанавливает Visual Studio Code в песочницу, что требует немного более сложной настройки LogonCommand.

Две папки сопоставляются с песочницей; первый (SandboxScripts) содержит VSCodeInstall.cmd, который устанавливает и запускает Visual Studio Code. Предполагается, что вторая папка (CodeProjects) содержит файлы проекта, которые разработчик хочет изменить с помощью Visual Studio Code.

Если скрипт установщика Visual Studio Code уже сопоставлен с песочницей, logonCommand может ссылаться на него.

VSCodeInstall.cmd

Загружает VS Code в папку downloads и запускает установку из 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>

Пример 3

В следующем файле конфигурации выполняется скрипт PowerShell в качестве команды входа для переключения основной кнопки мыши для левостороннего пользователя.

C:\sandbox папка на узле сопоставляется с C:\sandbox папкой в песочнице, поэтому SwapMouse.ps1 на скрипт можно ссылаться в файле конфигурации песочницы.

SwapMouse.ps1

Создайте скрипт PowerShell, используя следующий код, и сохраните его в каталоге C:\sandbox как 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>