Missbrauch von Instanzmetadaten
SSRF plus ein Metadatenendpunkt entsprechen gestohlenen Rollenanmeldeinformationen.
Was ist Missbrauch von Instanzmetadaten?
Der Instanzmetadatendienst beantwortet alle Anfragen innerhalb der Instanz und gibt unter anderem die temporären Anmeldeinformationen der Instanzrolle zurück. Es wird nichts authentifiziert, was einen gewöhnlichen serverseitigen Anforderungsfälschungsfehler in einen Diebstahl von Cloud-Anmeldeinformationen verwandelt. Sie verweisen auf die Quell-URL einer Importfunktion auf 169.254.169.254, lesen den Zugriffsschlüssel, das Geheimnis und das Sitzungstoken und verwenden diese, um auf Daten zuzugreifen, die die Anwendung niemals erreichen könnte. Der Fix ist IMDSv2: Erfordern Sie ein Sitzungstoken, damit ein einzelner gefälschter GET nicht abgeschlossen werden kann, und legen Sie das Antwort-Hop-Limit fest.
Was Sie lernen in Missbrauch von Instanzmetadaten
- Der Metadatendienst verteilt Rollenanmeldeinformationen an alles, was innerhalb der Instanz eine Anfrage stellen kann, ohne dass eine eigene Authentifizierung erforderlich ist.
- Ein Request-Forging-Fehler in der Anwendung führt zu einem Cloud-Anmeldedatendiebstahl und dann zu einem Pivot auf der Steuerungsebene.
- Durch die Anforderung eines Sitzungstokens wird aus einer einzelnen gefälschten Anfrage ein zweistufiger Austausch, den die meisten gefälschten Fehler nicht abschließen können.
- Beheben Sie das Problem in der Instanzkonfiguration, da diese alle Fehler beim Request-Forging abdeckt und nicht den gefundenen.
Missbrauch von Instanzmetadaten — Trainingsschritte
-
Ein Server, der für Sie holt
Bob arbeitet bei Vurloch, einem Unternehmen, dessen Software Gebäudeinspektionen durchführt: Zeitpläne, Berichte und die Zugangsdaten, die Inspektoren benötigen, um Zugang zu Immobilien zu erhalten. Ein Feature fällt ihm besonders auf, denn es erledigt den Abruf selbst. Prüfer können einen Bericht importieren, indem sie eine URL einfügen. Vurlochs Server ruft es ab. Das bedeutet, dass Bob Vurlochs Server dazu bringen kann, Dinge anzufordern, die Bob nicht direkt erreichen kann.
-
Was die Funktion tatsächlich bewirkt
Bevor er es berührt, liest Bob, was die Seite bietet. Es handelt sich um ein Importtool: Fügen Sie einen Link zu einem Inspektionsbericht ein und Vurloch legt ihn bei der Immobilie ab. Der interessante Teil ist, wer den Download durchführt.
-
Nutzen Sie die Funktion wie vorgesehen
Er verwendet es zunächst so, wie es ein Inspektor tun würde: Er fügt die Berichts-URL eines Partners ein und lässt sie von Vurloch abrufen. Was er wirklich tut, ist, die Anfrage auf den Draht zu bekommen, damit er sie sich ansehen kann.
-
Die URL ist nur ein Parameter
Der Import hat funktioniert. Bob öffnet das Netzwerk-Panel und schaut sich an, was die Seite tatsächlich gesendet hat, denn eine Funktion zum Abrufen von URLs ist nur dann interessant, wenn er die URL kontrolliert.
-
Richten Sie es auf den Metadatendienst
Es gibt eine Adresse, die nur innerhalb einer Cloud-Instanz antwortet: der Metadatendienst auf einer festen lokalen IP-Adresse. Es gibt die eigenen Rollenanmeldeinformationen der Instanz an alles auf der Instanz weiter, das eine Anfrage stellt. Bob bearbeitet die erfasste Anfrage, ersetzt die Partner-URL durch diese Adresse und sendet sie erneut.
-
Es wurden die Anmeldeinformationen abgerufen
Der Kellner tat genau das, was von ihm verlangt wurde, und gab am anderen Ende das zurück, was herauskam.
-
Wessen Referenzen sind das?
Bob speichert die drei Werte in einem Profil und fragt die Cloud, wer er jetzt ist.
-
Was der Server erreichen konnte, wurde von der App nie offengelegt
Der Antrag kann eine Anzeige gegen eine Immobilie einreichen. Die Rolle dahinter kann weit mehr und Bob macht sich auf die Suche nach den Daten, die die App speichert, aber nie weitergibt. Er streamt das Inspektionsarchiv direkt auf sein Terminal.
-
Woher die Anmeldeinformationen kamen
Bob verfügt über physische Zugangsdaten für Zehntausende von Immobilien, die über eine Funktion erfasst werden, die lediglich URLs abruft.
-
Die Identität des Servers, verwendet wie eine Person
Die Überwachung von Vurloch weist darauf hin, dass der Rollenlesespeicher der App-Instanz keinen Grund hat, ihn zu berühren.
Abdeckung der Sicherheits-Frameworks
CWE
- CWE-918 Server-Side Request Forgery (SSRF)
- CWE-522 Insufficiently Protected Credentials
MITRE ATT&CK
- T1552.005 Unsecured Credentials: Cloud Instance Metadata API
CIS Controls
- CIS 4 Secure Configuration of Enterprise Assets and Software
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security