AppIDFlags
Conjunto de marcas que controlan el comportamiento de activación de un servidor COM.
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
{AppID_GUID}
AppIDFlags = flags
Se trata de un valor de REG_DWORD .
Valor de marca | Constante |
---|---|
0x1 | APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP |
0x2 | APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND |
0x4 | APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY |
Si la marca de APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP está desactivada en AppIDFlags o si AppIDFlags no está presente, el cliente de una sesión de terminal server que realiza una solicitud de activación para un servidor COM de usuario interactivo , se enlazará o iniciará y enlazará, el servidor COM en el escritorio "predeterminado" de la estación de ventana "winsta0" de la sesión en la solicitud de activación. Por ejemplo, si el cliente ejecuta "winsta0\desktop1" de la sesión 3, la solicitud de activación de la sesión 3 se enlazará o se enlazará al servidor COM en "winsta0\default" de la sesión 3, incluso si una instancia del servidor COM ya se está ejecutando en "winsta0\desktop1" de la sesión 3.
Si la marca de APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP se establece en el valor AppIDFlags , COM se enlazará o iniciará y enlazará, el proceso de servidor que se ejecuta en el escritorio del cliente y la sesión en la solicitud de activación. Por ejemplo, si el cliente ejecuta "winsta0\desktop1" en la sesión 3, la solicitud de activación de la sesión 3 se enlazará o se enlazará al servidor COM en "winsta0\desktop1" en la sesión 3, incluso si una instancia del servidor COM ya se está ejecutando en "winsta0\default" en la sesión 3.
El cliente puede usar el moniker de sesión para especificar una sesión diferente de la sesión del cliente cuando realiza la solicitud de activación.
La marca APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP solo se aplica a los servidores COM que están configurados para RunAs "Interactive User".
Si la marca de APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND se establece en AppIDFlags, los servidores COM configurados para RunAs "Activator" se iniciarán con un descriptor de seguridad de proceso que permita PROCESS_ALL_ACCESS al SID logonID del token de proceso. Además, el propietario del descriptor de seguridad se establecerá en el SID logonID del token de proceso.
Si la marca de APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND está establecida en AppIDFlags, los servidores COM configurados para RunAs "This User" se iniciarán con un descriptor de seguridad de proceso que permita PROCESS_ALL_ACCESS en el SID logonID del token de proceso. Además, el propietario del descriptor de seguridad se establecerá en el SID logonID del token de proceso. Además, com Service Control Manager (SCM) modifica el token del proceso del servidor COM de la siguiente manera:
- Agrega un SID de APPID al token. Concede acceso total al SID de APPID en la lista de control de acceso discrecional (DACL) predeterminada del token. En Windows Vista y versiones posteriores de Windows, concede al SID OwnerRights READ_CONTROL permiso en la DACL predeterminada del token. En versiones anteriores de Windows Vista de Windows, establece el propietario del token en el SID de APPID.
Se deben tener en cuenta las siguientes consideraciones de seguridad al usar la marca APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND :
- La marca APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND está pensada para establecerse mediante servidores COM que se inician en uno de los contextos de seguridad de servicio integrados; Las cuentas NetworkService o LocalService. Si los servidores suplantan a los clientes con privilegios y si no se establece la marca de APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND , el código malintencionado que se ejecuta en otros procesos con el mismo contexto de seguridad puede elevar los privilegios secuestrando los tokens de suplantación de los clientes con privilegios del proceso del servidor COM.
- Cuando se establece la marca de APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND , COM protege el descriptor de seguridad del objeto de proceso en el caso de los servidores COM RunAs "Activator". Para estos servidores, se espera que el cliente COM proteja el token que usa para la activación COM.
- Cuando se establece la marca APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND , COM protege el descriptor de seguridad del objeto de proceso en el caso de los servidores COM "Este usuario". También protege el token de proceso del servidor COM, ya que com SCM es la entidad que crea el token.
La marca de APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND se admite en Windows XP, Windows Server 2003, Windows Vista y Windows Server 2008 solo cuando se aplica la revisión MSRC8322 (boletín de seguridad MS09-012). Se admite de forma nativa en Windows 7 y versiones posteriores de Windows.
La marca APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND solo se aplica a los servidores COM configurados para RunAs "Activator" o "This User". No se aplica a los servidores COM que son servicios NT.
Si la marca de APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY está establecida en AppIDFlags, el SCM COM emitirá solicitudes de activación de objetos al proceso del servidor COM mediante un nivel de suplantación de RPC_C_IMP_LEVEL_IDENTIFY.
Si no se establece la marca de APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY , el SCM COM emitirá solicitudes de activación de objetos a los procesos del servidor COM mediante un nivel de suplantación de RPC_C_IMP_LEVEL_IMPERSONATE.
Se deben tener en cuenta las siguientes consideraciones de seguridad al usar la marca APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY :
- La marca APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY está pensada para ser utilizada por servidores COM que no realizan trabajo en nombre de los clientes en solicitudes de activación de objetos. Para estos servidores, tener las solicitudes de activación de objetos de emisión de SCM COM en RPC_C_IMP_LEVEL_IDENTIFY minimiza las posibilidades de tokens con privilegios con SE_IMPERSONATE_NAME nivel que aparece en el proceso.
La marca APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY se admite en Windows 7 y versiones posteriores de Windows.