Pasitikėjimo spragos naujajame protokole leidžia kenkėjiškoms užklausoms (angl. prompts) plisti nuo vieno agento prie kito.
Dirbtinio intelekto agentų diegimas milijonuose organizacijų atveria užpuolikams naujų galimybių priversti juos atlikti kenkėjiškus veiksmus, pavyzdžiui, išvilioti duomenų bazių turinį bei slaptą verslo ir asmeninę informaciją.
Per pastaruosius penkis mėnesius „Google“ ir keturios kitos organizacijos, turinčios mažai bendro, išskyrus tai, kad naudoja dirbtinio intelekto agentus, pripažino esant pažeidžiamumų, kuriais pasinaudojus vienas užpulto tinklo agentas panaudojamas žalingoms instrukcijoms perduoti kitiems vidiniams agentams. Ši technika yra ypatinga užklausų injekcijos (angl. prompt injection) forma, nukreipta ne prieš didįjį kalbos modelį (LLM), o prieš konkretų agentą, pavyzdžiui, skirtą vertimui ar duomenų analizei. Tokių agentų apsaugos mechanizmai, jei jie apskritai yra, dažnai būna laisvi ir instrukcijas perduoda kitiems grandinės agentams. Kadangi pastarasis agentas aiškiai pasitiki pirmuoju, jis vykdo nurodymus.
Netikėta ir sunkiai sušvelninama
Nepriklausomas tyrėjas Syed Anas Mohiuddin išbandė agentus, priklausančius, be kita ko, „Google“, „JP Morgan Chase“, „Weviate“, „Rapid7“, Prancūzijos vyriausybės tarpžinybiniam skaitmeniniam departamentui ir JAV federalinei vyriausybei. Jo koncepcijos įrodymo atakos išnaudoja pasitikėjimo spragas MCP, tai yra Model Context Protocol. Šis standartas yra vienas iš būdų, kuriais DI programos ir agentai bendrauja tarpusavyje vidiniame tinkle. Toliau pateiktoje iliustracijoje parodytas supaprastintas MCP veikimas.
Paaiškinimas: Užklausos injekcija – tai ataka, kai į dirbtinio intelekto sistemai pateikiamą tekstą įterpiamos paslėptos instrukcijos, kurias sistema ima vykdyti tarsi teisėtas komandas.
Daugeliui specializuotų agentų trūksta apsaugos, kuri paprastai galėtų sušvelninti žalingiausias užklausų injekcijos pasekmes. Be to, kadangi MCP serveriai saugo kiekvieno agento prisijungimo duomenis, o agentai sukurti taip, kad pasitikėtų kiekvienu kitu vidiniu agentu, išnaudojimo būdas, kurį būtų atmetęs LLM, pavyksta. Daugeliu atvejų gerai sukonstruotos užklausos, nukreiptos į tinkamą agentą, sukelia serverio pusės užklausų klastojimą (angl. server-side request forgery) – pažeidžiamumą, dėl kurio žiniatinklio serveris pateikia neautorizuotas tinklo užklausas.
„DI agentai suteikia užpuolikams naują jungčių rinkinį, kuriuo galima judėti“, – „Ars“ sakė Douglasas McKee, „Rapid7“ pažeidžiamumų žvalgybos direktorius. – „Kažkas įterpia tekstą į turinį, agentas jį perskaito ir perduoda kitam agentui kaip įprastą deleguotą užduotį, o tas antrasis agentas ją įvykdo, nes pasitiki tuo, kas jam darbą perdavė. Kiekviena grandinės dalis padarė būtent tai, kam buvo sukurta, todėl tokią ataką taip sunku pastebėti. Kiekvienas protokolas buvo kuriamas tarsi veiktų atskirai, todėl kiekvienas tikrina savo priekines duris, o koridoriaus tarp jų niekas nestebi.“
CVE-2026-97228, pažeidžiamumas, kurį Mohiuddinas rado „Rapid7“ tinkle, buvo įvertintas tik 2,7 balo iš 10 pavojingumo skalėje. „Rapid7“ ištaisė jį praėjusį mėnesį.
„Google“ paveikęs pažeidžiamumas buvo rimtesnis – įvertintas 8 balais. Jis atsirado dėl to, kad MCP duomenų bazių įrankių rinkinys (googleapis/mcp-toolbox) inicijavo savo HTTP klientą nenaudodamas CheckRedirect politikos – nustatymų rinkinio, kuris valdo, kaip serveris turi elgtis, kai URL grąžina klaidą arba nukreipia į kitą URL. „Google“ HTTP klientas taip pat netikrino tikslinių IP adresų.
„Specialiai sukurtas kelio parametras galėjo priversti įrankių rinkinį sekti peradresavimą į vidinį galinį tašką ir siųsti užklausas užpuoliko vardu“, – paaiškino Mohiuddinas. „Google“ pataisa apėmė leidžiamųjų IP diapazonų sąrašo ir blokavimo sąrašų taikymą. „Ji atmeta nesaugų bazinį URL paleidimo metu, o ne per pirmąją užklausą. Taip atrodo tikra SSRF apsauga. Tai taip pat reikalauja daugiau darbo, nei yra atlikę dauguma MCP serverių.“
Mohiuddinas šią atakų klasę vadina „protokolų pivotavimu“ (angl. protocol pivoting), nes išnaudojimas veikia tada, kai programa ar serveris per MCP paveda užduotį agentui, o šis perduoda kenkėjiškas instrukcijas kitam agentui, naudodamas kitą ryšio būdą, pavyzdžiui, „Google“ Agent-to-Agent (A2A) protokolą, naudojamą delegavimui tarp agentų, arba kylančius standartus, tokius kaip Agent Network Protocol. Anot jo, dažnai pasitikėjimas ar įgaliojimai tiesiog prarandami „vertimo“ tarp protokolų metu. Jis protokolų pivotavimą apibūdino kaip „daugiapakopę ataką, kurios metu priešininkas pradinę prieigą gauna per vieną protokolą, išnaudoja pasitikėjimo prielaidas tarp protokolų ir pakyla iki galimybių, pasiekiamų tik per kitą protokolą“.
Markusas Vervieris, „X41 D-Sec“ tyrėjas, kuris taip pat sukūrė DI atakų, išnaudojančių MCP, teigė, kad tinkamesnis terminas tebėra „užklausų injekcija“, o Mohiuddino technika yra paprastas jos porūšis.
„Man tai yra netiesioginė užklausų injekcija“, – jis sakė „Ars“. – „Tai, kad kenkėjiška užklausa gali ateiti iš kito protokolo (pvz., A2A) ir pasireikšti naudojant kitą protokolą, nėra privaloma, kad tokios atakos veiktų. Žinoma, tai netikėta ir apskritai sunku sušvelninti.“
Tai, kad pivotavimo technika suveikė penkiose organizacijose, neturinčiose nieko bendra, išskyrus MCP naudojimą, yra reikšminga. MCP yra naujas ir jau yra visur, nors dar nebuvo pakankamai ištestuotas ir sutvirtintas. Skubėdamos kurti plačias agentines architektūras organizacijos atsisakė pagrindinio saugumo principo, vadinamo „nulinio pasitikėjimo“ (angl. zero trust). Pagal šį modelį tinklai kuriami darant prielaidą, kad vienas ar keli mazgai gali būti užkrėsti. Kad poveikis būtų sumažintas, inžinieriai turi kurti mazgus taip, kad prieš atlikdami jautrias operacijas su kitais mazgais jie reikalautų autorizacijos.
Paaiškinimas: Nulinio pasitikėjimo principas reiškia, kad joks tinklo įrenginys, naudotojas ar programa nėra laikomi saugiais vien dėl to, kad yra vidiniame tinkle – kiekvieną užklausą būtina patikrinti.
„Pamoka, kurią norėčiau, kad žmonės išsineštų, yra tokia: viskas, ką LLM perduoda jūsų įrankiui, turėtų būti vertinama kaip įvestis iš nepažįstamo žmogaus internete, nes užklausų injekcijos scenarijuje būtent tuo ji ir yra“, – sakė McKee. Po tuo slypinčios klaidos yra seni pažįstami, tokie kaip injekcija ir SSRF, o jų taisymo būdai nepasikeitė per 20 metų. Nuopelnas tyrėjui, kad pavadino šį reiškinį, nes būtent pavadinimas priverčia gynėjus ir standartų institucijas iš tikrųjų jį numatyti projektuojant.“
