Access Control Lists (ACLs)

„Ich höre immer ‚Access Control Lists‘ oder ‚ACL‘ – aber was ist das eigentlich genau?“

„Gute Frage! Wir haben uns ja schon mehrfach mit ACLs beschäftigt, aber so richtig auf den Punkt gebracht haben wir es noch nicht – das holen wir jetzt nach.“

Access Control Lists (ACLs) sind ein zentrales Sicherheitskonzept zur Steuerung von Zugriffsrechten auf IT-Systemen. Im Kontext der Endgerätesicherheit dienen ACLs dazu, festzulegen, welcher Benutzer, Prozess oder Dienst auf welche Ressourcen zugreifen darf und mit welchen Berechtigungen. Sie gehören damit zu den wichtigsten Mechanismen des Endpoint Hardening, werden aber auch in der Netzwerk-Kommunikation und anderen Kontexten verwendet.

ACLs kommen auf unterschiedlichsten Ebenen zum Einsatz:

Ihr Ziel besteht darin, den Zugriff auf Ressourcen zu kontrollieren und beim Hardening das Prinzip des „Need-to-Know“ beziehungsweise des „Least Privilege“ technisch umzusetzen.

Eine ACL ist im Kern eine Liste von Regeln, die festlegt:

  • Wer zugreifen darf
  • Worauf zugegriffen werden darf
  • Welche Aktionen erlaubt oder verboten sind

Welche erlaubten oder verbotenen Aktionen konkret festgelegt werden können, hängt von der Art der ACL und deren Einsatzzweck ab. Typische Aktionen für ACLs zum Schutz von Datenzugriff sind:

  • Lesen
  • Schreiben
  • Ausführen
  • Löschen
  • Ändern
  • Vollzugriff

Ausschlaggebend ist dabei die zugreifende Identität. Das ist in der Regel ein Benutzer oder Computer. Es gibt jedoch auch Netzwerk-ACLs, z.B. in Firewalls oder Routern. Hier werden unter anderem folgende Kriterien angewendet:

  • Absender- und Zieladresse
  • Netzwerkprotokoll
  • ggf. Quell- und Zielport
  • Kommunikationsstatus (TCP-Flags)
  • Kommunikationsrichtung (Inbound/Outbound/Forward)

Eine ACL besteht aus Access Control Entries (ACEs). Sie stellen die einzelnen Regeln dar. Es gibt verschiedene Varianten, wie die ACEs einer ACL abgearbeitet werden:

  • Von oben nach unten (First Match) – Viele Firewalls arbeiten nach diesem Prinzip: Der erste passende Eintrag wird angewendet und die dort festgelegte Aktion durchgeführt. Oft, aber nicht notwendigerweise, wird die Abarbeitung danach abgebrochen. Hier kommt es darauf an, in welcher Reihenfolge die ACEs erstellt werden.
  • Best Match – Einige Systeme nutzen ACLs, bei denen der spezifischste bzw. am besten passende Eintrag angewendet wird. So werden z.B. Routing-Entscheidungen getroffen (Longest Prefix, die genaueste Subnetzmaske)
  • Prioritätsbasiert (Priority Based) – Jeder Eintrag hat eine Priorität, nach der über die Anwendung entschieden wird.
  • Kumulativ – Einige ACLs, darunter auch Windows DACLs, prüfen immer alle ACEs und kombinieren z.B. Zugriffsrechte aus verschiedenen ACEs. Mehr dazu im übernächsten Themenabschnitt.

Eine Zugriffs-ACL hat prinzipiell zwei Aktionen (mit bestimmten Varianten): Allow oder Deny.

Es gibt jeweils zwei Formen:

  • Explizites Allow/Deny: Eine Regel (ACE) legt fest, wie mit der Anforderung verfahren werden soll
  • Implizites Allow/Deny: Keine Regel passt auf die Anforderung, daher greift die Grundregel der ACL

Zudem gibt es noch zwei weitere Grundregeln, die relevant sein können:

  • Permit Overrides: Sobald ein Allow-Eintrag gefunden wird, greift dieser, auch wenn es konkurrierende Deny-Einträge gibt
  • Deny Overrides: Genau umgekehrt, sobald ein Deny-Eintrag gefunden wird, greift dieser auch bei konkurrierenden Allow-Einträgen

Last but not least können wir noch in Blacklist und Whitelist unterscheiden:

  • Blacklist: Die Grundregel erlaubt alles, was nicht explizit verboten wird. Die ACEs stellen also verbotene Ausnahmen von der Regel dar. Diese Art wird eingesetzt, wenn die grundlegende Annahme ist, dass die von der ACL zu steuernde Aktion erlaubt sein soll. Dieser Ansatz ist offener als die Whitelist.
  • Whitelist: Die Grundregel verbietet alles, was nicht explizit erlaubt wird. Diese Art wird eingesetzt, wenn nur ausgewählte Aktionen erlaubt werden sollen. Dieser Ansatz ist sicherer als die Blacklist, daher ist sie im Security-Umfeld die Regel.

In den nächsten Lektionen schauen wir uns verschiedene gängige ACL-Typen an und analysieren deren Eigenschaften. Wir starten mit einem kleinen Exkurs in die Netzwerk-ACLs, um den Zugriff auf einen Cisco-Router via SSH zu steuern.

Doch schauen wir zunächst, ob du aufgepasst hast – beantworte die folgende Quizfrage:

Nach oben scrollen