Google ha corretto una vulnerabilità nel SDK Vertex AI per Python, una piattaforma gestita da Google Cloud, che avrebbe potuto essere sfruttata per attacchi di esecuzione di codice remoto (RCE).

I ricercatori di Unit42 hanno identificato la vulnerabilità legata al problema nel modo in cui vengono denominate le risorse di archiviazione. Gli esperti hanno spiegato che il problema di progettazione nel kit software permetteva un attacco di “squattaggio di bucket” in cui un aggressore, conoscendo solo l'ID del progetto e la regione del proprietario, poteva prendere controllo del bucket di destinazione. Questo perché ogni bucket su Google Cloud ha un nome unico: prevedendolo, un attaccante avrebbe potuto crearne uno simile e utilizzarlo per redirezionare i caricamenti.

Déserializzazione e vulnerabilità

Nel SDK di Vertex AI, le versioni 1.139.0 e 1.140.0 utilizzavano nomi bucket generati esclusivamente in base all’ID del progetto e della regione del cliente. Se un bucket era già esistente, il SDK non verificava la proprietà, aprendo la possibilità di prendere il controllo. Una volta che gli artefatti del modello fossero stati caricati nel bucket del malintenzionato, questi poteva sovraintendere l’ambiente con un codice dannoso, prima che il sistema iniziasse a utilizzarlo.

I modelli di machine learning in Python, spesso salvati con librerie come pickle o Joblib, possono risultare vulnerabili, grazie alla loro capacità di eseguire codice durante il processo di deserializzazione. Questo ha permesso agli esperti di sfruttare la deserializzazione pickle, un processo che ha portato alla tipologia di attacco chiamata “Pickle in the Middle.”

Un approccio innovativo alla ricerca

Nel corso della loro indagine, Unit42 ha utilizzato un modello linguistico di grandi dimensioni (LLM) integrato nel loro processo di analisi del codice. Questo approccio ha accelerato il tempo richiesto per la rilevazione delle vulnerabilità.

Gli esperti spiegano che, raffinando l’azione del modello e chiedendogli di cercare schemi specifici, hanno scoperto nuove vie per risorse cloud basate su dati forniti dagli utenti o dal contesto. Con questa metodologia, l’approccio alla sicurezza diventa più mirato e veloce.

Correzione da parte di Google

Per rispondere al problema, Google ha modificato il processo di creazione dei bucket di staging, garantendo che siano validati prima di essere utilizzati. Questa modifica impedisce agli utenti malintenzionati di registrare bucket con nomi simili a quelli degli altri, per evitare confusione o accesso non autorizzato.

Le correzioni sono state implementate nelle versioni 1.144.0 e 1.148.0 del SDK Vertex AI. Gli utenti che usano le versioni interessate sono invitati a effettuare un aggiornamento per eliminare il rischio di attacchi.

Risposte e aggiornamenti

Google non ha risposto immediatamente alle domande sull’incidente, ma le sue modifiche tecnologiche sono state verificate dal team di sicurezza e sono considerate una soluzione efficace.

Questo incidente sottolinea l’importanza per gli sviluppatori di rimanere aggiornati sulle ultime versioni e per aziende del settore della cybersecurity di adottare nuove tecnologie, come i modelli linguistici, per migliorare il monitoraggio e la difesa da attacchi informatici sempre più sofisticati.