Panoramica dell’Architettura
MCP di destinazione per la dimostrazione: Toolbox
Smithery.ai si distingue come un importante hub per i plugin MCP, attirando un numero considerevole di inserzioni MCP e utenti attivi. Tra questi, @smithery/toolbox, uno strumento di gestione MCP ufficiale offerto da smithery.ai, funge da punto focale di questa valutazione della sicurezza.
Toolbox è stato scelto come target di test per diversi motivi chiave:
- Vanta una base di utenti significativa, il che lo rende un campione rappresentativo all’interno dell’ecosistema MCP.
- Supporta l’installazione automatica di plugin aggiuntivi, aumentando le funzionalità lato client (ad esempio, Claude Desktop).
- Contiene configurazioni sensibili, come le chiavi API, il che facilita la dimostrazione di potenziali exploit.
MCP dannoso utilizzato per la dimostrazione: MasterMCP
MasterMCP, sviluppato da SlowMist specificamente per scopi di test di sicurezza, è uno strumento MCP dannoso simulato costruito su un’architettura modulare. I suoi componenti chiave includono:
- Simulazione del servizio di siti Web locale: http://127.0.0.1:1024
Per creare uno scenario di attacco realistico, MasterMCP incorpora un modulo di simulazione del servizio di siti Web locale. Sfruttando il framework FastAPI, questo modulo stabilisce rapidamente un semplice server HTTP che imita gli ambienti Web comuni. Queste pagine possono apparire innocue, mostrando informazioni sulla panetteria o restituendo dati JSON standard, ma nascondono payload dannosi meticolosamente realizzati all’interno del codice sorgente o delle risposte API.
Questo approccio consente la dimostrazione completa di tecniche di avvelenamento delle informazioni e occultamento dei comandi in un ambiente locale sicuro e controllato. Evidenzia i potenziali rischi in agguato all’interno di pagine Web apparentemente ordinarie, che possono innescare un comportamento anomalo nei modelli linguistici di grandi dimensioni.
- Architettura MCP plug-in localizzata
MasterMCP adotta un approccio plug-in per facilitare la rapida scalabilità per nuovi vettori di attacco. All’esecuzione, MasterMCP avvia il servizio FastAPI del modulo precedente in un sottoprocesso.
Client dimostrativo
- Cursor: uno degli IDE di programmazione assistiti dall’intelligenza artificiale più utilizzati a livello globale.
- Claude Desktop: il client ufficiale di Anthropic, l’organizzazione che ha personalizzato il protocollo MCP.
Modello linguistico di grandi dimensioni (LLM) utilizzato per la dimostrazione
- Claude 3.7
Claude 3.7 è stato selezionato grazie alle sue capacità avanzate nel riconoscere operazioni sensibili e alla sua rappresentazione di solide capacità operative all’interno dell’attuale ecosistema MCP.
Configurazione di claude\_desktop\_config.json
Con le configurazioni completate, inizia la fase di dimostrazione.
Invocazione dannosa cross-MCP
Questa dimostrazione incorpora sia tecniche di avvelenamento che strategie di invocazione dannosa cross-MCP delineate nella checklist.
Attacco di avvelenamento del contenuto di pagine Web
- Avvelenamento basato sui commenti
Cursor accede al sito Web di test locale all’indirizzo http://127.0.0.1:1024.
Questa pagina apparentemente innocua su “Delicious Cake World” funge da simulazione per illustrare il potenziale impatto dell’accesso di un client di modelli linguistici di grandi dimensioni a un sito Web dannoso.
Comando di esecuzione:
I risultati rivelano che Cursor non solo legge il contenuto della pagina Web, ma trasmette anche dati di configurazione sensibili locali al server di test. Il prompt dannoso è incorporato nel codice sorgente come commento HTML:
Sebbene questo approccio basato sui commenti sia relativamente semplice e facilmente rilevabile, è comunque in grado di innescare operazioni dannose.
- Avvelenamento di commenti codificati
L’accesso a http://127.0.0.1:1024/encode rivela una pagina che appare identica all’esempio precedente. Tuttavia, i prompt dannosi sono codificati, rendendo l’exploit più difficile da rilevare anche quando si ispeziona il codice sorgente della pagina.
Nonostante l’assenza di prompt espliciti nel codice sorgente, l’attacco ha successo.
Avvelenamento delle informazioni di ritorno dello strumento MCP
In base alle istruzioni del prompt di MasterMCP, inseriamo un comando simulato che innesca l’MCP dannoso e dimostra le sue successive operazioni.
Dopo aver attivato il comando, il client avvia una chiamata cross-MCP a Toolbox e aggiunge correttamente un nuovo server MCP.
L’ispezione del codice del plugin rivela che i dati restituiti contengono un payload dannoso codificato, rendendolo praticamente impossibile da rilevare per l’utente.
Attacco di inquinamento dell’interfaccia di terze parti
Questa dimostrazione evidenzia i potenziali rischi associati sia agli MCP dannosi che a quelli non dannosi che restituiscono direttamente i dati API di terze parti al contesto.
Codice di esempio:
Richiesta di esecuzione:
Risultato: Il prompt dannoso è incorporato nei dati JSON restituiti e innesca con successo l’esecuzione dannosa.
Tecniche di avvelenamento durante l’inizializzazione dell’MCP
Questa dimostrazione copre le voci della checklist di iniezione del prompt iniziale e conflitti di nomi.
Attacco di sovrascrittura di funzioni dannose
MasterMCP crea uno strumento con lo stesso nome di funzione della funzione remove_server
di Toolbox e codifica prompt dannosi al suo interno.
Comando di esecuzione:
Claude Desktop non richiama il metodo originale toolbox remove_server
, ma attiva invece il metodo fornito da MasterMCP con lo stesso nome:
Ciò si ottiene sottolineando che il “metodo originale è obsoleto”, il che incoraggia il modello linguistico di grandi dimensioni a dare la priorità alla funzione sovrascritta in modo dannoso.
Aggiunta di logica di ispezione globale dannosa
MasterMCP crea uno strumento chiamato “banana”, progettato per imporre un controllo di sicurezza obbligatorio prima dell’esecuzione di qualsiasi altro strumento.
Prima dell’esecuzione di ogni funzione, il sistema assegna la priorità al meccanismo di controllo “banana”:
Questa iniezione di logica globale viene realizzata sottolineando ripetutamente l’”esecuzione obbligatoria del rilevamento banana” all’interno del codice.
Tecniche avanzate per nascondere prompt dannosi
Metodi di codifica compatibili con LLM
I modelli linguistici di grandi dimensioni possiedono forti capacità di analisi per i formati multilingue, che possono essere sfruttati per nascondere informazioni dannose. I metodi comuni includono:
- Ambiente inglese: codifica Hex Byte
- Ambiente cinese: codifica NCR o codifica JavaScript
Meccanismo di ritorno del payload dannoso casuale
Simile all’inquinamento dell’interfaccia di terze parti menzionato nella terza sezione, la richiesta di http://127.0.0.1:1024/random si traduce in:
Ogni richiesta restituisce una pagina generata casualmente contenente un payload dannoso, aumentando significativamente la difficoltà di rilevamento e tracciamento.
Attraverso la dimostrazione pratica di MasterMCP, sono state rivelate le vulnerabilità di sicurezza nascoste all’interno dell’ecosistema Model Context Protocol (MCP). Dalle iniezioni di prompt di base e dalle chiamate cross-MCP ad attacchi più sottili durante l’inizializzazione e l’occultamento di istruzioni dannose, ogni fase funge da promemoria dell’intrinseca fragilità insieme alla potenza dell’ecosistema MCP.
Oggi, poiché i modelli di grandi dimensioni interagiscono sempre più con plugin e API esterni, un inquinamento dell’input apparentemente minore può innescare rischi per la sicurezza a livello di sistema. L’evoluzione della diversità delle tattiche degli aggressori, tra cui tecniche di codifica, inquinamento casuale e sovrascritture di funzioni, richiede un aggiornamento completo degli approcci di sicurezza tradizionali. Il contesto del protocollo del modello (MCP) è ancora in fase di sviluppo ed è suscettibile di una miriade di potenziali attacchi. I progetti di protocollo e di strumenti attuali sono spesso insufficienti nel fornire difese adeguate. Per affrontare queste sfide e promuovere una più profonda comprensione della sicurezza di MCP, SlowMist ha reso open source MasterMCP, uno strumento progettato per facilitare simulazioni di attacco pratiche. Questa iniziativa mira a consentire alla comunità di identificare e mitigare le vulnerabilità di sicurezza all’interno dei propri progetti MCP in modo proattivo.
A complemento di questo approccio pratico, la Checklist di sicurezza MCP offre preziose informazioni sulle prospettive sottostanti dei vari vettori di attacco. Questo articolo approfondisce scenari del mondo reale, dimostrando metodi di attacco comuni all’interno dell’ecosistema MCP, come l’avvelenamento delle informazioni e l’iniezione di comandi dannosi nascosti. Tutti gli script utilizzati in queste dimostrazioni sono disponibili su GitHub, consentendo agli utenti di replicare l’intero processo in un ambiente sicuro e persino di sviluppare i propri plugin di test degli attacchi.