
Dimostra una vulnerabilità di enumerazione non autenticata in un endpoint pubblico di consultazione di certificati, esponendo dati personali come CPF e RG. Include una PoC che utilizza Google dorks e LinkedIn per raccogliere identificatori, con dettagli su impatto e mitigazione.
È stato identificato un endpoint pubblico che consente la ricerca di certificati utilizzando un identificatore prevedibile (codice del certificato), senza alcun meccanismo di autenticazione o autorizzazione.
Enumerando questo identificatore, un attaccante può accedere a dati personali di terzi, tra cui nome completo, CPF (numero di registrazione del contribuente individuale brasiliano), RG (numero della carta d'identità brasiliana), data di nascita e luogo di nascita.
Si osserva inoltre che, anche quando i titolari dei certificati scelgono di condividere pubblicamente i propri diplomi con dati personali parzialmente oscurati (ad esempio, su reti professionali o altre piattaforme), l'identificatore del certificato spesso rimane visibile. A partire da questo identificatore, è possibile interrogare direttamente l'endpoint e ottenere i dati completi, aggirando completamente il meccanismo di oscuramento implementato nell'interfaccia.
https://www.fiap.com.br/consultadocumento
Identificatore a 8 caratteri
A scopo di proof-of-concept (PoC), sono state condotte ricerche utilizzando tecniche Google dorks per individuare immagini di certificati disponibili pubblicamente. Inoltre, sono stati identificati esempi su profili LinkedIn in cui i titolari dei certificati condividevano i propri certificati.
Da queste fonti pubbliche, è stato possibile estrarre gli identificatori dei certificati visibili e, sulla base di essi, compilare un elenco di codici validi. Utilizzando questi identificatori sull'endpoint vulnerabile, è stato possibile accedere ai dati completi associati a ciascun certificato, dimostrando la fattibilità dello sfruttamento su larga scala.
Va notato che la tecnica impiegata ha utilizzato esclusivamente informazioni pubbliche e ricognizione passiva, dimostrando che un attaccante non necessita di accesso privilegiato per sfruttare la vulnerabilità.
Vedere l'esempio di seguito.
La vulnerabilità identificata consente l'accesso non autorizzato a dati personali altamente sensibili, tra cui CPF (codice fiscale brasiliano), RG (documento d'identità nazionale brasiliano), nome completo, data di nascita e luogo di nascita, senza richiedere alcuna autenticazione. La possibilità di enumerare l'identificatore del certificato, unita alla raccolta di questi identificatori da fonti pubbliche, consente l'estrazione di informazioni su larga scala, ampliando significativamente la superficie di esposizione.
Questo scenario consente l'uso improprio dei dati per frodi, furto d'identità e attacchi di ingegneria sociale altamente mirati, poiché le informazioni esposte sono ampiamente utilizzate come meccanismo di validazione nel contesto brasiliano. Inoltre, la falla potrebbe comportare impatti normativi significativi, soprattutto nel contesto della Legge Generale sulla Protezione dei Dati (LGPD), considerando l'esposizione di dati personali senza un'adeguata base giuridica o controllo degli accessi.
Infine, è importante sottolineare che lo sfruttamento non richiede alcun livello di privilegio o autenticazione e può essere effettuato da agenti esterni in modo automatizzato, il che aumenta significativamente la criticità della vulnerabilità.
Per mitigare il rischio di enumerazione, si raccomanda che l'identificatore del certificato venga sostituito con un valore imprevedibile, come un token generato in modo sicuro (ad esempio, basato su hash come MD5 o, preferibilmente, algoritmi più robusti con una componente casuale), garantendo che non sia possibile dedurre o enumerare altri certificati validi.
Inoltre, si raccomanda che i documenti pubblici presentino i dati sensibili adeguatamente oscurati e che questa stessa logica venga applicata al backend, impedendo all'API di restituire informazioni complete. In questo modo, anche se il link viene condiviso pubblicamente, l'accesso sarà limitato a una versione sicura del certificato, preservando la privacy del titolare.
Infine, è importante implementare meccanismi di protezione complementari, come il rate limiting, il monitoraggio degli accessi sospetti e, quando applicabile, l'uso di link di verifica con validità temporanea, riducendo ulteriormente il rischio di sfruttamento automatizzato.