Przejdź do treści
Newsy

Twój kod wyślemy do chmury, ale kluczem nie podzielimy się z tobą

Chiński asystent kodowania ZCode po cichu tworzył zaszyfrowane archiwa repozytoriów użytkowników i wysyłał je na serwery Alibaby - a klucz do odszyfrowania leżał wyłącznie po stronie Z.ai.

4 min czytania
Twój kod wyślemy do chmury, ale kluczem nie podzielimy się z tobą

Ten news ukazał się 9 godzin po komunikacie źródła.

👁 113 przeczytań

564 - tyle razy plik próbował się wysłać, zanim Ferstar w ogóle zauważył, że istnieje. Chiński programista zajrzał w piątek do lokalnego katalogu aplikacji ZCode i znalazł 313-megabajtowe zaszyfrowane archiwum czekające w kolejce do wysyłki na serwery Alibaby. Mniejszy plik zdążył już odpłynąć.

Sam nie mógł zajrzeć do środka własnego archiwum. I to jest właśnie ten detal, który wynosi całą sprawę poza kategorię zwykłej skargi na prywatność.

Archiwum, którego właściciel nie może otworzyć

Ferstar opisał sytuację publicznie: archiwum zawierało migawkę komercyjnego projektu, nad którym pracował, wraz z pełną historią repozytorium Git. Klucz prywatny potrzebny do odszyfrowania siedział na serwerach Z.ai - ani on, ani klient ZCode nie miał do niego dostępu. Opcja przesyłania była domyślnie włączona i - jak twierdził Ferstar - nie było żadnego przycisku, żeby ją wyłączyć. Niezależnie od niego blogger Feng Ruohang napisał tego samego piątku, że w swoich logach widział co najmniej trzy wysłane pliki. Historię jako pierwsi opisali Minxiao Chang i Wency Chen dla South China Morning Post.

Samo 313 megabajtów to najmniej interesująca liczba w tej historii. Katalog .git w repozytorium nie zawiera tylko bieżących plików - trzyma każdą zmianę od początku projektu. Poświadczenia, które ktoś kiedyś omyłkowo wrzucił do historii i potem unieważnił, zostają. Zostają też porzucone gałęzie, wewnętrzne nazwy hostów, wiadomości przy commitach, które nikt nie pisał z myślą, że kiedykolwiek przeczyta je ktoś z zewnątrz. To jest inny rząd wrażliwości niż zwykły plik roboczy.

Błąd czy zaprojektowana funkcja

Z.ai przeprosiło w piątek w oficjalnym kanale na Feishu i ogłosiło, że problem został rozwiązany. Oświadczenie, przedrukowane w całości na V2EX, wskazuje na funkcję indeksowania repozytoriów w ZCode, która służy do odtwarzania sesji po awarii, cofania wersji i generowania tzw. Repo Wiki. Według komunikatu wygenerowanie strony Wiki w chmurze mogło uruchomić przesyłanie całego repozytorium - i ta opcja była domyślnie aktywna bezpośrednio po premierze produktu.

To jest opis czegoś zaprojektowanego, a nie czegoś zepsutego. Różnica jest zasadnicza. Błąd się łata. Domyślne ustawienie ktoś musiał wcześniej wybrać.

„Funkcja indeksowania kodu źródłowego wspiera odtwarzanie punktów kontrolnych sesji, cofanie wersji i Repo Wiki. Wygenerowanie strony Wiki mogło uruchomić przesłanie repozytorium.”

- fragment oficjalnego oświadczenia Z.ai

Z.ai dodało, że przesłane dane są niszczone natychmiast po wygenerowaniu strony Wiki i nie są przechowywane. W sobotniej aktualizacji Ferstar zapytał: jak ktokolwiek ma to zweryfikować? Pytanie zawiera w sobie odpowiedź. Z.ai zbudowało archiwum w ten sposób, że tylko Z.ai może je odczytać - a więc tylko Z.ai może powiedzieć, co się z nim stało.

Google · Twoje źródłaPromptowy wyżej w Twoim Google - jednym kliknięciemDodaj do preferowanych źródeł

Polityka prywatności, która nie przewidywała tego scenariusza

Nie przepłacaj za te subskrypcje

Prowadzę sklep z rocznymi dostępami do narzędzi AI - te same konta, o których piszę wyżej, tylko taniej niż w cenniku producenta.

Zobacz, co jest dostępne

Zajrzałem do polityki prywatności ZCode. Obowiązuje od 15 czerwca i nie była od tamtej pory zmieniana. Dokument mówi, że serwis zbiera tekst, pliki i kod przesyłany przez użytkownika poprzez konwersację. Spakowana migawka całego repozytorium wraz z historią Gita nie jest czymś, co użytkownik przesyła w rozmowie z asystentem - to coś, co aplikacja robi sama, w tle, bez wyraźnego aktu woli po stronie użytkownika.

Tabela uprawnień w polityce obejmuje dostęp do sieci i pamięci masowej, ale nie opisuje żadnego mechanizmu snapshotowania repozytoriów. Jedyna kontrola danych, którą dokument wymienia wprost, to Program Optymalizacji - domyślnie wyłączony, regulujący to, czy treści trafiają do trenowania modeli, a nie to, czy w ogóle są przesyłane.

Programista, który przeczytał politykę i wyłączył trening, nie miał żadnego powodu spodziewać się czegokolwiek innego.

To nie pierwszy raz, gdy narzędzie do kodowania okazuje się wysyłać więcej, niż deklarowało. Wcześniej podobna sytuacja dotyczyła Grok Build od xAI, który przesyłał całe repozytoria Git na serwery firmy, mimo że w materiałach marketingowych firma zapewniała o czymś przeciwnym. Tamten przypadek miał jednak jedną istotną różnicę: użytkownicy mogli przynajmniej sprawdzić logi ruchu sieciowego i zobaczyć, co dokładnie wyszło. W przypadku ZCode dane były szyfrowane kluczem, którego właściciel kodu nigdy nie trzymał w rękach.

Agenty do kodowania to trudniejszy problem bezpieczeństwa niż chatboty. Mają dostęp do całych repozytoriów, historii zmian, zmiennych środowiskowych i kluczy API. Przepaść między tym, czemu się je powierza, a tym, co jest faktycznie audytowane, to już od jakiegoś czasu strukturalna słabość branży - osobny badacz zdołał ostatnio przejąć kontrolę nad Claude Code, po prostu prosząc go o podsumowanie strony internetowej.

Z.ai mówi, że dane zostały usunięte. Musi nam wystarczyć słowo firmy, która jako jedyna miała klucz.

// Newsletter

Cały tydzień w AI, w jednym mailu

Wybrane premiery, narzędzia i analizy. Raz w tygodniu, prosto do skrzynki.

Zapisz się za darmo →
Za darmo. Wypisujesz się jednym kliknięciem.
// czytaj też

Podobne tematy na Promptowym

Piotr Olszewski

Piotr Olszewski

ADMINISTRATOR

Piotr Olszewski - twórca i autor Promptowego, polskiego serwisu o sztucznej inteligencji. Codziennie śledzi premiery modeli, narzędzia i regulacje AI, i tłumaczy je prostym, konkretnym językiem.

// mapa strony

🛒 Sklep Kinetyka Google AI Gemini Pro 170 zł CapCut Pro 460 zł/rok n8n Cloud Starter 320 zł/rok Zobacz wszystko →
promptowy w liczbach 0tekstów w archiwum0newsów z ostatnich 7 dni0modeli wideo w obserwatorium0zagadek w grach
× powiększenie