In der Computersicherheit ist eine Zugriffskontrollliste ( ACL ) eine Liste von Berechtigungen [ a ] , die einer Systemressource (Objekt oder Einrichtung) zugeordnet sind. Eine ACL legt fest, welchen Benutzern oder Systemprozessen Zugriff auf Ressourcen gewährt wird und welche Operationen auf den jeweiligen Ressourcen zulässig sind. [ 1 ] Jeder Eintrag in einer typischen ACL spezifiziert ein Subjekt und eine Operation. Zum Beispiel:

  • Wenn ein Dateiobjekt eine ACL hat, die Folgendes enthält(Alice: lesen, schreiben; Bob: lesen)Dies würde Alice die Erlaubnis geben, die Datei zu lesen und zu schreiben, und Bob die Erlaubnis, sie nur zu lesen.
  • Wenn das RACF-Profil ( Resource Access Control Facility ) CONSOLE CLASS(TSOAUTH) eine ACL enthält(ALICE:LESEN)Dies würde ALICE die Berechtigung zur Verwendung des TSO CONSOLE-Befehls erteilen.

Implementierungen

Viele Betriebssysteme implementieren ACLs oder verfügen über eine historische Implementierung; die erste Implementierung von ACLs erfolgte im Dateisystem von Multics im Jahr 1965. [ 2 ] [ 3 ]

Dateisystem-ACLs

Eine Dateisystem- ACL ist eine Datenstruktur (üblicherweise eine Tabelle), die Einträge enthält, welche die Rechte einzelner Benutzer oder Gruppen für bestimmte Systemobjekte wie Programme, Prozesse oder Dateien festlegen. Diese Einträge werden in Microsoft Windows NT [ 4 ] , OpenVMS und Unix-ähnlichen Betriebssystemen wie Linux , macOS und Solaris als Zugriffskontrolleinträge (ACEs) bezeichnet . Jedes zugängliche Objekt besitzt eine Kennung für seine ACL. Die Berechtigungen bestimmen spezifische Zugriffsrechte, beispielsweise ob ein Benutzer ein Objekt lesen, beschreiben oder ausführen darf . In manchen Implementierungen kann ein ACE steuern, ob ein Benutzer oder eine Benutzergruppe die ACL eines Objekts ändern darf.

Multics war eines der ersten Betriebssysteme, das Dateisystem-ACLs bereitstellte. PRIMOS bot ACLs mindestens seit 1984. [ 5 ]

In den 1990er Jahren wurden die ACL- und rollenbasierte Zugriffskontrollmodelle (RBAC) ausgiebig getestet und zur Verwaltung von Dateiberechtigungen eingesetzt.

POSIX ACL

Die POSIX 1003.1e/1003.2c-Arbeitsgruppe bemühte sich um die Standardisierung von ACLs, woraus die heute als „POSIX.1e ACL“ oder kurz „POSIX ACL“ bekannten Protokolle resultierten. [ 6 ] Die POSIX.1e/POSIX.2c-Entwürfe wurden 1997 zurückgezogen, da die Teilnehmer das Interesse an der Finanzierung des Projekts verloren und sich leistungsfähigeren Alternativen wie NFSv4-ACLs zuwandten. [ 7 ] Stand Dezember 2019 waren keine Originalquellen des Entwurfs mehr im Internet verfügbar, er ist jedoch weiterhin im Internet Archive zu finden . [ 8 ]

Die meisten Unix- und Unix-ähnlichen Betriebssysteme (z. B. Linux seit Version 2.5.46 bzw. November 2002 [ 9 ] , FreeBSD oder Solaris) unterstützen POSIX.1e-ACLs (nicht notwendigerweise Entwurf 17). ACLs werden auf diesen Systemen üblicherweise in den erweiterten Attributen einer Datei gespeichert.

NFSv4 ACL

NFSv4 -ACLs sind wesentlich leistungsfähiger als POSIX-Entwurfs-ACLs. Im Gegensatz zu POSIX-Entwurfs-ACLs sind NFSv4-ACLs durch einen veröffentlichten Standard als Teil des Network File System definiert .

NFSv4-ACLs werden von vielen Unix- und Unix-ähnlichen Betriebssystemen unterstützt. Beispiele hierfür sind AIX , FreeBSD [ 10 ] , Mac OS X ab Version 10.4 („ Tiger “) oder Solaris mit ZFS- Dateisystem [ 11 ]. Diese Systeme unterstützen NFSv4-ACLs, die Teil des NFSv4-Standards sind. Für Linux existieren zwei experimentelle Implementierungen von NFSv4-ACLs: NFSv4-ACLs-Unterstützung für das Ext3- Dateisystem [ 12 ] und das neuere Richacls , das NFSv4-ACLs-Unterstützung für das Ext4- Dateisystem bietet [ 13 ] . Wie POSIX-ACLs werden auch NFSv4-ACLs auf Unix-ähnlichen Systemen üblicherweise als erweiterte Attribute gespeichert.

NFSv4-ACLs sind nahezu identisch zu den in NTFS verwendeten Windows-NT-ACLs aufgebaut . [ 14 ] NFSv4.1-ACLs sind eine Obermenge sowohl der NT-ACLs als auch der POSIX-Draft-ACLs. [ 15 ] Samba unterstützt das Speichern der NT-ACLs von SMB-Freigaben auf vielfältige Weise, unter anderem als NFSv4-kodierte ACLs. [ 16 ]

Active Directory-Zugriffskontrolllisten

Der Active Directory- Dienst von Microsoft implementiert einen LDAP- Server, der Konfigurationsinformationen über Benutzer und Computer in einer Domäne speichert und verteilt. [ 17 ] Active Directory erweitert die LDAP-Spezifikation um denselben Mechanismus für Zugriffssteuerungslisten, den Windows NT für das NTFS-Dateisystem verwendet. Windows 2000 erweiterte die Syntax für Zugriffssteuerungseinträge, sodass nicht nur der Zugriff auf ganze LDAP-Objekte, sondern auch auf einzelne Attribute innerhalb dieser Objekte gewährt oder verweigert werden konnte. [ 18 ]

Netzwerk-ACLs

Auf manchen proprietären Computerhardware-Typen (insbesondere Routern und Switches ) definiert eine Zugriffskontrollliste (ACL) Regeln, die auf Portnummern oder IP-Adressen eines Hosts oder anderer Layer-3- Geräte angewendet werden . Jede ACL enthält eine Liste der Hosts und/oder Netzwerke, die den Dienst nutzen dürfen. Obwohl es zusätzlich möglich ist, ACLs anhand von Netzwerkdomänennamen zu konfigurieren , ist dies fragwürdig, da einzelne TCP- , UDP- und ICMP -Header keine Domänennamen enthalten. Folglich muss das Gerät, das die ACL durchsetzt, die Namen separat in numerische Adressen auflösen . Dies bietet Angreifern, die die Sicherheit des durch die ACL geschützten Systems gefährden wollen, eine zusätzliche Angriffsfläche . Sowohl einzelne Server als auch Router können Netzwerk-ACLs besitzen. ACLs lassen sich in der Regel so konfigurieren, dass sie sowohl ein- als auch ausgehenden Datenverkehr steuern und ähneln in diesem Zusammenhang Firewalls . Wie Firewalls können auch ACLs Sicherheitsbestimmungen und -standards wie PCI DSS unterliegen .

SQL-Implementierungen

ACL-Algorithmen wurden in SQL und relationale Datenbanksysteme portiert . Viele „moderne“ (2000er und 2010er Jahre) SQL-basierte Systeme, wie ERP- und Content-Management- Systeme, verwenden ACL-Modelle in ihren Administrationsmodulen.

Schema-indizierte ACLs

Im Jahr 2024 etablierten sich schemabasierte ACL-Modelle als ressourcenschonende Alternative zur herkömmlichen JSON-basierten Berechtigungsverwaltung. Ein bemerkenswerter Vorschlag führte die Idee ein, anstelle vollständiger Berechtigungsbäume nur die Indizes der erlaubten Operationen zu speichern. Diese Technik, später als SCode ACL formalisiert , ermöglicht die kompakte Kodierung von Zugriffsrechten (z. B. `"0 2 5"`) auf Basis eines vordefinierten, flachen Schemas und ist daher besonders effizient für zustandslose Systeme wie JWT-Token oder Session-Cookies. Der Ansatz fand aufgrund seines Minimalismus und seiner Performance früh Anklang in Entwicklerkreisen und wird seither sowohl in kleinen als auch in produktiven Systemen eingesetzt.

Vergleich mit RBAC

Die wichtigste Alternative zum ACL-Modell ist das rollenbasierte Zugriffskontrollmodell (RBAC). Ein „minimales RBAC-Modell“, RBACm , kann mit einem ACL-Mechanismus, ACLg , verglichen werden, bei dem nur Gruppen als Einträge in der ACL zulässig sind. Barkley (1997) [ 19 ] zeigte, dass RBACm und ACLg äquivalent sind.

In modernen SQL-Implementierungen verwalten ACLs auch Gruppen und deren Vererbung in einer Gruppenhierarchie. Daher können „moderne ACLs“ alles ausdrücken, was RBAC ausdrückt, und sind (im Vergleich zu „alten ACLs“) besonders leistungsfähig, da sie Zugriffskontrollrichtlinien so formulieren, wie Administratoren Organisationen betrachten.

Zum Datenaustausch und für „Vergleiche auf hoher Ebene“ können ACL-Daten in XACML übersetzt werden . [ 20 ]

Siehe auch

Anmerkungen

  1. ^ Z. B. Dateisystemberechtigungen , Berechtigung zur Ausführung einer bestimmten Aktion.

Referenzen

  1. ^ R. Shirey (August 2007). Internet Security Glossary, Version 2. IETF . doi : 10.17487 /RFC4949 . RFC 4949. Abgerufen am 19. Mai 2023 .
  2. ^ Richard E. Smith. Elementare Informationssicherheit . S. 150.
  3. ^ Daley, RC; Neumann, PG (1965). „Ein universelles Dateisystem für Sekundärspeicher“ . AFIPS '65 (Herbst, Teil I): Proceedings der gemeinsamen Herbstkonferenz für Computer vom 30. November bis 1. Dezember 1965, Teil I. ACM Press. S. 213. doi : 10.1145/1463891.1463915 .
  4. ^ „Verwaltung von Autorisierung und Zugriffskontrolle“ . Microsoft Learn . 11.09.2009 . Abgerufen am 15.05.2024 .
  5. ^ „PSI Pacer Software, Inc. Gnet-II Revision 3.0“ . Communications. Computerworld . Band 18, Nr. 21. 21. Mai 1984. S. 54. ISSN 0010-4841 . Abgerufen am 30. Juni 2017. Die neue Version von Gnet-II (Revision 3.0) verfügt über einen Leitungssicherheitsmechanismus, der im Primos-ACL-Subsystem implementiert ist. 
  6. ^ Grünbacher, Andreas. „POSIX Access Control Lists on Linux“ . Usenix . Abgerufen am 12. Dezember 2019 .
  7. ^ wurtzkurdle. „Warum wurde POSIX.1e zurückgezogen?“ . Unix StackExchange . Abgerufen am 12. Dezember 2019 .
  8. ^ Trümper, Winfried (28. Februar 1999). „Zusammenfassung zu Posix.1e“ . Archiviert vom Original am 23. Juli 2008.
  9. ^ „Red Hat Enterprise Linux AS 3 Release Notes (x86 Edition)“ . Red Hat . 2003. Archiviert vom Original am 02.12.2013 . Abgerufen am 08.04.2013 . Die Funktionalität von EA (Extended Attributes) und ACL (Access Control Lists) ist nun für ext3-Dateisysteme verfügbar. Zusätzlich ist die ACL-Funktionalität auch für NFS verfügbar.
  10. ^ „NFSv4 ACLs“ . FreeBSD . 12.09.2011 . Abgerufen am 08.04.2013 .
  11. ^ „Kapitel 8: Verwendung von ACLs und Attributen zum Schutz von ZFS-Dateien“ . Oracle Corporation . 1. Oktober 2009. Abgerufen am 8. April 2013 .
  12. ^ Grünbacher, Andreas (Mai 2008). „Native NFSv4 ACLs on Linux“ . SUSE . Archiviert vom Original am 20.06.2013 . Abgerufen am 08.04.2013 .
  13. ^ Grünbacher, Andreas (Juli–September 2010). „Richacls – Native NFSv4 ACLs on Linux“ . bestbits.at. Archiviert vom Original am 20.03.2013 . Abgerufen am 08.04.2013 .
  14. ^ "ACLs" . Linux NFS .
  15. ^ „Zuordnung zwischen NFSv4- und Posix-Draft-ACLs“ .
  16. ^ "vfs_nfs4acl_xattr(8)" . Samba-Handbuch .
  17. ^ "[MS-ADTS]: Active Directory Technical Specification" . 7. Juni 2024.
  18. ^ Swift, Michael M. (November 2002). „Verbesserung der Granularität der Zugriffskontrolle für Windows 2000 “. ACM Transactions on Information and System Security . 5 (4): 398–437 . doi : 10.1145/581271.581273 . S2CID 10702162 . 
  19. ^ J. Barkley (1997) " Vergleich einfacher rollenbasierter Zugriffskontrollmodelle und Zugriffskontrolllisten ", In "Proceedings of the second ACM workshop on Role-based access control", Seiten 127-132.
  20. ^ G. Karjoth, A. Schade und E. Van Herreweghen (2008) " Implementierung von ACL-basierten Richtlinien in XACML ", In "2008 Annual Computer Security Applications Conference".

Weiterführende Literatur