Resumen:
ZCode, la herramienta de programación de inteligencia artificial de Zhipu, ha sido cuestionada por su empaquetado en segundo plano y la carga de proyectos de usuarios.
Los desarrolladores descubrieron que no solo estaba empaquetado el código actual, sino también el historial de Git que guardaba las modificaciones anteriores. El 18 de septiembre, el desarrollador Ferstar reveló los resultados de su solución de problemas: ZCode generó una copia del proyecto en esta máquina e intentó cargarlo repetidamente. Posteriormente, otros usuarios también proporcionaron registros de reseñas. Algunos descubrieron que el servidor había aceptado la copia del proyecto y otros cuestionaron si el cambio de índice del almacén podría impedir la carga. Por lo tanto, los usuarios preguntaron: ¿Por qué el software recopila este contenido y cómo evitar que se cargue?

ZCode se disculpó ese día y atribuyó el problema a las funciones relacionadas con el "índice base de código" que estaban activadas de forma predeterminada en los primeros días. La compañía dijo que Repo Wiki puede activar la carga de datos al generar una enciclopedia de almacén en la nube, y los datos relevantes se destruirán inmediatamente después de la generación. También prometió abrir el código del cliente e introducir la revisión de terceros.

El 19 de septiembre, ZCode lanzó la versión 3.14.0 y el registro de actualización decía: "Se solucionó el problema de carga anormal de la enciclopedia del almacén". Ferstar también complementó los resultados de la revisión, diciendo que el código de carga relevante se eliminó en la nueva versión.

Una vez que sea de código abierto, los externos pueden comprobar por qué se cargó el software y qué cambios se realizaron esta vez. Sin embargo, la empresa aún debe proporcionar registros de recepción y procesamiento de qué archivos recibió el servidor anteriormente y si se eliminaron según lo prometido.
Si la revisión de terceros solo analiza al cliente, no podrá responder las preguntas de los usuarios sobre este lote de datos históricos.
1. Limpia el disco y encuentra una copia del proyecto
ferstar no estaba comprobando inicialmente el comportamiento de carga. Cuando estaba limpiando el disco de su computadora, descubrió que el directorio de datos de ZCode ocupaba mucho espacio y, después de investigar, encontró un archivo cifrado de 313 MB. Es una instantánea generada por el software del proyecto, lo que equivale a empaquetar un lote de archivos del proyecto en una copia.
La lista guardada con la instantánea enumera 42411 archivos. Calculado por volumen de archivos, aproximadamente el 86,6% de ellos provienen del directorio .git que guarda registros de versiones, incluidos objetos históricos de Git, registros de operaciones y caché de archivos grandes de LFS.
¿A dónde se enviarán estos documentos? Ferstar continuó verificando el código del cliente y encontró un proceso de carga: el software primero solicitó un certificado de carga al servidor ZCode, luego empaquetó y cifró el archivo, envió el archivo al servicio de almacenamiento en la nube OSS de Alibaba Cloud y, finalmente, la nube notificó al servidor ZCode para registrarse y recibir el resultado.

Sin embargo, se intentó cargar el archivo de 313 MB 564 veces, pero falló cada vez y permaneció en la máquina local esperando un nuevo intento.
Ferstar aclaró esto específicamente en la actualización del 19 de septiembre y también agregó: En su otra instantánea de almacén público más pequeña, el estado muestra que el servidor la ha aceptado.El desarrollador Vonng luego lo revisó en la versión macOS de ZCode 3.12.3. Encontró una instantánea del espacio de trabajo normal que no contenía .git y el registro mostraba que había sido aceptado por el servidor; en las otras dos instantáneas, .git representó el 93,9% y el 98,5% del volumen total de archivos. El cliente había obtenido las credenciales de carga, pero los registros públicos no pudieron confirmar si habían completado la carga.

ZCode también ha recibido informes relevantes en el área de comentarios de GitHub. El remitente del número 707 dijo que encontró una lista de instantáneas aceptadas por el servidor, que contenía más de dos mil rutas .git. También reflexionó que la instantánea vendrá con configuraciones globales como información de conexión, scripts de ejecución automática y archivos de comandos establecidos por el usuario para la herramienta de IA. Su juicio se basa en registros locales y no hay resultados de auditoría del lado del servidor que verificar.
2. También se puede seguir el código eliminado
El historial recurrente de Git en estas listas es lo que preocupa a los usuarios.
Git permite a los desarrolladores recuperar versiones antiguas de código, lo que también significa que el contenido eliminado hoy puede no haber desaparecido del almacén.
Las claves, archivos de configuración o direcciones internas que se hayan enviado por error pueden conservarse en objetos históricos.
La documentación de seguridad de GitHub también recuerda que solo eliminar información confidencial en la última versión del código no borrará la copia del historial de Git.
Es posible que todavía haya envíos locales que aún no se hayan enviado a Git. El registro de envío contiene la dirección de correo electrónico del autor y el caché de archivos grandes puede retener materiales que se han utilizado anteriormente en el proyecto. ZCode necesita explicar por qué necesita cargar este contenido para ayudar a los usuarios a completar la tarea en cuestión.
Los ejemplos anteriores no pueden probar que se haya filtrado la clave real.
Aquellos que abrieron el almacén interno en ZCode, necesitan saber qué versiones y períodos de tiempo se vieron afectados para poder regresar y verificar el contenido histórico que pudo haber sido empaquetado.La política de privacidad de ZCode establece que para proporcionar generación de contenido y operaciones asistidas por IA, se recopilarán los archivos y códigos "enviados y especificados" por los usuarios en las conversaciones. Sin embargo, cuando el software empaqueta el historial de Git en segundo plano, la descripción del producto existente no deja claro si el usuario lo sabe y está de acuerdo.
Incluso si el archivo está cifrado, los usuarios tienen motivos para preguntar: antes de cargarlo, explique claramente qué se cargará y luego déjeles decidir si están de acuerdo.

En cuanto a si los archivos se utilizan para entrenar modelos, la misma política establece que el "Plan de optimización" está desactivado de forma predeterminada y que las entradas, el contenido generado o los datos de uso del producto no se utilizarán para la capacitación y optimización de productos y modelos hasta que los usuarios se unan activamente.
Los materiales públicos existentes no muestran que estos datos del almacén ingresaron al proceso de capacitación.

Pero para las empresas, la simple promesa de no utilizar código para la capacitación no es suficiente para responder a este desafío. El almacenamiento, el acceso y la destrucción de archivos después de su carga también requieren el procesamiento de registros que los usuarios puedan verificar.
3. Cerrar indexación. ¿Puedes desactivar la carga?
Si el usuario no quiere que estas instantáneas en segundo plano salgan de la computadora, no basta con saber que el "Plan de optimización" está desactivado de forma predeterminada. También necesitan una opción para controlar la carga.
Según la introducción de ZCode, el comportamiento de carga está relacionado con el "índice base de código". Esta característica se utiliza para generar localmente índices de almacén y admite la recuperación de puntos de control de sesión, la reversión de versiones históricas y Repo Wiki. Los dos primeros elementos ayudan a los usuarios a restaurar el estado del proyecto, mientras que Warehouse Encyclopedia es responsable de analizar la estructura del proyecto y generar documentación.
A juzgar por el proceso de restauración del desarrollador, ZCode originalmente tenía una función de carga de almacén. La descripción del 18 de septiembre atribuyó el problema a funciones relacionadas que estaban activadas de forma predeterminada en la etapa inicial, pero no dio más detalles sobre si esta solución ajustaba las condiciones de carga, el rango de recopilación de archivos o la lógica de control de configuración de los interruptores. No está claro qué datos se requieren para varias funciones: qué archivos solo se utilizan para la recuperación local y cuáles se transfieren a la nube. ¿Por qué se incluyen el historial de Git, el caché de archivos grandes y la configuración global reflejados por los usuarios?
ferstar dijo que en la versión 3.12.3 que verificó, después de desactivar "Optimizar experiencia" y "Índice de instantáneas de almacén", el fondo aún se empaquetará e intentará cargarse.
El remitente del número 707 dijo que después de cerrar el índice de instantáneas del almacén, encontró un registro del servidor que aceptaba instantáneas en su máquina local. Es necesario comprobar si la carga se produce antes o después del apagado.
Si esta opción controla la indexación local o la carga en la nube requiere la explicación de ZCode.
Los desarrolladores de la comunidad también han impuesto restricciones al cliente. El proyecto zzode-webui agrega cuatro capas de protección durante el tiempo de ejecución oficial, que interceptan, respectivamente, la instantánea de la aplicación de credenciales, la cargan, leen y guardan localmente. Estas intercepciones son para evitar más cargas. Lo que se ha transmitido en el pasado y lo que ha hecho el servidor aún debe investigarse por separado.

Cuando Ferstar revisó la versión 3.14.0, dijo que el código y los componentes en segundo plano responsables de la carga se habían eliminado y que aún se conservaban los puntos de control locales; la interfaz para solicitar credenciales de carga también devolvió 404.
Revisó la versión y la interfaz anteriores. Si otras plataformas también han sido reparadas, si los clientes antiguos pueden continuar cargando y cuándo entrará en vigor la reparación en el servidor aún requiere una explicación oficial.
4. ¿Qué más se debe investigar después de la reparación?
Después de lanzar la versión de reparación, lo que más quieren confirmar los usuarios es si sus proyectos han sido transferidos. La política de privacidad de ZCode ha proporcionado una dirección de correo electrónico para consultar y eliminar información personal. Esperamos que la empresa aclare si este canal puede atender consultas sobre esta carga anormal, para que los usuarios puedan conocer los elementos específicos afectados. También se debe indicar qué versiones y períodos de tiempo se ven afectados.
La empresa ha declarado que los datos cargados se destruirán inmediatamente después de que se genere el Wiki. Pero, ¿qué sucede con el archivo si la compilación falla, se cancela o se agota el tiempo de espera? Es necesario explicar más a fondo si los archivos cargados se han descifrado, quién ha accedido a ellos y si la eliminación cubrirá las instantáneas y las copias de seguridad en la nube. Se espera que la empresa pueda proporcionar registros de procesamiento específicos a los usuarios afectados para que puedan comprobar si sus archivos se han eliminado según lo prometido.
A partir del 20 de septiembre, aproximadamente dos días después de que ZCode prometiera ser de código abierto, el código fuente del cliente aún no se había encontrado en el almacén público de Z.ai.

Cuando sea de código abierto en el futuro, el mundo exterior necesitará ver la versión en cuestión o los registros de modificación correspondientes.
Solo mirando el código reparado, no está claro por qué se activó la carga antes y qué archivos se recopilaron.
ZCode también promete introducir revisiones de terceros. La parte revisora, el alcance y el cronograma necesitan más explicaciones.
Esperamos que esta revisión verifique tanto el código del cliente como el registro del servidor. Los registros de procesamiento, acceso y eliminación relevantes se pueden entregar al revisor para su inspección sin revelar el código de usuario; Los resultados de la revisión deben notificarse a los usuarios afectados.
Comentarios