ИИ для программистов тайно отправлял их проекты в облако

leer en español

3518
ИИ для программистов тайно отправлял их проекты в облако

Крупный архив не прошёл лимит, но небольшой тестовый репозиторий сервер принял.

image

ZCode мог получить гораздо больше кода, чем разработчик собирался показать ИИ: приложение Z.ai в фоне создавало зашифрованные снимки целых рабочих каталогов вместе с историей Git и пыталось отправлять их в Alibaba Cloud. По крайней мере один небольшой тестовый репозиторий сервер действительно принял.

Механизм обнаружил разработчик Ferstar, когда заметил, что каталог ~/.zcode разросся более чем до 700 МБ. В затронутой версии 3.12.3 фоновый компонент создавал снимки при работе с проектом, причём два доступных пользователю переключателя не останавливали упаковку и отправку. Сама Z.ai до недавнего времени активно развивала GLM-5.3 как модель для программирования и поиска уязвимостей.

Содержимое снимка оказалось особенно чувствительным. В изученном архиве из 42 411 файлов каталог .git занимал 86,6% объёма: 56,8% приходилось на Git LFS, ещё 29,6% на объекты с историей коммитов. Поэтому вместе с актуальным кодом в архив могли попасть старые ключи API, удалённые конфигурации, названия неопубликованных веток, внутренние адреса GitLab и другие следы прошлой разработки.

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

Есть существенная оговорка. Найденный Ferstar архив коммерческого проекта размером 313 МБ не покинул компьютер: из-за ограничения размера ZCode предпринял 564 неудачные попытки загрузки и оставил файл в очереди. Однако отдельный публичный репозиторий из 538 файлов успешно прошёл весь путь до сервера. Поэтому речь идёт о реально работавшем механизме передачи, но не каждый подготовленный снимок обязательно попадал в облако.

Z.ai признала проблему и заявила, что собранные данные не использовались для обучения моделей. После исправления компания привлекла CAICT и NSFOCUS к проверке, а затем сообщила об удалении объектов и самого облачного хранилища. В версии 3.14.0 функцию Repo Wiki убрали вместе с цепочкой создания и отправки снимков. Для компаний история стала ещё одним примером того, как обычная загрузка закрытого кода в сторонний сервис может превратиться во внутреннюю утечку без взлома инфраструктуры.

Подробный технический разбор показывает и другое расхождение. Политика конфиденциальности ZCode описывала сбор текста, файлов и кода, которые пользователь отправляет в ходе диалога, но отдельно не предупреждала о фоновой упаковке полного рабочего пространства и истории Git.

После огласки Z.ai открыла исходный код ZCode под Apache 2.0. Публичный репозиторий содержит версию 3.14.0 всего с двумя коммитами, а прежней реализации облачных снимков там уже нет. Поэтому проверить исправленную версию можно, но восстановить по опубликованной истории, как именно менялся старый загрузчик, нельзя. Для разработчиков такой разрыв особенно чувствителен, поскольку современные агенты разработки получают доступ не к отдельному фрагменту кода, а ко всему контексту проекта.

Очень похожая история произошла в июле с Grok Build. Помощник xAI также отправлял в облако целые репозитории с историей изменений даже тогда, когда задача не требовала чтения исходников.

Доступ ИИ к репозиторию создаёт и другие риски. В сентябре атака GitSpawn показала, что специально подготовленный проект способен заставить несколько популярных агентов выполнить команды ещё до первого запроса программиста.

Реклама 18+
Рекламодатель
Реклама. АО «Позитив Текнолоджиз». ИНН 7718668887. 18+
Сайт рекламодателя: ptsecurity.com
Реклама