Windows-ACLs

Unter Windows basieren ACLs auf dem NTFS-Dateisystem sowie dem Sicherheitsmodell von Active Directory. Es gibt viele Bereiche, die durch ACLs auf Dateisystemebene geschützt werden können, unter anderem:

  • Bestimmte Systemverzeichnisse (Ordner), z.B. C:\Windows oder C:\Programme
  • Registry-Schlüssel
  • Dienste
  • Active Directory-Objekte
  • Gruppenrichtlinien
  • Netzwerk-Freigaben

Windows unterscheidet dabei insbesondere:

  • Discrectionary ACLs (DACL) – definieren, wer in welcher Form Zugriff auf Ressourcen erhält
  • System ACLs (SACL) – dienen dem Auditing und Logging und protokollieren, wer wie auf Objekte zugegriffen hat

Jedes sicherbare Objekt in Windows besitzt einen sogenannten Security Descriptor. Er enthält unter anderem den Besitzer (Owner), die DACL und die SACL.

Eine DACL enthält einzelne ACEs. Sie wiederum legen für einen Benutzer, eine Gruppe oder einen Computer Zugriffsberechtigungen fest.

„Moment mal! Computer können auch Zugriffsrechte erhalten?“

„Ja, tatsächlich können Computerkonten in Active Directory Zugriffsberechtigungen erhalten und benötigen diese z.B. für Gruppenrichtlinienobjekte oder den Zugriff auf das SYSVOL-Verzeichnis. Sie können auch Mitglieder von Gruppen sein, z.B. Domänencomputer oder Server.“

Windows verwendet feingranulare Rechte. Das Dateisystem NTFS nutzt intern sehr viele Einzelrechte, z.B.:

  • FILE_READ_DATA – Dateien lesen
  • FILE_WRITE_DATA – Dateien schreiben
  • DELETE – löschen
  • WRITE_DAC – Berechtigungen ändern
  • WRITE_OWNER – Besitzer ändern

Daraus werden Standardrechte gebildet, die direkt gesetzt werden können:

  • Lesen, Ausführen
  • Ordnerinhalt anzeigen
  • Schreiben
  • Ändern
  • Ausführen
  • Vollzugriff

Diese können einem sogenannten Sicherheitsprinzipal (Security Principal) vergeben werden. Dabei handelt es sich um eine sicherheitsrelevante Identität. Sie wird über ihre SID (Security Identifier) referenziert. Darüber haben wir bereits im Kursmodul B4 detailliert gesprochen.

Die DACL eines Objekts kannst du über dessen Eigenschaften über den Reiter Sicherheit aufrufen:

Im Feld Gruppen- oder Benutzernamen findest du alle Sicherheitsprinzipale, denen Berechtigungen für den Zugriff zugewiesen wurden. Markiere einen Eintrag, um die zugewiesenen Berechtigungen im Feld darunter zu prüfen.

⚠️ Wichtig: Unter Windows ist es nicht nur möglich, Zugriffsberechtigungen zu erteilen (Spalte Zulasssen), sondern auch explizit zu entziehen (Spalte Verweigern). Verweigerungen wirken stärker als Zulassungen und setzen sich immer durch, auch wenn der Sicherheitsprinzipal in einem anderen ACE eine entsprechende Zugriffsberechtigung erhält. Aus Verwaltungsgründen sollten Verweigerungen nur selten oder gar nicht zum Einsatz kommen.

Änderungen an bestehenden ACEs können nur dann vorgenommen werden, wenn die Vererbung deaktiviert wurde. Standardmäßig erben untergeordnete Objekte die ACEs der übergeordneten Objekte, also in der Regel Ordner. Klicke auf Erweitert, um diese Einstellungen anzupassen:

Hier kannst du zudem den Besitzer ändern, falls dies erforderlich ist. Nur der Besitzer kann die Zugriffsberechtigungen verwalten.

⚠️ Auch Administratoren können somit vom Zugriff ausgeschlossen werden. Sie können sich allerdings jederzeit als Besitzer eintragen und somit die Zugriffsberechtigungen erneut zuweisen.

Neue Einträge können über Bearbeiten – Hinzufügen erstellt werden:

Wie das funktioniert, hast du bereits im Praxis-Lab in B4 gelernt, daher wiederholen wir das an dieser Stelle nicht noch einmal im Detail.

Wie auch unter Linux arbeiten Windows-DACLs nicht nach dem First Match-Prinzip. Stattdessen erstellt Windows ein Access Token des Benutzers. Darin enthalten sind:

  • Benutzer-SID
  • Gruppen-SIDs
  • Privilegien
  • Sicherheitsattribute

Bei einem Zugriffsversuch werden zunächst die angeforderten Rechte bestimmt, also z.B. Lesen, Schreiben oder Löschen. Anschließend werden die ACEs sequenziell abgearbeitet – aber: Nicht jeder passende ACE beendet sofort die Verarbeitung. Stattdessen werden die gewährten Zugriffsberechtigungen kumuliert, wenn mehrere ACEs passen.

Wichtig ist, dass Verweigern-Einträge zuerst und priorisiert berücksichtigt werden. Sie überschreiben alle Gewähren-Einträge.

Wenn Alice also z.B. Vollzugriff durch eine Gruppenmitgliedschaft hat, aber zudem ein Eintrag für das Benutzerkonto Alice besteht, dem das Löschen explizit verweigert wird, bleibt als effektive Berechtigung alles außer Löschen.

Zudem wird intern noch geprüft, welche Zugriffsberechtigungen vererbt und welche explizit für das betreffende Objekt gesetzt wurden. Die sequenzielle Abarbeitung geschieht nach dem Konzept der sogenannten Canonical Order:

  1. Explizite Deny-ACEs
  2. Explizite Allow-ACEs
  3. Geerbte Deny-ACEs
  4. Geerbte Allow-ACEs

So wird vermieden, dass unerwartete Berechtigungen, widersprüchliche Ergebnisse oder Sicherheitslücken entstehen.

Da Benutzer in verschiedenen Gruppen und diese Gruppen in anderen Gruppen verschachtelt sein können und zudem Gewähren und Verweigern in den Berechtigungen unterschieden wird, kann eine DACL unter Windows sehr komplex werden und schwierig zu verwalten sein. Daher sollte das Berechtigungskonzept so einfach und klar wie möglich aufgebaut und konsequent umgesetzt werden.

Während DACLs zu den Preventive Security Controls gehören, sind SACLs der Kategorie Detective Security Controls zugeordnet. Sie verhindern nicht, dass jemand auf ein Objekt zugreift, können es aber beobachten und protokollieren. SACLs beantworten dabei die Frage: Welche Zugriffe sollen protokolliert werden? Sie definieren:

  • welche Zugriffe protokolliert werden
  • welche Benutzer überwacht werden
  • welche Aktionen geloggt werden
  • ob erfolgreiche oder fehlgeschlagene Zugriffe erfasst werden

Die Protokollierung erfolgt in der Ereignisanzeige im Sicherheitsprotokoll. Damit dies auch tatsächlich geschieht, müssen zwei Einstellungen angepasst werden:

  1. Die Überwachungsrichtlinien müssen für den Dateisystemzugriff konfiguriert werden
  2. Die Überwachung für das betreffende Objekt muss aktiviert werden

Dies funktioniert sowohl lokal auf einem Windows-System als auch über die Gruppenrichtlinien in Active Directory, wird für Client-Betriebssysteme aber nur für die Education-, Pro- und Enterprise-Edition von Windows 10/11 unterstützt, nicht für die Home-Edition. Im folgenden Beispiel wurde ein neues GPO namens Auditing erstellt, das die notwendigen Einstellungen enthalten soll. Unter Computerkonfiguration – Richtlinien – Windows-Einstellungen – Sicherheitseinstellungen – Erweiterte Überwachungsrichtlinien – Überwachungsrichtlinien können diverse Ereignisse für die Überwachung aktiviert werden. Unter Objektzugriff findet sich die Unterkategorie Dateisystem überwachen. Hier lässt sich die Überwachung grundsätzlich aktivieren – sowohl für erfolgreichen als auch erfolglosen Zugriff, wie die folgende Abbildung zeigt:

Ist das GPO in dieser Art konfiguriert und einer OU zugewiesen, in der sich der zu überwachende Computer befindet, können wir zum zweiten Schritt übergehen, bei dem wir die Überwachung für ein konkretes Objekt, z.B. einen Ordner festlegen. Dazu wechselst du in die Eigenschaften eines Objekts, z.B. eines Ordners und gehest auf den Reiter Sicherheit – genau da, wo auch die DACL verwaltet wird. Nun kannst du über Erweitert auf den Reiter Überwachung klicken:

Hier klickst du auf Weiter und dann auf Hinzufügen. An dieser Stelle kannst du den Sicherheitsprinzipal auswählen, den du überwachen möchtest:

Da du in der Regel nicht weißt, wer zugreift, kannst du hier die vordefinierte Gruppe Jeder auswählen. Den Überwachungstyp stellst du um auf Alles, um sowohl erfolgreiche, als auch erfolglose Zugriffe zu protokollieren. Wichtig sind die Berechtigungen. Du solltest hier in der Regel Vollzugriff aktivieren. Dieser Bereich ist irreführend: Er bedeutet nicht, dass jetzt jeder Vollzugriff hat, sondern dass jeglicher Zugriff, egal welcher Art, protokolliert wird:

Nach Klick auf OK wird der neue Eintrag in der Überwachungsübersicht angezeigt:

Diese Übersicht stellt die eigentlich SACL dar. Zusammen mit der DACL ist sie Bestandteil des Security Descriptors des jeweiligen Objekts, hier des Ordners SIEM Rollout

⚠️ Wichtig: Dieser Eintrag wird nur dann wirksam und löst den Überwachungsvorgang aus, wenn die Überwachungsrichtlinien für den betreffenden Computer entsprechend eingerichtet sind, wie in Schritt 1 gezeigt.

Da wir beide Schritte durchlaufen haben, ist für den betreffenden Ordner bzw. das Objekt ab sofort die Überwachung aktiv. Dies wird in der Ereignisanzeige unter Windows-Protokolle im Protokoll Sicherheit angezeigt. Über Aktuelles Protokoll filtern und den Aktionen rechts kannst du z.B. nach der Ereignis-ID 4663 suchen, um die ansonsten schnell überbordenden Einträge zu filtern:

⚠️ Es ist eine Kunst für sich, die komplex aufgebauten und zahlreichen Einträge der Windows-Protokolle zu verstehen und zu analysieren. Dies erfordert Übung und eine gute Filtertechnik. Daher solltest du auch sehr gut überlegen, welche Überwachungsvorgänge du aktivieren möchtest.

Ok, schauen wir, ob die die Essentials dieser Lektion verstanden hast. Löse das folgende Quiz:

Nach oben scrollen