Gil Kirkpatrick

Wie so oft bei Active Directory werden einige der schlimmsten Sicherheitslücken durch Fehlkonfigurationen verursacht, die potenziellen Cyber-Bedrohungen Tür und Tor öffnen. Eine häufige Einstellung, die von Cyberkriminellen gerne ausgenutzt wird, ist die uneingeschränkte Delegation.

Was ist uneingeschränkte Delegation und warum ist uneingeschränkte Delegation ein Sicherheitsrisiko? Bei der Delegierung wird einem Computer gestattet, die Kerberos-Authentifizierungstickets eines Benutzers zu speichern und dann diese Tickets zu verwenden, um sich als der Benutzer auszugeben und im Namen des Benutzers zu handeln. Uneingeschränkte Delegation ist eine Konfigurationseinstellung, die viele mehrstufige Webanwendungen benötigen, um zu funktionieren. Diese Einstellung hat jedoch Auswirkungen auf die Sicherheit, da ein Computer, der die Kerberos-Ticket-Informationen für eine Reihe von Benutzern speichert, ein offensichtliches Ziel für Angreifer darstellt. Wenn die Angreifer diese Tickets erbeuten können, können sie mit der Identität und den Rechten dieser Benutzer agieren.

Wenn diese Einstellung so riskant ist, warum konfigurieren Administratoren dann Server mit uneingeschränkter Delegation anstelle der traditionellen eingeschränkten Delegation? Wahrscheinlich, weil dies in frühen Versionen der Active Directory-Umgebung die einzige Form der Delegation war, die unterstützt wurde, und weil sie auch am einfachsten zu konfigurieren ist und nur ein einziges Kontrollkästchen erfordert. Und wenn die Konfiguration der uneingeschränkten Delegation die Anwendung zum Laufen bringt, ist doch alles gut, oder? Aber es gibt in der Tat einen guten Grund, diese Einstellung zu überdenken. Durch das Entfernen der uneingeschränkten Delegation wird ein schwaches Glied in der Kette der vertrauenswürdigen Authentifizierung beseitigt, das bei Missbrauch erheblichen Schaden anrichten kann.

Verwandte Lektüre

Wurzeln der uneingeschränkten Delegation

Die Wurzeln dieses potenziellen Sicherheitsrisikos lassen sich 20 Jahre zurückverfolgen. Microsoft führte die uneingeschränkte Kerberos-Delegierung in Windows Server 2000 ein, um es Diensten zu ermöglichen, im Namen eines authentifizierten Benutzers auf andere Dienste zuzugreifen, ohne dass dieser sich erneut authentifizieren muss. Wenn sich ein Benutzer beispielsweise bei einem Webserver authentifiziert hat, kann dieser Webserver den Benutzer verkörpern und auf Backend-Datenbanken zugreifen, ohne dass der Benutzer seine Anmeldedaten erneut eingeben muss. Wenn die uneingeschränkte Delegation für ein Konto aktiviert ist, kann es den Benutzer für jeden Dienst in derselben Domäne ausgeben.

Diese Funktion erleichterte zwar das Leben der Benutzer (und Administratoren), stellte aber auch ein offensichtliches Risiko dar. Wenn ein Server, auf dem die uneingeschränkte Delegation aktiviert ist, unter der Kontrolle von Bedrohungsakteuren steht, könnten diese dieses Vertrauen missbrauchen, um sich in der gesamten Umgebung Zugang zu verschaffen. Microsoft versuchte, dieses Risiko durch die Einführung der eingeschränkten Delegation in Windows Server 2003 zu mindern, mit der Domänenadministratoren einschränken konnten, auf welche Dienste ein bestimmter Server zugreifen konnte.

Mit der Veröffentlichung von Windows Server 2012 gab Microsoft den Dienstadministratoren die Möglichkeit zu entscheiden, ob Front-End-Dienste auf Back-End-Ressourcen zugreifen können. Vor dieser Änderung konnte nur ein Domänenadministrator die Delegationsprivilegien kontrollieren, so dass Dienstadministratoren keine einfache Möglichkeit hatten, herauszufinden, welche Front-End-Dienste auf die ihnen gehörende Ressource zugreifen konnten und welche potenziellen Angriffswege sich dadurch boten. Dieser als ressourcenbasierte eingeschränkte Delegation (Resource Based Constrained Delegation, RBCD) bekannte Ansatz der Active Directory-Delegierung ist am schwersten zu missbrauchen.

Im Vergleich dazu ist die uneingeschränkte Delegation am unsichersten. Wenn Angreifer eine unsichere Kerberos-Delegation missbrauchen können, können sie alle möglichen bösartigen Aktivitäten verschleiern, indem sie einen legitimen Benutzer imitieren. Ein Angreifer, der Zugriff auf einen Webserver mit dieser Konfiguration hat, könnte das Ticket Granting Ticket (TGT) des Benutzers stehlen, das im Speicher des Servers gespeichert ist, und es dazu verwenden, sich als dieser Benutzer auszugeben und seine Zugriffsrechte zu nutzen oder den Zugriff durch Privilegienerweiterung zu verbessern. Diese Tatsache macht die uneingeschränkte Delegation zu einem idealen Mechanismus für laterale Bewegungen in der gesamten Umgebung. Ein TGT, das beispielsweise einem Domänenadministrator gehört, könnte dem Angreifer Zugang zu einem Dienst seiner Wahl verschaffen - oder möglicherweise auf ein KRBTGT-Konto zugreifen und einen Golden-Ticket-Angriff starten.

Ein Angreifer kann das Active Directory PowerShell-Modul-Cmdlet Get-ADComputer verwenden, um Computer zu finden, bei denen diese Einstellung aktiviert ist, und sich dann an die Arbeit machen. Sie können zum Beispiel Mimikatz verwenden, um jedes Dienstticket im Speicher des Systems zu extrahieren. Die negativen Auswirkungen dieser Einstellung sind klar.

Verbessern Sie die AD-Sicherheit durch Deaktivieren der uneingeschränkten Delegation

Die gute Nachricht ist, dass Sie die Sicherheitslücke, die durch uneingeschränkte Delegation entsteht, schließen können, indem Sie diese Einstellung einfach deaktivieren. Damit die uneingeschränkte Delegation wirksam wird, müssen Domänenadministratoren sie für Konten aktivieren, indem sie auf der Registerkarte Delegation in der ADUC-Verwaltungskonsole das Kontrollkästchen "Diesem Computer für die Delegation an jeden Dienst vertrauen (nur Kerberos)" aktivieren.

Angesichts der hohen Risiken, die mit der Aktivierung dieser Einstellung verbunden sind, können Unternehmen ihre Sicherheitslage verbessern, indem sie alle Server mit aktivierter uneingeschränkter Delegation identifizieren, die Einstellung deaktivieren und sie durch eingeschränkte Delegation für Server ersetzen, die dies erfordern. Administratorkonten sollten auf "Konto ist sensibel und kann nicht delegiert werden" gesetzt werden, und Konten mit hohen Rechten sollten in die Sicherheitsgruppe "Geschützte Benutzer" aufgenommen werden. Administratoren können mit den PowerShell-Skripten nach Forests mit eingehenden Vertrauensstellungen, die eine TGT-Delegation zulassen, und nach Sicherheitsprinzipien, die eine uneingeschränkte Delegation erlauben, suchen. Sie können eine uneingeschränkte Delegation auch durch die Untersuchung von Windows-Ereignissen erkennen. Wenn ein Kerberos-Ticket ausgestellt wird, protokolliert ein Active Directory-Domänencontroller Sicherheitsereignisse, die Informationen über die Zieldomäne enthalten. Sie können diese Ereignisse untersuchen, um festzustellen, ob eine uneingeschränkte Delegation bei eingehenden Vertrauensstellungen verwendet wird. Sie können auch Folgendes herunterladen und ausführen Purple Knightherunterladen und ausführen, ein kostenloses Sicherheitsbewertungstool, das von den AD-Experten von Semperis entwickelt wurde und Ihre AD-Umgebung auf mehr als 80 Sicherheitsindikatoren, einschließlich uneingeschränkter Delegation, überprüft.

Die Deaktivierung der uneingeschränkten Delegation kann zu Kompatibilitätsproblemen bei einigen Anwendungen führen, die auf diese Funktion angewiesen sind. Das bedeutet, dass Sie diese Anwendungen neu konfigurieren müssen, um die eingeschränkte Delegation oder RBCD zu verwenden. Wie immer müssen Unternehmen bedenken, dass AD-Sicherheit mehr umfasst als nur das Patchen von Code-Schwachstellen. Die Verhinderung von Angriffen bedeutet auch, dass Sie Maßnahmen ergreifen müssen, um die Angriffsfläche zu verringern und Probleme proaktiv zu verhindern, bevor sie entstehen.