M's Works

Parliamo su

WhatsApp

OpenCode violato: cosa fare se le tue chiavi API erano lì

OpenCode ha confermato un accesso non autorizzato ai suoi server. Chi aveva salvato lì le chiavi di OpenAI o Anthropic deve revocarle adesso: come si fa, e come limitare il danno la prossima volta.

Antonio Murabito6 minuti di lettura
Una fila di barre di consumo basse; l'ultima sale di colpo e si ferma contro una linea orizzontale rossa, il tetto di spesa

Se usi OpenCode e nella sua Console avevi salvato chiavi di OpenAI o di Anthropic, revocale e creane di nuove.

Il 17 ottobre 2026 OpenCode, l'agente di programmazione open source sviluppato da Anomaly Innovations, ha avvisato una parte dei suoi utenti di un accesso non autorizzato. L'azienda lo collega a un «attacco di distillazione su larga scala», che avrebbe colpito l'1,4% degli utenti di OpenCode Console (il messaggio su X, ripreso da HuggingNews). La Console è il pannello web dove si gestiscono account e spazi di lavoro, e negli spazi di lavoro molti tenevano le chiavi dei fornitori di modelli.

Cosa è successo, per quello che si sa

L'email agli utenti è girata su Reddit come screenshot, e The CyberSec Guru ne ha riportato il contenuto: qualcuno è entrato in un sistema vecchio che OpenCode stava dismettendo, e le chiavi salvate negli spazi di lavoro potrebbero essere state esposte. Secondo HuggingNews l'azienda sta lavorando con Google, OpenAI e Anthropic e non aggiunge altro finché l'intervento è in corso. Non ha detto quando e come sia avvenuto l'accesso, né se le chiavi fossero cifrate. Che qualcuno le stia già usando, invece, si vede: su X circolano segnalazioni di consumi mai fatti, come questa.

Le chiavi aggiunte dal programma con il comando /connect stanno in un file sul tuo computer (~/.local/share/opencode/auth.json, secondo la documentazione di OpenCode) e questa violazione non le tocca: il programma che installi non è coinvolto. Quelle nella Console, finché OpenCode non spiega com'è andata, noi non le rimetteremmo.

Sulla distillazione OpenCode non ha dato spiegazioni, quindi quella che segue è una nostra lettura. Distillare vuol dire addestrare un modello sulle risposte di uno più forte. È una tecnica normale, e diventa un attacco quando qualcuno interroga in massa e di nascosto il modello di un'altra azienda per copiarne le capacità (come la descrive Anthropic). Servono milioni di richieste. Con le chiavi di altri non costano niente, e il traffico parte da account veri, che i controlli dei fornitori faticano a distinguere da un cliente qualunque.

Cosa fare adesso

  1. Apri la Console e segnati quali chiavi avevi negli spazi di lavoro.
  2. Revocale dal pannello di chi le ha emesse e creane di nuove. Cancellarle dalla Console non basta: la copia rubata resta valida finché OpenAI o Anthropic non la disattivano.
  3. Metti le chiavi nuove nei programmi che usavano le vecchie, altrimenti smettono di funzionare.
  4. Guarda i consumi degli ultimi giorni, chiave per chiave o progetto per progetto. Di solito i segni sono evidenti: richieste a orari in cui nessuno lavora, o su modelli che non hai mai usato. Se trovi qualcosa che non è tuo, scrivi subito al fornitore indicando le date. In partenza paga il titolare dell'account, e un eventuale rimborso dipende dalle condizioni del fornitore.

Un tetto di spesa per ogni chiave

Chi ha la tua chiave spende a nome tuo finché qualcuno non se ne accorge, e di solito ce ne si accorge dalla fattura. Su OpenAI le chiavi stanno dentro progetti, e ogni progetto può avere un limite di spesa mensile. Occhio a come lo imposti: le richieste si fermano solo se attivi l'opzione «Enforce a hard limit», altrimenti il limite serve a tenere il conto e basta. Anthropic ragiona per spazi di lavoro: ogni chiave ne vede uno solo e ogni spazio può avere un tetto di spesa mensile.

Noi consigliamo una chiave per ogni uso, ciascuna nel suo progetto e con il suo limite. Se te ne rubano una perdi al massimo quel tetto, e un consumo strano si nota subito perché non si mescola con il resto.

Con la chiave si apre anche quello che il progetto conserva presso il fornitore, per esempio i file caricati via API. Se lì c'erano dati di clienti o di dipendenti, una chiave esposta può diventare una violazione di dati personali: l'articolo 33 del GDPR dà 72 ore per notificarla al Garante, a meno che sia improbabile un rischio per le persone.

Il punto debole era un sistema in dismissione

Un sistema da spegnere che resta acceso e dimenticato si trova anche dove non si fa software. Il gestionale di prima resta acceso «per consultare lo storico», il vecchio sito resta su un server con le password del database ancora valide, e nessuno lo aggiorna o ne legge i log.

Finché contiene dati o credenziali che funzionano, un sistema va protetto come quelli in uso. Si può smettere quando è spento davvero, dopo aver cancellato o spostato quello che c'era dentro.

Come gestiamo le chiavi, nostre e dei clienti

OpenCode non lo usiamo. Usiamo OpenRouter, che fa un mestiere simile: sta fra noi e i fornitori dei modelli, e con una sola chiave arriva a modelli di aziende diverse. A un intermediario così puoi affidare le chiavi dei fornitori, che OpenRouter dice di conservare cifrate, oppure comprare credito da lui e lasciare le chiavi dei fornitori nei loro pannelli. In tutti e due i casi la chiave di OpenRouter può avere un tetto di spesa suo, separato dal saldo dell'account, e quando lo raggiunge smette di funzionare. La nostra ce l'ha. Se usi un servizio del genere, è la prima cosa da controllare.

Nei progetti per i clienti chiavi non ne teniamo. Quando un'applicazione che sviluppiamo usa OpenAI o OpenRouter, l'account è intestato all'azienda del cliente, le chiavi sono sue e il credito lo compra lui. Se un nostro sistema venisse violato le sue chiavi non ci sarebbero, e se un giorno decide di lavorare con qualcun altro non deve chiederci niente. Se un'applicazione con l'AI te l'ha fatta un fornitore, chiedigli a nome di chi è l'account: se è il suo, le tue chiavi stanno in un posto che non controlli, come stavano nella Console di OpenCode.

Il sito che stai leggendo usa una chiave OpenAI diretta per una cosa sola: leggere i commenti del blog e decidere se pubblicarli o lasciarli a noi da controllare. Ha un tetto di spesa impostato sul pannello di OpenAI, sta sul server in una variabile d'ambiente e al browser non arriva mai. Al modello mandiamo solo il testo del commento, senza nome né email. Se la chiave smette di funzionare i commenti restano in attesa e li approviamo a mano, e per questo possiamo revocarla in qualsiasi momento senza chiederci prima cosa si rompe.

Quante chiavi API ha in giro la tua azienda, e dove sono? Se non lo sai, scrivici. Il nostro security audit parte da lì: facciamo l'elenco delle credenziali e dei sistemi ancora accesi, e ti diciamo cosa chiudere per primo.

ArgomentiOpenCodechiavi APIdata breachagenti AIsicurezza

Commenti

Carico i commenti…

«Se l'opportunità non bussa, costruisciti una porta.»

Milton Berle
OpenCode violato: chiavi API esposte, cosa fare subito | M's Works