Claude Platform Docs
Best practiceRafforzare le protezioni

Mitigare jailbreak e prompt injection

Difendi la tua applicazione da jailbreak e prompt injection con lo screening degli input, prompt di sistema rafforzati e una gestione sicura dei contenuti non attendibili provenienti dagli strumenti.

Il "jailbreaking" (elusione delle restrizioni) e la "prompt injection" (iniezione di prompt) sono tentativi di far sì che Claude ignori le sue linee guida o le tue istruzioni. Sebbene Claude sia intrinsecamente resiliente a tali attacchi, i passaggi aggiuntivi descritti in questa pagina rafforzano le tue protezioni, in particolare contro usi che violano i Termini di servizio o la Politica di utilizzo di Anthropic.

Questi attacchi rientrano in due categorie con modelli di minaccia diversi:

  • Jailbreak e prompt injection diretta, in cui l'utente della tua applicazione è l'avversario e crea input pensati per aggirare le tue protezioni.
  • Prompt injection indiretta, in cui l'utente è attendibile ma Claude elabora contenuti di terze parti (pagine web, email, documenti, risultati di strumenti) che contengono istruzioni ostili.

Jailbreak e prompt injection diretta

In questo modello di minaccia, un utente crea deliberatamente input per manipolare la tua applicazione affinché produca contenuti o compia azioni che non desideri. Queste mitigazioni rafforzano le protezioni della tua applicazione:

  • Screening di innocuità: Usa un modello leggero come Claude Haiku 4.5 per effettuare uno screening preliminare dell'input dell'utente prima che raggiunga la conversazione principale. Usa gli output strutturati per vincolare la risposta a una semplice classificazione.

  • Validazione dell'input: Filtra l'input dell'utente alla ricerca di pattern di injection noti prima che raggiunga Claude. Puoi usare un "large language model" (grande modello linguistico), o LLM, per creare uno screening di validazione generalizzato fornendo come esempi formulazioni di jailbreaking note.

  • Prompt engineering: Crea prompt di sistema che enfatizzino i limiti etici e legali e che indichino esplicitamente a Claude come rifiutare.

  • Rispondi ai trasgressori recidivi: Adatta le risposte e valuta di limitare o bannare gli utenti che tentano ripetutamente di aggirare le protezioni della tua applicazione. Ad esempio, se un determinato utente attiva più volte lo stesso tipo di rifiuto (come "output bloccato dalla politica di filtraggio dei contenuti"), comunica all'utente che le sue azioni violano le politiche di utilizzo pertinenti e agisci di conseguenza.

Prompt injection indiretta

In questo modello di minaccia, stai proteggendo i tuoi utenti da istruzioni incorporate in contenuti che Claude legge per loro conto: il corpo di un'email in arrivo, una pagina web recuperata, l'output OCR di un file caricato o il risultato di una chiamata a uno strumento. Un attaccante in grado di influenzare quel contenuto può incorporare istruzioni che tentano di reindirizzare Claude.

Struttura la tua applicazione in modo che Claude possa distinguere in modo affidabile i contenuti non attendibili dalle tue istruzioni:

  • Inserisci i contenuti non attendibili solo nei risultati degli strumenti. Fornisci a Claude i contenuti di terze parti all'interno di blocchi tool_result, mai nei prompt system o in semplici blocchi text dell'utente. Claude è addestrato a trattare con il dovuto scetticismo le istruzioni che compaiono all'interno dei risultati degli strumenti. Consulta Gestire le chiamate agli strumenti per il formato tool_result.

  • Indica a Claude cos'è il contenuto e da dove proviene. Nella description dello strumento, o nella struttura del risultato stesso, rendi esplicite la natura e l'origine del contenuto: ad esempio, che si tratta del corpo di un'email in arrivo da un mittente sconosciuto, o di testo OCR estratto da un'immagine caricata dall'utente. Questo contesto aiuta Claude a calibrare quanto fidarsi delle direttive incorporate.

  • Dichiara la politica nel tuo prompt di sistema. Indica esplicitamente a Claude che i contenuti restituiti da strumenti, documenti o ricerche sono dati non attendibili e non devono mai prevalere sul prompt di sistema o sulla richiesta originale dell'utente.

  • Codifica in JSON i contenuti non attendibili. Ove possibile, racchiudi le stringhe di terze parti in un oggetto JSON anziché concatenarle in testo libero. L'escaping JSON fornisce delimitatori non ambigui tra il payload non attendibile e la struttura circostante, così che un attaccante non possa chiudere una virgoletta o un tag per "evadere" in un contesto di istruzioni.

  • Non inserire le tue istruzioni nei risultati degli strumenti. Poiché Claude tratta il contenuto dei risultati degli strumenti come dati non attendibili, le istruzioni che inserisci lì potrebbero essere ignorate o segnalate come potenziale injection. Invia le tue istruzioni in un turno user che segue il blocco tool_result. Sui modelli supportati, puoi anche usare un messaggio di sistema a metà conversazione.

  • Limita l'accesso di Claude a dati e azioni sensibili. Applica il principio del privilegio minimo in modo che un'injection riuscita possa causare danni minimi: non dare a Claude accesso a segreti di cui non ha bisogno, esegui gli strumenti in ambienti sandbox e restringi i permessi il più possibile.

  • Effettua lo screening degli output degli strumenti prima che Claude agisca su di essi. Applica ai contenuti restituiti dai tuoi strumenti lo stesso pattern di screening con modello leggero che usi per l'input dell'utente. Esegui ciascuno strumento, passa il suo output grezzo a una piccola chiamata di classificazione con Claude Haiku 4.5 e restituisci il contenuto come blocco tool_result solo se lo screening non segnala alcun tentativo di injection. Usa gli output strutturati in modo che il verdetto del classificatore sia un valore analizzabile su cui la tua applicazione possa ramificare la logica.

    Puoi anche applicare ai risultati degli strumenti i pattern di validazione dell'input della sezione precedente prima di passarli a Claude.

  • Esegui red-teaming sul tuo agente. Prima del deployment, testa il tuo flusso di lavoro con documenti, email e output di strumenti che contengono deliberatamente tentativi di injection, e verifica che Claude li ignori e che i tuoi passaggi di screening e conferma intercettino il resto.

Monitoraggio continuo

Analizza regolarmente gli output alla ricerca di segnali di injection riuscite. Usa questo monitoraggio per perfezionare in modo iterativo i tuoi prompt e le tue strategie di validazione e filtraggio.

Avanzato: concatenare le protezioni

Combina le strategie per una protezione robusta. Ecco un esempio di livello enterprise con uso degli strumenti:

Stratificando queste strategie, crei una difesa robusta contro jailbreaking e prompt injection, garantendo che le tue applicazioni basate su Claude mantengano i più elevati standard di sicurezza e conformità.

Was this page helpful?