Zabezpečte svoj systém MCP: 11 bežných rizík a ako sa pred nimi chrániť
Táto príručka vysvetľuje bezpečnosť MCP, opisuje 11 bežných rizík pre systémy MCP, od nepriamych útokov typu prompt injection po kompromitáciu lokálneho servera, a praktické kroky, ktoré pomáhajú chrániť sa pred každým z nich.

Riziká MCP vo všeobecnosti spadajú do troch kategórií: manipulácia s LLM, bezpečnosť dát a prístupu a zraniteľnosti infraštruktúry.
Keďže servery MCP často poskytujú prístup k veľkému množstvu interných systémov, potenciálne bezpečnostné riziko je vysoké. Pravdepodobnosť však výrazne závisí od konfigurácie.
Jednotlivci aj podniky môžu podniknúť mnoho krokov na ochranu svojich systémov a bezpečnostné protokoly by mali byť vždy primerané schopnostiam a dátam, ktoré môžu pripojené servery MCP sprístupniť.
Čo je MCP a bezpečnosť MCP?
Model Context Protocol (MCP) je otvorený štandard, ktorý vytvorila spoločnosť Anthropic na prepájanie aplikácií založených na LLM (alebo hostiteľov) s externými systémami.
V systéme MCP sú tri základné komponenty: hostiteľ, klient a server. Hostiteľ, ktorým je často asistent AI, sa cez klienta pripája k externému serveru MCP. Potom môže posielať požiadavky na spustenie externých funkcií (nástrojov), na načítanie dát (zdrojov) alebo promptov, ktoré sa pridajú do kontextového okna LLM.
Bezpečnosť MCP označuje protokoly, ktoré chránia pripojenia a komponenty v systéme MCP. Existuje niekoľko kľúčových výziev, ktoré sú pre MCP jedinečné, napríklad skutočnosť, že aplikácie AI majú často agentické schopnosti a do správ môžu byť vložené škodlivé inštrukcie.
Problémy spôsobujú aj známe hrozby, ktoré nie sú špecifické pre MCP, ako napríklad prompt injection, slabá autentifikácia a nebezpečné integrácie tretích strán. Ako každý počítačový systém, aj MCP sa pri zabezpečení spolieha na kombináciu procedurálnych protokolov, napríklad používania iba dôveryhodných serverov, a technických opatrení, napríklad brán API.
Aké závažné sú hrozby MCP?
MCP sa rýchlo stal populárnou technológiou LLM a používa ho mnoho organizácií aj spotrebiteľských aplikácií. Keďže servery MCP sú programy napísané v kóde, majú zraniteľnosti ako ktorákoľvek iná aplikácia.
Keď však organizácie používajú MCP v kontrolovaných nasadeniach, je vo všeobecnosti bezpečný. Medzi budovaním systému s dôveryhodnými servermi a overenými oprávneniami a pripojením autonómneho agenta k desiatke nepreverených serverov je obrovský rozdiel.
Hrozba č. 1: Nepriamy útok typu prompt injection
Útočník môže umiestniť inštrukcie určené pre LLM do dokumentu, webovej stránky alebo výstupu nástroja, ktorý server MCP vráti. Ak hostiteľ tento obsah pridá do kontextového okna, existuje možnosť, že ho LLM bude považovať za skutočné inštrukcie.
Navyše sa tieto inštrukcie môžu na prvý pohľad javiť ako vhodné. Napríklad načítaný tiket podpory môže LLM nariadiť, aby pred vygenerovaním odpovede exportoval citlivé záznamy o zákazníkoch.
Ako sa chrániť pred nepriamym útokom typu prompt injection
Útoky typu prompt injection by sa zvyčajne mali riešiť na úrovni hostiteľa. Externý obsah by mal byť označený ako nedôveryhodný a požiadavky na citlivé informácie by mali vyžadovať informovaný súhlas človeka zapojeného do procesu. Užitočné môže byť aj bezpečnostné testovanie, pri ktorom sa vyvolávajú škodlivé dokumenty alebo dáta, aby sa zistilo, ako hostiteľ a LLM reagujú.
Hrozba č. 2: Otrávenie nástrojov a útoky typu rug pull
Pri útoku otrávením nástroja sa do popisu alebo schémy nástroja MCP pridá škodlivý kód. To môže ovplyvniť LLM vo fáze objavovania, keď MCP prvýkrát sprístupní dostupné nástroje.
Rug pull je špeciálny typ otrávenia nástrojov, pri ktorom sa zmenia schválené metadáta. Táto forma otrávenia nástrojov môže zmeniť spôsob, akým model používa dôveryhodné nástroje, namiesto toho, aby priamo vyvolala škodlivý nástroj.
Ako sa chrániť pred otrávením nástrojov a útokmi typu rug pull
Hostiteľ by mal pred použitím každého nástroja skontrolovať jeho úplnú definíciu a porovnať ju so zoznamom schválených dôveryhodných nástrojov, čím odhalí akékoľvek zmeny. Kontroly parametrov môžu pomôcť identifikovať potenciálne nebezpečné schopnosti a označiť ich.
Hrozba č. 3: Nadmerné oprávnenia
Používatelia bežne udeľujú serverom MCP a pripojeným LLM (prostredníctvom hostiteľa) viac oprávnení, než je na danú úlohu potrebné. Napríklad oprávnenia na zápis, keď by stačil prístup len na čítanie, alebo úplný prístup k internému systému súborov (napríklad Google Drive).
Takéto rozsiahle hromadenie oprávnení môže zväčšiť dosah iných zraniteľností, napríklad škodlivých volaní nástrojov. Je bežné, že sa oprávnenia „sčítavajú“, keď používatelia v podniku udeľujú privilégiá počas svojej každodennej práce s nástrojmi AI (hromadenie privilégií).
Ako sa chrániť pred nadmernými oprávneniami
Najpriamejším spôsobom ochrany pred týmto problémom je obmedziť oprávnenia a rozsahy OAuth (čítanie, zápis, úplný prístup atď.). Dôležitou súčasťou sú schválenia používateľmi, najmä pri citlivých operáciách, no oprávnenia by sa mali kontrolovať aj na úrovni systému (operačný systém, hostiteľ MCP a server).
Hrozba č. 4: Slabá autentifikácia a autorizácia
Autentifikácia overuje identitu používateľov alebo aplikácií, ktoré sa pripájajú k serveru MCP. Autorizácia určuje, ku ktorým nástrojom a zdrojom majú prístup.
Nesprávne nakonfigurované servery MCP môžu prijímať požiadavky alebo tokeny bez riadneho overenia používateľov alebo bez vynucovania obmedzení prístupu. Okrem toho môžu ukradnuté prihlasovacie údaje umožniť útočníkom získať prístup, ak je overovanie slabé.
Ako sa chrániť pred slabou autentifikáciou a autorizáciou
Autentifikácia založená na OAuth pre vzdialené servery MCP, krátkodobé tokeny a riadenie prístupu na základe rolí (RBAS) sú opatrenia, ktoré pomáhajú zmierniť riziká slabej autorizácie. Prístup na základe rolí je užitočný, pretože bráni používateľom v prístupe k dátam a nástrojom nad rámec ich oprávnení, aj keď samotný server prístup má.
Hrozba č. 5: Únik a zneužitie prihlasovacích údajov
Servery MCP bežne používajú na pripojenie k externým službám prihlasovacie údaje, ako sú kľúče API a prístupové tokeny OAuth. Ak sú odhalené alebo zneužité, útočníci môžu získať prístup k citlivým dátam a funkciám.
Jedným z príkladov je priame odovzdávanie tokenov (token passthrough), pri ktorom server MCP prepošle prístupový token inej službe bez overenia, či je skutočne určený pre prijímajúcu službu. To môže následne viesť k úniku, ak prijímajúca služba nemá dostatočnú ochranu.
Ako sa chrániť pred únikom a zneužitím prihlasovacích údajov
Krátkodobé tokeny s úzkym rozsahom a rotácia prihlasovacích údajov účinne obmedzujú, do akej miery môžu útočníci uniknuté dáta zneužiť. Kľúče API a prihlasovacie údaje by sa mali vždy bezpečne uchovávať pomocou správcu tajných kľúčov.
Hrozba č. 6: Útoky zmäteného zástupcu (confused deputy)
Útok zmäteného zástupcu nastáva, keď útočník oklame dôveryhodnú aplikáciu, aby využila svoje oprávnenia na vykonanie akcie, ktorú legitímny používateľ neautorizoval. V tomto prípade je zástupcom server MCP.
Útočník zneužije zraniteľnosť servera MCP (napríklad slabé overovanie OAuth) na spustenie škodlivého procesu, ako je volanie nástroja alebo načítanie dát.
Ako sa chrániť pred útokmi zmäteného zástupcu
Overovanie autorizácie, pri ktorom sa pri každom volaní nástroja overí, že patrí konkrétnemu používateľovi, pomáha obmedziť útoky zmäteného zástupcu. Okrem toho by citlivé akcie, napríklad exporty dát, mali vyžadovať výslovnú autorizáciu.
Hrozba č. 7: Škodlivé servery a kompromitované závislosti
Servery MCP môžu obsahovať škodlivý kód (v podstate ide o externé programy) alebo sa spoliehať na kompromitované závislosti, napríklad knižnice tretích strán. Ide o problém dodávateľského reťazca softvéru, nie o problém jedinečný pre MCP.
K tomu môže jednoducho dôjsť napríklad vtedy, keď útočník šíri integráciu, ktorá sa javí ako legitímna. Po nastavení môže kradnúť a opätovne používať prihlasovacie údaje, pristupovať k citlivým dátam a vykonávať neautorizované operácie.
Ako sa chrániť pred škodlivými servermi a kompromitovanými závislosťami
Servery MCP inštalujte iba z dôveryhodných a preverených zdrojov. Ak je to možné, skontrolujte ich kód a vždy preverte všetky externé závislosti. Zabezpečte, aby sa servery pravidelne aktualizovali a opravovali.
Hrozba č. 8: Falšovanie požiadaviek na strane servera (SSRF)
Falšovanie požiadaviek na strane servera (SSRF) nastáva, keď útočník oklame server MCP, aby odosielal sieťové požiadavky na interné adresy, ku ktorým používateľ nemal v úmysle pristupovať.
Môže sa to stať, keď server MCP sprístupní nástroj, ktorý načítava informácie z adresy URL. Ak útočník dokáže ovplyvniť parameter URL, môže ho zmeniť na požadovanú sieťovú adresu, napríklad interné API alebo cloudovú službu. To môže viesť k načítaniu citlivých dát a ich potenciálnemu sprístupneniu
Ako sa chrániť pred falšovaním požiadaviek na strane servera (SSRF)
Servery MCP by mali vždy overovať adresy URL, blokovať prístup k obmedzeným interným sieťovým adresám a zabraňovať odchádzajúcemu sieťovému prístupu. Tento protokol by mali dodržiavať aj presmerovania.
Hrozba č. 9: Únos relácie
Pri únose relácie útočník prevezme kontrolu nad aktívnym spojením medzi klientom MCP a serverom.
Útočník môže napríklad ukradnúť identifikátor relácie zo zle zabezpečenej aplikácie MCP (napr. hostiteľa alebo servera). Ak server MCP tento identifikátor prijme, útočník môže potenciálne volať nástroje s legitímnymi oprávneniami používateľa.
Ako sa chrániť pred
Riziko únosu relácie možno znížiť prísnym overovaním identity vo všetkých aplikáciách v systéme MCP. Šifrovanie medzi klientmi MCP a vzdialenými servermi je tiež nevyhnutné, aby sa zabránilo odhaleniu identifikátorov relácie.
Hrozba č. 10: Útoky typu mix-up
Pri útoku typu mix-up útočník oklame klienta MCP, aby odoslal autorizačný kód škodlivému autorizačnému serveru, ktorý sa nachádza medzi klientom a serverom MCP. Autorizačný server je aplikácia, ktorá vydáva prístupové tokeny OAuth po overení, že požadovaný prístup je autorizovaný.
Ak sa hostiteľ MCP pripája k viacerým službám, z ktorých každá používa iný autorizačný server, útočník môže potenciálne jeden z nich ovládnuť (napríklad registráciou škodlivej služby) a spôsobiť, že klient odošle autorizačný kód vydaný legitímnym serverom škodlivému serveru. Táto zámena môže útočníkovi umožniť vydávať sa za autorizovanú aplikáciu a získať prístup k chráneným službám.
Ako sa chrániť pred útokmi typu mix-up
Klienti MCP by mali počas celého procesu OAuth overovať identitu autorizačného servera. Konkrétne by mali porovnať identifikátor vydavateľa servera (iss) s očakávanou identitou a nezhody odmietnuť.
Hrozba č. 11: Kompromitácia lokálneho servera MCP
Mnoho serverov MCP beží na lokálnom počítači používateľa. Používateľ si server môže nainštalovať od tretej strany alebo si ho zostaviť sám. Ak útočník dokáže tento lokálny server MCP kompromitovať, môže potenciálne získať prístup k veľkej časti lokálneho systému.
Útočník môže získať prístup rôznymi spôsobmi. Môže šíriť škodlivý server maskovaný ako legitímna integrácia, upraviť konfiguráciu hostiteľa MCP tak, aby vydal škodlivý príkaz, alebo pristúpiť k serveru MCP bežiacemu v prostredí s nedostatočnými bezpečnostnými opatreniami, napríklad prostredníctvom DNS rebindingu, ktorý oklame prehliadač, aby odosielal požiadavky na službu na localhoste.
Ako sa chrániť pred kompromitáciou lokálneho servera MCP
Pri používaní lokálnych serverov MCP je dôležitá izolácia v sandboxe a prísne protokoly súhlasu. Servery MCP by sa mali inštalovať výhradne od dôveryhodných poskytovateľov a oprávnenia operačného systému by mali obmedzovať, ku ktorým adresárom majú prístup.
Zraniteľnosti MCP sú často staré hrozby v novom šate
Zraniteľnosti MCP často vznikajú novým uplatnením známych rizík a metód útokov. MCP prináša útočníkom nové spôsoby, ako tieto zraniteľnosti zneužiť, prostredníctvom interakcií medzi LLM, servermi MCP a externými službami.
Hrozby špecifické pre MCP samozrejme existujú. Treba však mať na pamäti, že štandardné bezpečnostné protokoly, ako je vynucovanie prísnej autorizácie, používanie dôveryhodných poskytovateľov a ochrana pred útokmi typu prompt injection, výrazne prispejú k ochrane akejkoľvek implementácie MCP.