Securitatea Serverelor MCP Remote (SSE, OAuth & Sandbox) în Model Context Protocol (MCP)

Securitate și Autentificare MCP Specification 2024-11+

Bune practici de protecție pentru serverele MCP expuse pe rețea: autentificare OAuth 2.1, izolare Docker fără drepturi root și protecție împotriva atacurilor de Path Traversal.

Specificație & cod MCP
Arhitectură Zero-Trust pentru MCP Peste Rețea

Dacă serverele MCP locale (rulate prin `stdio`) folosesc izolarea de proces a sistemului de operare, trecerea la servere MCP Remote accesibile prin internet sau VPN (prin transport SSE / HTTP) introduce riscuri majore de securitate. Un server MCP vulnerabil poate oferi atacatorilor o poartă de acces directă în bazele de date sau fișierele interne ale companiei.

Arhitectura de securitate pentru serverele MCP Remote se bazează pe trei piloni critici: Autentificare & Autorizare OAuth 2.1 cu tokeni scoped per resursă, Containere Sandbox fără privilegii root cu sisteme de fișiere read-only, și Filtrare Strictă a Parametrilor (Input Sanitization) împotriva atacurilor de tip directory traversal și injection.

De asemenea, clienții MCP trebuie să aplice principiul privilegiului minim (PoLP), solicitând aprobarea explicită a utilizatorului pentru orice unealtă care efectuează operații de ștergere, scriere pe disc sau transfer extern de fonduri.

Sintaxă, opțiuni și concepte cheie

Opțiune / Concept Descriere practică
OAuth 2.1 Bearer Token Antetul de autorizare ‘Authorization: Bearer ‘ cerut pe endpoint-ul `/sse`.
Read-Only Filesystem Root Rularea containerului Docker cu opțiunea `–read-only` pentru prevenirea instalării de malware.
Path Traversal Guard Validarea canonică a oricărei căi de fișier (`realpath`) pentru a preveni atacurile de tip `../../etc/passwd`.
Tool Scope Boundaries Limitarea drepturilor per cheie API: instrumentele de căutare au permisiuni exclusive de ‘read’.
CORS & Origin Validation Verificarea strictă a domeniilor web care au permisiunea de a deschide canale SSE.

Exemple practice și configurații

Exemplul 1: Rularea unui server MCP Remote într-un container securizat Docker

Comanda optimă de lansare cu izolare strictă a resurselor și fără acces root.

docker run -d \
  --name mcp-secure-server \
  --user 10001:10001 \
  --read-only \
  --cap-drop ALL \
  --security-opt no-new-privileges:true \
  -v /var/mcp/data:/data:ro \
  -p 8080:8080 \
  -e MCP_AUTH_TOKEN="secret-corp-token-xyz" \
  my-org/mcp-database-server:latest

Rezultat & Impact

Serverul procesează cereri fără acces la sistemul de fișiere gazdă și fără drepturi de escaladare.

Greșeli frecvente și bune practici

  • Expunerea unui server MCP cu unelte de execuție comenzi bash direct în internet fără VPN și fără autentificare mutuală TLS (mTLS).
  • Încrederea oarbă în căile trimise de LLM fără sanitizare, permițând citirea fișierelor de configurare sensibile ale serverului.

Ghiduri și noțiuni înrudite