Quando utilizziamo un’applicazione Web o mobile che richiede di accedere ai nostri file memorizzati su un servizio cloud — come OneDrive, Google Drive o Dropbox — l’autenticazione e l’autorizzazione non avvengono tramite la condivisione della nostra password. Al contrario, entra i gioco un protocollo standard chiamato OAuth 2.0, progettato per garantire un accesso sicuro e controllato alle risorse dell’utente. In breve, OAuth consente all’utente di concedere l’accesso a un’applicazione terza senza condividere le proprie credenziali. I ricercatori di Oasis Security hanno tuttavia acceso un faro su quella che definiscono una grave lacuna che affligge Microsoft OneDrive.
OneDrive File Picker sotto accusa: le applicazioni Web possono accedere a tutti i dati degli utenti
Microsoft fornisce uno strumento chiamato OneDrive File Picker che permette agli sviluppatori di integrare facilmente l’accesso ai file archiviati su OneDrive all’interno di applicazioni Web o mobili. È un componente di interfaccia (UI) che consente agli utenti finali di selezionare e caricare file dal proprio account OneDrive, direttamente da un sito o da un’app esterna, senza dover navigare manualmente sul portale di OneDrive.
Prendiamo ad esempio la funzionalità Aggiungi foto o file di ChatGPT: cliccando su Aggiungi da app, Collega Microsoft OneDrive, si possono condividere con il chatbot di OpenAI file che risultano memorizzati all’interno del proprio spazio cloud OneDrive.
Ecco la schermata che compare la prima volta che si prova a condividere un file salvato su OneDrive con ChatGPT:
Una volta accordato il consenso via OAuth (in questo caso cliccando su Accetta), l’applicazione – ad esempio ChatGPT – riceve un token di accesso (access token) che le permette di operare in nome dell’utente, entro i limiti dei permessi concessi. In alcuni casi, riceve anche un refresh token, che consente all’app di continuare ad accedere ai file dell’utente anche quando non è attivamente collegato. Ad esempio, per sincronizzare contenuti in background o completare operazioni asincrone.
Origine del problema: permessi eccessivi e OAuth scarsamente granulare
Microsoft descrive le specifiche del suo OneDrive File Picker in questo documento di supporto. Da parte loro, i tecnici di Oasis Security osservano come l’attuale architettura del File Picker (v8.0) ichieda l’autorizzazione per accedere in lettura all’intero account OneDrive dell’utente. Questo avviene anche quando l’azione dell’utente si limita alla selezione di un singolo file. Il motivo è la mancanza di “scope” OAuth granulari: Microsoft non offre meccanismi per limitare i permessi a un sottoinsieme specifico di file o cartelle.
In altre parole, per garantire anche la più semplice operazione di caricamento file, l’applicazione è costretta a chiedere l’accesso completo, ponendo sullo stesso piano le app legittime e quelle potenzialmente malevole.
A peggiorare la situazione, le schermate di consenso che l’utente visualizza al momento dell’autorizzazione non descrivono con precisione il livello di accesso richiesto, inducendo erroneamente a credere che il permesso sia limitato al file scelto, quando in realtà viene concesso l’accesso all’intero spazio cloud.
Conservazione insicura dei token e rischi associati
L’indagine di Oasis Security evidenzia ulteriori elementi di criticità sul piano della sicurezza operativa:
- I token di accesso OAuth sono spesso salvati in chiaro nello storage della sessione del browser, rendendoli vulnerabili a furti via JavaScript o da parte di estensioni malevole.
- L’uso della Microsoft Authentication Library (MSAL) nella versione 8.0 del Picker impone agli sviluppatori di gestire autonomamente il flusso di autenticazione, il che frequentemente comporta l’uso del cosiddetto Authorization Code Flow con rilascio di un Refresh Token.
- Il Refresh Token consente accessi prolungati nel tempo, anche dopo la chiusura della sessione utente, ampliando la finestra di rischio in caso di compromissione.
La risposta di Microsoft e le prospettive future
Microsoft ha confermato di essere a conoscenza del problema e ha ringraziato Oasis Security per la segnalazione. Tuttavia, l’azienda ha dichiarato che la vulnerabilità non soddisfa i criteri per una correzione immediata, poiché il consenso esplicito dell’utente è comunque richiesto.
“Valuteremo miglioramenti futuri per garantire una maggiore trasparenza nella gestione dei permessi richiesti dalle applicazioni integrabili con OneDrive“, ha dichiarato un portavoce di Microsoft.
Nel frattempo, il consiglio è quello di adottare un approccio prudente: monitorare l’accesso concesso alle app, rivedere le pratiche di gestione dei token e chiedere ai fornitori cloud una maggiore precisione nell’implementazione degli “scope” OAuth e nella comunicazione verso l’utente.
Cosa possono fare utenti e sviluppatori per mettersi al sicuro
Innanzi tutto, è essenziale astenersi dal concedere permessi via OAuth (clic sul pulsante Accetta) ad applicazioni sconosciute o sviluppate da soggetti non affidabili.
Nello specifico, è fondamentale portarsi nella pagina Accesso alle app dell’account Microsoft e revocare l’accesso (Non consentire) da parte di tutte le applicazioni che non si conoscono o non si utilizzano.
Le aziende, all’interno del portale Entra Admin Center, possono esaminare l’elenco delle applicazioni aziendali (Enterprise Applications), selezionare ciascuna app e consultare la sezione Permessi, identificare le applicazioni con permessi delegati e verificare gli utenti che hanno concesso tali accessi.
A sviluppatori e fornitori di servizi Web, Oasis Security consiglia le seguenti azioni tecniche di mitigazione:
- Evitare l’uso dei Refresh Token, rimuovendo l’ambito
offline_access
. - Eliminare qualsiasi logica che preveda la conservazione di Refresh Token o Access Token su storage insicuri (
sessionStorage
,localStorage
). - Archiviare i token in modo sicuro, idealmente in contesti protetti lato server o tramite sistemi di vault.
- Valutare l’uso temporaneo di link OneDrive “view-only” anziché consentire upload diretti tramite File Picker.
- Verificare l’opportunità di rimuovere l’integrazione con il Picker OAuth di OneDrive finché non saranno implementate protezioni adeguate da parte di Microsoft.
Come gestiscono l’accesso al contenuto dell’account dell’utente altri fornitori di spazio cloud diversi da OneDrive?
Se si prende in esame Google Drive, il servizio di storage cloud dell’azienda di Mountain View si serve di “scope” OAuth molto granualari. Ad esempio, drive.file
abilita l’accesso soltanto ai file creati o aperti dall’app, drive.readonly
accorda l’accesso in sola lettura, drive.metadata.readonly
condivide solo i metadati, senza contenuto.
Dal 2020, anche Dropbox assicura una modalità di accesso e condivisione molto più granulare, con la possibilità di creare “scoped apps“, limitate a cartelle specifiche.
Ancora, un servizio come Box mette a disposizione “scope” OAuth definiti e ben documentati. Vi è anche il modo di assegnare ruoli e permessi granulari per cartelle e file. Box supporta inoltre l’accesso tramite JWT, utile nel caso di app server-to-server.
Sì, ma alla fine quanto è davvero grave la problematica scoperta da Oasis Security in OneDrive?
Come abbiamo spiegato, il problema risiede nel fatto che, anche quando un’applicazione esterna utilizza il File Picker di OneDrive e l’utente seleziona un solo file da condividere, l’applicazione riceve un token OAuth con accesso all’intero contenuto dell’account Microsoft.
Microsoft sostiene che la condivisione avviene previo esplicito consenso dell’utente. È certamente vero: nessun accesso avviene senza consenso.
Il fatto è che l’utente vede un’interfaccia grafica che permette di selezionare file dal suo account OneDrive quando, non proprio consapevolmente, sta firmando una delega più ampia. Certo è che, come evidenziato in precedenza, il concetto di fiducia e quindi la scelta dell’applicazione Web con cui condividere i dati gioca un ruolo essenziale.
D’altra parte sorge anche qualche legittimo dubbio sul concetto di minimizzazione del trattamento (GDPR, art. 5) e sulle best practice in termini di design (come l’approccio “least privilege“). In altre parole, sarebbe preferibile migliorare il funzionamento del File Picker e ridurre la “libertà di azione” delle applicazioni terze sul contenuto dell’account OneDrive dell’utente.
Nell’esempio, abbiamo citato ChatGPT ma la schermata per la conferma dell’accesso via OAuth è la stessa per le altre piattaforme integrabili con OneDrive.