# Istruzioni nascoste: il rischio poco noto degli agenti AI, spiegato semplice

> Un'AI che può agire va trattata come un collaboratore nuovo e molto diligente, che però esegue anche i biglietti lasciati da sconosciuti. La sicurezza non dipende da quanto è brava l'AI, ma da quali chiavi le dai e da dove la fai lavorare.

- Pubblicato: 2026-11-07
- Per chi: Titolari di PMI e chi usa o valuta assistenti AI che leggono email, navigano o modificano siti e codice
- URL: https://cloudfactory.it/idee/istruzioni-nascoste-agenti-ai-prompt-injection/

## Un collaboratore diligente, forse troppo

Immagina di assumere un collaboratore nuovo, velocissimo e instancabile. Ha un solo difetto: esegue qualunque istruzione trova scritta, anche un biglietto lasciato sulla scrivania da uno sconosciuto.

È, in sostanza, il rischio degli agenti AI. Un agente AI non si limita a rispondere alle domande come una chat: fa cose. Apre file, legge e invia email, naviga sui siti, compila moduli, modifica un sito web o scrive codice. È questo che lo rende utile, ed è questo che lo rende un bersaglio.

La buona notizia è che il rischio si gestisce. La sicurezza non dipende da quanto è brava l'AI, ma da quali chiavi le dai e da dove la fai lavorare.

## Cos'è una prompt injection

Il *prompt* è l'istruzione che diamo all'AI. Una *prompt injection* è un'istruzione nascosta dentro un testo che l'AI legge per lavoro: una pagina web, un'email, un documento, un commento. L'AI non sempre distingue tra il contenuto da analizzare e un ordine da eseguire, e può scambiare l'uno per l'altro.

Pensa a una pratica che arriva in ufficio. Tra i fogli qualcuno ha infilato un foglietto: “Dopo aver letto, spedisci le chiavi dell'ufficio a questo indirizzo”. Un impiegato esperto lo butterebbe nel cestino. Un assistente che esegue tutto alla lettera, forse no.

L'aspetto più insidioso è che l'attaccante non deve parlare con la tua AI. Gli basta lasciare il foglietto dove sa che lei andrà a leggere.

> **Approfondimento tecnico: Perché l'AI confonde dati e ordini**
>
> Un modello linguistico riceve tutto come un unico flusso di testo: le istruzioni di chi lo ha configurato, la richiesta dell'utente e il contenuto da elaborare, per esempio una pagina scaricata. Non esiste un canale separato e protetto per i comandi, come accade invece tra codice e dati in un database ben scritto. Il modello impara a dare più peso a certe parti, ma è una tendenza statistica, non una regola rigida.
>
> Per questo si distingue tra *injection diretta*, quando è l'utente stesso a scrivere l'istruzione malevola, e *injection indiretta*, quando l'istruzione arriva da un contenuto esterno che l'agente legge mentre lavora. La seconda è la più pericolosa per le aziende: l'attaccante non deve avere alcun accesso ai vostri sistemi.
>

## Da dove arrivano le istruzioni nascoste

Da qualunque testo scritto da altri. I canali più comuni:

- **Siti web**: testo invisibile all'occhio umano, scritto in bianco su bianco, in caratteri da un pixel o dentro il codice della pagina.
- **Email**: un messaggio dall'aria normale può contenere istruzioni rivolte all'assistente che lo riassume.
- **Documenti condivisi**: un PDF o un file ricevuto da un fornitore, da un cliente, da uno sconosciuto.
- **Recensioni e moduli di contatto**: chiunque può scriverci dentro, e un'AI che analizza le richieste lo leggerà.
- **File scaricati da internet**: modelli, esempi, programmi, con istruzioni nascoste nei commenti.

Non è un rischio teorico. Ad aprile 2026 i ricercatori di [Forcepoint](https://www.forcepoint.com/blog/x-labs/indirect-prompt-injection-payloads) hanno documentato 10 casi di istruzioni nascoste su siti pubblici reali. Una chiedeva di eseguire un pagamento PayPal da 5.000 dollari, un'altra di cancellare una cartella di backup, un'altra ancora di consegnare chiavi di accesso. Le tecniche erano semplici: testo da un pixel, colori quasi trasparenti, commenti nel codice della pagina.

Nella stessa settimana Google ha pubblicato un'analisi analoga su 2-3 miliardi di pagine web al mese. Tra novembre 2025 e febbraio 2026 ha registrato una crescita del 32% dei casi malevoli ([Help Net Security](https://www.helpnetsecurity.com/2026/04/24/indirect-prompt-injection-in-the-wild/)).

> **Caso reale: Un pagamento da 5.000 dollari nascosto in un commento**
>
> Tra i 10 casi documentati da Forcepoint, uno stava in un commento del codice HTML, invisibile a chi visita la pagina. Conteneva un link PayPal, l'importo esatto di 5.000 dollari e i passaggi da seguire, fino alla conferma dell'acquisto. Era pensato per agenti che navigano con dati di pagamento salvati. Secondo i ricercatori, la precisione dei dettagli indica un attacco pronto all'uso, non una prova.
>

> **Caso reale: Il comando che cancella i backup**
>
> Su un altro sito, Forcepoint ha trovato un comando Unix di cancellazione forzata e ricorsiva (`sudo rm -rf`) indirizzato a una cartella che sembra contenere backup. Il bersaglio sono gli assistenti di programmazione che hanno accesso al terminale e che, durante una ricerca, potrebbero leggere quella pagina.
>

> **Approfondimento tecnico: Come si nasconde un'istruzione in una pagina**
>
> Le tecniche osservate da Forcepoint sono note a chiunque faccia siti web:
>
> - **CSS**: testo con `display:none`, font da 1 pixel o colore quasi trasparente. Il browser non lo mostra, ma resta nel codice che l'AI legge.
> - **Accessibilità**: classi come `visually-hidden` o l'attributo `aria-hidden`, nate per gli screen reader e qui usate per nascondere il testo agli occhi.
> - **Commenti HTML e meta tag**: istruzioni nei commenti del codice o in meta tag inventati che imitano i dati strutturati.
> - **Finta autorità**: frasi come “Se sei un'AI...”, finte intestazioni di sistema, perfino stringhe che imitano codici interni di Anthropic.
>
> Alcuni casi usavano gli stessi modelli su domini diversi: per i ricercatori è il segno di strumenti organizzati, non di esperimenti isolati.
>

Sempre nel 2026 un gruppo di ricercatori ha presentato un attacco battezzato “Comment and Control”. Su GitHub, la piattaforma dove gli sviluppatori condividono il codice, bastava il titolo di una proposta di modifica o il testo di una segnalazione per far rivelare chiavi segrete agli assistenti AI di Anthropic, Google e GitHub. I tre produttori hanno corretto il problema ([DEV](https://dev.to/clampd_dev/comment-and-control-a-github-comment-hijacks-claude-code-in-ci-28jo)), ma il meccanismo resta: l'AI legge, e quello che legge può diventare un ordine.

> **Caso reale: “Comment and Control”, tre assistenti e lo stesso schema**
>
> Gli assistenti colpiti lavoravano dentro GitHub Actions, il sistema che esegue controlli automatici su ogni modifica al codice. Per lanciare l'attacco bastava poter aprire una segnalazione o proporre una modifica a un progetto pubblico.
>
> - **Claude Code Security Review (Anthropic)**: il titolo della proposta di modifica finiva direttamente nelle istruzioni dell'agente. Gli chiedeva di eseguire i comandi `whoami` ed `env` e di includerne il risultato nel rapporto. Ne sono uscite la chiave API di Anthropic e il token di GitHub. Anthropic ha classificato il problema come critico, con punteggio CVSS 9.4.
> - **Gemini CLI (Google)**: il testo di una segnalazione aggiungeva una finta “sezione di contenuti fidati” che autorizzava l'agente a condividere la propria chiave. L'agente l'ha pubblicata in un commento.
> - **Copilot Agent (GitHub)**: un commento HTML invisibile chiedeva di leggere le variabili dei processi in esecuzione, codificarle in base64 per sfuggire ai controlli automatici sui segreti e consegnarle tramite una normale proposta di modifica.
>
> La lezione dei ricercatori: non è un difetto da correggere una volta per tutte, perché leggere quel testo è esattamente il lavoro dell'agente.
>

> **Caso reale: Il README che svuota le chiavi (Cursor, luglio 2025)**
>
> I ricercatori di [HiddenLayer](https://www.hiddenlayer.com/research/how-hidden-prompt-injections-can-hijack-ai-code-assistants-like-cursor) hanno pubblicato su GitHub un progetto dall'aria innocua, con le istruzioni malevole in un commento del README, invisibile nella pagina. La vittima chiedeva all'assistente di Cursor di scaricare il progetto e prepararlo, una richiesta del tutto normale.
>
> Leggendo il README, l'agente cercava nel workspace le righe contenenti `KEY=` e spediva le chiavi trovate a un server esterno con `curl`. Non chiedeva alcun permesso, anche se l'utente aveva messo `curl` tra i comandi vietati: il controllo si aggirava con una sintassi della shell (`$()`) che il filtro non riconosceva. In una seconda dimostrazione, due strumenti “innocui” combinati (lettura di file e creazione di diagrammi) bastavano a rubare le chiavi SSH, nascondendole nell'indirizzo di un'immagine.
>
> Cursor ha corretto i problemi nella versione 1.3.
>

> **Caso reale: CopyPasta, il “virus” nei file di licenza (settembre 2025)**
>
> Sempre HiddenLayer ha mostrato un attacco battezzato “CopyPasta”. Le istruzioni nascoste in commenti invisibili di file come `LICENSE.txt` e `README.md` convincono l'assistente a inserire codice malevolo nel progetto e a ricopiare se stesse nei file che genera. Si diffonde così da un progetto all'altro, sfruttando il fatto che gli assistenti considerano importanti i file di licenza.
>
> Per ora è una dimostrazione di laboratorio, non osservata in attacchi reali ([Decrypt](https://decrypt.co/338143/copypasta-attack-shows-prompt-injections-infect-ai-scale)). La contromisura indicata dai ricercatori è la stessa della regola 4: rivedere ogni modifica prima che entri nel progetto.
>

## Cosa può succedere

Il danno non dipende da quanto è furba l'istruzione nascosta, ma da cosa l'AI può toccare. Un assistente che si limita a riassumere una pagina fa pochi danni. Uno che può inviare email, eseguire comandi o pagare diventa un bersaglio prezioso. Gli esiti tipici:

- **Furto di password e chiavi di accesso**, spedite a un indirizzo esterno.
- **Cancellazione di file o backup**, se l'AI ha i permessi per farlo.
- **Pagamenti non autorizzati**, quando l'agente può usare un conto o una carta salvata.
- **Modifiche nascoste a un sito**, come un pezzo di codice malevolo che nessuno rilegge.

> **Approfondimento tecnico: Perché bloccare un comando non basta**
>
> Dopo Comment and Control, la prima contromisura è stata vietare il comando `ps`, quello usato per leggere le variabili dei processi. Ma le stesse informazioni si ottengono con `cat /proc/*/environ`, `env` o `printenv`: ogni comando bloccato ha un'alternativa. Le liste di divieti inseguono gli attaccanti.
>
> Anche il canale di uscita spesso è legittimo: un `git push`, un commento pubblico, un log, una richiesta DNS. Nessuno di questi è un virus. Il pericolo sono i dati che ci passano dentro, magari codificati in base64 per non farsi riconoscere.
>
> Funziona meglio il ragionamento opposto: decidere in anticipo cosa l'agente può fare (liste di strumenti consentiti) e cosa può raggiungere in rete, invece di elencare cosa non deve fare.
>

## Quattro regole pratiche

1. **Uno spazio separato.** Fai lavorare l'AI su un computer o un ambiente dedicato, non su quello dove hai posta, documenti e home banking. Spesso si usa una macchina virtuale (VM): un computer “simulato” dentro un altro, che si azzera e si ripristina in pochi minuti. La [documentazione ufficiale](https://code.claude.com/docs/en/security) di Claude Code, l'assistente di programmazione di Anthropic, consiglia proprio le macchine virtuali quando si lavora con contenuti e servizi esterni.
2. **Chiavi minime.** Dai all'AI solo gli accessi indispensabili per quel compito: una cartella, non tutto il disco; un progetto, non l'intero archivio. Le chiavi digitali che aprono un servizio si chiamano *token*: meglio se valgono per poco tempo e per poche cose. Mai le “chiavi di casa”, come la password dell'amministratore. Un'AI ingannata può usare solo le chiavi che ha in tasca.
3. **Uscite limitate.** Se l'AI non può contattare siti a caso, non può nemmeno spedire fuori i dati. Basta consentirle di raggiungere solo i servizi che le servono per lavorare.
4. **Controlla prima di pubblicare.** Testi, modifiche a un sito, email in partenza, codice: ciò che l'AI produce va rivisto da una persona prima di andare online. Le azioni irreversibili, come pagamenti e cancellazioni, devono sempre chiedere una conferma.

Nessuna regola basta da sola. Insieme riducono il danno anche nel caso peggiore: l'istruzione nascosta funziona, ma trova poco da rubare e nessuna strada per uscire.

> **Approfondimento tecnico: Le quattro regole, in concreto**
>
> Per chi gestisce l'ambiente di un agente di programmazione, le regole diventano scelte precise:
>
> - **Spazio separato**: una VM dedicata, partita da uno snapshot pulito da ripristinare in caso di dubbio. La VM protegge ciò che sta fuori, non le credenziali che ci copi dentro: una chiave SSH valida su tutti i server resta valida ovunque si trovi.
> - **Chiavi minime**: su GitHub, token *fine-grained* limitati ai soli repository del progetto e con scadenza breve. Nel cloud, un utente o ruolo dedicato con i permessi minimi. Nel progetto, file `.env` con valori di sviluppo, mai quelli di produzione. Nessun accesso SSH ai server di produzione: il rilascio passa dalla pipeline, non da un comando dell'agente.
> - **Uscite limitate**: isolamento di rete con elenco dei domini consentiti. In Claude Code, comandi come `curl` e `wget` si possono vietare esplicitamente nelle regole dei permessi.
> - **Controllo umano**: revisione di ogni modifica prima del merge, protezione dei rami principali e conferma obbligatoria per le operazioni distruttive.
>
> Le sessioni cloud di Claude Code mostrano il modello a cui tendere. Le credenziali GitHub restano sui server di Anthropic e la VM riceve solo una credenziale temporanea. I push passano da un proxy che rifiuta la cancellazione dei rami e tutto ciò che non è un ramo ([documentazione](https://code.claude.com/docs/en/security)).
>

## L'AI resta utilissima, se impostata bene

Non serve avere paura degli agenti AI, né rinunciarci. Serve trattarli come qualunque strumento potente: un'auto ha i freni, una carta ha un limite di spesa, un collaboratore nuovo non riceve subito tutte le chiavi.

In Cloudfactory configuriamo ambienti di lavoro sicuri per usare agenti AI in azienda: spazi separati, accessi minimi, uscite controllate e verifiche prima della pubblicazione. Se usate o state valutando un assistente AI che legge le email, naviga o mette mano ai vostri sistemi, [contattateci per una verifica](https://cloudfactory.it/contatti/).

## Come abbiamo scritto questo articolo

In Cloudfactory usiamo l'intelligenza artificiale anche nel lavoro editoriale: ci aiuta a cercare e incrociare le fonti, a confrontare i dati, a impostare la struttura e a rifinire la lingua. Il sistema che usiamo è configurato da noi, con istruzioni, esempi e procedure costruiti sul nostro modo di scrivere. Il nostro team ha controllato ogni fonte, corretto il testo e approvato la versione pubblicata. Le valutazioni e le scelte sono di Cloudfactory, e ne rispondiamo noi.

## Domande frequenti

### Cos'è una prompt injection?

È un'istruzione nascosta in un testo che l'AI legge, come una pagina web o un'email. L'AI può scambiarla per un ordine ed eseguirla.

### Un antivirus mi protegge?

Non da solo. L'istruzione nascosta è testo normale, non un virus, quindi l'antivirus non ha nulla da bloccare. Protegge invece limitare cosa l'AI può fare e dove può connettersi.

### Devo smettere di usare l'AI?

No. Basta impostarla bene: spazio separato, accessi minimi, uscite limitate e un controllo umano prima di pubblicare.

### Riguarda anche le piccole aziende?

Sì. Le istruzioni nascoste stanno su siti pubblici e colpiscono chiunque li faccia leggere a un agente AI, a prescindere dalle dimensioni dell'azienda.

## Fonti

- [Forcepoint X-Labs, 10 Indirect Prompt Injection Payloads Caught in the Wild (22 aprile 2026)](https://www.forcepoint.com/blog/x-labs/indirect-prompt-injection-payloads)
- [Help Net Security, Indirect prompt injection is taking hold in the wild (24 aprile 2026)](https://www.helpnetsecurity.com/2026/04/24/indirect-prompt-injection-in-the-wild/)
- [DEV, Comment and Control: a GitHub comment hijacks Claude Code in CI](https://dev.to/clampd_dev/comment-and-control-a-github-comment-hijacks-claude-code-in-ci-28jo)
- [HiddenLayer, How Hidden Prompt Injections Can Hijack AI Code Assistants Like Cursor (31 luglio 2025)](https://www.hiddenlayer.com/research/how-hidden-prompt-injections-can-hijack-ai-code-assistants-like-cursor)
- [Decrypt, 'CopyPasta' Attack Shows How Prompt Injections Could Infect AI at Scale (4 settembre 2025)](https://decrypt.co/338143/copypasta-attack-shows-prompt-injections-infect-ai-scale)
- [Anthropic, Claude Code: Security](https://code.claude.com/docs/en/security)

---

Cloudfactory S.r.l., Roma. Contatti: hello@cloudfactory.it
