Mozilla segnala il rischio di iniezione di prompt indiretta negli agenti di coding AI

Mozilla segnala il rischio di iniezione di prompt indiretta negli agenti di coding AI

Introduzione per tutti: Proteggiti subito dal nuovo attacco AI

Gli strumenti di coding basati sull’Intelligenza Artificiale stanno diventando sempre più popolari per aiutare i sviluppatori a scrivere codice velocemente. Tuttavia, c’è un nuovo pericolo nascosto che devi conoscere immediatamente. Un recente avviso di Mozilla indica che gli agenti AI possono essere manipolati per eseguire azioni dannose che i programmatori non hanno mai autorizzato esplicitamente. La cosa più preoccupante è che questo attacco può compromettere il tuo computer senza richiedere nemmeno una singola linea di codice malvagio nel repository che stai analizzando.

La soluzione rapida e fondamentale per la tua sicurezza è semplice: considera sempre le istruzioni di configurazione e gli script presenti in repository sconosciuti come codice non attendibile, indipendentemente da quanto il tuo strumento AI ti suggerisca di fidarti. Non eseguire mai comandi di inizializzazione che ti vengono indicati automaticamente senza una verifica umana approfondita. Se il tuo agente AI ti dice di eseguire un comando per risolvere un errore, fermati e controlla manualmente cosa quel comando farà realmente sul tuo sistema prima di procedere.

Questo articolo spiega in dettaglio come funziona questo attacco sofisticato, chiamato “iniezione di prompt indiretta”, e fornisce le indicazioni precise per proteggere il tuo ambiente di sviluppo e i tuoi dati sensibili.

Come funziona l’attacco: La manipolazione invisibile

L’attacco di iniezione di prompt indiretta è particolarmente insidioso perché l’aggressore non interagisce direttamente con l’agente AI. Invece, inserisce istruzioni dannose in contenuti che l’agente elaborerà in futuro come parte del suo lavoro normale. Questi contenuti possono essere pagine web, email, documenti condivisi o repository di codice pubblici su piattaforme come GitHub. Quando l’agente AI della vittima analizza questi contenuti, legge ed esegue le istruzioni malevole, che possono ordinare segretamente di accedere a repository privati o esfiltrare file sensibili verso un server controllato dall’attaccante.

Nel caso specifico segnalato da Mozilla, il bersaglio sono gli agenti di coding potenziati dall’AI, come Claude Code. L’attacco utilizza un repository GitHub malevolo che sembra del tutto normale. Il repository presenta istruzioni di configurazione apparentemente innocue nel file README. Tuttavia, un pacchetto Python è ingegnerizzato per fallire al primo utilizzo e, invece di mostrare un semplice messaggio di errore, dirige l’utente a eseguire un comando di inizializzazione specifico.

Quando l’agente AI, seguendo le istruzioni del README, esegue questo comando di inizializzazione, il comando chiama uno script shell. Questo script shell risolve un record DNS TXT controllato dall’attaccante e convogli direttamente il suo contenuto verso bash. Il payload malevolo eseguito in questo momento — che nel caso descritto è una shell inversa (reverse shell) — non è presente nel repository. È recuperato ed eseguito solo al momento dell’runtime. Di conseguenza, il payload è “invisibile” per le revisioni del codice, per gli strumenti di analisi statica e per l’agente AI che legge il repository.

L’agente AI segue semplicemente le istruzioni di configurazione, si riprende da un errore previsto come indicato, e inconsapevolmente apre una connessione di ritorno verso il server dell’attaccante. Da quel momento, l’attaccante ha una shell interattiva in esecuzione con le stesse privilegi del sviluppatore. Questo significa che l’attaccante può accedere a tutto ciò che il sviluppatore può vedere: dati privati, variabili di ambiente, credenziali, chiavi API e file di configurazione locali. Gli strumenti di coding agentic hanno accesso a tutto ciò di cui hanno bisogno per questo attacco, rendendo la situazione estremamente critica per la sicurezza informatica.

Consigli per i sviluppatori: Prevenzione e Best Practices

L’organizzazione Zero Day Investigative Network (0DIN) di Mozilla raccomanda che gli agenti di coding AI siano progettati per evidenziare ciò che un comando eseguirà effettivamente al momento dell’runtime, piuttosto che valutare solo la stringa del comando letterale. Questo approccio permette di identificare azioni potenzialmente pericolose che potrebbero essere mascherate da istruzioni legittime.

I sviluppatori devono adottare una mentalità di sicurezza rigorosa. È fondamentale trattare le istruzioni di configurazione e gli script in repository sconosciuti come codice non attendibile, indipendentemente da ciò che il loro strumento AI raccomanda. Non fidarsi mai automaticamente delle suggerimenti di un’AI quando si tratta di eseguire comandi di sistema o di inizializzazione. Ogni azione deve essere verificata manualmente.

Inoltre, è importante limitare i privilegi dell’agente AI. Se l’agente non può accedere a dati sensibili, il rischio di prompt injection è meno preoccupante. Se l’accesso ai dati sensibili è necessario, è fondamentale che l’agente abbia solo i privilegi minimi necessari per svolgere la sua funzione. La combinazione di dati sensibili, input non attendibili e azioni esterne crea catene di attacco sfruttabili, quindi è necessario isolare questi elementi quando possibile.

Further Reading for Technicians: Technical Deep Dive

Per gli utenti tecnici e gli esperti di sicurezza informatica, è fondamentale comprendere la struttura tecnica dettagliata di questo attacco e le sue implicazioni per l’architettura dei sistemi agentic. L’iniezione di prompt indiretta rappresenta una vulnerabilità di sicurezza in cui un attaccante inserisce input ingannevoli o malformati all’interno di fonti di dati esterne che l’AI andrà a leggere o elaborare. Questo scenario è molto più insidioso rispetto all’iniezione diretta, poiché l’attaccante non scrive direttamente all’LLM, ma nasconde le istruzioni (payload) all’interno di fonti esterne come pagine web, email o repository di codice.

Un esempio documentato riguarda un agente AI basato sul Protocollo di Contesto Modello (Model Context Protocol) connesso a GitHub. In questo attacco, un utente malevolo ha inserito un prompt nascosto all’interno di una “Issue” pubblica su GitHub. Quando l’agente AI della vittima ha analizzato l’Issue, ha letto ed eseguito le istruzioni malevole, che ordinavano segretamente di accedere ai repository privati dell’utente ed esfiltrare i file sensibili verso un server controllato dall’attaccante.

La vulnerabilità di un sistema agentivo alla prompt injection indiretta può essere formalizzata attraverso una condizione necessaria e sufficiente, chiamata “trifecta letale” (lethal trifecta). Questa condizione richiede la presenza simultanea di tre pilastri: dati sensibili, input non attendibili e azioni esterne. Quando tutti e tre i pilastri sono presenti, il sistema ha già accesso a sistemi sensibili o dati privati, e un utente malintenzionato può quindi iniettare istruzioni dannose tramite input non attendibili, inducendo l’agente a esfiltrare tali dati all’esterno.

Un caso specifico di vulnerabilità di prompt injection è GitHub Copilot (CVE-2025-53773, CVSS 7.8). Come documentato da Johann Rehberger e Persistent Security nell’agosto 2025, GitHub Copilot e Visual Studio Code erano vulnerabili a remote code execution tramite prompt injection. Il CVSS ufficiale assegnato da Microsoft è 7.8 (HIGH). L’exploit sfruttava la capacità di Copilot di scrivere file nel workspace senza approvazione esplicita: istruzioni malevole, iniettate in file README, sorgenti, issue GitHub o qualsiasi altro contenuto processato dall’agente, inducevano Copilot a modificare il file .vscode/settings.json abilitando la configurazione chat.tools.autoApprove: true. Questa modalità, chiamata “YOLO”, disabilitava tutte le conferme utente e permetteva l’esecuzione arbitraria di comandi di sistema.

La Remote Code Execution è un rischio critico derivante da questi attacchi. Un attacco di prompt injection può forzare l’AI a generare ed eseguire script arbitrari (Python, Bash) sul server remoto. Se l’isolamento del sandbox non è perfetto, questo può portare al controllo completo del server. Gli attacchi indiretti prendono di mira i contenuti esterni consumati dai LLM. Le pipeline RAG che acquisiscono pagine web, documenti caricati o record di database possono introdurre istruzioni nascoste. Gli aggressori incorporano prompt malevoli in file apparentemente innocui, PDF con livelli di testo invisibili o immagini contenenti istruzioni che i modelli multimodali interpretano ed eseguono.

La differenza fondamentale tra iniezione diretta e indiretta è che gli attacchi indiretti possono compromettere i sistemi senza che gli utenti si rendano conto che è in corso un attacco. Questi attacchi possono essere eseguiti in modo completamente autonomo attraverso scenari “zero-click” in cui istruzioni dannose sono incorporate in contenuti che i sistemi di AI elaborano automaticamente. Ad esempio, prompt nascosti in documenti condivisi possono attivare azioni non autorizzate quando un sistema di AI li legge durante attività di analisi o sintesi di routine.

Per mitigare questi rischi, è necessario prevenire il prompt injection con filtri input, istruzioni robuste, sandboxing, validazione output, restrizioni ruoli e monitoraggio costante delle interazioni. È anche fondamentale rilevare prompt injection tramite monitoraggio anomalie, revisione prompt, analisi log, risposte inaspettate e strumenti automatici antimanipolazione. L’accesso a dati sensibili è meno rischioso se l’agente non può accedere a tali dati, quindi l’isolamento e la limitazione dei privilegi sono strategie di difesa essenziali.

Gli attacchi di prompt injection indiretti si verificano quando un sistema di AI elabora dati esterni, come contenuti di siti web, email o documenti, che contengono al loro interno istruzioni dannose. Il sistema, ignaro dei comandi nascosti o delle istruzioni dannose, li esegue insieme alla sua attività principale. Ciò può avere come conseguenza l’esecuzione di azioni involontarie o la divulgazione di informazioni. La strategia di difesa su più livelli è fondamentale per proteggere i sistemi AI da questi attacchi sofisticati.

In sintesi, la sicurezza dei sistemi agentic richiede un approccio multilivello che combina tecniche di prevenzione, monitoraggio e limitazione dei privilegi. La comprensione dettagliata di come funzionano questi attacchi è essenziale per sviluppare strategie di difesa efficaci e proteggere i dati sensibili e le infrastrutture critiche.

Fonte: https://www.helpnetsecurity.com/2026/06/29/mozilla-warns-of-indirect-prompt-injection-risk-in-ai-coding-agents/

Torna in alto