Misbruik van metagegevens van instanties
SSRF plus een metadata-eindpunt staat gelijk aan gestolen rolreferenties.
Wat is Misbruik van metagegevens van instanties?
De instance-metagegevensservice beantwoordt elk verzoek dat vanuit de instance wordt gedaan, en een van de dingen die hij teruggeeft zijn de tijdelijke inloggegevens van de instancerol. Het authenticeert niets, waardoor een gewone bug voor vervalsing van verzoeken op de server verandert in diefstal van cloudgegevens. U verwijst de source_url van een importfunctie naar 169.254.169.254, leest de toegangssleutel, het geheim en het sessietoken en gebruikt deze om gegevens te bereiken die de toepassing nooit zou kunnen bereiken. De oplossing is IMDSv2: vereist een sessietoken zodat een enkele vervalste GET niet kan worden voltooid, en stel de responshoplimiet in.
Wat je leert in Misbruik van metagegevens van instanties
- De metadataservice verstrekt rolreferenties aan alles wat een verzoek kan indienen vanuit de instance, zonder eigen authenticatie.
- Een bug bij het vervalsen van verzoeken in de applicatie wordt diefstal van cloudgegevens en vervolgens een draaipunt in het besturingsvlak.
- Het vereisen van een sessietoken verandert een enkel vervalst verzoek in een uitwisseling in twee stappen die de meeste vervalste bugs niet kunnen voltooien.
- Repareer dit in de instanceconfiguratie, omdat dit elke bug bij het vervalsen van verzoeken omvat, in plaats van de bug die is gevonden.
Misbruik van metagegevens van instanties — Trainingsstappen
-
Een server die voor u ophaalt
Bob werkt bij Vurloch, een bedrijf waarvan de software gebouwinspecties uitvoert: schema's, rapporten en de toegangsgegevens die inspecteurs nodig hebben om eigendommen binnen te komen. Eén kenmerk valt hem op, omdat het ophalen zelf plaatsvindt. Inspecteurs kunnen een rapport importeren door een URL te plakken. De server van Vurloch haalt het op. Dat betekent dat Bob de server van Vurloch dingen kan laten vragen waar Bob niet direct bij kan.
-
Wat de functie eigenlijk doet
Voordat hij het aanraakt, leest Bob wat de pagina te bieden heeft. Het is een importtool: plak een link naar een inspectierapport en Vurloch archiveert deze tegen de woning. Het interessante deel is wie het downloaden doet.
-
Gebruik de functie zoals bedoeld
Hij begint het te gebruiken zoals een inspecteur dat zou doen: plak de rapport-URL van een partner en laat Vurloch deze ophalen. Wat hij in werkelijkheid doet, is het verzoek op de telefoon krijgen, zodat hij ernaar kan kijken.
-
De URL is slechts een parameter
Het importeren werkte. Bob opent het netwerkpaneel en kijkt naar wat de pagina daadwerkelijk heeft verzonden, omdat een functie die URL's ophaalt alleen interessant is als hij de URL beheert.
-
Wijs het naar de metadataservice
Er is één adres dat alleen antwoordt vanuit een cloudinstantie: de metadataservice, op een vast link-local IP. Het verkoopt de eigen rolreferenties van de instantie aan alles op de instantie die erom vraagt. Bob bewerkt het vastgelegde verzoek, vervangt de partner-URL door dat adres en verzendt het opnieuw.
-
Het heeft de inloggegevens opgehaald
De server deed precies wat hem werd gevraagd en gaf terug wat er aan de andere kant uitkwam.
-
Wiens geloofsbrieven zijn deze
Bob slaat de drie waarden op in een profiel en vraagt aan de cloud wie hij nu is.
-
Wat de server kon bereiken, maar dat de app nooit heeft blootgelegd
De aanvraag kan aangifte doen tegen een pand. De rol erachter kan veel meer, en Bob gaat op zoek naar de gegevens die de app bewaart maar nooit uitdeelt. Hij streamt het inspectiearchief rechtstreeks naar zijn terminal.
-
Waar de inloggegevens vandaan kwamen
Bob beschikt over fysieke toegangsgegevens voor tienduizenden eigendommen, via een functie die alleen URL's ophaalt.
-
De identiteit van de server, gebruikt als een persoon
De monitoring van Vurloch markeert de rolleesopslag van de app-instantie waarvoor geen reden bestaat om deze aan te raken.
Dekking van beveiligingsframeworks
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