Die User Account Control (UAC) von Windows Vista zählt zweifelsohne zu den wichtigsten und interessantesten Neuerungen – aber auch zu denen, an die man sich erst gewöhnen muss. Die Grundidee ist einfach: Wenn administrative Zugriffe erfolgen, wird eine zusätzliche Bestätigung erforderlich. Der Hintergrund ist ebenso einfach: Zu viele Benutzer arbeiten als (lokale) Administratoren an Windows-Arbeitsstationen und erhöhen damit die Sicherheitsrisiken. Denn wenn ein Benutzer als Administrator angemeldet ist und Opfer eines Angriffs wird, kann der Angreifer seinen Code im Kontext dieses Benutzers ausführen, also mit vollen administrativen Berechtigungen. Und damit kann er auch alles auf dem System machen.
Nun ist es zwar eigentlich gute Praxis, sich nicht als Administrator anzumelden, wenn man ganz normal am System arbeitet. Administratorenkonten und andere Konten mit erhöhten Berechtigungen sollten nur situativ für spezielle Aufgaben genutzt werden. Nur: Wer hält sich schon daran? Die Realität sieht eben anders aus.
Mit der UAC versucht Microsoft nun einen Kompromiss. Wenn ein Benutzer mit dem System arbeitet, geschieht dies mit „normalen“ Berechtigungen. Sobald eine administrative Anwendung aufgerufen wird (und der Benutzer überhaupt administrative Rechte hat), wird ein Dialogfeld angezeigt, in dem er die Ausführung dieser Anwendung bestätigen muss.
Das verhindert insbesondere, dass ein Angreifer im Hintergrund administrative Rechte verwendet, weil in diesem Moment eben die Bestätigung erforderlich wird.
Die UAC ist also eine Mischung aus Erziehungs- und Sicherheitsmaßnahme, weil eben doch sehr viele Benutzer sich nicht an die schon lange diskutierten Sicherheitsregeln halten. Man muss dabei aber auch sehen, dass es einige Aufgaben wie die Installation von Anwendungen und auch von ActiveX-Controls gibt, die erhöhte Berechtigungen erfordern.
Die Arbeitsweise der UAC
Um diese Probleme zu adressieren, hat Microsoft auf zwei Ebenen gearbeitet. Zum einen hat man versucht, die Situationen, in denen erhöhte Berechtigungen erforderlich sind, weiter zu reduzieren. Allerdings gibt es dabei Grenzen, weil ja eben nicht alles durch jeden ausgeführt werden soll.
Die andere Ebene ist die UAC. Bei Windows Vista wird zwischen den Standardbenutzern mit eingeschränkten Zugriffsberechtigungen und den lokalen Administratoren mit umfassenden Zugriffsberechtigungen unterschieden.
Diese administrativen Benutzer arbeiten aber nun normalerweise mit einem Token, das sie zunächst als Standardbenutzer identifiziert. Sie haben also eingeschränkte Zugriffsberechtigungen. Nur bei einer expliziten Bestätigung durch den Benutzer kann ein Prozess das zweite Token des Benutzers verwenden, das volle administrative Berechtigungen gibt. Aus Sicht der Architektur ist dabei unter anderem der Fakt interessant, dass lokale Administratoren bei Windows Vista nun zwei Security-Tokens mit unterschiedlichen Berechtigungen haben, zwischen denen gewechselt werden kann.
Die Gruppe der Hauptbenutzer, die ja teilweise schon höhere Berechtigungen hat, gibt es übrigens bei Windows Vista nur noch aus Kompatibilitätsgründen. Auf Dauer sieht Microsoft aber nur die beiden Zugriffsebenen des Standardbenutzers und des lokalen Administrators.
Die Anwendungen
Die Sicht auf die Benutzer zeigt aber nur eine Seite der Medaille. Denn um in den administrativen Modus zu wechseln, muss das System auch wissen, ob es sich um eine Anwendung handelt, die entsprechende administrative Privilegien benötigt. Die Herausforderung sind ältere Anwendungen, die nicht für die UAC angepasst wurden.
Grundsätzlich werden bei Anwendungen nun Integritätsniveaus unterschieden. Anwendungen, die ein hohes Niveau erfordern, modifizieren beispielsweise Systemdaten oder können Festplatten partitionieren. Anwendungen auf der niedrigsten Stufe können dagegen keine Änderungen im System durchführen. Das gilt beispielsweise für einen Web Browser, der das nicht können sollte. Anwendungen mit niedrigem Integritätsniveau dürfen keine kritischen Änderungen im System ausführen.
Wenn eine Anwendung nun administrative Berechtigungen erfordert und entsprechend gekennzeichnet ist, wird das vom System erkannt. Beim Aufruf wird der Dialog (Bild 1) mit dem Hinweis angezeigt, dass eine Anwendung höhere Berechtigungen erfordert. Dieser muss gegebenenfalls bestätigt werden.
Wenn eine Anwendung aber nicht die UAC unterstützt, fehlen die Informationen bei der Anwendung, die im sogenannten application manifest gespeichert werden. Da Windows Vista aber viele kritische Systembereiche wie Registry-Einträge und die Order Programme schützt, wird mit einem zweiten, als Virtualisierung bezeichneten Ansatz gearbeitet.
Bei der Virtualisierung kann die Anwendung virtuell auf diese Bereiche zugreifen. Tatsächlich werden die Informationen aber im Benutzerprofil gespeichert und nicht in den kritischen Systembereichen.
Wenn mehrere Benutzer eine solche Anwendung ausführen, werden die Informationenm mehrfach in verschiedenen Systembereichen abgelegt. Damit können die Anwendungen genutzt werden, ohne dass es zu Veränderungen in den sensiblen Systembereichen kommt. Für den Benutzer ist das transparent.
Die Virtualisierung ist aber eindeutig eine kurzfristige Lösung. Microsoft arbeitet daher auch mit der Entwickler-Community, damit Anwendungen schnell UAC-kompatibel werden.
Weitere wichtige Änderungen durch UAC
Neben diesen sofort sichtbaren Änderungen gibt es einige weitere Neuerungen im Zusammenhang mit der UAC, die nicht sofort sichtbar sind:
-
Alle Benutzer, die nach dem ersten administrativen Benutzer angelegt werden, werden als Standardbenutzer definiert. Weitere administrative Benutzer müssen also explizit als solche konfiguriert werden.
-
Das Standardbenutzerkonto Administrator ist standardmäßig bei der Neuinstallation deaktiviert. Stattdessen wird ein neues Konto für den ersten Benutzer angelegt. Falls bei einem Upgrade festgestellt wird, dass es nur dieses Administratorenkonto gibt, bleibt es aktiviert.
-
Das Konto Administrator kann standardmäßig nicht für die Anmeldung im sicheren Modus verwendet werden.
Die beiden letztgenannten Punkte sind einfach erklärbar. Das Konto Administrator ist das beliebteste Ziel von Angreifern, weil es ein bekanntes Konto ist, das auch nur in den wenigsten Fällen umbenannt wurde. Um die daraus resultierenden Risiken zu vermeiden, wird es nur noch in Ausnahmefällen verwendet.
Der Umgang mit der UAC
Wenn eine Anwendung gestartet wird, die administrative Berechtigungen erfordert, wird das in Bild 1 gezeigte Dialogfeld eingeblendet. Das kann man beispielsweise mit den Advanced System Settings im Bereich System der Systemsteuerung ausprobieren. Über die Schaltfläche Details kann der Name der ausführbaren Datei zusätzlich angezeigt werden.
Als Optionen gibt es Continue für die Ausführung und Cancel zum Abbruch. Falls man etwas länger nichts auswählt, wird die Anwendung nicht gestartet und man kann im normalen Modus des Standardbenutzers weiterarbeiten.
Bei Anwendungen, die bereits für die UAC vorbereitet sind, ist oft direkt zu erkennen, in welchen Fällen man administrative Berechtigungen braucht. In Bild 2 wird der Bereich System der Systemsteuerung gezeigt. Dieser darf von allen Benutzern geöffnet werden. Alle Funktionen, die mit dem Symbol für die Windows- Sicherheit – dem mehrfarbigen, stilisierten Schild – gekennzeichnet sind, erfordern aber erhöhte Berechtigungen und führen damit auch zur Anzeige des Dialogfelds.
Falls Anwendungen Probleme mit der UAC haben und administrative Berechtigungen erfordern, können sie übrigens mit dem Befehl Run as Administrator aus dem Kontextmenü gestartet werden (Bild 3). Bei Anwendungen, die mit Windows Vista geliefert werden, ist das aber nicht erforderlich. Betroffen sind davon allenfalls ältere administrative Programme.
Einstellungen in der Gruppenrichtlinie
Die Konfiguration der UAC kann über die Gruppenrichtlinien erfolgen bzw. bei Systemen, die nicht Mitglied einer Domäne sind, über die lokalen Sicherheitsrichtlinien.
Die Einstellungen finden sich dort unterhalb von Security Policies/Local Policies/Security Options (Bild 4). Hier lassen sich insgesamt acht Parameter für die User Account Control konfigurieren:
-
Admin Approval Mode for the Built-In Administrator account: Hier kann festgelegt werden, ob der standardmäßige Benutzer Administratorüberhaupt seine administrativen Berechtigungen verwenden darf oder nicht. Das Konto ist wie ausgeführt in den meisten Fällen deaktiviert.
-
Behavior of the elevation prompt for administrators in Admin Approval Mode: Legt fest, wie sich die Anforderung der UAC bei Administratoren verhalten soll. Hier kann neben der standardmäßigen Zustimmung auch nach den Credentials gefragt werden (Bild 5). Das ist allerdings relativ lästig, bietet aber beispielsweise die Möglichkeit, auf ein anderes Benutzerkonto zu wechseln.
-
Behavior of the elevation prompt for standard users: Dagegen wird bei normalen Benutzer, die versuchen, eine geschützte Funktion auszuführen, standardmäßig die Eingabe der Credentials gefordert. Damit kann man durch Eingabe von Benutzername und Berechtigungen eines administrativen Benutzers einfach die Anwendungen ausführen, die erhöhte Berechtigungen benötigen.
-
Detect installations and prompt for elevation: Wenn diese Option aktiviert ist, wird bei der Installation von Anwendungen entweder nach der Bestätigung (bei einem Administrator) oder nach Credentials (bei einem anderen Benutzer) gefragt.
-
Only elevate executables that are signed and validated: Wenn diese Option aktiviert ist, kann man die Installation auf signierte und überprüfte Anwendungen beschränken. Andere Anwendungen können in diesem Fall nicht mehr im System installiert werden.
-
Only elevate UIAccess applications that are installed in secure locations: Damit werden nur Anwendungen im administrativen Modus ausgeführt, die in sicheren Bereichen des Systems installiert sind.
-
Run all administrators in Admin Approval Mode: Nutzt im aktivierten Zustand die UAC. Wenn die Option deaktiviert wird, werden keine Bestätigungen mehr angefordert. Das System warnt in diesem Fall wegen des weniger sicheren Zustands. Diese Option kann aber genutzt werden, um die UAC zu deaktivieren.
-
Switch to the secure desktop when prompting for elevation: Wechselt in den sicheren Modus, in dem bei Anzeige einer Aufforderung der UAC keine anderen Systemfunktionen mehr genutzt werden können.
-
Virtualize file and registry write failures to per-user locations: Aktiviert die weiter oben beschriebene Virtualisierung.
Mit diesen Parametern kann man alle wichtigen Aspekte rund um die UAC steuern. Die bisherigen Erfahrungen mit Windows Vista zeigen übrigens, dass man sich ganz gut an die UAC gewöhnt, auch wenn das Systemverhalten zunächst etwas gewöhnungsbedürftig ist.