Mit CloudTracker überprivilegierte Benutzer in AWS finden

Überprivilegierte Benutzer in AWS mit CloudTracker

Zunächst müssen wir einige Begriffe definieren: Was ist ein überprivilegierter Benutzer und welche Probleme ergeben sich für eine Organisation mit überprivilegierten Benutzern? Ein Privileg kann als die Fähigkeit definiert werden, Elemente Ihrer (IT-)Infrastruktur oder eines speziellen (IT-)Systems auszuführen oder zu steuern. Der Besitzer eines Privilegs kann dieses für die tägliche Arbeit mit dem System verwenden. Der Besitzer kann eine echte Person oder eine Anwendung sein. Denken Sie beispielsweise an eine klassische Datenbankanwendung: Es gibt mindestens drei verschiedene Benutzergruppen mit unterschiedlichen Rollen:

  • Datenbankadministratoren (DBA): Sie installieren, konfigurieren und verwalten die Datenbank selbst
  • Anwendungsbenutzer: Die Anwendungen auf dem Server werden mit der Rolle ausgeführt
  • Persönlicher Benutzer: Sie fragen die Datenbank ab

In vielen IT-Systemen nimmt die Anzahl der Privilegien vom DBA zum Anwendungsbenutzer zum persönlichen Benutzer ab. Aber wissen Sie genau, welche Rolle in Ihrem IT-System welche Privilegien hat und welcher Benutzer welche Rolle hat? Insbesondere in großen Cloud-Umgebungen wie AWS ist diese Frage schwer zu beantworten, da auch hier viele Berechtigungen für Container, VMs und andere Infrastrukturelemente vorhanden sind.

Prinzip der geringsten Privilegien

Wenn Sie eine (neue) AWS-Umgebung planen, denken Sie möglicherweise über eine der folgenden Möglichkeiten nach, um Ihre Berechtigungen zu vergeben:

  • Geben Sie jedem Benutzer genau die Berechtigungen, die er oder sie für die tägliche Arbeit benötigt. Das Problem dabei ist, dass Sie zum Zeitpunkt der Einrichtung Ihrer Umgebung oft nicht genau wissen, welche Berechtigungen benötigt werden. Kommen im Laufe der Zeit neue Berechtigungen hinzu oder müssen zuvor nicht berücksichtigte Berechtigungen hinzugefügt werden, führt dies zu zusätzlichem Aufwand während des Lebenszyklus Ihrer Anwendung
    • Geben Sie jedem Benutzer mehr Berechtigungen als tatsächlich benötigt werden.

Der zweite Weg kann gefährlich sein, da ein Benutzer mit überprivilegierten Berechtigungen absichtlich oder unabsichtlich Operationen ausführen kann, die er oder sie nicht ausführen darf. Die Folgen können Datenverlust oder schwerwiegende Schäden an der Infrastruktur aufgrund von Aktionen sein, die eigentlich nicht ausgeführt werden sollten. Manchmal ist der Grund für überprivilegierte Benutzer die hierarchische Struktur eines Unternehmens. Manager verlangen möglicherweise Zugriff auf alles („Ich bin der Chef, also muss ich alles sehen und tun dürfen“), auch wenn sie nicht wissen, was sie tun. Ein weiterer Grund für eine Anhäufung von Privilegien kann die Tatsache sein, dass es in kleinen Unternehmen Mitarbeiter mit einer großen Anzahl von Aufgaben und Verantwortlichkeiten gibt.

Wir bei A&B empfehlen das „Prinzip der geringsten Privilegien“, das besagt, dass jeder (persönliche oder System-)Benutzer nur auf die Informationen und Ressourcen zugreifen können sollte, die für seinen legitimen Zweck erforderlich sind. Was ist also der beste Weg, um überprivilegierte Benutzer zu finden, d. h. Benutzer mit Berechtigungen, die ihnen zwar erteilt wurden, die sie aber nicht benötigen? In komplexen AWS-Umgebungen ist es theoretisch möglich, überprivilegierte Benutzer manuell zu suchen und zu überprüfen, dies ist jedoch zeitlich kaum zu bewältigen. Um systematisch nach überprivilegierten Benutzern zu suchen, benötigen Kunden Tool-Unterstützung für diese Aufgabe. CloudTracker ist ein Tool, das Kunden dabei hilft, diese Benutzer und Rollen zu finden, indem es CloudTrail-Protokolle mit aktuellen IAM-Richtlinien vergleicht.

CloudTrail ist ein AWS-Dienst, der Kunden hilft, die Aktivitäten in den Konten von AWS-Umgebungen zu überwachen. Er bietet Protokollierungsinformationen zu Aktionen über die Konsole, SDKs, Befehlszeilentools und andere Dienste. Die CloudTrail-Protokolle liefern somit die grundlegenden Informationen, wenn Sie nach Benutzern suchen, die mehr Berechtigungen als nötig haben.

Cloudtracker

CloudTracker ist ein Open-Source-Tool, das 2018 von Duo Security veröffentlicht wurde. CloudTrail-Protokolle sind die Datenquelle von CloudTracker, d. h. CloudTracker überprüft CloudTrail-Protokolle, um von einem Akteur initiierte API-Aufrufe zu finden, und vergleicht diese Aufrufe mit den Berechtigungen, die dem Akteur gewährt wurden. Dadurch identifiziert CloudTracker überprivilegierte Benutzer und empfiehlt, Berechtigungen basierend auf ihrer Nutzung zu widerrufen. Die Entfernung selbst muss anschließend manuell erfolgen.

Beachten Sie einige Einschränkungen bei der Verwendung von CloudTracker. CloudTrail zeichnet nicht alle AWS-API-Aufrufe auf, beispielsweise werden Aktionen auf Datenebene nicht aufgezeichnet. Da CloudTracker auf CloudTrail basiert, müssen Sie diese Einschränkung berücksichtigen. Ein weiterer Aspekt ist die Verwendung von ElasticSearch oder AWS Athena in CloudTracker: Als CloudTracker 2018 veröffentlicht wurde, mussten die CloudTrail-Protokolle in ElasticSearch geladen werden. Obwohl dies mit AWS Athena immer noch möglich ist, ist es eine Alternative für Unternehmen, die diesen zusätzlichen Schritt des Kopierens großer Mengen von Protokolldaten in ElasticSearch überspringen möchten. AWS Athena ist ein interaktiver Abfragedienst zum Analysieren von Daten in Amazon S3 mit Standard-SQL.

Eine detaillierte Beschreibung des Setups einer CloudTracker-Installation finden Sie auf GitHub. Dort sind auch einige Beispiele verfügbar, die die Verwendung des Befehlszeilentools zeigen.

Schauen wir uns das erste Beispiel an:

$ cloudtracker --account demo --list users --start 2018-01-01

alice

- bob

charlie

Für die Suche in den CloudTrail-Protokollen müssen Sie das Konto und das Startdatum angeben. „—list users“ gibt an, dass eine Liste von Benutzern angefordert wird. Beachten Sie das Präfix „-“ des Benutzers „bob“ in der Ausgabe. Dies zeigt an, dass der Benutzer bob ab dem 01.01.2018 nicht in den Protokollen gefunden wurde, sodass empfohlen wird, diesen Benutzer zu entfernen.

Es ist auch möglich, Rollen statt Benutzern mit „—list roles“ anzufordern:

cloudtracker --account demo --list roles --start 2018-01-01

admin

Während diese ersten Beispiele nur Benutzer oder Rollen auflisten, kann eine detailliertere Analyse für einen speziellen Benutzer oder eine spezielle Rolle durchgeführt werden:

cloudtracker --account demo --user alice

...

cloudwatch:describealarmhistory

cloudwatch:describealarms

- cloudwatch:describealarmsformetric

- cloudwatch:getdashboard

? cloudwatch:getmetricdata

...

+ s3:createbucket

...

Dieser Aufruf listet alle Aktionen auf, die Benutzerin Alice aufgrund ihrer Berechtigungen ausführen kann. Beachten Sie, dass die oben angezeigte Ausgabe nur ein Ausschnitt ist. Die meisten der möglichen Aktionen werden nicht verwendet. Sie können die Ausgabe mit „—show-used“ filtern, um nur die verwendeten Aktionen anzuzeigen.

Ein wichtiges Merkmal von CloudTracker ist die Möglichkeit, den Unterschied zwischen den gewährten und den verwendeten Berechtigungen anzuzeigen. Das Präfix jeder Ausgabezeile zeigt das Differenzergebnis:

Kein Präfix bedeutet: Berechtigung wurde gewährt und verwendet

Präfix „-“ bedeutet: Berechtigung wurde gewährt, aber nicht verwendet

Präfix „?“ bedeutet: Berechtigung wurde gewährt, aber es ist nicht bekannt, ob sie verwendet wurde, da die Aktion nicht in CloudTrail aufgezeichnet wird (siehe die oben genannten Einschränkungen der Verwendung von CloudTrail als Datenquelle)

Präfix „+“ bedeutet: Die Berechtigung wurde verwendet, obwohl sie derzeit nicht gewährt wird. Dies bedeutet, dass die Berechtigung gewährt wurde, als die Aktion ausgeführt wurde, und in der Zwischenzeit entfernt worden sein muss. Sie sollten darüber nachdenken, diese Berechtigung erneut zu gewähren, wenn sie versehentlich entfernt wurde

Nehmen Sie einfach Kontakt mit uns auf und wir helfen Ihnen bei der Integration von CloudTracker in Ihre Sicherheitstools zur Überwachung Ihrer AWS-Umgebung.

Weitere Blogbeiträge zu diesem Thema

Du hast Fragen? Schreib uns!
Hiermit akzeptiere ich die Datenschutzbestimmungen der Alice&Bob.Company GmbH.
Du hast Fragen? Schreib uns!
Sebastian Schäffer
Head of Business Operations & Growth
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.