Funktionsweise der Benutzerkontensteuerung
Die Benutzerkontensteuerung (User Account Control, UAC) ist ein wichtiger Bestandteil der Windows-Sicherheit. UAC verringert das Risiko von Schadsoftware, indem die Fähigkeit von schadhaftem Code eingeschränkt wird, mit Administratorrechten auszuführen. In diesem Artikel wird beschrieben, wie UAC funktioniert und wie sie mit den Endbenutzern interagiert.
UAC-Prozess und -Interaktionen
Mit UAC muss jede Anwendung, die das Administratorzugriffstoken erfordert, den Endbenutzer zur Zustimmung auffordern. Die einzige Ausnahme ist die Beziehung zwischen übergeordneten und untergeordneten Prozessen. Untergeordnete Prozesse erben das Zugriffstoken des Benutzers vom übergeordneten Prozess. Sowohl der übergeordnete als auch der untergeordnete Prozess müssen jedoch die gleiche Integritätsebene aufweisen.
Windows schützt Prozesse, indem deren Integritätsebenen markiert werden. Integritätsebenen sind Vertrauensmessungen:
- Eine Anwendung mit hoher Integrität ist eine Anwendung, die Aufgaben ausführt, die Systemdaten ändern, z. B. eine Datenträgerpartitionierungsanwendung
- Eine Anwendung mit niedriger Integrität ist eine Anwendung, die Aufgaben ausführt, die möglicherweise das Betriebssystem gefährden können, z. B. als Webbrowser.
Anwendungen mit niedrigeren Integritätsebenen können keine Daten in Anwendungen mit höheren Integritätsstufen ändern. Wenn ein Standardbenutzer versucht, eine App auszuführen, die ein Administratorzugriffstoken erfordert, erfordert UAC, dass der Benutzer gültige Administratoranmeldeinformationen bereitstellt.
Um die Funktionsweise dieses Prozesses besser zu verstehen, sehen wir uns den Windows-Anmeldeprozess genauer an.
Anmeldevorgang
Das folgende Diagramm zeigt, wie sich der Anmeldevorgang für einen Administrator vom Anmeldevorgang für einen Standardbenutzer unterscheidet.
Standardmäßig greifen sowohl Standard- als auch Administratorbenutzer auf Ressourcen zu und führen Apps im Sicherheitskontext eines Standardbenutzers aus.
Wenn sich ein Benutzer anmeldet, erstellt das System ein Zugriffstoken für diesen Benutzer. Das Zugriffstoken enthält Informationen zur Zugriffsebene, die dem Benutzer gewährt wird, einschließlich spezifischer Sicherheits-IDs (SIDs) und Windows-Berechtigungen.
Wenn sich ein Administrator anmeldet, werden zwei separate Zugriffstoken für den Benutzer erstellt: ein Standardbenutzerzugriffstoken und ein Administratorzugriffstoken. Das Standardbenutzerzugriffstoken:
- Enthält die gleichen benutzerspezifischen Informationen wie das Administratorzugriffstoken, aber die administrativen Windows-Berechtigungen und SIDs werden entfernt.
- Es wird verwendet, um Anwendungen zu starten, die keine administrativen Aufgaben ausführen (Standardbenutzer-Apps).
- Es wird verwendet, um den Desktop anzuzeigen, indem der Prozess explorer.exeausgeführt wird. Explorer.exe ist der übergeordnete Prozess, von dem alle anderen vom Benutzer initiierten Prozesse ihr Zugriffstoken erben. Daher werden alle Apps als Standardbenutzer ausgeführt, es sei denn, ein Benutzer erteilt seine Zustimmung oder Anmeldeinformationen, um einer App die Verwendung eines voll administrativen Zugriffstokens zu genehmigen.
Ein Benutzer, der Mitglied der Gruppe Administratoren ist, kann sich anmelden, im Web navigieren und E-Mails lesen, während er ein Standardbenutzerzugriffstoken verwendet. Wenn der Administrator eine Aufgabe ausführen muss, die das Administratorzugriffstoken erfordert, fordert Windows den Benutzer automatisch zur Genehmigung auf. Diese Eingabeaufforderung wird als Aufforderung zur Erhöhung bezeichnet, und ihr Verhalten kann über eine Richtlinie oder Registrierung konfiguriert werden.
Die UAC-Benutzeroberfläche
Wenn UAC aktiviert ist, unterscheidet sich die Benutzeroberfläche für Standardbenutzer von Administratorbenutzern. Die empfohlene und sicherere Methode zum Ausführen von Windows besteht darin, sicherzustellen, dass Ihr primäres Benutzerkonto ein Standardbenutzer ist. Die Ausführung als Standardbenutzer trägt dazu bei, die Sicherheit für eine verwaltete Umgebung zu maximieren. Mit der integrierten UAC-Erhöhungskomponente können Standardbenutzer problemlos eine Administrative Aufgabe ausführen, indem sie gültige Anmeldeinformationen für ein lokales Administratorkonto eingeben.
Die standardmäßige integrierte UAC-Erweiterungskomponente für Standardbenutzer ist die Anmeldeinformationsaufforderung.
Die Alternative zur Ausführung als Standardbenutzer besteht darin, als Administrator im Admin Genehmigungsmodus auszuführen. Mit der integrierten UAC-Erweiterungskomponente können Mitglieder der lokalen Administratorgruppe eine administrative Aufgabe einfach ausführen, indem sie die Genehmigung erteilen.
Die standardmäßige integrierte UAC-Erweiterungskomponente für ein Administratorkonto im Admin Genehmigungsmodus wird als Zustimmungsaufforderung bezeichnet.
Anmeldeinformationsaufforderung
Die Anmeldeinformationsaufforderung wird angezeigt, wenn ein Standardbenutzer versucht, eine Aufgabe auszuführen, die das Administratorzugriffstoken eines Benutzers erfordert. Administratoren können auch aufgefordert werden, ihre Anmeldeinformationen anzugeben, indem sie den Wert der Einstellung Benutzerkontensteuerung: Verhalten der Eingabeaufforderung für Rechteerweiterungen für Administratoren in Admin Richtlinieneinstellung für den Genehmigungsmodus auf Aufforderung zur Eingabe von Anmeldeinformationen festlegen.
Die Zustimmungsaufforderung
Die Zustimmungsaufforderung wird angezeigt, wenn ein Benutzer versucht, eine Aufgabe auszuführen, die das Administratorzugriffstoken eines Benutzers erfordert.
UAC-Eingabeaufforderungen zur Erhöhung
Die Eingabeaufforderungen zur Erhöhung der UAC sind app-spezifisch farbcodiert, sodass das potenzielle Sicherheitsrisiko einer Anwendung leichter identifiziert werden kann. Wenn eine App versucht, mit dem Vollzugriffstoken eines Administrators auszuführen, analysiert Windows zunächst die ausführbare Datei, um den Herausgeber zu ermitteln. Apps werden zunächst basierend auf dem Herausgeber der Datei in drei Kategorien unterteilt:
- Windows
- Publisher verified (signiert)
- Herausgeber nicht überprüft (ohne Vorzeichen)
Die Farbcodierung der Eingabeaufforderung zur Erhöhung sieht wie folgt aus:
- Grauer Hintergrund: Bei der Anwendung handelt es sich um eine Windows-Administrator-App, z. B. ein Systemsteuerung Element, oder eine anwendung, die von einem verifizierten Herausgeber signiert wurde
- Gelber Hintergrund: Die Anwendung ist nicht signiert oder signiert, aber nicht vertrauenswürdig
Schildsymbol
Einige Systemsteuerung Elemente wie Datum und Uhrzeit enthalten eine Kombination aus Administrator- und Standardbenutzervorgängen. Standardbenutzer können die Uhr anzeigen und die Zeitzone ändern, aber zum Ändern der lokalen Systemzeit ist ein Volladministratorzugriffstoken erforderlich. Im Folgenden sehen Sie einen Screenshot des Elements "Datum und Uhrzeit" Systemsteuerung.
Das Schildsymbol auf der Schaltfläche Datum und Uhrzeit ändern... gibt an, dass der Prozess ein vollständiges Administratorzugriffstoken erfordert.
Schützen der Eingabeaufforderung zur Erhöhung
Der Prozess der Erhöhung wird weiter gesichert, indem die Eingabeaufforderung an den sicheren Desktop geleitet wird. Die Zustimmungs- und Anmeldeinformationen werden standardmäßig auf dem sicheren Desktop angezeigt. Nur Windows-Prozesse können auf den sicheren Desktop zugreifen. Für ein höheres Sicherheitsniveau empfehlen wir, die Einstellung Benutzerkontensteuerung: Wechseln zum sicheren Desktop bei Aufforderung zur Erhöhung der Rechteerweiterung aktiviert zu lassen.
Wenn eine ausführbare Datei Rechteerweiterungen anfordert, wird der interaktive Desktop, der auch als Benutzerdesktop bezeichnet wird, auf den sicheren Desktop umgestellt. Der sichere Desktop blendet den Benutzerdesktop ab und zeigt eine Eingabeaufforderung zur Erhöhung an, auf die vor dem Fortfahren geantwortet werden muss. Wenn der Benutzer Ja oder Nein auswählt, wechselt der Desktop zurück zum Benutzerdesktop.
Hinweis
Ab Windows Server 2019 ist es nicht mehr möglich, den Inhalt der Zwischenablage auf dem sicheren Desktop einzufügen. Dies ist das gleiche Verhalten wie die derzeit unterstützten Windows-Clientbetriebssystemversionen.
Schadsoftware kann eine Nachahmung des sicheren Desktops darstellen, aber wenn die Einstellung Benutzerkontensteuerung: Verhalten der Aufforderung zur Erhöhung der Rechteerweiterung für Administratoren in Admin Richtlinieneinstellung Genehmigungsmodus auf Zustimmung anfordern festgelegt ist, erhält die Schadsoftware keine Rechteerweiterung, wenn der Benutzer ja für die Imitation auswählt. Wenn die Richtlinieneinstellung auf Anmeldeinformationen einfordern festgelegt ist, kann schadsoftware, die die Anmeldeinformationsaufforderung imitiert, möglicherweise die Anmeldeinformationen vom Benutzer erfassen. Die Schadsoftware erhält jedoch keine erhöhten Berechtigungen, und das System verfügt über andere Schutzmaßnahmen, die verhindern, dass Schadsoftware die Kontrolle über die Benutzeroberfläche übernimmt, selbst wenn ein kennwortgefangen wurde.
Während Schadsoftware eine Imitation des sicheren Desktops darstellen könnte, kann dieses Problem nur auftreten, wenn ein Benutzer die Schadsoftware zuvor auf dem PC installiert hat. Da Prozesse, die ein Administratorzugriffstoken erfordern, nicht automatisch installiert werden können, wenn UAC aktiviert ist, muss der Benutzer explizit seine Zustimmung erteilen, indem er Ja oder Administratoranmeldeinformationen bereitstellt. Das spezifische Verhalten der UAC-Eingabeaufforderung zur Erhöhung hängt von Sicherheitsrichtlinien ab.
UAC-Architektur
Im folgenden Diagramm wird die UAC-Architektur erläutert.
Um die einzelnen Komponenten besser zu verstehen, lesen Sie die folgenden Tabellen:
Benutzer
Komponente | Beschreibung |
---|---|
Benutzer führt vorgang aus, der Berechtigungen erfordert | Wenn der Vorgang das Dateisystem oder die Registrierung ändert, wird Virtualisierung aufgerufen. Alle anderen Vorgänge rufen ShellExecute auf. |
Shellexecute | ShellExecute ruft CreateProcess auf. ShellExecute sucht in CreateProcess nach dem ERROR_ELEVATION_REQUIRED Fehler. Wenn der Fehler empfangen wird, ruft ShellExecute den Anwendungsinformationsdienst auf, um zu versuchen, die angeforderte Aufgabe mit der Eingabeaufforderung mit erhöhten Rechten auszuführen. |
Createprocess | Wenn die Anwendung Rechteerweiterungen erfordert, lehnt CreateProcess den Aufruf mit ERROR_ELEVATION_REQUIRED ab. |
System
Komponente | Beschreibung |
---|---|
Anwendungsinformationsdienst | Ein Systemdienst, mit dem Apps gestartet werden können, für die eine oder mehrere erhöhte Berechtigungen oder Benutzerrechte erforderlich sind, z. B. lokale Verwaltungsaufgaben, und Apps, die höhere Integritätsstufen erfordern. Der Anwendungsinformationsdienst hilft beim Starten solcher Apps, indem ein neuer Prozess für die Anwendung mit dem Vollzugriffstoken eines Administratorbenutzers erstellt wird, wenn Rechteerweiterungen erforderlich sind. Abhängig von den konfigurierten Richtlinien kann der Benutzer seine Zustimmung erteilen. |
Erhöhen einer ActiveX-Installation | Wenn ActiveX nicht installiert ist, überprüft das System die UAC-Schiebereglerebene. Wenn ActiveX installiert ist, wird die Einstellung Benutzerkontensteuerung: Wechseln zum sicheren Desktop aktiviert, wenn Sie zur Erhöhung Gruppenrichtlinie auffordern. |
Überprüfen der UAC-Schiebereglerebene | UAC verfügt über einen Schieberegler, mit dem Sie aus vier Benachrichtigungsebenen auswählen können.
|
Sicherer Desktop aktiviert | Die Einstellung Benutzerkontensteuerung: Wechseln zum sicheren Desktop bei Aufforderung zur Erhöhung der Rechteerweiterung ist aktiviert:
|
Createprocess | CreateProcess ruft die Erkennung von AppCompat, Fusion und Installer auf, um zu bewerten, ob die App eine Erhöhung erfordert. Die Datei wird dann überprüft, um die angeforderte Ausführungsebene zu ermitteln, die im Anwendungsmanifest für die Datei gespeichert ist. CreateProcess schlägt fehl, wenn die im Manifest angegebene angeforderte Ausführungsebene nicht mit dem Zugriffstoken übereinstimmt und einen Fehler (ERROR_ELEVATION_REQUIRED) an ShellExecute zurückgibt. |
AppCompat | Die AppCompat-Datenbank speichert Informationen in den Anwendungskompatibilitätsfixeinträgen für eine Anwendung. |
Fusion | Die Fusion-Datenbank speichert Informationen aus Anwendungsmanifesten, die die Anwendungen beschreiben. Das Manifestschema wird aktualisiert, um ein neues Feld mit angeforderter Ausführungsebene hinzuzufügen. |
Installationsprogrammerkennung | Die Installationsprogrammerkennung erkennt Setupdateien, wodurch verhindert wird, dass Installationen ohne Wissen und Zustimmung des Benutzers ausgeführt werden. |
Kernel
Komponente | Beschreibung |
---|---|
Virtualisierung | Die Virtualisierungstechnologie stellt sicher, dass nicht konforme Apps nicht automatisch ausgeführt werden oder so fehlschlagen, dass die Ursache nicht ermittelt werden kann. UAC bietet auch Datei- und Registrierungsvirtualisierung und Protokollierung für Anwendungen, die in geschützte Bereiche schreiben. |
Dateisystem und Registrierung | Die Datei- und Registrierungsvirtualisierung pro Benutzer leitet Registrierungs- und Dateischreibanforderungen pro Computer an entsprechende Speicherorte pro Benutzer um. Leseanforderungen werden zuerst an den virtualisierten Standort pro Benutzer und zweitens an den Standort pro Computer umgeleitet. |
Der Schieberegler deaktiviert UAC nie vollständig. Wenn Sie sie auf Nie benachrichtigen festlegen, geschieht Folgendes:
- Ausführen des UAC-Diensts
- Bewirkt, dass alle von Administratoren initiierten Rechteerweiterungsanforderungen automatisch genehmigt werden, ohne dass eine UAC-Eingabeaufforderung angezeigt wird.
- Automatisches Ablehnen aller Rechteerweiterungsanforderungen für Standardbenutzer
Wichtig
Um die Benutzerkontensteuerung vollständig zu deaktivieren, müssen Sie die Richtlinie Benutzerkontensteuerung: Alle Administratoren im Admin Genehmigungsmodus ausführen deaktivieren.
Warnung
Einige Universelle Windows-Plattform-Apps funktionieren möglicherweise nicht, wenn UAC deaktiviert ist.
Virtualisierung
Da Systemadministratoren in Unternehmensumgebungen versuchen, Systeme zu schützen, sind viele Branchenanwendungen so konzipiert, dass sie nur ein Standardbenutzerzugriffstoken verwenden. Daher müssen Sie die meisten Apps nicht ersetzen, wenn die UAC aktiviert ist.
Windows enthält Technologie zur Datei- und Registrierungsvirtualisierung für Apps, die nicht mit UAC kompatibel sind und für die eine ordnungsgemäße Ausführung des Zugriffstokens eines Administrators erforderlich ist. Wenn eine administrative App, die nicht mit der UAC kompatibel ist, versucht, in einen geschützten Ordner wie z. B . Programme zu schreiben, gibt UAC der App eine eigene virtualisierte Ansicht der Ressource, die sie ändern möchte. Die virtualisierte Kopie wird im Profil des Benutzers verwaltet. Diese Strategie erstellt eine separate Kopie der virtualisierten Datei für jeden Benutzer, der die nicht konforme App ausführt.
Die meisten App-Aufgaben funktionieren mithilfe von Virtualisierungsfeatures ordnungsgemäß. Obwohl die Virtualisierung die Ausführung der meisten Anwendungen ermöglicht, handelt es sich um eine kurzfristige Lösung und keine langfristige Lösung. App-Entwickler sollten ihre Apps so schnell wie möglich so ändern, dass sie konform sind, anstatt sich auf die Datei-, Ordner- und Registrierungsvirtualisierung zu verlassen.
Virtualisierung ist in den folgenden Szenarien keine Option:
- Die Virtualisierung gilt nicht für Apps mit erhöhten Rechten, die mit einem vollständigen Administratorzugriffstoken ausgeführt werden.
- Virtualisierung unterstützt nur 32-Bit-Apps. Nicht relevante 64-Bit-Apps erhalten eine Meldung vom Typ "Zugriff verweigert", wenn sie versuchen, ein Handle (einen eindeutigen Bezeichner) für ein Windows-Objekt zu erhalten. Native Windows 64-Bit-Apps müssen mit UAC kompatibel sein und Daten an die richtigen Speicherorte schreiben.
- Die Virtualisierung ist deaktiviert, wenn die App ein App-Manifest mit einem angeforderten Ausführungsebenen-Attribut enthält.
Anforderungsausführungsebenen
Ein App-Manifest ist eine XML-Datei, die die freigegebenen und privaten parallelen Assemblys beschreibt und identifiziert, an die eine App zur Laufzeit gebunden werden soll. Das App-Manifest enthält Einträge für UAC-App-Kompatibilitätszwecke. Administrative Apps, die einen Eintrag im App-Manifest enthalten, fordern den Benutzer zur Berechtigung auf, auf das Zugriffstoken des Benutzers zuzugreifen. Obwohl ihnen ein Eintrag im App-Manifest fehlt, können die meisten administrativen Apps ohne Änderungen mithilfe von App-Kompatibilitätskorrekturen ausgeführt werden. App-Kompatibilitätskorrekturen sind Datenbankeinträge, mit denen Anwendungen, die nicht UAC-kompatibel sind, ordnungsgemäß funktionieren.
Für alle UAC-kompatiblen Apps sollte dem Anwendungsmanifest eine angeforderte Ausführungsebene hinzugefügt werden. Wenn die Anwendung Administratorzugriff auf das System erfordert, stellt das Markieren der App mit der angeforderten Ausführungsebene require administrator sicher, dass das System dieses Programm als administrative App identifiziert und die erforderlichen Schritte zur Erhöhung ausführt. Angeforderte Ausführungsebenen geben die berechtigungen an, die für eine App erforderlich sind.
Erkennungstechnologie für Installationsprogramme
Installationsprogramme sind Apps, die zum Bereitstellen von Software entwickelt wurden. Die meisten Installationsprogramme schreiben in Systemverzeichnisse und Registrierungsschlüssel. Diese geschützten Systemspeicherorte können in der Regel nur von einem Administrator in der Installationsprogrammerkennungstechnologie geschrieben werden. Dies bedeutet, dass Standardbenutzer nicht über ausreichendEn Zugriff zum Installieren von Programmen verfügen. Windows erkennt Installationsprogramme heuristisch und fordert Administratoranmeldeinformationen oder genehmigungen vom Administratorbenutzer an, um mit Zugriffsberechtigungen auszuführen. Windows erkennt auch heuristisch Updates und Programme, die Anwendungen deinstallieren. Eines der Entwurfsziele von UAC besteht darin, zu verhindern, dass Installationen ohne Wissen und Zustimmung des Benutzers ausgeführt werden, da Installationsprogramme in geschützte Bereiche des Dateisystems und der Registrierung schreiben.
Die Installationsprogrammerkennung gilt nur für:
- Ausführbare 32-Bit-Dateien
- Anwendungen ohne angefordertes Ausführungsebenen-Attribut
- Interaktive Prozesse, die als Standardbenutzer mit aktivierter UAC ausgeführt werden
Bevor ein 32-Bit-Prozess erstellt wird, werden die folgenden Attribute überprüft, um zu bestimmen, ob es sich um ein Installationsprogramm handelt:
- Der Dateiname enthält Schlüsselwörter wie "install", "setup" oder "update".
- Versionsverwaltungsressourcenfelder enthalten die folgenden Schlüsselwörter: Anbieter, Firmenname, Produktname, Dateibeschreibung, Ursprünglicher Dateiname, interner Name und Exportname.
- Schlüsselwörter im parallelen Manifest werden in die ausführbare Datei eingebettet.
- Schlüsselwörter in bestimmten StringTable-Einträgen sind in der ausführbaren Datei verknüpft.
- Schlüsselattribute in den Ressourcenskriptdaten sind in der ausführbaren Datei verknüpft.
- In der ausführbaren Datei sind Bestimmte Bytesequenzen vorhanden.
Hinweis
Die Schlüsselwörter und Bytesequenzen wurden von allgemeinen Merkmalen abgeleitet, die von verschiedenen Installationsprogrammtechnologien beobachtet wurden.
Hinweis
Die Richtlinie "Benutzerkontensteuerung: Anwendungsinstallationen erkennen" und "Aufforderung zur Erhöhung " muss aktiviert sein, damit Installationsprogramme erkannt werden können. Weitere Informationen finden Sie unter Einstellungsliste für die Benutzerkontensteuerung.
Nächste Schritte
Erfahren Sie mehr über Einstellungen und Konfiguration der Benutzerkontensteuerung.