Privilegi eccessivi senza server
Una funzione è un'entità e le sue credenziali sono ambientali.
Cos’è Privilegi eccessivi senza server?
Una funzione è un principio. Le credenziali del ruolo di esecuzione sono ambientali, quindi chiunque possa eseguire la funzione mantiene il ruolo senza rubare nulla. Ciò va bene finché un ridimensionatore di immagini non detiene autorizzazioni a livello di account, mantiene segreti nelle variabili di ambiente e accetta richieste non autenticate. Individuerai l'URL della funzione nel pannello di rete del browser, attiverai un flag di debug rimanente che scarica l'ambiente e leggerai un segreto di produzione come funzione. Quindi definirai l'ambito del ruolo, richiederai l'autenticazione IAM e sposterai i segreti in un riferimento al manager.
Cosa imparerai in Privilegi eccessivi senza server
- Una funzione è un'entità e le sue credenziali sono ambientali, quindi l'esecuzione del codice nella funzione costituisce un accesso immediato al suo ruolo.
- I segreti nelle variabili di ambiente vengono esposti a chiunque possa leggere la configurazione della funzione e vengono visualizzati nella diagnostica.
- Un URL di funzione non autenticato trasforma un'errata configurazione interna in una configurazione raggiungibile tramite Internet.
- La definizione del ruolo è la cosa più importante, perché limita il danno quando gli altri due controlli falliscono.
Privilegi eccessivi senza server — Fasi della formazione
-
Inizia dove tutti possono guardare
Bob non è dentro Vaelrick. È sul loro sito pubblico di elenchi di proprietà, la stessa pagina che vede qualsiasi acquirente. Non c'è nulla di privilegiato qui, ed è proprio per questo che inizia.
-
Guarda cosa richiede la pagina
Bob apre il pannello di rete del browser e ricarica la pagina, in modo da poter vedere le richieste effettuate dalla galleria prima che venga visualizzata qualsiasi immagine.
-
Risponde a chiunque
Bob chiama l'endpoint direttamente dal proprio computer, senza alcuna credenziale.
-
Il flag di debug scarica la sua identità
Bob aggiunge il parametro debug di cui gli ha parlato il sito. La funzione stampa il suo intero ambiente.
-
Indossa l'identità della funzione
I tre valori AWS_ del dump sono un set completo e funzionante di credenziali temporanee. Bob li carica in un profilo con nome sulla sua macchina e da quel momento la sua CLI può fungere da funzione.
-
Diventa la funzione
Il profilo è caricato. Bob pone ad AWS la prima domanda che qualsiasi utente malintenzionato pone con una nuova serie di credenziali: chi sono io adesso?
-
Fino a che punto arriva un creatore di miniature?
Una funzione che scrive miniature dovrebbe vedere un bucket. Bob li chiede tutti.
-
Prendi i gioielli della corona
Bob usa il ruolo per leggere un segreto che non ha assolutamente nulla a che fare con il ridimensionamento delle immagini.
-
Quale guasto ha causato il danno?
Prima della risposta, indica cosa ha trasformato un endpoint trapelato in una violazione della produzione.
-
Qualcuno sta usando la nostra chiave Stripe
L'elaboratore dei pagamenti di Vaelrick ha contrassegnato le chiamate API firmate con la chiave live da un indirizzo sconosciuto. Quella chiave risiede in Secrets Manager, che dovrebbe essere il posto sicuro per essa.
Copertura dei framework di sicurezza
CWE
- CWE-250 Execution with Unnecessary Privileges
- CWE-522 Insufficiently Protected Credentials
MITRE ATT&CK
- T1552 Unsecured Credentials
- T1078.004 Valid Accounts: Cloud Accounts
CIS Controls
- CIS 6 Access Control Management
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.AA Identity Management, Authentication, and Access Control