Kaitske oma MCP-süsteemi: 11 levinud riski ja kuidas nende eest kaitsta
See juhend selgitab MCP turvalisust, käsitledes 11 levinud MCP-süsteemide riski alates kaudsest viibasüstist kuni kohaliku serveri kompromiteerimiseni, ning praktilisi samme, mis aitavad igaühe eest kaitsta.

MCP riskid jagunevad laias laastus kolme kategooriasse: LLM-ide manipuleerimine, andmete ja juurdepääsu turvalisus ning taristu haavatavused.
Kuna MCP-serverid pakuvad sageli juurdepääsu paljudele sisesüsteemidele, on võimalik turvarisk suur. Selle tõenäosus sõltub aga suuresti seadistusest.
Üksikisikud ja ettevõtted saavad oma süsteemide kaitsmiseks astuda mitmeid samme ning kaitsemeetmed peaksid alati olema vastavuses võimekuste ja andmetega, mida ühendatud MCP-serverid võivad paljastada.
Mis on MCP ja MCP turvalisus?
Model Context Protocol (MCP) on Anthropicu loodud avatud standard LLM-põhiste rakenduste (ehk hostide) ühendamiseks väliste süsteemidega.
MCP-süsteemil on kolm põhikomponenti: host, klient ja server. Host, milleks on sageli tehisintellektil põhinev assistent, ühendub kliendi kaudu välise MCP-serveriga. Seejärel saab see saata päringuid välise funktsionaalsuse (tööriistade) käivitamiseks või andmete (ressursside) või viipade toomiseks, et lisada need LLM-i kontekstiaknasse.
MCP turvalisus tähendab protokolle, mis kaitsevad MCP-süsteemi ühendusi ja komponente. MCP-l on mitu ainuomast põhiprobleemi, sealhulgas asjaolu, et tehisintellektirakendustel on sageli agentsed võimekused ja sõnumitesse võidakse peita pahatahtlikke juhiseid.
Probleeme põhjustavad ka juba tuntud ohud, mis ei ole MCP-spetsiifilised, näiteks viibasüst, nõrk autentimine ja ebaturvalised kolmandate osapoolte integratsioonid. Nagu iga arvutisüsteem, tugineb ka MCP kaitsmisel protseduuriliste protokollide (näiteks ainult usaldusväärsete serverite kasutamine) ja tehniliste kontrollimeetmete (näiteks API-lüüsid) kombinatsioonile.
Kui tõsised on MCP ohud?
MCP-st on kiiresti saanud populaarne LLM-tehnoloogia ning seda kasutavad paljud organisatsioonid ja tarbijatele suunatud rakendused. Kuna MCP-serverid on koodis kirjutatud programmid, on neil haavatavusi nagu igal teisel rakendusel.
Kui organisatsioonid kasutavad MCP-d aga kontrollitud juurutustes, on see üldiselt turvaline. Usaldusväärsete serverite ja kontrollitud õigustega süsteemi ehitamine erineb märkimisväärselt sellest, kui autonoomne agent ühendatakse tosina kontrollimata serveriga.
Oht nr 1: kaudne viibasüst
Ründaja võib paigutada LLM-ile suunatud juhised dokumenti, veebilehele või tööriista väljundisse, mille MCP-server tagastab. Kui host lisab selle materjali kontekstiaknasse, on võimalik, et LLM peab seda ekslikult tõelisteks juhisteks.
Pealegi võivad need juhised esmapilgul tunduda asjakohased. Näiteks võib toodud tugipilet käskida LLM-il enne vastuse genereerimist eksportida tundlikud kliendiandmed.
Kuidas kaitsta end kaudse viibasüsti eest
Viibasüstidega tuleks tavaliselt tegeleda hosti tasandil. Väline sisu tuleks märgistada mitteusaldusväärseks ning tundliku teabe päringud peaksid nõudma protsessi kaasatud inimese teadlikku heakskiitu. Abi võib olla ka turvatestimisest, mille käigus kutsutakse välja pahatahtlikke dokumente või andmeid, et näha, kuidas host ja LLM reageerivad.
Oht nr 2: tööriistade mürgitamine ja vaibatõmbed (rug pull)
Tööriistade mürgitamise rünnakus lisatakse MCP tööriista kirjeldusse või skeemi pahatahtlikku koodi. See võib mõjutada LLM-i avastamisetapis, kui MCP teeb saadaolevad tööriistad esimest korda nähtavaks.
Vaibatõmme on tööriistade mürgitamise eriliik, mille puhul muudetakse heakskiidetud metaandmeid. Selline tööriistade mürgitamine võib muuta seda, kuidas mudel usaldusväärseid tööriistu kasutab, selle asemel et otse pahatahtlikku tööriista käivitada.
Kuidas kaitsta end tööriistade mürgitamise ja vaibatõmmete eest
Host peaks enne iga tööriista kasutamist selle täieliku definitsiooni üle vaatama ja võrdlema seda heakskiidetud usaldusväärsete tööriistade loendiga, et tuvastada mis tahes muudatused. Parameetrite kontrollid aitavad tuvastada potentsiaalselt ohtlikke võimekusi ja need märgistada.
Oht nr 3: liigsed õigused
Kasutajad annavad MCP-serveritele ja (hosti kaudu) ühendatud LLM-idele sageli rohkem õigusi, kui ülesande jaoks vaja on. Näiteks kirjutusõigused, kuigi piisaks ainult lugemisõigusest, või täielik juurdepääs sisemisele failisüsteemile (näiteks Google Drive).
Selline ulatuslik õiguste paisumine võib suurendada teiste haavatavuste, näiteks pahatahtlike tööriistakutsete, kahjuraadiust. Sageli õigused „kuhjuvad“, kui kasutajad annavad ettevõttes oma igapäevase töö käigus tehisintellekti tööriistadega üha uusi privileege (privileegide kuhjumine).
Kuidas kaitsta end liigsete õiguste eest
Kõige otsesem viis selle probleemi vastu kaitsta on piirata õigusi ja OAuth-i ulatusi (lugemine, kirjutamine, täielik juurdepääs jne). Kasutaja kinnitused, eriti tundlike toimingute puhul, on selle oluline osa, kuid õigusi tuleks kontrollida ka süsteemi tasandil (operatsioonisüsteem, MCP-host ja server).
Oht nr 4: nõrk autentimine ja autoriseerimine
Autentimine kontrollib MCP-serveriga ühenduvate kasutajate või rakenduste identiteeti. Autoriseerimine määrab, millistele tööriistadele ja ressurssidele neil on juurdepääs.
Halvasti konfigureeritud MCP-serverid võivad aktsepteerida päringuid või tõendeid ilma kasutajaid korrektselt autentimata või juurdepääsupiiranguid jõustamata. Lisaks võivad varastatud autentimisandmed nõrga valideerimise korral võimaldada pahatahtlikel osapooltel juurdepääsu saada.
Kuidas kaitsta end nõrga autentimise ja autoriseerimise eest
OAuth-põhine autentimine kaug-MCP-serverite jaoks, lühiajalised tõendid ja rollipõhine juurdepääsukontroll (RBAS) on kõik meetmed, mis aitavad leevendada nõrga autoriseerimise riske. Rollipõhine juurdepääs on kasulik, sest see takistab kasutajatel pääseda ligi andmetele ja tööriistadele väljaspool nende õigusi isegi siis, kui serveril endal on juurdepääs.
Oht nr 5: autentimisandmete lekked ja väärkasutus
MCP-serverid kasutavad välisteenustega ühendumiseks tavapäraselt autentimisandmeid, nagu API-võtmed ja OAuth-i juurdepääsutõendid. Kui need paljastatakse või neid väärkasutatakse, võivad ründajad saada juurdepääsu tundlikele andmetele ja funktsioonidele.
Üks näide on tõendi edasiandmine (token passthrough), mille puhul MCP-server edastab juurdepääsutõendi teisele teenusele ilma kontrollimata, kas see on tegelikult mõeldud vastuvõtvale teenusele. See võib omakorda põhjustada lekke, kui vastuvõtva teenuse kaitse on ebapiisav.
Kuidas kaitsta end autentimisandmete lekete ja väärkasutuse eest
Lühiajalised, kitsa ulatusega tõendid ja autentimisandmete rotatsioon piiravad tõhusalt seda, mil määral saavad pahatahtlikud osapooled lekkinud andmeid kasutada. API-võtmeid ja autentimisandmeid tuleks alati turvaliselt hoida saladuste halduri abil.
Oht nr 6: segaduses asetäitja ründed (confused deputy)
Segaduses asetäitja rünnak toimub siis, kui ründaja peibutab usaldusväärse rakenduse kasutama oma õigusi toimingu tegemiseks, mida õiguspärane kasutaja ei ole autoriseerinud. Sel juhul on asetäitjaks MCP-server.
Ründaja kasutab ära MCP-serveri haavatavust (näiteks nõrka OAuth-i kontrolli), et käivitada pahatahtlik protsess, näiteks tööriistakutse või andmete toomine.
Kuidas kaitsta end segaduses asetäitja rünnete eest
Autoriseerimise valideerimine, mille puhul kontrollitakse, et iga tööriistakutse kuulub konkreetsele kasutajale, aitab segaduses asetäitja ründeid piirata. Lisaks peaksid tundlikud toimingud, näiteks andmete eksportimine, nõudma selgesõnalist autoriseerimist.
Oht nr 7: pahatahtlikud serverid ja kompromiteeritud sõltuvused
MCP-serverid võivad sisaldada pahatahtlikku koodi (need on sisuliselt välised programmid) või tugineda kompromiteeritud sõltuvustele, näiteks kolmandate osapoolte teekidele. See on pigem tarkvara tarneahela probleem kui ainult MCP-le omane probleem.
Üks lihtne viis, kuidas see võib juhtuda, on see, kui ründaja levitab õiguspärasena näivat integratsiooni. Pärast seadistamist võib see varastada ja taaskasutada autentimisandmeid, pääseda ligi tundlikele andmetele ning teha volitamata toiminguid.
Kuidas kaitsta end pahatahtlike serverite ja kompromiteeritud sõltuvuste eest
Installige MCP-servereid ainult usaldusväärsetest ja kontrollitud allikatest. Võimaluse korral vaadake nende kood üle ja kontrollige alati kõiki väliseid sõltuvusi. Veenduge, et servereid uuendatakse ja paigatakse regulaarselt.
Oht nr 8: serveripoolne päringuvõltsing (SSRF)
Serveripoolne päringuvõltsing (SSRF) tähendab, et ründaja peibutab MCP-serveri saatma võrgupäringuid siseaadressidele, millele kasutaja ei kavatsenud juurde pääseda.
See võib juhtuda, kui MCP-server pakub tööriista, mis toob teavet URL-ilt. Kui ründaja saab URL-i parameetrit mõjutada, võib ta muuta selle soovitud võrguaadressiks, näiteks sisemiseks API-ks või pilveteenuseks. Selle tagajärjel võidakse tundlikke andmeid välja tuua ja potentsiaalselt kättesaadavaks teha
Kuidas kaitsta end serveripoolse päringuvõltsingu (SSRF) eest
MCP-serverid peaksid alati URL-e valideerima, blokeerima juurdepääsu piiratud sisevõrgu aadressidele ja takistama väljaminevat võrgujuurdepääsu. Sama protokolli tuleks järgida ka ümbersuunamiste puhul.
Oht nr 9: seansi kaaperdamine
Seansi kaaperdamise korral võtab ründaja kontrolli MCP-kliendi ja serveri vahelise aktiivse ühenduse üle.
Näiteks võib ründaja varastada seansiidentifikaatori halvasti kaitstud MCP-rakendusest (nt hostist või serverist). Kui MCP-server selle identifikaatori aktsepteerib, saab ründaja potentsiaalselt kutsuda tööriistu välja kasutaja õiguspäraste õigustega.
Kuidas end kaitsta
Seansi kaaperdamise riski saab vähendada range identiteedikontrolliga kõigis MCP-süsteemi rakendustes. Krüpteerimine MCP-klientide ja kaugserverite vahel on samuti hädavajalik, et seansiidentifikaatoreid ei saaks tuvastada.
Oht nr 10: segiajamisründed (mix-up)
Segiajamisründe korral peibutab ründaja MCP-kliendi saatma autoriseerimiskoodi pahatahtlikule autoriseerimisserverile, mis asub kliendi ja MCP-serveri vahel. Autoriseerimisserver on rakendus, mis väljastab OAuth-i juurdepääsutõendeid pärast seda, kui on kontrollinud, et taotletud juurdepääs on autoriseeritud.
Kui MCP-host ühendub mitme teenusega, millest igaüks kasutab erinevat autoriseerimisserverit, võib ründaja potentsiaalselt ühe neist enda kontrolli alla saada (näiteks registreerides pahatahtliku teenuse) ja panna kliendi saatma õiguspärase serveri väljastatud autoriseerimiskoodi pahatahtlikule serverile. Selline segiajamine võib võimaldada ründajal esineda autoriseeritud rakendusena ja pääseda ligi kaitstud teenustele.
Kuidas kaitsta end segiajamisrünnete eest
MCP-kliendid peaksid kogu OAuth-i protsessi vältel kontrollima autoriseerimisserveri identiteeti. Täpsemalt peaksid nad võrdlema serveri väljaandja identifikaatorit (iss) oodatud identiteediga ja lükkama mittevastavused tagasi.
Oht nr 11: kohaliku MCP-serveri kompromiteerimine
Paljud MCP-serverid töötavad kasutaja kohalikus arvutis. Kasutaja võib installida serveri kolmandalt osapoolelt või ehitada selle ise. Kui ründajal õnnestub see kohalik MCP-server kompromiteerida, võib ta potentsiaalselt saada juurdepääsu suurele osale kohalikust süsteemist.
Ründaja võib juurdepääsu saada mitmel viisil. Ta võib levitada õiguspäraseks integratsiooniks maskeeritud pahatahtlikku serverit, muuta MCP-hosti konfiguratsiooni nii, et see annab pahatahtliku käsu, või pääseda ligi MCP-serverile, mis töötab ebapiisavate turvakontrollidega keskkonnas, näiteks DNS-i ümbersidumise (DNS rebinding) kaudu, mis peibutab brauseri saatma päringuid localhosti teenusele.
Kuidas kaitsta end kohaliku MCP-serveri kompromiteerimise eest
Kohalike MCP-serverite kasutamisel on olulised liivakastis käitamine ja ranged nõusolekuprotokollid. MCP-servereid tohib installida ainult usaldusväärsetelt pakkujatelt ning operatsioonisüsteemi õigused peaksid piirama, millistele kataloogidele neil on juurdepääs.
MCP haavatavused on sageli vanad ohud uues kuues
MCP haavatavused tulenevad sageli tuntud riskide ja ründemeetodite uutest rakendusviisidest. MCP pakub ründajatele uusi võimalusi neid haavatavusi ära kasutada LLM-ide, MCP-serverite ja välisteenuste vastastikmõju kaudu.
Loomulikult on olemas ka MCP-spetsiifilisi ohte. Siiski tasub meeles pidada, et standardsed turvaprotokollid, nagu range autoriseerimise jõustamine, usaldusväärsete pakkujate kasutamine ja kaitse viibasüstide eest, aitavad oluliselt kaitsta mis tahes MCP-lahendust.