Аннотация:
ZCode, инструмент программирования искусственного интеллекта от Zhipu, подвергся сомнению из-за его фоновой упаковки и загрузки пользовательских проектов.
Разработчики обнаружили, что был упакован не только текущий код, но и история Git, в которой сохранились предыдущие модификации. 18 сентября разработчик Ferstar раскрыл результаты устранения неполадок: ZCode сгенерировал копию проекта на этой машине и неоднократно пытался ее загрузить. Впоследствии другие пользователи также предоставили записи отзывов. Некоторые обнаружили, что копия проекта была принята сервером, а некоторые задавались вопросом, может ли переключатель индекса хранилища предотвратить загрузку. Поэтому пользователи задавались вопросом: почему программное обеспечение собирает этот контент и как предотвратить его загрузку?

В тот день ZCode извинился и объяснил проблему функциями, связанными с «индексом кодовой базы», которые в первые дни были включены по умолчанию. В компании заявили, что Repo Wiki может инициировать загрузку данных при создании складской энциклопедии в облаке, и соответствующие данные будут уничтожены сразу после создания. Он также пообещал открыть исходный код клиента и ввести стороннюю проверку.

19 сентября ZCode выпустила версию 3.14.0, и в журнале обновлений было указано: «Исправлена проблема ненормальной загрузки складской энциклопедии». Ферстар также дополнил результаты обзора, заявив, что в новой версии убран соответствующий код загрузки.

После того, как исходный код будет открыт, посторонние смогут проверить, почему программное обеспечение было загружено и какие изменения были внесены на этот раз. Однако компании все равно необходимо предоставить записи о приеме и обработке того, какие файлы были получены сервером ранее и были ли они удалены, как было обещано.
Если сторонний обзор рассматривает только клиента, он не сможет ответить на вопросы пользователей об этом пакете исторических данных.
<р>1. Очистил диск и нашел копию проектаferstar изначально не проверял поведение загрузки. Когда он чистил диск своего компьютера, он обнаружил, что каталог данных ZCode занимает много места, а покопавшись, нашел зашифрованный файл размером 313 МБ. Это снимок, созданный программным обеспечением для проекта, который эквивалентен упаковке пакета файлов проекта в копию.
Список, сохраненный вместе со снимком, содержит 42411 файлов. По объему файлов примерно 86,6% из них находятся в каталоге .git, в котором хранятся записи версий, включая исторические объекты Git, журналы операций и большой файловый кэш LFS.
Куда будут отправлены эти документы? Ferstar продолжил проверку клиентского кода и обнаружил процесс загрузки: программное обеспечение сначала подал заявку на сертификат загрузки на сервер ZCode, затем упаковал и зашифровал файл, отправил файл в службу облачного хранения OSS Alibaba Cloud и, наконец, облако уведомило сервер ZCode о необходимости регистрации и получения результата.

Однако файл размером 313 МБ пытались загрузить 564 раза, но каждый раз это не удавалось, и он оставался на локальном компьютере в ожидании повторной попытки.
Ферстар специально уточнил это в обновлении от 19 сентября, а также добавил: Его другой меньший снимок общедоступного хранилища, статус показал, что сервер его принял.Разработчик Воннг затем проверил его на версии ZCode 3.12.3 для macOS. Он нашел снимок обычного рабочего пространства, не содержащего .git, и запись показала, что он был принят сервером; в двух других снимках .git занимал 93,9% и 98,5% от общего объема файлов. Клиент получил учетные данные для загрузки, но общедоступные записи не смогли подтвердить, завершили ли они загрузку.

ZCode также получил соответствующие отчеты в разделе отзывов на GitHub. Автор проблемы №707 сообщил, что нашел список снимков, принятых сервером, который содержал более двух тысяч путей .git. Он также отметил, что снимок будет содержать глобальные конфигурации, такие как информация о соединении, сценарии автоматического выполнения и командные файлы, установленные пользователем для инструмента искусственного интеллекта. Его суждения основаны на местных записях, и нет никаких результатов аудита на стороне сервера, которые можно было бы проверить.
<р>2. Удаленный код также может быть использованПользователей беспокоит повторяющаяся история Git в этих списках.
Git позволяет разработчикам извлекать старые версии кода, что также означает, что контент, удаленный сегодня, возможно, не исчезнет из хранилища.
Ключи, файлы конфигурации или внутренние адреса, отправленные по ошибке, могут быть сохранены в исторических объектах.
Документация по безопасности GitHub также напоминает, что удаление конфиденциальной информации только в последней версии кода не приведет к удалению копии в истории Git.
Могут существовать локальные заявки, которые еще не были добавлены в Git. Запись об отправке содержит адрес электронной почты автора, а в большом файловом кэше могут храниться материалы, которые использовались в проекте ранее. ZCode необходимо объяснить, почему ему необходимо загружать этот контент, чтобы помочь пользователям выполнить поставленную задачу.
Приведенные выше образцы не могут доказать утечку настоящего ключа.
Тем, кто открыл внутреннее хранилище в ZCode, необходимо знать, какие версии и периоды времени были затронуты, чтобы они могли вернуться и проверить исторический контент, который мог быть упакован.Политика конфиденциальности ZCode гласит, что для обеспечения генерации контента и операций с помощью искусственного интеллекта будут собираться файлы и коды, «отправленные и указанные» пользователями в разговорах. Однако, когда история Git пакетов программного обеспечения находится в фоновом режиме, существующее описание продукта не дает понять, знает ли пользователь и согласен ли он.
Даже если файл зашифрован, у пользователей есть причины спросить: перед загрузкой четко объясните, что будет загружено, а затем позвольте им решить, соглашаться ли.

Что касается того, используются ли файлы для обучения моделей, та же политика гласит, что «План оптимизации» отключен по умолчанию, а входные данные, сгенерированный контент или данные об использовании продукта не будут использоваться для обучения и оптимизации продукта и модели до тех пор, пока пользователи не присоединятся.
Существующие общедоступные материалы не показывают, что эти данные хранилища использовались в процессе обучения.

Но для компаний простого обещания не использовать код для обучения недостаточно, чтобы ответить на этот вызов. Хранение, доступ и уничтожение файлов после их загрузки также требуют обработки записей, которые могут быть проверены пользователями.
<р>3. Закройте индексирование, можете ли вы отключить загрузкуЕсли пользователь не хочет, чтобы эти фоновые снимки покидали компьютер, недостаточно знать, что «План оптимизации» по умолчанию отключен. Им также нужна возможность контролировать загрузку.
Согласно введению ZCode, поведение загрузки связано с «индексом базы кода». Эта функция используется для локального создания индексов хранилища и поддерживает восстановление контрольных точек сеанса, откат исторической версии и Repo Wiki. Первые два пункта помогают пользователям восстановить статус проекта, а Складская энциклопедия отвечает за анализ структуры проекта и формирование документации.
Судя по процессу восстановления разработчика, в ZCode изначально была функция загрузки хранилища. В описании от 18 сентября проблема связана со связанными функциями, которые были включены по умолчанию на ранней стадии, но не уточняется, корректирует ли это исправление условия загрузки, диапазон сбора файлов или логику управления настройками переключателей. Непонятно, какие данные необходимы для нескольких функций: какие файлы используются только для локального восстановления, а какие переносятся в облако. Почему учитываются история Git, большой файловый кеш и глобальная конфигурация, отражаемые пользователями?
Ферстар сказал, что в проверенной им версии 3.12.3 после отключения «Оптимизации опыта» и «Индекса моментальных снимков хранилища» фон все равно будет упаковываться и пытаться загрузиться.
Отправитель проблемы № 707 сообщил, что после закрытия индекса снимков хранилища он обнаружил запись о том, что сервер принимает снимки на его локальном компьютере. Необходимо проверить, происходит ли загрузка до или после выключения.
Независимо от того, контролирует ли этот параметр локальное индексирование или загрузку в облако, требуется объяснение ZCode.
Разработчики сообщества также наложили ограничения на клиент. Проект zcode-webui добавляет четыре уровня защиты во время официального выполнения, которые соответственно перехватывают приложение с учетными данными моментального снимка, загружают, считывают и сохраняют локально. Эти перехваты предназначены для предотвращения дальнейших загрузок. Что было передано в прошлом и что сделал сервер, все еще необходимо исследовать отдельно.

Когда компания Ferstar рассмотрела версию 3.14.0, она сообщила, что код и фоновые компоненты, отвечающие за загрузку, были удалены, а локальные контрольные точки все еще сохранились; интерфейс для подачи заявки на загрузку учетных данных также вернул 404.
Он проверил указанную выше версию и интерфейс. Были ли отремонтированы и другие платформы, смогут ли старые клиенты продолжать загрузку и когда вступит в силу ремонт на сервере, все еще требует официального объяснения.
<р>4. Что еще нужно исследовать после ремонтаПосле запуска исправленной версии пользователи больше всего хотят проверить, были ли перенесены их проекты. Политика конфиденциальности ZCode предусматривает адрес электронной почты для запроса и удаления личной информации. Мы надеемся, что компания разъяснит, может ли этот канал обрабатывать запросы об этой ненормальной загрузке, чтобы пользователи могли узнать конкретные затронутые элементы. Также следует указать, какие версии и периоды времени затронуты.
Компания заявила, что загруженные данные будут уничтожены сразу после создания Wiki. Но что произойдет с файлом, если сборка завершится неудачно, будет отменена или время ожидания истекло? Были ли загруженные файлы расшифрованы, кто имел к ним доступ и будет ли удаление касаться облачных снимков и резервных копий, требуют дальнейшего объяснения. Есть надежда, что компания сможет предоставить затронутым пользователям конкретные записи обработки, чтобы они могли проверить, были ли их файлы удалены, как было обещано.
По состоянию на 20 сентября, примерно через два дня после того, как ZCode пообещал сделать исходный код открытым, исходный код клиента еще не был найден на общедоступном складе Z.ai.

Когда в будущем исходный код станет открытым, внешний мир должен будет видеть рассматриваемую версию или соответствующие записи об изменениях.
Только глядя на исправленный код, непонятно, почему раньше сработала загрузка и какие файлы были собраны.
ZCode также обещает ввести стороннюю проверку. Сторона, занимающаяся рассмотрением, объем и график рассмотрения требуют дальнейшего пояснения.
Надеемся, что в этом обзоре будут проверены как клиентский код, так и журналирование сервера. Соответствующие записи обработки, доступа и удаления могут быть переданы проверяющему для проверки без раскрытия кода пользователя; результаты проверки должны быть доведены до сведения затронутых пользователей.
Комментарии