Panoramica
Claude Code include sandboxing nativo per fornire un ambiente più sicuro per l’esecuzione dell’agente riducendo la necessità di richieste di autorizzazione costanti. Invece di chiedere il permesso per ogni comando bash, il sandboxing crea confini definiti in anticipo dove Claude Code può lavorare più liberamente con rischio ridotto. Lo strumento bash in sandbox utilizza primitive a livello del sistema operativo per applicare sia l’isolamento del filesystem che della rete.Perché il sandboxing è importante
La sicurezza tradizionale basata su permessi richiede l’approvazione costante dell’utente per i comandi bash. Sebbene questo fornisca controllo, può portare a:- Affaticamento da approvazione: Fare clic ripetutamente su “approva” può causare agli utenti di prestare meno attenzione a ciò che stanno approvando
- Produttività ridotta: Le interruzioni costanti rallentano i flussi di lavoro di sviluppo
- Autonomia limitata: Claude Code non può lavorare in modo efficiente quando è in attesa di approvazioni
- Definendo confini chiari: Specifica esattamente quali directory e host di rete Claude Code può accedere
- Riducendo i prompt di permesso: I comandi sicuri all’interno della sandbox non richiedono approvazione
- Mantenendo la sicurezza: I tentativi di accedere a risorse al di fuori della sandbox attivano notifiche immediate
- Abilitando l’autonomia: Claude Code può funzionare più indipendentemente entro limiti definiti
Il sandboxing efficace richiede sia l’isolamento del filesystem che della rete. Senza isolamento della rete, un agente compromesso potrebbe esfiltare file sensibili come chiavi SSH. Senza isolamento del filesystem, un agente compromesso potrebbe backdoor le risorse di sistema per ottenere accesso alla rete. Quando si configura il sandboxing è importante assicurarsi che le impostazioni configurate non creino bypass in questi sistemi.
Come funziona
Isolamento del filesystem
Lo strumento bash in sandbox limita l’accesso al file system a directory specifiche:- Comportamento di scrittura predefinito: Accesso in lettura e scrittura alla directory di lavoro corrente e alle sue sottodirectory
- Comportamento di lettura predefinito: Accesso in lettura all’intero computer, ad eccezione di determinate directory negate
- Accesso bloccato: Non è possibile modificare file al di fuori della directory di lavoro corrente senza autorizzazione esplicita
- Configurabile: Definisci percorsi consentiti e negati personalizzati tramite le impostazioni
Isolamento della rete
L’accesso alla rete è controllato tramite un server proxy in esecuzione al di fuori della sandbox:- Restrizioni di dominio: Solo i domini approvati possono essere accessibili
- Conferma dell’utente: Le nuove richieste di dominio attivano prompt di autorizzazione
- Supporto proxy personalizzato: Gli utenti avanzati possono implementare regole personalizzate sul traffico in uscita
- Copertura completa: Le restrizioni si applicano a tutti gli script, programmi e sottoprocessi generati dai comandi
Applicazione a livello del sistema operativo
Lo strumento bash in sandbox sfrutta le primitive di sicurezza del sistema operativo:- Linux: Utilizza bubblewrap per l’isolamento
- macOS: Utilizza Seatbelt per l’applicazione della sandbox
Iniziare
Abilita il sandboxing
Puoi abilitare il sandboxing eseguendo il comando slash/sandbox:
Configura il sandboxing
Personalizza il comportamento della sandbox tramite il filesettings.json. Vedi Impostazioni per il riferimento di configurazione completo.
Non tutti i comandi sono compatibili con il sandboxing immediatamente. Alcune note che potrebbero aiutarti a ottenere il massimo dalla sandbox:
- Molti strumenti CLI richiedono l’accesso a determinati host. Man mano che utilizzi questi strumenti, richiederanno il permesso di accedere a determinati host. Concedere il permesso consentirà loro di accedere a questi host ora e in futuro, consentendo loro di eseguire in modo sicuro all’interno della sandbox.
watchmanè incompatibile con l’esecuzione nella sandbox. Se stai eseguendojest, considera di utilizzarejest --no-watchmandockerè incompatibile con l’esecuzione nella sandbox. Considera di specificaredockerinexcludedCommandsper forzarlo a eseguire al di fuori della sandbox.
Claude Code include un meccanismo di fuga intenzionale che consente ai comandi di eseguire al di fuori della sandbox quando necessario. Quando un comando fallisce a causa di restrizioni della sandbox (come problemi di connettività di rete o strumenti incompatibili), Claude viene richiesto di analizzare l’errore e potrebbe riprovare il comando con il parametro
dangerouslyDisableSandbox. I comandi che utilizzano questo parametro passano attraverso il normale flusso di autorizzazioni di Claude Code richiedendo il permesso dell’utente per eseguire. Questo consente a Claude Code di gestire casi limite in cui determinati strumenti o operazioni di rete non possono funzionare entro i vincoli della sandbox.Puoi disabilitare questo meccanismo di fuga impostando "allowUnsandboxedCommands": false nelle tue impostazioni della sandbox. Quando disabilitato, il parametro dangerouslyDisableSandbox viene completamente ignorato e tutti i comandi devono essere eseguiti in sandbox o essere esplicitamente elencati in excludedCommands.Vantaggi di sicurezza
Protezione contro l’iniezione di prompt
Anche se un attaccante manipola con successo il comportamento di Claude Code attraverso l’iniezione di prompt, la sandbox garantisce che il tuo sistema rimanga sicuro: Protezione del filesystem:- Non è possibile modificare file di configurazione critici come
~/.bashrc - Non è possibile modificare file a livello di sistema in
/bin/ - Non è possibile leggere file negati nelle tue impostazioni di autorizzazione di Claude
- Non è possibile esfiltare dati a server controllati dall’attaccante
- Non è possibile scaricare script dannosi da domini non autorizzati
- Non è possibile effettuare chiamate API inaspettate a servizi non approvati
- Non è possibile contattare alcun dominio non esplicitamente consentito
- Tutti i tentativi di accesso al di fuori della sandbox vengono bloccati a livello del sistema operativo
- Ricevi notifiche immediate quando i confini vengono testati
- Puoi scegliere di negare, consentire una volta o aggiornare permanentemente la tua configurazione
Superficie di attacco ridotta
Il sandboxing limita il danno potenziale da:- Dipendenze dannose: Pacchetti NPM o altre dipendenze con codice dannoso
- Script compromessi: Script di compilazione o strumenti con vulnerabilità di sicurezza
- Ingegneria sociale: Attacchi che ingannano gli utenti nel far eseguire comandi pericolosi
- Iniezione di prompt: Attacchi che ingannano Claude nel far eseguire comandi pericolosi
Funzionamento trasparente
Quando Claude Code tenta di accedere a risorse di rete al di fuori della sandbox:- L’operazione viene bloccata a livello del sistema operativo
- Ricevi una notifica immediata
- Puoi scegliere di:
- Negare la richiesta
- Consentirla una volta
- Aggiornare la configurazione della sandbox per consentirla permanentemente
Limitazioni di sicurezza
- Limitazioni del sandboxing della rete: Il sistema di filtraggio della rete funziona limitando i domini a cui i processi possono connettersi. Non ispeziona altrimenti il traffico che passa attraverso il proxy e gli utenti sono responsabili di assicurarsi di consentire solo domini affidabili nella loro politica.
Gli utenti dovrebbero essere consapevoli dei potenziali rischi derivanti dall’autorizzazione di domini ampi come
github.com che potrebbero consentire l’esfiltrazione di dati. Inoltre, in alcuni casi potrebbe essere possibile aggirare il filtraggio della rete attraverso il domain fronting.- Escalation dei privilegi tramite Unix Sockets: La configurazione
allowUnixSocketspuò inavvertitamente concedere l’accesso a potenti servizi di sistema che potrebbero portare a bypass della sandbox. Ad esempio, se viene utilizzata per consentire l’accesso a/var/run/docker.sockquesto concederebbe effettivamente l’accesso al sistema host sfruttando il socket docker. Gli utenti sono incoraggiati a considerare attentamente tutti i socket unix che consentono attraverso la sandbox. - Escalation dei permessi del filesystem: I permessi di scrittura del filesystem eccessivamente ampi possono abilitare attacchi di escalation dei privilegi. Consentire le scritture a directory contenenti eseguibili in
$PATH, directory di configurazione di sistema o file di configurazione della shell dell’utente (.bashrc,.zshrc) può portare all’esecuzione di codice in diversi contesti di sicurezza quando altri utenti o processi di sistema accedono a questi file. - Forza della sandbox Linux: L’implementazione Linux fornisce un forte isolamento del filesystem e della rete ma include una modalità
enableWeakerNestedSandboxche le consente di funzionare all’interno di ambienti Docker senza namespace privilegiati. Questa opzione indebolisce considerevolmente la sicurezza e dovrebbe essere utilizzata solo nei casi in cui l’isolamento aggiuntivo è altrimenti applicato.
Utilizzo avanzato
Configurazione proxy personalizzata
Per le organizzazioni che richiedono una sicurezza di rete avanzata, puoi implementare un proxy personalizzato per:- Decrittare e ispezionare il traffico HTTPS
- Applicare regole di filtraggio personalizzate
- Registrare tutte le richieste di rete
- Integrarsi con l’infrastruttura di sicurezza esistente
Integrazione con gli strumenti di sicurezza esistenti
Lo strumento bash in sandbox funziona insieme a:- Politiche IAM: Combina con impostazioni di autorizzazione per la difesa in profondità
- Contenitori di sviluppo: Utilizza con devcontainers per l’isolamento aggiuntivo
- Politiche aziendali: Applica le configurazioni della sandbox tramite impostazioni gestite
Best practice
- Inizia restrittivo: Inizia con autorizzazioni minime e espandi secondo le necessità
- Monitora i log: Rivedi i tentativi di violazione della sandbox per comprendere le esigenze di Claude Code
- Usa configurazioni specifiche dell’ambiente: Diverse regole della sandbox per contesti di sviluppo rispetto a produzione
- Combina con le autorizzazioni: Utilizza il sandboxing insieme alle politiche IAM per una sicurezza completa
- Testa le configurazioni: Verifica che le impostazioni della sandbox non blocchino i flussi di lavoro legittimi
Open source
Il runtime della sandbox è disponibile come pacchetto npm open source per l’uso nei tuoi progetti di agente. Questo consente alla comunità più ampia degli agenti AI di costruire sistemi autonomi più sicuri. Questo può anche essere utilizzato per sandbox altri programmi che potresti desiderare di eseguire. Ad esempio, per sandbox un server MCP potresti eseguire:Limitazioni
- Overhead di prestazioni: Minimo, ma alcune operazioni del filesystem potrebbero essere leggermente più lente
- Compatibilità: Alcuni strumenti che richiedono modelli di accesso al sistema specifici potrebbero necessitare di regolazioni di configurazione, o potrebbero anche dover essere eseguiti al di fuori della sandbox
- Supporto della piattaforma: Attualmente supporta Linux e macOS; il supporto di Windows è pianificato
Vedi anche
- Sicurezza - Funzionalità di sicurezza complete e best practice
- IAM - Configurazione delle autorizzazioni e controllo dell’accesso
- Impostazioni - Riferimento di configurazione completo
- Riferimento CLI - Opzioni della riga di comando incluso
-sb