mardi 22 avril 2025

Décrypter MCP, de la théorie à la pratique et sa sécurité


J'adore découvrir les nouveautés qui tournent autour du développement .NET

En 2000, je vous parlais déjà de .NET avant sa sortie officielle, il y a déjà 7 ans, je vous faisais découvrir Blazor et en 2023 on explorait les premières versions de Semantic Kernel.
Cette année, mon petit doigt me dit que les 3 lettres MCP vont être au coeur des discussions.
Dans cet épisode, je vous présente ses principes fondamentaux, la théorie et la mise en pratique avec des exemples concrets qui vous permettrons de mieux comprendre cette hype autour de MCP.
devdevdev .NET épisode 68, MCP au coeur de l'IA, c'est parti !!!

Anthony Simon Staff developer software developer chez Worklip D. net expert technical leader et blog et blogger sur son blog post qui est anthonysimilimon.com et également Laurent Kempé Bonjour Salut tout le monde Microsoft MVP depuis 2003.

Les participants

Les liens de l’épisode

Le code source utilisé pour les demos : https://github.com/RichardC64/MCP-Playgrounds

Le serveur MCP client Microsoft Graph : https://github.com/merill/lokka

Le code source du serveur MCP de Github : https://github.com/github/github-mcp-server

Vous voulez consommer des serveurs MCP. Voici des sites qui les référencent :

Les articles de Laurent sur le sujet :

décrypter MCP, de la théorie à la pratique – devdevdev.net



L’épisode sur Youtube

Pensez à vous abonner à notre 📺 chaine Youtube 📺



Voici un résumé en 10 points avec timestamps du podcast "Décrypter MCP, de la théorie à la pratique" :


🔹 Résumé en 10 points avec timestamps

  1. [00:01] Introduction au sujet et historique
    L’hôte rappelle son intérêt de longue date pour les nouveautés dans le développement .NET, et annonce que le protocole MCP (Modèle Contexte Protocole) sera central en 2025.

  2. [01:18] Présentation des invités

    • Anthony Simon (developer chez Worklip, blogueur)

    • Laurent Kempé (Microsoft MVP, architecte chez Inobo)

  3. [02:38] Définition de MCP
    MCP, open-source depuis novembre 2024 par Anthropic, vise à améliorer l'interaction entre IA et outils externes avec une approche normalisée, contrairement aux API REST traditionnelles.

  4. [05:18] Avantages du protocole MCP
    Il permet une extensibilité plug-and-play et une interopérabilité plus simple entre les IA et les services/outils, en centralisant la logique dans un protocole commun.

  5. [14:28] Analogie avec l’USB-C
    MCP est décrit comme le "USB-C des LLM" : une interface universelle entre l’IA et les outils, où le client expose son contexte au serveur, et non l’inverse.

  6. [21:24] Types de transport supportés
    MCP fonctionne via STDIO (in-process) ou streamable HTTP. La sécurité est cruciale, car certaines configurations permettent au serveur d'accéder au disque local, posant des risques.

  7. [30:10] Intégration dans les projets .NET
    L’ajout de MCPServerTool permet d'exposer des méthodes à l’IA comme des outils (ex : un outil "écho"). Très peu de code est nécessaire pour l’intégration.

  8. [42:08] Exemple concret avec Visual Studio Code
    Une démo montre un client qui appelle un serveur MCP avec un tool "Echo", l’IA traite la requête et interagit de manière fluide avec l’environnement de développement.

  9. [57:00] Benchmark et performance des LLMs
    Le podcast évoque le Berkeley Function Calling Leaderboard pour évaluer la compatibilité des LLM avec les tools MCP. Exemple d’utilisation de Ollama pour gérer les costs.

  10. [1:12:30] Perspectives et sécurité
    Discussion autour d’un potentiel marketplace de serveurs MCP, des problématiques d’authentification et de la sécurité, notamment en environnement Docker/cloud.


Les aspects sécurités :

Voici une extraction des passages liés à la sécurité dans la transcription du podcast "Décrypter MCP, de la théorie à la pratique" :


🔐 Sujets liés à la sécurité dans le contexte du protocole MCP :

  1. Accès au système de fichiers par le serveur MCP (25:47) :

    "Un autre serveur MCP qui s'appelle F system [...] permet de voir ce qu’il y a sur ton disque dur."
    ➤ Cela soulève des enjeux importants de sécurité quant à la protection des données locales accessibles par les outils distants.

  2. Exécution avec droits administrateur (23:11) :

    "Si ton application est lancée en tant qu’admin, ton NPX est admin... et là, c’est l’intelligence universelle qui contrôle ta machine."
    Risque élevé si le LLM ou le serveur MCP peut exécuter des outils avec les privilèges administrateur. Cela pourrait exposer tout le système.

  3. Utilisation de STDIO vs Docker et notion de sandboxing (21:24) :

    "Quand tu lances un container Docker et que tu échanges via STDIO, c’est pas le même process..."
    ➤ Discussion sur la séparation des processus : isolation des outils, sécurité du runtime, confinement via conteneurs.

  4. Authentification pour accéder à des services comme Jira (1:16:42) :

    "Pour accéder à Jira, il faut fournir une certaine forme d’authentification."
    ➤ Nécessité de protéger les identifiants, de limiter les accès, et d’implémenter une gestion fine des permissions.

  5. Omission volontaire du volet sécurité (1:16:59) :

    "On n’a pas finalement parlé de la sécurité."
    ➤ Reconnaissance par les intervenants que la sécurité n’a pas été abordée en détail, ce qui souligne son importance potentiellement sous-estimée.


Voici une extraction des enjeux de sécurité liés au protocole MCP (Machine Communication Protocol).

 Ceci en lien avec l’intégration d’assistants IA et la communication avec des systèmes d'information :


🔐 Sujets de sécurité concernant le protocole MCP

1. Authentification et contrôle d’accès

  • Risque : accès non autorisé à des systèmes critiques via MCP.

  • Mesures :

    • Intégration de mécanismes d’authentification forte (MFA, certificats).

    • Définition fine des rôles et permissions (RBAC/ABAC).

    • Journaux d’audit détaillés.

2. Chiffrement des communications

  • Risque : interception ou manipulation des données en transit (attaque Man-in-the-Middle).

  • Mesures :

    • Utilisation de TLS/SSL pour toutes les communications.

    • Vérification d’intégrité des messages échangés.

3. Validation des données échangées

  • Risque : injection de commandes, données corrompues ou malveillantes.

  • Mesures :

    • Sanitation et validation stricte des entrées/sorties.

    • Détection d’anomalies ou de comportements suspects.

4. Protection contre les attaques par déni de service (DoS/DDoS)

  • Risque : surcharge du système via des requêtes excessives.

  • Mesures :

    • Limitation du nombre de requêtes par source (rate limiting).

    • Mécanismes de détection et mitigation des attaques réseau.

5. Surveillance et journalisation

  • Risque : compromission silencieuse sans traçabilité.

  • Mesures :

    • Logs sécurisés et horodatés des échanges MCP.

    • Intégration avec des systèmes SIEM pour une supervision centralisée.

6. Mise à jour et gestion des vulnérabilités

  • Risque : exploitation de failles connues dans les implémentations MCP.

  • Mesures :

    • Politique de mise à jour régulière des modules MCP.

    • Tests de pénétration et audits de sécurité périodiques.

7. Séparation des environnements et cloisonnement

  • Risque : propagation d’une compromission d’un système à un autre.

  • Mesures :

    • Isolation réseau des services critiques.

    • Utilisation de conteneurs ou de machines virtuelles avec MCP restreint.

8. Sécurité de l’IA elle-même

  • Risque : manipulation de l’IA via MCP (prompt injection, fuzzing, red teaming).

  • Mesures :

    • Filtrage des requêtes IA.

    • Surveillance du comportement de l’IA (outputs inattendus ou dangereux).


https://1drv.ms/p/c/c18447817ccb3384/EYQzy3yBR4QggMFLWAYAAAABLB6gcfn7YUbK0QyNrZovDQ?e=f3RaAQ  MISTRAL et MCP

https://1drv.ms/p/c/c18447817ccb3384/EfjDxtoWsexBse2JnqfZX-UBEOdvVcODox-FNWj2CrUVjQ?e=U1xdX0   PPT  Sécurité du Protocole MCP


--- 

 Pierre Erol GIRAUDY 





Aucun commentaire:

Enregistrer un commentaire

Décrypter MCP, de la théorie à la pratique et sa sécurité

J'adore découvrir les nouveautés qui tournent autour du développement .NET En 2000, je vous parlais déjà de .NET avant sa sortie officie...