Prinzip der geringsten Privilegien

In Informationssicherheit, Informatik und anderen Bereichen die Prinzip der geringsten Privilegien (Polp), auch bekannt als die Prinzip des minimalen Privilegs oder der Prinzip der geringsten Autorität, erfordert, dass in einer bestimmten Abstraktionsschicht einer Computerumgebung jedes Modul (wie ein Prozess, ein Benutzer oder ein Programm, abhängig vom Thema) nur auf die Informationen und Ressourcen zugreifen können, die für seinen legitimen Zweck erforderlich sind .[1]

Einzelheiten

Das Prinzip bedeutet, a zu geben Benutzerkonto oder verarbeiten nur die Berechtigungen, die für die Ausführung seiner beabsichtigten Funktion unerlässlich sind. Beispielsweise muss ein Benutzerkonto für den alleinigen Zweck des Erstellens von Backups keine Software installieren Alle anderen Berechtigungen wie die Installation neuer Software sind blockiert. Das Prinzip gilt auch für einen PC -Computerbenutzer, der normalerweise in einem normalen Benutzerkonto arbeitet und ein privilegiertes, passwortgeschütztes Konto nur dann öffnet, wenn die Situation es absolut verlangt.

Wenn angewendet auf Benutzer, die Begriffe am wenigsten Benutzerzugriff oder Benutzerkonto am wenigsten privilegiert (LUA) werden ebenfalls verwendet, was sich auf das Konzept bezieht, das alle Benutzerkonten sollte mit so wenig laufen Privilegien wie möglich und auch starten Anwendungen mit so wenigen Privilegien wie möglich.

Das Prinzip der geringsten Privilegien wird allgemein als wichtige Entwurfsbeachtung bei der Verbesserung des Schutzes von Daten und Funktionen vor Fehlern anerkannt (FehlerFehlertoleranz) und böswilliges Verhalten (Computersicherheit).

Zu den Vorteilen des Prinzips gehören:

  • Bessere Systemstabilität. Wenn der Code im Umfang der Änderungen begrenzt ist, die es an ein System vornehmen kann, ist es einfacher, seine möglichen Aktionen und Interaktionen mit anderen Anwendungen zu testen. In der Praxis werden beispielsweise Anwendungen, die mit eingeschränkten Rechten ausgeführt werden, keinen Zugriff auf Durchführung von Vorgängen haben, die einen Computer zum Absturz bringen oder andere Anwendungen beeinflussen können, die auf demselben System ausgeführt werden.
  • Bessere Systemsicherheit. Wenn der Code in den von ihm ausführenden systemweiten Aktionen begrenzt ist, können Schwachstellen in einer Anwendung nicht verwendet werden, um den Rest der Maschine auszunutzen. Beispielsweise gibt Microsoft fest, dass „im Standardbenutzermodus den Kunden einen erhöhten Schutz vor versehentlichen Schäden auf Systemebene aufweisen“, die durch Schäden auf Systemebene verursacht werden. "zerschmetterte Angriffe" und Malware, wie zum Beispiel Wurzelkits, Spywareund nicht nachweisbar Viren”.[2]
  • Einfacher Einsatz. Je weniger Privilegien für eine Anwendung erforderlich sind, desto einfacher ist es, in einer größeren Umgebung bereitzustellen. Dies ergibt sich in der Regel aus den ersten beiden Vorteilen, Anwendungen, die Gerätefahrer installieren oder erhöhte Sicherheitsberechtigungen erfordern, in der Regel zusätzliche Schritte in ihrer Bereitstellung. Zum Beispiel unter Windows eine Lösung ohne Nr. Gerätetreiber Kann direkt ohne Installation ausgeführt werden, während Gerätetreiber separat mit dem Windows Installer -Dienst installiert werden müssen, um die erhöhten Berechtigungen der Fahrer zu gewähren.[3]

In der Praxis gibt es mehrere konkurrierende Definitionen von wahrem Privileg. Wie Programmkomplexität Erhöht sich schnell, ebenso wie die Anzahl potenzieller Probleme und macht einen prädiktiven Ansatz unpraktisch. Beispiele sind die Werte von Variablen, die sie bearbeiten, Adressen benötigen, oder die genaue Zeit, die solche Dinge erforderlich sind. Objektkapazitätssysteme ermöglichen zum Beispiel die Verschiebung eines Einweg-Berechtigungen bis zu dem Zeitpunkt, an dem es verwendet wird. Derzeit besteht der nächste praktische Ansatz darin, Privilegien zu beseitigen, die manuell als unnötig bewertet werden können. Der resultierende Satz von Berechtigungen übersteigt in der Regel die tatsächlichen Mindestberechtigungen für den Prozess.

Eine weitere Einschränkung ist die Granularität der Kontrolle, die die Betriebsumgebung über Privilegien für einen individuellen Prozess verfügt.[4] In der Praxis ist es selten möglich, den Zugriff eines Prozesses auf Speicher, Verarbeitungszeit, E/A -Geräteadressen oder -Modi mit der Genauigkeit zu steuern, die erforderlich ist, um nur den genauen Satz von Berechtigungen zu erleichtern, die ein Prozess benötigt.

Die ursprüngliche Formulierung stammt von Jerome Salzer:[5]

Jedes Programm und jeder privilegierte Benutzer des Systems sollte mit dem geringsten Berechtigungsbetrag arbeiten, das für die Erledigung des Auftrags erforderlich ist.

Peter J. DenningStellen Sie in seinem Artikel "Fehlertolerant Operating Systems" eine breitere Perspektive unter vier grundlegenden Prinzipien der Fehlertoleranz fest.

Dynamische Aufgaben von Privilegien wurden früher von erörtert von Roger Needham 1972.[6][7]

Historisch gesehen ist die älteste Instanz des geringsten Privilegs wahrscheinlich der Quellcode von login.c, was mit der Ausführung mit beginnt Superbenutzer Berechtigungen und - sobald sie nicht mehr notwendig sind - sie übertreffen durch setUid () mit einem Argument ungleich Null, wie in der gezeigt Version 6 Unix Quellcode.

Implementierung

Das Kernel Läuft immer mit maximalen Privilegien, da es das ist Betriebssystem Kern und hat Hardwarezugriff. Eine der Hauptaufgaben eines Betriebssystems, insbesondere eines Multi-User-Betriebssystems, ist die Verwaltung der Verfügbarkeit der Hardware und Anfragen, um vom Ausführen auf darauf zuzugreifen Prozesse. Wenn der Kernel abstürzt, die Mechanismen, mit denen er aufrechterhalten Zustand Auch versagen. Selbst wenn es eine Möglichkeit für die gibt Zentralprozessor sich ohne a erholen hart zurückgesetztDie Sicherheit wird weiterhin durchgesetzt, aber das Betriebssystem kann nicht ordnungsgemäß auf den Fehler reagieren, da es nicht möglich war, den Fehler festzustellen. Dies liegt daran, dass die Kernelausführung entweder gestoppt ist oder die Programm zähler Die Ausführung von irgendwo in einem endlosen und-normalerweise nicht-funktionalen Schleife. Dies wäre ähnlich wie beider erlebt Amnesie (Kernelausführungsfehler) oder in einem geschlossenen Labyrinth gefangen werden, das immer zum Startpunkt zurückkehrt (geschlossene Schleifen).

Das Prinzip des am wenigsten Privilegien durch Privilegien ringe für die Intel x86

Wenn sich die Ausführung nach dem Absturz durch Laden und Ausführen abhebt Trojaner CodeDer Autor des Trojanischen Code kann die Kontrolle über alle Prozesse usurpieren. Das Prinzip der am wenigsten Privilegien ermächtigen Kräfte, die mit dem niedrigstmöglichen Privileg-/Genehmigungsstufer ausgeführt werden. Dies bedeutet, dass der Code, der die Codeausführung wieder aufnimmt-ob Trojaner oder einfach Code-Ausführung von einem unerwarteten Ort abgeholt wird-nicht die Möglichkeit hat, böswillige oder unerwünschte Prozesse durchzuführen. Eine Methode, die verwendet wird, um dies zu erreichen Mikroprozessor Hardware. Zum Beispiel in der Intel x86 Architektur Der Hersteller entwarf vier (Ring 0 bis Ring 3), die "Modi" mit abgestuften Grade des Zugangs-Much-Likes ausgeführt haben Sicherheitsfreigabe Systeme in Verteidigungs- und Geheimdiensten.

Wie in einigen Betriebssystemen implementiert, werden Prozesse mit a ausgeführt Potenzielle Privilegien und ein Aktive Privilegien. Solche Privilegien werden vom Elternteil geerbt, wie durch die Semantik von festgelegt Gabel(). Ein ausführbare Datei Das führt eine privilegierte Funktion aus - danach bildet technisch eine Komponente der TCBund gleichzeitig ein vertrauenswürdiges Programm oder ein vertrauenswürdiges Prozess bezeichnet - kann auch mit einer Reihe von Privilegien gekennzeichnet sein. Dies ist eine logische Erweiterung der Begriffe von Benutzer -ID festlegen und Setzen Sie Gruppen -ID. Das Erbe von Datei -Berechtigungen durch einen Prozess werden durch die Semantik der bestimmt Geschäftsführer() Familie von Systemaufrufe. Die genaue Art und Weise, in der potenzielle Prozessberechtigungen, tatsächliche Prozessberechtigungen und Dateiberechtigungen interagieren können, können komplex werden. In der Praxis wird am wenigsten Privilegien praktiziert, indem ein Prozess dazu gezwungen wird, nur die von der Aufgabe geforderten Privilegien auszuführen. Die Einhaltung dieses Modells ist sowohl komplex als auch fehleranfällig.

Ähnliche Prinzipien

Das Trusted Computer System Evaluation Criteria (TCSEC) Konzept von Vertrauenswürdige Computerbasis (TCB) Die Minimierung ist eine weitaus strengere Anforderung, die nur für die funktional stärksten Versicherungsklassen anwendbar ist. nämlich., B3 und A1 (die sind offensichtlich anders, aber funktional identisch).

Das geringste Privileg ist oft mit Privilegienklammer: Das heißt, unter der Annahme der erforderlichen Privilegien im letzten möglichen Moment und der Entlassung, sobald sie nicht mehr streng notwendig sind, verringern Sie daher angeblich die Folgen von fehlerhaftem Code, der ungewollt mehr Privilegien ausnutzt als verdient. Das geringste Privileg wurde auch im Kontext der Verteilung von interpretiert Diskretionäre Zugangskontrolle (DAC) Berechtigungen, beispielsweise die Behauptung, dass der Benutzer u Lese-/Schreibzugriff auf die Datei F gegen das am wenigsten Privileg verstößt, wenn Sie seine autorisierten Aufgaben mit nur einer Read -Genehmigung erledigen können.

Siehe auch

Verweise

  1. ^ Salzer, Jerome H.; Schroeder, Michael D. (1975). "Der Schutz von Informationen in Computersystemen". Proceedings of the IEEE. Institut für Elektro- und Elektronikingenieure (IEEE). 63 (9): 1278–1308. doi:10.1109/proc.1975.9939. ISSN 0018-9219. OCLC 5871551104. S2CID 269166.
  2. ^ Jonathan, Clark; Dabcc Inc. "Virtualisierung Guru schreibt" Der Benutzermodus ist eine gute Sache-Bereitstellung für gesperrte Konten ohne Sicherheitshöhe "". Abgerufen 15. März 2013.
  3. ^ Aaron Margose (August 2006). "Probleme des Privilegs: Finden und Behebung von Lua -Bugs" finden und beheben ". Microsoft.
  4. ^ Matt Bishop, Computersicherheit: Kunst und Wissenschaft, Boston, MA: Addison-Wesley, 2003. S. 343-344 zitiert Barnum & Gegick 2005
  5. ^ Salzer, Jerome H. (1974). "Schutz und die Kontrolle des Informationsaustauschs in mehreren Multics". Kommunikation der ACM. 17 (7): 388–402. Citeseerx 10.1.1.226.3939. doi:10.1145/361011.361067. ISSN 0001-0782. S2CID 326132.
  6. ^ Needham, R. M. (1972). "Schutzsysteme und Schutzumsetzungen". Proceedings of the AFIPS '72 Herbst Joint Computer Conference, 5. bis 7. Dezember 1972, Teil I.. S. 571–578. doi:10.1145/1479992.1480073. S2CID 7371342.
  7. ^ Fred B. Schneider. "Geringstes Privileg und mehr" (PDF).

Literaturverzeichnis

Externe Links