Securizați-vă sistemul MCP: 11 riscuri frecvente și cum vă protejați împotriva lor
Acest ghid explică securitatea MCP, prezentând 11 riscuri frecvente pentru sistemele MCP, de la injectarea indirectă de prompturi la compromiterea serverelor locale, precum și pașii practici care ajută la protejarea împotriva fiecăruia dintre ele.

Riscurile MCP se încadrează, în linii mari, în trei categorii: manipularea LLM-urilor, securitatea datelor și a accesului și vulnerabilitățile infrastructurii.
Deoarece serverele MCP oferă adesea acces la o gamă largă de sisteme interne, riscul potențial de securitate este ridicat. Totuși, probabilitatea depinde în mare măsură de configurare.
Există mulți pași pe care persoanele și companiile îi pot face pentru a se asigura că sistemele lor sunt protejate, iar protocoalele ar trebui să fie întotdeauna proporționale cu capabilitățile și datele pe care le-ar putea expune serverele MCP conectate.
Ce este MCP și ce înseamnă securitatea MCP?
Model Context Protocol (MCP) este un standard deschis creat de Anthropic pentru conectarea aplicațiilor bazate pe LLM (sau a gazdelor) la sisteme externe.
Un sistem MCP are trei componente de bază: gazda, clientul și serverul. Gazda, care este adesea un asistent AI, se conectează la un server MCP extern prin intermediul unui client. Apoi poate trimite cereri pentru a rula funcționalități externe (instrumente) sau pentru a prelua date (resurse) ori prompturi care să fie adăugate în fereastra de context a LLM-ului.
Securitatea MCP se referă la protocoalele care protejează conexiunile și componentele unui sistem MCP. Există mai multe provocări-cheie specifice MCP, inclusiv faptul că aplicațiile AI au adesea capabilități agentice, iar în mesaje pot fi încorporate instrucțiuni rău intenționate.
Problemele cunoscute care nu sunt specifice MCP, precum injectarea de prompturi, autentificarea slabă și integrările nesigure cu terți, reprezintă și ele un risc. Ca orice sistem informatic, MCP se bazează pentru protecție pe o combinație de protocoale procedurale, cum ar fi utilizarea exclusivă a serverelor de încredere, și controale tehnice, cum ar fi gateway-urile API.
Cât de grave sunt amenințările MCP?
MCP a devenit rapid o tehnologie LLM populară și este folosit de multe organizații și aplicații destinate consumatorilor. Deoarece serverele MCP sunt programe scrise în cod, au vulnerabilități ca orice altă aplicație.
Totuși, atunci când organizațiile folosesc MCP în implementări controlate, acesta este în general sigur. Există o diferență semnificativă între construirea unui sistem cu servere de încredere și permisiuni verificate și conectarea unui agent autonom la o duzină de servere neverificate.
Amenințarea nr. 1: injectarea indirectă de prompturi
Un atacator poate plasa instrucțiuni destinate LLM-ului într-un document, o pagină web sau un rezultat al unui instrument returnat de un server MCP. Dacă gazda adaugă acest material în fereastra de context, există posibilitatea ca LLM-ul să îl confunde cu instrucțiuni autentice.
Mai mult, aceste instrucțiuni pot părea adecvate la prima vedere. De exemplu, un tichet de asistență preluat ar putea cere LLM-ului să exporte înregistrări sensibile ale clienților înainte de a genera un răspuns.
Cum vă protejați împotriva injectării indirecte de prompturi
Injectările de prompturi ar trebui, de regulă, gestionate la nivelul gazdei. Conținutul extern ar trebui etichetat ca nesigur, iar cererile de informații sensibile ar trebui să necesite aprobarea informată a unui om implicat în proces. Testele de securitate care presupun apelarea unor documente sau date rău intenționate, pentru a vedea cum reacționează gazda și LLM-ul, pot fi, de asemenea, utile.
Amenințarea nr. 2: otrăvirea instrumentelor și atacurile de tip rug pull
Într-un atac de otrăvire a instrumentelor, în descrierea sau schema unui instrument MCP este adăugat cod rău intenționat. Acesta poate influența LLM-ul în faza de descoperire, când MCP expune pentru prima dată instrumentele disponibile.
Un rug pull este un tip special de otrăvire a instrumentelor în care sunt modificate metadatele aprobate. Această formă de otrăvire a instrumentelor poate schimba modul în care un model folosește instrumentele de încredere, în loc să invoce direct un instrument rău intenționat.
Cum vă protejați împotriva otrăvirii instrumentelor și a atacurilor de tip rug pull
Gazda ar trebui să inspecteze definiția completă a fiecărui instrument înainte de a-l folosi și să o compare cu o listă de instrumente de încredere aprobate, detectând astfel orice modificare. Verificările parametrilor pot ajuta la identificarea și semnalarea potențialelor capabilități periculoase.
Amenințarea nr. 3: permisiuni excesive
Este frecvent ca utilizatorii să acorde serverelor MCP și LLM-urilor conectate (prin intermediul gazdei) mai multe permisiuni decât sunt necesare pentru o sarcină. De exemplu, permisiuni de scriere când ar fi suficient accesul doar pentru citire sau acces complet la un sistem intern de fișiere (cum ar fi Google Drive).
Această extindere treptată a permisiunilor poate mări raza de impact a altor vulnerabilități, cum ar fi apelurile rău intenționate către instrumente. Este frecvent ca permisiunile să „se adune” pe măsură ce utilizatorii acordă privilegii în cursul activității zilnice cu instrumente AI într-o companie (acumularea privilegiilor).
Cum vă protejați împotriva permisiunilor excesive
Cea mai directă modalitate de a vă proteja împotriva acestei probleme este restricționarea permisiunilor și a domeniilor OAuth (citire, scriere, acces complet etc.). Aprobările utilizatorilor, în special pentru operațiunile sensibile, sunt o parte importantă a acestui proces, dar permisiunile ar trebui controlate și la nivel de sistem (sistemul de operare, gazda MCP și serverul).
Amenințarea nr. 4: autentificarea și autorizarea slabe
Autentificarea verifică identitatea utilizatorilor sau a aplicațiilor care se conectează la un server MCP. Autorizarea stabilește ce instrumente și resurse pot accesa aceștia.
Serverele MCP configurate necorespunzător pot accepta cereri sau tokenuri fără a autentifica corect utilizatorii sau fără a aplica restricțiile de acces. În plus, dacă validarea este slabă, credențialele furate pot permite actorilor rău intenționați să obțină acces.
Cum vă protejați împotriva autentificării și autorizării slabe
Autentificarea bazată pe OAuth pentru serverele MCP la distanță, tokenurile cu durată scurtă de viață și controlul accesului bazat pe roluri (RBAS) sunt toate măsuri care ajută la atenuarea riscurilor autorizării slabe. Accesul bazat pe roluri este util deoarece îi împiedică pe utilizatori să acceseze date și instrumente dincolo de permisiunile lor, chiar dacă serverul însuși are acces.
Amenințarea nr. 5: scurgerea și utilizarea abuzivă a credențialelor
Serverele MCP folosesc în mod curent credențiale precum cheile API și tokenurile de acces OAuth pentru a se conecta la servicii externe. Dacă acestea sunt expuse sau folosite abuziv, atacatorii pot obține acces la date și funcționalități sensibile.
Un exemplu este transmiterea directă a tokenurilor (token passthrough), prin care un server MCP redirecționează un token de acces către un alt serviciu fără a verifica dacă acesta este într-adevăr destinat serviciului receptor. La rândul său, acest lucru poate duce la scurgeri de date dacă serviciul receptor are protecții inadecvate.
Cum vă protejați împotriva scurgerii și utilizării abuzive a credențialelor
Tokenurile cu durată scurtă de viață și domeniu restrâns, precum și rotirea credențialelor sunt eficiente pentru a limita măsura în care datele scurse pot fi folosite de actori rău intenționați. Cheile API și credențialele ar trebui stocate întotdeauna în siguranță, folosind un manager de secrete.
Amenințarea nr. 6: atacurile de tip confused deputy
Un atac de tip confused deputy are loc atunci când un atacator păcălește o aplicație de încredere să își folosească permisiunile pentru a efectua o acțiune neautorizată de un utilizator legitim. În acest caz, serverul MCP este „adjunctul” (deputy).
Atacatorul va exploata o vulnerabilitate a serverului MCP (cum ar fi verificările OAuth slabe) pentru a executa un proces rău intenționat, cum ar fi un apel de instrument sau o preluare de date.
Cum vă protejați împotriva atacurilor de tip confused deputy
Validarea autorizării, prin care se verifică dacă fiecare apel de instrument aparține unui anumit utilizator, ajută la limitarea atacurilor de tip confused deputy. În plus, acțiunile sensibile, precum exporturile de date, ar trebui să necesite autorizare explicită.
Amenințarea nr. 7: serverele rău intenționate și dependențele compromise
Serverele MCP pot conține cod rău intenționat (sunt, în esență, programe externe) sau se pot baza pe dependențe compromise, cum ar fi bibliotecile terțe. Aceasta este o problemă a lanțului de aprovizionare software, nu o problemă specifică MCP.
Un mod simplu în care s-ar putea întâmpla acest lucru este ca un atacator să distribuie o integrare care pare legitimă. Odată configurată, aceasta poate fura și reutiliza credențiale, poate accesa date sensibile și poate executa operațiuni neautorizate.
Cum vă protejați împotriva serverelor rău intenționate și a dependențelor compromise
Instalați servere MCP numai din surse de încredere și verificate. Dacă este posibil, examinați-le codul și verificați întotdeauna toate dependențele externe. Asigurați-vă că serverele sunt actualizate și corectate periodic.
Amenințarea nr. 8: falsificarea cererilor pe partea de server (SSRF)
Falsificarea cererilor pe partea de server (SSRF) are loc atunci când un atacator păcălește un server MCP să trimită cereri de rețea către adrese interne pe care utilizatorul nu intenționa să le acceseze.
Acest lucru se poate întâmpla atunci când un server MCP expune un instrument care preia informații de la un URL. Dacă un atacator poate influența parametrul URL, îl poate înlocui cu adresa de rețea dorită, cum ar fi un API intern sau un serviciu cloud. Acest lucru poate duce la preluarea unor date sensibile și, potențial, la expunerea acestora
Cum vă protejați împotriva falsificării cererilor pe partea de server (SSRF)
Serverele MCP ar trebui să valideze întotdeauna URL-urile, să blocheze accesul la adresele de rețea interne restricționate și să împiedice accesul la rețea spre exterior. Și redirecționările ar trebui să respecte acest protocol.
Amenințarea nr. 9: deturnarea sesiunii
Deturnarea sesiunii presupune preluarea de către un atacator a controlului asupra unei conexiuni active dintre un client MCP și un server.
De exemplu, atacatorul ar putea fura un identificator de sesiune dintr-o aplicație MCP securizată necorespunzător (de exemplu, o gazdă sau un server). Dacă serverul MCP acceptă acest identificator, atacatorul poate apela instrumente cu permisiunile legitime ale utilizatorului.
Cum vă protejați împotriva
Riscul de deturnare a sesiunii poate fi redus printr-o verificare strictă a identității în toate aplicațiile dintr-un sistem MCP. Criptarea comunicațiilor dintre clienții MCP și serverele la distanță este, de asemenea, esențială pentru a împiedica descoperirea identificatorilor de sesiune.
Amenințarea nr. 10: atacurile de tip mix-up
Într-un atac de tip mix-up, atacatorul păcălește un client MCP să trimită un cod de autorizare către un server de autorizare rău intenționat, aflat între client și serverul MCP. Un server de autorizare este o aplicație care emite tokenuri de acces OAuth după ce verifică dacă accesul solicitat este autorizat.
Dacă o gazdă MCP se conectează la mai multe servicii, fiecare folosind un alt server de autorizare, un atacator poate prelua controlul asupra unuia dintre ele (de exemplu, prin înregistrarea unui serviciu rău intenționat) și poate determina clientul să trimită serverului rău intenționat un cod de autorizare emis de un server legitim. Această confuzie îi poate permite atacatorului să uzurpe identitatea aplicației autorizate și să obțină acces la servicii protejate.
Cum vă protejați împotriva atacurilor de tip mix-up
Clienții MCP ar trebui să verifice identitatea serverului de autorizare pe tot parcursul procesului OAuth. Mai exact, ar trebui să compare identificatorul emitentului serverului (iss) cu identitatea așteptată și să respingă nepotrivirile.
Amenințarea nr. 11: compromiterea serverului MCP local
Multe servere MCP rulează pe calculatorul local al utilizatorului. Acesta poate instala serverul de la un terț sau îl poate construi singur. Dacă un atacator reușește să compromită acest server MCP local, poate obține acces la părți importante ale sistemului local.
Există diverse moduri în care un atacator poate obține acces. Acesta poate distribui un server rău intenționat deghizat într-o integrare legitimă, poate modifica configurația unei gazde MCP astfel încât aceasta să emită o comandă rău intenționată sau poate accesa un server MCP care rulează într-un mediu cu controale de securitate insuficiente, de exemplu prin DNS rebinding, o tehnică ce păcălește un browser să trimită cereri către un serviciu localhost.
Cum vă protejați împotriva compromiterii serverului MCP local
Izolarea în sandbox și protocoalele stricte de consimțământ sunt importante atunci când folosiți servere MCP locale. Serverele MCP ar trebui instalate numai de la furnizori de încredere, iar permisiunile sistemului de operare ar trebui să restricționeze directoarele pe care acestea le pot accesa.
Vulnerabilitățile MCP sunt adesea amenințări vechi într-o haină nouă
Vulnerabilitățile MCP provin adesea din aplicarea în contexte noi a unor riscuri și metode de atac deja cunoscute. MCP introduce noi modalități prin care atacatorii pot exploata aceste vulnerabilități, prin interacțiunile dintre LLM-uri, serverele MCP și serviciile externe.
Desigur, există și amenințări specifice MCP. Totuși, merită reținut că protocoalele de securitate standard, cum ar fi impunerea unei autorizări stricte, folosirea furnizorilor de încredere și protecția împotriva injectărilor de prompturi, contribuie semnificativ la protejarea oricărei implementări MCP.