Blog
AWS Open Source Observabilität: Visualisierung und Sicherheitsprüfung mit CloudMapper (Teil 1)

Wir definieren Observability als eine Reihe von Praktiken zum Sammeln, Korrelieren und Analysieren von Daten aus einem System, um die Überwachung, Fehlersuche und allgemeine Sicherheit zu verbessern.
Wenn es um Cloud Observability geht, sind im Laufe der Jahre mehrere Open Source- und proprietäre Tools verfügbar gewesen. Und obwohl Cloud-Anbieter eine breite Palette von Lösungen für die Überwachung anbieten, fehlen ihnen oft vollständige Funktionen für die Visualisierung oder komplexe Abfragen von Beziehungen zwischen den Elementen Ihrer Umgebung. Aus diesem Grund ist es üblich, dass Benutzer Anwendungen von Drittanbietern integrieren, um ihre Anforderungen zu erfüllen.
Viele Anbieter bieten heute hochwertige Lösungen von der Stange an. Sie sind aus mehreren Gründen oft die richtige Wahl für Produktionsumgebungen in Unternehmen:
- Getestete, geschäftlich zuverlässige Software, die den Erwartungen der Kunden entspricht.
- SLAs und Garantie.
- Häufig anpassbar an Nischen- und ungewöhnliche Anwendungsfälle.
- Kundensupport und verfügbare Handbücher/Dokumentation (aktuell und auf Anfrage).
- Ausgefeiltere Methoden zur Erkennung, Berichterstattung, Integration...
Aber welchen Wert haben Open-Source-Lösungen zu diesem Thema? Ich habe die Möglichkeiten und Grenzen für zwei Anwendungsfälle im Zusammenhang mit der Beobachtbarkeit untersucht:
- Visualisierung und Sicherheitsprüfung mit CloudMapper.
- Sicherheitsgraphen auf Basis von Graphdatenbanken mit Altimeter und Amazon Neptune.
Während Altimeter und Amazon Neptune in der nächsten Serie dieses Blogs behandelt werden, nähern wir uns jetzt einem häufigen Anwendungsfall für viele Cloud-Umgebungen: der Visualisierung seiner Cloud-Elemente auf Netzwerkdiagrammen und der Sicherheitsprüfung der aktuellen Infrastruktur.
Visualisierung und AWS
Es gibt viele kostenpflichtige Optionen zur dynamischen Visualisierung Ihrer AWS-Umgebung in Form eines vollständigen Diagramms. Sie stellen in der Regel Regionen, VPCs, Verbindungen, Arbeitslasten, IP-Adressen, öffentliche Zugänge usw. dar. Einige Optionen bieten auch Kostenübersichten pro Service oder Element. Diese Diagramme dienen als Übersicht über Ihre Infrastruktur und ermöglichen einen Überblick über jeden bereitgestellten Teil, ohne dass Sie in der AWS-Konsole die Services austauschen müssen. Ein dynamisches Diagramm ist eine wünschenswerte Funktion für viele Cloud-Benutzer und -Administratoren, liegt aber nur in der Reichweite von Unternehmensbudgets.
- In der Regel bieten Drittanbieter Lizenzen im Wert von mehreren tausend Euro pro Jahr an.
- AWS Workload Discovery (früher AWS Perspective) ist eine Implementierung, die Hunderte von Euro pro Monat an Kosten für die Cloud-Bereitstellung verursacht.
Gibt es also eine Option für Cloud-Benutzer mit begrenzten Mitteln? Studenten, Forschungsgruppen, persönliche Projekte, Betriebssystementwickler... könnten ebenfalls von der Visualisierung in ihren kleineren Implementierungen profitieren wollen.
Die Realität ist, dass es zwar viele kostenpflichtige Optionen gibt, es aber schwierig ist, etwas Vergleichbares in der Open-Source-Welt zu finden. Ich habe CloudMapper gefunden, und obwohl die Visualisierungsfunktionen nicht mehr gepflegt werden, ist es für die Zwecke dieses Blogbeitrags eines der "besten, die ich finden konnte".
Sicherheitsprüfung
Bei der Sicherheitsprüfung sieht die Sache ganz anders aus. Es gibt eine Vielzahl von offensiven und defensiven Open-Source-Tools, mit denen wir den Status unserer Cloud-Umgebung beurteilen können. Einige davon haben wir in diesem (großartigen) Repository zusammengestellt.
CloudMapper - Demo
Lassen Sie uns loslegen und das Tool ausprobieren. Folgen Sie dem Installationsverfahren für Ihr Betriebssystem. Sie werden im Grunde das Repository klonen, einige Build-Abhängigkeiten installieren und dann zusätzliche Bibliotheksanforderungen auf einer Python-Venv installieren.
Hinweis zur Fehlerbehebung: Wenn Sie mit Fehlern bezüglich der Versionen in der Datei requirements.txt konfrontiert sind, versuchen Sie, das strenge '=' durch ein '>=' zu ersetzen. Das hat bei mir funktioniert und einige nicht mehr verfügbare Abhängigkeiten behoben.
Nachdem Sie CloudMapper eingerichtet haben, stellen Sie sicher, dass Sie Ihre AWS CLI-Abhängigkeiten konfiguriert haben. Die Abhängigkeiten, die Sie verwenden, müssen die folgenden Berechtigungen haben:
- arn:aws:iam::aws:policy/SecurityAudit
- arn:aws:iam::aws:policy/job-function/ViewOnlyAccess
Meine eigene Umgebung visualisieren
Auf dem geklonten Repository können Sie, nachdem alle anfänglichen Einstellungen vorgenommen wurden, Informationen über Ihre Umgebung sammeln:
python cloudmapper.py collect --account <my_account> (entweder Name oder numerische ID)
Das wird ein bisschen dauern.
Danach müssen wir nur noch einen Bericht erstellen, ihn für die Darstellung vorbereiten und schließlich den Befehl zum Einrichten einer Webanwendung auf localhost:8000 ausführen.
python cloudmapper.py report --account <my_account>
python cloudmapper.py prepare --account <my_account>
python cloudmapper.py webserver --public

Nachdem Sie also http:// 0.0.0.0:8000:

Es zeigt meinen aktuellen Kontostand, bei dem ich in zwei VPCs gearbeitet habe. Eine für meinen
Ich konnte feststellen, dass sich beide VPCs dieselbe CIDR (10.0.0.0/16) teilen, was mir bei der Erstellung meiner VPC mit Terraform und einem Standardblock nicht aufgefallen ist. Das könnte in einigen Situationen, in denen VPC-Interkonnektivität ein Muss ist, zu Problemen führen.
Sie können auch sehen, dass die Load Balancer dem Internet ausgesetzt sind. Dieses Verhalten war beabsichtigt, aber falls die Datenbanken oder andere Elemente fälschlicherweise so konfiguriert wurden, dass sie dem Internet ausgesetzt sind, lässt sich dies anhand dieses Diagramms leicht erkennen.
Symbole haben nur begrenzte Möglichkeiten. Ein S3-Endpunkt hat zum Beispiel dasselbe Symbol wie ein S3-Bucket. Dennoch können wir jedes Element auswählen, um Details zu prüfen.

Überprüfen meiner Umgebung
Die Visualisierung ist eine wichtige Funktion, aber wir möchten unsere Umgebung überprüfen, um Schwachstellen und andere Sicherheitsbedenken zu erkennen. Glücklicherweise ist bei der Erstellung der Diagrammdaten auch ein Bericht unter 0.0.0.0:8000/account-data/report.html verfügbar. Es dauert eine Minute, bis die Schnittstelle geladen ist, und bis dahin sind die Daten ungenau.
Nachdem alle Daten geladen sind, sehen Sie ein Dashboard, das die Anzahl der Ressourcen, die Auslastung der Regionen und die Anzahl der Funde anzeigt... Außerdem werden alle in der Cloud-Infrastruktur gefundenen Schwachstellen nach Schweregrad geordnet im Abschnitt "Links zu Funden" aufgeführt. Wenn Sie auf einen der Links klicken oder nach unten scrollen, erhalten Sie weitere Details zu jedem Ereignis.
Lassen Sie uns einen Fund überprüfen, der in meiner Umgebung als 'HOCH' eingestuft wird.

Hier meldet der Scan, dass eine Richtlinie Dienste statt Personen als Principals definiert, die S3-Buckets auflisten. Diese Richtlinie wurde definiert, um Datenbankdiensten das Lesen/Listen des S3-Buckets zu ermöglichen. Sie können dann Ihr eigenes Risiko einschätzen und gegebenenfalls geeignete Maßnahmen ergreifen.
Hinweis: Diese Umgebung ist bereits zerstört und daher ist der Befund nicht mehr relevant.
Schlussfolgerungen
Was sind die Einschränkungen?
Wie bereits erwähnt, gibt es bei der Entscheidung für ein Gemeinschaftsprojekt wie dieses einige wichtige Punkte zu beachten. Einer davon könnte die Fortführung sein (zum Beispiel wird das Visualisierungsmodul nicht mehr gepflegt). Einige nicht unterstützte Funktionen werden daher nicht weiter ausgebaut.
Auf der anderen Seite bietet die Sicherheitsüberprüfung eine Vielzahl von Überprüfungen Ihrer AWS-Infrastruktur, kann aber wahrscheinlich nicht mit den meisten der verfügbaren kommerziellen Lösungen mithalten, da diese ständig weiterentwickelt und unterstützt werden. Zum Zeitpunkt der Erstellung dieses Artikels (Februar 2023) stammen die neueste Version und die funktionalen Änderungen aus dem November 2021.
Wer sollte dieses Tool verwenden?
Trotz der genannten Einschränkungen halte ich CloudMapper für eine erste Bewertung von Umgebungen, in denen noch keine anderen Tools implementiert sind, für hervorragend geeignet. Das Visualisierungstool kann Fehlkonfigurationen, wie z.B. unbeabsichtigte öffentliche Zugriffe oder ungenutzte EC2-Instanzen, mit nur einem Browser und ein paar Befehlen darstellen. Darüber hinaus bietet der Bericht zur Sicherheitsüberprüfung eine Reihe von Feststellungen, von denen viele leicht zu beheben sind.
Es ist auch möglich, einen regelmäßigen, geplanten Lauf von CloudMapper für Sicherheitsaudits zu implementieren und Benachrichtigungen für andere Kanäle zu erstellen. Die Autoren haben ein Beispiel für mehrere Konten mit nächtlichen Läufen und Slack-Benachrichtigungen implementiert. Es kann als Ergänzung zu anderen Prüfungen verwendet werden, die Sie bereits eingerichtet haben, und erfordert nur eine minimale Konfiguration.
Wenn sich Ihre Sicherheitsüberwachungsprozesse vollständig auf Open Source stützen, ist dies eine der Komponenten, die Sie in Ihrem Arsenal haben sollten. Es erfüllt zwei wichtige Zwecke der Beobachtung mit einem einzigen Tool und ist mit anderer, spezifischerer Software kompatibel.
Verfasst von
Martin Perez Rodriguez
DevSecOps and Cloud specialist at Xebia Security
Unsere Ideen
Weitere Blogs
Contact



