Chińska firma Z.ai znalazła się w centrum poważnego incydentu związanego z bezpieczeństwem danych. Użytkownicy jej asystenta programistycznego ZCode odkryli, że narzędzie przesyłało całe lokalne repozytoria kodu na zewnętrzne serwery bez ich wyraźnej zgody. Firma przeprosiła, wyłączyła część funkcji, udostępniła kod ZCode i zapowiedziała większą przejrzystość.
Sprawa jest szczególnie istotna, ponieważ ZCode nie jest zwykłym chatbotem. To narzędzie przeznaczone do pracy z kodem, a więc z danymi, które w wielu firmach mają charakter poufny. Problem nie dotyczył zatem wyłącznie prywatności użytkowników, ale potencjalnie także bezpieczeństwa całych projektów programistycznych.
ZCode przesyłał kod do chmury
Z.ai, znane również jako Zhipu, poinformowało, że problem był związany z funkcją Codebase Indexing. Miała ona pomagać ZCode w analizowaniu repozytoriów i lepszym rozumieniu struktury projektu. Według firmy funkcja była jednak domyślnie włączona.
To właśnie tutaj pojawił się problem. Chińscy programiści zaczęli informować w ubiegłym tygodniu, że ZCode przesyłało dane z lokalnych repozytoriów na serwery Alibaba Cloud. Zwracano uwagę, że użytkownicy nie byli wcześniej wystarczająco jasno informowani o takim działaniu.
Reuters podał, że część programistów twierdziła również, iż nie było możliwości prostego wyłączenia tej funkcji. Poza tym wcześniejsza polityka prywatności ZCode nie opisywała odpowiednio tego mechanizmu.
ZCode jest narzędziem opartym na modelach GLM i zostało zaprojektowane jako asystent do pracy programistycznej. Dokumentacja Z.ai wskazuje, że funkcja Wiki analizuje kod znajdujący się w bieżącym workspace, aby stworzyć opis architektury i działania projektu.
Firma przeprosiła i wyłączyła część funkcji
Z.ai przyznało, że problem występował w mechanizmie związanym z indeksowaniem repozytoriów. Firma poinformowała o usunięciu błędu, a następnie zdecydowała się na dalsze ograniczenie funkcji związanych z tym mechanizmem.
W oficjalnych informacjach o wersji 3.14.0 ZCode znajduje się wprost zapis o naprawieniu nieprawidłowego przesyłania danych podczas działania funkcji Wiki.
Firma nie poprzestała jednak na samej poprawce. Z.ai zapowiedziało również wprowadzenie stałego procesu zgłaszania i reagowania na podatności bezpieczeństwa. Jednocześnie udostępniło ZCode jako projekt open source, zachęcając społeczność programistów do jego dalszej analizy.
To istotna zmiana, ponieważ pozwala niezależnym specjalistom sprawdzać, w jaki sposób narzędzie obchodzi się z lokalnymi plikami i danymi użytkownika.
Co stało się z przesłanymi danymi?
To jeden z najważniejszych elementów całej sprawy.
Z.ai początkowo zapewniało, że przesłane dane zostały usunięte. Pojawiły się jednak pytania o możliwość niezależnego zweryfikowania tego twierdzenia. Według Reutersa część użytkowników zwracała uwagę, że dane szyfrowano kluczem znajdującym się po stronie Z.ai. Przez to sami użytkownicy nie mogli ich odszyfrować i sprawdzić, co dokładnie zostało przesłane oraz czy rzeczywiście zostało usunięte.
Firma poinformowała następnie o niezależnej kontroli przeprowadzonej przez chiński instytut związany z resortem przemysłu oraz firmę cyberbezpieczeństwa NSFOCUS. Według Z.ai audyt potwierdził usunięcie danych z odpowiedniej przestrzeni Alibaba Cloud. Firma zadeklarowała również uruchomienie mechanizmu zero-data retention, czyli rozwiązania mającego ograniczać przechowywanie danych użytkowników.
Pełny raport z audytu ma zostać opublikowany przez Z.ai.
Wśród danych mogły znaleźć się bardzo wrażliwe informacje
Skala problemu zależała oczywiście od tego, co znajdowało się w lokalnych repozytoriach poszczególnych użytkowników.
Jedna z chińskich firm technologicznych, Chengming Technology, początkowo twierdziła, że ZCode przesłał sześć jej przestrzeni roboczych zawierających m.in. kod źródłowy, hasła do baz danych oraz dane osobowe pracowników. Firma później wycofała to oświadczenie, stwierdzając, że dysponowała „błędnymi dowodami”.
Dlatego nie można obecnie traktować tych konkretnych zarzutów jako potwierdzonego przypadku wycieku wszystkich wymienionych danych. Sam fakt nieautoryzowanego lub niewystarczająco jasno komunikowanego przesyłania danych z lokalnych repozytoriów został jednak potraktowany przez Z.ai jako problem bezpieczeństwa i doprowadził do zmian w ZCode.
To szczególnie poważny problem w przypadku AI dla programistów
Asystenci programistyczni mają dostęp do znacznie bardziej wrażliwych informacji niż typowe chatboty.
Użytkownik może dać im dostęp do całego projektu, aby AI mogła zrozumieć zależności między plikami, znaleźć błędy albo zaproponować zmiany. W takim środowisku repozytorium może zawierać nie tylko kod źródłowy, lecz także konfiguracje, informacje o infrastrukturze czy dane dotyczące wewnętrznej architektury systemu.
Dlatego granica pomiędzy „AI analizuje mój komputer” a „AI wysyła mój projekt do chmury” ma ogromne znaczenie.
Co więcej, obecna dokumentacja ZCode pokazuje, że model ma pracować z kodem w obrębie workspace i korzystać z jego zawartości przy generowaniu dokumentacji projektu. ZCode ma również rozbudowany system uprawnień, obejmujący m.in. zmiany w plikach, wykonywanie poleceń i połączenia sieciowe.
Incydent pokazuje więc szerszy problem dotyczący całej generacji agentów AI dla programistów. Im więcej możliwości otrzymuje taki agent, tym większe znaczenie ma kontrola nad tym, do jakich danych ma dostęp i co może z nimi zrobić.
Z.ai chce teraz większej kontroli i przejrzystości
Firma deklaruje, że po incydencie zamierza zwiększyć przejrzystość działania ZCode i stworzyć proces reagowania na podobne problemy.
Wersja 3.14.0 została wydana 19 września, a już 21 września Z.ai opublikowało kolejną aktualizację 3.14.1. W dokumentacji wersji 3.14.0 znajduje się poprawka dotycząca nieprawidłowych uploadów w Repository Wiki.
Z.ai zapowiada także dalsze udostępnianie informacji dotyczących bezpieczeństwa i zachęca programistów do sprawdzania kodu ZCode.
To ważne, bo w przypadku narzędzia, któremu użytkownik daje dostęp do własnego repozytorium, sama deklaracja producenta dotycząca prywatności nie zawsze wystarcza. Możliwość niezależnego sprawdzenia kodu i sposobu komunikacji z serwerami może być równie istotna.
Chińska AI dostała ważną lekcję
Incydent ZCode jest kolejnym przykładem tego, że wraz ze wzrostem możliwości AI rośnie również znaczenie bezpieczeństwa całego oprogramowania, które otacza modele.
Z.ai nie twierdzi, że doszło do wykorzystania przesłanego kodu do trenowania modeli. Problem polegał przede wszystkim na tym, że dane mogły opuścić lokalne środowisko użytkownika bez wystarczająco jasnej zgody.
Firma przeprosiła, poprawiła oprogramowanie, wyłączyła część funkcji, uruchomiła mechanizm ograniczający przechowywanie danych i poddała system zewnętrznej ocenie. Teraz pozostaje sprawdzić, czy zapowiadany pełny raport bezpieczeństwa rzeczywiście pokaże dokładnie, co zostało przesłane, jak długo dane były przechowywane i w jakich warunkach do nich dochodziło.
Dla użytkowników AI programistycznej to ważna lekcja. Zanim agent otrzyma dostęp do całego repozytorium, warto dokładnie sprawdzić, jakie dane opuszczają komputer i dokąd trafiają.
Foto: ChatGPT Image/AI.