Se avete mai sviluppato un'app Android o un sito web integrando Google Maps o Firebase è molto probabile che abbiate inserito una Google API Key direttamente nel vostro codice client-side. Per anni pensavate che andasse bene così, Google vi ha sempre detto che quelle chiavi erano sicure, che potevano rimanere in chiaro nelle vostre app, che la loro utilità era relegata a semplici identificatori di progetto utili ai fini della fatturazione.
Bene! Oggi, però, quelle chiavi sono nella toppa dei cancelli del caos. Con l'avvento dell'Intelligenza Artificiale generativa, quelle stesse chiavi "innocue" si sono trasformate in un potenziale incubo per la sicurezza dei vostri account, ma sopratutto, per il vostro portafoglio. E sì, perchè non siete stati attenti all'evoluzione delle regole (faccio un mea culpa col mouse al posto della pietra, sono tra quelli).
In questo articolo vi spiegheremo cosa sta succedendo, come i ricercatori hanno scoperto questa vulnerabilità strutturale e, soprattutto, come potete evitare di regalare token ai furbacchioni (per non dire altro) che si sono accorti silenziosamente della falla.
L'Inganno delle Insecure Defaults
Tutto ruota attorno a un concetto noto come Insecure Defaults. Storicamente, quando generavate una chiave API su Google Cloud Platform (GCP), questa nasceva con lo stato di "Unrestricted" (Senza restrizioni). Questo significa che la chiave è valida per qualsiasi API abilitata all'interno di quel progetto [3].
Finché il progetto gestiva solo mappe o database, il rischio era minimo: un attaccante avrebbe potuto al massimo consumare la vostra quota di caricamento mappe, qualche imprecazione ma nn era un gran danno ed era facilmente risolvibile.
Ma cosa succede quando, nel 2026, decidete di sperimentare con l'AI e abilitate la Generative Language API (il motore dietro Gemini) nello stesso progetto GCP?
Succede che ogni singola chiave API non ristretta presente in quel progetto eredita silenziosamente l'accesso a Gemini [1] [3].
Non c'è nessun pop-up di avviso. Nessuna email di conferma. Quella vecchia chiave API che avevate lasciato in chiaro nel codice JavaScript del vostro sito web o nell'APK della vostra app Android sviluppata magari anni orsono, improvvisamente diventa una credenziale viva e sensibile capace di interrogare uno dei modelli linguistici più potenti (e costosi) al mondo [3].
Le Dimensioni del Problema: Milioni di Utenti a Rischio
I ricercatori di diverse aziende di sicurezza hanno iniziato a scandagliare il web e gli store di applicazioni per capire l'entità del problema, portando alla luce numeri allarmanti.
I Dati di CloudSEK e Quokka
Il motore di ricerca per la sicurezza mobile BeVigil (di CloudSEK) ha analizzato le prime 10.000 app Android per numero di installazioni. I risultati? Hanno trovato 32 chiavi Google API attive e vulnerabili distribuite su 22 applicazioni uniche, con una base di installazione combinata che supera i 500 milioni di utenti [2].
Ancora più vasta l'analisi condotta da Quokka: scansionando un database di 250.000 app Android recenti, hanno scoperto che quasi il 40% (39.5%) conteneva chiavi Google API hardcoded. Questo ha restituito oltre 35.000 chiavi uniche potenzialmente esposte [4].
Anche i Giganti Sbagliano
Se pensate che questo sia un errore da sviluppatori alle prime armi (anche se spesso ho visto aziende di consulenza spacciare stagisti per senior, quindi non mi sorprenderebbe se davvero ci fosse dietro uno di loro), vi sbagliate.
I ricercatori di Truffle Security hanno scansionato l'archivio web di Common Crawl (700 terabyte di dati) trovando quasi 3.000 chiavi esposte su internet. Tra le vittime figurano istituzioni finanziarie, aziende di sicurezza e persino la stessa Google, che aveva lasciato una chiave esposta su un suo sito di prodotto dal 2023, la quale ha improvvisamente guadagnato l'accesso ai modelli interni di Gemini [3] [5].
Cosa Può Fare un Attaccante con la Vostra Chiave?
La semplicità di questo attacco è disarmante. Un malintenzionato non ha bisogno di violare i vostri server. Gli basta scaricare il vostro APK, decompilarlo (un'operazione banale con i tool open source), estrarre la chiave (che inizia sempre con AIza...) e lanciare un semplice comando da terminale verso l'endpoint di Gemini [3] [4].
Invece di un errore di autorizzazione, riceverà un rassicurante codice 200 OK. A quel punto, i danni possono assumere tre forme:
- Danno Finanziario Massiccio: L'uso delle API di Gemini si paga a consumo. Uno script automatizzato può interrogare ininterrottamente i modelli più costosi, generando addebiti enormi sul vostro account Google Cloud. Ci sono casi documentati di sviluppatori indipendenti che si sono visti recapitare fatture da 15.400 dollari in poche ore, e aziende che hanno subito danni per 128.000 dollari [2]. Su Reddit, un utente ha denunciato un addebito di oltre 82.000 dollari in appena 48 ore [5].
- Furto di Dati Privati: Gemini dispone di endpoint specifici come
/files/e/cachedContents/. Se la vostra azienda carica documenti interni, audio o codice proprietario per fornire contesto all'AI, l'attaccante può visualizzare e scaricare tutto questo materiale utilizzando la vostra chiave pubblica [2] [3]. - Interruzione del Servizio: Sfruttando le quote massime imposte da Google, l'attaccante può esaurire i vostri limiti operativi, mettendo di fatto offline le funzionalità AI legittime della vostra applicazione [2] [3].
Come Mettere al Sicuro i Vostri Progetti
Google ha riconosciuto il problema strutturale e sta lavorando per modificare i default di sicurezza, ma non aspettate che siano loro a risolvere il problema. Se utilizzate servizi Google Cloud, dovete agire subito seguendo questi passaggi:
- Controllate i Progetti GCP: Accedete alla console di Google Cloud, andate su APIs & Services > Enabled APIs e verificate se la "Generative Language API" è abilitata nei vostri progetti.
- Ispezionate le Chiavi: Andate su Credentials. Se vedete chiavi con un triangolo giallo di avviso, significa che sono "Unrestricted". Queste chiavi sono pericolose.
- Ruotate e Restringete: Revocate immediatamente qualsiasi chiave esposta in codice client-side o app mobile. Quando create nuove chiavi, applicate sempre restrizioni rigide: una chiave per Maps deve poter accedere solo alle API di Maps [2] [3].
- Non Hardcodate le Chiavi: Smettete di inserire le chiavi API nel codice sorgente delle app mobile. Utilizzate proxy lato server per mediare le chiamate API dai client mobile, in modo che i segreti rimangano al sicuro sui vostri server [2].
- Attenti quando generate codice con AI: L'AI è sicuramente un grande strumento ma ricordatevi che è addrestrata anche su codice sporco, quindi controllate SEMPRE il codice, sopratutto le parti che espongono dati sensibili (poi non lametatevi quando il garante vi bussa alla porta!) e sopratutto che non renda visibili ciò che dovrebbe rientrare tra le Secrets.
Il passaggio all'era dell'Intelligenza Artificiale sta trasformando vecchie pratiche innocue in vulnerabilità critiche. È tempo di trattare ogni stringa di caratteri come una potenziale porta d'accesso ai vostri sistemi.
Riferimenti
[1] Infosecurity Magazine. "Google API Keys Quietly Gain Access to Gemini on Android Devices". (en) https://www.infosecurity-magazine.com/news/google-api-keys-access-gemini/
[2] CloudSEK. "Hardcoded Google API Keys in Top Android Apps Now Expose Gemini AI". (en) https://www.cloudsek.com/blog/hardcoded-google-api-keys-in-top-android-apps-now-expose-gemini-ai
[3] Sohan Kanna (InfoSec Write-ups). "Zero-Infra Cloud Exploitation: Hijacking Google’s Gemini via Public API Keys". (en) https://infosecwriteups.com/zero-infra-cloud-exploitation-hijacking-googles-gemini-via-public-api-keys-70959af91c7a
[4] Quokka. "Google API Keys Now A Security Risk Thanks to Gemini". (en) https://www.quokka.io/blog/google-gemini-api-key-mobile-app-security-risk
[5] The Hacker News. "Thousands of Public Google Cloud API Keys Exposed with Gemini Access After API Enablement". (en) https://thehackernews.com/2026/02/thousands-of-public-google-cloud-api.html

Potrebbe interessarti
Enigma e il mito dell' indecifrabilità
Autopsia di un LLM - parte prima
Due anni di AI: da chatbot curiosi a strumenti che scrivono software