Basi di dati Chroma aperte: una nuova superficie di attacco per le app AI
Chroma è un database open-source progettato per consentire ai chatbot LLM di cercare informazioni pertinenti quando rispondono a una domanda dell'utente ed è una delle molte tecnologie che hanno visto crescere l'adozione con il recente boom dell'IA. Come molti database, Chroma può essere configurato dagli utenti finali per non avere meccanismi di autenticazione e autorizzazione. Quando i database privi di autenticazione sono esposti a Internet, gli utenti anonimi possono leggere e persino aggiornare i dati nel database, compromettendo potenzialmente la riservatezza, la disponibilità e l'integrità dei dati.
Anche se i database Chroma esposti a Internet sono molto meno comuni rispetto ai vecchi tipi di database, il loro numero è in aumento e potrebbero rappresentare una fonte significativa di esposizioni di dati nel prossimo futuro. Esaminando 1170 database Chroma esposti a Internet, abbiamo trovato 406, ovvero circa un terzo, che esponevano qualche forma di dati. Il più notevole di questi stava trapelando alcune informazioni personali identificabili (PII) da Canva Creators, di cui abbiamo scritto qui.
Che cos'è il database Chroma?
Diciamo che stai impostando un chatbot per il sito web del tuo hotel o ristorante. Utilizzeresti un LLM per completare il prompt, ma avresti anche bisogno di un repository di dati unici per la tua attività, per informazioni come gli orari di apertura, i servizi, il tuo indirizzo e altre informazioni necessarie per i visitatori del sito web.
All'interno di Chroma, queste informazioni di tipo assumono la forma di "documenti" che sono solitamente stringhe semplici contenenti informazioni pertinenti per il chatbot. Una delle stringhe potrebbe essere qualcosa come "I nostri orari di apertura sono dalle 9:00 alle 22:00, 7 giorni su 7." Quindi, quando qualcuno chiede al tuo chatbot quali sono i tuoi orari, ChromaDB troverebbe quel documento poiché corrisponde maggiormente alla query, e poi lo reintrodurrebbe nel LLM per rendere la risposta più colloquiale. L'utente finale potrebbe ricevere qualcosa come, "Siamo aperti tutti i giorni dalle 9:00 alle 22:00, e non vediamo l'ora di vederti!"
Distribuzione delle banche dati Chroma senza autenticazione
Quando abbiamo esaminato Internet nell'aprile 2025, c'erano 1170 database Chroma accessibili via internet. Per determinare se qualche dato fosse stato esposto, abbiamo utilizzato il metodo .list_collections per ogni indirizzo IP, e poi il .get_collection per ottenere i dati da ciascuna collezione. In questo caso, 406 database hanno restituito una qualche forma di dati e circa due terzi hanno restituito un errore di autenticazione o non contenevano dati.

Ogni database può avere più "collezioni", che sono logicamente separate, beh, collezioni di documenti. Il numero di collezioni per database fornisce un'euristica per capire se vengono utilizzate attivamente e a quale scopo. Il database più utilizzato aveva 4.315 collezioni, il che costituisce sicuramente un uso intenso di qualche tipo. Molti dei database configurati per consentire l'accesso anonimo non avevano dati significativi, ma il 60% dei database aveva più di una collezione, indicando una qualche modifica oltre la collezione predefinita, e il 32% aveva cinque o più collezioni.

Distribuzione geografica dei database Chroma
La geolocalizzazione degli indirizzi IP che ospitano i database Chroma esposti su internet ci offre un'idea di quali regioni siano più a rischio a causa delle conseguenze delle configurazioni errate. Mentre alcune tecnologie AI mostrano un utilizzo sproporzionato in Cina, Chroma è principalmente utilizzato negli Stati Uniti e in Europa, con una presenza notevole anche in India. Per rappresentare meglio la lunga coda delle nazioni europee al di là dei primi 20 paesi più comuni, abbiamo incluso un conteggio aggregato per l'UE nel suo complesso.

Rischi associati a un database Chroma non autenticato
Fuga di dati
Dei 406 casi di Chroma aperti che abbiamo esaminato, abbiamo scoperto che la maggior parte veniva utilizzata per esplorazioni rudimentali e non conteneva molte informazioni uniche. Tuttavia, come con qualsiasi tecnologia di rete, abbiamo anche trovato server Chroma che sembravano contenere dati reali alla base di chatbot LLM da qualche parte su Internet.
Un uso comune per ChromaDB sembra essere quello di fornire dati relativi agli affitti di appartamenti e hotel in India e nei dintorni. Un certo numero di server conteneva informazioni sulle proprietà e sui loro servizi, che sono cose a cui un visitatore del sito probabilmente chiederebbe. Questo caso d'uso ha senso per Chroma e non comporta la fuga di dati sensibili, ma i database dovrebbero avere qualche forma di sicurezza che impedisca agli attaccanti di accedere ai dati direttamente.
Un altro server sembrava appartenere a un servizio SEO per l'e-commerce. Il proprietario del database lo aveva popolato con le registrazioni delle chat di supporto clienti, apparentemente come un modo per aumentare la conoscenza del chatbot LLM. Aggiungendo la conversazione precedente di qualcuno sulle domande comuni, il bot avrebbe ora quella precedente esperienza da utilizzare quando risponde a future domande. Questo, ovviamente, solleva preoccupazioni che se qualche dato sensibile del cliente fosse stato aggiunto a Chroma, potrebbe essere visto dai futuri utenti del chatbot. Infatti, abbiamo visto esattamente questo caso: cercare di migliorare un bot di supporto alimentandolo con ticket reali degli utenti ha portato a una fuga di dati sensibili per LlamaIndex, un'altra tecnologia AI.
Scrivibilità
Dalla documentazione di Chroma sulla sicurezza, l'autenticazione è disabilitata per impostazione predefinita. "Per impostazione predefinita, Chroma non richiede autenticazione. Devi abilitarla manualmente. Se stai distribuendo Chroma in un ambiente esposto al pubblico, è fortemente consigliato abilitare l'autenticazione."
Semplicemente accedere ai dati disponibili è solo una preoccupazione. Un'altra sarebbe che un utente malintenzionato potrebbe alterare o avvelenare i dati disponibili per un chatbot. È facile immaginare una serie di situazioni in cui un chatbot di produzione con un'istanza ChromaDB non autenticata e aperta potrebbe fornire informazioni errate o addirittura pericolose a un utente del chatbot.
Per illustrare come un attaccante con accesso illimitato a un database Chroma potrebbe abusarne, abbiamo creato una dimostrazione in cui carichiamo documenti fuorvianti, rimuoviamo documenti corretti e sostituiamo documenti con quelli che indirizzano gli utenti a risorse controllate dall'attaccante.
Conclusione
Come abbiamo appreso utilizzando il notebook dimostrativo di Chroma, è davvero una tecnologia interessante per il recupero di documenti da utilizzare in applicazioni supportate dall'IA. Con oltre mille istanze accessibili via Internet, sembra anche avere una buona adozione e crescita. Ma gli utenti devono essere consapevoli di come configurare i propri database in modo sicuro, soprattutto dato che di default non è prevista l'autenticazione. (A margine, Elasticsearch ha preso una decisione simile in passato, omettendo l'autenticazione sulla base del principio che la responsabilità spetta al livello dell'applicazione web piuttosto che al database, e successivamente ha cambiato idea a causa della frequenza delle fughe di dati di Elasticsearch.) Oltre a garantire che alcuni meccanismi impediscano agli utenti anonimi di accedere al database, gli utenti dovrebbero anche considerare di sanitizzare i dati contenenti informazioni personali identificabili o altre informazioni riservate per ridurre al minimo l'impatto in caso di fuga o violazione.