Panoramica
Claude Code include il 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 autorizzazioni 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ò funzionare 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 autorizzazione: 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 installare una backdoor nelle 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
Abilitare il sandboxing
Puoi abilitare il sandboxing eseguendo il comando slash/sandbox
:
Configurare il sandboxing
Personalizza il comportamento della sandbox tramite il filesettings.json
. Vedi Impostazioni per il riferimento di configurazione completo.
Supporto dei pattern:
- I percorsi supportano assoluti (
/home/user
), relativi (./src
), directory home (~
) e caratteri jolly (**/*.json
) - I domini supportano corrispondenze esatte (
github.com
), caratteri jolly (*.npmjs.org
) e sottodomini
Vantaggi della 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 build 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 di 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 dal consentire 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
allowUnixSockets
può inavvertitamente concedere 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.sock
ciò 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 scritture in directory contenenti eseguibili in
$PATH
, directory di configurazione del 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à
enableWeakerNestedSandbox
che 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: Usa con devcontainers per isolamento aggiuntivo
- Politiche aziendali: Applica configurazioni della sandbox tramite impostazioni gestite
Best practice
- Inizia in modo 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: Regole di sandbox diverse per contesti di sviluppo rispetto a produzione
- Combina con autorizzazioni: Usa 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 di agenti AI di costruire sistemi autonomi più sicuri. Questo può anche essere utilizzato per eseguire il sandbox di altri programmi che potresti desiderare di eseguire. Ad esempio, per eseguire il sandbox di 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 pattern 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