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


Ограниченные маркеры

Маркер ограниченного доступа — это основной или олицетворение маркера доступа, который был изменен функцией CreateRestrictedToken. Процесс или олицетворение потока, выполняющегося в контексте безопасности ограниченного маркера, ограничен в его способности обращаться к защищаемым объектам или выполнять привилегированные операции. Функция CreateRestrictedToken может ограничить маркер следующими способами:

  • Удалите привилегий из маркера.
  • Примените атрибут только для запрета к идентификаторам безопасности в маркере, чтобы они не использовались для доступа к защищенным объектам. Дополнительные сведения об атрибуте только запрета см. в атрибутах безопасности вмаркера доступа.
  • Укажите список ограничений ИДЕНТИФИКАТОРов, которые могут ограничить доступ к защищаемым объектам.

Система использует список ограничений идентификаторов безопасности при проверке доступа маркера к защищаемому объекту. Когда ограниченный процесс или поток пытается получить доступ к защищаемому объекту, система выполняет две проверки доступа: один с включенными идентификаторами SID маркера, а другой — с помощью списка ограничений ИДЕНТИФИКАТОРов. Доступ предоставляется только в том случае, если оба проверки доступа разрешают запрошенные права доступа. Дополнительные сведения о проверках доступа см. в статье Способ управления доступом к объектуDACLs.

Вы можете использовать ограниченный первичный маркер в вызове функции CreateProcessAsUser. Как правило, процесс, вызывающий CreateProcessAsUser, должен иметь права SE_ASSIGNPRIMARYTOKEN_NAME, которые обычно хранятся только системным кодом или службами, работающими в учетной записи LocalSystem. Однако если вызов CreateProcessAsUser указывает ограниченную версию основного маркера вызывающего объекта, эта привилегия не требуется. Это позволяет обычным приложениям создавать ограниченные процессы.

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

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

Заметка

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