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


Реализация AppContainer

AppContainer реализуется путем добавления новых сведений в маркер процесса, изменения SeAccessCheck() таким образом, чтобы все устаревшие объекты списка управления доступом (ACL) блокировали запросы на доступ от процессов AppContainer по умолчанию и повторно выполняли объекты ACL, которые должны быть доступны AppContainers.

Процесс

Начните с добавления новых сведений для маркера процесса. Затем измените SeAccessCheck(), чтобы все устаревшие, неизмененные списки ACL по умолчанию блокировали запросы на доступ от процессов AppContainer. Наконец, перезаключите ресурсы ACL, которые должны быть доступны для AppContainers

Идентификатор безопасности AppContainer — это постоянный уникальный идентификатор для appcontainer. Идентификаторы безопасности возможностей предоставляют доступ к группам ресурсов группам AppContainers. AppContainerNumber — это временный DWORD , используемый для различения AppContainers. Однако его не следует использовать в качестве удостоверения для AppContainer.

Чтобы разрешить одному AppContainer доступ к ресурсу, добавьте его AppContainerSID в список ACL для этого ресурса.

Чтобы разрешить нескольким конкретным AppContainers доступ к ресурсу, добавьте все свои идентификаторы AppContainerSID в список ACL для этого ресурса.

Чтобы управлять группами разрешений, создайте идентификатор БЕЗОПАСНОСТИ возможности (GUID) и поместите его на все предоставляемые ресурсы. Затем добавьте идентификатор безопасности возможности в маркер процесса.

Чтобы разрешить всем AppContainers доступ к ресурсу, добавьте SID ALL APPLICATION PACKAGES в список управления доступом для этого ресурса. Он действует как подстановочный знак.

И AppContainerSID, и CapabilitySID поддерживают маски доступа в контроль доступа записях (ACE). Задайте соответствующий параметр.