AppIDFlags
Um conjunto de sinalizadores que controlam o comportamento de ativação de um servidor COM.
Entrada de registo
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
{AppID_GUID}
AppIDFlags = flags
Comentários
Este é um valor REG_DWORD.
Valor da bandeira | Constante |
---|---|
0x1 | APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP |
0x2 | APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND |
0x4 | APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY |
APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP Descrição
Se o sinalizador de APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP for limpo no AppIDFlags ou se AppIDFlags não estiver presente, o cliente em uma sessão do servidor de terminal que fizer uma solicitação de ativação para um servidor Interactive User COM, será vinculado ou iniciará e vinculará ao servidor COM na área de trabalho "padrão" da estação de janela "winsta0" da sessão na solicitação de ativação. Por exemplo, se o cliente estiver executando "winsta0\desktop1" da sessão 3, a solicitação de ativação para a sessão 3 será vinculada ou iniciará e vinculará ao servidor COM em "winsta0\default" da sessão 3, mesmo que uma instância do servidor COM já esteja em execução em "winsta0\desktop1" da sessão 3.
Se o sinalizador APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP estiver definido no valor AppIDFlags, o COM se ligará ou iniciará e vinculará ao processo do servidor em execução na área de trabalho do cliente e à sessão na solicitação de ativação. Por exemplo, se o cliente estiver executando "winsta0\desktop1" na sessão 3, a solicitação de ativação para a sessão 3 será vinculada ou iniciará e vinculará ao servidor COM em "winsta0\desktop1" na sessão 3, mesmo que uma instância do servidor COM já esteja em execução em "winsta0\default" na sessão 3.
O cliente pode usar o moniker de sessão para especificar uma sessão diferente da sessão do cliente quando faz a solicitação de ativação.
O sinalizador APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP aplica-se apenas a servidores COM configurados para RunAs "Interactive User".
APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND Descrição
Se o sinalizador APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND estiver definido em AppIDFlags, os servidores COM configurados para RunAs "Activator" serão iniciados com um descritor de segurança de processo que permite PROCESS_ALL_ACCESS ao SID LogonID do token de processo. Além disso, o proprietário do descritor de segurança será definido como o SID LogonID do token de processo.
Se o sinalizador APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND estiver definido em AppIDFlags , os servidores COM configurados para RunAs "This User" serão iniciados com um descritor de segurança de processo que permite PROCESS_ALL_ACCESS no SID LogonID do token de processo. Além disso, o proprietário do descritor de segurança será definido como o SID LogonID do token de processo. Além disso, o COM Service Control Manager (SCM) modifica o token do processo do servidor COM da seguinte maneira:
- Ele adiciona um SID APPID ao token. Ele concede ao SID APPID acesso total na lista de controle de acesso discricionário (DACL) padrão do token. No Windows Vista e versões posteriores do Windows, ele concede a permissão OwnerRights SID READ_CONTROL na DACL padrão do token. Em versões anteriores ao Windows Vista, ele define o proprietário do token como o SID APPID.
As seguintes considerações de segurança devem ser levadas em conta ao usar o sinalizador APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND:
- O sinalizador APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND destina-se a ser definido por servidores COM que são iniciados em um dos contextos de segurança de serviço internos; as contas NetworkService ou LocalService. Se os servidores representarem clientes privilegiados e se o sinalizador de APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND não estiver definido, o código mal-intencionado em execução em outros processos com o mesmo contexto de segurança poderá elevar o privilégio sequestrando os tokens de representação dos clientes privilegiados do processo do servidor COM.
- Quando o sinalizador APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND é definido, COM endurece o descritor de segurança do objeto de processo no caso de servidores COM RunAs "Activator". Para esses servidores, espera-se que o cliente COM proteja o token que ele usa para a ativação COM.
- Quando o sinalizador APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND é definido, COM protege o descritor de segurança do objeto de processo no caso de servidores COM RunAs "This User". Ele também protege o token de processo do servidor COM, uma vez que o SCM COM é a entidade que cria o token.
O sinalizador APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND é suportado no Windows XP, Windows Server 2003, Windows Vista e Windows Server 2008 apenas quando o patch de MSRC8322 (boletim de segurança MS09-012) é aplicado. É suportado nativamente no Windows 7 e versões posteriores do Windows.
O sinalizador APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND aplica-se apenas a servidores COM configurados para RunAs "Activator" ou "This User". Ele não se aplica a servidores COM que são serviços NT.
APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY Descrição
Se o sinalizador APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY estiver definido em AppIDFlags, o SCM COM emitirá solicitações de ativação de objeto para o processo do servidor COM usando um nível de representação de RPC_C_IMP_LEVEL_IDENTIFY.
Se o sinalizador APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY não estiver definido, o SCM COM emitirá solicitações de ativação de objeto para os processos do servidor COM usando um nível de representação de RPC_C_IMP_LEVEL_IMPERSONATE.
As seguintes considerações de segurança devem ser levadas em conta ao usar o sinalizador APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY:
- O sinalizador APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY destina-se a ser usado por servidores COM que não executam trabalho em nome de clientes em solicitações de ativação de objeto. Para esses servidores, ter as solicitações de ativação de objeto de emissão COM SCM em RPC_C_IMP_LEVEL_IDENTIFY minimiza as chances de tokens privilegiados com SE_IMPERSONATE_NAME nível aparecendo no processo.
O sinalizador APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY é suportado no Windows 7 e versões posteriores do Windows.
Tópicos relacionados