LLM integracijų saugumas: kodėl vien apsaugos barjerų nepakanka

Svarbiausia trumpai

  • Testuojamas ne pats LLM modelis, o integracija aplink jį: sisteminė instrukcija, duomenų šaltiniai, įrankiai ir tai, kas su atsakymu daroma toliau
  • Modelis neskiria nurodymo nuo duomenų, todėl pavojingiausia – netiesioginė prompt injection per dokumentus, laiškus ir tinklalapius
  • Ugniasienė ir raktinių žodžių sąrašai čia nepadeda: ataka – gramatiškai taisyklingas tekstas be atpažįstamo parašo
  • Riba, kuri iš tikrųjų veikia, glūdi įrankio teisėse, o ne pasitikėjime modelio gautu tekstu
  • Kibernetinio saugumo įstatymas dirbtinio intelekto atskirai neišskiria: jei modelis pasiekia reguliuojamos sistemos duomenis, integracija yra tas pats tikrinamas paviršius
  • Be antro testinio naudotojo su kitomis teisėmis didžiausia radinių grupė lieka nepatikrinta

Pokalbių robotas, kuris tik performuluoja tekstą, – valdoma rizika. Vos tas pats robotas prijungiamas prie žinių bazės ir gauna teisę sukurti užklausą ar iškviesti API, jis nebėra pokalbių robotas, o naujas atakos paviršius su prieiga prie įmonės sistemų. Per pastaruosius dvejus metus šis šuolis įvyko beveik kiekvienoje organizacijoje, ir paprastai greičiau, nei jį spėjo pavyti LLM integracijų įsilaužimų testavimas.

Šiame straipsnyje surinktos atakos, kurios LLM integracijose pasitaiko praktikoje, priežastys, kodėl įprastos saugumo priemonės jų nepagauna, taip pat tai, ką AI ir LLM integracijų saugumo testavime tikriname ir ką organizacijai verta pasiruošti iš anksto.

Kodėl LLM aplikacijos testavimas – atskira disciplina

Įprastoje aplikacijoje riba aiški: kodas – nurodymas, įvestis – duomenys. SQL injekcija veikia kaip tik todėl, kad vienoje vietoje ši riba netyčia dingo, o parengtomis užklausomis (prepared statements) ją galima struktūriškai atkurti.

Kalbos modelyje tokios ribos iš principo nėra. Sisteminė instrukcija, naudotojo klausimas, iš indekso ištraukti dokumentai ir įrankių atsakymai patenka į vieną konteksto langą kaip vienas teksto srautas. Modelis juos sveria statistiškai, bet nė vienos taisyklės priverstinai neįgyvendina. Parengtos užklausos atitikmens čia nėra.

Iš to kyla vienas sakinys, apibendrinantis visą discipliną: kiekvienas į kontekstą patekęs tekstas – tai potenciali instrukcija. Įkeltas PDF, apdorotas laiškas, komentaras užklausoje, parsisiųstas tinklalapis, įrašas vektorinėje duomenų bazėje.

Atakos, kurios kartojasi praktikoje

Prompt injection

Tiesioginis variantas pažįstamas: naudotojas rašo „nepaisyk visų ankstesnių nurodymų“ ir tikrina formuluotę po formuluotės, kol viena praeina. Palyginimas su SQL injekcija naudingas, bet neišsamus. Duomenų bazė turi gramatiką ir interpretatorių; kalbos modelis gauna tekstą vienu srautu, ir jame nėra loginės sąlygos, ties kuria jis galėtų sustoti.

Pavojingesnis – netiesioginis variantas (indirect prompt injection). Nurodymas glūdi ne naudotojo įvestyje, o turinyje, kurį sistema pasiima pati: įkeltame gyvenimo apraše, gaunamo laiško paraše, prekės aprašyme, tinklalapyje, kurį parsisiunčia agentas. Naudotojas nieko kenkėjiško neįvedė. Jis užduoda nekaltą klausimą, o modelis įvykdo trečiosios šalies nurodymą.

Kad tai ne teorija, rodo dokumentuotas atvejis. Profesorius Markas Riedlas (Mark Riedl) savo profilio puslapyje baltomis raidėmis baltame fone įrašė nurodymą paieškos modeliui teigti, kad jis esąs kelionių laiku ekspertas. Bing modelis atsakyme apie jį būtent tai ir pareiškė. Užpuolikui pakanka nurodymą paruošti iš anksto: HTML komentare, paveikslėlio metaduomenyse, alternatyviajame tekste ar kitame lauke, į kurį paprastai niekas nežiūri. Šios kategorijos detalės surinktos viki puslapyje apie prompt injection, o būdas, kuriuo pokalbio turinys išnešamas į svetimą domeną paveikslėlio adreso pavidalu, aprašytas puslapyje Markdown Exfiltration Channels.

Jailbreak ir apsaugos barjerų apėjimas

Jailbreak – tai kraštutinis prompt injection atvejis: paruošta įvestis apeina ne vieną taisyklę, o visas iš karto. Modelis nustoja filtruoti turinį, išeina iš jam nustatytų ribojimų ir parašo net tai, kas jam tiesiogiai uždrausta.

Kokie trapūs tie ribojimai, parodė 2025 metų patikrinimas. Saugumo tyrėjai DeepSeek R1 modeliui išbandė 50 skirtingų jailbreak užklausų, ir pavyko visos 50, tai yra buvo pažeista 100 proc. saugumo taisyklių. Greitai išleidžiamuose atvirojo kodo modeliuose įdiegti ribojimai dažnai tėra fasadas, o ne apsauga, ir tai verta žinoti jau renkantis modelį.

Duomenų nutekėjimas iš RAG šaltinių

Dažniausias realus radinys įmonių sprendimuose kartu yra ir pats neįspūdingiausias: prieigos teisės pritaikomos po paieškos, o ne prieš ją. Vektoriniame indekse sudėti visų padalinių dokumentai, o filtruojama tik rezultatų sąraše arba nefiltruojama išvis. RAG (retrieval-augmented generation) sprendime būtent paieška nulemia, kas pateks į kontekstą, todėl prieigos logika turi veikti ten pat.

Darbuotojas neprašo dokumento, prie kurio prieigos neturi. Jis paklausia: „Apibendrink, kokios atlyginimų ribos taikomos padalinių vadovams.“ Ir gauna atsakymą. Nė viename prieigos žurnale pažeidimas nematomas, nes formaliai jo ir nebuvo.

Toje pačioje kategorijoje – sisteminės instrukcijos nutekėjimas. Ankstyvoji Bing Chat versija, žinoma Sydney vardu, savo slaptą sisteminę instrukciją kartu su vidinėmis taisyklėmis atidavė po vieno nurodymo atskleisti ankstesnių instrukcijų turinį. Pavyzdys parodė, kad ir Microsoft masto tiekėjui vidines instrukcijas galima ištraukti vienu triuku. Jei sisteminėje instrukcijoje įrašyti API raktai ar galiniai taškai, kartu su ja nuteka ir jie; plačiau apie tai viki puslapiuose System Prompt Extraction ir Cross-Session Context Bleed.

Antras sluoksnis – mokymo duomenys ir įmonės kontekstas. Jei modelis papildomai apmokytas vidiniais dokumentais, užpuolikas klausimų virtine gali bandyti atkurti jų fragmentus; tai vadinama inference attack arba model inversion. Galiausiai išorėje gali atsidurti pirminio kodo fragmentas, API raktas ar asmens duomenys, kurie niekada neturėjo palikti organizacijos sistemų. OWASP Top 10 for LLM Applications sąraše ši kategorija įvardyta atskirai kaip Sensitive Information Disclosure.

Per plačios DI agento teisės

Ekonomiškai sunkiausia kategorija. Asistentas, tvarkantis sąskaitas, gauna rašymo teises apskaitos sistemoje. Klientų aptarnavimo agentas gauna teisę atkurti slaptažodžius. Kol modelis gauna tik tuos nurodymus, kuriuos numatė kūrėjas, viskas veikia. Vos kas nors per svetimą turinį įrašo ten savo nurodymą, sistema įvykdo jo sumanymą su organizacijos teisėmis.

Šiai kategorijai priklauso ir SSRF. Jei asistentui leidžiama iškviesti vidinį API, pavyzdžiui, fone išsiųsti pakvietimą naujam naudotojui, tai gerai suformuluotas nurodymas pasuka jį prieš kitus, jautresnius galinius taškus: liepia keisti roles arba trinti paskyras. Tokiu atveju agentas išeina iš savo vaidmens ir padaro tai, ko jam niekas neleido.

Patikrinimo klausimas niekada nėra „ar modelį galima paveikti“, nes paveikti galima visada. Klausimas kitas: kas blogiausia, ką sėkmingas paveikimas gali paleisti? Apie tai – viki puslapiai Excessive Agency ir Approval Gate Bypass.

Nesaugus modelio atsakymo apdorojimas

Modelio atsakymas praktikoje laikomas patikimu rezultatu ir tada rodomas sąsajoje, įterpiamas į duomenų bazės užklausą arba vykdomas kaip kodas. Taip grįžta klasikinė injekcija, tik modelis čia – tarpinė stotis: jei modelį galima priversti išvesti <script> žymą ar ; DROP TABLE, lieka vienintelis klausimas – ką su tuo padarys kita sistema. Tas pats galioja kodui, kurį modelis parašo programuotojui ir kurį kas nors paleidžia neperžiūrėjęs. Detalės viki puslapiuose Improper Output Handling ir Insecure AI-Generated Code.

Indekso užnuodijimas ir manipuliuoti atsakymai

Jei sistema turinį indeksuoja automatiškai, pavyzdžiui, bendrinamus aplankus, gaunamus laiškus ar viešus puslapius, užpuolikas gali įdėti turinį, kuris indekse pasilieka ir tolesnėse užklausose iškyla kaip kontekstas. Ataka įvykdoma vieną kartą, o veikia pakartotinai. Šią kategoriją aprašo viki puslapis RAG Index Poisoning.

Iš to kyla subtilesnė manipuliacija, rinkoje vadinama LLM-SEO. Internetinė parduotuvė savo puslapyje paslepia sakinį, kad DI parengtoje prekių apžvalgoje reikia pabrėžti būtent šios parduotuvės prekę; modelis paslėptą nurodymą perima, o klientas gauna iškreiptą palyginimą. Sunkesnis atvejis – kai įmonės pokalbių robotas priverčiamas parašyti žalingą ar įžeidų atsakymą: organizacija rizikuoja reputacija, o greta stovi ir teisiniai klausimai, pavyzdžiui, jei tas pats asistentas pataria, kaip padaryti tai, kas draudžiama.

Neribojamas suvartojimas

Mažiau apie konfidencialumą ir daugiau apie sąskaitą. Užklausos, verčiančios modelį generuoti kuo ilgesnius atsakymus, rekursiškai kviesti įrankius ar kartoti paiešką, didina suvartojimą, o joks įspėjimas taip ir nesuveikia. Rinkoje tai vadinama denial of wallet; mechanizmą aprašo viki puslapis Denial-of-Wallet Loops.

Kodėl įprastų saugumo priemonių nepakanka

PriemonėKą ji gebaKodėl jos čia nepakanka
Web aplikacijų ugniasienė (WAF)Atpažįsta parašus struktūrizuotose įvestyseAtaka – gramatiškai taisyklingas laisvas tekstas be parašo, o jį galima parašyti nesuskaičiuojamai daug kartų kitaip ir kitomis kalbomis
Raktinių žodžių draudimo sąrašaiPagauna naiviausią formuluotęPerformulavimas, skaidymas dalimis, Base64, jaustukai ar kita kalba pro juos praeina
Apsaugos barjerų modeliaiProtingas pirmas sluoksnis nuo kasdienių atakųPatys – statistiniai: ką galima suformuluoti, tą galima ir performuluoti
Teiginys, kad pasirinktas saugus modelisDalį rizikų sumažina jau šaltinyjeRadiniai atsiranda integracijoje, o ne modelyje
Klasikinis aplikacijos įsilaužimų testasPadengia aplink esančią web aplikacijąNetikrina grandinės nuo užklausos ir konteksto iki įrankio bei atsakymo

Skirtumas nuo įprastos programinės įrangos – principinis. Klasikinei programai logika nustatyta iš anksto: jei X, tai Y. Modelio elgesys susideda iš išmoktų sąsajų ir konkrečios užklausos, todėl, jei į kontekstą patenka kenkėjiškas nurodymas, aplikacijoje nėra sąlygos, kuri jį sustabdytų. Apsaugos būdų, veikiančių visomis aplinkybėmis, kol kas nežinoma. Ir daugiasluoksnė sisteminė instrukcija, ir detalus taisyklių sąrašas lūžta ties viena sėkminga komanda, kaip parodė Sydney atvejis.

Kokia paplitusi ši problema, rodo ir rinkos duomenys. Pagal Kroll apibendrinimą 92 proc. DI sistemų įsilaužimų testų atskleidė, kad tikrintas modelis yra pažeidžiamas kuria nors prompt injection forma, o 80 proc. rastų klaidų įvertintos kaip vidutinio sunkumo ar sunkesnės. Vadinasi, praktiškai kiekviename tikrintame sprendime buvo spraga, pro kurią modelio taisykles pavyko sulaužyti.

Mintis ne ta, kad išvardytos priemonės nereikalingos. Mintis ta, kad jos visos veikia teksto lygmenyje, o teksto lygmenyje šios ribos įgyvendinti neįmanoma. Įgyvendinti ją galima vienu lygmeniu žemiau: teisėse, su kuriomis paleidžiamas įrankis.

Ką tikriname LLM integracijos įsilaužimų teste

SritisKą tikriname
Sisteminė instrukcijaAr ją galima perskaityti, perrašyti ar apeiti? Ar joje nėra raktų, galinių taškų ar verslo taisyklių, kurioms ten ne vieta?
Tiesioginė injekcijaSistemingas apėjimo būdų išbandymas keliomis kalbomis, skirtingomis koduotėmis ir per kelis pokalbio ėjimus
Netiesioginė injekcijaParuošti dokumentai, laiškai, tinklalapiai ir įrašai kiekviename kanale, iš kurio sistema ima kontekstą
Autorizacija paieškos metuAr klausiančiojo teisės pritaikomos prieš paiešką? Ar atkuriamas kitų klientų ar padalinių turinys?
Įrankiai ir DI agentaiKurie veiksmai įmanomi be patvirtinimo, ar patvirtinimą galima apeiti, ar delegavimas tarp agentų didina teises?
Atsakymo apdorojimasAr modelio atsakymas kur nors rodomas, vykdomas ar įterpiamas į užklausą ir ar ten su juo elgiamasi kaip su nepatikimais duomenimis?
Sesijų ribosKonteksto likučiai tarp sesijų, naudotojų ir klientų, taip pat podėlio elgsena
Suvartojimo ribosUžklausų limitai, atsakymų ilgio lubos, rekursijos apsauga įrankių iškvietimuose
Aplink esanti aplikacijaKlasikinė aprėptis pagal OWASP WSTG: autentifikavimas, sesijų valdymas, API saugumas

Aprėpties eiliškumą imame iš OWASP Top 10 for LLM Applications, o faktinę apimtį nulemia konkreti architektūra: iš kur modelis gauna tekstą, ką jis gali pasiekti ir kas su atsakymu daroma toliau. Atskiros kategorijos kartu su techniniu aprašymu ir sprendimu surinktos LLM viki puslapiuose.

Eiga tokia pati kaip įprasto įsilaužimų testo: suderinama apimtis ir taisyklės, surenkama informacija, atliekami testai su įrodymais, gilinamasi į radinius, sudaroma ataskaita ir atliekamas pakartotinis patikrinimas. Uždaros pokalbių sąsajos arba RAG sprendimo patikrinimas paprastai trunka nuo penkių iki dešimties darbo dienų. Agentiniai sprendimai su keliais įrankiais ir delegavimu kitiems agentams užtrunka ilgiau, nes kiekvieno įrankio teisės tikrinamos atskirai. Ataskaitoje radiniai surikiuoti pagal riziką: ką pavyko pasiekti, kaip tai pakartoti ir kokiais pakeitimais tai pašalinti.

Ką apie tai sako Lietuvos teisė

Lietuvos kibernetinio saugumo reguliavimas dirbtinio intelekto atskirai neišskiria, tačiau saugumo reikalavimai taikomi visiems informacinės sistemos komponentams. Pradėti verta nuo to, ko teisės aktuose nėra: atskiros pareigos testuoti DI ar LLM sprendimus nenustatyta, o įsilaužimų testavimas Lietuvoje apskritai nėra privalomas – testuotojams nenustatyta nei licencijavimo, nei registro tvarkos.

NIS2 direktyva Lietuvoje perkelta ne atskiru teisės aktu, o Kibernetinio saugumo įstatymą išdėstant nauja redakcija – įstatymu Nr. XIV-2902, kuris įsigaliojo 2024 m. spalio 18 d. Iš šio reguliavimo kibernetinio saugumo subjektams kyla trys greta stovinčios pareigos, ir nė viena iš jų nėra įsilaužimų testas:

  • Kibernetinio saugumo reikalavimų aprašo (Vyriausybės nutarimas Nr. 945) 45.8 papunktis – ne rečiau kaip kas 6 mėnesius atliekamas viso masto spragų skenavimas;
  • 48.1 papunktis – kasmetinis atitikties vertinimas, kurį subjektas atlieka pats sau;
  • 48.3 papunktis kartu su Kibernetinio saugumo įstatymo 14 straipsnio 8 dalimi – ne rečiau kaip kas 3 metus atliekamas kibernetinio saugumo auditas.

Terminai skaičiuojami kiekvienam subjektui atskirai: 12 mėnesių organizaciniams ir 24 mėnesiai Apraše išvardytiems techniniams reikalavimams nuo tos dienos, kurią tas subjektas užregistruojamas Kibernetinio saugumo informacinėje sistemoje (KSIS). Vienos visai rinkai bendros datos nėra. Kurios pareigos kam taikomos, atsekėme straipsnyje apie tai, ar įsilaužimų testavimas privalomas.

Praktinė išvada LLM integracijoms paprasta. Jei modelis pasiekia sistemos, kuriai šie reikalavimai taikomi, duomenis, integracija nėra išimtis: ji yra toks pat tikrinamas paviršius kaip API vartai ar vidinis serveris. Pusmetinis spragų skenavimas įrankiais aptinka pasenusius komponentus, bet neatsako į klausimą, ar per įkeltą dokumentą galima perimti agento veiksmus; skirtumą tarp šių dviejų dalykų aprašėme straipsnyje apie tai, kuo skiriasi pažeidžiamumų skenavimas ir įsilaužimų testavimas.

Jei modelis gali pasiekti asmens duomenis, klausimas persikelia į duomenų apsaugos pusę. BDAR 32 straipsnis reikalauja procedūros, kuria reguliariai tikrinamas ir vertinamas techninių bei organizacinių priemonių veiksmingumas, tačiau nenurodo, koks būtent patikrinimas turi būti atliekamas. Nutekėjimas per asistentą savo ruožtu – asmens duomenų saugumo pažeidimas su iš to kylančiais pranešimo terminais. Priežiūros institucija Lietuvoje – Valstybinė duomenų apsaugos inspekcija.

Yra ir viena nuostata, kuri patį testavimo darbą paliečia tiesiogiai. Kibernetinio saugumo įstatymo 25 straipsnis nustato sąlygas, kuriomis pažeidžiamumų galima ieškoti be išankstinio sistemos valdytojo sutikimo: apie radinį pranešama Nacionaliniam kibernetinio saugumo centrui per 24 valandas, patvirtinus pažeidžiamumą veikla nutraukiama, slaptažodžiai nespėliojami, o viešinimas atidedamas. Tarp tų pačių sąlygų aiškiai įrašytas draudimas manipuliuoti darbuotojais. Todėl LLM integracijos testuojamos tik pagal rašytinį užsakovo leidimą ir iš anksto sutartą apimtį.

Vieną dalyką verta pasakyti iš karto. HAXORIS – Slovakijoje registruota įmonė. Kibernetinio saugumo įstatymo 14 straipsnio 8 dalyje numatyto kibernetinio saugumo audito neatliekame – jį atlieka nepriklausomi sertifikuoti auditoriai – ir atitikties nesertifikuojame. Dirbame techninėje pusėje: testuojame sistemas ir parengiame ataskaitą, kurią auditorius gali įvertinti. Kaip ši procedūra vyksta ir kas ją gali atlikti, aprašyta straipsnyje apie kibernetinio saugumo auditą.

Ką pasiruošti prieš testą

Pasirengimas nulemia, kaip giliai teste apskritai galima nueiti. Praktikoje pravers penki dalykai.

  • Prieiga bent prie dviejų naudotojų su skirtingomis teisėmis. Tai ne patogumo klausimas, o sąlyga, be kurios autorizacijos klaidų apskritai neįmanoma įrodyti. Be antro naudotojo nepatikrinta lieka dažniausiai pasitaikanti sunkių radinių grupė.

  • Prijungtų įrankių ir duomenų šaltinių sąrašas kartu su teisėmis, su kuriomis jie veikia. Būtent šis sąrašas nulemia, kiek darbo pareikalaus agentinė dalis.

  • Sisteminė instrukcija, jei ją įmanoma perduoti. Jei perduoti negalima, paprastai perskaitome ją patys, ir tada tai tampa pirmuoju radiniu.

  • Testavimo aplinka su realistiškais, bet ne tikrais duomenimis. Modelio elgesys priklauso nuo turinio, todėl tuščia aplinka duoda tuščius rezultatus.

  • Raštu suderinta apimtis ir veiksmų laikas. Didesnės apkrovos testus suderiname iš anksto, kad jie nesutaptų su gamybinės aplinkos piko valandomis.

Ką verta įdiegti nepriklausomai nuo testo

  • Teisės įrankio lygmeniu, o ne pasitikėjimas tekstu. Įrankis dirba su klausiančiojo, o ne su aplikacijos teisėmis. Visa kita – apsauga netinkamame lygmenyje. Jei agentas dirba su duomenų baze, skaitymo teisės suteikiamos konkretiems duomenims, o ne visumai.

  • Autorizacija prieš paiešką. Vektorinis indeksas gali grąžinti tik tai, ką klausiantysis ir taip gali matyti. Filtravimas po paieškos nėra prieigos kontrolė.

  • Patvirtinimas visam tam, kas negrįžtama. Mokėjimai, trynimas, išsiunčiamos žinutės, teisių keitimas: patvirtina žmogus, o patvirtinimo lange matyti, kas būtent įvyks.

  • Sluoksniuota užklausa ir įvesties izoliavimas. Sisteminiai nurodymai, kūrėjo nurodymai ir naudotojo įvestis gyvena atskirai. Neapdorota naudotojo įvestis niekada neatsiduria prieš sisteminę instrukciją. Sluoksniavimas visko neišsprendžia, bet tai pirmoji gynybos linija; pravartu apriboti ir įvesties ilgį bei formatą.

  • Modelio atsakymas – tai nepatikimi duomenys. Taip su juo ir elgiamasi visur, kur jis rodomas, vykdomas ar įterpiamas į užklausą. Sugeneruotas kodas pirmiausia praleidžiamas per statinę analizę ir paleidžiamas tik izoliuotoje aplinkoje; užklausoje ieškoma netikėtos komandos, nes SELECT negali staiga tapti DELETE.

  • Užrašoma tai, ką modelis pasiūlė, o ne vien tai, kad jis atsakė. Be šio pėdsako incidento atkurti neįmanoma, o kaip tik įrašai leidžia laiku pastebėti pasikartojančius injekcijos bandymus.

  • Jokių paslapčių sisteminėje instrukcijoje. Tai ne saugykla, o kontekstas.

  • Mokymai ir aiškios taisyklės komandai. LLM rizikas supranta ne tik saugumo specialistai, bet ir kūrėjai bei produkto savininkai. Nustatoma, kokius duomenis modeliui leidžiama perduoti ir kaip jo atsakymas naudojamas toliau; kritiniams sprendimams prašoma žmogaus patvirtinimo.

Saugumas nėra vienkartinė būsena. Modelį ir aplinką aplink jį verta patikrinti pakartotinai po kiekvieno esminio pokyčio: pakeitus ar atnaujinus modelį, prijungus naują duomenų šaltinį, pridėjus įrankį ar pakeitus teises. OWASP rekomenduoja, kad toks testavimas būtų nuoseklus ir sektų kiekvieną reikšmingą modelio pakeitimą.

Apibendrinimas

DI diegimas atveria galimybių ir kartu įneša pažeidžiamumų klasę, kokios įprastose aplikacijose nepažinojome. Ataka ateina kaip nekaltas tekstas ir praeina pro visas ugniasienes, todėl saugumas planuojamas projekto pradžioje, o ne priklijuojamas pabaigoje. Nė viena atskira taisyklė ir nė vienas atskiras filtras neapsaugo nuo visko; suveikia sluoksniai, o svarbiausią iš jų sudaro teisės, su kuriomis veikia įrankis. Pasirengimas ir patikrinimas kainuoja daug kartų mažiau nei incidento padarinių šalinimas.

HAXORIS šioje srityje dirba techninėje pusėje. Atliekame AI ir LLM integracijų saugumo testavimą, aplink modelį esančios web aplikacijos įsilaužimų testavimą pagal OWASP WSTG gaires, o pasirengimą Kibernetinio saugumo įstatymo ir NIS2 reikalavimams vertiname atskirai, kaip aprašyta NIS2 įsilaužimų testų puslapyje. Jei DI funkcijos jau veikia gamybinėje aplinkoje arba artėja jų paleidimas, užsisakykite nemokamą konsultaciją – apimtį suderinsime kartu su jūsų komanda.

LLM integracijų testavimas – dažniausiai užduodami klausimai

01

Kas yra LLM integracijos įsilaužimų testas?

Testuojamas ne pats kalbos modelis, o integracija su juo: sisteminė instrukcija, duomenų šaltiniai, iš kurių sudedamas kontekstas, įrankiai ir API, kuriuos modeliui leidžiama iškviesti, taip pat vietos, kuriose jo atsakymas apdorojamas toliau. Tikrinama, ar modelį galima priversti atskleisti duomenis, peržengti prieigos teises ar paleisti veiksmus, kurie jam niekada nebuvo numatyti.

02

Kas yra prompt injection?

Prompt injection – tai nurodymo įterpimas į tekstą, kurį modelis apdoroja kaip kontekstą. Kalbos modelis visą gautą tekstą priima kaip vieną pokalbio srautą ir griežtos ribos tarp nurodymo ir duomenų nepažįsta, todėl įkeltame dokumente, apdorotame laiške ar parsisiųstame tinklalapyje paslėptas nurodymas gali perrašyti pradines taisykles. Netiesioginė forma per tokį svetimą turinį pavojingesnė, nes pats naudotojas nieko kenkėjiško neįveda.

03

Ar apsaugos barjerų ir ugniasienės nepakanka?

Nepakanka. Web aplikacijų ugniasienė dirba su parašais struktūrizuotose įvestyse, o ataka prieš kalbos modelį – gramatiškai taisyklingas laisvas tekstas be atpažįstamo parašo, kurį galima išreikšti nesuskaičiuojamai daug kartų kitaip ir kitomis kalbomis. Apsaugos barjerai – protingas pirmas sluoksnis, tačiau jie patys statistiniai, o ką galima suformuluoti, tą galima ir performuluoti. Tvari apsauga glūdi architektūroje: teisėse įrankio lygmeniu, o ne pasitikėjime tekstu.

04

Ką konkrečiai tikrinate RAG sprendime?

Ar klausiančiojo prieigos teisės pritaikomos dokumentų paieškos metu, ar tik po jos; ar tikslingais klausimais galima atkurti kitų klientų ar padalinių turinį; ar į indeksą patekę dokumentai gali turėti nurodymų modeliui; ar kontekstas išlieka tarp sesijų ir ar sisteminę instrukciją galima perskaityti.

05

Ar Lietuvoje LLM integracijas privaloma testuoti?

Atskiros pareigos testuoti DI ar LLM sprendimus Lietuvos teisėje nėra, o įsilaužimų testavimas apskritai nėra privalomas – testuotojams nenustatyta nei licencijavimo, nei registro tvarkos. Kibernetinio saugumo subjektams nustatytos trys kitos pareigos: ne rečiau kaip kas 6 mėnesius atliekamas viso masto spragų skenavimas (Kibernetinio saugumo reikalavimų aprašo 45.8 papunktis), kasmetinis atitikties vertinimas, kurį subjektas atlieka pats sau (48.1 papunktis), ir ne rečiau kaip kas 3 metus atliekamas kibernetinio saugumo auditas (48.3 papunktis kartu su Kibernetinio saugumo įstatymo 14 straipsnio 8 dalimi). Nė viena iš jų nėra įsilaužimų testas. Jei modelis pasiekia sistemos, kuriai šie reikalavimai taikomi, duomenis, integracija yra toks pat tikrinamas paviršius kaip ir bet kuris kitas komponentas. Šis straipsnis – informacinė medžiaga, o ne teisinė konsultacija.

06

Ką organizacijai pasiruošti prieš testą?

Prieigą bent prie dviejų naudotojų su skirtingomis teisėmis, nes be to autorizacijos klaidų įrodyti neįmanoma; prijungtų įrankių ir duomenų šaltinių aprašą kartu su teisėmis, su kuriomis jie veikia; jei įmanoma – sisteminę instrukciją; taip pat testavimo aplinką su realistiškais, bet ne tikrais duomenimis. Be antro naudotojo svarbiausia radinių grupė lieka nepatikrinta.

Šaltiniai: straipsnio rekomendacijos ir pavyzdžiai remiasi viešai prieinamais šaltiniais, tarp jų OWASP Top 10 for LLM Applications sąrašu, saugumo įmonių analizėmis ir žiniasklaidoje dokumentuotais incidentais. Iš visų jų kyla ta pati išvada: DI saugumas nėra teorinis klausimas, o kasdienis darbas, kuriame pasirengimas, patikrinimas ir specialistų įtraukimas kartu išlaiko riziką apibrėžtose ribose.

Išsiaiškinkime, ką iš DI asistento galima ištraukti, kol to nepadarė kas nors kitas

Užsisakykite nemokamą konsultaciją