Il blog sulla sicurezza di FireAI

Di FireAI Security & Research Team · Pubblicato

Sicurezza dell’agente Crush su Mac: monitorarne la rete con FireAI

Sicurezza dell’agente Crush su Mac: monitorarne la rete con FireAI

Crush è un agente di programmazione da terminale di Charm, l’azienda dietro una nota famiglia di strumenti a riga di comando. Chiede prima di eseguire uno strumento, può essere istruito a non farlo e documenta nel suo README più di un comportamento di rete. Questo lo rende un buon caso di studio per chi cerca “crush ai agent security mac”, “crush network access” o “is Crush safe”. Questo articolo raccoglie ciò che dichiara il README e spiega poi come FireAI, un firewall per macOS che gira sul dispositivo, realizzato da HisnLabs, osserva le connessioni di un singolo programma compilato.

Che cos’è Crush

Crush è sviluppato da Charm (charmbracelet su GitHub) ed è scritto in Go. Il README lo descrive come software di programmazione agentica per il terminale che collega strumenti, codice e flussi di lavoro ai modelli linguistici. Supporta molti fornitori, tra cui OpenAI, Anthropic, Gemini, Ollama e Bedrock, e il suo catalogo di modelli viene tenuto aggiornato da Catwalk, un database open source di fornitori. Può usare server MCP tramite stdio, HTTP e SSE, con OAuth per HTTP, e language server (LSP) per il contesto del codice [1].

Come gira Crush su macOS

Il README elenca brew install charmbracelet/tap/crush, npm install -g @charmland/crush, go install github.com/charmbracelet/crush@latest e binari precompilati per macOS. Poiché è un programma Go, il processo sul Mac è un singolo eseguibile nativo chiamato crush, non un interprete che esegue uno script.

A cosa può accedere e come viene controllato

Per impostazione predefinita Crush chiede il permesso prima di eseguire le chiamate agli strumenti. Il flag --yolo salta ogni richiesta, e il README avverte: “Be very, very careful with this feature.” I permessi si possono anche configurare: permissions allow consente a strumenti indicati per nome di essere eseguiti senza richiesta, e permissions deny nasconde del tutto gli strumenti all’agente. La configurazione riguarda fornitori, LSP, MCP, permessi, temi e skill [2].

Questi controlli decidono quali chiamate agli strumenti vanno avanti. Il README non descrive una lista di autorizzazione per la rete.

Dove si connette

Il README documenta due comportamenti che aprono connessioni senza un tuo prompt. Primo, Crush raccoglie metadati d’uso pseudonimi e dichiara che prompt e risposte non vengono mai raccolti; si disattiva con CRUSH_DISABLE_METRICS=1 o rispettando DO_NOT_TRACK. Secondo, scarica automaticamente il catalogo dei fornitori da Catwalk, funzione che si può disattivare con CRUSH_DISABLE_PROVIDER_AUTO_UPDATE=1 e aggiornare a mano con crush update-providers [2]. Le altre destinazioni dipendono dal fornitore e dai server MCP che configuri.

Osservare Crush con FireAI

FireAI è un firewall per macOS che gira sul Mac. La sua funzione profilo agente riconosce 19 agenti IA, impara dove ciascuno si connette normalmente e segnala ciò che è nuovo. La pagina del profilo agente di FireAI elenca Crush tra gli agenti a riga di comando riconosciuti dal nome del loro programma. Le connessioni di un programma chiamato crush, e dei suoi processi figli come una shell, git o curl, vengono attribuite a Crush.

  • Per i primi 3 giorni FireAI impara le destinazioni che l’agente contatta normalmente, raggruppate per dominio, così api.anthropic.com diventa anthropic.com. Durante questo periodo non viene segnalato nulla.
  • Dopo di che, la prima destinazione in assoluto al di fuori della base viene segnalata per una verifica in Suggerimenti, nella scheda Agenti IA e nella Revisione rapida. Scorri a sinistra per bloccare, o a destra per “Va bene”.
  • Viene segnalato anche un picco di upload: un’ora in cui l’agente ha caricato almeno 4 volte il volume della sua ora più intensa fino a quel momento, e mai meno di 25 MB.
  • FireAI usa solo metadati, cioè nomi host e conteggi di byte. Non legge mai il contenuto di una connessione.

Configurare FireAI per Crush

  1. Installa FireAI e usa l’agente come fai di solito. Il periodo di apprendimento di 3 giorni parte da solo e non segnala nulla.
  2. Apri Suggerimenti e cerca la scheda Agenti IA. Dopo il periodo di apprendimento, una segnalazione per l’agente compare lì e nella Revisione rapida.
  3. Esamina ogni segnalazione. Scegli Blocca per creare una regola per il processo che si è connesso, o “Va bene” per aggiungere la destinazione alla base dell’agente.
  4. Per 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. Le tue regole si applicano come in Casa, e una connessione verso una destinazione al di fuori della base viene bloccata invece che segnalata quando l’agente ha finito di imparare.
  5. Una destinazione bloccata compare nella scheda Agenti IA con Consenti e Mantieni bloccato. Consenti la aggiunge alla base e l’agente la raggiunge subito. Mantieni bloccato crea una regola di blocco valida in ogni modalità.

Una regola di autorizzazione che hai scritto per un sito web, un dominio o un indirizzo resta prioritaria, e il DNS e la rete locale non vengono mai bloccati. Per un agente che FireAI non elenca, scrivi a mano una regola per il suo programma nelle regole per app. La modalità Profilo agente richiede FireAI 1.0.3 o successivo, e il riconoscimento di Crush richiede la 1.0.4.

Limiti

  • Variabili d’ambiente come CRUSH_DISABLE_METRICS modificano ciò che Crush stesso invia. FireAI non legge queste impostazioni; riporta soltanto quali host il programma contatta e quanto carica.
  • Crush viene riconosciuto dal nome del suo programma, quindi è etichettato, non verificato: solo Claude Code, Claude e Cursor vengono controllati rispetto alla firma del loro sviluppatore.
  • FireAI non ferma la prompt injection. Ne limita i danni segnalando, e permettendoti di bloccare, la via che i dati prenderebbero per uscire dal tuo Mac.
  • FireAI non può vedere i prompt, il contenuto degli strumenti MCP, gli accessi ai file o le skill. 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, e i picchi di upload vengono segnalati, non bloccati.
  • Nella modalità Profilo agente, una connessione verso un semplice indirizzo IP senza nome host viene confrontata in base all’indirizzo, quindi un nuovo indirizzo di un servizio che l’agente usa normalmente resta bloccato finché non lo consenti.

Altri agenti

Lo stesso approccio vale per ogni agente che FireAI riconosce. Consulta le altre guide: Claude Code, l’app desktop di Claude, Cursor, l’app ChatGPT per Mac, OpenAI Codex CLI, OpenClaw, Hermes Agent, Gemini CLI, GitHub Copilot CLI, Amp, Qwen Code, opencode, Aider, Goose, Windsurf, Kiro, Trae, Muse di Meta, qualsiasi altro agente IA eseguito da python o node. La descrizione completa della funzione si trova nella pagina di documentazione del profilo agente, pubblicata da HisnLabs.

Il ruolo di FireAI e di HisnLabs

FireAI impara dove Crush si connette abitualmente sul tuo Mac e segnala una destinazione mai vista o un picco di caricamento, senza leggere i tuoi dati.

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