Directiva de restricción de software
La configuración de la directiva de restricción de software (SRP) se introdujo con el lanzamiento de Windows XP para ayudar a proteger los sistemas de código desconocido y posiblemente peligroso. El SRP proporciona un mecanismo en el que solo se concede acceso sin restricciones al código de confianza a los privilegios de un usuario. El código desconocido, que puede contener virus o código que entra en conflicto con los programas instalados actualmente, solo se puede ejecutar en un entorno restringido (a menudo denominado espacio aislado) donde no se permite el acceso a los privilegios de usuario confidenciales de seguridad. El uso correcto del SRP puede hacer que su negocio sea más ágil, ya que proporciona un marco proactivo para evitar problemas, en lugar de un marco reactivo que se basa en la costosa alternativa de restaurar un sistema después de que se haya producido un problema.
El SRP depende de la asignación de niveles de confianza al código que se puede ejecutar en un sistema. Actualmente, existen dos niveles de confianza: Sin restricciones y No permitidos. El código que tiene un nivel de confianza sin restricciones tiene acceso sin restricciones a los privilegios del usuario, por lo que este nivel de confianza solo se debe aplicar al código de plena confianza. No se permite que el código con un nivel de confianza no permitido acceda a los privilegios de usuario confidenciales de seguridad y solo se pueda ejecutar en un espacio aislado para que el código sin restricciones no pueda cargar el código No permitido en su espacio de direcciones.
La configuración de SRP de aplicaciones COM individuales se realiza a través del valor SRPTrustLevel de la clave AppID de la aplicación en el registro. Si no se especifica el nivel de confianza de SRP para una aplicación COM, se usa el valor predeterminado de No permitido. Una aplicación COM que tiene un nivel de confianza sin restricciones tiene acceso sin restricciones a los privilegios del usuario, pero solo puede cargar componentes con un nivel de confianza sin restricciones, mientras que una aplicación COM no permitida puede cargar componentes con cualquier nivel de confianza, pero no puede acceder a ningún privilegio de usuario confidencial de seguridad.
Además de los niveles de confianza de SRP de aplicaciones COM individuales, otras dos propiedades de SRP determinan cómo se usa el SRP para todas las aplicaciones COM. Si SRPRunningObjectChecks está habilitado, se comprobarán los intentos de conectarse a los objetos en ejecución en busca de los niveles de confianza de SRP adecuados. El objeto en ejecución no puede tener un nivel de confianza de SRP menos estricto que el objeto de cliente. Por ejemplo, el objeto en ejecución no puede tener un nivel de confianza no permitido si el objeto de cliente tiene un nivel de confianza sin restricciones.
La segunda propiedad determina cómo controla SRP las conexiones activate-as-activator. Si SRPActivateAsActivatorChecks está habilitado, el nivel de confianza de SRP configurado para el objeto de servidor se compara con el nivel de confianza SRP del objeto de cliente y se usará el nivel de confianza más estricto para ejecutar el objeto de servidor. Si SRPActivateAsActivatorChecks no está habilitado, el objeto de servidor se ejecuta con el nivel de confianza SRP del objeto de cliente, independientemente del nivel de confianza de SRP con el que se configuró. De forma predeterminada, SRPRunningObjectChecks y SRPActivateAsActivatorChecks están habilitados .