L’adozione del Model Context Protocol (MCP) introduce potenti nuove funzionalità nelle applicazioni AI-driven, ma comporta anche sfide di sicurezza uniche che vanno oltre i rischi software tradizionali. Oltre a preoccupazioni consolidate come il coding sicuro, il principio del privilegio minimo e la sicurezza della supply chain, MCP e i workload AI affrontano nuove minacce quali prompt injection, tool poisoning e modifiche dinamiche agli strumenti. Questi rischi possono portare a furto di dati, violazioni della privacy e comportamenti imprevisti del sistema se non gestiti correttamente.
Questa lezione esplora i rischi di sicurezza più rilevanti associati a MCP — inclusi autenticazione, autorizzazione, permessi eccessivi, prompt injection indiretta e vulnerabilità della supply chain — e fornisce controlli pratici e best practice per mitigarli. Imparerai anche come sfruttare soluzioni Microsoft come Prompt Shields, Azure Content Safety e GitHub Advanced Security per rafforzare la tua implementazione MCP. Comprendendo e applicando questi controlli, potrai ridurre significativamente la probabilità di una violazione della sicurezza e garantire che i tuoi sistemi AI rimangano robusti e affidabili.
Al termine di questa lezione, sarai in grado di:
- Identificare e spiegare i rischi di sicurezza unici introdotti dal Model Context Protocol (MCP), inclusi prompt injection, tool poisoning, permessi eccessivi e vulnerabilità della supply chain.
- Descrivere e applicare controlli efficaci per mitigare i rischi di sicurezza MCP, come autenticazione robusta, principio del privilegio minimo, gestione sicura dei token e verifica della supply chain.
- Comprendere e sfruttare soluzioni Microsoft come Prompt Shields, Azure Content Safety e GitHub Advanced Security per proteggere MCP e i workload AI.
- Riconoscere l’importanza di validare i metadata degli strumenti, monitorare modifiche dinamiche e difendersi dagli attacchi di prompt injection indiretta.
- Integrare best practice di sicurezza consolidate — come coding sicuro, hardening dei server e architettura zero trust — nella tua implementazione MCP per ridurre probabilità e impatto di violazioni.
Qualsiasi sistema con accesso a risorse importanti presenta sfide di sicurezza implicite. Queste sfide possono generalmente essere affrontate applicando correttamente controlli e concetti fondamentali di sicurezza. Poiché MCP è una specifica nuova e in rapido cambiamento, i controlli di sicurezza al suo interno si evolveranno e matureranno, permettendo una migliore integrazione con architetture di sicurezza aziendali consolidate e best practice.
La ricerca pubblicata nel Microsoft Digital Defense Report afferma che il 98% delle violazioni segnalate sarebbe prevenuto da una solida igiene di sicurezza. La miglior protezione contro qualsiasi tipo di violazione è mantenere una buona igiene di base, seguire best practice di coding sicuro e assicurare la sicurezza della supply chain — pratiche collaudate che ancora oggi fanno la differenza nella riduzione del rischio.
Vediamo alcuni modi per iniziare ad affrontare i rischi di sicurezza adottando MCP.
Nota: Le informazioni seguenti sono corrette al 29 maggio 2025. Il protocollo MCP è in continua evoluzione e future implementazioni potrebbero introdurre nuovi schemi di autenticazione e controlli. Per aggiornamenti e linee guida, consulta sempre la MCP Specification, il repository ufficiale MCP GitHub e la pagina best practice di sicurezza.
La specifica originale MCP presupponeva che gli sviluppatori scrivessero un proprio server di autenticazione. Questo richiedeva conoscenze di OAuth e vincoli di sicurezza correlati. I server MCP agivano come OAuth 2.0 Authorization Server, gestendo direttamente l’autenticazione utente invece di delegarla a un servizio esterno come Microsoft Entra ID. Dal 26 aprile 2025, un aggiornamento della specifica MCP consente ai server MCP di delegare l’autenticazione utente a un servizio esterno.
- Logica di autorizzazione mal configurata nel server MCP può portare a esposizione di dati sensibili e controlli di accesso applicati in modo errato.
- Furto di token OAuth sul server MCP locale. Se rubato, il token può essere usato per impersonare il server MCP e accedere a risorse e dati del servizio associato al token.
Il token passthrough è esplicitamente vietato nella specifica di autorizzazione perché introduce diversi rischi di sicurezza, tra cui:
Il server MCP o le API downstream potrebbero implementare controlli importanti come rate limiting, validazione delle richieste o monitoraggio del traffico, che dipendono dal pubblico del token o da altri vincoli delle credenziali. Se i client possono ottenere e usare token direttamente con le API downstream senza che il server MCP li convalidi correttamente o assicuri che siano stati emessi per il servizio giusto, aggirano questi controlli.
Il server MCP non sarà in grado di identificare o distinguere i client MCP quando questi chiamano con un token di accesso emesso a monte, che può essere opaco per il server MCP. I log del Resource Server downstream potrebbero mostrare richieste apparentemente provenienti da una fonte diversa con identità differente, anziché dal server MCP che effettivamente inoltra i token. Entrambi i fattori complicano l’indagine sugli incidenti, i controlli e gli audit. Se il server MCP passa token senza convalidarne le affermazioni (ad esempio ruoli, privilegi o audience) o altri metadata, un attore malintenzionato in possesso di un token rubato può usare il server come proxy per l’esfiltrazione dati.
Il Resource Server downstream concede fiducia a entità specifiche, basandosi su assunzioni sull’origine o sul comportamento del client. Rompere questo confine di fiducia può causare problemi imprevisti. Se il token è accettato da più servizi senza una valida convalida, un attaccante che compromette un servizio può usare il token per accedere ad altri servizi connessi.
Anche se un server MCP parte oggi come “proxy puro”, potrebbe dover aggiungere controlli di sicurezza in futuro. Iniziare con una corretta separazione del pubblico del token facilita l’evoluzione del modello di sicurezza.
I server MCP NON DEVONO accettare token che non siano stati esplicitamente emessi per il server MCP
- Revisiona e Rinforza la Logica di Autorizzazione: Controlla attentamente l’implementazione dell’autorizzazione del tuo server MCP per assicurarti che solo utenti e client autorizzati possano accedere a risorse sensibili. Per indicazioni pratiche, consulta Azure API Management Your Auth Gateway For MCP Servers | Microsoft Community Hub e Using Microsoft Entra ID To Authenticate With MCP Servers Via Sessions - Den Delimarsky.
- Applica Pratiche Sicure per i Token: Segui le best practice Microsoft per la validazione e la durata dei token per prevenire usi impropri e ridurre il rischio di replay o furto.
- Proteggi lo Storage dei Token: Conserva sempre i token in modo sicuro, usando crittografia a riposo e in transito. Per consigli sull’implementazione, vedi Use secure token storage and encrypt tokens.
I server MCP potrebbero aver ricevuto permessi eccessivi sul servizio o risorsa a cui accedono. Per esempio, un server MCP parte di un’applicazione AI per le vendite che si collega a un data store aziendale dovrebbe avere accesso limitato ai dati di vendita e non a tutti i file del deposito. Tornando al principio del privilegio minimo (uno dei più antichi principi di sicurezza), nessuna risorsa dovrebbe avere permessi superiori a quelli necessari per svolgere i compiti previsti. L’AI rappresenta una sfida maggiore in questo ambito perché, per garantirne la flessibilità, è difficile definire con precisione i permessi richiesti.
- Concedere permessi eccessivi può permettere esfiltrazione o modifica di dati non autorizzati. Questo può anche rappresentare un problema di privacy se i dati sono informazioni personali identificabili (PII).
- Applica il Principio del Privilegio Minimo: Concedi al server MCP solo i permessi minimi necessari per eseguire i suoi compiti. Revisiona e aggiorna regolarmente questi permessi per assicurarti che non eccedano quanto richiesto. Per guida dettagliata, vedi Secure least-privileged access.
- Usa il Controllo di Accesso Basato sui Ruoli (RBAC): Assegna ruoli al server MCP strettamente limitati a specifiche risorse e azioni, evitando permessi ampi o inutili.
- Monitora e Audita i Permessi: Tieni sotto controllo l’uso dei permessi e audita i log di accesso per rilevare e correggere tempestivamente privilegi eccessivi o inutilizzati.
Server MCP malevoli o compromessi possono introdurre rischi significativi esponendo dati dei clienti o abilitando azioni non intenzionate. Questi rischi sono particolarmente rilevanti nei workload AI e basati su MCP, dove:
- Prompt Injection Attacks: Gli attaccanti inseriscono istruzioni malevole nei prompt o contenuti esterni, inducendo il sistema AI a compiere azioni non volute o a divulgare dati sensibili. Approfondisci: Prompt Injection
- Tool Poisoning: Gli attaccanti manipolano i metadata degli strumenti (come descrizioni o parametri) per influenzare il comportamento dell’AI, potenzialmente aggirando controlli di sicurezza o esfiltrando dati. Dettagli: Tool Poisoning
- Cross-Domain Prompt Injection: Istruzioni malevole nascoste in documenti, pagine web o email, poi processate dall’AI, causando perdita o manipolazione dati.
- Modifica Dinamica degli Strumenti (Rug Pulls): Le definizioni degli strumenti possono essere modificate dopo l’approvazione dell’utente, introducendo comportamenti malevoli senza che l’utente ne sia consapevole.
Queste vulnerabilità sottolineano la necessità di validazione robusta, monitoraggio e controlli di sicurezza quando si integrano server MCP e strumenti nel proprio ambiente. Per approfondimenti, consulta i riferimenti linkati.
Prompt Injection Indiretta (nota anche come cross-domain prompt injection o XPIA) è una vulnerabilità critica nei sistemi AI generativi, inclusi quelli che usano MCP. In questo attacco, istruzioni malevole sono nascoste in contenuti esterni — come documenti, pagine web o email. Quando il sistema AI elabora questi contenuti, può interpretare le istruzioni incorporate come comandi legittimi, causando azioni indesiderate come fuga di dati, generazione di contenuti dannosi o manipolazione delle interazioni utente. Per una spiegazione dettagliata ed esempi reali, vedi Prompt Injection.
Una forma particolarmente pericolosa di questo attacco è il Tool Poisoning. Qui, gli attaccanti iniettano istruzioni malevole nei metadata degli strumenti MCP (come descrizioni o parametri). Poiché i modelli linguistici di grandi dimensioni (LLM) si basano su questi metadata per decidere quali strumenti invocare, descrizioni compromesse possono ingannare il modello inducendolo a chiamate non autorizzate o a eludere controlli di sicurezza. Queste manipolazioni sono spesso invisibili agli utenti finali ma interpretate e eseguite dal sistema AI. Il rischio è amplificato negli ambienti di server MCP ospitati, dove le definizioni degli strumenti possono essere aggiornate dopo l’approvazione dell’utente — uno scenario noto come "rug pull". In questi casi, uno strumento precedentemente sicuro può essere modificato per compiere azioni malevole, come esfiltrazione dati o alterazione del comportamento del sistema, senza che l’utente ne sia a conoscenza. Per maggiori informazioni, vedi Tool Poisoning.
Azioni AI non intenzionate comportano vari rischi di sicurezza, tra cui esfiltrazione dati e violazioni della privacy.
AI Prompt Shields sono una soluzione sviluppata da Microsoft per difendersi sia dagli attacchi diretti che indiretti di prompt injection. Aiutano attraverso:
-
Rilevamento e Filtraggio: Prompt Shields utilizzano algoritmi avanzati di machine learning e natural language processing per individuare e filtrare istruzioni malevole nascoste in contenuti esterni, come documenti, pagine web o email.
-
Spotlighting: Questa tecnica aiuta il sistema AI a distinguere tra istruzioni di sistema valide e input esterni potenzialmente non affidabili. Trasformando il testo in ingresso in modo da renderlo più rilevante per il modello, Spotlighting assicura che l’AI identifichi meglio e ignori le istruzioni malevole.
-
Delimitatori e Datamarking: L’inserimento di delimitatori nel messaggio di sistema indica esplicitamente la posizione del testo in ingresso, aiutando l’AI a riconoscere e separare gli input utente da contenuti esterni potenzialmente dannosi. Il datamarking estende questo concetto usando marcatori speciali per evidenziare i confini tra dati affidabili e non affidabili.
-
Monitoraggio e Aggiornamenti Continui: Microsoft monitora e aggiorna costantemente Prompt Shields per affrontare nuove minacce in evoluzione. Questo approccio proattivo garantisce che le difese rimangano efficaci contro le ultime tecniche di attacco.
-
Integrazione con Azure Content Safety: Prompt Shields fanno parte della suite Azure AI Content Safety, che offre ulteriori strumenti per rilevare tentativi di jailbreak, contenuti dannosi e altri rischi di sicurezza nelle applicazioni AI.
Puoi approfondire AI Prompt Shields nella documentazione Prompt Shields.
La sicurezza della supply chain resta fondamentale nell’era AI, ma il concetto di supply chain si è ampliato. Oltre ai tradizionali pacchetti di codice, è necessario verificare e monitorare rigorosamente tutti i componenti AI, inclusi modelli di base, servizi di embeddings, provider di contesto e API di terze parti. Ognuno di questi può introdurre vulnerabilità o rischi se non gestito correttamente.
Pratiche chiave di sicurezza della supply chain per AI e MCP:
- Verifica tutti i componenti prima dell’integrazione: Non solo librerie open source, ma anche modelli AI, fonti dati e API esterne. Controlla sempre provenienza, licenze e vulnerabilità note.
- Mantieni pipeline di deployment sicure: Usa pipeline CI/CD automatizzate con scansione di sicurezza integrata per individuare problemi precocemente. Assicurati che solo artefatti affidabili vengano distribuiti in produzione.
- Monitora e audita continuamente: Implementa monitoraggio costante di tutte le dipendenze, inclusi modelli e servizi dati, per rilevare nuove vulnerabilità o attacchi alla supply chain.
- Applica il principio del privilegio minimo e controlli di accesso: Limita l’accesso a modelli, dati e servizi solo a quanto necessario per il funzionamento del server MCP.
- Rispondi rapidamente alle minacce: Prevedi processi per patchare o sostituire componenti compromessi e per ruotare segreti o credenziali in caso di violazioni.
GitHub Advanced Security offre funzionalità come scansione di segreti, scansione delle dipendenze e analisi CodeQL. Questi strumenti si integrano con Azure DevOps e Azure Repos per aiutare i team a identificare e mitigare vulnerabilità sia nel codice sia nei componenti AI della supply chain.
Microsoft applica inoltre pratiche estese di sicurezza della supply chain internamente per tutti i suoi prodotti. Scopri di più in The Journey to Secure the Software Supply Chain at Microsoft.
Best practice di sicurezza consolidate per migliorare la postura di sicurezza della tua implementazione
- OWASP Top 10
- OWASP Top 10 per LLM
- GitHub Advanced Security
- Azure DevOps
- Azure Repos
- Il percorso per mettere in sicurezza la supply chain del software in Microsoft
- Accesso con privilegi minimi sicuro (Microsoft)
- Best practice per la validazione e la durata dei token
- Usa uno storage sicuro per i token e crittografa i token (YouTube)
- Azure API Management come gateway di autenticazione per MCP
- Best practice di sicurezza MCP
- Usare Microsoft Entra ID per autenticarsi con i server MCP
Successivo: Capitolo 3: Per iniziare
Disclaimer:
Questo documento è stato tradotto utilizzando il servizio di traduzione automatica Co-op Translator. Pur impegnandoci per l’accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda la traduzione professionale umana. Non siamo responsabili per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione.


