Abuso dei metadati dell'istanza
SSRF più un endpoint di metadati equivalgono alle credenziali del ruolo rubate.
Cos’è Abuso dei metadati dell'istanza?
Il servizio di metadati dell'istanza risponde a qualsiasi richiesta effettuata dall'interno dell'istanza e una delle cose che restituisce sono le credenziali temporanee del ruolo dell'istanza. Non autentica nulla, il che trasforma un normale bug di falsificazione delle richieste lato server in un furto di credenziali cloud. Indicherai source_url di una funzione di importazione a 169.254.169.254, leggerai la chiave di accesso, il segreto e il token di sessione e li utilizzerai per raggiungere dati che l'applicazione non potrebbe mai raggiungere. La soluzione è IMDSv2: richiede un token di sessione in modo che un singolo GET contraffatto non possa essere completato e imposta il limite di hop di risposta.
Cosa imparerai in Abuso dei metadati dell'istanza
- Il servizio di metadati vende le credenziali del ruolo a tutto ciò che può effettuare una richiesta dall'interno dell'istanza, senza alcuna autenticazione propria.
- Un bug che falsifica le richieste nell'applicazione diventa un furto di credenziali cloud e quindi un pivot del piano di controllo.
- La richiesta di un token di sessione trasforma una singola richiesta contraffatta in uno scambio in due passaggi che la maggior parte dei bug di contraffazione non può completare.
- Risolvilo nella configurazione dell'istanza, perché copre ogni bug di falsificazione delle richieste anziché quello trovato.
Abuso dei metadati dell'istanza — Fasi della formazione
-
Un server che recupera per te
Bob lavora a Vurloch, un'azienda il cui software esegue ispezioni edilizie: orari, rapporti e dettagli di accesso necessari agli ispettori per accedere alle proprietà. Una caratteristica lo colpisce perché è il recupero stesso. Gli ispettori possono importare un report incollando un URL. Il server di Vurloch lo recupera. Ciò significa che Bob può fare in modo che il server di Vurloch richieda cose che Bob non può raggiungere direttamente.
-
Cosa fa effettivamente la funzionalità
Prima di toccarlo, Bob legge cosa offre la pagina. È uno strumento di importazione: incolla un collegamento a un rapporto di ispezione e Vurloch lo archivia contro la proprietà. La parte interessante è chi esegue il download.
-
Utilizzare la funzionalità come previsto
Inizia utilizzandolo come farebbe un ispettore: incolla l'URL del rapporto di un partner e lascia che Vurloch lo recuperi. Quello che sta realmente facendo è trasmettere la richiesta in modo da poterla esaminare.
-
L'URL è solo un parametro
L'importazione ha funzionato. Bob apre il pannello di rete e guarda cosa ha effettivamente inviato la pagina, perché una funzionalità che recupera gli URL è interessante solo se controlla l'URL.
-
Indirizzalo al servizio di metadati
Esiste un indirizzo che risponde solo dall'interno di un'istanza cloud: il servizio di metadati, su un IP locale con collegamento fisso. Vende le credenziali del ruolo dell'istanza a qualsiasi cosa sull'istanza che lo richieda. Bob modifica la richiesta acquisita, sostituendo l'URL del partner con quell'indirizzo e la invia nuovamente.
-
Ha recuperato le credenziali
Il server ha fatto esattamente quello che gli era stato chiesto e ha restituito ciò che è uscito dall'altra parte.
-
Di chi sono queste credenziali?
Bob salva i tre valori in un profilo e chiede al cloud chi è adesso.
-
Ciò che il server potrebbe raggiungere che l'app non ha mai esposto
L'applicazione può presentare una denuncia contro una proprietà. Il ruolo che sta dietro può fare molto di più e Bob va alla ricerca dei dati che l'app conserva ma non distribuisce mai. Trasmette l'archivio delle ispezioni direttamente al suo terminale.
-
Da dove provengono le credenziali
Bob dispone dei dettagli di accesso fisico per decine di migliaia di proprietà, rilevati tramite una funzionalità che recupera semplicemente gli URL.
-
L'identità del server, utilizzata come persona
Il monitoraggio di Vurloch segnala il ruolo dell'istanza dell'app che legge l'archiviazione che non ha motivo di toccare.
Copertura dei framework di sicurezza
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