Eingeschränkte Token
Ein eingeschränktes Token ist ein primäresZugriffstoken oder Identitätswechsel-Zugriffstoken , das von der CreateRestrictedToken-Funktion geändert wurde. Ein Prozess oder ein Identitätswechselthread, der im Sicherheitskontext eines eingeschränkten Tokens ausgeführt wird, ist in seiner Fähigkeit eingeschränkt, auf sicherungsfähige Objekte zuzugreifen oder privilegierte Vorgänge auszuführen. Die CreateRestrictedToken-Funktion kann ein Token auf folgende Weise einschränken:
- Entfernen Sie Berechtigungen aus dem Token.
- Wenden Sie das Attribut deny-only auf SIDs im Token an, damit sie nicht für den Zugriff auf gesicherte Objekte verwendet werden können. Weitere Informationen zum Attribut deny-only finden Sie unter SID-Attribute in einem Zugriffstoken.
- Geben Sie eine Liste einschränkender SIDs an, die den Zugriff auf sicherungsfähige Objekte einschränken können.
Das System verwendet die Liste der einschränkenden SIDs, wenn es den Zugriff des Tokens auf ein sicherungsfähiges Objekt überprüft. Wenn ein eingeschränkter Prozess oder Thread versucht, auf ein sicherungsfähiges Objekt zuzugreifen, führt das System zwei Zugriffsprüfungen durch: eine mit den aktivierten SIDs des Tokens und eine andere mit der Liste der einschränkenden SIDs. Der Zugriff wird nur gewährt, wenn beide Zugriffsprüfungen die angeforderten Zugriffsrechte zulassen. Weitere Informationen zu Zugriffsprüfungen finden Sie unter Steuern des Zugriffs auf ein Objekt durch DACLs.
Sie können ein eingeschränktes primäres Token in einem Aufruf der CreateProcessAsUser-Funktion verwenden. In der Regel muss der Prozess, der CreateProcessAsUser aufruft, über die berechtigung SE_ASSIGNPRIMARYTOKEN_NAME verfügen, die in der Regel nur vom Systemcode oder von Diensten, die im LocalSystem-Konto ausgeführt werden, vorhanden ist. Wenn der CreateProcessAsUser-Aufruf jedoch eine eingeschränkte Version des primären Tokens des Aufrufers angibt, ist diese Berechtigung nicht erforderlich. Dies ermöglicht es gewöhnlichen Anwendungen, eingeschränkte Prozesse zu erstellen.
Sie können auch ein eingeschränktes primäres Token oder Identitätswechseltoken in der Funktion ImpersonateLoggedOnUser verwenden.
Rufen Sie die IsTokenRestricted-Funktion auf, um zu bestimmen, ob ein Token über eine Liste einschränkender SIDs verfügt.
Hinweis
Anwendungen, die eingeschränkte Token verwenden, sollten die eingeschränkte Anwendung auf anderen Desktops als dem Standarddesktop ausführen. Dies ist erforderlich, um einen Angriff einer eingeschränkten Anwendung mithilfe von SendMessage oder PostMessage auf uneingeschränkte Anwendungen auf dem Standarddesktop zu verhindern. Wechseln Sie bei Bedarf für Ihre Anwendung zwischen Desktops.