Con la rapida diffusione degli strumenti di intelligenza artificiale, garantire la loro sicurezza è diventato di fondamentale importanza. Questa checklist di sicurezza è progettata per aiutare gli sviluppatori a identificare e mitigare i potenziali rischi associati al Model Context Protocol (MCP), che è diventato un ponte cruciale che collega i modelli linguistici di grandi dimensioni (LLM) con strumenti esterni e fonti di dati.
Contesto
Questa checklist di sicurezza è stata redatta e viene mantenuta da @SlowMist_Team, con l’obiettivo di migliorare la sicurezza degli ecosistemi blockchain e dell’intelligenza artificiale. Ringraziamo FENZ.AI per il suo prezioso contributo a questa checklist.
Panoramica
Dalla sua pubblicazione alla fine del 2024, l’MCP è stato ampiamente utilizzato nelle principali applicazioni di intelligenza artificiale come Claude Desktop, Cursor e altre. Tuttavia, la rapida diffusione dell’MCP ha anche portato nuove sfide per la sicurezza. L’attuale architettura MCP è composta da tre parti: Host (l’ambiente dell’applicazione AI in esecuzione locale), Client (il componente responsabile della comunicazione con il Server e dell’invocazione degli strumenti) e Server (il servizio backend corrispondente al plugin MCP). Gli utenti interagiscono con l’AI tramite l’Host, il Client analizza le richieste dell’utente e le inoltra al Server MCP, eseguendo chiamate di strumenti o accesso alle risorse. In scenari di esecuzione collaborativa multi-istanza e multi-componente, questa architettura espone una serie di rischi per la sicurezza, soprattutto in scenari sensibili che coinvolgono transazioni di criptovaluta o l’adattamento di plugin personalizzati LLM, in cui i rischi sono più pronunciati e richiedono misure di sicurezza appropriate per la gestione.
Pertanto, è fondamentale sviluppare e seguire una checklist di sicurezza MCP completa. Questa checklist copre i punti chiave per la sicurezza dell’interfaccia utente, dei componenti client, dei plugin di servizio, dei meccanismi di collaborazione multi-MCP e di aree specifiche (come gli scenari di criptovaluta), con l’obiettivo di aiutare gli sviluppatori a identificare sistematicamente i potenziali rischi e a prevenirli tempestivamente. Implementando queste misure di sicurezza, è possibile migliorare efficacemente la stabilità e la controllabilità complessive del sistema MCP, garantendo che la sicurezza delle applicazioni AI sia garantita in modo sincrono con il rapido sviluppo.
Come utilizzare
Questa checklist si basa sui potenziali punti di rischio riscontrati durante l’audit dei progetti MCP, con l’obiettivo di aiutare gli sviluppatori a garantire la sicurezza delle implementazioni MCP. Utilizziamo tre livelli di priorità per identificare l’importanza di ogni voce:
- 🟢️ Indica una voce raccomandata, ma che può essere omessa in determinate circostanze.
- 🔶 Indica una voce fortemente raccomandata, ma che può essere omessa in circostanze speciali, e l’omissione può avere un impatto negativo sulla sicurezza.
- 🟥️ Indica una voce che non può essere omessa in nessuna circostanza e la rimozione di questi elementi potrebbe causare guasti del sistema o vulnerabilità di sicurezza.
Sicurezza del server MCP(plugin MCP)
Il servizio MCP è un servizio esterno che fornisce strumenti, risorse e funzionalità per l’invocazione AI. Di solito contiene risorse, strumenti e prompt. Di seguito sono riportate le considerazioni per garantire la sicurezza del server MCP:
Sicurezza API
- Validazione dell’input: 🟥️ Convalida rigorosamente tutti gli input dell’API, prevenendo attacchi di injection e parametri non validi. Ciò include la convalida del tipo di dati, della lunghezza e del formato, nonché la pulizia e l’escape degli input.
- Limitazione della velocità API: 🔶 Implementa la limitazione della velocità di chiamata API, prevenendo abusi e attacchi. Ciò può impedire agli utenti malintenzionati di sovraccaricare il server inviando un gran numero di richieste.
- Codifica dell’output: 🔶 Codifica correttamente l’output dell’API per prevenire attacchi di cross-site scripting (XSS). Ciò include la codifica di HTML, JavaScript e URL, tra gli altri.
Autenticazione e autorizzazione del server
- Controllo degli accessi: 🟥️ Implementa il controllo degli accessi basato sui ruoli, limitando l’accesso alle risorse e implementando il principio del minimo privilegio. Solo gli utenti autorizzati dovrebbero essere in grado di accedere a determinate risorse.
- Gestione delle credenziali: 🟥️ Gestisci e archivia in modo sicuro le credenziali del servizio, evitando l’hardcoding e utilizzando i servizi di gestione delle chiavi. Ciò include l’utilizzo della crittografia per archiviare le credenziali e la rotazione periodica delle credenziali.
- Autenticazione del servizio esterno: 🟥️ Autenticati ai servizi di terze parti utilizzando metodi sicuri. Ciò include l’utilizzo di protocolli sicuri come OAuth 2.0 o SAML.
- Minimo privilegio: 🔶 I processi del servizio vengono eseguiti con i minimi privilegi necessari, riducendo la potenziale superficie di attacco e i rischi di escalation dei privilegi. Ciò significa che il servizio dovrebbe avere solo le autorizzazioni necessarie per eseguire la sua funzione.
- Rotazione della chiave API: 🔶 Ruota automaticamente periodicamente le chiavi API e le credenziali del servizio, limitando la validità della chiave. Ciò può ridurre il rischio di perdita di chiavi.
- Autenticazione del servizio: 🔶 Fornisci un meccanismo per gli strumenti per convalidare l’identità del servizio, facilitando la convalida da parte del client e l’utilizzo sicuro. Ciò può aiutare i client a verificare che stiano comunicando con un servizio affidabile.
Controllo della persistenza in background
- Gestione del ciclo di vita: 🟥️ Implementa una rigorosa gestione del ciclo di vita del plugin MCP, sincronizzata con il client. I plugin devono essere avviati e arrestati correttamente quando non sono più necessari.
- Pulizia della chiusura: 🟥️ Forza la pulizia di tutti i processi in background MCP quando il client viene chiuso. Ciò può impedire ai plugin dannosi di continuare a essere eseguiti dopo la chiusura del client.
- Meccanismo di controllo dello stato: 🔶 Controlla periodicamente lo stato del plugin MCP, identificando la persistenza anomala. Ciò può aiutare a identificare i plugin che non funzionano correttamente.
- Monitoraggio dell’attività in background: 🔶 Monitora e registra tutte le attività in background MCP. Ciò può aiutare a identificare attività dannose.
- Limitazione dell’attività: 🔶 Limita i tipi e la durata delle operazioni che i plugin MCP possono eseguire in background. Ciò può ridurre i danni causati dai plugin dannosi.
Sicurezza di implementazione e runtime
- Ambiente isolato: 🟥️ Il servizio viene eseguito in un ambiente isolato (contenitore, VM, sandbox), prevenendo l’escape e gli attacchi di movimento est-ovest. Ciò può impedire ai servizi dannosi di influire su altri servizi o sistemi.
- Sicurezza del contenitore: 🟥️ Utilizza una configurazione di sicurezza del contenitore rinforzata ed esegui come utente non root, implementa un’infrastruttura immutabile e una protezione runtime. Ciò può migliorare la sicurezza del contenitore.
- Avvio sicuro: 🔶 Verifica l’integrità del processo di avvio del servizio, implementando una catena di avvio sicura e controlli di integrità. Ciò può impedire l’inserimento di servizi dannosi all’avvio.
- Sicurezza delle variabili d’ambiente: 🔶 Le variabili d’ambiente sensibili sono protette e non divulgate nei log. Ciò può impedire agli utenti malintenzionati di accedere a informazioni sensibili.
- Limitazioni delle risorse: 🔶 Implementa limitazioni sull’utilizzo delle risorse, impedendo chiamate ripetute in loop su larga scala quando il modello linguistico fallisce. Ciò può impedire ai servizi dannosi di esaurire le risorse di sistema.
Integrità del codice e dei dati
- Meccanismo di verifica dell’integrità: 🟥️ Utilizza meccanismi come firme digitali, controlli hash, ecc. per garantire che il codice non sia stato manomesso. Ciò può impedire agli utenti malintenzionati di modificare il codice.
- Verifica remota: 🔶 Supporta un meccanismo per la verifica remota dell’integrità del codice. Ciò consente agli utenti remoti di verificare se il codice è stato manomesso.
- Offuscamento e rafforzamento del codice: 🟢️ Applica tecniche di offuscamento e rafforzamento del codice per aumentare la difficoltà della reverse engineering. Ciò può rendere più difficile per gli utenti malintenzionati comprendere e modificare il codice.
Sicurezza della supply chain
- Gestione delle dipendenze: 🟥️ Gestisci in modo sicuro le dipendenze di terze parti. Ciò include il tracciamento delle dipendenze, assicurandosi che siano aggiornate e la scansione per individuare eventuali vulnerabilità.
- Integrità del pacchetto: 🟥️ Verifica l’integrità e l’autenticità dei pacchetti. Ciò può impedire agli utenti malintenzionati di inserire pacchetti dannosi.
- Verifica dell’origine: 🔶 Verifica l’origine di tutto il codice e le dipendenze. Ciò può aiutare a garantire che il codice provenga da una fonte attendibile.
- Costruisci la sicurezza: 🔶 Assicurati che il processo di build sia sicuro. Ciò include l’utilizzo di strumenti di build sicuri e l’assicurazione che l’ambiente di build sia sicuro.
Monitoraggio e registrazione
- Rilevamento delle anomalie: 🟥️ Rileva e segnala modelli di attività anomali. Ciò può aiutare a identificare attività dannose.
- Registrazione dettagliata: 🟥️ Registra tutte le attività del servizio e gli eventi di sicurezza. Ciò può aiutare a indagare sugli incidenti di sicurezza.
- Avviso di eventi di sicurezza: 🟥️ Configura avvisi in tempo reale per eventi di sicurezza critici. Ciò può aiutare a rispondere tempestivamente agli incidenti di sicurezza.
- Gestione centralizzata dei log: 🔶 Raccogli e analizza i log centralmente. Ciò può fornire una visione più completa degli incidenti di sicurezza.
- Integrità del log: 🔶 Assicura l’integrità del log, impedendo la manomissione. Ciò può impedire agli utenti malintenzionati di eliminare o modificare i log.
- Capacità di audit: 🔶 Supporta audit dettagliati e indagini sugli incidenti. Ciò può aiutare a determinare la causa degli incidenti di sicurezza.
Isolamento dell’ambiente di chiamata
- Isolamento tra MCP: 🟥️ Assicura l’isolamento operativo tra più servizi MCP. Ciò può impedire ai servizi MCP dannosi di influire su altri servizi MCP.
- Controllo dell’accesso alle risorse: 🟥️ Assegna confini di autorizzazione di accesso alle risorse chiari a ciascun servizio MCP. Ciò può limitare le risorse a cui può accedere un servizio MCP dannoso.
- Separazione dei permessi degli strumenti: 🔶 Strumenti in diversi domini utilizzano diversi set di permessi. Ciò può ridurre i danni causati dagli strumenti dannosi.
Compatibilità e sicurezza della piattaforma
- Isolamento delle risorse di sistema: 🟥️ Implementa adeguate politiche di isolamento delle risorse in base alle caratteristiche dei diversi sistemi operativi. Ciò può impedire ai servizi dannosi di influire su altri servizi o sistemi.
- Test di compatibilità multipiattaforma: 🔶 Testa la coerenza del comportamento di sicurezza del servizio MCP su diversi sistemi operativi e client. Ciò può garantire che il servizio sia sicuro su tutte le piattaforme.
- Valutazione del rischio specifico della piattaforma: 🔶 Valuta i rischi di sicurezza e le misure di mitigazione univoche per una piattaforma specifica. Ciò può aiutare a identificare e mitigare i rischi di sicurezza specifici della piattaforma.
- Gestione delle differenze del client: 🔶 Assicura che i controlli di sicurezza possano adattarsi alle differenze nelle varie implementazioni del client. Ciò può garantire che il servizio sia sicuro con tutti i client.
Sicurezza e privacy dei dati
- Minimizzazione dei dati: 🟥️ Raccogli ed elabora solo i dati necessari. Ciò può ridurre il rischio di violazioni dei dati.
- Crittografia dei dati: 🟥️ I dati sensibili vengono crittografati durante l’archiviazione e la trasmissione. Ciò può impedire agli utenti malintenzionati di accedere a informazioni sensibili.
- Isolamento dei dati: 🟥️ I dati di diversi utenti sono efficacemente isolati. Ciò può impedire agli utenti malintenzionati di accedere ai dati di altri utenti.
- Controllo dell’accesso ai dati: 🟥️ Implementa un rigoroso controllo dell’accesso ai dati. Ciò può limitare l’accesso ai dati.
- Identificazione dei dati sensibili: 🟥️ Identifica e gestisci automaticamente i dati sensibili in modo speciale. Ciò può aiutare a prevenire la perdita di dati sensibili.
Sicurezza delle risorse
- Controllo dell’accesso alle risorse: 🟥️ Implementa un controllo dell’accesso alle risorse granulare. Ciò può limitare l’accesso a determinate risorse.
- Limitazioni delle risorse: 🔶 Limita le dimensioni e il numero di singole risorse. Ciò può impedire agli utenti malintenzionati di esaurire le risorse di sistema.
- Sicurezza dei modelli di risorse: 🔶 Assicura che i parametri del modello di risorsa siano convalidati e puliti. Ciò può impedire agli utenti malintenzionati di inserire codice dannoso.
- Tagging delle risorse sensibili: 🔶 Tagga e gestisci in modo speciale le risorse sensibili. Ciò può aiutare a prevenire la perdita di risorse sensibili.
Sicurezza dell’implementazione degli strumenti
- Pratiche di codifica sicura: 🟥️ Segui standard di codifica sicura e best practice. Ciò può ridurre il numero di vulnerabilità nel codice.
- Isolamento degli strumenti: 🟥️ L’esecuzione degli strumenti avviene in un ambiente controllato, impedendo l’influenza a livello di sistema. Ciò può impedire agli strumenti dannosi di influire su altri servizi o sistemi.
- Validazione dell’input: 🟥️ Convalida rigorosamente tutti gli input provenienti dai client. Ciò può impedire agli utenti malintenzionati di inserire codice dannoso.
- Controllo dei permessi degli strumenti: 🟥️ Ogni strumento ha solo i permessi minimi necessari per completare l’attività. Ciò può ridurre i danni causati dagli strumenti dannosi.
- Validazione dei dati: 🟥️ Valida i dati elaborati dallo strumento, prevenendo injection e manomissioni. Ciò può impedire agli utenti malintenzionati di inserire dati dannosi.
- Vincoli sul comportamento degli strumenti: 🟥️ Limita l’ambito e i tipi di operazioni che gli strumenti possono eseguire. Ciò può ridurre i danni causati dagli strumenti dannosi.
- Sicurezza delle informazioni restituite dall’interfaccia di terze parti: 🟥️ Verifica se le informazioni restituite dall’interfaccia soddisfano le aspettative e non inserire direttamente le informazioni restituite nel contesto. Ciò può impedire agli strumenti dannosi di utilizzare l’interfaccia di terze parti.
- Gestione degli errori: 🔶 Gestisci gli errori in modo sicuro, senza divulgare informazioni sensibili. Ciò può impedire agli utenti malintenzionati di utilizzare le informazioni sugli errori.
- Isolamento dello spazio dei nomi: 🔶 Implementa un rigoroso isolamento dello spazio dei nomi per diversi strumenti. Ciò può impedire conflitti tra strumenti.
Sicurezza del client MCP/Host MCP
L’host è l’ambiente in cui vengono eseguite le applicazioni AI e il client MCP ed è il punto di ingresso per l’interazione dell’utente finale con il sistema AI. Il client è un componente all’interno dell’applicazione AI, responsabile della comunicazione con il servizio MCP, della gestione del contesto, delle chiamate agli strumenti e della visualizzazione dei risultati. Di seguito sono riportate le considerazioni per proteggere il client e l’host MCP:
Sicurezza dell’interazione utente
- Sicurezza dell’interfaccia utente: 🟥️ L’interfaccia utente visualizza chiaramente l’ambito delle autorizzazioni e i potenziali impatti delle operazioni AI, fornendo indicatori di sicurezza intuitivi. Ciò può aiutare gli utenti a comprendere le autorizzazioni che concedono all’AI.
- Conferma delle operazioni sensibili: 🟥️ Le operazioni ad alto rischio (come l’eliminazione di file, il trasferimento di fondi) richiedono l’esplicita conferma dell’utente. Ciò può impedire agli utenti di eseguire inavvertitamente operazioni ad alto rischio.
- Trasparenza della richiesta di autorizzazione: 🟥️ Le richieste di autorizzazione spiegano chiaramente lo scopo e l’ambito, aiutando gli utenti a prendere decisioni informate ed evitando un’autorizzazione eccessiva. Ciò può aiutare gli utenti a comprendere le autorizzazioni che concedono all’AI.
- Visualizzazione dell’operazione: 🔶 Le chiamate degli strumenti e l’accesso ai dati sono visibili e verificabili dall’utente, fornendo registri delle operazioni dettagliati. Ciò può aiutare gli utenti a comprendere le operazioni che l’AI sta eseguendo.
- Trasparenza delle informazioni: 🔶 Lo strumento dovrebbe consentire agli utenti di scegliere se mostrare o meno le etichette nascoste per impostazione predefinita, garantendo che il contesto che l’utente vede e quello effettivamente generato e chiamato sia completo e coerente, prevenendo la presenza di logica dannosa nelle etichette nascoste.
- Feedback sullo stato: 🔶 Gli utenti possono comprendere chiaramente l’operazione MCP attualmente in esecuzione.
Controllo e monitoraggio AI
- Registrazione delle operazioni: 🟥️ Registra tutte le operazioni AI importanti e i loro risultati. Ciò può aiutare a indagare sugli incidenti di sicurezza.
- Rilevamento delle anomalie: 🔶 Rileva modelli di chiamata di strumenti osequenze di richieste anomali. Ciò può aiutare a identificare attività dannose.
- Limitazione della chiamata dello strumento: 🔶 Implementa limiti alla frequenza e alla quantità di chiamate dello strumento. Ciò può impedire agli utenti malintenzionati di abusare dello strumento.
Sicurezza dell’archiviazione locale
- Archiviazione sicura delle credenziali: 🟥️ Utilizza la catena di chiavi del sistema o l’archiviazione crittografata dedicata per proteggere le credenziali di autenticazione per le credenziali importanti, prevenendo l’accesso non autorizzato. Ciò può impedire agli utenti malintenzionati di accedere alle credenziali.
- Isolamento dei dati sensibili: 🔶 Implementa meccanismi di isolamento dei dati per archiviare ed elaborare i dati utente sensibili separatamente dai dati ordinari. Ciò può impedire agli utenti malintenzionati di accedere ai dati sensibili.
Sicurezza dell’applicazione
- Integrità dell’applicazione: 🟥️ Verifica l’integrità dell’applicazione e dei plugin MCP, prevenendo la manomissione. Ciò può impedire agli utenti malintenzionati di modificare l’applicazione.
- Verifica dell’aggiornamento: 🔶 Gli aggiornamenti dell’applicazione host vengono verificati con una firma digitale. Ciò può garantire che l’aggiornamento provenga da una fonte attendibile.
- Sandbox dell’applicazione: 🟢️ Cerca di eseguire l’applicazione in un ambiente sandbox, limitando l’accesso al sistema. Ciò può ridurre i danni causati dalle applicazioni dannose.
Autenticazione e autorizzazione del client
- Autenticazione forzata: 🟥️ Applica l’autenticazione prima di comunicare con qualsiasi servizio MCP importante, prevenendo l’accesso anonimo. Ciò può impedire agli utenti non autorizzati di accedere al servizio.
- Implementazione OAuth: 🔶 Implementa correttamente i flussi OAuth 2.1 o versioni successive, seguendo le best practice e gli standard di sicurezza. Ciò può garantire che l’autenticazione sia sicura.
- Parametri di stato: 🔶 Implementa parametri di stato per alcuni client web per prevenire attacchi CSRF, utilizzando un valore casuale univoco per ogni richiesta. Ciò può impedire attacchi di cross-site request forgery (CSRF).
Gestione degli strumenti e dei server MCP
- Verifica dello strumento MCP: 🟥️ Verifica l’autenticità e l’integrità degli strumenti registrati. Ciò può impedire la registrazione di strumenti dannosi.
- Aggiornamenti di sicurezza: 🟥️ Il client MCP controlla e applica regolarmente gli aggiornamenti di sicurezza, verificando se gli strumenti aggiornati contengono descrizioni dannose. Ciò può garantire che gli strumenti siano aggiornati e non contengano codice dannoso.
- Verifica del nome della funzione: 🟥️ Controlla i conflitti di nome e la potenziale sovrascrittura dannosa prima di registrare lo strumento. Ciò può impedire agli strumenti dannosi di sovrascrivere gli strumenti esistenti.
- Rilevamento MCP dannoso: 🟥️ Monitora e identifica i modelli di comportamento dei MCP potenzialmente dannosi. Ciò può aiutare a identificare i MCP dannosi.
- Controllo del nome dello strumento MCP: 🔶 Utilizza spazi dei nomi o identificatori univoci per prevenire conflitti di nome. Ciò può impedire conflitti tra strumenti.
- Directory del servizio: 🔶 Mantiene una directory autorizzata di servizi e strumenti MCP affidabili. Ciò può aiutare gli utenti a trovare servizi affidabili.
- Risoluzione dei conflitti: 🔶 Esistono regole chiare per risolvere i conflitti di strumenti con lo stesso nome.
- Isolamento del dominio: 🔶 Gli strumenti di domini diversi sono isolati l’uno dall’altro, prevenendo influenze incrociate.
- Meccanismo di priorità: 🔶 Stabilisci regole di priorità di funzione chiare per evitare sovrascritture dannose.
- Controllo delle versioni: 🔶 Implementa il controllo delle versioni su funzioni e strumenti per rilevare le modifiche.
- Meccanismo di registrazione e cancellazione degli strumenti: 🔶 Definisci processi chiari per la registrazione e la cancellazione degli strumenti, prevenendo i rischi per la sicurezza degli strumenti legacy.
- Meccanismo di rilevamento dei conflitti: 🔶 Rileva e risolvi i conflitti di funzione e risorse in ambienti multi-MCP.
- Classificazione degli strumenti: 🟢️ Classifica gli strumenti in base alla sensibilità e al livello di rischio.
Sicurezza dei prompt
- Difesa dall’injection dei prompt: 🟥️ Implementa misure di difesa multistrato per prevenire attacchi di injection dei prompt, inclusa la verifica manuale delle esecuzioni critiche.
- Rilevamento di istruzioni dannose: 🟥️ Stabilisci un meccanismo per rilevare e bloccare le potenziali istruzioni utente dannose, evitando la manipolazione del sistema, come il rilevamento e il blocco di istruzioni dannose precaricate durante l’inizializzazione locale e l’inclusione di istruzioni dannose nascoste da strumenti dannosi dal server MCP di terze parti.
- Protezione dei prompt di sistema: 🟥️ I prompt di sistema e l’input dell’utente sono chiaramente separati, prevenendo la manomissione.
- Filtraggio dei dati sensibili: 🟥️ Filtra i dati personali sensibili dai prompt e dal contesto.
- Isolamento del contesto: 🔶 Assicura che il contenuto del contesto proveniente da fonti diverse sia reciprocamente isolato, prevenendo la contaminazione del contesto e la perdita di informazioni.
- Modelli di prompt: 🔶 Utilizza modelli di prompt sicuri, riducendo i rischi di injection.
- Verifica della descrizione dello strumento: 🔶 Controlla le potenziali istruzioni dannose nella descrizione dello strumento.
- Verifica della coerenza dei prompt: 🔶 Assicura che gli stessi prompt producano risultati coerenti e prevedibili in ambienti diversi.
- Gestione del contesto storico: 🔶 Definisci un meccanismo di pulizia sicura del contesto storico per prevenire i rischi di perdita di informazioni causati dall’accumulo di dati obsoleti.
Registrazione e audit
- Registrazione dei log del client: 🟥️ Registra tutte le interazioni, le chiamate di strumenti e le attività di autorizzazione con il servizio MCP.
- Registrazione degli eventi di sicurezza: 🟥️ Registra tutti gli eventi relativi alla sicurezza, inclusi gli errori di autorizzazione.
- Avviso di anomalie: 🔶 Rileva e avvisa di modelli di attività anomali.
Verifica del server e sicurezza delle comunicazioni
- Autenticazione del server: 🟥️ Verifica l’identità del server MCP, impedendo la connessione a server dannosi, implementando il certificate pinning.
- Verifica del certificato: 🟥️ Verifica rigorosamente i certificati TLS per i server remoti, prevenendo attacchi man-in-the-middle, controllando l’integrità della catena di certificati.
- Crittografia delle comunicazioni: 🟥️ Tutte le comunicazioni client-server utilizzano la crittografia TLS 1.2+, disabilitando le suite di crittografia deboli.
- Configurazione del protocollo di sicurezza: 🔶 Configura parametri TLS sicuri, controllando e aggiornando periodicamente gli algoritmi di crittografia e i protocolli.
Archiviazione e gestione dei token di autorizzazione
- Limitazione dell’ambito dell’autorizzazione: 🟥️ Limita rigorosamente l’ambito dell’autorizzazione del token, implementando il principio del minimo privilegio.
Controllo dell’approvazione automatica
- Limitazione dell’approvazione automatica: 🟥️ Controlla rigorosamente l’ambito degli strumenti e delle operazioni che possono essere approvati automaticamente.
- Gestione della whitelist: 🔶 Definisci chiaramente il meccanismo di whitelist per gli strumenti approvati automaticamente.
- Valutazione dinamica del rischio: 🔶 Regola dinamicamente le politiche di approvazione automatica in base al contesto.
- Audit del processo di approvazione: 🔶 Registra e controlla tutte le decisioni di approvazione automatica.
Sicurezza del campionamento
- Controllo del contenuto del contesto: 🟥️ Controlla rigorosamente l’ambito del contesto incluso nella richiesta di campionamento.
- Filtraggio dei dati sensibili: 🟥️ Filtra i dati sensibili dalle richieste e risposte di campionamento.
- Verifica della richiesta di campionamento: 🔶 Verifica tutti i parametri e il contenuto della richiesta di campionamento.
- Controllo dell’utente: 🔶 Assicura che gli utenti abbiano un controllo chiaro sulle richieste e sui risultati di campionamento.
- Sicurezza delle preferenze del modello: 🔶 Gestisci in modo sicuro le informazioni sulle preferenze del modello, prevenendo l’abuso.
- Verifica dei risultati: 🔶 Verifica se i risultati del campionamento soddisfano gli standard di sicurezza.
Adattamento e sicurezza delle chiamate MCP su diversi LLM
Diversi backend LLM possono avere priorità di chiamata e logiche di esecuzione diverse per MCP, quindi è necessario prestare attenzione alla sicurezza della combinazione tra LLM e MCP.
Esecuzione sicura LLM
- Esecuzione prioritaria della funzione: 🟥️ Assicura che LLM possa dare la priorità all’esecuzione della funzione del plugin corretto.
- Protezione dai prompt dannosi: 🟥️ LLM può identificare e proteggere il comportamento richiesto dalle richieste mnemoniche iniettate in scenari con prompt dannosi.
- Chiamata sicura: 🟥️ LLM può chiamare le funzioni MCP correlate in modo corretto e sicuro.
- Protezione delle informazioni sensibili: 🟥️ Impedisci la perdita di informazioni sensibili.
Sicurezza multimodale
- Filtraggio dei contenuti multimodali: 🟥️ Filtra le informazioni dannose o sensibili nei contenuti multimodali (come i prompt dannosi nelle immagini).
Sicurezza in scenari multi-MCP
Quando si abilitano più server MCP contemporaneamente, a causa della mancanza di audit ufficiali, gli utenti potrebbero installare MCP dannosi, causando una minaccia alla sicurezza complessiva.
- Sicurezza dell’ambiente multi-MCP: 🟥️ Assicura la sicurezza complessiva dell’ambiente multi-MCP, eseguendo regolarmente la scansione e il controllo dei MCP installati.
- Protezione dal dirottamento della priorità della funzione: 🟥️ Controlla le possibili preimpostazioni di prompt dannose, impedendo il dirottamento dannoso della priorità della funzione.
- Controllo delle chiamate di funzione tra MCP: 🟥️ Controlla in modo sicuro le chiamate di funzione tra MCP, impedendo al MCP dannoso di restituire prompt dannosi per chiamare altri MCP per eseguire operazioni sensibili.
Punti di sicurezza specifici dei MCP correlati alla criptovaluta
I MCP correlati alla criptovaluta di solito hanno la funzione di gestire i portafogli di criptovaluta, che presentano un alto rischio.
- Protezione della chiave privata: 🟥️ Rafforza le misure di protezione della chiave privata, come Scrypt.
- Sicurezza della generazione del portafoglio: 🟥️ Garantisci la sicurezza del processo di generazione mnemonica o del portafoglio.
- Privacy delle informazioni del portafoglio: 🟥️ Proteggi la privacy delle informazioni del portafoglio, filtrando attentamente le informazioni del portafoglio quando vengono richieste a interfacce di terze parti.
- Conferma delle informazioni sul trasferimento: 🟥️ Le informazioni sulla firma del trasferimento sulla catena o sull’exchange devono essere visualizzate e confermate per intero.
- Verifica dell’operazione sui fondi: 🟥️ È necessaria una seconda verifica per le operazioni sui fondi importanti, come Google Authenticator.
- Protezione della privacy del modello locale: 🔶 Utilizza modelli linguistici di grandi dimensioni locali per proteggere i dati sulla privacy, impedendo ai produttori di modelli linguistici di grandi dimensioni di terze parti di ottenere informazioni sensibili come le informazioni del portafoglio.
- Compatibilità con i portafogli tradizionali: 🔶 Compatibilità sicura con i portafogli tradizionali, come il supporto per l’utilizzo di portafogli tradizionali per eseguire operazioni di firma, ecc.