Есть ли легкий, программируемый API Sandbox для платформы Windows?
Чтобы запустить ненадежный код дома, я использую виртуальную машину VMWare. Я хочу найти альтернативный легкий API песочницы для запуска ненадежных приложений без накладных расходов на установку VMWare или любого другого вида виртуализации конечных пользователей. ( Изменить: Я не хочу, чтобы он размещал ОС - я хочу, чтобы он запускал ненадежные приложения).
В идеале песочница будет (или может быть сделана) прозрачной, чтобы приложение, работающее в песочнице, не отображало никаких дополнительных хромов или функций. (Не делайте это в Parallels на Mac)
С моей стороны разработчик .NET.NET хочет API, поэтому вместо загрузки специального графического интерфейса я могу использовать сценарии script для него.
Похоже, как веб-браузер Google Chrome содержит свою собственную технологию для сценариев песочницы, запущенных из Интернета для защиты системы. Google не должен распространять VMWare со своим браузером, и все же они добиваются безопасности в песочнице для приложений.
Edit:
Ищете что-то легкое, как Google Chrome, с такими функциями, как очень ограниченный доступ к файлам/сети/UI, низким привилегиям и т.д. Не ищут хостинга и размещения собственной ОС.
Ответы
Ответ 1
Нет, нет.
Я имею в виду, что вы можете использовать другую учетную запись Windows (с любыми разрешениями, которые считаете нужными), но тогда вам должно быть удобно, что ненадежное приложение не сможет это вырваться. Но у вас есть та же проблема с VMWare (у нее были ошибки в прошлом, которые позволяют вам вырваться). Лучше всего сделать это на виртуальной машине.
Ответ 2
Google Chrome использует 4 окна для этого:
A restricted token
The Windows job object
The Windows desktop object
Windows Vista only: The integrity levels
Посмотрите:
https://sites.google.com/a/chromium.org/dev/developers/design-documents/sandbox
У них есть подробное описание того, что они делают.
Ответ 3
Вы также можете быть заинтересованы в Google Собственный клиент (также известный как NaCl). Это проект, целью которого является запуск (проверяемый) x86-кода внутри изолированной области.
Ответ 4
Я не реализовал это... но мои $.02.
Вы можете рассмотреть возможность внедрения станции Windows. Станция Windows в основном является границей безопасности для хранения рабочих столов и процессов
Для входа в консоль (Winsta0) разрешена только одна станция Windows.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682573 (v = vs .85).aspx
Вы можете достичь, обрабатывать, Windows Object и ACL Isolation на основе каждой станции.
Некоторые функции API, используемые в Windows Station, перечислены здесь:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms687107 (v = vs .85).aspx
Обзор сеансов, настольных компьютеров и Windows-станций.
http://blogs.technet.com/b/askperf/archive/2007/07/24/sessions-desktops-and-windows-stations.aspx
Здесь есть пример CodeProject с исходным кодом:
http://www.codeproject.com/Articles/21352/Virtual-Desktop-A-Simple-Desktop-Management-Tool
Я бы рекомендовал использовать API Monitor для отладки вызовов Win32 API
http://www.rohitab.com/apimonitor
HTH
Ответ 5
Вы можете использовать Invincea FreeSpace или бесплатно Sandboxie. Не уверен, что любой из них доступен для сценариев или нет.
Они называются приложениями сдерживания, т.е. песочницами. Вы можете прочитать об этом здесь: https://www.fas.org/irp/congress/1997_hr/h970211gm.htm
Ответ 6
В вопросе "песочницы" я указал на Sandboxie.
Я вообще не решаю свою проблему, но, может быть, вам это интересно?
Я не знаю, имеет ли он API, но быстрый google указывает, что он по меньшей мере как-то автоматизирован через командную строку.
Ответ 7
К сожалению, для хостов Windows ваши параметры крайне ограничены. Однако на узлах Linux такие опции, как mbox и capsicum, которые выполняют то, что вы описываете, т.е. легковесную песочницу на уровне приложений.