
Verhindern Sie SSRF-Angriffe auf AWS EC2 durch automatisierte Upgrades auf den sichereren Instance Metadata Service v2 (IMDSv2).
SSRF-Angriffe auf AWS EC2 verhindern durch automatisierte Upgrades auf den sichereren Instance Metadata Service v2 (IMDSv2).
Zweck und Funktionalität
Entwicklungsteams können eine große Vielfalt an Compute-Infrastruktur in AWS haben, die sie vor bestimmten Schwachstellen schützen müssen, die den Metadatendienst ausnutzen. Der Metadatendienst muss auf Instanzen ausgeführt werden, wenn IAM verwendet wird oder wenn die Instanz beim Start Benutzerdaten benötigt. Die Einschränkung der Angriffsfläche Ihrer Instanzen ist entscheidend, um zu verhindern, dass Angreifer durch Diebstahl von Informationen des Dienstes in Ihre Umgebung eindringen können. Zahlreiche bekannte Angriffe in der Vergangenheit haben diesen speziellen Dienst genutzt, um eine Rolle auszunutzen, die an die Instanz gebunden ist, oder um sensible Daten zu erbeuten, die über den Metadatendienst zugänglich sind. Metabadger kann helfen, zu identifizieren, wo und wie Sie den Instance Metadata Service nutzen, und gibt Ihnen gleichzeitig die Möglichkeit, unerwünschte Angriffsmöglichkeiten zu reduzieren, um Ihr Gesamtrisiko beim Betrieb in EC2 zu senken.
Die Verwendung dieses Tools kann Ihre AWS-Compute-Infrastruktur beeinträchtigen, da nicht alle Dienste und Anwendungen entweder ohne den Metadatendienst oder mit Version 2 funktionieren. Seien Sie vorsichtig beim Einsatz in Ihrer Produktionsumgebung und haben Sie einen Rollback-Plan bereit, falls etwas ungewöhnlich erscheint. Metabadger verfügt über die integrierte Möglichkeit, mit dem Flag -v1 auf die Standardversion 1 des Dienstes zurückzusetzen. Sie können dies verwenden, um Ihre Instanzen schnell wieder auf die Standardeinstellung zurückzusetzen. Idealerweise sollten Sie dieses Tool ausführen und Ihre Metadatenversion in Nicht-Produktionsumgebungen als Testumgebung aktualisieren, bevor Sie es in der Produktion einsetzen.
Schritt 1
Zunächst möchten wir die Gesamtnutzung des Metadatendienstes in einer bestimmten AWS-Region ermitteln. Metabadger bewertet den aktuellen Status Ihrer Nutzung in der Region, auf die Ihre Anmeldeinformationen in Ihrer /.aws/credentials-Datei verweisen, oder die aktuell angenommene Rolle. Sie können auch das Flag --region angeben, wenn Sie den Befehl discover-metadata ausführen, um zu einer anderen als der aktuell konfigurierten Region zu wechseln. Wenn Sie eine gute Vorstellung davon haben, welche Version Ihre Instanzen ausführen und ob der Dienst aktiviert oder deaktiviert ist, können Sie einen viel konkreteren Aktionsplan zur Härtung des Dienstes erstellen. Beachten Sie, dass Sie die genaue Bedeutung jeder Metadatenoption hier nachlesen können.
Schritt 2
Einer der Bereiche, die bei der Umstellung auf Version 2 des Dienstes bewertet werden sollten, ist die Verwendung von IAM-Rollen. Metabadger ermöglicht es Ihnen, Instanzen in einer Region zu identifizieren, die möglicherweise bereits eine IAM-Rolle verwenden. Der Befehl discover-role-usage gibt eine Liste von Instanzen aus, an die Rollen gebunden sind. Wenn Sie viele Instanzen haben, die Rollen verwenden, sollten Sie bei der Aktualisierung des Dienstes auf Version 2 Vorsicht walten lassen, um sicherzustellen, dass die Gesamtfunktionalität Ihrer Workloads nicht beeinträchtigt wird.
Schritt 3
Nach Abschluss der ersten Erkundung und Bewertung können Sie nun einen stufenweisen Ansatz zur Härtung Ihrer Compute-Infrastruktur erstellen, um entweder Version 2 des Metadatendienstes zu verwenden oder ihn dort zu deaktivieren, wo er nicht benötigt wird. Der Befehl harden-metadata ermöglicht es Ihnen, standardmäßig alle Instanzen in einer bestimmten Region zu aktualisieren. Sie können auch Instanz-Tags mit dem Flag --tags oder eine Eingabedatei mit einer CSV-Liste von Instanzen übergeben, für die Sie eine Konfiguration anwenden möchten. Sobald Sie die entsprechenden Aktualisierungen auf Version 2 vorgenommen und den Dienst dort deaktiviert haben, wo er nicht verwendet wird, können Sie mit den Punkten aus Schritt 1 erneut prüfen, ob Ihre Umgebung abgesichert ist. Wenn Sie bestimmte Instanzen nicht aktualisieren möchten, können Sie sie über das Flag --exclusion nach Tag oder Instanz-ID ausschließen.
Metabadger erfordert eine IAM-Rolle oder Anmeldeinformationen mit den folgenden Berechtigungen:
ec2:ModifyInstanceAttribute
ec2:DescribeInstances
Wenn Sie Änderungen am Instance Metadata Service vornehmen, sollten Sie vorsichtig sein und zusätzliche Anleitungen von AWS befolgen, wie Sie sicher auf Version 2 upgraden können. Metabadger wurde entwickelt, um Sie bei diesem Prozess zu unterstützen und Ihre Compute-Infrastruktur in AWS weiter zu sichern.
AWS Best Practice Guide on Updating to IMDSv2
Installation mit pip
pip3 install --user metabadger
Installation über Github
$ git clone https://github.com/salesforce/metabadger
$ cd metabadger
$ pip install -e .
$ metabadger
Usage: metabadger [OPTIONS] COMMAND [ARGS]...
Metabadger is an AWS Security Tool used for discovering and hardening the
Instance Metadata service.