AppIDFlags

Набор флагов, управляющих поведением активации COM-сервера.

Параметр реестра

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
   {AppID_GUID}
      AppIDFlags = flags

Замечания

Это REG_DWORD значение.

Значение флага Константа
0x1 APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP
0x2 APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND
0x4 APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY

 

описание APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP

Если флаг APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP очищается в AppIDFlags или если appIDFlags отсутствует, клиент в сеансе сервера терминала, выполняющий запрос на активацию для сервера интерактивного com-сервера пользователя, привязывается к серверу COM или запускается и привязывается к серверу COM на рабочем столе "по умолчанию" станции окна "winsta0" сеанса в запросе активации. Например, если клиент выполняет "winsta0\desktop1" сеанса 3, запрос на активацию сеанса 3 привязывается к сеансу 3 или запускается и привязывается, COM-сервер в сеансе 3 по умолчанию, даже если экземпляр COM-сервера уже запущен в сеансе 3 "winsta0\desktop1".

Если флаг APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP задан в значении AppIDFlags, COM привязывается или запускается и привязывается, серверный процесс, выполняемый на рабочем столе клиента, и сеанс в запросе активации. Например, если клиент работает "winsta0\desktop1" в сеансе 3, запрос активации сеанса 3 привязывается к сеансу 3 или запускается и привязывается, COM-сервер в winsta0\desktop1 в сеансе 3, даже если экземпляр COM-сервера уже запущен в сеансе 3 winsta0\default.

Клиент может использовать моникер сеанса, чтобы указать сеанс, отличный от сеанса клиента при выполнении запроса активации.

Флаг APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP применяется только к COM-серверам, настроенным для запуска "Интерактивный пользователь".

описание APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND

Если флаг APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND задан в AppIDFlags, com-серверы, настроенные для запуска "Активатор", будут запущены с дескриптором безопасности процесса, который позволяет PROCESS_ALL_ACCESS идентификатору безопасности входа маркера процесса. Кроме того, владельцу дескриптора безопасности будет присвоен идентификатор ИДЕНТИФИКАТОРа входа маркера процесса.

Если флаг APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND задан в AppIDFlags, серверы COM, настроенные для запуска "Этот пользователь", будут запущены с дескриптором безопасности процесса, который позволяет PROCESS_ALL_ACCESS в идентификаторе БЕЗОПАСНОСТИ входа маркера процесса. Кроме того, владельцу дескриптора безопасности будет присвоен идентификатор ИДЕНТИФИКАТОРа входа маркера процесса. Кроме того, com Service Control Manager (SCM) изменяет маркер процесса COM-сервера следующим образом:

  • Он добавляет идентификатор БЕЗОПАСНОСТИ APPID в токен. Он предоставляет идентификатору БЕЗОПАСНОСТИ APPID полный доступ в списке управления доступом по умолчанию по умолчанию (DACL). В Windows Vista и более поздних версиях Windows он предоставляет идентификатор безопасности OwnerRights READ_CONTROL разрешения в daCL по умолчанию маркера. В версиях Windows Vista он задает владельца токена идентификатору БЕЗОПАСНОСТИ APPID.

При использовании флага APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND необходимо учитывать следующие аспекты безопасности:

  • Флаг APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND предназначен для задания COM-серверов, запускаемых в рамках одного из встроенных контекстов безопасности службы; сетевых служб или учетных записей LocalService. Если серверы олицетворяют привилегированные клиенты и если флаг APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND не задан, вредоносный код, выполняемый в других процессах с тем же контекстом безопасности, может повысить привилегии, перехватив маркеры олицетворения привилегированных клиентов из процесса COM-сервера.
  • При установке флага APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND COM ужесточает дескриптор безопасности объекта процесса в случае с COM-серверами RunAs "Активатор". Для таких серверов клиент COM, как ожидается, ужесточит маркер, который он использует для активации COM.
  • При установке флага APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND COM затвердяет дескриптор безопасности объекта процесса в случае серверов COM RunAs "This User". Он также ужесточает маркер процесса COM-сервера, так как COM SCM является сущностью, создающей маркер.

Флаг APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND поддерживается в Windows XP, Windows Server 2003, Windows Vista и Windows Server 2008, только если применяется исправление MSRC8322 (бюллетень по безопасности MS09-012). Она изначально поддерживается в Windows 7 и более поздних версиях Windows.

Флаг APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND применяется только к COM-серверам, настроенным для запуска "Активатор" или "Этот пользователь". Он не применяется к COM-серверам, которые являются службами NT.

Описание APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY

Если флаг APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY задан в AppIDFlags, com SCM выдает запросы на активацию объектов процессу COM-сервера с использованием уровня олицетворения RPC_C_IMP_LEVEL_IDENTIFY.

Если флаг APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY не задан, com SCM выдает запросы на активацию объектов процессам COM-сервера с использованием уровня олицетворения RPC_C_IMP_LEVEL_IMPERSONATE.

При использовании флага APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY необходимо учитывать следующие аспекты безопасности:

  • Флаг APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY предназначен для использования COM-серверами, которые не выполняют работу от имени клиентов в запросах активации объектов. Для таких серверов запросы на активацию объектов COM SCM на RPC_C_IMP_LEVEL_IDENTIFY минимизирует вероятность привилегированных маркеров с SE_IMPERSONATE_NAME уровня, отображаемого в процессе.

Флаг APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY поддерживается в Windows 7 и более поздних версиях Windows.

Настольных компьютеров

Уровни олицетворения

Интерактивный пользователь

Моникеры сеансов

Станции окон