Secondo la ricostruzione dell’Indian Express, utenti di ZCode hanno segnalato che la funzione Codebase Indexing, attiva per impostazione predefinita, inviava repository locali verso server cloud senza un consenso sufficientemente chiaro. Z.ai, il nome commerciale di Zhipu, ha poi disabilitato alcune funzioni, si è scusata e ha dichiarato di aver applicato una correzione. È importante mantenere il perimetro: la notizia descrive segnalazioni e risposta del fornitore, non un inventario indipendente di tutti i repository coinvolti.
Perché è importante
- Z.ai ha disabilitato alcune funzioni del coding assistant ZCode dopo segnalazioni secondo cui Codebase Indexing caricava repository locali su server cloud senza consenso chiaro.
- La società ha dichiarato di essersi scusata e di aver corretto il problema; l’episodio è una ricostruzione giornalistica, non una prova che ogni installazione o repository sia stata trasferita.
- Il controllo decisivo è aziendale: sapere quali file vengono letti, dove finiscono, per quanto tempo restano disponibili e come revocare l’accesso prima di collegare un assistente al codice proprietario.
Che cosa è successo a ZCode
L’indicizzazione può essere utile: un assistente deve conoscere struttura, simboli e dipendenze per proporre modifiche coerenti. Ma il passaggio da leggere il progetto a caricare il progetto cambia il rischio. Il codice può contenere nomi di clienti, endpoint interni, configurazioni, commenti riservati e segreti lasciati per errore. Un default poco visibile può trasformare un aiuto locale in un trasferimento di dati.
Il caso è quindi più ampio del singolo prodotto. Ogni estensione che analizza file, apre una shell o sincronizza un progetto deve dichiarare quale parte del contesto usa, quale parte conserva e quale parte invia. Il fatto che un assistente scriva codice sul computer non significa che il ragionamento resti sul computer.
Il pericolo dei default e dell’idea di comodità
Le impostazioni predefinite sono una scelta di sicurezza, non solo di esperienza utente. Se l’indicizzazione parte automaticamente, molti sviluppatori la useranno prima di avere letto privacy, retention e destinazioni. Un permesso espresso dopo il trasferimento non risolve il problema: il team deve sapere cosa succederà prima che il primo repository venga aperto.
La superficie di rischio comprende anche file che non sembrano codice. Un assistente può leggere .env, script di deploy, chiavi pubbliche, dump di test, issue esportate e documentazione con dati di clienti. Il filtro per estensione non basta, perché un segreto può trovarsi in una configurazione o in una cronologia Git. Serve una lista esplicita di percorsi consentiti e una verifica con dati fittizi.
La promessa di una correzione non elimina la necessità di misurare. Dopo un aggiornamento bisogna controllare che la funzione sia davvero disabilitata, che il client non mantenga una cache precedente e che i token possano essere revocati. La sicurezza deve considerare installazioni già configurate, non solo il comportamento della versione nuova.
Cosa puoi farci concretamente
- Disattivare l’indicizzazione automatica nei repository sensibili e testare con un progetto fittizio quali file e metadati vengono inviati.
- Separare credenziali, token e segreti dal codice e bloccare l’upload verso domini non approvati con proxy o policy di rete.
- Conservare versione dell’estensione, impostazioni, log di rete e consenso dell’utente per poter ricostruire un trasferimento e revocare rapidamente l’accesso.
La checklist per un coding assistant
Il primo test è osservare la rete. Con un repository fittizio contenente file esca, il team può verificare quali richieste parte il client, quali host contatta e quali file compaiono nel payload. Non è necessario leggere il contenuto del progetto di produzione: è sufficiente dimostrare il comportamento con dati controllati e conservare l’evidenza della prova.
Il secondo test riguarda l’accesso. L’estensione deve avere un token separato, con scadenza e permessi minimi, mentre i segreti veri restano fuori dal repository indicizzato. Se il sistema richiede accesso alla shell, il comando deve essere limitato e registrato. Un assistente che può leggere e inviare tutto non è un collega digitale: è un account privilegiato senza un perimetro.
Il terzo test è la cancellazione. L’azienda deve sapere come rimuovere indice, cache e file caricati, come chiedere la cancellazione al fornitore e come dimostrare che l’accesso è stato revocato. Questa procedura va provata prima del pilot, non durante un incidente. Anche il contratto deve chiarire uso per addestramento, subfornitori e localizzazione dei dati.
Il verdetto: l’AI per il codice richiede inventario dei dati
ZCode mostra una tensione tipica: più contesto rende l’assistente più utile, ma aumenta la quantità di dati che deve vedere. La soluzione non è vietare ogni automazione; è rendere misurabile il confine. Repository, branch, file, credenziali, rete e retention devono avere un proprietario e una regola comprensibile.
Per una PMI il percorso può partire da un progetto dimostrativo e da un account dedicato. Si misura la qualità dei suggerimenti insieme a ciò che viene trasferito, si approvano i domini, si escludono segreti e si verifica il rollback. Se il fornitore non offre una risposta precisa su log, conservazione e cancellazione, il problema non è soltanto tecnico: è una decisione di rischio.
La lezione è semplice: un coding assistant non è un editor con una casella chat. È un componente che può attraversare il confine tra laptop, repository e cloud. Prima di attivarlo, chiedi quali file legge, quale evento autorizza l’invio, chi può recuperarlo e come lo spegni. La comodità arriva dopo l’inventario, non prima.
Fonti
Documenti, comunicati e pubblicazioni consultati per ricostruire dati e contesto.


