Sicherheitsüberlegungen für Hilfstechnologien

Hilfstechnologien sind Anwendungen, die auf dem Windows-Desktop ausgeführt werden und Benutzern helfen, mit dem Betriebssystem und anderen Anwendungen zu interagieren, die auf dem Computer ausgeführt werden, einschließlich Anwendungen in der neuen Windows-Benutzeroberfläche. Hilfstechnologieanwendungen funktionieren, indem Sie Informationen aus dem Betriebssystem und anderen Anwendungen abrufen und dann die Informationen auf eine Weise darstellen, die für den Benutzer zugänglich ist. Eine Hilfstechnologieanwendung kann auch programmgesteuert das Betriebssystem und andere Anwendungen basierend auf der Eingabe des Benutzers „steuern“.

Das Wesen von Hilfstechnologieanwendungen erfordert, dass sie Prozessgrenzen überschreiten und Zugriff auf Prozesse haben, die auf einer höheren Integritätsebene (IL) ausgeführt werden als sie selbst. (Eine Hilfstechnologieanwendung wird mit mittlerer IL ausgeführt.) Wenn der Benutzer z. B. versucht, eine Aufgabe auszuführen, für die Administratorrechte erforderlich sind, wird in Windows ein Dialogfeld angezeigt, in dem der Benutzer um die Zustimmung zum Fortfahren gebeten wird. Dieses Dialogfeld wird mit einer höheren IL ausgeführt und ist so gegen prozessübergreifenden Datenaustausch geschützt, sodass Schadsoftware keine Benutzereingaben simulieren kann. Ebenso wird der Desktopanmeldungsbildschirm mit einer höheren IL ausgeführt, um zu verhindern, dass von anderen Prozessen auf ihn zugegriffen wird.

Hilfstechnologieanwendungen benötigen in der Regel Zugriff auf die geschützten System-UI-Elemente oder auf andere Prozesse, die möglicherweise auf einer höheren Berechtigungsstufe ausgeführt werden. Daher müssen Hilfstechnologieanwendungen aus Sicht des Systems als vertrauenswürdig eingestuft sein und mit besonderen Berechtigungen ausgeführt werden.

Um Zugriff auf Prozesse mit einer höheren IL zu erhalten, muss eine Hilfstechnologieanwendung das UIAccess-Flag im Manifest der Anwendung festlegen und von einem Benutzer mit Administratorrechten gestartet werden.

Hinweis

Zugriffsberechtigungen sind wie folgt eingeschränkt:

  • Eine Anwendung, die im Manifest nicht über UIAccess verfügt, beginnt mit mittlerer IL und kann nicht auf UI mit erhöhten Rechten („mittel+“-IL) zugreifen.
  • Eine Anwendung mit UIAccess im Manifest, die von einem Benutzer gestartet wird, der sich nicht in der Gruppe „Administratoren“ befindet, beginnt mit „mittel+“-IL und kann nicht auf die Benutzeroberfläche mit erhöhten Rechten zugreifen (mit „hoher“ IL, z. B. Apps, die über Rechtsklick -> Als Administrator ausführen gestartet wurden).
  • Eine Anwendung verfügt über UI Access und wird von einem Administratorbenutzer mit „hoher“ IL gestartet und kann auf erhöhte UI-Elemente zugreifen, da sie über dieselbe IL verfügt.

UIAccess reicht nicht aus, damit ein Prozess durch die IL-Grenze nach oben bewegt wird.

Zusätzlich zum Zugriff auf höhere IL-Prozesse kann eine Hilfstechnologieanwendung mit diesen Berechtigungen jederzeit als oberste Anwendung in der Z-Reihenfolge ausgeführt werden, was bedeutet, dass eine Hilfstechnologieanwendung sichtbar und verfügbar sein kann, wenn der Benutzer sie benötigt.

Wichtig

Keines der zuvor aufgeführten Szenarien bietet Zugriff auf eine Benutzeroberfläche, die auf System-IL ausgeführt wird. Dies ist nur möglich, wenn der Prozess im UAC (User Account Control)-Desktop unter SYSTEM (und System-IL) gestartet wird. In diesem Fall hat das Festlegen von UIAccess keine Auswirkung.

UIAccess-Anforderungen für Hilfstechnologieanwendungen

Eine Hilfstechnologieanwendung ist eine Windows-Desktopanwendung, die mit anderen Prozessen interagiert, die auf dem Desktop ausgeführt werden, sowie mit der neuen Windows-Benutzeroberfläche, um Informationen aus dem System und Anwendungen abzurufen. Die Hilfstechnologieanwendung kann dann Benutzern, die Barrierefreiheit benötigen, Informationen bereitstellen.

Eine Hilfstechnologieanwendung erhält Zugriff auf andere Prozesse, indem das UIAccess-Flag im Anwendungsmanifest festgelegt wird. Um das UIAccess-Flag zu verwenden, muss eine Hilfstechnologieanwendung die folgenden Anforderungen erfüllen.

  • Anzeige von, Interaktion mit oder Wiedergabe von Informationen aus einer anderen Anwendung, um Informationen für ein Barrierefreiheitsszenario bereitzustellen, und/oder
  • Ausführung als oberstes Fenster, um diese Informationen abzurufen oder anzuzeigen.

Um UIAccess zu verwenden, muss eine Hilfstechnologieanwendung folgende Bedingungen erfüllen:

  • Signatur mit einem Zertifikat, um mit Anwendungen zu interagieren, die auf einer höheren Berechtigungsstufe ausgeführt werden.
  • Vertrauenswürdigkeit aus Sicht des Systems. Die Anwendung muss an einem sicheren Speicherort installiert werden, der eine UAC (User Account Control)-Aufforderung für den Zugriff erfordert. Beispielsweise im Ordner „Programme“.
  • Erstellung mit einer Manifestdatei, die das uiAccess-Flag enthält.

UIAccess sollte nicht verwendet werden:

  • Von Anwendungen, die keine Hilfstechnologien darstellen.

  • Von Hilfstechnologieanwendungen, die Informationen oder UI anzeigen, die für das beabsichtigte Barrierefreiheitsszenario nicht relevant sind.

  • Von Anwendungen, die nur über anderen Anwendungen in der neuen Windows-Benutzeroberfläche erscheinen möchten.

    Hinweis

    Für die neue Windows-Benutzeroberfläche entwickelte Anwendungen verfügen nicht über UIAccess als verfügbare Option.

     

Festlegen von UIAccess in der Anwendungsmanifestdatei

Um Zugriff auf die UI des geschützten Systems zu erhalten, müssen Anwendungen mit einer Manifestdatei generiert werden, die ein besonderes Attribut in der Manifestdatei enthält. Dieses uiAccess-Attribut ist im requestedExecutionLevel-Tag enthalten, wie im folgenden Codebeispiel gezeigt.

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

Der Wert des Level-Attributs in diesem Code ist lediglich ein Beispiel.

UIAccess ist standardmäßig „false“. Wenn das Attribut nicht angegeben wird oder kein Manifest vorhanden ist, kann die Anwendung keinen Zugriff auf die geschützte Benutzeroberfläche erhalten.

Weitere Informationen zur Windows-Sicherheit, zum Signieren von Anwendungen und zum Erstellen von Manifesten finden Sie in der Windows Vista- und Windows Server 2008-Entwicklergeschichte: Windows Vista-Anwendungsentwicklungsanforderungen für die Benutzerkontensteuerung (User Account Control, UAC).

Grundlagen der Benutzeroberflächenautomatisierung