- Benutzerkontenschutz
-
User Account Control (UAC), zu deutsch Benutzerkontensteuerung, ist eine Technik und Sicherheitsinfrastruktur, die beim Betriebssystem Microsoft Windows Vista eingeführt wurde. Sie soll den Schutz des Systems für den Standardbenutzer erleichtern.
Inhaltsverzeichnis
Überblick
Versionen von Windows, die älter als Windows NT sind beziehungsweise nicht davon abstammen (beispielsweise Windows 3.1, Windows 95, 98 und ME), waren Einzelbenutzersysteme, in denen der Benutzer die volle Systemkontrolle besaß. Windowssysteme der NT-Linie sind dagegen Mehrbenutzersysteme. Dies macht verschiedene Benutzerrollen und Benutzerrechte sinnvoll.
Allerdings wird bei Windows XP der erste Benutzer automatisch mit Administratorrechten ausgestattet und somit spielen und arbeiten viele Benutzer von Windows XP standardmäßig unter Administratorrechten. Dadurch wird jede Software, auch Schadsoftware, mit Administratorrechten gestartet, sodass diese vollständigen Zugriff auf das System besitzt.
Unglücklicherweise sind viele alte Anwendungen und sogar neue Software nie dafür entwickelt worden, ohne vollständige Administratorrechte zu laufen. Lässt man diese Software dennoch mit eingeschränkten Rechten laufen, so treten Fehler auf oder die Software arbeitet nicht ordnungsgemäß. Somit war es oft gängige Praxis, normale Benutzer mit Administratorrechten auszustatten.
Mit Windows Vista müssen nun alle Aktivitäten, welche die Sicherheit oder Stabilität des Betriebssystems beeinträchtigen könnten, durch einen Administrator (durch Eingabe des entsprechenden Benutzernamens und Passworts) bestätigt werden. Ist der Benutzer schon als Administrator eingeloggt, wird ein Auswahldialog angezeigt, sodass die Aktion verboten werden kann.
Funktionsweise
Wenn sich ein normaler Benutzer in Windows Vista einloggt, wird eine neue Sitzung erstellt und dieser ein Zugangstoken mit den Basisrechten zugeteilt. Somit können von dieser Sitzung aus keine Veränderungen vorgenommen werden, die das gesamte System betreffen. Loggt sich hingegen nun ein Benutzer aus der Administratorgruppe ein, so werden zwei verschiedene Token erstellt. Der eine Token erhält alle Rechte, wie sie typischerweise dem Administrator zugeteilt werden. Der andere (eingeschränkte) Token erhält dagegen nur die Rechte, die auch ein Standardbenutzer erhalten würde.
Benutzeranwendungen, wie beispielsweise der Windows Explorer, werden alle mit dem eingeschränkten Token gestartet, so dass dies effektiv eine eingeschränkte Umgebung unter einem Administratoraccount darstellt. Benötigt nun eine Anwendung erweiterte Rechte, so werden über den UAC-Mechanismus erweiterte Rechte angefordert. Ein Bestätigungsdialog wird angezeigt und sofern die gewünschte Aktion vom Benutzer bestätigt wird, so wird der Prozess mit dem uneingeschränkten Token weitergeführt. Im Modus Secure Desktop erfolgt die Abfrage der Benutzerdaten (Benutzername und Passwort) durch UAC dadurch, dass der gesamte Bildschirm mit Ausnahme des Autorisierungsdialoges abgedunkelt und deaktiviert wird. Dies soll vor Spoofing schützen.
Nicht alle allgemeinen Aufgaben, wie beispielsweise das Wechseln der Zeitzone benötigen in Windows Vista Administratorrechte. UAC bietet auch eine Datei- und Registry-Virtualisierung an, so dass schlecht geschriebene Programme dennoch mit Standardrechten lauffähig sind. Des Weiteren wird einer Eingabeaufforderung, welche mit erweiterten Rechten läuft, das Präfix „Administrator“ im Titel vorangestellt, so dass leicht unterscheidbar ist, welche Eingabeaufforderungen mit erweiterten Rechten läuft.
Es gibt einige Einstellungen, die im Zusammenhang mit UAC interessant sind. So ist es möglich zu bestimmen, dass:
- Administratoren ihr Passwort wiederholt eingeben müssen (zur Erhöhung der Sicherheit).
- Der Benutzer Strg + Alt + Entf im Zuge des Authentifikationsprozesses eingeben muss (zur Erhöhung der Sicherheit).
- Der Admin Approval Mode vollständig ausgeschaltet wird (UAC beim Administrator angezeigt wird).
Kritische Würdigung
Die UAC wurde implementiert, um die Sicherheit der Systeme zu erhöhen. Dies gilt insbesondere für das Anzeigen von Webseiten, die eine potenzielle Sicherheitsgefahr darstellen. Auf der anderen Seite gibt es Beschwerden, dass UAC verschiedene Arbeitsabläufe am Computer verlangsamt, insbesondere das erstmalige Einrichten eines Windows-Vista-Systems. Deswegen ist es möglich, die UAC-Benachrichtigungen auszuschalten, um beispielsweise ungefährliche Software automatisch installieren zu können. Das UAC kann anschließend wieder aktiviert werden.
Allerdings gibt es auch die Befürchtung, dass ein dauerhaft eingeschaltetes UAC die Benutzer dazu verführt, jeden Dialog zu bestätigen. Insbesondere, da die Dialoge oft zu wenige oder gar keine Informationen über den aktuellen Vorgang beinhalten. Dies würde das System ad absurdum führen.
Anpassung der Benutzerkontensteuerung
Anfordern von erweiterten Rechten
Ein Programm kann erweiterte Rechte auf verschiedene Arten anfordern. Eine Möglichkeit ist es, dass ein Abschnitt requestedPrivileges in einem XML-Dokument, dem Manifest, hinzugefügt wird. Dieses Manifest wird später in die Anwendung eingebunden. Üblicherweise spezifiziert ein Manifest Abhängigkeiten, Visuelle Styles und weitere Eigenschaften des Programmes.
Sicherheitsabschnitt in einem Manifest-Dokument:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <v3:trustInfo xmlns:v3="urn:schemas-microsoft-com:asm.v3"> <v3:security> <v3:requestedPrivileges> <v3:requestedExecutionLevel level="highestAvailable" /> </v3:requestedPrivileges> </v3:security> </v3:trustInfo> </assembly>
Wird das Level-Attribut von requestedExecutionLevel auf „asInvoker“ gesetzt, so läuft die Applikation mit dem Token, welcher die Applikation gestartet hat (normalerweise also mit eingeschränkten Rechten). Setzt man das Attribut auf „highestAvailable“, so fordert dies ein UAC-Bestätigungsdialog bei Administratoren an und läuft bei Standardbenutzern mit eingeschränkten Rechten. „requireAdministrator“ hingegen fordert in jedem Fall die erweiterten Rechte ein.
Um einen neuen Prozess mit erweiterten Rechten aus einer .NET-Anwendung heraus zu starten, so kann das Kommando „runas“ verwendet werden.
Ein Beispiel in C#:
System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = "C:\\Windows\\system32\\notepad.exe"; proc.StartInfo.Verb = "runas"; // elevate the application proc.Start();
In COM-Anwendungen kann dasselbe Kommando „runas“ zum Aufruf ShellExecute() hinzugefügt werden.
::ShellExecute(0, "runas", "C:\\Windows\\Notepad.exe", 0, 0, SW_SHOWNORMAL);
Benutzerkontensteuerung für bestimmte Anwendungen deaktivieren
Es ist möglich die Benutzerkontensteuerung für ausgewählte Anwendungen zu deaktiviert oder auch für ältere Anwendungen einen Kompatibilitätsmodus dauerhaft festlegen.
Weblinks
- Benutzerkontenschutz – User Account Control – Information von Microsoft TechNet
- Benutzerkontenschutz – User Account Control – UAC für bestimmte Anwendungen deaktivieren
- UAC – The Good and The Bad (Joanna Rutkowska – invisiblethings.org) (englisch)
- What triggers User Account Control prompts? (englisch)
- Security Features vs. Convenience (englisch)
Wikimedia Foundation.