Il blog sulla sicurezza di FireAI

Di FireAI Security & Research Team · Pubblicato

Monitorare l’accesso alla rete di OpenAI Codex CLI su Mac con FireAI

Monitorare l’accesso alla rete di OpenAI Codex CLI su Mac con FireAI

Codex CLI è un agente di programmazione di OpenAI che gira nel terminale. Legge un progetto, propone modifiche ed esegue comandi, e OpenAI documenta per esso un modello di sicurezza a due livelli che combina una sandbox con policy di approvazione. Questo articolo riassume quel modello così come si applica a macOS, spiega che cosa dice e che cosa non dice sul traffico di rete, e mostra come FireAI osserva il programma.

Che cos’è Codex CLI e come si installa

Il repository del progetto descrive Codex CLI come un agente di programmazione leggero che gira nel terminale, realizzato da OpenAI e distribuito con licenza Apache-2.0. Elenca tre modalità di installazione: npm install -g @openai/codex, brew install --cask codex e un download diretto tramite uno script shell o la pagina GitHub Releases. Funziona su macOS sia per Apple Silicon sia per Intel, oltre che su Linux e Windows.

Terminale
# the documented install routes
npm install -g @openai/codex
brew install --cask codex

Il modello di sandbox e approvazione documentato

La pagina di OpenAI su approvazioni e sicurezza degli agenti descrive modalità sandbox e policy di approvazione che lavorano insieme, e precisa che nessuna delle due da sola offre una protezione completa. Le modalità sandbox sono read-only, workspace-write e danger-full-access. In read-only, le azioni al di fuori di un perimetro ristretto richiedono approvazione. In workspace-write, Codex può leggere, modificare ed eseguire comandi nel workspace attivo, mentre l’accesso alla rete e le modifiche al di fuori di esso richiedono approvazione. Danger-full-access rimuove le restrizioni e non è consigliata.

Le policy di approvazione comprendono on-request, la modalità interattiva standard; never, che disattiva le richieste di approvazione mantenendo i vincoli della sandbox; e granular, interattiva in modo selettivo per specifiche categorie di azioni.

L’accesso alla rete nella sandbox

Secondo la stessa pagina, la connettività di rete è disattivata per impostazione predefinita. Per attivarla in modalità workspace-write si imposta network_access = true sotto [sandbox_workspace_write] nel file di configurazione, e una funzione facoltativa network_proxy può limitare il traffico a liste di domini autorizzati configurate. Su macOS l’applicazione avviene tramite policy Seatbelt con sandbox-exec; su Linux tramite bwrap e seccomp.

config.toml
[sandbox_workspace_write]
network_access = true

Questa impostazione regola i comandi eseguiti all’interno della sandbox. È un limite utile, e vale la pena dire che cosa non è: non è un registro delle connessioni, e la connessione dell’agente stesso a un servizio di modelli è una questione separata. Questo articolo non elenca i domini propri di Codex, perché le pagine esaminate non forniscono un elenco documentato dal produttore.

Perché una visione di rete resta utile

Se attivi l’accesso alla rete per permettere ai test di scaricare dipendenze, o usi danger-full-access, la sandbox non limita più dove si connettono i comandi. A quel punto, il controllo che resta è una visione delle destinazioni effettivamente raggiunte dal programma. Copre anche il caso in cui hai dimenticato di aver cambiato l’impostazione.

Osservare Codex con FireAI

FireAI è un firewall per macOS realizzato da HisnLabs e, dalla versione 1.0.2, include una funzione chiamata profilo agente. Riconosce 19 agenti IA, impara dove ciascuno si connette normalmente e segnala i comportamenti insoliti perché tu li esamini. Codex è un agente a riga di comando, quindi FireAI lo riconosce dal nome del suo programma.

Codex viene riconosciuto dal nome del suo programma, codex, il che significa che FireAI etichetta la corrispondenza senza verificarla rispetto alla firma di uno sviluppatore. Solo Claude Code, Claude e Cursor vengono controllati in questo modo.

FireAI riconosce anche i processi figli dell’agente, come una shell, git o curl eseguiti dall’agente, risalendo i processi genitori finché non arriva all’agente. Quelle connessioni vengono quindi contate come dell’agente stesso.

Che cosa segnala FireAI

  1. Per i primi 3 giorni FireAI impara le destinazioni che l’agente contatta normalmente, raggruppate per dominio. Durante questo periodo di apprendimento non viene segnalato nulla.
  2. Dopo di che, una destinazione mai vista prima e al di fuori della base appresa viene segnalata per una verifica.
  3. Viene segnalato anche un picco di upload: un’ora in cui l’agente ha inviato almeno 4 volte il volume della sua ora più intensa fino a quel momento, e mai meno di 25 MB.

Il profilo agente usa solo metadati, cioè nomi host e conteggi di byte. FireAI non legge mai il contenuto di una connessione, e non può leggere all’interno di una connessione cifrata.

Configurarlo per Codex

  1. Installa FireAI e completa la configurazione, poi continua a usare Codex come fai di solito. Il periodo di apprendimento di 3 giorni parte da ciò che FireAI osserva.
  2. Apri Suggerimenti e guarda la scheda Agenti IA. Elenca gli agenti che FireAI ha riconosciuto e ciò che ha imparato su ciascuno.
  3. Quando Codex raggiunge una destinazione che non ha mai contattato, la segnalazione compare nella scheda Agenti IA e nella Revisione rapida. Scorri a sinistra per bloccare, o a destra per “Va bene”.
  4. Blocca crea una regola per il processo che si è connesso. “Va bene” aggiunge la destinazione alla base dell’agente, così non viene più segnalata.
  5. Se vuoi limitare l’agente ai luoghi che usa già, scegli Profilo agente nel menu delle modalità di sicurezza, accanto a Casa, Caffè, Paranoia e Sotto attacco. Quando l’agente ha finito di imparare, una connessione verso una destinazione al di fuori della sua base viene bloccata invece che segnalata.
  6. Una destinazione bloccata compare nella scheda Agenti IA con Consenti e Mantieni bloccato. Consenti la aggiunge alla base e l’agente può raggiungerla subito. Mantieni bloccato crea una regola di blocco, così la destinazione resta bloccata in ogni modalità.

Limiti

  • FireAI non impedisce la prompt injection. Un prompt nascosto in una pagina web o in un file può comunque orientare un agente. Ciò che FireAI può fare è segnalare, e permetterti di bloccare, la via che i dati prenderebbero per uscire dal tuo Mac.
  • FireAI non può vedere i prompt, il contenuto degli strumenti MCP o i file che Codex legge, come ~/.ssh. TLS nasconde il contenuto, e FireAI non si trova dentro l’agente.
  • I processi figli che terminano molto rapidamente possono sfuggire, e vengono riconosciuti per percorso, non per firma.
  • Durante il periodo di apprendimento di 3 giorni non viene segnalato nulla.
  • Nella modalità Profilo agente, una connessione verso un indirizzo IP nudo, senza nome host, viene riconosciuta in base all’indirizzo. Se un servizio che l’agente usa normalmente risponde da un nuovo indirizzo, viene bloccato finché non lo consenti.
  • La spiegazione in parole semplici che FireAI dà di una segnalazione si basa su fatti che ha misurato. Non dice mai che una destinazione è sicura o pericolosa. La decisione spetta a te.

Guide correlate

Lo stesso approccio vale per gli altri agenti riconosciuti da FireAI: Claude Code, l’app desktop di Claude, Cursor, l’app ChatGPT per Mac, OpenClaw, Hermes Agent, Gemini CLI, GitHub Copilot CLI, Amp, Qwen Code, opencode, Aider, Goose, Crush, Windsurf, Kiro, Trae, Muse di Meta, qualsiasi altro agente IA eseguito da Python o Node. La descrizione completa della funzione si trova nella documentazione del profilo agente.

Il ruolo di FireAI e di HisnLabs

Codex tiene disattivata per impostazione predefinita la rete della propria sandbox. FireAI osserva il resto del quadro.

FireAI è il prodotto di HisnLabs: un firewall con IA che funziona direttamente sul Mac. Mostra in linguaggio chiaro ogni connessione che le tue app effettuano e ti lascia decidere cosa esce dal tuo Mac — la sua IA lavora in locale, quindi il tuo traffico non viene mai inviato a noi né a nessun altro. Il team di ricerca sulla sicurezza di HisnLabs è quello che mantiene affidabili queste decisioni: cataloga quali domini sono semplice telemetria e quali un servizio reale, traccia il Paese e la rete dietro una connessione e addestra il modello locale (la funzione FireAI Pilot) su schemi di traffico reali, senza che nulla lasci il tuo Mac.

Puoi leggere le scelte tecniche che ci stanno dietro, oppure provare FireAI per 17 giorni, su FireAI, di HisnLabs.

Fonti