Un’immagine PNG può rubare i segreti di un progetto grazie a Ghostcommit

La nuova tecnica sfrutta una falla nei sistemi automatici di code review che spesso ignorano i file multimediali

Redazione
Ghostcommit png con prompt nascosto in un'immagine usata contro repository AI

Dal web sbuca Ghostcommit, una nuova tecnica di prompt injection nascosta all’interno di immagini PNG che mette in evidenza una vulnerabilità nei sistemi di revisione del codice basati sull’intelligenza artificiale. Un gruppo di ricercatori ha dimostrato che un file immagine apparentemente innocuo può contenere istruzioni capaci di guidare un agente AI fino alla lettura e all’esportazione di informazioni riservate presenti in un repository.

L’attacco sfrutta un limite preciso degli strumenti automatici di code review: molti sistemi non aprono né analizzano le immagini incluse nelle modifiche proposte dagli sviluppatori. In questo modo, un contenuto malevolo può superare i controlli iniziali e rimanere nascosto fino a quando un agente AI non lo interpreta durante una successiva attività di sviluppo.

Come funziona Ghostcommit e perché le immagini diventano una minaccia

La tecnica è stata sviluppata dal gruppo di ricerca ASSET Research Group dell’University of Missouri-Kansas City, che ha realizzato anche una dimostrazione pratica pubblicata su GitHub. L’obiettivo era mostrare come una modifica apparentemente normale possa introdurre una minaccia all’interno di un progetto software.

Il meccanismo sfrutta un file chiamato AGENTS.md, una tipologia di documento che gli agenti AI leggono automaticamente per conoscere le regole e le convenzioni di un progetto. All’interno del file viene inserito un riferimento a un’immagine PNG, ad esempio una risorsa grafica della documentazione.

Il problema è che l’istruzione dannosa non si trova nel testo visibile del repository, ma all’interno dell’immagine stessa. Nel file PNG viene nascosto un comando che chiede all’agente di leggere il file .env, dove spesso sono conservate chiavi API, token e altre informazioni riservate, trasformando poi i dati in una serie di numeri inseriti nel codice sorgente.

Per un revisore basato esclusivamente sul testo, però, l’immagine appare come un semplice file binario senza contenuti rilevanti. Proprio questa caratteristica permette a Ghostcommit di superare diversi controlli automatici.

L’attacco può portare alla fuga di segreti dai repository

Secondo i ricercatori, strumenti come CodeRabbit e Bugbot non hanno rilevato la minaccia perché non analizzano direttamente le immagini presenti nelle modifiche. Anche inserendo nell’immagine frasi esplicite come “malicious prompt injection” e richieste dirette di leggere il file .env, il controllo è riuscito a passare senza generare avvisi.

La fase più pericolosa, però, non avviene durante la revisione iniziale. Dopo che la modifica viene accettata e integrata nel progetto, un agente AI può leggere automaticamente le istruzioni presenti in AGENTS.md durante una normale sessione di sviluppo.

In un test condotto dai ricercatori, un agente che doveva creare un semplice modulo per il tracciamento dei token ha seguito le istruzioni nascoste, leggendo il file .env e inserendo nel codice una costante composta da 311 numeri, capaci di ricostruire byte per byte il contenuto originale dei segreti.

Il codice generato sembrava una normale funzionalità richiesta dallo sviluppatore. Successivamente, un eventuale aggressore avrebbe potuto recuperare le informazioni dal commit pubblico. I sistemi tradizionali di scansione dei segreti, infatti, non riconoscono facilmente una sequenza numerica che rappresenta testo convertito in formato ASCII.

La difesa passa da controlli multimodali e monitoraggio degli agenti

La ricerca su Ghostcommit evidenzia che il problema non riguarda soltanto il modello AI utilizzato, ma soprattutto gli strumenti che lo circondano. Nei test effettuati, lo stesso modello poteva comportarsi in modo diverso a seconda dell’ambiente operativo.

Alcuni strumenti hanno seguito le istruzioni nascoste, mentre altri hanno bloccato il comportamento sospetto. Questo dimostra che la sicurezza degli agenti AI richiede un approccio a più livelli, evitando di affidarsi esclusivamente alle capacità del modello.

I ricercatori hanno sviluppato un sistema di difesa capace di analizzare anche le immagini presenti nelle pull request. La soluzione combina controlli sugli elementi nascosti, analisi del codice modificato e una verifica tramite modelli linguistici delle immagini associate alle modifiche.

Durante una prova con 80 pull request mai viste prima, il sistema ha bloccato quasi tutte le varianti dell’attacco, senza generare falsi allarmi sui 30 progetti legittimi utilizzati come confronto.

Secondo gli autori dello studio, la lezione principale è che gli agenti AI devono essere controllati anche dopo la fase di revisione. Monitorare quali file vengono letti e quali azioni vengono eseguite diventa essenziale, soprattutto quando un sistema automatizzato accede a risorse sensibili senza una reale necessità operativa.

Fonte: BleepingComputer

Iscriviti alla newsletter

Non inviamo spam! Leggi la nostra Informativa sulla privacy per avere maggiori informazioni.