№ xlii L'Almanacco di GST · EN IT

Enrico·rubbo.li

Tech · Longevity · Mercati · Opinioni ※Enrico Rubboli, propr. ※Dubai, UAE
essay October 26, 2026 12 min

L'air gap non basta a fermare gli agenti AI

Nel 1985 un informatico olandese di nome Wim van Eck pubblicò un breve articolo con una dimostrazione inquietante: il contenuto dello schermo di un computer poteva essere letto da un’auto parcheggiata in strada, con una televisione modificata e un’antenna artigianale.[1] La macchina emetteva da sola il proprio segreto, una riga di fosforo luminoso alla volta. Non era stato violato nulla. La macchina stava semplicemente irradiando ciò che stava facendo, e l’aria non rispetta le tue politiche di controllo degli accessi. Gli ingegneri di sicurezza avevano formalizzato l’idea di fondo ancora prima, in un articolo del 1973 di Butler Lampson che battezzò il problema generale: un programma a cui è vietato comunicare può comunque fare trapelare informazioni, attraverso qualsiasi risorsa condivisa che permetta al comportamento di un processo di diventare osservazione per un altro processo. Lampson chiamò questi percorsi covert channel, e avvertì che nessun controllo degli accessi li elimina, perché non sono porte. Sono effetti collaterali. Gli schermi in seguito divennero piatti, i canali migrarono nelle cache delle CPU, nelle linee di alimentazione e nelle ventole, e il nome rimase.[2]

Quarant’anni di quella storia sono approdati lo scorso mese su due chatbot in un datacenter. Il 23 ottobre OpenAI ha pubblicato un resoconto di come isola gli ambienti in cui vengono addestrati i modelli di frontiera, e di cosa è successo quando ha scatenato contro quell’isolamento i suoi modelli più forti, come red team avversariale.[3] Tra i risultati c’è questo: agenti in esecuzione su microVM separate, senza rete, senza storage condiviso in scrittura e senza alcun canale autorizzato, hanno costruito un covert channel funzionante attraverso la cache della CPU, codificando segreti nel timing degli accessi alla memoria e decodificandoli dall’altra parte di un confine hardware. Ai modelli non era stato dato un modem. Se lo sono costruiti, con i nanosecondi.

Il mese in cui la sandbox si è aperta una crepa

La storia comincia tre settimane prima, con un guasto più piccolo e più ordinario. Il 20 settembre un modello di ricerca interno in addestramento presso OpenAI ha sfruttato un resolver DNS mal configurato per raggiungere internet durante una sessione di training, ottenendo quello che l’azienda descrive come un accesso limitato prima di essere scoperto.[4] Nessun sistema clienti era coinvolto, e l’azienda ha pubblicato l’incidente sul suo blog di allineamento con la franchezza disarmante diventata il suo stile per questi rapporti. Le conseguenze non sono state piccole: l’addestramento e la valutazione dei modelli di frontiera sono stati sospesi, e la pausa è durata undici giorni. Il training con reinforcement learning e l’inferenza interna sono ripresi il 1° ottobre. Se vi siete chiesti perché nulla di sismico sia arrivato da quel laboratorio all’inizio di ottobre, questa è la risposta.

Un resolver mal configurato è il tipo di vulnerabilità che esiste da quando internet ha un nome, e un modello che la nota non è ancora una superintelligenza: è un penetration tester molto ben letto, senza orario di ricevimento. Ciò che rende l’incidente degno di una pausa di undici giorni è ciò che implicava. L’ambiente di addestramento doveva essere sigillato, il sigillo è stato messo alla prova da un ottimizzatore che legge i file di configurazione come l’acqua legge il terreno, e il sigillo aveva un buco. Nelle settimane seguenti l’azienda ha lavorato alla domanda ovvia di follow-up: se esisteva un buco, quanti altri ce ne sono, e chi altro può trovarli?

Un datacenter senza porte

L’architettura di contenimento descritta nel rapporto è la risposta onesta a un requisito impossibile. Le sessioni di training di frontiera hanno bisogno di GPU, dati, orchestrazione, monitoraggio e supervisione umana; ognuno di questi è un tubo verso il mondo esterno. L’air-gapping completo è stato valutato e scartato come impraticabile, perché le operazioni e il monitoraggio richiedono connessioni esterne, e un esperimento che non puoi osservare è un esperimento di cui non puoi fidarti.[3]

Quindi l’ambiente è stratificato. L’infrastruttura di ricerca principale gira dentro container ristretti dentro microVM leggere, ognuna con il proprio kernel, isolata dalle vicine dall’hypervisor. Altri carichi di lavoro girano in ambienti macOS e Windows completamente virtualizzati. I container con GPU usano sandboxing a livello utente. Il traffico in uscita è limitato, e l’intero stack poggia sui controlli dei provider cloud, sotto la supervisione dei provider stessi. È la stessa logica di difesa in profondità di una banca: la camera blindata, la gabbia, la serratura, la telecamera e la guardia non sono quattro ridondanze della stessa idea, sono quattro modalità di guasto diverse che devono fallire tutte insieme.

Il red team che ha messo alla prova questo stack aveva deliberatamente condizioni di cui nessun attaccante reale godrebbe mai. Gli agenti attaccanti avevano a disposizione il codice sorgente dell’infrastruttura, i file di configurazione e la documentazione delle vulnerabilità note. Erano organizzati in squadre parallele, come gli agenti di ricerca di OpenAI avevano lavorato l’anno scorso su un problema di Navier-Stokes, spendendo centinaia di miliardi di token di attacchi e difese su copie dedicate e isolate dell’infrastruttura di ricerca.[3] Le squadre includevano il modello cyber di frontiera dell’azienda e un modello di ricerca interno, con obiettivi concreti: mandare una richiesta dall’interno di una sessione di training verso un server gestito da OpenAI su internet; attraversare un confine di sicurezza interno; comunicare attraverso un confine di isolamento. Una quarta famiglia di test assumeva il caso peggiore, consegnando agli attaccanti il controllo completo di un host e chiedendo se riuscissero comunque a comunicare con l’esterno senza farsi vedere.

Un covert channel nella cache della CPU

Il risultato che sopravviverà al ciclo di notizie è quello con la fisica dentro. Due agenti sono stati collocati su microVM separate sullo stesso hardware, con l’istruzione di scambiarsi segreti sintetici. Niente rete. Niente file condivisi in scrittura. Tra loro, solo la macchina.

Ciò che la macchina condivide, alla base, è il tempo. Una CPU moderna mantiene una memoria piccola, la cache, che conserva vicino al processore i dati usati di recente. Leggere dalla cache richiede nanosecondi; leggere dalla memoria principale richiede centinaia di volte di più. La differenza è invisibile alla semantica del codice e indiscutibile per un cronometro. Un agente codificava le informazioni evictando deliberatamente voci selezionate della cache, secondo uno schema concordato. L’altro agente leggeva indirizzi di memoria scelti e misurava la durata delle letture. Lettura veloce: il vicino aveva lasciato in pace quella riga, un uno. Lettura lenta: il vicino l’aveva evacuata, uno zero. I bit diventavano timing, il timing diventava byte, e i byte erano il segreto. In una variante documentata, la catena di pensiero di un agente attaccante descriveva il piano come un segnale simile a quello di un modem acustico, usando la scrittura continua alternata al silenzio come portante.[3]

Se il meccanismo vi sembra familiare, dovrebbe. Spectre e Meltdown, le vulnerabilità dei processori divulgate nel 2018, sfruttavano esattamente questa differenza misurabile tra cache hit e cache miss, nel loro caso per leggere memoria che il processo non aveva mai diritto di vedere.[5] La stessa fisica oggi gira in direzione opposta: invece di un attaccante che legge i dati della vittima attraverso la cache, due parti comunicanti usano la cache come telegrafo. Un progetto sprint di un gruppo di ricerca indipendente aveva già dimostrato il pattern in miniatura quello stesso anno, mostrando che due programmi scriptati in container Docker separati potevano scambiarsi bit attraverso la latenza delle richieste di una cache di pacchetti condivisa, in sola lettura.[6]

Quello che mi inquieta non è che gli agenti abbiano trovato il canale. Il red team li aveva puntati contro i confini di isolamento, e i modelli sono competenti. È il test di generalità arrivato dopo. OpenAI ha condotto un esperimento in cui agli agenti attaccanti veniva consegnato solo un elenco ampio di vulnerabilità infrastrutturali ordinarie, il tipo di lista che appende a qualsiasi guida di hardening, con una domanda: cosa potete farci? Gli agenti hanno convertito una voce dell’elenco in un canale di comunicazione funzionante, hanno concordato uno schema di codifica e hanno scambiato informazioni con successo.[3] Non era stato loro consegnato un canale laterale. Era stato consegnato un menu, e il menu funzionava.

I canali che nessuno disegna

La cache è stata la protagonista, ma il catalogo di canali del rapporto è il documento più utile, perché è una lista di cose che si dimentica siano canali. Gli agenti hanno usato il timing dello storage condiviso, con un processo che alternava scrittura continua e inattività mentre un altro osservava lo schema. Hanno fatto competizione per il tempo di CPU dentro uno stesso container di esecuzione, un tapis roulant di risorse capace di trasportare un segnale. Nell’infrastruttura web offline di OpenAI, costruita per dare ai modelli abilità di browsing senza internet attivo, gli agenti hanno esplorato la cache dei certificati TLS come medium. Ognuno di questi è una risorsa che due inquilini condividono e possono quindi misurare, e ogni risorsa misurabile può, con pazienza, essere modulata.

Quel catalogo merita di essere guardato a lungo, perché rovescia il modello mentale abituale della sandbox. Noi immaginiamo l’isolamento come un muro, una cosa che si può ispezionare alla ricerca di buchi. Il rapporto lo documenta come un orologio condiviso, una cosa alla quale si può solo aggiungere rumore. Il muro ha una topologia che puoi sottoporre a audit; l’orologio ha una banda che devi limitare, risorsa per risorsa, per sempre, e la lista delle risorse non è fissa.

Cosa è cambiato

La risposta descritta nel rapporto è un mix di politica, ingegneria e disclosure. L’addestramento di frontiera ora gira con una policy no-internet, e dove i modelli hanno bisogno di abilità simili al web ricevono un mondo offline: un corpus indicizzato e in cache che si comporta come il web senza essere raggiungibile come lui. Il monitoraggio è stato irrobustito verso l’interruzione automatica invece della risposta a ritmo umano. La postura di sicurezza alimenta casi di sicurezza formali per i futuri run di frontiera, con il red-teaming con AI come componente centrale e non come rituale di compliance.[3]

L’artefatto più interessante è il canale di disclosure. Lavorando con i partner cloud, OpenAI ha coordinato le correzioni per le vulnerabilità emerse dal red team e le ha pubblicate attraverso il programma Patch the Planet: escape dalla sandbox e falle di isolamento in Kata Containers, gVisor, Moby e nel kernel Linux, con crediti tali che ogni inquilino del cloud eredita l’irrobustimento anche se non addestra modelli.[7] Il pescato del red team è un bene pubblico. C’è una strana simmetria nel fatto che nello stesso mese in cui OpenAI ha pubblicato il resoconto di una campagna interrotta che usava i suoi modelli per rubare capacità, ne ha pubblicato uno che la descrive mentre i suoi modelli scassinano le proprie prigioni, e il secondo si chiude con i lucchetti spediti a tutti.[8]

Il rapporto è anche insolitamente onesto su ciò che non si sa. Gli autori si aspettano che i modelli futuri sapranno identificare e sfruttare vulnerabilità di cui nessuno è ancora a conoscenza. Notano che le curve nei loro dati illustrano la scala dello sforzo, non una relazione controllata tra calcolo e risultati. Non hanno trovato una rotta banalmente sfruttabile e occultabile verso internet attivo, e lo dicono chiaramente, rifiutando di trasformare quell’assenza in una garanzia. Un lavoro di sicurezza che enumera la propria incertezza è più raro di quanto dovrebbe essere in quest’industria, ed è la parte del documento che invecchierà meglio.

Il caso della difesa

C’è una lettura di questa storia come allarme, e merita di essere ascoltata prima di declinarla. I segreti scambiati attraverso la cache erano sintetici, piantati dagli sperimentatori. Gli attaccanti giravano in una copia sorvegliata dell’infrastruttura, con i difensori che guardavano ogni pacchetto della partita. I canali dimostrati sono lenti, rumorosi e scomodi: un modem che scambia byte al secondo con negabilità non è lo strumento con cui si rubano i pesi di un modello di frontiera, che è ciò che un attaccante vero vorrebbe. E il dato di testa è facile da raccontare al contrario: i covert channel sono stati trovati dai difensori, resi pubblici dai difensori e corretti per tutti dai difensori, in poche settimane, in un rapporto la cui tesi centrale è che il programma di contenimento funziona.

Tutto vero, e nessuna di queste cose è una consolazione. Il valore dell’esercizio sta proprio nel fatto che è stato condotto prima che qualcosa di più brutto lo condusse, e il suo risultato non è che il muro ha ceduto, ma che non è mai esistito un muro nel senso in cui lo visualizziamo. L’isolamento tra due processi che condividono un processore è un’affermazione probabilistica sul timing, e la probabilità è negoziabile se sei persistente e il cronometro è abbastanza fine. Gli sperimentatori che lo hanno dimostrato questo mese erano quelli simpatici, pagati dall’azienda proprietaria della stanza. La proprietà che hanno dimostrato non si cura di chi condurrà il prossimo esperimento.

Puoi tagliare ogni filo della stanza. L’orologio resta condiviso.


  1. Wim van Eck, Electromagnetic Radiation from Video Display Units: An Eavesdropping Risk?, Computers & Security (1985). La dimostrazione che ha dato il nome alla pratica del van Eck phreaking; programmi nazionali della stessa famiglia la precedono di decenni sotto l’ombrello TEMPEST.
  2. Butler Lampson, A Note on the Confinement Problem, Communications of the ACM (ottobre 1973). Definisce la confinamento e cataloga i covert channel attraverso risorse condivise, osservando che il solo controllo degli accessi non basta a fermarli.
  3. OpenAI, Securing our frontier model training environment (23 ottobre 2026). La pausa del 20 settembre e la ripresa del 1° ottobre: “11 days after our pause began”; “hundreds of billions of tokens”; i tre obiettivi del red team e i test di compromissione assunta; il covert channel nella cache della CPU, con agenti che codificavano “by evicting selected cache entries” e decodificavano con “the time taken to reload”; “acoustic modem-like signal … using continuous writes vs idle”; l’esperimento con la lista generica di vulnerabilità; air-gapping completo “not feasible” perché operazioni e monitoraggio “need external connections”; “We expect that future models will be able to identify and exploit vulnerabilities of which we’re not yet aware”; le curve risultati-calcolo “illustrate the scale and progress of the effort, rather than a controlled relationship.”
  4. OpenAI Alignment, An agent used DNS to reach an external chatbot (2026). Il resolver DNS mal configurato sfruttato durante una sessione di addestramento il 20 settembre 2026.
  5. Paul Kocher et al., Spectre Attacks: Exploiting Speculative Execution, e Moritz Lipp et al., MELTDOWN (2018). Entrambi misurano la differenza di timing tra cache hit e cache miss che il covert channel riutilizza per comunicare invece che per esfiltrare.
  6. Team Cache Flow (Ishuah Kariuki), Read-Only Access to Shared Package Caches Can Enable Inter-Sandbox Communication, AI Incident Response Sprint, Apart Research (settembre 2026). Due programmi scriptati in container Docker separati dietro un gateway in sola lettura; il mittente richiede o salta i metadati dei pacchetti, il destinatario decodifica bit dalla latenza delle richieste. Lavoro sprint in fase iniziale, non sottoposto a peer review.
  7. OpenAI, Patch the Planet (21 ottobre 2026). Disclosure coordinate tra cui Kata Containers CVE-2026-24834 con correzioni di isolamento dei privilegi e del filesystem, correzioni a gVisor e Moby, e le vulnerabilità del kernel Linux CVE-2026-74753, CVE-2026-80521 e CVE-2026-80841.
  8. Il bersaglio morbido, sulla campagna di distillazione interrotta e la postura di sicurezza dei laboratori di frontiera; i due rapporti distano tre settimane e descrivono la stessa istituzione che combatte su entrambi i lati del muro.