Wikipedia · einfach zusammengefasst · Stand
Discretionary Access Control
Discretionary Access Control (DAC) oder Benutzerbestimmbare Zugriffskontrolle ist ein Sicherheitskonzept für IT-Systeme. Hierbei wird die Entscheidung, …
Inhalt6 Abschnitte
Grundidee
Discretionary Access Control (DAC), auf Deutsch benutzerbestimmbare Zugriffskontrolle, ist ein Sicherheitskonzept für IT-Systeme. Es regelt, ob ein Akteur auf eine Ressource zugreifen darf. Die Entscheidung wird allein auf Grundlage der Identität des Akteurs getroffen. Zugriffsrechte für Datenobjekte oder andere Ressourcen werden also pro Benutzer festgelegt.
Eine abgeschwächte Form dieses Konzepts ist die Verwendung von Benutzerrollen und Benutzergruppen, wie bei Role Based Access Control. DAC steht im Gegensatz zur Mandatory Access Control. Bei Mandatory Access Control wird der Zugriff aufgrund allgemeiner Regeln und zusätzlicher Informationen über den Akteur entschieden.
Formale Beschreibung
Zugriffsrechte in einem DAC-System können formal als Relation aus Subjekt, Objekt und Recht beschrieben werden: (S,O,R) → {ja,nein}. Das bedeutet: Für eine bestimmte Kombination aus Subjekt, Objekt und Recht wird entschieden, ob der Zugriff erlaubt ist oder nicht.
Diese Darstellung entspricht einer Matrix mit S×O Einträgen. Es gibt also einen Eintrag für jedes Subjekt-Objekt-Paar. Jeder Eintrag enthält die Menge der Rechte, die ein Subjekt an einem Objekt hat: r(o,s) → R*.
Subjekte und Objekte
Subjekte sind die handelnden Akteure in einem System, zum Beispiel Benutzer, Prozesse oder Programme. Objekte sind Daten oder Ressourcen, auf denen ein Subjekt Operationen ausführen kann, zum Beispiel Dateien oder Drucker.
Ein wichtiger Punkt ist, dass Subjekte zugleich Objekte sein können. Ein Administrator ist zum Beispiel ein Subjekt, wenn er handelt. Ein Benutzer kann aber auch ein Objekt sein, wenn der Administrator das Recht hat, ihn zu löschen. Umgekehrt kann aus einem Objekt ein Subjekt werden: Wird ein Programm gestartet, entsteht aus einer Datei ein Prozess.
Rechtevergabe und Darstellung
Eine Besonderheit von Discretionary Access Control ist, dass Subjekte ihre eigenen Rechte an andere Subjekte weitergeben können. Bei Mandatory Access Control kann dagegen ausschließlich eine zentrale Verwaltungsinstanz Rechte vergeben.
Zugriffsrechte können als Graph dargestellt werden. In einem solchen Graphen entspricht jeder Knoten einem Subjekt oder Objekt. Jede gerichtete und beschriftete Kante beschreibt eine „hat-Recht“-Beziehung.
Unter Unix und Windows erfolgt die Rechtezuweisung über eine vom Administrator verwaltete freigegebene Zugriffssteuerungsliste, die DACL (Discretionary Access Control List). Die einzelnen Einträge heißen ACE (Access Control Entry). Überwachungseinstellungen werden über die SACL (System Access Control List) gesteuert. Sie enthält sämtliche Sicherheits-Rollen und erzeugt Ereignisse beim Zugriff auf die DACL.
Schwächen und Risiko
Ein Nachteil von DAC entsteht, wenn Benutzer für bestimmte eingeschränkte Operationen vorübergehend erweiterte Rechte benötigen. Ein Beispiel ist das Ändern des eigenen Passwortes durch einen Benutzer unter Unix.
Unter Unix kann dafür ein Programm mit dem sogenannten SUID-Flag versehen werden. Dann wird das Programm unter der Benutzeridentifikation des Eigentümers der Programmdatei ausgeführt. Häufig ist dieser Eigentümer root. Der Benutzer root besitzt auf einem Unix-System Zugriff auf alle Systemressourcen.
Dadurch entsteht ein Sicherheitsrisiko: Wenn ein Unbefugter eine Sicherheitslücke in einem solchen Programm ausnutzt, könnte er im schlimmsten Fall die volle Kontrolle über das System erlangen.
Erweiterungen
Für bestimmte Betriebssysteme wie Linux oder FreeBSD wurden Erweiterungen entwickelt, die auf einem anderen Sicherheitskonzept beruhen. Bei diesen Erweiterungen werden Zugriffsentscheidungen nicht mehr allein nach der Benutzeridentifikation getroffen, unter der ein Unix-Programm ausgeführt wird.
Das soll verhindern, dass ein Angreifer durch das Ausnutzen einer Sicherheitslücke vollständige Kontrolle über ein System erlangen kann.