Información general sobre la seguridad de UI Automation

Nota

Esta documentación está dirigida a los desarrolladores de .NET Framework que quieran usar las clases de automatización de la interfaz de usuario administradas definidas en el espacio de nombres System.Windows.Automation. Para ver la información más reciente acerca de la automatización de la interfaz de usuario, consulte Windows Automation API: automatización de la interfaz de usuario.

En esta introducción se describe el modelo de seguridad de Microsoft Automatización de la interfaz de usuario en Windows Vista.

Control de cuentas de usuario

La seguridad es un aspecto muy importante de Windows Vista y una de las innovaciones es la posibilidad de que los usuarios ejecuten como usuarios estándar (no administrador) sin que necesariamente se les impida ejecutar aplicaciones y servicios que requieren privilegios más altos.

En Windows Vista, la mayoría de las aplicaciones se proporcionan con un token estándar o un token administrativo. Si una aplicación no se puede identificar como aplicación administrativa, se inicia como aplicación estándar de forma predeterminada. Para poder iniciar una aplicación identificada como administrativa, Windows Vista pide al usuario su consentimiento para ejecutar la aplicación con privilegios elevados. La petición de consentimiento se muestra de forma predeterminada, aunque el usuario sea miembro del grupo de administradores local, porque los administradores ejecutan como usuarios estándar hasta que una aplicación o un componente del sistema que requiere credenciales administrativas solicita permiso para ejecutarse.

Tareas que requieren privilegios de mayor nivel

Cuando un usuario intenta realizar una tarea que requiere privilegios administrativos, Windows Vista presenta un cuadro de diálogo que pide al usuario su consentimiento para continuar. Este cuadro de diálogo está protegido contra la comunicación entre procesos, por lo que el software malintencionado no puede simular una entrada de usuario. De forma similar, la pantalla de inicio de sesión de escritorio normalmente no es accesible para otros procesos.

Los clientes de Automatización de la interfaz de usuario deben comunicarse con otros procesos, algunos de los cuales podrían ejecutarse con un nivel de privilegios superior. Los clientes también podrían necesitar acceder a los cuadros de diálogo del sistema que normalmente no son visibles para otros procesos. Por lo tanto, el sistema debe confiar en los clientes de UI y se deben ejecutar con privilegios especiales.

Para que las aplicaciones sean de confianza y poder comunicarse con aplicaciones que se ejecutan con un nivel de privilegios superior, deben estar firmadas.

Archivo de manifiesto

Para obtener acceso a la UI protegida del sistema, las aplicaciones deben compilarse con un archivo de manifiesto que incluya un atributo uiAccess en la etiqueta requestedExecutionLevel, como sigue:

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="highestAvailable"
        uiAccess="true" />
    </requestedPrivileges>
  </security>
</trustInfo>

El valor del atributo level en este código es solo un ejemplo.

uiAccess es «falso» de forma predeterminada; es decir, si se omite el atributo o si no hay ningún manifiesto para el ensamblado, la aplicación no podrá acceder a la UI protegida.