1
Tipps und Tricks / Die UAC - Hintergrund und die Arbeit damit
« am: 18. Oktober 2008, 02:43:26 »
Da die Benutzerkontensteuerung (UAC) immer noch eine der am meissten missverstandenen Features von Vista ist, will ich hier meinen Teil zur Aufklärung beitragen.
Der Hintergrund der UAC - warum es nicht ratsam ist, sie auszuschalten.
Bei der Anmeldung eines Benutzers wird seinem Benutzerkonto ein Access Token zugeteilt, das in der gesamten Arbeitssitzung darüber entscheidet, auf welche Daten und Funktionen der Benutzer zugreifen kann. Dazu enthält das Token die Sicherheitskennung (Security ID, SID) des Benutzers sowie die SIDs aller Gruppen, denen der Benutzer im Moment der Anmeldung angehört. Weiterhin sind im Token alle Systemrechte vermerkt, die dem Konto vom Administrator verliehen wurden z.B. einen Debugger auf Systemebene einzusetzen oder sich als Dienst an das System anzumelden. Bei jedem Zugriff auf eine Funktion oder ein Objekt prüft das Betriebssystem das Access Token, ob die angeforderte Aktivität erlaubt ist. Diese Technik ist sehr effizient, denn sie erfordert zur Prüfung der Berechtigungen keinen Kontakt zum Anmeldeserver - es werden nur die SIDs in der Zugriffsliste (Access Control List, ACL) mit dem Token verglichen. Änderungen an Gruppenmitgliedschaften werden so aber nur wirksam, wenn ein Benutzer sich ab- und neu anmeldet.
Jeder Prozess, der von einem Benutzerkonto gestartet wird (also meistens ein Programm) bekommt das Benutzerrecht des Users übertragen. Dadurch hat ein Prozess nicht mehr, aber auch nicht weniger Rechte als der User, der es aufruft. Zwar gibt es auch Spezialfälle, in denen ein Konto das Benutzerrecht und damit die Identität eines anderen Kontos annimmt, jedoch muss dieses dann auch speziell delegiert und konfiguriert werden.
Warum die UAC so gut ist und Windows "sicher" macht.
Der Zugriff auf Systemfunktionen wird von Windows über die Mitgliedschaft in speziellen Gruppen gesteuert: Nur wer Mitglied der lokalen Gruppe "Administratoren" eines Systems ist, hat tatsächlich auch Administratorrechte. Hier im Falle von Vista ist es aber so, dass das standartmäßig nach der Installation eingerichtete Adminkonto eigentlich nur ein Benutzerkonto ist, welches über etwas erhöhte Rechte verfügt. Auch wer die UAC dann ausschaltet, darf noch lange nicht alles im System tun. Dies darf unter Vista und Server 2008 nur das standartmäßig deaktivierte Konto "Administrator".
Wenn Benutzer als Administratoren arbeiten, entstehen hierraus aber schnell Folgeprobleme: Jede Anwendung hat so auch Adminrechte, also auch ein Virus oder Trojaner, der sich so ungehindert im System austoben kann. Gleichzeitig können Admins das System umkonfigurieren, den Virenscanner und die Firewall abschalten, die Anwendung von Gruppenrichtlinien verhindern - und was ihnen sonst noch so "nettes" einfällt. Daraus resultiert wieder eine Menge unnütze Arbeit für die leidgeplagten Admins.
Da der Mensch an sich faul ist und stets den bequemen Weg geht, wird weiterhin fröhlich mit einem Adminkonto gearbeitet, anstatt normale "alltägliche" Aufgaben nur mit einem normalen Benutzerkonto zu erledigen. Denn Schadsoftware bekäme bei der Arbeit mit einem normalen Benutzerkonto auch nur Benutzerrechte und nicht die zur Funktion notwendigen administartiven Rechte.
Microsoft entschied sich daher bei der Entwicklung von Windows Vista für den radikalen Weg: Die Benutzerkontensteuerung erzwingt, dass alle Benutzer (zunächst) ohne Administratorrechte arbeiten - selbst dann, wenn sie Mitglied der Gruppe "Administratoren" sind. Sollte es tatsächlich notwendig sein, eine Aktivität mit erhöhten Rechten auszuführen, so bietet UAC an, solche Rechte verfügbar zu machen. Diese Funktion ansich stellt bereits eine extreme Weiterentwicklung zu XP dar. Dort musste man sich abmelden um sich mit einem Adminkonto erneut anzumelden. Jetzt wird kurz der Bildschirm dunkel und man klickt auf "Fortsetzen". Auf diese Art und Weise bekommt die Anwendung dann die zur Funktion erhöhten Rechte und kann ausgeführt werden.
Das nervt aber!
Einer der häufigsten Kritikpunkte an der UAC ist, dass die vielen UAC-Aufforderungen nerven und ein geordnetes Arbeiten nicht möglich ist. Diese Kritik ist in der Regel aber unberechtigt. Für die Arbeit, die an einem üblichen Vista-PC verrichtet wird, sind fast nie Adminrechte nötig. Nur wenn Systemeinstellungen geändert werden sollen oder etwa neue Programme zu installieren sind, benötigt UAC eine Bestätigung. Für die weit überwiegende Anzahl der User dürfte dies die rühmliche Ausnahme sein. Hier wird es wohl sich eher um ein Problem des ersten Eindrucks handeln: Wer Windows Vista manuell installiert und einrichtet, wird zunächst tatsächlich sehr viele dieser administrativen Aufgaben ausführen und hat daher natürlich oft die UAC-Abfrage zu bestätigen. Erfahrungsgemäß ist dies aber eine Aufgabe, die in wenigen Stunden (meist noch viel schneller) erledigt ist. Und wer ehrlich ist, wird zugeben, dass bei üblichen Installationsprogrammen derart viele Mausklicks nötig sind, dass es auf jeweils einen UAC-Klick mehr nun wirklich nicht ankommt.
Standartmäßig ist nach der Installation ein Administartorkonto vorhanden, unter dem auch sofort die Benutzerkontensteuerung aktiv ist. Dies ist ein Weg, die UAC einzusetzen, aber nicht der Beste. Außerdem sind hier unter anderem evtl. mehrere Bestätigungen nötig, um eine Aktion auszuführen. Wie bei allem im Leben, gibt es auch hier einen richtigen und einen richtigeren Weg.
So wird Windows zum Einsatz der UAC richtig konfiguriert:
Gleich nach der Erstinstallation steht per default das Standart Adminkonto bereit. Hier sollte ein sicheres Kennwort vergeben werden. Mindestens 8 Zeichen, Buchstaben, Sonderzeichen und Zahlen sollte es enthalten (meine Auffassung eines "sicheren" Kennwortes ist übrigens 25 Zeichen lang ) Anschliessend errichtet man ein normales Benutzerkonto ohne besondere Rechte (auch wieder mit Kennwort), unter dem anschliessend nur und ausschließlich gearbeitet wird. Alle Programme und Anwendungen werden hier im normalen Benutzerkonto installiert.
Bei jeder Aktion, welche nun Adminrechte erfordern, erscheint ein Dialog, wo die Zugangsdaten des Adminkontos eingegeben werden müssen. Hierbei ist der Benutzername des Adminkontos standartmäßig bereits eingetragen und muss nur durch das Passwort ergänzt werden. So erfolgt für jede Aktion, welche Adminrechte erfordert, genau EINE Abfrage der UAC. Selbst wenn nun Schadsoftware auf den Rechner gelangt, kann sie in den Allermeisten Fällen genau Null Schaden anrichten, da sie (allermeistens) administrative Rechte erfordert um zu funktionieren.
Der Hintergrund der UAC - warum es nicht ratsam ist, sie auszuschalten.
Bei der Anmeldung eines Benutzers wird seinem Benutzerkonto ein Access Token zugeteilt, das in der gesamten Arbeitssitzung darüber entscheidet, auf welche Daten und Funktionen der Benutzer zugreifen kann. Dazu enthält das Token die Sicherheitskennung (Security ID, SID) des Benutzers sowie die SIDs aller Gruppen, denen der Benutzer im Moment der Anmeldung angehört. Weiterhin sind im Token alle Systemrechte vermerkt, die dem Konto vom Administrator verliehen wurden z.B. einen Debugger auf Systemebene einzusetzen oder sich als Dienst an das System anzumelden. Bei jedem Zugriff auf eine Funktion oder ein Objekt prüft das Betriebssystem das Access Token, ob die angeforderte Aktivität erlaubt ist. Diese Technik ist sehr effizient, denn sie erfordert zur Prüfung der Berechtigungen keinen Kontakt zum Anmeldeserver - es werden nur die SIDs in der Zugriffsliste (Access Control List, ACL) mit dem Token verglichen. Änderungen an Gruppenmitgliedschaften werden so aber nur wirksam, wenn ein Benutzer sich ab- und neu anmeldet.
Jeder Prozess, der von einem Benutzerkonto gestartet wird (also meistens ein Programm) bekommt das Benutzerrecht des Users übertragen. Dadurch hat ein Prozess nicht mehr, aber auch nicht weniger Rechte als der User, der es aufruft. Zwar gibt es auch Spezialfälle, in denen ein Konto das Benutzerrecht und damit die Identität eines anderen Kontos annimmt, jedoch muss dieses dann auch speziell delegiert und konfiguriert werden.
Warum die UAC so gut ist und Windows "sicher" macht.
Der Zugriff auf Systemfunktionen wird von Windows über die Mitgliedschaft in speziellen Gruppen gesteuert: Nur wer Mitglied der lokalen Gruppe "Administratoren" eines Systems ist, hat tatsächlich auch Administratorrechte. Hier im Falle von Vista ist es aber so, dass das standartmäßig nach der Installation eingerichtete Adminkonto eigentlich nur ein Benutzerkonto ist, welches über etwas erhöhte Rechte verfügt. Auch wer die UAC dann ausschaltet, darf noch lange nicht alles im System tun. Dies darf unter Vista und Server 2008 nur das standartmäßig deaktivierte Konto "Administrator".
Wenn Benutzer als Administratoren arbeiten, entstehen hierraus aber schnell Folgeprobleme: Jede Anwendung hat so auch Adminrechte, also auch ein Virus oder Trojaner, der sich so ungehindert im System austoben kann. Gleichzeitig können Admins das System umkonfigurieren, den Virenscanner und die Firewall abschalten, die Anwendung von Gruppenrichtlinien verhindern - und was ihnen sonst noch so "nettes" einfällt. Daraus resultiert wieder eine Menge unnütze Arbeit für die leidgeplagten Admins.
Da der Mensch an sich faul ist und stets den bequemen Weg geht, wird weiterhin fröhlich mit einem Adminkonto gearbeitet, anstatt normale "alltägliche" Aufgaben nur mit einem normalen Benutzerkonto zu erledigen. Denn Schadsoftware bekäme bei der Arbeit mit einem normalen Benutzerkonto auch nur Benutzerrechte und nicht die zur Funktion notwendigen administartiven Rechte.
Microsoft entschied sich daher bei der Entwicklung von Windows Vista für den radikalen Weg: Die Benutzerkontensteuerung erzwingt, dass alle Benutzer (zunächst) ohne Administratorrechte arbeiten - selbst dann, wenn sie Mitglied der Gruppe "Administratoren" sind. Sollte es tatsächlich notwendig sein, eine Aktivität mit erhöhten Rechten auszuführen, so bietet UAC an, solche Rechte verfügbar zu machen. Diese Funktion ansich stellt bereits eine extreme Weiterentwicklung zu XP dar. Dort musste man sich abmelden um sich mit einem Adminkonto erneut anzumelden. Jetzt wird kurz der Bildschirm dunkel und man klickt auf "Fortsetzen". Auf diese Art und Weise bekommt die Anwendung dann die zur Funktion erhöhten Rechte und kann ausgeführt werden.
Das nervt aber!
Einer der häufigsten Kritikpunkte an der UAC ist, dass die vielen UAC-Aufforderungen nerven und ein geordnetes Arbeiten nicht möglich ist. Diese Kritik ist in der Regel aber unberechtigt. Für die Arbeit, die an einem üblichen Vista-PC verrichtet wird, sind fast nie Adminrechte nötig. Nur wenn Systemeinstellungen geändert werden sollen oder etwa neue Programme zu installieren sind, benötigt UAC eine Bestätigung. Für die weit überwiegende Anzahl der User dürfte dies die rühmliche Ausnahme sein. Hier wird es wohl sich eher um ein Problem des ersten Eindrucks handeln: Wer Windows Vista manuell installiert und einrichtet, wird zunächst tatsächlich sehr viele dieser administrativen Aufgaben ausführen und hat daher natürlich oft die UAC-Abfrage zu bestätigen. Erfahrungsgemäß ist dies aber eine Aufgabe, die in wenigen Stunden (meist noch viel schneller) erledigt ist. Und wer ehrlich ist, wird zugeben, dass bei üblichen Installationsprogrammen derart viele Mausklicks nötig sind, dass es auf jeweils einen UAC-Klick mehr nun wirklich nicht ankommt.
Standartmäßig ist nach der Installation ein Administartorkonto vorhanden, unter dem auch sofort die Benutzerkontensteuerung aktiv ist. Dies ist ein Weg, die UAC einzusetzen, aber nicht der Beste. Außerdem sind hier unter anderem evtl. mehrere Bestätigungen nötig, um eine Aktion auszuführen. Wie bei allem im Leben, gibt es auch hier einen richtigen und einen richtigeren Weg.
So wird Windows zum Einsatz der UAC richtig konfiguriert:
Gleich nach der Erstinstallation steht per default das Standart Adminkonto bereit. Hier sollte ein sicheres Kennwort vergeben werden. Mindestens 8 Zeichen, Buchstaben, Sonderzeichen und Zahlen sollte es enthalten (meine Auffassung eines "sicheren" Kennwortes ist übrigens 25 Zeichen lang ) Anschliessend errichtet man ein normales Benutzerkonto ohne besondere Rechte (auch wieder mit Kennwort), unter dem anschliessend nur und ausschließlich gearbeitet wird. Alle Programme und Anwendungen werden hier im normalen Benutzerkonto installiert.
Bei jeder Aktion, welche nun Adminrechte erfordern, erscheint ein Dialog, wo die Zugangsdaten des Adminkontos eingegeben werden müssen. Hierbei ist der Benutzername des Adminkontos standartmäßig bereits eingetragen und muss nur durch das Passwort ergänzt werden. So erfolgt für jede Aktion, welche Adminrechte erfordert, genau EINE Abfrage der UAC. Selbst wenn nun Schadsoftware auf den Rechner gelangt, kann sie in den Allermeisten Fällen genau Null Schaden anrichten, da sie (allermeistens) administrative Rechte erfordert um zu funktionieren.