Discretionary Access Control
Version vom 1. Februar 2023, 17:44 Uhr von Thomas.will (Diskussion | Beiträge)
Prinzip
- Discretionary Access Control (DAC) oder Benutzerbestimmbare Zugriffskontrolle ist ein Sicherheitskonzept für IT-Systeme.
- Hierbei wird die Entscheidung, ob auf eine Ressource zugegriffen werden darf, allein auf der Basis der Identität des Akteurs getroffen.
- Das heißt, die Zugriffsrechte für (Daten-)Objekte werden pro Benutzer festgelegt.
- Eine Abschwächung dieses Konzeptes stellt die Verwendung von Benutzerrollen und -Gruppen dar.
- Die Discretionary Access Control bildet das Gegenteil der Mandatory Access Control, die den Zugriff aufgrund von allgemeinen Regeln und zusätzlicher Informationen über den Akteur treffen,
Verwaltung
- Formal können Zugriffsrechte in einem System mit Discretionary Access Control als eine Relation von Subjekt, Objekt und Recht beschrieben werden
- (S,O,R) → {ja,nein};
- Das entspricht einer Matrix von S×O Einträgen (ein Eintrag pro Subjekt-Objekt-Paar), wobei jeder Eintrag die Menge von Rechten ist, die das Subjekt an dem Objekt hat
- , also: r(o,s) → R*.
- Eine Besonderheit ist, dass Subjekte ihre eigenen Rechte an andere Subjekte weitergeben können, während bei Mandatory Access Control ausschließlich eine zentrale Verwaltungsinstanz Rechte vergeben kann.
- Subjekte sind in diesem Zusammenhang Akteure, also zum Beispiel Benutzer, Prozesse oder Programme.
- Objekte sind Daten oder Ressourcen (wie Dateien, Drucker etc.), auf denen ein Subjekt Operationen ausführen kann.
- Dabei ist zu beachten, dass Subjekte zugleich Objekte sein können:
- Ein Administrator (Subjekt) hat zum Beispiel das Recht, einen Benutzer zu löschen (in diesem Zusammenhang ein Objekt).
- Umgekehrt kann aus einem Objekt ein Subjekt werden, zum Beispiel wenn man ein Programm „startet“, also aus einer Datei einen Prozess erzeugt.
- Eine Möglichkeit zur Darstellung der Zugriffsrechte, die diesem Faktor Rechnung trägt, ist die Darstellung als Graph mit gerichteten, beschrifteten Kanten:
- Jeder Knoten im Graph entspricht einem Subjekt oder Objekt, jede Kante einer „hat-Recht“-Beziehung.
- Unter Unix und Windows erfolgt die Rechtezuweisung über eine vom Administrator verwaltete freigegebene Zugriffssteuerungsliste, auch DACL (Discretionary Access Control List) genannt.
- Die Einträge in dieser Liste werden mit ACE (Access Control Entry) abgekürzt.
- Überwachungseinstellungen werden über die SACL (System Access Control List) gesteuert, die sämtliche Sicherheits-Rollen enthält und die Ereignisse bei Zugriff auf die DACL generiert.
Nachteile
- Unter Umständen ist es notwendig, für bestimmte eingeschränkte Operationen dem Benutzer erweiterte Zugriffsrechte zu gewähren.
- Ein Beispiel hierfür ist das Ändern des eigenen Passwortes durch den Benutzer unter Unix.
- Um solche Operationen zu ermöglichen, wird unter Unix das entsprechende Programm mit dem sogenannten SUID-Flag versehen, sodass das Programm unter der Benutzeridentifikation des Eigentümers der Programmdatei ausgeführt wird.
- Häufig ist dies der Benutzer root, der auf einem Unix-System Zugriff auf alle Systemressourcen besitzt.
- Dadurch entsteht die Gefahr, dass ein Unbefugter durch die Ausnutzung einer Sicherheitslücke die volle Kontrolle über das System erlangen könnte.
- Daher wurden für bestimmte Betriebssysteme, wie Linux oder FreeBSD Erweiterungen entwickelt, die auf einem anderen Sicherheitskonzept beruhen.
- Unter diesen Erweiterungen werden die Entscheidungen über Zugriffsrechte nicht mehr allein auf der Basis der Benutzeridentifikation getroffen, unter der ein Unix-Programm ausgeführt wird. Dadurch wird verhindert, dass ein Angreifer durch Ausnutzen einer Sicherheitslücke die vollständige Kontrolle über ein System erlangen kann.