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-сервера Interactive User , либо привязывается к COM-серверу на рабочем столе по умолчанию в оконной станции winsta0 сеанса в запросе на активацию, либо запускает и привязывается к серверу COM на рабочем столе по умолчанию для оконной станции winsta0 сеанса. Например, если клиент выполняет "winsta0\desktop1" сеанса 3, запрос на активацию сеанса 3 либо привязывается к COM-серверу в "winsta0\default" сеанса 3, даже если экземпляр COM-сервера уже выполняется в "winsta0\desktop1" сеанса 3.
Если флаг APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP задан в значении AppIDFlags , COM либо привязывается к серверным процессам, запущенным на рабочем столе клиента, или к сеансу в запросе на активацию. Например, если клиент выполняет "winsta0\desktop1" в сеансе 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 идентификатору безопасности logonID маркера процесса. Кроме того, владельцу дескриптора безопасности будет присвоен идентификатор идентификатора входа маркера процесса.
Если флаг APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND установлен в AppIDFlags, com-серверы, настроенные для запуска от имени этого пользователя, будут запущены с дескриптором безопасности процесса, который позволяет PROCESS_ALL_ACCESS в идентификаторе безопасности logonID маркера процесса. Кроме того, владельцу дескриптора безопасности будет присвоен идентификатор идентификатора входа маркера процесса. Кроме того, диспетчер управления службами COM (SCM) изменяет маркер процесса COM-сервера следующим образом:
- Он добавляет идентификатор безопасности APPID к маркеру. Он предоставляет идентификатору БЕЗОПАСНОСТИ APPID полный доступ к списку управления доступом на уровне маркера по умолчанию (DACL). В Windows Vista и более поздних версиях Windows он предоставляет sid READ_CONTROL ownerRights разрешение в daCL маркера по умолчанию. В версиях Windows Vista, предшествующих 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-серверов. Для таких серверов ожидается, что клиент COM будет ужесточить маркер, который он использует для активации COM.
- Если установлен флаг APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND , COM усиливает дескриптор безопасности объекта процесса в случае запуска от имени "Этот пользователь" COM-серверов. Он также усиливает маркер процесса 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.
Связанные темы
Обратная связь
Отправить и просмотреть отзыв по