Share via


Considérations relatives à la sécurité pour les technologies d’assistance

Les technologies d’assistance sont des applications qui s’exécutent sur le bureau Windows et qui aident les utilisateurs d’accessibilité à interagir avec le système d’exploitation et d’autres applications s’exécutant sur l’ordinateur, y compris les applications de la nouvelle interface utilisateur Windows. Les applications de technologie d’assistance fonctionnent en récupérant des informations à partir du système d’exploitation et d’autres applications, puis en présentant les informations d’une manière accessible à l’utilisateur. Une application de technologie d’assistance peut également « piloter » par programmation le système d’exploitation et d’autres applications en fonction de l’entrée de l’utilisateur.

La nature des applications de technologie d’assistance exige qu’elles dépassent les limites des processus et qu’elles aient accès à des processus qui s’exécutent à un niveau d’intégrité (IL) plus élevé qu’eux-mêmes. (Une application de technologie d’assistance s’exécute à l’il moyen.) Par exemple, lorsque l’utilisateur tente d’effectuer une tâche qui nécessite des privilèges d’administrateur, Windows présente une boîte de dialogue demandant à l’utilisateur de donner son consentement pour continuer. Cette boîte de dialogue s’exécute à un NIVEAU supérieur pour la protéger contre la communication inter-processus, de sorte que les logiciels malveillants ne peuvent pas simuler l’entrée utilisateur. De même, l’écran d’ouverture de session du bureau s’exécute à une IL plus élevée pour empêcher l’accès à celui-ci par d’autres processus.

Les applications de technologie d’assistance ont généralement besoin d’accéder aux éléments d’interface utilisateur système protégés ou à d’autres processus qui peuvent s’exécuter à un niveau de privilège supérieur. Par conséquent, les applications de technologie d’assistance doivent être approuvées par le système et doivent s’exécuter avec des privilèges spéciaux.

Pour accéder à des processus d’AUTHENTIFICATION plus élevés, une application de technologie d’assistance doit définir l’indicateur UIAccess dans le manifeste de l’application et être lancée par un utilisateur disposant de privilèges d’administrateur.

Notes

Les privilèges d’accès sont limités comme suit :

  • Une application qui n’a pas UIAccess dans le manifeste commence par l’interface utilisateur intermédiaire et ne peut pas accéder à l’interface utilisateur du processus avec élévation de privilèges (« moyen+ » IL).
  • Une application qui a UIAccess dans le manifeste et qui est lancée par un utilisateur qui n’est pas dans le groupe Administrateurs, commence par « moyen+ » IL et ne peut pas accéder à l’interface utilisateur avec élévation de privilèges (rien ne s’exécutant en tant qu’IL « élevé », comme les applications lancées par le biais d’un clic droit -> Exécuter en tant qu’administrateur).
  • Une application a l’accès à l’interface utilisateur et est lancée par un utilisateur administrateur commence par « high » IL et peut accéder à l’interface utilisateur avec élévation de privilèges, car elle a la même IL.

UIAccess n’est pas suffisant pour qu’un processus se déplace vers le haut à travers la limite il.

En plus d’avoir accès à des processus IL plus élevés, une application de technologie d’assistance avec ces privilèges peut s’exécuter en tant qu’application la plus haute dans l’ordre z à tout moment, ce qui signifie qu’une application de technologie d’assistance peut être visible et disponible chaque fois que l’utilisateur en a besoin.

Important

Aucun des scénarios précédemment répertoriés ne fournit l’accès à l’interface utilisateur s’exécutant sous l’IL système. Cela n’est possible que si le processus est lancé dans le bureau du contrôle de compte d’utilisateur (UAC) sous SYSTEM (et il système). Dans ce cas, la définition d’UIAccess n’a aucun effet.

Exigences UIAccess pour les applications de technologie d’assistance

Une application de technologie d’assistance est une application de bureau Windows Windows qui interagit avec d’autres processus s’exécutant sur le bureau et dans la nouvelle interface utilisateur Windows pour obtenir des informations à partir du système et des applications. L’application de technologie d’assistance peut ensuite fournir les informations aux utilisateurs d’accessibilité.

Une application de technologie d’assistance obtient l’accès à d’autres processus en définissant l’indicateur UIAccess dans le manifeste de l’application. Pour utiliser l’indicateur UIAccess, une application de technologie d’assistance doit répondre aux exigences suivantes.

  • Exiger l’affichage, l’interaction ou la réflexion des informations d’une autre application pour fournir des informations pour un scénario d’accessibilité, et/ou
  • Vous devez exécuter en tant que fenêtre supérieure pour obtenir ou afficher ces informations.

Pour utiliser UIAccess, une application de technologie d’assistance doit :

  • Être signé avec un certificat pour interagir avec les applications s’exécutant à un niveau de privilège supérieur.
  • Être approuvé par le système. L’application doit être installée dans un emplacement sécurisé qui nécessite une invite de contrôle de compte d’utilisateur (UAC) pour y accéder. Par exemple, le dossier Program Files.
  • Être généré avec un fichier manifeste qui inclut l’indicateur uiAccess.

UIAccess ne doit pas être utilisé :

  • Par applications qui ne sont pas des technologies d’assistance.

  • Par des applications de technologie d’assistance qui affichent des informations ou une interface utilisateur qui ne sont pas pertinentes pour le scénario d’accessibilité qu’elles ciblent.

  • Par les applications qui veulent simplement apparaître au-dessus des autres applications dans la nouvelle interface utilisateur Windows.

    Notes

    Les applications développées pour la nouvelle interface utilisateur Windows n’ont pas UIAccess comme option disponible.

     

Définition d’UIAccess dans le fichier manifeste de l’application

Pour accéder à l’interface utilisateur système protégée, les applications doivent être générées avec un fichier manifeste qui inclut un attribut spécial dans le fichier manifeste. Cet attribut uiAccess est inclus dans la balise requestedExecutionLevel , comme illustré dans l’exemple de code suivant.

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

La valeur de l’attribut level dans ce code n’est qu’un exemple.

UIAccess est « false » par défaut. Si l’attribut est omis ou s’il n’existe aucun manifeste, l’application ne peut pas accéder à l’interface utilisateur protégée.

Pour plus d’informations sur la sécurité Windows, sur la signature d’applications et sur la création de manifestes, consultez L’histoire des développeurs Windows Vista et Windows Server 2008 : Exigences de développement d’applications Windows Vista pour le contrôle de compte d’utilisateur (UAC) sur MSDN.

Notions de base d’UI Automation