AppIDFlags

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

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

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

Remarks

Это значение 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-сервера Interactive User , привязывается или запускается и привязывается, COM-сервер на рабочем столе "по умолчанию" станции окна winsta0 сеанса в запросе активации. Например, если клиент выполняет "winsta0\desktop1" сеанса 3, запрос на активацию сеанса 3 будет либо привязан, либо запускается и привязывается, COM-сервер в winsta0\default сеанса 3, даже если экземпляр COM-сервера уже запущен в сеансе 3 "winsta0\desktop1".

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

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

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

описание APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND

Если флаг APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND задан в AppIDFlags, COM-серверы, настроенные для запуска от имени "Активатор", будут запущены с помощью дескриптора безопасности процесса, который позволяет PROCESS_ALL_ACCESS идентификатору БЕЗОПАСНОСТИ входа маркера процесса. Кроме того, владельцу дескриптора безопасности будет присвоен идентификатор sid LogonID маркера процесса.

Если флаг APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND задан в AppIDFlags, COM-серверы, настроенные для запуска "Этот пользователь", будут запущены с помощью дескриптора безопасности процесса, который позволяет PROCESS_ALL_ACCESS в идентификаторе безопасности входа маркера процесса. Кроме того, владельцу дескриптора безопасности будет присвоен идентификатор sid LogonID маркера процесса. Кроме того, диспетчер управления службами COM (SCM) изменяет токен процесса COM-сервера следующим образом:

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

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

  • Флаг APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND должен быть задан COM-серверами, запускаемыми в одном из встроенных контекстов безопасности службы; Учетные записи NetworkService или 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.

Настольные системы

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

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

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

Станции окон