Nowości

Grok Build CLI xAI wysyłał całe repozytoria kodu na serwery firmy bez zgody

ProgramowaniePatryk Raba
Fot. Gage Skidmore, Wikimedia Commons (CC BY-SA 4.0)
Spis treści
  1. Co dokładnie wykryto
  2. Zawodny przełącznik prywatności
  3. Reakcja xAI i obietnica Muska
  4. Co to oznacza dla programistów

Narzędzie do programowania z AI od firmy Elona Muska miało zapewniać, że kod użytkownika zostaje na jego komputerze. W rzeczywistości Grok Build CLI pakował całe repozytoria Git, łącznie z usuniętymi wcześniej sekretami i plikami .env, i wysyłał je bez zapowiedzi na serwery Google Cloud kontrolowane przez xAI, obecnie działające pod marką SpaceXAI.

Co dokładnie wykryto

Cereblab przeprowadził analizę na poziomie ruchu sieciowego generowanego przez CLI podczas zwykłej sesji programistycznej. Zamiast przesyłać jedynie fragmenty kodu potrzebne modelowi do wygenerowania odpowiedzi, narzędzie pakowało cały katalog roboczy jako bundle Gita i wysyłało go w całości, wraz z plikami nieśledzonymi przez system kontroli wersji oraz pełną historią commitów.

Wysyła całe repozytorium, treść każdego śledzonego pliku plus historię Gita, niezależnie od tego, co faktycznie czyta agent - cereblab, autor analizy

W praktyce oznaczało to, że sekrety usunięte z repozytorium miesiące wcześniej, ale wciąż obecne w historii commitów, trafiały do xAI w formie niezredagowanej. W jednym z opisanych przypadków cały katalog jednego użytkownika, zawierający klucze SSH i bazę menedżera haseł, został przesłany na serwery firmy.

Zawodny przełącznik prywatności

Najbardziej niepokojącym elementem odkrycia był fakt, że deweloperzy, którzy świadomie wyłączyli opcję 'Improve the model', przekonani że tym samym chronią swój kod przed wysyłką, wcale nie zatrzymywali transferu danych. Przełącznik ten kontrolował wyłącznie zgodę na wykorzystanie danych do trenowania przyszłych wersji modelu, a nie sam fakt opuszczania komputera użytkownika przez pliki.

Przełącznik 'Improve the model' nie robi żadnej różnicy - włączony czy wyłączony, całe repozytorium jest wysyłane tak samo - cereblab, autor analizy

Mechanizm wysyłki nie był opisany w materiałach konfiguracyjnych narzędzia i był domyślnie włączony. xAI reklamowało wcześniej Grok Build hasłami sugerującymi, że podczas sesji nic z kodu użytkownika nie trafia na serwery firmy - deklaracja, którą analiza cereblaba bezpośrednio podważyła.

Reakcja xAI i obietnica Muska

Po tym, jak wpis trafił na pierwszą stronę Hacker News 14 lipca, Elon Musk zabrał głos publicznie, obiecując usunięcie wszystkich wcześniej zebranych danych użytkowników. Dzień po publikacji analizy cereblab ponownie przetestował tę samą wersję binarną narzędzia i stwierdził, że wysyłka repozytoriów została zatrzymana - serwer zaczął zwracać flagę disable_codebase_upload ustawioną na true.

Jako środek ostrożności wszystkie dane użytkowników przesłane do SpaceXAI przed teraz zostaną całkowicie i bezwzględnie usunięte. Nie zostanie zupełnie nic - Elon Musk

Cereblab skrytykował jednak sposób komunikowania poprawki, zwracając uwagę, że firma sugerowała, jakoby rozwiązaniem był istniejący wcześniej ręczny wpisywany polecenie prywatności, podczas gdy faktyczną naprawą była cicha zmiana globalnej flagi po stronie serwera. Badacz podkreślił, że programiści nie powinni musieć samodzielnie uruchamiać procedury opt-out po każdej sesji, żeby ich własny kod nie trafiał na cudze serwery. Formalnego komunikatu bezpieczeństwa (security advisory) firma jak dotąd nie opublikowała.

Co to oznacza dla programistów

Dla firm i niezależnych deweloperów korzystających z narzędzi kodujących opartych na AI sprawa jest przypomnieniem, że deklaracje marketingowe o przetwarzaniu lokalnym warto weryfikować niezależnie od zapewnień producenta. Osoby, które uruchamiały Grok Build na repozytoriach zawierających realne klucze API, hasła do baz danych czy tokeny dostępu do chmury, powinny je jak najszybciej rotować, niezależnie od tego, jakie ustawienia prywatności miały wtedy włączone.

Sprawa dotyka też szerszego trendu rosnącej nieufności wobec agentów kodujących opartych na dużych modelach językowych, po wcześniejszych doniesieniach o ukrytym śledzeniu użytkowników w innych narzędziach tego typu. W odróżnieniu od tamtych przypadków, tu chodziło nie o telemetrię czy lokalizację, lecz o transfer całej zawartości repozytoriów, w tym danych, które programiści uznawali za bezpiecznie usunięte z historii projektu.

Udostępnij: