Šiuolaikinės įmonės šiuo metu dalyvauja masinėje, didelių statymų architektūrinėje avantiūroje. Viena vertus, organizacijos investuoja milijonus dolerių į DI valdomą automatizavimą, naudodamos sudėtingus mąstymo variklius viskam – nuo klientų aptarnavimo iki vidinių duomenų bazių valdymo. Kita vertus, patys protokolai, skirti šioms DI sistemoms tapti sąveikiomis – konkrečiai „Anthropic“ modelio konteksto protokolas (angl. Model Context Protocol, MCP) – yra sukurti remiantis nesaugiais numatytaisiais nustatymais, kuriuos galima apeiti paprasta komandų eilute. Užkulisiuose stebime klasikinį DI eros architektūrinį paradoksą: kuo „prijungtesnius“ ir „naudingesnius“ padarome savo įrankius, tuo labiau išplečiame atakos paviršių visiems, kurie yra pakankamai gudrūs pasinaudoti dizaino pasirinkimais.
Neseniai praleidau popietę aptardamas tai su kolega per šifruotą „Signal“ liniją. Jis yra patyręs incidentų tyrimo specialistas, matęs nemažai tiekimo grandinės katastrofų. Abu sutikome, kad pasiekėme lūžio tašką. Jau daugelį metų saugumo bendruomenė įspėjo, kad skubėjimas integruoti didžiuosius kalbos modelius (DKM) į gamybines aplinkas sukels naują sisteminių rizikų klasę. Praėjusią savaitę šie įspėjimai įgavo konkretų pavidalą, kai „OX Security“ atrado kritinį „pagal konstrukciją“ (angl. by design) esantį MCP architektūros trūkumą. Tai nėra tik vienos programinės įrangos klaida; tai visur paplitęs struktūrinis defektas, turintis įtakos daugiau nei 150 milijonų atsisiuntimų „Python“, „TypeScript“, „Java“ ir „Rust“ aplinkose.
Norėdami suprasti situacijos rimtumą, turime pažvelgti į tai, kaip modelio konteksto protokolas iš tikrųjų veikia architektūriniame lygmenyje. MCP buvo sukurtas kaip atviras standartas, leidžiantis DKM sklandžiai sąveikauti su vietiniais duomenimis ir įrankiais. Jis naudoja kelis transportavimo mechanizmus, tačiau labiausiai paplitęs ir problemiškiausias yra standartinės įvesties/išvesties (STDIO) sąsaja.
Rizikos požiūriu šis dizaino pasirinkimas glumina. Protokolas faktiškai leidžia DI modeliui paleisti vietinį STDIO serverį vykdant sistemos komandą. Įprastomis aplinkybėmis ši komanda naudojama teisėtam vietiniam įrankiui paleisti. Tačiau kadangi protokolo įgyvendinimui trūksta griežto patvirtinimo, užpuolikas gali manipuliuoti konfigūracija, kad vietoj to būtų vykdomos savavališkos operacinės sistemos komandos. Kalbant proaktyviai, jei suteikiate sistemai galią „paleisti serverį“ naudojant komandų eilutę, kurios griežtai nekontroliuojate, iš esmės atiduodate karalystės raktus.
Architektūriniame lygmenyje trūkumas yra elegantiškas savo paprastumu. Kai MCP SDK prašoma inicijuoti serverį, jis įvykdo pateiktą komandą. Jei ta komanda sėkmingai sukuria STDIO serverį, ji grąžina valdiklį DKM. Jei komanda yra kenkėjiška – pavyzdžiui, skriptas, skirtas API raktams išgauti, arba atvirkštinis apvalkalas (angl. reverse shell) – ji vis tiek įvykdoma. Sistema vėliau gali grąžinti klaidą, nes nerado tikėto STDIO valdiklio, tačiau tuo metu žala jau būna padaryta. Komanda buvo paleista, kenkėjiškas krovinys pristatytas, o užpuolikas pasiekė nuotolinį kodo vykdymą (RCE).
Žvelgiant į grėsmių kraštovaizdį, tai yra vadovėlinis tiekimo grandinės incidento pavyzdys. Kadangi ši logika buvo įtraukta į oficialų „Anthropic“ MCP SDK, ji tyliai išplito į pamatines bibliotekas, kuriomis remiasi visa DI pramonė. Atitinkamai, projektai, kuriais kūrėjai pasitikėjo kaip saugiais „iš dėžutės“, iš tikrųjų paveldėjo kritinį RCE pažeidžiamumą.
Kaip atsakomąją priemonę, daugelis kūrėjų turėjo skubiai taisyti savo individualius įgyvendinimus. Paveiktų projektų sąrašas atrodo kaip šiuolaikinio DI technologijų sąvadas. Matome CVE, atsirandančius visur – nuo orkestravimo sistemų iki specializuotų tyrimų įrankių:
Duomenų vientisumo požiūriu rizika yra milžiniška. Šios MCP palaikančios paslaugos dažnai turi tiesioginę prieigą prie vidinių duomenų bazių, jautrių naudotojų susirašinėjimo istorijų ir kritiškai svarbių API raktų. Įsilaužimo atveju užpuolikas ne tik pavagia slaptažodį; jis įgyja galimybę manipuliuoti pačiomis įmonės automatizuotų sistemų „smegenimis“.
Bene labiausiai nuviliantis šio atradimo aspektas yra kūrėjų reakcija. „Anthropic“ atsisakė keisti protokolo architektūrą, apibūdindama tokį elgesį kaip „tikėtiną“. Jų nuomone, protokolas daro būtent tai, kam buvo sukurtas: vykdo komandas serveriams paleisti. Jie teigia, kad atsakomybė už įvesties – pačių komandų – saugumą tenka kūrėjams, kurie įgyvendina protokolą.
Tai išryškina augantį trinties tašką informacinio saugumo srityje. Kai tiekėjas pateikia įrankį su nesaugiais numatytaisiais nustatymais, ar tai tiekėjo kaltė dėl pavojaus sukūrimo, ar programuotojo kaltė dėl to, kad jis nedėvi šalmo? Mano patirtis rodo, kad atsakomybės perkėlimas įgyvendintojams nepašalina rizikos; tai tik ją užmaskuoja. Kai dizaino pasirinkimas lemia 10 skirtingų CVE 10-yje skirtingų pagrindinių projektų, tai nebėra „naudotojo klaida“ – tai sisteminė nesėkmė.
Turime vertinti duomenis kaip toksišką turtą. Jei juos tvarkote arba pateikiate vamzdžius jiems judėti, turite daryti prielaidą, kad kažkas nutiks ne taip. Palikdama STDIO transportavimą tokį, koks jis yra, „Anthropic“ iš esmės prašo kiekvieno programuotojo sukurti savo apsauginį kostiumą protokolui, kuris turėjo būti sukurtas galvojant apie saugumą.
Atidėjus pataisymus į šalį, organizacijos negali laukti protokolo lygio sprendimo, kuris gali niekada neatsirasti. Turime būti atsparūs ir proaktyvūs. Jei naudojate MCP palaikančias paslaugas, tinklo perimetrą turite vertinti kaip pasenusį pilies griovį. Grėsmė jau yra viduje, dažnai pakviesta per „naudingą“ DI įrankį.
Norėdami apsaugoti savo aplinką, apsvarstykite šiuos detalius žingsnius:
Šiandienos DI atakų paviršiaus vertinimas primena vaikščiojimą po namą, kurio durys pagamintos iš plieno, o langai – iš popieriaus. „Anthropic“ MCP yra galingas įrankis, tačiau dabartinė jo „pagal konstrukciją“ filosofija užkrauna nepagrįstą naštą galutiniam naudotojui.
Mums judant link autonomiškesnių DI agentų, slaptas šių pažeidžiamumų pobūdis taps tik pavojingesnis. Negalime sau leisti pasitikėti, kad mūsų įrankiai yra saugūs „iš dėžutės“. Vietoj to turime priimti nulinio pasitikėjimo mąstyseną, kurioje kiekviena sąveika tarp modelio ir vietinės sistemos yra patikrinama, apribojama ir užregistruojama. DI revoliucija vyksta sparčiai, bet jei nesustosite sutvarkyti šių architektūrinių plyšių, galime pastebėti, kad statome ant smėlio.
Imkitės veiksmų: Patikrinkite savo dabartinį DI technologijų rinkinį dėl bet kokių priklausomybių nuo modelio konteksto protokolo. Tiksliau, patikrinkite, ar jūsų „LangChain“, „LiteLLM“ arba „Flowise“ įgyvendinimai naudoja naujausias pataisytas versijas. Jei kuriate pasirinktinius MCP įrankius, nedelsdami atsisakykite STDIO transportavimo nuotolinėms konfigūracijoms ir įdiekite griežtą leidžiamųjų sąrašų (angl. allow-listing) sistemą visoms vykdomoms komandoms.
Šaltiniai:
Atsakomybės apribojimas: Šis straipsnis yra skirtas tik informaciniams ir edukaciniams tikslams ir nepakeičia profesionalaus kibernetinio saugumo audito ar incidentų tyrimo paslaugų. Grėsmių kraštovaizdis nuolat kinta; prieš atlikdami architektūrinius pakeitimus kritiškai svarbiose sistemose, visada pasitarkite su sertifikuotu saugumo specialistu.



Pašto ir debesies saugojimo sprendimas suteikia galingiausias saugaus keitimosi duomenimis priemones, užtikrinančias jūsų duomenų saugumą ir privatumą.
/ Sukurti nemokamą paskyrą