Skip to main content


User Account Control (Theorie)

Microsoft hat mit Windows Vista die User Account Control (UAC, Benutzerkontensteuerung) eingeführt, die im Vergleich zur traditionellen Rechteverwaltung einen deutlich besseren Schutz vor den möglichen Folgen eines erfolgreichen Angriffs darstellt. Die UAC erlaubt es, weitestgehend mit den Rechten eines Standardbenutzers zu arbeiten. Wird dabei Schadcode eingeschleust, läuft der ebenfalls nur mit den Rechten des Standardbenutzers, so dass seine Möglichkeiten, Schaden anzurichten, deutlich begrenzt sind.

Angreifer mit beschränkten Rechten

Durch die UAC werden alle normalen Aufgaben als Standardbenutzer durchgeführt, sogar dann, wenn sie von einem Administrator durchgeführt werden. In so einen Prozess eingeschleuster Schadcode kann also weder auf geschützte Verzeichnisse noch auf die Registry schreibend zugreifen. Ein Standardbenutzer kann die meisten Anwendungsprogramme ausführen und Benutzereinstellungen ändern, er besitzt aber keine Administrator-Privilegien und kann daher z.B. keine neuen Anwendungen installieren oder Systemkomponenten und -einstellungen ändern.

Werden für eine Aufgabe Administratorrechte benötigt, z.B. um ein Programm zu installieren, fordert das System den Benutzer dazu auf, seine Zustimmung zu geben bzw. seine Berechtigung nachzuweisen. Ein Standardbenutzer muss also Benutzername und Kennwort eines Administrators kennen, um Administratoren vorbehaltene Aufgaben durchzuführen. Ein angemeldeter Administrator muss seine Zustimmung zur Ausführung der Aktion durch einen Klick bestätigen. Dabei wird angezeigt, welches Programm bzw. welche Aktion die Administratorrechte benötigt, ggf. auch, welche Auswirkungen das auf die Sicherheit des Systems hat. Aktionen, für die Administratorrechte notwendig sind, werden entsprechend gekennzeichnet, und eine Eingabeaufforderung, die mit Administratorrechten läuft, wird durch ein vorgestelltes "Administrator" im Titel entsprechend gekennzeichnet.

Standardbenutzer mit einigen zusätzlichen Rechten

Um nicht für alle eigentlich harmlosen Aktionen Administratorrechte anfordern zu müssen, darf ein Standardbenutzer seit Windows Vista einige Aktionen durchführen, für die früher Administratorrechte notwendig waren wie z.B. die Änderung von Zeitzonen, das Hinzufügen eines Druckers, dessen Treiber bereits installiert ist, das Erstellen und Konfigurieren von VPN-Verbindungen oder die Installation wichtiger Windows-Updates.

Virtualisierung für alte Programme

Damit auch alte Programme, die direkten Zugriff auf seit Vista nicht mehr zugängliche Teile des Dateisystems und der Registry voraussetzen, unter den neuen Windows-Versionen laufen, wurden Virtualisierungsdienste eingeführt. Die lenken die verbotenen Schreib- und zugehörige Leseoperationen auf die geschützten Bereiche unbemerkt vom betroffenen Programm auf ungeschützte, benutzerspezifische Orte um.

Zwei Beispiele

Ein Programm, dass seine Konfigurationsdatei in C:\Program Files\[Program]\Setup.ini speichern will, kann dies unter Windows Vista nicht mehr tun, da es nicht in das Programmverzeichnis schreiben darf. Vista erkennt diesen Schreibversuch und leitet ihn auf die beschreibbare Datei C:\Users\[Benutzer]\AppData\Local\VirtualStore\Program Files\[Program]\Setup.ini um. Für das Programm scheint die Konfigurationsdatei im Programmverzeichnis zu liegen, während sie sich tatsächlich im Verzeichnis VirtualStore befindet.

Schreibzugriffe auf den Standardbenutzern nun unzugänglichen Registry-Key Hkey_Local_Machine\Software werden aufHkey_Current_User\Software umgeleitet.

Beim späteren Lesen wird erst der virtuelle Pfad verwendet. Wenn die Daten dort nicht vorhanden sind, wird der Systempfad verwendet. Der Nachteil dieser Lösung: Bisher für alle Benutzer verfügbare Dateien stehen nun nur noch den jeweiligen Benutzern zur Verfügung. Das führt zu Problemen, z.B. wenn ein Administrator die für ihn zugängliche globale Konfigurationsdatei ändert, von den Benutzern aber deren lokale Kopie verwendet wird. Die lokale Version hat immer Vorrang vor einer globalen, nach der gar nicht mehr gesucht wird, wenn bereits der lokale Zugriff erfolgreich war.

Microsoft weist ausdrücklich darauf hin, dass die Virtualisierung in einer zukünftigen Version von Windows wieder entfernt wird. Das sollte Sie nicht weiter stören, da neu entwickelte Programme natürlich nicht darauf angewiesen sind. Es ist aber hilfreich, sich an diesen Workaround zu erinnern, wenn alte Programme als Teil eines neuen Programmpakets weiter verwendet werden: Auch wenn ein altes Programm zu funktionieren scheint, muss das unter der nächsten Windows-Version nicht mehr der Fall sein. Und es wäre doch ärgerlich, wenn dann das eigene Programmpaket unter dem neuen System nur deshalb nicht einwandfrei läuft, weil ein altes Tool damit nicht klar kommt.

UAC in Windows 7

Das UAC in Vista war den meisten Benutzern zu restriktiv, sie fühlten sich u.a. von den häufigen Nachfragen gestört. Microsoft hat daraufhin das UAC in Windows 7 so geändert, dass es in mehreren Abstufungen betrieben werden kann, wobei die höchste Einstellung der Standardeinstellung von Vista entspricht. In der neuen Standardeinstellung von Windows 7 arbeitet der Nutzer normalerweise mit Administratorrechten und alle Programme, die Bestandteil des Systems sind, können ohne Nachfrage Änderungen am System durchführen. Die vom Benutzer gestarteten Programme laufen dagegen nur mit eingeschränkten Rechten und dürfen Änderungen am System erst nach Nachfrage durchführen. Diese Unterscheidung ist auch für Sie als Entwickler von Desktop-Anwendungen wichtig: Auch wenn der Benutzer Administratorrechte hat, muss das noch lange nicht bedeuten, dass das von ihm gestartete Programm sie auch hat. Sie müssen also ggf. die Rechte des Programms prüfen und nicht die des Benutzers, um zu entscheiden, ob das Programm bereits ausreichende Rechte hat oder ob es höhere Rechte anfordern muss.

Im zweiten Teil erfahren Sie, worauf ein Entwickler beim UAC außerdem achten muss.


 

Autor des Artikels

Dipl.-Inform. Carsten Eilers ( www.ceilers-it.de) ist als freier Berater und Coach für IT-Sicherheit und technischen Datenschutz tätig und als Autor verschiedener Artikel und des Buches "Ajax Security" bekannt.  Seinen Blog finden Sie hier.

 



These postings are provided "AS IS" with no warranties, and confers no rights. Use of included code samples are subject to the terms specified at Microsoft - Information on Terms of Use. The content of these security articles are the own personal opinions from Carsten Eilers.

Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur -Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die -Website verlassen.

Möchten Sie teilnehmen?