Конфигурация Песочницы Windows
Песочница Windows поддерживает простые файлы конфигурации, которые предоставляют минимальный набор параметров настройки для песочницы. Эту функцию можно использовать с Windows 10 сборки 18342 или Windows 11. Файлы конфигурации песочницы Windows форматируются как XML и связываются с песочницей через .wsb
расширение файла.
Файл конфигурации позволяет пользователю управлять следующими аспектами песочницы Windows:
- vGPU (виртуализированный GPU): включение или отключение виртуализированного GPU. Если vGPU отключен, песочница использует windows Advanced Rasterization Platform (WARP).
- Сеть: включение или отключение сетевого доступа в песочнице.
- Сопоставленные папки. Предоставление общего доступа к папкам с узла с разрешениями на чтение или запись . Предоставление каталогов узлов может позволить вредоносному программному обеспечению повлиять на систему или украсть данные.
- Команда входа: команда, которая выполняется при запуске песочницы Windows.
- Аудиовход: предоставляет входные данные микрофона узла в песочницу.
- Видеовход: предоставляет доступ к входу веб-камеры узла в песочницу.
- Защищенный клиент. Помещает расширенные параметры безопасности в сеансе протокола удаленного рабочего стола (RDP) в песочницу.
- Перенаправление принтеров. Предоставляет общий доступ к принтерам из узла в песочницу.
- Перенаправление буфера обмена. Предоставляет доступ к буферу обмена узла с песочницей, чтобы текст и файлы можно было вставлять туда и обратно.
- Память в МБ. Объем памяти в мегабайтах, который назначается песочнице.
Примечание.
Размер окна песочницы в настоящее время не настраивается.
Создание файла конфигурации
Чтобы создать файл конфигурации, выполните приведенные далее действия.
Открытие редактора обычного текста или редактора исходного кода (например, Блокнот, Visual Studio Code и т. д.)
Вставьте следующие строки:
<Configuration> </Configuration>
Добавьте соответствующий текст конфигурации между двумя строками. Дополнительные сведения см. в примерах.
Сохраните файл с нужным именем, но убедитесь, что его расширение имеет значение
.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>