Песочница в Windows
Песочница — это новый легковесный инструмент в ОС Windows, позволяющий запускать приложения в безопасном изолированном окружении.
Случалось ли Вам оказаться в ситуации, когда необходимо запустить какую-то программу, но Вы не совсем уверены в источнике её происхождения? Или другой пример — необходимость проверить что-то на «чистой» версии Windows. Во всех подобных случаях раньше был только один выход — установить ОС на отдельную физическую или виртуальную машину и провести нужный эксперимент. Но это больше не так.
Microsoft разработал новый механизм под названием Песочница (eng. Windows Sandbox). Это изолированное временное окружение, в котором Вы можете запускать подозрительное программное обеспечение без риска навредить своему ПК. Любое ПО, установленное в Песочнице, остаётся только в Песочнице и не может взаимодействовать с основной ОС. Как только Вы закрываете Песочницу — всё её содержимое безвозвратно уничтожается.
Вот основные особенности Песочницы:
- Это часть ОС Windows. Если у Вас Windows 10 Pro или Enterprise, то Вы уже можете начать ею пользоваться.
- С чистого листа. При каждом запуске Песочницы Вы получаете одно и то же, чистое, неизменное окружение. В точности такое, какой была Ваша ОС сразу после её установки.
- Никаких следов. При закрытии Песочницы уничтожаются все установленные в ней приложения, все созданные там файлы. Закрыли Песочницу — не осталось никаких следов её существования.
- Безопасность. Используется аппаратная виртуализация, которая использует гипервизор для запуска отдельного ядра ОС и изолирует его от Вашей основной ОС
- Эффективность. Используется интегрированный планировщик задач, умное управление памятью, виртуальный GPU.
Системные требования
- Windows 10 Pro или Enterprise, билд 18305 или выше
- Архитектура AMD64
- Включенная в BIOS виртуализация
- Минимум 4 ГБ (рекомендовано 8 ГБ) оперативной памяти
- Минимум 1 ГБ свободного места на диске (рекомендуется SSD)
- Процессор с двумя ядрами (рекомендуется 4 с поддержкой hyper-threading)
Быстрый старт
1. Установите Windows 10 Pro или Enterprise, билд 18305 или выше
2. Включите виртуализацию:
- Если Вы работаете на физической машине — сделайте это в BIOS
- Если Вы работаете на виртуальной машине — используйте следующую PowerShell команду:
Set-VMProcessor -VMName -ExposeVirtualizationExtensions $true
4. Запустите Песочницу из меню Пуск. Разрешите повышение прав для её процесса.
5. Скопируйте (через буфер обмена) в Песочницу бинарник, который хотите запустить.
6. Запустите бинарник в Песочнице. Если это инсталлятор — пройдите процедуру установки и запустите установленное приложение.
7. Используйте приложение по назначению.
8. Когда закончите — просто закройте Песочницу. Всё её содержимой будет удалено.
9. Опционально — можете убедиться, что в Вашей основной ОС ничего не изменилось.
Что под капотом у Песочницы
Песочница Windows построена на технологии, которая называется Windows Containers. Контейнеры разрабатывались (и давно используются) для работы в облаке. Microsoft взял уже достаточно зрелую и протестированную технологию и доработал её для пользователей десктопной Windows.
Среди ключевых адаптаций можно отметить:
Динамически генерируемый образ
Песочница является хотя и легковесной, но всё же виртуальной машиной. И, как любой виртуальной машине, ей требуется образ, с которого она может загрузится. Важнейшей особенностью Песочницы является то, что Вам не нужно откуда-то качать или создавать этот образ. Он создастся на лету, из файлов вашей текущей ОС Windows.
Мы хотим всегда получить одно и то же «чистое» окружение для Песочницы. Но есть проблема: некоторые системные файлы могут меняться. Решением было создание «динамически генерируемого образа»: для изменённых файлов в него будут включаться их оригинальные версии, но вот неизменные файлы физически в этот образ входить не будут. Вместо них будут использоваться ссылки на реальные файлы на диске. Как показала практика — такими ссылками будут большинство файлов в образе. Лишь малая их часть (около 100 МБ) войдут в образ полностью — это и будет его размер. Более того, когда Вы не используете Песочницу, эти файлы хранятся в сжатом виде и занимают около 25 МБ. При запуске Песочницы они разворачиваются в тот самый «динамический образ» размером около 100 МБ.
Умное управление памятью
Управление памятью для Песочницы — ещё одно важное усовершенствование. Гипервизор позволяет запускать на одной физической машине несколько виртуальных и это, в общем, неплохо работает на серверах. Но, в отличии от серверов, ресурсы обычных пользовательских машин значительно более ограничены. Для достижения приемлемого уровня производительности Microsoft разработал специальный режим работы памяти, при котором основная ОС и Песочница могут с некоторых случаях использовать одни и те же страницы памяти.
В самом деле: поскольку основная ОС и Песочница запускают один и тот же образ ОС, то большинство системных файлах в них будут одни и те же, а значит нет смысла дважды загружать в память одинаковые библиотеки. Можно сделать это один раз в основной ОС, а когда тот же файл понадобится в памяти Песочнице — ей можно дать ссылку на ту же страницу. Конечно, требуются некоторые дополнительные меры для обеспечения безопасности подобного подхода, но Microsoft позаботилась об этом.
Интегрированный планировщик
В случае использования обычных виртуальных машин гипервизор контролирует работу виртуальных процессоров, работающих в них. Для Песочницы была разработана новая технология, которая называется «интегрированный планировщик», которая позволяет основной ОС решать когда и сколько ресурсов выделить Песочнице. Работает это так: виртуальный процессоры Песочницы работают как потоки внутри процесса Песочницы. В итоге они имеют те же «права», что и остальные потоки в вашей основной ОС. Если, к примеру, у вас работают какие-то высокоприоритетные потоки, то Песочница не будет отнимать у них много времени для выполнения своих задач, которые имеют нормальный приоритет. Это позволит пользоваться Песочницей, не замедляя работу критически важных приложений и сохраняя достаточную отзывчивость UI основной ОС, аналогично тому, как работает Linux KVM.
Главной задачей было сделать Песочницу с одной стороны просто обычным приложением, а с другой — дать гарантию её изоляции на уровне классических виртуальных машин.
Использование «снимков»
Как уже говорилось выше, Песочница использует гипервизор. Мы по сути запускаем одну копию Windows внутри другой. А это означает, что для её загрузки понадобится какое-то время. Мы можем тратить его при каждом запуске Песочницы, либо сделать это лишь раз, сохранив после загрузки всё состояние виртуальной ОС (изменившиеся файлы, память, регистры процессора) на диске. После этого мы сможем запускать Песочницу из данного снимка, экономя при этом время её старта.
Виртуализация графики
Аппаратная виртуализация графики — это ключ к плавному и быстрому пользовательскому интерфейсу, особенно для «тяжелых» в плане графики приложений. Однако, классические виртуальные машины изначально ограничены в возможностях напрямую использовать все ресурсы GPU. И здесь важную роль выполняют средства виртуализации графики, которые позволяют преодолеть данную проблему и в какой-то форме использовать аппаратную акселерацию в виртуальном окружении. Примером такой технологии может быть, например, Microsoft RemoteFX.
Кроме того, Microsoft активно работала с производителями графических систем и драйверов для того, чтобы интегрировать возможности виртуализации графики непосредственно в DirectX и WDDM (модель драйверов в ОС Windows).
В результате графика в Песочнице работает следующим образом:
- Приложение в Песочнице использует графические функции обычным образом, не зная кто и как будет их выполнять
- Графическая подсистема Песочницы, получив команды отрисовки графики, передаёт их основной ОС
- Основная ОС, получив команды отрисовки графики, воспринимает их так, как будто они пришли от локально запущенного приложения и соответствующим образом выполняет их, выделяя и управляя необходимыми ресурсами.
Это позволяет виртуальному окружению получать полноценный доступ к аппаратно акселерируемой графике, что даёт как прирост производительности, так и экономию некоторых ресурсов (например, заряда батареи для ноутбуков) в следствие того, что для отрисовки графики больше не используются тяжелые расчёты на CPU.
Использование батареи
Песочница имеет доступ к информации о заряде батареи и может оптимизировать свою работу для его экономии.
Отзывы и сообщения о проблемах
В любой новой технологии могут быть баги. Microsoft просит присылать сообщения о них и предложения новых фич через Feedback Hub.
Песочница Windows
Песочница Windows предоставляет компактную среду рабочих столов для безопасного запуска приложений в изоляции. Программное обеспечение, установленное внутри среды Песочницы Windows, изолировано от всей остальной системы и работает независимо от главного компьютера.
Песочница является временной. При ее закрытии все находящееся в ней программное обеспечение, все файлы и данные о состоянии удаляются. При каждом открытии приложения вы получаете новый экземпляр песочницы. Однако обратите внимание, что с Windows 11 версии 22H2 данные будут сохраняться через перезапуск, инициированный из виртуализированной среды, что полезно для установки приложений, которым требуется перезагрузка ОС.
Программное обеспечение и приложения, установленные на главном компьютере, не являются непосредственно доступными в песочнице. Если в среде Песочницы Windows вам нужны какие-либо определенные приложения, их необходимо явным образом установить в этой среде.
Песочница Windows обладает следующими свойствами:
- Это часть Windows: все, что требуется для этой функции, входит в состав операционных систем Windows 10 Pro и Windows 10 Корпоративная. Нет необходимости скачивать VHD.
- Чистая система: при каждом запуске Песочницы Windows создается новый экземпляр чистой системы Windows.
- Одноразовость: на устройстве не сохраняются никакие данные. Когда пользователь закрывает это приложение, все данные удаляются.
- Безопасность: для изоляции ядра используется аппаратная виртуализация. Гипервизор Майкрософт выполняет отдельное ядро, отделяющее Песочницу Windows от главного компьютера.
- Эффективность: используется интегрированный планировщик ядра, интеллектуальное управление памятью и виртуальный ГП.
Песочница Windows по умолчанию включает подключение к сети. Его можно отключить с помощью файла конфигурации Песочницы Windows.
Требования к выпуску Windows и лицензированию
В следующей таблице перечислены выпуски Windows, поддерживающие Песочница Windows:
Windows Pro | Windows Корпоративная | Windows Pro для образовательных учреждений/SE | Windows для образовательных учреждений |
---|---|---|---|
Да | Да | Да | Да |
Песочница Windows лицензии предоставляются следующими лицензиями:
Windows Pro/Pro для образовательных учреждений/SE | Windows Корпоративная E3 | Windows Корпоративная E5 | Windows для образовательных учреждений A3 | Windows для образовательных учреждений A5 |
---|---|---|---|---|
Да | Да | Да | Да | Да |
Дополнительные сведения о лицензировании Windows см. в статье Общие сведения о лицензировании Windows.
Предварительные условия
- ARM64 (для Windows 11 версии 22H2 и более поздних версий) или архитектура AMD64
- Возможности виртуализации должны быть включены в BIOS
- Не менее 4 ГБ оперативной памяти (рекомендуется 8 ГБ)
- Не менее 1 ГБ свободного места на диске (рекомендуется твердотельный накопитель)
- По крайней мере два ядра ЦП (четыре ядра с гиперпотоками рекомендуется)
Песочница Windows в настоящее время не поддерживается в выпуске Windows Home
Установка
- Убедитесь, что на компьютере установлена операционная система Windows 10 Pro или Корпоративная с версией сборки 18305 или Windows 11.
- Включите виртуализацию на компьютере.
- Если вы используете физический компьютер, убедитесь, что возможности виртуализации включены в BIOS.
- Если вы используете виртуальную машину, запустите следующую команду PowerShell, чтобы включить вложенную виртуализацию:
Set-VMProcessor -VMName -ExposeVirtualizationExtensions $true
Примечание. Чтобы включить песочницу с помощью PowerShell, откройте PowerShell от имени администратора и выполните следующую команду:
Enable-WindowsOptionalFeature -FeatureName "Containers-DisposableClientVM" -All -Online
Примечание. Песочница Windows не соответствует параметрам мыши в хост-системе, поэтому если в системе узла настроена левая мышь, эти параметры необходимо применить в Песочница Windows вручную при запуске Песочница Windows. Кроме того, можно использовать файл конфигурации песочницы, чтобы выполнить команду входа для переключения параметра мыши. Пример см. в разделе Пример 3.
Использование
- Скопируйте исполняемый файл (и все остальные файлы, необходимые для запуска приложения) с главного компьютера и вставьте их в окно Песочницы Windows.
- Запустите исполняемый файл или установщик в песочнице.
- По завершении экспериментов закройте песочницу. В диалоговом окне будет указано, что все содержимое песочницы будет безвозвратно удалено. Нажмите кнопку ОК.
- Убедитесь, что на главном компьютере нет никаких изменений, сделанных вами в Песочнице Windows.
Как включить Windows Sandbox. Встроенная песочница Windows 10
Песочница Windows (Windows Sandbox) позволяет пользователям редакций Windows 10 Pro и Windows 10 Enterprise запускать подозрительные приложения в изолированном виртуальном пространстве, чтобы они не могли внести изменения в основную хост-систему. После закрытия сеанса песочницы, все файлы и приложения будут удалены навсегда.
Примечние. В накопительном обновлении KB4512941 (Build 18362.329) для Windows 10, версия 1903 исправлена ошибка «ERROR_FILE_NOT_FOUND (0x80070002)» при запуске Песочницы Windows 10.
Системные требования для Windows Sandbox
Для работы Песочницы Windows необходимо выполнение следующих требований:
- Windows 10 Pro или Enterprise – Windows 10 (версия 1903), KB4512941 (Build 18362.329) или выше.
- Архитектура x86-64 (также AMD64/Intel64/EM64T).
- Включение виртуализации в BIOS.
- Минимум 4 ГБ ОЗУ (рекомендуется 8 ГБ ОЗУ).
- Минимум 1 ГБ свободного дискового пространства (рекомендуется SSD).
- Минимум двухядерный процессор (рекомендуется четырехядерный процессор с поддержкой технологии Hyperthreading).
В статье, опубликованной в официальном блоге Microsoft, сообщается, что новая функция использует технологии на основе контейнеров Windows. Инженеры интегрировали Windows 10 в данные контейнеры и применили новую технологию “Integrated Scheduler”, которая позволяет хост-системе решать, когда нужно запустить изолированную среду.
Основная идея Windows Sandbox заключается в том, чтобы добавить возможность запуска приложений в изолированной среде, обеспечивая при этом все необходимые функции безопасности, требуемые от виртуальной машины.
Как включить и использовать песочницу Windows Sandbox в Windows 10
Необходимые условия
- Установите Windows 10 Pro или Enterprise, KB4512941 (Build 18362.329) или выше.
- Включите виртуализацию:
- Если вы используете физический компьютер, убедитесь, что в BIOS включена функция виртуализации.
- Если вы используете виртуальную машину, включите встроенную виртуализацию с помощью этого командлета PowerShell:
- Set-VMProcessor -VMName -ExposeVirtualizationExtensions $true
Как включить / выключить Песочницу Windows
- В меню Компоненты Windows
- С помощью PowerShell
- С помощью Командной строки
Как включить / выключить Песочницу Windows в меню Компоненты Windows
- Откройте меню Компоненты Windows (Панель управления > Программы > Программы и компоненты > Включение и отключение компонентов Windows) и выберите Песочница Windows. Нажмите OK, чтобы установить песочницу. Может понадобиться перезагрузка компьютера.
Как включить / выключить Песочницу Windows с помощью PowerShell
- Запустите PowerShell от имени администратора (введите powershell в поиске меню Пуск и выберите «Запуск от имени администратора»).
- Выполните следующую команду, чтобы включить Песочницу Windows:
Enable-WindowsOptionalFeature –FeatureName "Containers-DisposableClientVM" -All -Online
- Выполните следующую команду, чтобы отключить Песочницу Windows:
Disable-WindowsOptionalFeature –FeatureName "Containers-DisposableClientVM" -Online
Как включить / выключить Песочницу Windows с помощью Командной строки
- Запустите Командную строку от имени администратора (введите cmd в поиске меню Пуск и выберите «Запуск от имени администратора»)
- Выполните следующую команду, чтобы включить Песочницу Windows:
Dism /online /Enable-Feature /FeatureName:"Containers-DisposableClientVM" -All
- Выполните следующую команду, чтобы отключить Песочницу Windows:
Dism /online /Disable-Feature /FeatureName:"Containers-DisposableClientVM"
Запуск и использование Песочницы Windows
- Используя меню «Пуск», найдите Windows Sandbox, запустите ее и разрешите повышение привилегий.
- Скопируйте исполняемый файл с основной хост-системы.
- Вставьте исполняемый файл в окно песочницы Windows Sandbox (на рабочем столе Windows).
- Запустите исполняемый файл в песочнице Windows Sandbox; если это установщик, продолжайте и установите его.
- Запустите приложение и используйте его как обычно.
- Когда вы закончите экспериментировать, вы можете просто закрыть приложение Windows Sandbox. Все содержимое песочницы будет окончательно удалено.
- Убедитесь, что на хост-системе нет изменений, внесенных вами в песочницу Windows Sandbox.
- Вы также можете использовать файлы конфигурации (WSB) или утилиту Windows Sandbox Editor для запуска песочницы с заданными параметрами: использование vGPU, поддержка сети, общие папки, скрипты и программы автозагрузки.
При подготовке материала использовались источники:
https://habr.com/ru/companies/infopulse/articles/433706/
https://learn.microsoft.com/ru-ru/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview
https://www.comss.ru/page.php?id=5658