Wie deaktiviere ich AWS EC2-Metadaten?

In diesem Artikel erfahren Sie mehr über EC2-Metadaten und warum sie wichtig sind. Sie erfahren auch, wie Sie Metadaten deaktivieren, um sich vor Angriffen wie SSRF zu schützen.

Amazon Web Services (AWS) verfügt über einen Amazon Elastic Compute Cloud (Amazon EC2)-Service, der skalierbare Verarbeitungsfunktionen bietet. Durch die Verwendung von Amazon EC2 können Sie Apps schneller entwickeln und bereitstellen, ohne im Voraus in Hardware investieren zu müssen.

Starten Sie je nach Bedarf so viele oder so wenige virtuelle Server. Richten Sie Netzwerk- und Sicherheitseinstellungen ein und steuern Sie den Speicher mit Amazon EC2.

Informationen zu Ihrer Instance, die in einer laufenden Instance angepasst oder verwaltet werden können, werden als Instance-Metadaten bezeichnet. Zu den Kategorien von Instanzmetadaten gehören Hostname, Ereignisse und Sicherheitsgruppen. Darüber hinaus können Sie mithilfe von Instance-Metadaten auf die Benutzerdaten zugreifen, die Sie beim Starten Ihrer Instance angegeben haben.

Sie können beim Konfigurieren Ihrer Instanz ein kurzes Skript einfügen oder Parameter angeben. Mithilfe von Benutzerdaten können Sie generische AMIs erstellen und die Konfigurationsdateien zur Startzeit ändern.

Mithilfe von Instanzmetadatenoptionen können Sie neue oder vorhandene Instanzen einrichten, um die folgenden Aufgaben auszuführen:

  • Instanz-Metadatenanforderungen müssen über IMDSv2 gesendet werden
  • Geben Sie das Hop-Limit für die PUT-Antwort ein.
  • Zugriff auf Metadaten von Instanzen sperren
  Führen Sie während einer Präsentation eine Live-Umfrage durch und erhalten Sie sofortige Ergebnisse [PowerPoint]

Es ist möglich, mit einer der folgenden Techniken auf Metadaten von einer aktiven EC2-Instanz zuzugreifen: IMDSv1sIMDSv2

Der Instanzmetadatendienst ist als IMDS bekannt. Wie Sie vielleicht vermuten, sind die Methoden etwas anders; IMDSv1 verwendet ein Request/Response-Verfahren, während IMDSv2 sitzungsorientiert ist.

AWS empfiehlt Ihnen dringend, IMDSv2 zu verwenden, was die bevorzugte Methode ist. Standardmäßig verwendet das AWS SDK IMDSv2-Aufrufe, und Sie können Benutzer auffordern, ein neues EC2 mit aktiviertem IMDSv2 zu konfigurieren, indem Sie IAM-Bedingungsschlüssel in einer IAM-Richtlinie verwenden.

Verwenden Sie die folgenden IPv4- oder IPv6-URIs, um alle Arten von Instance-Metadaten einer laufenden Instance anzuzeigen.

IPv4

curl http://169.254.169.254/latest/meta-data/

IPv6

Curl http://[fd00:ec2::254]/neueste/meta-daten/

Die IP-Adressen sind Link-Local-Adressen und gelten nur für die Instanz.

Um Instanzmetadaten anzuzeigen, können Sie nur die Link-Local-Adresse 169.254.169.254 verwenden. Anfragen an die Metadaten über den URI sind kostenlos, es fallen also keine zusätzlichen Gebühren von AWS an.

Notwendigkeit der Deaktivierung von Metadaten

In AWS-Setups ist der SSRF-Angriff häufig und jedem bekannt. Angreifer, die Schwachstellen-Scans automatisieren und IAM-Anmeldeinformationen von öffentlich zugänglichen Online-Anwendungen sammeln, wurden von Mandiant (einem Cyber-Sicherheitsunternehmen) gefunden.

Die Implementierung von IMDSv2 für alle EC2-Instanzen, die zusätzliche Sicherheitsvorteile bietet, würde diese Risiken für Ihr Unternehmen reduzieren. Die Möglichkeit, dass ein Feind IAM-Anmeldeinformationen über SSRF stiehlt, würde mit IMDSv2 erheblich abnehmen.

  So aktivieren Sie die Dropbox-Unterstützung im Dolphin-Dateimanager

Die Verwendung von Server Side Request Forgery (SSRF), um Zugriff auf den EC2-Metadatendienst zu erhalten, ist eine der am häufigsten gelehrten Techniken für die Nutzung von AWS.

Der Metadatendienst ist für die meisten EC2-Instanzen unter 169.254.169.254 zugänglich. Diese enthält nützliche Informationen über die Instanz, wie z. B. ihre IP-Adresse, den Namen der Sicherheitsgruppe usw.

Wenn eine IAM-Rolle an eine EC2-Instance angehängt ist, enthält der Metadatendienst auch IAM-Anmeldeinformationen, um sich als diese Rolle zu authentifizieren. Wir können diese Zugangsdaten abhängig von der verwendeten IMDS-Version und den Möglichkeiten der SSRF stehlen.

Es ist auch zu bedenken, dass ein Angreifer mit Shell-Zugriff auf die EC2-Instance diese Anmeldeinformationen erhalten könnte.

In diesem Beispiel läuft ein Webserver auf Port 80 der EC2-Instance. Dieser Webserver weist eine einfache SSRF-Schwachstelle auf, die es uns ermöglicht, GET-Anforderungen an beliebige Adressen zu senden. Damit kann eine Anfrage an http://169.254.169.254 gesendet werden.

Um Metadaten zu deaktivieren

Indem Sie den HTTP-Endpunkt des Instanzmetadatendienstes blockieren, können Sie den Zugriff auf Ihre Instanzmetadaten verhindern, unabhängig davon, welche Version des Instanzmetadatendienstes Sie verwenden.

  Was ist Google Workspace und ersetzt es G Suite vollständig?

Sie können diese Änderung jederzeit rückgängig machen, indem Sie den HTTP-Endpunkt aktivieren. Verwenden Sie den CLI-Befehl modify-instance-metadata-options und setzen Sie den http-endpoint-Parameter auf disabled, um Metadaten für Ihre Instance zu deaktivieren.

Um Metadaten zu deaktivieren, führen Sie diesen Befehl aus:

aws ec2 modify-instance-metadata-options –instance-id i-0558ea153450674 –http-endpoint disabled

Metadaten deaktivieren

Sie können sehen, dass ich nach dem Deaktivieren meiner Metadaten beim Versuch, darauf zuzugreifen, eine FORBIDDEN-Meldung erhalte.

Wenn Sie Ihre Metadaten wieder aktivieren möchten, führen Sie diesen Befehl aus:

aws ec2 modify-instance-metadata-options –instance-id i-0558ea153450674 –http-endpoint enabled

Metadaten wieder aktivieren

Fazit

Metadaten können nützlich sein, um Informationen aus großen Datenspeichern zu extrahieren. Es kann jedoch auch missbraucht werden, um den Standort oder die Identität einer Person ohne deren Wissen oder Zustimmung zu erfahren. Da jede von Ihnen vorgenommene Änderung aufgezeichnet wird, einschließlich Löschungen und Kommentare, müssen Sie sich darüber im Klaren sein, dass sie Informationen enthalten kann, von denen Sie nicht möchten, dass andere sie sehen können. Daher ist das Entfernen von Metadaten entscheidend für die Wahrung Ihrer Online-Privatsphäre und -Anonymität.

Sie können auch einige wichtige AWS-Terminologien erkunden, die Ihr AWS-Lernen voranbringen.