Pereiti prie turinio

DI agentų saugumas: pavojingas ne sprendimas, o paspaudimas

Kaip TwinCortex užtikrina kompiuterį valdančių DI agentų saugumą: ketinimo patikra spustelėjimams, pašto įrankis be siuntimo funkcijos ir darbo rezultatų patikros.

AFKzona Group · 6 min. skaitymo

Trumpas atsakymas

  • DI agentų saugumas nustato, ką agentas gali pakeisti tikrose sistemose; svarbiausia jis ten, kur agentas siunčia, trina ar moka.
  • Nebuvimas stipresnis už leidimą: įrankis be siuntimo funkcijos saugo patikimiau nei taisyklė, draudžianti agentui siųsti.
  • Agento atmintyje nenaudojami faktai blėsta, o draudimai – niekada, ir testas įrodo, kad juos gauna kiekviena užduotis.
  • Agento ataskaita niekada nelaikoma atliktu darbu; užduotis baigta tik tada, kai praeina jos sukurtų failų patikros.

Prieš spausdamas TwinCortex paspaudimo įrankis perskaito, kaip vadinasi valdiklis po žymekliu. Jei pavadinimas atitinka vieną iš 26 šablonų, pavyzdžiui, send, publish, delete, pay ar go live, paspaudimas atmetamas, kol agentas nenurodo, ko tikisi paspaudęs.

TwinCortex – mūsų sukurta natyvi „Mac“ programa, asmeninis skaitmeninis dvynys: daugiau nei 17 000 „Swift“ kodo eilučių ir 18 MCP įrankių, kuriais dirbtinio intelekto (DI) agentas mato ekraną, skaito prieinamumo medį, spaudžia ir rašo. Jos DI agentų saugumas remiasi apsaugomis, kurios stovi tarp agento ir kiekvieno veiksmo, kurio nebeįmanoma atšaukti.

Kompiuterį valdantis agentas pavojingas rašydamas, ne spręsdamas

Kompiuterį valdantis agentas gali samprotauti teisingai ir vis tiek pridaryti žalos, nes žala atsiranda įvesties, o ne pasirinkimo akimirką. Ekrano kopiją, prieinamumo medžio nuskaitymą ar pašto paiešką galima kartoti kiek tik norima. „Send“ paspaudimo nei pakartosi, nei atšauksi – laiškas jau išėjo.

Tipinė kompiuterį valdančio agento klaida – ne prastas sprendimas. Paspaudimas pagal koordinates, nuskaitytas iš sumažintos ekrano kopijos, pataiko į įrankių juostą virš taikinio. Nurodymas, skirtas vienam redaktoriaus langui, įrašomas į kitą. Netaiklus paspaudimas paleidžia tiesioginę transliaciją. Ir kiekvienu atveju įrankis praneša apie sėkmę.

Todėl klausimas ne tas, ar modelis gerai nusprendė, o kas stovi tarp teisingo sprendimo ir klaidingo paspaudimo.

Skaitymą galima kartoti. Rašymo – ne. Apsauga turi saugoti rašymą.

Patikra turi žiūrėti į taikinį, ne į įrankio iškvietimą

Veiksminga apsauga tikrina, ką veiksmas palies, o ne kuris įrankis iškviestas. Taikinio pavadinimo patikra sulaiko netaiklų paspaudimą, o visiškai pašalinta galimybė ištisas veiksmų rūšis padaro neįmanomas. TwinCortex naudoja abu būdus, o kiekvienai agento rolei duoda tik tuos įrankius, kurių reikia jos darbui.

TwinCortex taikinį įvardija dviem užklausomis: paklausia sistemos, koks elementas yra po tašku, ir perskaito pačios programos prieinamumo medį, kuriame pasirenkamas mažiausias tašką apimantis elementas. Todėl mygtukas „Go live“ ir šalia jo esantis segmentas grąžinami kiekvienas su savo pavadinimu.

Du sluoksniai: ketinimo patikra paspaudimams, o pašto įrankis siųsti negali Paspaudimo užklausa pirmiausia paverčiama valdiklio po žymekliu pavadinimu, tada tikrinama pagal negrįžtamų veiksmų šablonus; neatitinkantis valdiklis paspaudžiamas, atitinkantis be nurodyto ketinimo atmetamas, o atitinkantis su ketinimu paspaudžiamas ir įrašomas pavadinimu, o pašto įrankis siųsti neleidžia, nes siuntimo funkcijos neturi. click(x, y) agento komanda Po žymekliu AX, po to medis Negrįžtamas? 26 šablonai Spaudžia neatitinka Atsisako be ketinimo Su ketinimu spaudžia, įrašo mail.send Tokio nėra ne taisyklė, o nebuvimas
Norint paspausti negrįžtamą valdiklį, reikia nurodyti ketinimą. Pašto įrankis laiško išsiųsti negali – tokios funkcijos jame tiesiog nėra.

Kiekvienas negrįžtamo valdiklio paspaudimas yra išsakytas sprendimas. Atsakyme nurodoma, ką paspaudimas iš tiesų palietė. Todėl žurnale matyti „paspaustas Delete“, o ne koordinatės.

Paštui taikoma griežtesnė taisyklė. Pašto įrankis moka tik išvardyti laiškus ir juose ieškoti: siuntimo, atsakymo, trynimo ar pažymėjimo perskaitytu kode tiesiog nėra. Tai ne leidimas, kurį galima neteisingai sukonfigūruoti, o galimybė, kurios nėra. Įrankis, kuris negali siųsti, negali išsiųsti ir ne to. Kalendoriaus įrankis sukurtas taip pat: jis dieną perskaito, bet niekada nieko neužsako, neperkelia ir neatšaukia.

Likusią dalį apriboja rolės. Vykdantysis agentas negali rinkti teksto ar tempti elementų, todėl negali per klaidą raidė po raidės užpildyti formos ar kur nors nutempti failo. Vadovaujantysis agentas, kuris instruktuoja kitus, „rankų“ neturi visai.

Mūsų kompiuterio užduočių vykdymo aplinka galimybes skirsto lygiais nuo 0 (vietiniai veiksmai) iki 4 (pinigai, nuotolinių duomenų trynimas, produkcinė aplinka). Nesuteikta galimybė griežtai draudžiama, ir žmogaus patvirtinimas šio draudimo neapeina. Suteikta galimybė, kurios lygis aukštesnis, nei leidžia užduotis, siunčiama patvirtinti. Viskas, kas nežinoma, laikoma 4 lygiu.

Taisyklės pasiekia kiekvieną užduotį, o atliktą darbą įrodo rezultatai

TwinCortex atmintis draudimus traktuoja kitaip nei visus kitus prisiminimus, o užduočių vykdymo aplinka būseną „atlikta“ suteikia pagal įrodymus, niekada ne pagal agento žodį.

TwinCortex prisiminimai blėsta. Nepatvirtintas prisiminimas kasdien praranda 0,030 savo aktyvumo ir išnyksta po 14 dienų, jei jis nė karto nepanaudojamas. Pasiteisinęs prisiminimas praranda 0,001. Draudimai nepraranda nieko. Jų galiojimas nesibaigia, jie nesujungiami su panašiais ir įkeliami į kiekvieną instrukciją, kad ir kokia būtų užduotis. Testas tikrina, kad dvi nesusijusios užduotys gautų tą patį draudimų skaičių.

Testas tikrina instrukcijos turinį, ne formą: jis suskaičiuoja joje esančius draudimus, todėl tvarkinga instrukcija kartu yra ir išsami.

Įrodymams taikomas tas pats reikalavimas. Pagal žingsnį pavadinta ekrano kopija įrodo tik tai, kad failas egzistuoja, todėl būseną „atlikta“ vykdymo aplinka suteikia, kai praeina rezultatų patikros. Nepraėjusi patikra grąžina užduotį į vykdymą arba pažymi ją kaip užblokuotą.

Kontroliniams taškams galioja ta pati taisyklė: tęsiama užduotis pereina į aiškią atkūrimo būseną su paskutiniu kontroliniu tašku ir likusiomis dalinėmis užduotimis ir tęsia darbą nuo ten.

Prieš manipuliuojamą agentą atlaiko galimybė, kurios nėra

Agento skaitomas tekstas gali bandyti jį nukreipti: nurodymų gali būti laiške, tinklalapyje ar dokumente. TwinCortex tam priešpriešina galimybes, kurių agentas neturi. Pašto įrankis neturi trynimo, kalendoriaus įrankis nerašo, vykdantysis agentas negali rinkti teksto, o nesuteikta galimybė lieka uždrausta, kad ir ką agentas sakytų ir kas bepatvirtintų.

Tokie nurodymai ateina skaitymo keliu. „Anthropic“ dokumentacija apie kompiuterio valdymą įspėja, kad modelis gali vykdyti ekrane rastus nurodymus, o OWASP perteklinį agentiškumą priskiria prie didžiausių kalbos modelių rizikų. Laiškas su prašymu „ištrink laiškus“ ateina per pašto įrankį, kuris nieko ištrinti negali.

Sluoksniai papildo vienas kitą. Nebuvimai nustato, kas apskritai gali įvykti, ketinimo patikra kiekvieną negrįžtamą paspaudimą paverčia išsakytu sprendimu, o apie kiekvieną spustelėjimą pranešama nurodant, ką jis palietė, todėl žurnalas tampa sprendimų įrašu.

Penki klausimai DI agento apsaugoms patikrinti

Šie penki klausimai iš karto parodo, ar agento apsaugos saugo patį rašymą, ar egzistuoja tik jo instrukcijose. Užduokite juos apie bet kurį agentą, kuris veiks jūsų sistemose, nesvarbu, kas jį kuria, ir kiekviename atsakyme tikėkitės veikiančio mechanizmo, o ne taisyklių rinkinio.

KlausimasGeras atsakymas
Kokių veiksmų agentas apskritai negali atlikti?Įrankiai be rašymo galimybės, pavyzdžiui, pašto įrankis, kuris negali siųsti, o ne prašymas to nedaryti
Ar patikra žiūri į taikinį, ar į įrankio pavadinimą?Ji nustato, ką paspaudimas, klavišas ar komanda palies, ir atmeta negrįžtamus veiksmus be užfiksuoto ketinimo ar patvirtinimo
Ar žmogaus patvirtinimas gali suteikti tai, ko užduočiai niekada nebuvo suteikta?Ne. Nesuteiktos galimybės lieka uždraustos, o patvirtinimas tik pakelia jau suteiktos galimybės lygį
Iš kur žinote, kad taisyklė vis dar taikoma?Testas tikrina, kad taisyklės pasiektų agentą kiekviename paleidime, kad ir kokia būtų užduotis, ir nepavyksta, jei jos dingsta ar skiriasi pagal užduotį
Kas laikoma atliktu darbu?Patikros su tikrais rezultatais – egzistuojančiais failais ir rezultatais, patikrintais pagal nurodytą būseną, – o ne agento ataskaita

Ką verta pritaikyti ir kitur

Suskirstykite visus veiksmus, kuriuos agentas gali atlikti, į skaitymą ir rašymą, o apsaugoms skirtas pastangas nukreipkite į rašymą. Apie kiekvieną rašymo veiksmą pirmiausia paklauskite, ar jis apskritai reikalingas. Pašalinta galimybė – apsaugos priemonė, kuri atlaiko net manipuliuojamą modelį, kad ir ką jis perskaitytų.

Atskirkite taisykles nuo jų vykdymo užtikrinimo. Draudimas užklausoje – gairė, o nesamas įrankis – faktas. Pirmiausia kurkite faktus, o testais tikrinkite, kad gairės pasiektų agentą kiekviename paleidime. Jei dar sprendžiate, ar užduočiai apskritai reikia agento, pradėkite nuo šio palyginimo.

Jei norite, kad agentas veiktų jūsų sistemose su apsaugomis, kurias galite patikrinti patys, susipažinkite, kaip kuriame DI agentus ir TwinCortex, arba užsisakykite pokalbį.

Dažni klausimai

Kas yra DI agentų saugumas?

Tai patikros tarp agento sprendimo ir jo poveikio tikroms sistemoms: kokie įrankiai apskritai egzistuoja, kuriems veiksmams reikia nurodyto ketinimo ar žmogaus patvirtinimo, kurioms rolėms kurie įrankiai neduodami ir kaip tikrinamas atliktas darbas. Svarbiausios patikros saugo rašymą – siuntimą, trynimą, mokėjimą, nes skaitymą galima pakartoti, o rašymo – ne.

Kaip neleisti DI agentui per klaidą išsiųsti laiško?

Duokite jam pašto įrankį be siuntimo funkcijos: tada siuntimas per tą įrankį yra ne leidimas, o tiesiog jo nėra. TwinCortex pašto įrankis laiškus išvardija ir juose ieško, o paspaudimas ant bet kurio valdiklio, pavadinto Send, Reply ar Publish, atmetamas, kol agentas nenurodo, ko tikisi paspaudęs. Nurodymai užklausoje silpnesni už abu būdus, nes modelį gali paveikti tai, ką jis perskaito.

Kaip apriboti, ką DI agentas gali daryti kompiuteryje?

Apribokite jį įrankiais, rolėmis ir lygiais. TwinCortex pašto ir kalendoriaus įrankiai skaito ir niekada nerašo, vykdantysis agentas negali rinkti teksto ar tempti elementų, o vadovaujantysis neturi jokių įvesties įrankių. Užduočių vykdymo aplinka galimybes skirsto lygiais nuo 0 (vietiniai veiksmai) iki 4 (pinigai, nuotolinių duomenų trynimas, produkcinė aplinka): nesuteikta galimybė griežtai draudžiama, suteikta, bet aukštesnio lygio nei užduotis, laukia žmogaus patvirtinimo, o viskas, kas nežinoma, laikoma 4 lygiu.

Kaip įrodyti, kad DI agentas tikrai atliko užduotį?

Nepasikliaukite jo ataskaita. Iš anksto apibrėžkite, kokius rezultatus užduotis turi sukurti ir kokias patikras jie turi praeiti, o užduotį laikykite atlikta, kai patikros praeina su tikrais failais. Taip veikia TwinCortex užduočių vykdymo aplinka: būseną „atlikta“ ji suteikia, kai praeina patikros, o nepraėjusi patikra grąžina užduotį į vykdymą arba pažymi ją kaip užblokuotą.

Ar DI agento atmintis turi ką nors pamiršti?

Taip, didžiąją dalį. Faktai apie apleistus projektus turi blėsti, antraip jie nustelbia dabartinius. TwinCortex įprasti prisiminimai kasdien praranda dalį aktyvumo, o nepatvirtinti išnyksta po 14 dienų. Išimtis – draudimai: jie niekada neblėsta, nėra sujungiami su panašiais ir įkeliami į kiekvieną užduotį. Taisyklė, kuri įkeliama tik tada, kai užduotyje ji netyčia paminima, nėra taisyklė.

Šaltiniai

  1. Anthropic dokumentacija – Computer use tool (saugumo rekomendacijos)
  2. OWASP Gen AI Security Project – LLM06:2025 Excessive Agency

Papasakokite, ką norite sukurti.

Nemokamas 30 min. pokalbis su inžinieriumi, kuris vadovautų projektui. Po jo turėsite apimties metmenis ir kainos intervalą.