Modellieren eines Berechtigungssystems

82

Wie würden Sie ein System modellieren, das Berechtigungen zum Ausführen bestimmter Aktionen in einer Anwendung verarbeitet?

James P.
quelle

Antworten:

154

Sicherheitsmodelle sind ein großes (und offenes) Forschungsfeld. Es steht eine große Auswahl an Modellen zur Auswahl, von einfachen:

  • Die Zugriffssteuerungsmatrix von Lampson listet jedes Domänenobjekt und jeden Principal im System mit den Aktionen auf, die der Principal für dieses Objekt ausführen darf. Es ist sehr ausführlich und, wenn es tatsächlich auf diese Weise implementiert wird, sehr speicherintensiv.

  • Zugriffssteuerungslisten sind eine Vereinfachung der Lampson-Matrix: Betrachten Sie sie als eine Sparse-Matrix-Implementierung, die Objekte und Prinzipien sowie zulässige Aktionen auflistet und nicht alle "Null" -Einträge aus der Lampson-Matrix codiert. Zugriffssteuerungslisten können aus praktischen Gründen 'Gruppen' enthalten, und die Listen können über ein Objekt oder über einen Principal gespeichert werden (manchmal über ein Programm, wie in AppArmor oder TOMOYO oder LIDS ).

  • Fähigkeitssysteme basieren auf der Idee, eine Referenz oder einen Zeiger auf Objekte zu haben. Ein Prozess hat Zugriff auf einen anfänglichen Satz von Funktionen und kann nur dann mehr Funktionen erhalten, wenn er sie von anderen Objekten im System empfängt. Das klingt ziemlich weit hergeholt, aber denken Sie an Unix-Dateideskriptoren: Sie sind ein nicht fälschbarer Verweis auf eine bestimmte geöffnete Datei, und der Dateideskriptor kann an andere Prozesse übergeben werden oder nicht. Wenn Sie den Deskriptor einem anderen Prozess geben, hat dieser Zugriff auf diese Datei. Um diese Idee herum wurden ganze Betriebssysteme geschrieben. (Die bekanntesten sind wahrscheinlich KeyKOS und EROS, aber ich bin sicher, dass dies ein umstrittener Punkt ist. :)

... zu den komplexeren, denen Objekte und Principals Sicherheitskennzeichnungen zugewiesen haben:

  • Sicherheitsringe , wie sie beispielsweise in Multics- und x86-CPUs implementiert sind, bieten Sicherheitsfallen oder -gatter, damit Prozesse zwischen den Ringen wechseln können. Jeder Ring verfügt über unterschiedliche Berechtigungen und Objekte.

  • Dennings Gitter ist ein Modell dafür, welche Principals auf sehr hierarchische Weise mit welchen Sicherheitsetiketten interagieren dürfen.

  • Bell-LaPadula ähnelt Dennings Lattice und bietet Regeln, um zu verhindern, dass streng geheime Daten auf nicht klassifizierte Ebenen gelangen. Gemeinsame Erweiterungen ermöglichen eine weitere Unterteilung und Kategorisierung, um die Unterstützung nach militärischem Vorbild besser zu gewährleisten.

  • Das Biba-Modell ähnelt Bell-LaPadula, ist jedoch „auf den Kopf gestellt“ - Bell-LaPadula konzentriert sich auf Vertraulichkeit, tut jedoch nichts für Integrität, und Biba konzentriert sich auf Integrität, tut jedoch nichts für Vertraulichkeit. (Bell-LaPadula verhindert, dass jemand die Liste aller Spione liest, erlaubt aber gerne jedem, etwas hinein zu schreiben. Biba erlaubt gerne jedem, die Liste aller Spione zu lesen, verbietet aber fast jedem, darin zu schreiben.)

  • Type Enforcement (und sein Geschwister Domain Type Enforcement) bietet Beschriftungen für Principals und Objekte und gibt die zulässigen Objekt-Verb-Subjekt- (Klassen-) Tabellen an. Dies ist das bekannte SELinux und SMACK.

.. und dann gibt es einige, die den Lauf der Zeit beinhalten:

  • Chinese Wall wurde in Geschäftsumgebungen entwickelt, um Mitarbeiter innerhalb einer Organisation zu trennen, die Dienstleistungen für Wettbewerber in einem bestimmten Markt erbringt: Wenn Johnson beispielsweise mit der Arbeit am Exxon-Mobil-Konto begonnen hat, hat er keinen Zugriff auf das BP-Konto. Wenn Johnson zuerst mit der Arbeit an BP begonnen hätte, würde ihm der Zugriff auf die Daten von Exxon-Mobil verweigert.

  • LOMAC und High- Watermark sind zwei dynamische Ansätze: LOMAC ändert die Berechtigungen von Prozessen, wenn sie auf zunehmend höhere Datenebenen zugreifen, und verbietet das Schreiben auf niedrigere Ebenen (Prozesse migrieren in Richtung "Top Security"), und High-Watermark ändert die Beschriftungen Daten als übergeordnete Prozessebenen greifen darauf zu (Daten migrieren in Richtung "höchste Sicherheit").

  • Clark-Wilson- Modelle sind sehr offen; Sie enthalten Invarianten und Regeln, um sicherzustellen, dass jeder Zustandsübergang nicht gegen die Invarianten verstößt. (Dies kann so einfach wie die doppelte Buchhaltung oder so komplex wie HIPPA sein .) Denken Sie an Datenbanktransaktionen und -einschränkungen .

Matt Bishops "Computersicherheit: Kunst und Wissenschaft" ist auf jeden Fall lesenswert, wenn Sie mehr über die veröffentlichten Modelle erfahren möchten.

Sarnold
quelle
7
Hervorragende Antwort. Interessante Lektüre. Ich frage mich, wo dieses zu einfache, aber nicht so ungewöhnliche System in Ihre Liste passt: "Standardmäßig haben Gäste Stufe 0, registrierte Benutzer haben Stufe 5, Systemadministratoren haben Stufe 9. Jeder Aktion ist eine Stufe zugeordnet. und kann nur von jemandem auf dieser Ebene oder höher durchgeführt werden. "
Oddthinking
1
@Oddthinking, dieses einfache Modell könnte in mehreren sein :) aber das einfachste "Match" ist das Ring-Modell. Wie in x86 implementiert, hat es wie in Ihrem Beispiel vier Ebenen und fügt jeweils Operationen hinzu, die nur von dieser Codeebene oder höher ausgeführt werden können. (Was Sie sie nennen, ist ein orthogonales Problem.) Ich kann mir auch leicht vorstellen, dass dieses Beispiel ACL-, Capability-, Lattice-, BLP- und TE-Implementierungen enthält. Es würde mich nicht wundern, wenn die anderen dieses Modell auch implementieren könnten. aber Einfachheit ist eine gute Tugend. :)
Sarnold
@ Frank, danke! Meine Rechtschreibung ist mehr als grausam, danke für die Fänge.
Sarnold