Otwórz bazy danych Chroma: nowa powierzchnia ataku dla aplikacji AI.


Chroma to otwartoźródłowy magazyn wektorów - baza danych zaprojektowana z myślą o tym, aby chatboty LLM mogły wyszukiwać istotne informacje podczas udzielania odpowiedzi na pytania użytkowników - a także jedna z wielu technologii, które zyskały na popularności w obliczu niedawnego boomu AI. Tak jak wiele baz danych, Chroma może być skonfigurowana przez użytkowników końcowych w taki sposób, że nie zawiera mechanizmów uwierzytelniania i autoryzacji. Gdy bazy danych bez uwierzytelnienia są wystawione na Internet, anonimowi użytkownicy mogą przeglądać, a nawet aktualizować dane w bazie, co potencjalnie może naruszyć poufność, dostępność i integralność danych.

Chociaż bazy danych Chroma wystawione na Internet są znacznie rzadsze niż starsze rodzaje baz danych, ich liczba rośnie i mogą stanowić źródło znaczących wycieków danych w niedalekiej przyszłości. W badaniu 1170 baz danych Chroma wystawionych na Internet, znaleźliśmy 406, czyli około jednej trzeciej, które ujawniały jakąś formę danych. Najbardziej zauważalnym z tych przypadków było wycieknięcie danych osobowych (PII) z Canva Creators, o którym pisaliśmy tutaj.

Czym jest baza danych Chroma?

Powiedz, że ustawiasz czatbota na stronie internetowej swojego hotelu lub restauracji. Użyłbyś modelu językowego do uzupełnienia podpowiedzi, ale potrzebowałbyś również repozytorium danych unikalnych dla twojego biznesu, takich jak godziny otwarcia, udogodnienia, twój adres i inne informacje niezbędne dla odwiedzających stronę internetową.

W ramach Chroma informacje tego rodzaju przybierają formę "dokumentów", które zazwyczaj są prostymi ciągami zawierającymi istotne informacje dla chatbota. Jeden z tych ciągów może brzmieć: "Nasze godziny otwarcia to od 9:00 do 22:00, 7 dni w tygodniu." Kiedy ktoś zapyta twojego chatbota o godziny otwarcia, ChromaDB znajdzie ten dokument, ponieważ najlepiej odpowiada na zapytanie, a następnie przekaże go z powrotem przez LLM, aby odpowiedź brzmiała konwersacyjnie. Użytkownik końcowy może otrzymać coś w stylu: "Jesteśmy otwarci codziennie od 9:00 do 22:00 i czekamy na twoją wizytę!"

Rozpowszechnianie baz danych Chroma bez autoryzacji

Kiedy w kwietniu 2025 roku przeprowadziliśmy badanie internetu, na dostępnych w sieci było 1170 baz danych Chroma. Aby określić, czy jakiekolwiek dane były narażone, użyliśmy metody .list_collections dla każdego adresu IP, a następnie .get_collection, aby uzyskać dane z każdej kolekcji. W tym przypadku 406 baz danych zwróciło jakąkolwiek formę danych, a około dwie trzecie zwróciło błąd uwierzytelniania lub nie zawierało danych.

Około jednej trzeciej baz danych Chroma narażonych na dostęp z Internetu umożliwia anonimowy dostęp.

Każda baza danych może mieć wiele „kolekcji”, które są logicznie oddzielone, a więc kolekcjami dokumentów. Liczba kolekcji w bazie danych stanowi heurystykę na temat tego, czy są one aktywnie używane i w jakim stopniu. Najciężej używana baza danych miała 4315 kolekcji, co z pewnością stanowi intensywne wykorzystanie jakiegoś rodzaju. Wiele baz danych skonfigurowanych do zezwolenia na anonimowy dostęp nie miało znaczących danych, ale 60% baz danych miało więcej niż jedną kolekcję, co wskazuje na pewne modyfikacje poza domyślną kolekcją, a 32% miało pięć lub więcej kolekcji.

Rozkład zbiorów według bazy danych, pokazujący rozkład półnormalny z maksymalnie 4 000 zbiorów w jednej bazie danych.

Rozkład geograficzny baz danych Chroma

Geolokalizacja adresów IP hostujących bazy danych Chroma wystawione na internet daje nam pewne wyobrażenie o tym, które regiony są najbardziej narażone na konsekwencje błędnej konfiguracji. Podczas gdy niektóre technologie AI wykazują wyjątkowe wykorzystanie w Chinach, Chroma jest głównie używana w Stanach Zjednoczonych i Europie, z wyraźną obecnością w Indiach. Aby lepiej przedstawić długi ogon europejskich narodów poza 20 najczęściej występującymi krajami, uwzględniliśmy łączny licznik dla całej Unii Europejskiej.

Dystrybucja baz danych Chroma według geolokalizacji adresu IP, pokazująca najwięcej w USA i krajach UE.

Ryzyka związane z nieautoryzowaną bazą danych Chroma

Wycieki danych

Spośród 406 otwartych instancji Chroma, które zbadaliśmy, stwierdziliśmy, że większość była używana do podstawowej eksploracji i nie zawierała zbyt wielu unikalnych danych. Jednak, jak w przypadku każdej technologii sieciowej, znaleźliśmy także serwery Chroma, które wydawały się zawierać rzeczywiste dane zasilające modele LLM chatbotów gdzieś w Internecie.

Jednym z powszechnych zastosowań ChromaDB wydaje się być udostępnianie danych dotyczących wynajmu mieszkań i hoteli w Indiach i w ich okolicach. Wiele serwerów zawierało informacje o nieruchomościach i ich udogodnieniach, które prawdopodobnie interesują odwiedzających stronę. To zastosowanie ma sens dla Chroma i nie wyjawia poufnych danych, ale bazy danych powinny mieć jakieś zabezpieczenia, aby zapobiec bezpośredniemu dostępowi do danych przez atakujących.

Inny serwer wydawał się należeć do usługi SEO e-commerce. Właściciel bazy danych zapełnił ją zapisami czatów z obsługą klienta, zdaje się, jako sposób na zwiększenie wiedzy chatbota LLM. Dodając wcześniejsze rozmowy dotyczące popularnych pytań, bot miałby teraz tę doświadczenie, na którym mógłby się opierać, odpowiadając na przyszłe pytania. Oczywiście rodzi to obawy, że jeśli jakiekolwiek wrażliwe dane klientów zostały dodane do Chroma, mogłyby być widoczne dla przyszłych użytkowników chatbota. Rzeczywiście, widzieliśmy ten dokładny przypadek - próba poprawy bota wsparcia poprzez zasilanie go rzeczywistymi zgłoszeniami użytkowników - skutkująca wyciekiem PII dla LlamaIndex, innej technologii AI.

Pisowność

Z dokumentacji Chroma na temat bezpieczeństwa wynika, że uwierzytelnianie jest domyślnie wyłączone. "Chroma domyślnie nie wymaga uwierzytelnienia. Musisz włączyć je ręcznie. Jeśli wdrażasz Chroma w środowisku dostępnym publicznie, zdecydowanie zaleca się włączenie uwierzytelnienia."

Same uzyskanie dostępu do dostępnych danych to tylko jedna kwestia. Inną byłoby to, że złośliwy użytkownik mógłby zmienić lub zanieczyścić dane dostępne dla czatbota. Łatwo jest sobie wyobrazić szereg sytuacji, w których czatbot produkcyjny z niezautoryzowaną i otwartą instancją ChromaDB mógłby dostarczyć nieprawidłowe, a nawet niebezpieczne informacje użytkownikowi czatbota.

Aby zilustrować, jak atakujący z nieograniczonym dostępem do bazy danych Chroma może ją nadużyć, stworzyliśmy demonstrację, w której przesyłamy wprowadzające w błąd dokumenty, usuwamy poprawne dokumenty i zastępujemy dokumenty tymi, które kierują użytkowników do zasobów kontrolowanych przez atakującego.

Konkluzja

Jak nauczyliśmy się podczas korzystania z demonstracyjnego notatnika Chroma, to naprawdę fajna technologia do wyszukiwania dokumentów, które można wykorzystać w aplikacjach zasilanych sztuczną inteligencją. Mając ponad tysiąc dostępnych przez internet instancji, wydaje się również, że ma zdrowe przyjęcie i rozwój. Ale użytkownicy muszą być świadomi, jak skonfigurować swoje bazy danych w sposób bezpieczny, szczególnie biorąc pod uwagę, że domyślnie brakuje autoryzacji. (Na marginesie, Elasticsearch kiedyś podjął tę samą decyzję - pomijając autoryzację na zasadzie, że odpowiedzialność należy do warstwy aplikacji internetowej, a nie do bazy danych - a później zmienił to z powodu częstotliwości wycieków danych Elasticsearch.) Poza zapewnieniem, że jakieś mechanizmy zapobiegają dostępowi anonimowych użytkowników do bazy danych, użytkownicy powinni również rozważyć sanitizowanie danych zawierających PII lub inne poufne informacje, aby zminimalizować wpływ w przypadku wycieku lub naruszenia.