Wozu dient UAC - die Benutzerkontensteuerung von Windows?

User Account Control  - deutsch Benutzerkontensteuerung - ist eine Sicherheitsfunktionalität von Windows, die seit Ende 2006 mit Windows Vista verfügbar ist. Die Grundidee besteht darin, die Nutzung von administrativen Rechten immer erst nach einer Zustimmungsabfrage zu erlauben und damit systemweite Änderungen am System nicht automatisch zu gewähren.

Die Verhinderung der Ausführung von Malware ist nicht das eigentliche Ziel von UAC, sondern nur ein Nebeneffekt des nicht mehr automatisch gewährten Vollzugriffs auf das System. Alte Malware stürzt unter UAC ausgeführt oft ab, aktuelle Malware tut dies oft nicht!

UAC kombiniert mit der Versiegelung mittels Software Whitelisting und der Isolierung vom Internet mittels eines Firewalls bietet wirklichen Schutz vor unerwünschter Software, s. dazu auch Wie installiere und konfiguriere ich ein sicheres und robustes Windows System?

UAC allein kann dies nicht leisten!
 
Außerdem, wozu benötigt eine Malware administrative Rechte, um die Daten des ausführenden Nutzers zu stehlen?

Eines der langfristigen Ziele von UAC ist die Durchsetzung der Zwei-Benutzer-Regel, s. Fünf Grundregeln für den sicheren Betrieb von Windows-Systemen: Alle Programme sollen problemlos mit Standardbenutzerrechten laufen.

Was UAC kann und was es nicht kann

UAC kann

  • die automatische Nutzung von nicht reduzierten Zugriffsrechten verhindern, z.B. Administrator startet Setup-Programm oder Nutzer startet Programm aus dem Internet per Internet Explorer.

    In beiden Fällen werden die Rechte reduziert, einmal bei der Anmeldung als Administrator auf Normalbenutzerniveau und beim Starten des Internet Explorers für die Internet Zone auf das Niveau unterhalb des Normalbenutzerniveaus nämlich Untrusted oder Low Integrity, unter welchem ein Schreibzugriff auf Systemdaten oder Nutzerdaten nur auf Registry- und Dateisystemeorte mit demselben Vertrauensniveau Low Integrity erlaubt ist, s. dazu auch https://docs.microsoft.com/en-us/windows/win32/secauthz/mandatory-integrity-control
      
  • das Problem des Ausspähens von administrativen Passwörtern verringern - Over-The-Shoulder-Password-Problem, da eine Passworteingabe nur einmalig bei der Anmeldung erfolgt.

UAC kann nicht

  • die Ausführung von Malware verhindern, welche mit reduzierten Zugriffsrechten ausführbar ist.

UAC schützt Administratoren - keine automatische Nutzung administrativer Rechte

UAC ist unverzichtbar für alle Umgebungen in denen mit administrativen Rechten gearbeitet werden muss und erhöht in diesen die Sicherheit. Der entscheidende Punkt ist, dass administrative Rechte immer erst nach einer Zustimmungsabfrage zur Verfügung stehen und nicht automatisch wie in alten Windows-Versionen und alternativen Betriebssystemen benutzt werden können.

UAC schützt Anwendungen - Rechtereduzierung beim Zugriff auf nicht vertrauenswürdige Datenquellen

Außerdem sind die UAC durchsetzenden Funktionalitäten ideal geeignet, um die Rechte von nicht vertrauenswürdigen Prozessen innerhalb einer Nutzersitzung einzuschränken. Dies gilt vor allem für alle Prozesse die mit dem Internet kommunizieren, wie z.B. Webbrowser. Der Internet Explorer ab Version 7 nutzt per UAC die Windows Integrity Level, um alle Daten aus dem Internet in einem separaten Internet Explorer-Prozess mit reduzierten Zugriffsrechten zu verarbeiten, s. Understanding and Working in Protected Mode Internet Explorer .

Dies erhöht die Sicherheit des Internet Explorers nachhaltig.

UAC bisher nicht von Malware überwunden

Microsoft selbst stellt UAC nicht als unüberwindbare Sicherheitsbarriere dar, weil innerhalb einer Sitzung Prozesse mit reduzierten Rechten und Prozesse mit nicht reduzierten Rechten auf dieselben Datenbereiche zu greifen, z.B. Zwischenablage, Cache des Browsers usw., so dass es theoretisch denkbar ist, über diese gemeinsamen Datenbereiche Prozessen mit nicht reduzierten Rechten unerwünschte Software "unterzuschieben", s. PsExec, User Account Control and Security Boundaries

Trotzdem gibt es bis heute nicht eine unerwünschte Software, welche die Zustimmungsabfrage von UAC überwunden hätte, immer vorausgesetzt, dass System ist mit den Windows Vista UAC-Standardeinstellungen versehen, also immer auf "Always Notify" konfiguriert und besitzt damit keine Zustimmungsausnahmen für Programme auf einer von Microsoft gepflegten UAC-Whitelist (ab Windows 7 die UAC-Standardeinstellung).

Am Ende gilt jedoch immer folgender Grundsatz: Wurde eine nicht vertrauenswürdige Software erst einmal gestartet, sind die Daten des jeweiligen Nutzers nicht mehr sicher.

UAC isoliert eingesetzt, schützt nur eingeschränkt vor Malware!

Befolgung der Zwei-Benutzer-Regel macht UAC nicht überflüssig

Das grundsätzlich die Zwei-Benutzer-Regel befolgt werden soll und administrative Tätigkeiten von alltäglichen Tätigkeiten per unterschiedlichen Konten strikt getrennt werden sollen, ist seit Jahren übliche Praxis, sowohl im Geschäftsumfeld als auch bei vielen Endnutzern, obwohl dies bis heute von Microsoft bei Windows-Standard-Installationen nicht beachtet wird (Bequemlichkeit vor Sicherheit).

Das ITMZ "predigt" seit Jahren die unbedingte Beachtung der Zwei-Benutzer-Regel, s. Fünf Grundregeln für den sicheren Betrieb von Windows-Systemen.

Die Befolgung der Zwei-Benutzer-Regel macht UAC nicht überflüssig, weil UAC auch Nutzerprozesse in ihren Rechten beschneidet, wie z. B. beim Internet Explorer Protected Mode.

UAC ist kein Werbegag

Auch wenn UAC aus Microsoft-Sicht hauptsächlich das deutliche Signal für die Windows Software-Industrie ist, dass die Zeit der uneingeschränkten Zugriffsrechte für Windows-Anwendungen zu Ende ist, bleibt der nicht zu unterschätzende Vorteil der Ausweitung des Grundsatzes der eingeschränkten Zugriffsrechte auch auf administrative Konten: Keine automatische Nutzung von administrativen Rechten und darüber hinaus der Vorteil der weiteren Reduzierung von Standardbenutzerrechten für Prozesse, welche Daten aus nicht vertrauenswürdigen Quellen verarbeiten, wie z.B. Webbrowser beim Zugriff auf das Internet.

Kurz formuliert: UAC ist keine lästige Gängelei der Nutzer und Administratoren oder ein geschickter Werbegag, sondern UAC erhöht die Sicherheit von Windows nachhaltig.

Dringende Empfehlung UAC für alle Konten zu nutzen

Die dringende Empfehlung lautet also UAC nicht abzuschalten, sondern für alle Konten des Systems zu benutzen, wie unter Wie installiere und konfiguriere ich ein sicheres und robustes Windows System? beschrieben. In Kombination mit weiteren Standard-Windows-Funktionalitäten wie Software Whitelisting, Firewall und Zwei-Faktor-Authentifizierung ist UAC in der Lage ein Windows-System so abzusichern, dass dessen Sicherheit kaum zu brechen ist.

UAC basiert auf Integrity Levels und Access Tokens

UAC basiert technologisch auf den Windows-Funktionalitäten Access Token und Mandatory Integrity Control (MIC).

Windows Access Token

Windows generiert nach erfolgreicher Anmeldung einen Windows-Zugriffstoken, welcher folgende Informationen enthält:

  • SID des Nutzers
  • SIDs der Gruppenzugehörigkeiten
  • Privilegien des Nutzers
  • Liste von eingeschränkten Token (Restricted Token)
  • weitere Informationen

Jeder vom System für den angemeldeten Nutzer erzeugte Prozess erhält eine Kopie dieses nach der erfolgreichen Anmeldung erzeugten Access Tokens. Das System benutzt die Informationen des Tokens eines Prozesses, um zu ermitteln welche Zugriffsrechte dem Prozess auf das jeweilige Zielobjekt (Datei, Verzeichnis, Drucker, Freigabe, Prozess, Registry usw.) gewährt werden müssen, indem das System Eintrage in der ACL des Zielobjektes und die Informationen im Zugriffstoken des zugreifenden Prozesses auswertet. Dieser Prozess ist die Grundlage der Sicherheit unter Windows.

Detaillierte Informationen zu Windows Access Tokens und der Auswertung von ACLs und Tokens finden Sie unter:

Mandatory Integrity Control

Windows Integrity Mechanismus (Mandatory Integrity Control - MIC) oder kurz Integrity Level - definieren das maximale Zugriffsrecht, welches ein Prozess auf ein Windows-Objekt ausüben darf.
 
Integrity Level beruhen auf der Definition von Vertrauensstufen: Low, Medium, High und System und zugelassenen Aktionen auf das zu schützende Objekt: Lesen, Ausführen und Schreiben.
 
Alle Prozesse eines Nutzers werden mit der Vertrauensstufe Medium ausgeführt, solange die Benutzerkontensteuerung (UAC) aktiv ist.

Dies gilt auch für alle administrative Konten, jedoch nicht für den built-in Administrator, da für diesen UAC standardmäßig abgeschaltet ist. Dies läßt sich jedoch per Gruppenrichtlinie ändern.
 
Ein Prozess ist z.B. nicht in der Lage einen Schreibzugriff auf ein Objekt (Dateisystem, Registry usw.) mit einer höheren Vertrauensstufe als der eigenen Vertrauensstufe auszuführen oder anders formuliert: Ein Prozess kann nur Objekte derselben Vertrauensstufe oder Objekte mit niedrigerer Vertrauensstufe als der eigenen Vertrauensstufe beschreiben.
 
Die Vertrauensstufe eines Objektes wird in der SACL (System Access Control List) eines Objektes festgelegt und kann mit dem Kommandozeilen-Tool icacls.exe für Dateisystemobjekte festgelegt werden.
 
Dabei hat die festgelegte Vertrauensstufe eines Objektes Vorrang vor den in der DACLS (Discretionary Access Control List) konfigurierten Zugriffsrechten. Wenn keine Vertrauenstsufe in der SACL angegeben wurde, dann gilt die Vertrauensstufe Medium.

Mandatory Integrity Control sorgt dafür, dass ein mit den Rechten eines Standardbenutzers ausgeführter Prozess nicht ohne Zustimmungsabfrage einen Administrator-Token benutzen kann.

Detaillierte Informationen zum Windows Integrity Mechanismus finden Sie unter:

      Windows Vista Integrity Mechanism Technical Reference

UAC ab Windows Vista - keine automatische Nutzung von administrativen Rechten mehr

Bei aktiviertem UAC erhält jeder angemeldete Administrator ab Windows Vista zwei Token:

  1. einen Standardbenutzer-Token (Restricted Token oder Filtered Token - alle administrativen Rechte sind deaktiviert)
  2. einen Administrator-Token

Alle Prozesse werden mit einem Standardbenutzer-Token versehen und erhalten somit nur Standardbenutzerechte. Wenn ein Prozess administrative Rechte benötigt, erfolgt immer eine Zustimmungsabfrage, ob dieser Zugriff erfolgen soll.

Erst durch Bejahung dieser Abfrage erhält der jeweilige Prozess administrative Rechte durch die Nutzung des Administrator-Tokens.

Vorteile von UAC

Der UAC-Ansatz hat für das Arbeiten unter einem administrativen Benutzerkonto folgende Vorteile:

  1. Administrative Rechte stehen nach administrativer Anmeldung nicht automatisch zur Verfügung, wie in alten Windows-Versionen und alternativen Betriebssystemen.
  2. Das Passwort für ein administratives Konto muss nur einmalig bei der Anmeldung angegeben werden. Minimierung des Over-The-Shoulder-Password-Problems.
  3. Besserer Schutz vor Auswirkungen von unerwünschter Software, z.B. vor systemweiten Schreibzugriffen von Malware.
  4. Besserer Schutz vor Fehlern, z.B. versehentlichem Löschen von Dateien.

Zusammenfassung:

  • UAC ist eine wichtige Windows-Funktionalität, die sowohl für Administratoren als auch Normalnutzer die Sicherheit des Betriebssystems nachhaltig erhöht.
  • UAC verhindert die automatische (unbemerkte) Nutzung von administrativen Zugriffsrechten.
  • UAC verhindert nicht die Ausführung von Malware, sondern nur die Nutzung zusätzlicher Zugriffsrechte von Malware.
  • UAC verhindert nicht den Diebstahl von Daten durch Malware, wenn diese für ihre Ausführung keine zusätzlichen Zugriffsrechte benötigt, als sie über den Token des ausführenden Prozesses erhält.

Referenz

Kritik

 

Bei Fragen oder Hinweisen zu diesem Dokument melden Sie sich bitte per E-Mail bei joerg.maletzky(at)uni-rostock.de.