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 Nutzung 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.

EC2 METADATA

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 Instanzmetadaten sperren

Es ist möglich, mit einer der folgenden Techniken auf Metadaten von einer aktiven EC2-Instance zuzugreifen: IMDSv1\sIMDSv2

Der Instanzmetadatendienst ist bekannt als IMDS. 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 ist die AWS-SDK verwendet 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]/latest/meta-data/

normal-2-1

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 von verwenden 169.254.169.254 . Anfragen an die Metadaten über den URI sind kostenlos, es fallen also keine zusätzlichen Gebühren von AWS an. 

Need of Disabling Metadata

ssrf

In AWS-Setups ist die SSRF Angriff ist häufig und jedem bekannt. Angreifer, die Schwachstellen-Scans automatisieren und IAM-Anmeldeinformationen von öffentlich zugänglichen Online-Anwendungen sammeln, wurden von Mandiant (einer Cyber-Sicherheitsfirma) 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.

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 zugänglich 169.254.169.254. 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 2 der EC80-Instanz. Dieser Webserver weist eine einfache SSRF-Schwachstelle auf, die es uns ermöglicht, GET-Anforderungen an beliebige Adressen zu senden. Dies kann verwendet werden, um eine Anfrage an zu senden http://169.254.169.254.

To Disable Metadata

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.

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.

Führen Sie diesen Befehl aus, um Metadaten zu deaktivieren:

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

deaktivieren-1-1
Metadaten deaktivieren

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

Wenn du möchtest Aktivieren Sie Ihre Metadaten erneut, führen Sie diesen Befehl aus:

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

aktivieren-1-1
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 es jede von Ihnen vorgenommene Änderung, einschließlich Löschungen und Kommentare, aufzeichnet, müssen Sie sich darüber im Klaren sein, dass es möglicherweise Informationen enthält, 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 erkunden AWS-Schlüsselterminologien die Ihr AWS Learning voranbringen.