Was ist der Windows-Integritätsmechanismus?

Der Windows-Integritätsmechanismus ist eine Kernkomponente der Windows-Sicherheitsarchitektur, die die Zugriffsberechtigungen von Anwendungen einschränkt, die unter demselben Benutzerkonto ausgeführt werden und weniger vertrauenswürdig sind.

Der Windows Vista-Integritätsmechanismus® erweitert die Sicherheitsarchitektur des Betriebssystems, indem anwendungsprozessen und sicherungsfähigen Objekten eine Integritätsebene zugewiesen wird.

Die Integritätsebene ist eine Darstellung der Vertrauenswürdigkeit von ausgeführten Anwendungsprozessen und -objekten, z. B. von der Anwendung erstellten Dateien. Der Integritätsmechanismus bietet Ressourcen-Managern wie dem Dateisystem die Möglichkeit, vordefinierte Richtlinien zu verwenden, die Prozesse mit geringerer Integrität oder geringerer Vertrauenswürdigkeit daran hindern, Objekte mit höherer Integrität zu lesen oder zu ändern. Der Integritätsmechanismus ermöglicht es dem Windows-Sicherheitsmodell, neue Zugriffssteuerungseinschränkungen zu erzwingen, die nicht definiert werden können, indem Benutzer- oder Gruppenberechtigungen in Zugriffssteuerungslisten (Access Control Lists, ACLs) gewährt werden.

Die Windows-Sicherheitsarchitektur basiert hauptsächlich auf der Gewährung von Zugriffsrechten (Lese-, Schreib- und Ausführungsberechtigungen) und Berechtigungen für Benutzer oder Gruppen, die intern durch Sicherheits-IDs (SIDs) dargestellt werden. Wenn sich ein Benutzer bei Windows anmeldet, legt das Sicherheitssubsystem die SID- und Gruppenmitgliedschafts-SIDs des Benutzers in einem Sicherheitszugriffstoken fest. Das Sicherheitszugriffstoken wird jedem Anwendungsprozess zugewiesen, der von diesem Benutzer ausgeführt wird. Jedes Mal, wenn der Anwendungsprozess ein Objekt öffnet, z. B. eine Datei oder einen Registrierungsschlüssel, ruft der Ressourcen-Manager, der das Objekt verwaltet, das Sicherheitssubsystem auf, um eine Zugriffsentscheidung zu treffen. Die Zugriffsüberprüfung bestimmt die zulässigen Zugriffsberechtigungen für diesen Benutzer. Das Sicherheitssubsystem (auch als Sicherheitsverweismonitor bezeichnet) vergleicht die Benutzer- und Gruppen-SIDs im Zugriffstoken mit den Zugriffsrechten in einem Sicherheitsdeskriptor, der dem -Objekt zugeordnet ist. Wenn der Benutzer-SID Vollzugriffsrechte in der ACL des Objekts gewährt werden, hat der von dem Benutzer ausgeführte Anwendungsprozess Vollzugriff auf das Objekt. Weitere Informationen zur Windows-Sicherheitsarchitektur finden Sie unter Ressourcen des Windows-Integritätsmechanismus.

Erweitern der Windows-Sicherheitsarchitektur

Der Windows-Integritätsmechanismus erweitert die Sicherheitsarchitektur, indem er einen neuen ACE-Typ (Access Control Entry) definiert, der eine Integritätsebene im Sicherheitsdeskriptor eines Objekts darstellt. Der neue ACE stellt die Objektintegritätsebene dar. Dem Sicherheitszugriffstoken wird auch eine Integritätsebene zugewiesen, wenn das Zugriffstoken initialisiert wird. Die Integritätsebene im Zugriffstoken stellt eine Integritätsebene des Antragstellers dar. Die Integritätsebene im Zugriffstoken wird mit der Integritätsebene im Sicherheitsdeskriptor verglichen, wenn der Sicherheitsverweismonitor eine Zugriffsüberprüfung durchführt. Windows Vista verwendet die AccessCheck-Funktion , um zu bestimmen, welche Zugriffsrechte für ein sicherungsfähiges Objekt zulässig sind. Windows schränkt die zulässigen Zugriffsrechte ein, je nachdem, ob die Integritätsebene des Antragstellers höher oder niedriger als das Objekt ist, und abhängig von den Integritätsrichtlinienflags im neuen Zugriffssteuerungs-ACE. Das Sicherheitssubsystem implementiert die Integritätsebene als obligatorische Bezeichnung, um sie vom von ACLs bereitgestellten zugriff unter Benutzersteuerung zu unterscheiden.

Entwurfsziele des Windows-Integritätsmechanismus

Der Windows-Integritätsmechanismus ermöglicht eine Reihe wichtiger Szenarien in Windows Vista. Um die Anforderungen zu erfüllen, musste der Entwurf des Windows-Integritätsmechanismus die folgenden Ziele erfüllen.

  • Integritätsebenen müssen während der Erstellung von Zugriffstoken automatisch jedem Sicherheitszugriffstoken zugewiesen werden, sodass jeder Prozess und Thread über eine effektive Integritätsebene für die Zugriffssteuerung verfügt.
  • Das Sicherheitssubsystem weist bestimmten Objekttypen automatisch obligatorische Bezeichnungen zu.
  • Das System muss so wenige Integritätsebenen wie möglich verwenden, um die grundlegende Architektur einfach zu verstehen und zu verwenden.
  • Die Integritätsrichtlinie muss flexibel sein, um die Zugriffsanforderungen verschiedener Objektressourcen-Manager zu erfüllen und zukünftige Erweiterbarkeit zu ermöglichen.
  • Der Integritätsmechanismus muss in die vorhandene Sicherheitsarchitektur integriert werden, um die Auswirkungen auf die große Legacy von System- und Anwendungscode zu minimieren, die von der Windows-Sicherheit abhängt.
  • Administratoren oder Benutzer müssen keine Integritätsstufen konfigurieren, damit der Erzwingungsmechanismus ordnungsgemäß funktioniert.

Der Windows-Integritätsmechanismus erfüllt diese Ziele, indem er einen neuen obligatorischen Ace-Bezeichnungstyp definiert, um Objekten eine Integritätsebene zuzuweisen. Details zu dieser Struktur werden in einem späteren Abschnitt dieses Artikels beschrieben. Die obligatorische Bezeichnung ACE definiert jedoch eine Objektintegritätsstufe ohne Änderungen an der vorhandenen Datenstrukturdefinition des Sicherheitsdeskriptors oder an der häufig verwendeten Zugriffssteuerungsliste.

Der Windows-Integritätsmechanismus basiert auf einer obligatorischen Bezeichnung, die das Betriebssystem zuweist, um ihn vom zugriffsbasierten Ermessen unter Benutzersteuerung zu unterscheiden. Die freie Zugriffssteuerung ermöglicht es dem Objektbesitzer oder der Gruppe, der die Berechtigung erteilt wurde, die Zugriffsberechtigungen des Objekts zu ändern. Windows stellt eine grafische Benutzeroberfläche (UI) für fortgeschrittene Benutzer bereit, um die Sicherheitsberechtigungen (dargestellt durch die diskretionäre ACL) für Objekte wie Dateien und Registrierungsschlüssel anzuzeigen und zu ändern. Obligatorische Bezeichnungen werden immer bestimmten Objekten zugewiesen, und es gibt Steuerelemente, wie der Objektersteller die Bezeichnung bei der Objekterstellung festlegen oder initialisieren kann. Für Windows Vista wurde keine grafische Benutzeroberfläche zum Verwalten von Integritätsbezeichnungen implementiert, da die Bezeichnungsverwaltung für relativ wenige Bereiche verfügbar oder erforderlich ist.

Warum gibt es einen Windows-Integritätsmechanismus?

Der Zweck des Windows-Integritätsmechanismus besteht darin, die Zugriffsberechtigungen von Anwendungen einzuschränken, die unter demselben Benutzerkonto ausgeführt werden und weniger vertrauenswürdig sind. Unbekannter, potenziell schädlicher Code, der aus dem Internet heruntergeladen wird, muss daran gehindert werden, den Systemzustand zu ändern, Benutzerdatendateien zu ändern oder das Verhalten anderer Anwendungsprogramme zu manipulieren. Das Windows-Sicherheitssubsystem weist Code, der auf verschiedenen Berechtigungsstufen für denselben Benutzer ausgeführt wird, eine einfache Hierarchie von Integritätsebenen zu. Frühere Versionen von Windows können die Sicherheitszugriffstokenberechtigungen eines Anwendungsprozesses anpassen, obwohl diese Anpassung nicht üblich ist. Vor Windows Vista wurden die meisten Anwendungen mit einem Administratorkonto mit vollständigen Administratorrechten ausgeführt. Windows Vista integriert das Konzept der geringsten Rechte, indem es eine breitere Verwendung von Standardbenutzerkonten ermöglicht. Die Benutzerkontensteuerung (User Account Control, UAC) im Admin Genehmigungsmodus für Administratorkonten bedeutet, dass mehrere Anwendungen auf demselben Desktop mit unterschiedlichen Berechtigungsstufen ausgeführt werden. Der internetgeschützte Modus Explorer verwendet beispielsweise den Integritätsmechanismus, um den Webbrowser in einem Prozess mit eingeschränkten Zugriffsberechtigungen auszuführen.

Das primäre Sicherheitsproblem, das der Windows-Integritätsmechanismus behebt, ist die unbefugte Manipulation von Benutzerdaten und indirekt mit dem Systemzustand. Ein sekundäres Problem, bei dem der Integritätsmechanismus hilft, ist die Offenlegung von Informationen. Die Offenlegung von Informationen wird jedoch nur in Bezug auf den Zugriff auf den Prozessadressraum verhindert. Der Informationsaustausch zwischen Windows-Anwendungen ist sehr üblich, und ein bequemer Informationsaustausch zwischen Anwendungen ist für die Benutzererfahrung von grundlegender Bedeutung. Ein Beispiel hierfür ist Kopieren und Einfügen. Starre Sicherheitsgrenzen bei der Informationsaustausch zwischen Anwendungen, die unter demselben Benutzerkonto ausgeführt werden, können die Anwendungskompatibilität und Die Benutzerfreundlichkeit erheblich beeinträchtigen.

Nicht vertrauenswürdiger Code kann versuchen, Benutzerdaten auf viele Arten zu ändern. Einige Angriffe können versuchen, Daten direkt zu bearbeiten, indem Dateien erstellt, geändert oder gelöscht werden. Andere Angriffe zielen auf einen anderen Prozess ab, der mit höheren Berechtigungen ausgeführt wird, mit dem Ziel, beliebigen Code in einer anderen Anwendung auszuführen, die über die erforderliche Zugriffsebene verfügt. Es gibt viele Arten von prozessübergreifenden Angriffen. Aufgrund des breiten Spektrums an Anwendungsentwurf und -implementierung kann der Integritätsmechanismus keine vollständige Isolationsbarriere bieten. Der Windows-Integritätsmechanismus ist nicht als Anwendungssandbox vorgesehen. Es kann jedoch eines der Sicherheitstools sein, mit denen Anwendungsentwickler das Verhalten weniger vertrauenswürdiger Anwendungen einschränken.

Windows Vista-Integritätsmechanismus und frühere Integritätsmodelle

Einige Merkmale des Windows-Integritätsmechanismus ähneln früheren Integritätsmodellen für die Computersicherheit. Der Windows-Integritätsmechanismus ist jedoch in erster Linie darauf ausgelegt, Manipulationen oder Rechteerweiterungen in der stark kollaborativen Windows-Anwendungsumgebung zu beheben. Frühere Integritätsmodelle befassten sich eher mit der Aufrechterhaltung der Integrität vertrauenswürdiger Prozesse, indem Richtlinien erzwungen wurden, die das Lesen nicht vertrauenswürdiger Daten verhindern.

Das Biba-Sicherheitsmodell basiert auf einer Hierarchie von Integritätsbezeichnungen und den Zugriffsrichtlinien, die zulässig sind, wenn eine integritätsbezogene Ebene die Objektintegritätsebene dominiert. Der Windows-Integritätsmechanismus ähnelt dem Biba-Modell auf folgende Weise:

  • Es verwendet eine Hierarchie von Integritätsbezeichnungen (Integritätsbezeichnungen sind nicht identisch mit Sicherheitsbezeichnungen im Bell-LePadula-Modell).
  • Das System verwendet eine Reihe von geordneten Subjekten, Objekten und Integritätsebenen.
  • Die Integritätsebene des Antragstellers dominiert (ist größer oder gleich) der Integritätsebene des Objekts.
  • Integritätsrichtlinien verhindern den Zugriff auf Objekte, werden jedoch nicht in erster Linie verwendet, um den Informationsfluss einzuschränken.
  • Das Verhindern der Offenlegung von Informationen ist kein Ziel des Integritätsmechanismus in Windows Vista.

Die Windows-Integritätsebenen sind geordnet, sodass ein niedrigerer Wert auf weniger Vertrauenswürdigkeit und ein höherer Wert auf eine höhere Vertrauenswürdigkeit hinweist. Ein Antragsteller auf niedrigerer Ebene kann ein Objekt auf höherer Ebene nicht ändern. Die Integritätsebene des Antragstellers ist nicht dynamisch. Beispielsweise ändert sich die Integritätsebene eines Antragstellers nicht in einen niedrigeren Wert, wenn der Prozess Daten aus einem Objekt mit niedriger Integrität liest. Das strikte Integritätsmodell in Biba ermöglicht es keinem Prozess mit höherer Integrität, Daten mit niedrigerer Integrität zu lesen. Dies wird manchmal als Integritätsrichtlinie ohne Lesezugriff bezeichnet. Die Windows-Integritätsrichtlinien, die unten ausführlicher beschrieben werden, verhindern oder verhindern nicht, dass Personen mit höherer Integrität Objekte mit niedrigerEr Integrität lesen oder ausführen. Es gibt viele Beispiele für Angriffe, bei denen das Lesen falsch formatierter, nicht vertrauenswürdiger Eingabedaten zu einem Exploit eines Sicherheitsrisikos in einer Anwendung und einer beliebigen Codeausführung führt. Der Windows-Integritätsmechanismus verhindert oder verhindert das Lesen von Daten auf keiner Ebene. Windows erzwingt keine strenge Integritätsrichtlinie, die im Biba-Modell beschrieben wird. Beim Integritätsentwurf wird davon ausgegangen, dass Prozesse, die für die Verarbeitung nicht vertrauenswürdiger Daten aus einer unbekannten oder nicht vertrauenswürdigen Quelle konzipiert sind, auf einer niedrigeren Integritätsebene ausgeführt werden oder dass nicht vertrauenswürdige Daten vor der Verwendung überprüft werden. Der Windows-Integritätsmechanismus erzwingt diese Einschränkung jedoch nicht.

Der Windows-Integritätsmechanismus implementiert keine dynamische Richtlinie oder "Low-Water-Mark". Eine dynamische Richtlinie ändert die Integritätsebene des Antragstellers, wenn der Betreff Objekte mit niedrigerer Integrität öffnet. Ein Problem mit der dynamischen Integrität ist, wenn ein Prozess mit hoher Integrität offene Handles für viele Objekte erhält, die auf hoher Integrität basieren, und dann plötzlich zu einem Thema mit niedriger Integrität wird, nachdem er eine bestimmte Datei mit niedriger Integrität geöffnet hat. Das Erzwingen aller geöffneten Handles für Objekte mit höherer Integrität, die geschlossen werden, wenn sich die Integritätsstufe ändert, wirkt sich erheblich auf das Verhalten der Anwendung aus. Der dynamische Prozess mit niedrigerer Integrität selbst wird zum Zielobjekt anderer Prozesse auf der niedrigeren Integritätsebene. Solche Prozesse können jetzt möglicherweise das Verhalten der Anwendung (auf derselben niedrigeren Ebene) ändern, die über offene Handles für Objekte mit höherer Integrität verfügt.

Der Windows-Integritätsmechanismus ist nicht für den Integritätsschutz von Daten konzipiert, um militärische oder kommerzielle Anforderungen zu unterstützen, wie im Clark-Wilson-Modell beschrieben. Die Windows-Implementierung von Integritätssteuerelementen baut nicht auf den Konzepten eingeschränkter oder nicht eingeschränkter Datenelemente und zertifizierter Transformationsverfahren auf. Diese Konzepte sind jedoch nützlich für Anwendungsdesigner, wenn sie den Informationsfluss von nicht vertrauenswürdigen Quellen in Prozesse mit höherer Integrität betrachten.

Obwohl der Windows-Integritätsmechanismus den früheren Integritätsmodellen in der Computersicherheit ähnelt, versucht Windows Vista nicht, eines der Modelle zu implementieren. Stattdessen schränkt der Windows-Integritätsmechanismus Zugriffsberechtigungen ein, die für Prozesse verfügbar sind, die mit unterschiedlichen Berechtigungs- oder Vertrauensstufen ausgeführt werden. Weitere Informationen zu früheren Arbeiten an Integritätsmodellen von Biba und Clark-Wilson und dynamischen Integritätsrichtlinien finden Sie unter Windows-Integritätsmechanismusressourcen.