Kibernetinis saugumas

Didžiųjų kalbos modelių apsauga prieš kitą komandų injekcijos pažeidimą

„CrowdStrike“ atskleidžia penkias naujas DI komandų injekcijos technikas. Sužinokite, kaip kognityvinis slopinimas ir naudingojo krovinio skaidymas kelia grėsmę įmonių LLM diegimams.
Didžiųjų kalbos modelių apsauga prieš kitą komandų injekcijos pažeidimą

Praėjusį mėnesį peržiūrėjau teismo ekspertizės ataskaitą, kurioje finansinių paslaugų įmonė prarado vidinio klientų aptarnavimo boto kontrolę. Įmonė turėjo moderniausią saugumo priemonių rinkinį, tačiau vienas gudriai suformuluotas sakinys pagalbos užklausoje apėjo visas apsaugas. Tai yra šiuolaikinio DI architektūrinis paradoksas. Mes apgaubiame šiuos modelius tradicinio saugumo sluoksniais, tačiau nesugebame išspręsti esminio pažeidžiamumo: modelis nesugeba atskirti nepatikimų duomenų nuo patikimų instrukcijų. „CrowdStrike“ neseniai susistemino šią problemą į penkis skirtingus naujus atakų vektorius, kuriuos turi suprasti kiekvienas saugumo architektas.

Vakar rytą praleidau savo laboratorijoje bandydamas atkurti vieną iš šių metodų lokalizuotoje „Llama 3“ versijoje. Eksploatavimo paprastumas yra tai, kas daro jį pavojingą. Rizikos požiūriu šiuo metu esame generatyvinio DI „Laukiniuose Vakaruose“. Penkios naujos „CrowdStrike“ nustatytos komandų injekcijos (angl. prompt injection) grėsmės rodo, kad užpuolikai peržengia paprastų komandų „ignoruoti visas ankstesnes instrukcijas“ ribas. Dabar jie naudoja lingvistinį manipuliavimą ir daugiapakopį pristatymą, kad pažeistų sistemas.

Duomenų ir instrukcijų ribos išnykimas

Komandų injekcija egzistuoja dėl to, kaip didieji kalbos modeliai apdoroja informaciją. Tradicinėje programinėje įrangoje kodas ir duomenys paprastai laikomi atskirose atminties srityse. SQL duomenų bazė netyčia neįvykdo vartotojo pavardės kaip komandos, nebent yra konkretus pažeidžiamumas, pavyzdžiui, SQL injekcija. LLM modelyje kūrėjo instrukcijos ir vartotojo duomenys yra tame pačiame konteksto lange. Modelis kiekvieną žetoną (angl. token) vertina panašiu svoriu.

Dėl šio atskyrimo trūkumo tinklo perimetras tampa pasenusiu pilies grioviu. Jei leidžiate LLM skaityti el. laišką, iš esmės suteikiate tam el. laiškui vietą prie klaviatūros. Užpuolikai naudojasi šia konstrukcija įterpdami instrukcijas į duomenis, kuriuos modelis galiausiai apdoroja kaip nurodymą. Naujoji „CrowdStrike“ taksonomija pateikia žemėlapį, kaip šie užpuolikai tobulina savo metodus, kad aplenktų bazinį raktinių žodžių filtravimą.

Miegančios grėsmės per trigeriais aktyvuojamas taisykles

Pirmoji nauja technika yra trigeriu aktyvuojamas taisyklės pridėjimas. Šiuo atveju užpuolikas nebando iš karto nulaužti modelio. Vietoj to, jie įveda naują taisyklę, kuri atrodo nekenksminga. Pavyzdžiui, užpuolikas gali nurodyti modeliui visada apibendrinti tekstą tam tikru formatu, jei jis pamato žodį „mėlynoji paukštė“. Pati savaime tai nėra pažeidimas. Tai atrodo kaip nedidelis pritaikymas.

Tačiau užpuolikas gali suaktyvinti šią taisyklę vėliau, kad sukeltų keistą ar žalingą elgesį. Taisyklė veikia kaip „miegantis agentas“. Suaktyvinus trigerį, modelis gali nukreipti savo išvestį į neautorizuotą API arba pradėti nutekinti jautrias sistemos instrukcijas. Kadangi pradinis taisyklės pridėjimas yra nekaltas, jis praeina pro daugumą bazinių aptikimo sistemų. Grėsmė išlieka pasyvi, kol įvykdomos konkrečios sąlygos. Vertinant atakos paviršių, reikia ieškoti šių paslėptų „jei-tada“ teiginių, palaidotų ilgalaikėse pokalbių istorijose ar sistemos instrukcijose.

Filtro apėjimas naudojant kognityvinį žetonų slopinimą

Kognityvinis žetonų slopinimas (angl. cognitive token suppression) yra labiau techninis požiūris į saugumo priemonių apėjimą. Dauguma LLM turi integruotus atsisakymo šablonus. Jei paprašysite modelio padėti parašyti kenkėjišką programinę įrangą, jis yra išmokytas sakyti kažką panašaus į „Aš negaliu padėti įvykdyti šios užklausos“. Saugumo komandos dažnai pasitiki šiais nusistovėjusiais atsisakymo šablonais, kad užtikrintų modelio saugumą.

Užpuolikas, naudodamas kognityvinį žetonų slopinimą, nukreipia modelio lingvistinius pasirinkimus toliau nuo šių šablonų. Jie gali naudoti sudėtingus apribojimus, kurie draudžia modeliui naudoti žodžius „negaliu“, „atsisakau“ arba „politika“. Atimdamas iš modelio galimybę pasakyti „ne“ įprastu būdu, užpuolikas priverčia LLM patekti į būseną, kurioje jis labiau linkęs įvykdyti kenkėjišką užklausą. Tai lingvistiniai antrankiai. Modelis priverstas ieškoti kelio per užklausą, kuris išvengtų jo saugumo mokymų. Atitinkamai saugos filtras sugenda, nes modelis nebeturi prieigos prie žodyno, kurio jam reikia atsisakymui išreikšti.

Naudingojo krovinio slėpimas per algoritminį skaidymą

Algoritminis naudingojo krovinio skaidymas (angl. algorithmic payload decomposition) yra ataka, pagrįsta modelio gebėjimu surinkti sudėtingas idėjas iš paprastų dalių. Užpuolikas pateikia pranešimą keliais etapais. Kiekvienas etapas, žiūrint atskirai, yra nekaltas. Viena užklausa gali paprašyti modelio išsaugoti tam tikrą simbolių eilutę. Antra užklausa gali paprašyti apibrėžti tam tikrą funkciją.

Sujungtos šios dalys susideda į vieną komandą, kuri yra grėsminga. Tai skaitmeninis Trojos arklys komandų injekcijų pasaulyje. Saugumo įrankiai, skenuojantys atskiras užklausas dėl kenkėjiškų ketinimų, nematys nieko blogo. Grėsmė iškyla tik architektūriniame lygmenyje, kai modelis sujungia visas dalis. Mačiau, kaip tai efektyviai veikia aplinkose, kur konteksto langas yra pakankamai didelis, kad tilptų kelios iš pažiūros nesusijusios sąveikos, kurios galiausiai suformuoja pilną eksploatavimo grandinę.

Specialiųjų žetonų injekcijos rizika

Specialiųjų žetonų injekcija yra technika, nukreipta į LLM valdymo jungiklius. Modeliai naudoja specialius žetonus, kad pažymėtų minties pabaigą arba sistemos instrukcijos pradžią. Šie žetonai yra tarsi mygtukai piloto prietaisų skydelyje. Jei užpuolikas gali įterpti šiuos žetonus į savo įvestį, jis gali apgauti modelį priversdamas jį manyti, kad vartotojo turinys iš tikrųjų yra aukšto prioriteto sistemos nurodymas.

Ši ataka sukelia painiavą, kuri apgauna modelį ir priverčia jį suteikti aukštesnį prioritetą nepatikimam vartotojo turiniui. Tai tiesioginis puolimas prieš modelio vidinę logiką. Suklastodamas šiuos valdymo jungiklius, užpuolikas įgyja galimybę perrašyti originalias kūrėjo instrukcijas. Modelis pradeda traktuoti užpuoliką kaip administratorių. Tai ypač pavojinga modeliams, prijungtiems prie išorinių įrankių ar duomenų bazių. Kai modelis patiki, kad užpuolikas yra patikimas sistemos balsas, jis vykdys veiksmus su padidintomis privilegijomis.

Vartotojo apgaudinėjimas naudojant konteksto duomenų injekciją

Netyčinė vartotojo konteksto duomenų injekcija yra bene labiausiai paplitusi grėsmė šiame naujame sąraše. Šis eksploatavimo būdas remiasi riba tarp patikimų duomenų ir vykdomų instrukcijų. Vartotojas yra tas, kuris įveda kenkėjišką instrukciją, tačiau jis tai daro to nežinodamas. Tai atsitinka, kai vartotojas įkelia dokumentą, persiunčia el. laišką arba prideda žiniatinklio turinį, kurį DI vėliau apdoroja.

Užkulisiuose kenkėjiška instrukcija yra paslėpta dokumento ar el. laiško viduje. Vartotojo rašoma užklausa gali būti nekenksminga, pavyzdžiui, „apibendrink šį PDF“. Pačiame PDF faile yra paslėpta teksto eilutė, nurodanti modeliui ignoruoti santrauką ir vietoj to nusiųsti vartotojo sesijos žetoną į išorinį serverį. Vartotojas tampa atakos pristatymo priemone. Duomenų vientisumo požiūriu tai yra košmaras. Tai reiškia, kad kiekviena informacija, prie kurios prisiliečia LLM, yra potencialus pažeidimo vektorius.

Atsparios gynybos architektūros kūrimas

Saugumo komandos gali apsisaugoti nuo tokių atakų keliais būdais. Proaktyviai kalbant, pirmas žingsnis yra grėsmių modeliavimas kiekvienoje vietoje, iš kurios gali kilti modelio kontekstas. Kiekvieną įvestį turite traktuoti kaip toksišką turtą. Tai apima vartotojų įkeltus failus, iš pašto dėžutės gautus el. laiškus ir duomenis, paimtus iš vidinių duomenų bazių.

„CrowdStrike“ rekomenduoja išplėsti testavimą įtraukiant šiuos konkrečius penkis vektorius. „Red teaming“ (atsparumo testavimas) turėtų sutelkti dėmesį į sudėtines攻击, o ne į vienos užklausos nesėkmes. Turite patikrinti, ar jūsų modelį galima apgauti skaidymu ar slopinimu. Be pleistrų diegimo, tikrasis sprendimas yra granuliuota aptikimo inžinerija. Mums reikia sistemų, kurios galėtų stebėti vidinę modelio būseną ir įspėti, kai jis pradeda ignoruoti savo pagrindines instrukcijas.

„Zero trust“ (nulinio pasitikėjimo) principas turi būti taikomas duomenims, patenkantiems į LLM. Galvokite apie tai kaip apie VIP klubo apsauginį prie kiekvienų vidinių durų. Niekada nepasitikėkite duomenimis, net jei jie gaunami iš prisijungusio vartotojo. Apsauginis turi patikrinti, ar turinyje nėra paslėptų instrukcijų, prieš leidžiant jį į modelio konteksto langą. Tai vienintelis būdas sukurti atsparią sistemą, galinčią atlaikyti naujos kartos komandų injekcijas.

Teismo ekspertizės požiūriu taip pat turėtumėte išlaikyti išsamius viso konteksto lango žurnalus kiekvienai sąveikai. Pažeidimo atveju šie žurnalai yra kritiškai svarbūs norint suprasti, kaip užpuolikas apėjo jūsų filtrus. Jei registruojate tik galutinę išvestį, praleidžiate svarbiausią atakos grandinės dalį.

Pagrindinės įžvalgos saugumo vadovams

  • Audituokite konteksto šaltinius: nustatykite visas duomenų įvestis, kurios pasiekia jūsų LLM, ir traktuokite jas kaip nepatikimas instrukcijas.
  • Testuokite lingvistinius apėjimus: naudokite „red teaming“, kad pamatytumėte, ar jūsų modelis yra pažeidžiamas kognityviniam žetonų slopinimui ar algoritminiam skaidymui.
  • Stebėkite specialiuosius žetonus: įdiekite filtrus, kurie aptinka ir pašalina valdymo žetonus iš vartotojo pateiktų duomenų.
  • Švieskite vartotojus apie konteksto rizikas: informuokite darbuotojus, kad nepatikimų dokumentų apibendrinimas gali sukelti sistemos pažeidimą.
  • Įdiekite aptikimo inžineriją: perženkite paprasto raktinių žodžių atitikimo ribas ir pradėkite ieškoti elgsenos anomalijų modelio atsakymuose.

DI yra galingas įrankis, tačiau tai taip pat yra naujo tipo atakos paviršius. Suprasdami šias penkias naujas grėsmes, galite pradėti kurti gynybą, kuri būtų tokia pat išmani kaip ir modeliai, kuriuos bandote apsaugoti.

Šaltiniai: CrowdStrike Falcon Intelligence, NIST AI Risk Management Framework, MITRE ATLAS.

Atsakomybės apribojimas: Šis straipsnis yra skirtas tik informaciniams ir edukaciniams tikslams ir nepakeičia profesionalaus kibernetinio saugumo audito ar reagavimo į incidentus paslaugų.

bg
bg
bg

Iki pasimatymo kitoje pusėje.

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

/ Sukurti nemokamą paskyrą