Problema viename sakinyje
Kitą kartą Dirbtinio intelekto asistentas rekomenduoja įdiegti paketąAr ketinate iš tikrųjų patikrinti, ar tas paketas egzistuoja? Dauguma kūrėjų to nepadarė. Šis atotrūkis tarp pasiūlymo ir patikrinimo yra būtent ta vieta, kur prasideda neatsargios atakos, ir todėl neatsargaus elgesio evoliucijos bei praktinės neatsargaus elgesio prevencijos supratimas tapo tikru programų saugumo ir kūrėjų saugumo operacijų komandų prioritetu.
Kas yra pritūpimo ataka?
Tupėjimo ataka yra variantas klaidų rašymas (domeno ar paketo pavadinimo, kuris imituoja teisėtą pavadinimą dėl įprastos rašybos klaidos, registravimo praktika, pvz. prašymai VIETOJ prašymai, tikėdamiesi, kad vartotojo padaryta spausdinimo klaida nukreips jį tiesiai į ją), tačiau svarbus skirtumas yra tas, kur atsiranda klaida. „Typosquatting“ išnaudoja žmonių spausdinimo klaidas. „Slopsquatting“ ataka išnaudoja didelių kalbų modelių daromas klaidas: LLM „haliucinuoja“ paketo pavadinimą, kuris skamba visiškai teisėtai, bet neegzistuoja jokiame viešajame registre, ir užpuolikas tai pasiekia pirmas, užregistruodamas tikslų pavadinimą anksčiau nei tai padaro kas nors su gerais ketinimais.
Tipinės pritūpimo atakos mechanizmas yra paprastas, ir būtent šis paprastumas yra tai, kas daro ją efektyvia:
- Programuotojas paprašo dirbtinio intelekto asistento padėti išspręsti kodavimo problemą.
- Modelis generuoja sprendimą, kuris importuoja arba rekomenduoja įdiegti paketą, kurio niekada nebuvo.
- Užpuolikas, pastebėjęs, kad keli modeliai nuolat kartoja tą patį haliucinacijos pavadinimą, užregistruoja tą paketą npm, PyPI ar kitame viešajame registre su kenkėjišku kodu. Šiuo metu haliucinacija virsta tikra nevykusia ataka.
- Kitas kūrėjas, gavęs tą patį pasiūlymą ir jo nepatikrinęs, įdiegia dabar jau tikrąjį paketą, kuris yra slapta prieiga prie jo aplinkos.
Terminą „slopsquatting“ sugalvojo Sethas Larsonas, „Python Software Foundation“ reziduojantis saugumo kūrėjas, o išpopuliarino Andrew Nesbittas, norėdamas apibūdinti būtent šį modelį: „paketo haliucinacija“, virto atakos vektoriumi.
Slopsquatting evoliucija: kaip tyrimų smalsumas išaugo į realią grėsmę
Pastebėtina ne tik pati koncepcija, bet ir tai, kaip greitai ši praktika iš mokslinio stebėjimo virto dokumentuota, išmatuojama atakų klase.
2023 m.: Pirmasis įspėjamasis ženklas. Saugumo tyrėjas Baras Lanyado pastebėjau, kad keli teisės magistro laipsnį turintys asmenys ne kartą rekomendavo paketą, vadinamą apkabinančio veido klijavimas, kuris neegzistuoja (tikrasis paketas yra įdiegtas su pip install -U „huggingface_hub[cli]“). Norėdamas pademonstruoti riziką, jis įkėlė tuščią to paketo versiją į viešąjį registrą. Per tris mėnesius jis buvo atsisiųstas daugiau nei 30 000 kartų be jokios reklamos. Haliucinacijos apimtas pavadinimas netgi pasirodė su „Alibaba“ tyrimais susijusios saugyklos README faile, anksti parodydamas, kaip šie „netikri“ pavadinimai gali nutekėti į tikrus dokumentus ir paruošti dirvą vėlesnėms neoficialioms atakoms.
2024 m.: Rizika persikelia iš tyrėjo tinklaraščio įrašo į pagrindinę technologijų apžvalgą. Kovo mėnesį 2024 Registras pranešė, kaip dirbtinio intelekto modeliai užtikrintai išgalvojo programinės įrangos paketų pavadinimus, kuriuos kūrėjai vėliau atsisiųsdavo, kai kurie iš jų galbūt būdavo užteršti kenkėjiška programine įranga. Šis pranešimas buvo mažiau svarbus dėl to, ką jis atskleidė techniškai, o labiau dėl to, ką signalizavo: „huggingface-cli“ atvejis nebebuvo vienkartinis įdomumas; tai buvo pirmasis pakankamai rimto modelio požymis, kad pagrindinė technologijų žiniasklaida jį atkreiptų į tai dėmesį, prieš atliekant didelio masto akademinį tyrimą, kuris po metų patvirtintų šio modelio apimtį.
2025 m.: Pirmasis griežtas, didelio masto problemos matavimas. Straipsnis „Turime jums paketą! Išsami paketinių haliucinacijų analizė naudojant kodą generuojančius teisės magijos specialistus“ (Spracklen ir kt., pristatytas USENIX saugumo simpoziumas) išbandė 16 kodo generavimo modelių, tiek komercinių (GPT-4, GPT-3.5), tiek atvirojo kodo (CodeLlama, DeepSeek, WizardCoder, Mistral), naudodami 576 000 Python ir JavaScript kodo pavyzdžių. Šie rezultatai žymi aiškų slopsquatting evoliucijos tašką, perkeliant jį iš anekdoto į duomenis:
- 19.7 % modelių rekomenduojamų paketų neegzistavo.
- Atvirojo kodo modeliai haliucinavo daug dažniau (vidutiniškai 21.7 %) nei komerciniai modeliai (5.2 %).
- Visuose išbandytuose modeliuose tyrėjai užfiksavo daugiau nei 205 000 unikalių haliucinuotų paketų pavadinimų – tai pakankamai didelis kiekis, kad būtų galima sukelti ilgalaikes nevykusias atakas keliose ekosistemose.
Svarbus tyrimo aspektas ir tikriausiai priežastis, kodėl atvirkštinio įsilaužimo evoliucija paspartėjo, o ne išblėso, yra ta, kad haliucinacijų vardai nėra atsitiktiniai ir nesikeičia su kiekvienu bandymu. Tie patys modeliai linkę kartoti tuos pačius išgalvotus pavadinimus, kai jiems pateikiami panašūs raginimai, o tai reiškia, kad užpuolikui nereikia spėlioti. Jiems tereikia stebėti modelio elgesį, nustatyti nuolat pasikartojančius vardus ir juos užregistruoti, kol tai padarys tikras kūrėjas. Tolesnė šio pakartojamumo analizė parodė, kad kai tyrėjai dešimt kartų pakartojo identiškus raginimus, 43 % haliucinacijų paketų pavadinimų pasirodydavo kiekvieno paleidimo metu, o tai įrodo, kad dauguma haliucinacijų yra pasikartojantys artefaktai, o ne vienkartinis triukšmas. Šis pakartojamumas yra tai, kas vienkartinę haliucinaciją paverčia keičiamo mastelio atvirkštinio įsilaužimo ataka.
2026 m.: Nuo izoliuotų paketų iki autonominių agentų. Nuo izoliuotų paketų iki autonominių agentų. Šiais metais pateikta aiškiausių įrodymų, kad neatsargus kodavimas nebėra apsiribojimas kūrėjo siūlomos „pip install“ arba „npm install“ komandos nukopijavimu ir įklijavimu. 2026 m. sausio mėn. saugumo tyrėjas Charlie Eriksenas nustatė, kad dirbtinio intelekto kodavimo agentai jau buvo išplatinę instrukcijas, kuriose nurodomas haliucinuotas „npm“ paketas „react-codeshift“ (pavadinimas, kuris tikėtinai sujungia du tikrus įrankius – „jscodeshift“ ir „react-codemod“), 237 saugyklose, o agentai vis dar bandė jį įdiegti kasdien. Eriksenas pats užregistravo pavadinimą gynybiškai, prieš užpuolikui spėjant jį paversti ginklu. Atskirai, tikras kenkėjiškas paketas, pavadintas „unused-imports“, sukurtas vietoj teisėto „eslint-plugin-unused-imports“, 2026 m. pradžioje vis dar užfiksavo maždaug 233 atsisiuntimus per savaitę, nepaisant to, kad „npm“ jį sustabdė saugumo sulaikymu. Tai ženklas, kiek ilgai neatsargi ataka gali pritraukti aukų net ir po to, kai ji buvo pažymėta. Visai neseniai, 2026 m. liepą, tyrėjai aprašė susijusį metodą, pavadintą „HalluSquatting“, kuris sujungia dirbtinio intelekto haliucinaciją su greita injekcija, kad dirbtinio intelekto kodavimo agentas, vartotojo vardu gaunantis haliucinacijos šaltinį, galėtų būti užgrobtas ir paleistų užpuoliko pateiktą kodą, taip praplėsdamas netiesioginio kodo vykdymo evoliuciją nuo pasyvios diegimo rizikos iki aktyvaus nuotolinio kodo vykdymo vektoriaus agentinių kūrimo darbo eigose.
Kodėl „vibracijos kodavimas“ išplėtė aplaidumo atakų paviršių
Jei dirbtinio intelekto generuojamas kodas būtų nišinė praktika, prastos reputacijos atakos nebūtų labai svarbios. Taip nėra. Kodavimo asistentų, autonominių agentų ir „vibe coding“ darbo eigų, kai kūrėjai prieš paleisdami kodą peržiūri vis mažiau, atsiradimas pakeitė programinės įrangos atakų paviršių dviem konkrečiais būdais, ir abu šie veiksniai spartina prastos reputacijos atakų evoliuciją:
- Įėjimo taškas nebėra tik kūrėjas. Anksčiau rašybos klaidų taisymo ataka priklausydavo nuo vieno žmogaus spausdinimo klaidos. Dabar klaida gali atsirasti pačiame modelyje ir išplisti šimtams skirtingų kūrėjų, kurie užduoda panašius klausimus ir gauna tą pačią haliucinuotą rekomendaciją, taip padidindami vienos rašybos klaidų taisymo atakos aprėptį.
- Atakos paviršius pasislinko aukščiau grandinėje. Nebeužtenka stebėti žmogaus rašomą kodą. Komandos taip pat turi stebėti dirbtinio intelekto asistento siūlomas priklausomybes, MCP serverius, prie kurių jis jungiasi, ir agentus, kurie automatiškai diegia paketus be tiesioginės žmogaus peržiūros. Tradicinis programų saugumas, sukurtas saugykloms ir žmogui peržiūrėti. commitniekada nebuvo sukurtas stebėti šios naujos kūrėjo, dirbtinio intelekto ir paketų registro sąveikos, kurioje dabar slepiasi nevykusios atakos.
Visa tai nereiškia, kad generatyvinis dirbtinis intelektas iš esmės yra nesaugus. Tai reiškia, kad jis įveda naujo tipo tiekimo grandinės riziką, kurios aptikimui tradicinės saugumo priemonės nebuvo sukurtos ir kuriai reikalingi tie patys tikrinimo principai, kuriuos jau taikome bet kokiai išorinei priklausomybei: nepasitikėkite pagal numatytuosius nustatymus, patikrinkite šaltinį ir automatizuokite tą tikrinimą, užuot pasikliaujant kiekvieno kūrėjo atmintimi ar budrumu. Ši automatizacija yra bet kokios realios nelegalių programų vagystės prevencijos strategijos pagrindas.
Apsauga nuo prasto pritūpimo: ką komandos gali padaryti šiandien
Geros žinios yra tai, kad norint išvengti neatsargaus kodo, nereikia egzotiškų įrankių. Tam reikia sistemingai taikyti jau egzistuojančias priklausomybių higienos praktikas, tačiau daugelis komandų atsipalaiduoja, kai tik dirbtinis intelektas, kuriuo jos pasitiki, „pasiūlo“ kodą. Veiksmingas neatsargaus kodo prevencijos metodas paprastai apima šiuos elementus:
- Prieš diegdami bet kurį naują paketą, rankiniu būdu patikrinkite jį, ypač kai tai siūloma dirbtinio intelekto asistento. Įsitikinkite, kad tai yra oficialiame registre, kas jį tvarko, kada jis buvo paskelbtas ir ar jo atsisiuntimų skaičiai atrodo tikri. Šis vienintelis įprotis yra pigiausia bet kuriai komandai prieinama apsimetėlių prevencijos forma.
- Niekada nemanykite, kad dirbtinio intelekto sugeneruotas kodas yra saugus pagal numatytuosius nustatymus. Kodo fragmentas, kuris „veikia“, dar nereiškia, kad jo priklausomybės yra teisėtos. Priklausomybių peržiūra turėtų būti kodo peržiūros dalis, o ne išimtis.
- Naudokite užrakinimo failus ir maišos patvirtinimą kad būtų galima prisegti tikslias versijas ir sustabdyti tylųjį atnaujinimą, kuris būtų perkeltas į kitą paketą nei tas, kuris buvo iš pradžių audituotas.
- Įdiekite priklausomybių nuskaitymą, kuris žymi rizikos modelius, neapsiribojančius žinomais CVEanomalūs paketai, įtartinai panašūs į esamus pavadinimai, nauji kūrėjai be jokios patirties arba neįprastai veikiantys diegimo scenarijai. Naujai išleistas paketas beveik be jokios istorijos, kuris labai panašus į „beveik“ pažįstamo paketo pavadinimą, yra būtent tas modelis, kuris lemia daugumą iki šiol dokumentuotų neoficialių atakų.
- Su viešaisiais registrais elkitės taip pat skeptiškaicism, kaip ir bet kuris kitas nepatikrintas išorinis šaltinis. Tai, kad pip diegimas or npm įdiegti Tai, kad nepateikiama klaida, dar neįrodo teisėtumo.
- Mokymo komandos dėl to, kad dirbtinio intelekto pagalba atliekamas kodavimas neatleidžia nuo atsakomybės tikrinti, kas įdiegiama; jis tiesiog prideda žingsnį, kurį reikia įtraukti į darbo eigą kaip bet kokio rimto neatsargaus programavimo prevencijos plano dalį.
Nė viena iš šių priemonių pati savaime nėra nauja. Pasikeitė tik mastas: kai priklausomybės pasiūlymas nebekyla iš „Stack Overflow“ ar kolegos, o iš modelio, kuris gali pakartoti tą pačią haliucinuotą klaidą tūkstančiams skirtingų kūrėjų, rankinis patikrinimas, nors ir būtinas, vien nebepakanka. Štai kodėl vis daugiau komandų automatizuoja šį nevykusios analizės prevencijos sluoksnį savo sistemose. Programinės įrangos sudėties analizė (SCA) įrankiai, o ne palikti tai individualiems kūrėjų spręsimams.
Tai yra iš ankstociselgi kodėl ASPM platformos kaip Ksigeni į tą pačią atvirojo kodo ir dirbtinio intelekto priklausomybių analizę integruoti įtartinų priklausomybių aptikimą, apimantį rašybos klaidas, priklausomybių painiavą ir žinomus kenkėjiškus paketus pipeline, taigi, norint išvengti neatsargaus pritaikymo, nereikia kiekvieno kūrėjo prisiminti to patikrinti kiekvieną kartą, kai dirbtinio intelekto asistentas pasiūlo naują priklausomybę.
DUK
Ar pritūpimas tuščiaviduriai yra tas pats, kas pritūpimas rašant?
Ne visai. Abuose atveju registruojamas netikras paketo pavadinimas, siekiant apgauti jį diegiantį asmenį, tačiau klaidos šaltinis skiriasi. „Typosquatting“ išnaudoja žmonių spausdinimo klaidas. „Slopsquatting“ ataka išnaudoja dirbtinio intelekto modelių sugalvotus (haliucinuojamus) paketų pavadinimus, kuriuos užpuolikas užregistruoja dar prieš jiems teisėtai atsirandant.
Ar paketų tvarkyklė gali automatiškai užkirsti kelią tokio tipo atakoms?
Ne iki galo, todėl neatsargiai veikianti apsauga negali sustoti paketų tvarkyklės lygmenyje. Jei užpuolikas užregistruoja „hallucinated“ paketą prieš kūrėjui bandant jį įdiegti, diegimas bus baigtas be jokių klaidų, nes paketas iš tikrųjų egzistuoja, net jei jis ir kenkėjiškas. Veiksmingai apsaugai reikia papildomai patikrinti paketo kilmę ir elgseną.
Ar tai paveikia tik atvirojo kodo modelius?
Ne. Spracklen ir kt. tyrimas nustatė haliucinacijas visuose išbandytuose modeliuose, įskaitant komercinius, nors jų dažnis buvo gerokai mažesnis (5.2 %, palyginti su 21.7 % vertintuose atvirojo kodo modeliuose). Nė vienas modelis nėra visiškai apsaugotas nuo šios problemos, ir tai yra viena iš priežasčių, kodėl neoficialaus programavimo evoliucija neatsilieka nuo bendro dirbtinio intelekto padedamo programavimo augimo.
Ar tai teorinė rizika, ar ja jau buvo pasinaudota?
Geriausios apkabinančio veido klijavimas Vienas atvejis – tuščias tyrėjo įkeltas paketas, kuris per tris mėnesius be jokios reklamos buvo atsisiųstas daugiau nei 30 000 kartų, rodo, kad rizika nėra vien teorinė: haliucinacijos apimtas vardas turi būti pakankamai nuoseklus skirtinguose užuominose, kad kažkas jį paverstų tikra nevykusia ataka.







