ZCode от Z.ai шифрует и грузит весь git-репозиторий в облако Alibaba

Разработчик ferstar опубликовал результаты реверс-инжиниринга ZCode, официального десктопного приложения Z.ai (разработчик моделей GLM). Пока пользователь залогинен, ZCode в фоне упаковывает всю рабочую директорию: полную историю .git, кэш LFS, reflog и глобальные конфиги приложения.

Архив шифруется и отправляется в Aliyun OSS, объектное хранилище Alibaba Cloud. У себя на диске ferstar нашёл зависший в очереди на отправку 313-мегабайтный зашифрованный архив, собранный из 345 МБ коммерческого проекта (42 411 файлов), со счётчиком в 564 неудачные попытки загрузки.

Манифест упаковки хранится локально в открытом виде. На примере этого снапшота разбивка такая:

Содержимое

Размер

Доля

.git/lfs/ (кэш LFS)

196,1 МБ

56,8%

.git/objects/ (объекты git)

102,2 МБ

29,6%

.git/logs/ (reflog)

0,6 МБ

0,2%

Код и документация

46,2 МБ

13,4%

Папка .git занимает 86,6% архива. В облаке в итоге оказывается история репозитория с первого коммита: ключи, удалённые в более поздних коммитах, названия неопубликованных веток, внутренние хосты из .git/config.

Расшифровать архив не может ни пользователь, ни сам клиент ZCode. Содержимое шифруется локально алгоритмом AES-256-CTR, а симметричный ключ дополнительно оборачивается RSA-OAEP с публичным ключом, который сервер выдаёт при каждой загрузке. Приватная половина ключа существует только в облаке Z.ai.

Исследователь проверил все приватные ключи на своей машине: ни один не подошёл.

Захват срабатывает перед каждым запросом к модели и при завершении задачи. За одну активную сессию в логах ferstar нашлось 62 таких события. В политике конфиденциальности ZCode это не упоминается: там говорится только про сбор «текста, файлов и кода, отправленных в диалоге».

Просто удалить зависший архив не получится: клиент пересобирает новый 313-мегабайтный снапшот в течение получаса, а счётчик попыток растёт дальше. Рабочий способ остановить выгрузку, который нашёл ferstar, работает на уровне файловой системы: сделать папку с чекпоинтами неизменяемой командой chflags uchg на macOS или chattr +i на Linux. 

К моменту публикации официального ответа Z.ai не последовало.

Если новость понравилась, приглашаю в канал AI for Devs. Каждый день публикую похожие материалы: новые модели, агенты, практические кейсы и новости из мира AI.

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев