UAC ist eine Mehrkomponentenarchitektur, die von mehreren Binärdateien implementiert wird
Benutzerkontensteuerung ( User Account Control, UAC) bezieht sich auf mehrere Komponenten, die zusammen die UAC-Architektur bilden . Ich werde einige von ihnen zusammen mit den für ihre Implementierung verantwortlichen Binärdateien kurz untersuchen. Zunächst erhalten Sie jedoch einen Überblick über die UAC-Architektur aus dem Microsoft Docs-Artikel Funktionsweise der Benutzerkontensteuerung :
Local Security Authority (LSA) / Gefiltertes Token
Konzeptionell wird die "erste" Komponente der Benutzerkontensteuerung vom Subsystem Local Security Authority implementiert, das die Erstellung des Zugriffstokens eines Benutzers während des Anmeldevorgangs verwaltet. Ab Windows Vista wurde der Anmeldevorgang so geändert, dass das LSA-Subsystem beim Anmelden eines Administrators mit aktivierter Benutzerkontensteuerung zwei separate Zugriffstoken für den Benutzer generiert:
- Einer mit vollem Administratorzugriff und
- Ein zweites "gefiltertes Token" mit Standardbenutzerzugriff
Wie hier gezeigt, unterscheidet sich dieser Prozess von dem einer Standardbenutzeranmeldung:
Der LSA-Subsystemdienst ist in diesem lsass.exe
Prozess aktiv.
Virtualisierung
Die in Windows 7 hinzugefügte Datei- und Registrierungsvirtualisierung ist eine Komponente der Benutzerkontensteuerung, die ältere Anwendungen ausblendet , die nicht mit der Benutzerkontensteuerung kompatibel sind, jedoch nur Administratorrechte benötigen, um auf bestimmte geschützte Bereiche des Dateisystems oder der Registrierung zuzugreifen:
Wenn eine nicht UAC-konforme Verwaltungsanwendung versucht, in ein geschütztes Verzeichnis wie z. B. Programme zu schreiben, gibt UAC der Anwendung eine eigene virtualisierte Ansicht der Ressource, die geändert werden soll. Die virtualisierte Kopie wird im Benutzerprofil gespeichert.
Quelle
Durch die Umleitung dieser Zugriffsversuche in Bereiche, für die keine Administratorrechte erforderlich sind, funktionieren diese Anwendungen weiterhin, obwohl die Benutzerkontensteuerung auf dem System aktiviert ist.
Diese Virtualisierung ist im Kernel implementiert .
Anwendungsinformationsdienst
Der Application Information Service (AIS) liest das Manifest einer Anwendung und ermittelt zusammen mit der UAC-Einwilligungsaufforderung, ob eine Anwendung mit erhöhten Rechten ausgeführt werden darf (dh im Kontext des nicht gefilterten Zugriffstokens auf Administratorebene, das bei der Anmeldung erstellt wurde). . Dieser Blog-Beitrag bietet einen guten Überblick über seine Rolle im UAC-Prozess:
AIS Erleichtert die Ausführung interaktiver Anwendungen mit zusätzlichen Administratorrechten. Wenn dieser Dienst beendet wird, können Benutzer keine Anwendungen mit den zusätzlichen Administratorrechten starten, die sie möglicherweise benötigen. Die Shell prüft dies beim Starten einer Anwendung. AIS liest das Manifest und den XML-Abschnitt 'trustInfo', in dem die Anforderungen für die angeforderte Ausführungsebene festgelegt sind.
Hier ist eine Grafik, die dem obigen Zitat folgt und die Rolle von AIS im UAC Consent Prompt-Prozess detailliert beschreibt:
Das AIS ist in der DLL implementiert,appinfo.dll
die von ausgeführt wird svchost.exe
.
Zustimmungsaufforderung
Die Antwort von @ BenN erklärt die Schlüsselrolle des (in) berühmten UAC Consent Prompt. Dies wird in implementiert consent.exe
und ist dafür verantwortlich, die Zustimmung des Benutzers oder die Anmeldeinformationen eines Administrators einzuholen, um das Starten einer Anwendung zu ermöglichen, die Administratorrechte erfordert.
Sicherer Desktop
Auf dem sicheren Desktop wird standardmäßig die UAC-Einwilligungsaufforderung angezeigt. Im UACBlog von Microsoft erfahren wir, was an diesem Desktop im Vergleich zum Benutzerdesktop einzigartig ist:
Sie interagieren am häufigsten mit [dem sicheren Desktop], wenn Sie sich bei Windows anmelden, da die Benutzeroberfläche für die Anmeldung auf dem sicheren Desktop ausgeführt wird. Der Hauptunterschied zwischen Secure Desktop und User Desktop besteht darin, dass hier nur vertrauenswürdige Prozesse ausgeführt werden dürfen, die als SYSTEM ausgeführt werden (dh keine, die als Berechtigungsstufe des Benutzers ausgeführt werden), und dass der Pfad zum Secure Desktop vom User Desktop aus ebenfalls als vertrauenswürdig eingestuft werden muss die gesamte Kette.
Die Idee, die dahinter steckt, wenn Sie den Benutzer auffordern, eine Anwendung mit erhöhten Berechtigungen auszuführen, ist, dass Malware den Secure Desktop nur dann nachahmen kann, wenn sie bereits über Administratorrechte verfügt. In diesem Fall ist es umstritten, einen Benutzer zur Gewährung dieser Rechte zu verleiten.
Fazit: UAC ist nicht nur eine Binärdatei. Es ist ein Gewebe aus miteinander verwobenen Subsystemen.
Es gibt noch weitere Aspekte der UAC-Architektur, die hier nicht behandelt werden. Dies sollte jedoch genügend Beweise für die folgenden Tatsachen liefern:
- UAC ist nicht in einer einzelnen Binärdatei implementiert.
- Wenn diese Option aktiviert ist, ist sie ein wesentlicher Bestandteil der Ausführung von Verwaltungsaufgaben.
Seit seiner Einführung in Windows Vista ist es tief in wichtige Teile des Betriebssystems integriert, sodass es unmöglich ist, den gesamten für die Benutzerkontensteuerung verantwortlichen Code zu löschen, ohne andere Dinge zu beschädigen (z. B. Ihre Anmeldefähigkeit!).
Ich denke, es ist sicher zu sagen, dass Sie Windows beschädigen würden, wenn Sie die Benutzerkontensteuerung "gewaltsam löschen" würden.