In Evidenza
Claude Code sicuro: errori da evitare nello sviluppo con agenti AI
Develop · Intelligenza Artificiale

Claude Code sicuro: errori da evitare nello sviluppo con agenti AI

Usare Claude Code sicuro nello sviluppo con agenti AI significa trattare il programma come un collaboratore potente, non come una macro innocua. l’agente può leggere file, proporre modifiche, eseguire test e usare comandi del progetto. Questa capacità accelera il lavoro, ma amplia anche la superficie di errore: un requisito ambiguo, un file manipolato o un’autorizzazione troppo ampia può produrre conseguenze fuori dal codice che volevi cambiare.

La configurazione iniziale più prudente mantiene un controllo manuale sulle modifiche, sui test e sui comandi. Le modalità automatiche possono avere senso in un ambiente isolato, con repository sacrificabile e permessi ridotti. La velocità deve essere una scelta verificabile, non una scorciatoia permanente.

Claude Code sicuro: primo errore, aprire un repository senza inventario

un agente lavora meglio quando conosce il perimetro. Prima di avviare una sessione, identifica cartella di lavoro, branch, stato del repository, test disponibili, file generati e variabili che non devono essere toccate. Esegui controlli semplici come git status e leggi le istruzioni locali prima di chiedere una modifica.

L’inventario serve anche a distinguere codice sorgente e dati operativi. Un file di configurazione può contenere token, un dump può contenere informazioni personali e una cartella superiore può includere progetti non collegati. Se il workspace è troppo ampio, l’agente può leggere più contesto del necessario e una ricerca automatica può attraversare materiale riservato.

Imposta una cartella dedicata e usa una copia del repository per le prove rischiose. Se il progetto è importante, crea un branch di lavoro e conserva una copia recuperabile prima di una sessione con molti comandi.

Secondo errore: usare il prompt come unico controllo

Scrivere non cancellare segreti o non inviare dati esterni nel prompt è utile, ma non è una policy tecnica. Un prompt può essere contraddetto da un file letto durante la sessione. Può inoltre essere interpretato in modo diverso quando il compito diventa lungo.

Le istruzioni devono essere sostenute dal sistema di permessi. Parti dalla modalità manuale, che chiede conferma prima di modifiche, test e comandi. Se abiliti una modalità più automatica, definisci prima quali cartelle, comandi e domini sono ammessi. Mantieni una revisione umana per operazioni irreversibili o per l’accesso alla rete.

La regola pratica è questa: il modello può proporre un’azione, ma il motore dei permessi deve poterla negare senza affidarsi al modello stesso.

Terzo errore: concedere una cartella troppo grande

Un progetto non ha bisogno di leggere il profilo utente, la cartella dei download o tutti i repository vicini. Un workspace ristretto riduce sia la probabilità di esposizione sia il numero di file che il modello deve distinguere.

Se il progetto usa file fuori dalla cartella principale, monta o copia soltanto le dipendenze necessarie. Tieni separati dati di test e dati reali. Per una procedura di migrazione, prepara un campione anonimo e verifica il risultato prima di consentire l’accesso al dataset completo.

Ricorda che una protezione del filesystem non equivale a una sandbox completa. Può impedire alcune letture o scritture, ma non elimina problemi di rete, credenziali, processi figli o comandi che influenzano risorse esterne. La difesa deve avere più livelli.

Quarto errore: eseguire comandi senza capire cosa fanno

Un comando breve può essere sicuro in un progetto e pericoloso in un altro. Prima dell’esecuzione controlla percorso, argomenti, file coinvolti e possibilità di cancellazione. Per un comando di migrazione verifica se è idempotente, quale database usa e quale ambiente è configurato.

Preferisci comandi separati e leggibili a una catena lunga. Dopo ogni passaggio osserva output e stato. Se il comando produce file, controlla il diff. Se avvia un servizio, verifica porta, processo e log prima di continuare.

Non copiare segreti nel terminale solo per velocizzare un test. Le variabili possono finire nella cronologia, nei log o nell’output dell’agente. Usa un meccanismo di credenziali dedicato e con scadenza breve.

Quinto errore: accettare un diff perché compila

La compilazione è una verifica, non una revisione. un agente può aggiungere codice non richiesto, cambiare una policy, introdurre una dipendenza o modificare un messaggio mostrato agli utenti. Leggi git diff con attenzione, anche quando tutti i test passano.

Controlla prima i file inattesi, poi le modifiche alle autorizzazioni, agli endpoint, alle query e ai flussi di errore. Cerca dati personali nei log e token nei fixture. Confronta il numero di righe cambiate con la dimensione del compito: una richiesta piccola non dovrebbe generare una migrazione ampia senza spiegazione.

Chiedi una descrizione per ogni gruppo di cambiamenti. Se non puoi spiegare una riga, non approvarla ancora. La revisione deve restare comprensibile anche a una persona che non ha seguito tutta la conversazione con l’agente.

Sesto errore: lasciare segreti nel contesto

Un file .env, un log di produzione o una risposta API può contenere credenziali. Non includere questi contenuti nel contesto se non servono. Se servono per un test, sostituiscili con valori fittizi e usa un proxy che esponga soltanto l’operazione necessaria.

Il proxy può controllare metodo, risorsa, ambiente e schema dei dati. un agente che deve creare una issue non ha bisogno di una credenziale capace di amministrare un intero account. Un processo che deve leggere lo stato di una pipeline non deve poter riavviare il server.

Ruota immediatamente una credenziale se compare in output, log o commit. La rimozione dal testo non revoca il segreto già esposto.

Settimo errore: confondere test locale e produzione

Un test con rete attiva può scrivere su servizi reali. Un comando che sembra una simulazione può usare variabili di produzione, una coda condivisa o un account con permessi elevati. Prima di lanciare il test controlla ambiente, destinazione e dati.

Usa fixture sintetiche, database temporanei e servizi finti dove possibile. Blocca la rete in una prima fase e riaprila soltanto per il caso che devi verificare. Per le operazioni necessarie, imposta limiti di tempo, rate limit e un account dedicato.

Dopo la sessione chiudi processi, revoca token temporanei e controlla il repository. La sicurezza non termina quando il comando restituisce codice zero.

Un flusso sicuro per una modifica reale

Inizia con una richiesta piccola e specifica. Chiedi all’agente di analizzare il codice senza modificarlo e di indicare i file coinvolti. Esamina il piano, approva soltanto le letture necessarie e poi consenti la modifica nel workspace previsto.

Dopo la modifica esegui controlli separati: diff, formattazione, test mirati e test completi. Leggi i risultati e confrontali con i criteri iniziali. Se l’agente propone una nuova dipendenza o una variazione di configurazione, trattala come una decisione distinta.

Per attività con input non fidato, come analisi di issue o pagine web, copia il contenuto in un contesto classificato e chiedi una sintesi senza esecuzione. Se serve un’azione, trasformala in una proposta strutturata che un controllo esterno possa validare.

Cosa ricordare prima di procedere

Claude Code sicuro nello sviluppo con agenti AI nasce da un perimetro stretto, permessi comprensibili e revisione del risultato. La modalità manuale è una buona base; l’automazione va riservata a ambienti isolati e a operazioni reversibili.

Non affidare la sicurezza a una frase nel prompt. Inventaria il repository, limita file e rete, separa lettura e scrittura, proteggi i segreti, controlla ogni diff e verifica che i test usino il ambiente corretto. Il vantaggio dell’agente resta alto quando i suoi poteri sono proporzionati al compito.

Configurazione di progetto e istruzioni locali

Le istruzioni del progetto devono descrivere comandi, test, convenzioni e confini, ma non devono contenere segreti. Mantieni una sezione che indica quali file sono generati, quali directory sono fuori ambito e quali verifiche sono obbligatorie prima di una modifica. Specifica anche come riconoscere un ambiente di test e come interrompere un’operazione.

Rivedi queste istruzioni come codice. Una regola vecchia può indicare un comando non più sicuro, un branch errato o una procedura che usa dati reali. Assegna un proprietario e includi la modifica nel normale processo di revisione.

Quando un repository contiene file che arrivano da utenti o sistemi esterni, trattali come input non affidabile. Chiedi all’agente di riassumere il contenuto e indicare eventuali istruzioni sospette prima di usarlo per un’attività. Se un documento propone un comando, la proposta deve essere verificata separatamente dalle istruzioni del progetto.

Un controllo di chiusura della sessione

Prima di chiudere la sessione esegui lo stato del repository, controlla file nuovi e modifiche alla configurazione e verifica che nessun processo resti attivo con una credenziale temporanea. Salva soltanto il risultato necessario e rimuovi dal workspace dati di prova che non servono più.

Formazione e responsabilità

Ogni sviluppatore deve sapere quali richieste richiedono approvazione, come segnalare un input sospetto e dove trovare i log. Una breve esercitazione su un repository di prova rende più efficace la policy di molte regole non testate.

Revisione periodica dei permessi

Controlla ogni mese le cartelle e i comandi autorizzati. Rimuovi eccezioni nate per una prova conclusa e aggiorna il perimetro quando cambia il progetto. Permessi temporanei senza data di scadenza diventano facilmente accesso permanente.

Valuta anche...

La visibilità nei sistemi basati sull’AI è solo uno dei tanti cambiamenti che l’Intelligenza Artificiale sta portando nel modo in cui produciamo, cerchiamo e utilizziamo le informazioni. Per sfruttare davvero questi strumenti, però, è utile comprenderne anche i meccanismi: LLM, prompt, contesto, memoria, agenti, limiti ed errori sono concetti sempre più importanti anche per chi lavora nel web, nel marketing e nello sviluppo.

Nel mio libro “Intelligenza Artificiale senza sprechi” affronto questi temi con un approccio pratico e accessibile, pensato sia per chi vuole partire dalle basi sia per chi desidera approfondire e utilizzare l’AI in modo più consapevole ed efficace. Il libro è disponibile su Amazon e può essere letto gratuitamente con Prime Reading.

Condividi questo articolo su: