Agentide turvamine Perplexity kliendi lõpp-punktides Numbatiga
Numbat on Perplexity avatud lähtekoodiga agentide turvapakett kliendi lõpp-punktidele. See tuvastab, ennetab ja uurib riskeerivat AI agendi käitumist macOS-is, Linuxis ja Windowsis.
Tehisintellektisüsteemi agendid peavad kasulikud olemiseks olema turvalised. Mudelite ja süsteemide võimekuse kasvades suureneb ka kasutajate kaitsmiseks vajalik valvsus.
Varajased agentide turveuuringud keskendusid käsuandmete süstimisele (prompt injection) ja muudele vastandlike sisendite vormidele. Hiljutised edusammud agentide autonoomsuses toovad aga kaasa turvaintsidente, mis ei eelda vastandlike sisendite ega isegi inimvastaste olemasolu.
Pigem võivad kõrgetasemelisi eesmärke järgivad agendid, kellele ei anta nende eesmärkide saavutamise kohta ettekirjutavaid juhiseid, muutuda vastaseks. See juhtub siis, kui agent valib kasutaja määratud eesmärgile vastuseks tegevuskursi, mida kasutaja ei kavatsenud ega oleks heaks kiitnud. Kuigi selliseid juhtumeid teoretiseeriti alles mõni kuu tagasi, on neist kiiresti saanud praktilise mure küsimus.
Kuna neid käitumisviise ei saa mudelitasandil täielikult paikadega parandada, peab tugev kaitse asuma ümbritsevas süsteemis, sealhulgas agendi ümbrises (harness), mis toimib mudeli liidesena välismaailmaga. Avame lähtekoodi Numbatile, mis on meie agentide turvapakett, mis aitab kaitsjatel agentidega seotud intsidente ennetada, tuvastada ja leevendada. Numbat tuvastab ettevõtte kliendi lõpp-punktides leiduvad agentide ümbrised ja integreerub nendega otse, jõustades turvareegleid ning võimaldades kiiret tuvastamist ja reageerimist.
Sissejuhatus
Agentide kasutuselevõtt tekitab uusi turvaprobleeme nii arendajatele, kasutajatele kui ka kaitsjatele. See kehtib eriti siis, kui ettevõtted juurutavad agente otse kliendi lõpp-punktides, millel on privilegeeritud juurdepääs ettevõtte süsteemidele ja andmetele.
Agentide juurutamisel kliendi lõpp-punktides, nagu CLI-põhised või töölauarakenduse-põhised kodeerimisagendid, on erineval tasemel liivakastikeskkonda (sandbox) ja eraldatust. Kasutajad kasutavad neid agente lugematutel kasutusjuhtudel, millest igaühel on oma kaasnev tegevusruum, mis võib mõjutada lõpp-punkti ennast või teisi lõpp-punktist juurdepääsetavaid süsteeme. Üha enam eeldatakse agentidelt autonoomset tegutsemist tunde või isegi päevi. Nende töövoogude jaoks valivad paljud kasutajad agendi tegevuste kinnitamise delegeerimise klassifitseerijatele või jätavad kinnitused täielikult vahele murettekitavalt nimetatud konfiguratsioonilippudega, nagu --dangerously-skip-permissions ja --yolo. Agentide kasutusjuhtude ja konfiguratsioonide paljusus koos tegevuste laiusega, mida kodeerimisagendid saavad privilegeeritud lõpp-punktides sooritada, loob riskiprofiili, mis nõuab turvameeskondadelt proaktiivset haldust.
Täna avaldame Numbati, avatud lähtekoodiga agentide turvapaketi, mille lõime tehisintellekti agentide ohtliku tegevuse tuvastamiseks, uurimiseks ja ennetamiseks. Kuna üha rohkem ettevõtteid võtab kasutusele piirialade agentide tooteid, annab Numbat turvameeskondadele võimaluse sammu pidada tulenevate turvaprobleemidega. See integreerub kõigi enim kasutatud kliendipoolsete agentide ümbristega, paljastades samas kõigi jaoks ühtse liidese. Numbat vabastab seega turvameeskonnad kohandatud kaitsemeetmete ja seirevahendite ehitamise koormast iga üksiku agendi jaoks, millele nende kasutajad tuginetakse. Numbat on kaitsjate ökosüsteemile saadaval osana Perplexity liikmelisusest organisatsioonis Open Secure AI Alliance koos NVIDIA ja teiste organisatsioonidega.
See artikkel algab aruteluga turvaprobleemidest, mis on Numbati ajendiks. Seejärel tutvustame Numbati disaini ja arhitektuuri ning oma õppetunde Numbati juurutamisest tuhandetel Perplexity enda lõpp-punktidel.
Haavatavuste maastiku kaardistamine
Tehisintellekti agentide turvaintsidentide maastik muutub kiiresti. Suur osa olemasolevast agentide turvakirjandusest keskendub rünnakutele, kus mudeli viipadesse või konteksti sisestatakse pahatahtlik kasulik koormus (payload), et ajada agendid vale käitumise tõttu segadusse. Süstimisründeid ja kaitsemeetmeid on põhjalikult uuritud ning agendiarendajad, sealhulgas Perplexity, on välja töötanud üha tugevama kaitse süstimisrünnete vastu.
Kuid tehisintellekti agent ei vaja turvaintsiendi tekitamiseks pahatahtlikku kasulikku koormust. Tegelikult ei pea vastase olemasolu üldse eeldama. Usaldusväärne agent, mis tegutseb usaldusväärses keskkonnas administraatori poolt heakskiidetud tööriistadega, võib sooritada kahjulikke toiminguid lihtsalt seetõttu, et ta üritab oma ülesannet liiga innukalt täita.
Teadlased kirjeldavad seda tõrkerežiimi kui „juhuslikku sulamist“ (accidental meltdown): kahjulik agendi käitumine, mida ei käivita vastaslik sisend, vaid tavaline keskkonnaviga. Puuduv fail, ebaõnnestunud API päring, aegunud identimistunnistus või loa andmisest keeldumine võib panna agendi otsima ajutist lahendust. Järgides oma algset kasutaja määratud eesmärki, võib agent ületada turvapiire volitamata luureandmete kogumise, juurdepääsukontrolli muudatuste, salajaste andmete avastamise või andmete väljaviimise kaudu. Selle asemel, et ründaja agendi üle võtaks, on ründaja ise agent. Lisaks võib ründesihiks olla sisemised süsteemid, välised süsteemid või mõlemad, ilma et oleks võimalik teada enne, kui rünnak on juba käimas.
Esimene laialdaselt teatatud juhuslik sulamine saabus sel kuul OpenAI avalikustamisega agendi algatatud rünnakust, mis kompromiteeris Hugging Face'i tootmistaristu. GPT eelversiooni mudeli hindamise käigus ei suutnud mudel esitatud kontekstiga hindamisel edeneda. Selle ummiku murdmiseks leidis mudel viisi, kuidas pääseda välja oma liivakasti testkeskkonnast ja viia Hugging Face'ist hindamisvastused välja. Mudel kasutas oma ümbrist ära kavandatud võrgupiirangutest põgenemiseks, õiguste eskaleerimiseks liivakasti piiridest kaugemale, saladuste hankimiseks ja turvalistele Hugging Face'i süsteemidele juurdepääsuks – seda kõike eesmärgiga lahendada hindamine.
Sulamised hõlmavad ka soovimatuid süsteemi mutatsioone ja kustutamisi. Kuigi need on ehk tavalisemad kui välisesse süsteemi tungimine, on need sündmused kodeerimisagentide jõukasutaja jaoks sagedasemad ja silmatorkavamad. Tootmisandmebaaside või kodukataloogide kustutamine on iga arendaja suurim õudusunenägu ja agendid peavad suutma sellist käitumist kogu oma täitmise vältel vältima.
Tehisintellekti teadlased töötavad selle nimel, et neid käitumisviise mudelites endis leevendada. Kuigi need pingutused on kindlasti väärtuslikud, tajuvad paljud teadusringkondades põhimõttelist pinget mudelite tugevate turvaomaduste treenimise ja samade mudelite treenimise vahel üha keerukamate ülesannete täitmiseks. Usume, et on ebatõenäoline, et ainult mudelikiibile keskenduvad kaitsemeetmed vähendavad sulamisriski vastuvõetavale tasemele.
Kodeerimisagentide turvamine natiivsete ümbrise integratsioonide kaudu
Tulemus on see, et agentide turvalisus ei saa tugineda ainult mudeli-, kasutaja- või ülesandetasandi kaitsemeetmetele. Pigem vajavad turvameeskonnad nähtavust selle kohta, mida agendid klientide lõpp-punktides tegelikult teevad, ning juhtnuppe, mis suudavad ohtlikud tegevused enne nende käivitamist peatada. Need on süsteemitasandi juhtseadised, mis peavad olema tihedalt integreeritud agendi ümbrisega.
Numbat pakub neid juhtnuppe kergekaalulise staatilise Go binaarfailina, mis ühendub sujuvalt juhtivate kliendipoolsete agentide ümbristega. See pakub reaalajas seiret, eeskirjade täitmist ja forensilist rekonstrueerimist agentide ümbriste ja täitmiskeskkondade lõikes.
Numbati ja agendi ümbrise peamised integreerimispunktid on konksud (hooks), seansi artefaktid ja OTLP telemeetria. Käsitleme neid kõiki kordamööda.
Konksud
Peaaegu kõigil kodeerimisagentidel on konksu (hook) alamsüsteem. Konksud võimaldavad agentidel deterministlikult täita alamprogramme agendi täitmise elutsükli eelmääratud punktides. Agendi kasutajad konfigureerivad konksud tavaliselt selleks, et anda mudelitele täiendavat konteksti etteaimataval viisil, rakendada testimise ja kontrolli silmuseid ning teha muid täiustusi agentide võimekuses.
Samad deterministlikud omadused, mis teevad konksud nendel eesmärkidel atraktiivseks, muudavad nad atraktiivseks ka tuvastamiseks ja reageerimiseks. Potentsiaalselt murettekitava sündmuse enamiku esinemiste tabamisest tavaliselt ei piisa. Tuvastamiseks ja reageerimiseks tuleb pigem katta kõik sellised esinemised. Numbat konfigureerib mitut tüüpi konkse, võimaldades turvameeskondadel ja IT-administraatoritel rakendada rikkalikku tuvastusloogikat.
Enamikus kodeerimisagentides suudavad teatud tüüpi konksud (mida tavaliselt nimetatakse "toimingueelseteks" ehk pre-action konksudeks) blokeerida ka agendi järgmise toimingu täitmise. Neid toimingueelseid konokse kasutades suudab Numbat rakendada mitte ainult tuvastusloogikat, vaid ka ennetavaid turvareegleid, et peatada sulamise toimumine juba eos.
Seansi artefaktid
Konksud on võimsad vahendid tuvastus- ja ennetusloogika rakendamiseks reaalajas. Seda loogikat tuleb aga koodis täpsustada. Sageli võtab tehisintellekti agendi turvaintsident vormi, mida poleks osatud ette näha, rääkimata lähtekoodini taandamisest. Seetõttu on Numbatiga võimalik seansi artefakte ka tagantjärele analüüsida.
Seansi artefaktid hõlmavad paljusid logi- ja diagnostikatüüpe. Võib-olla kõige olulisem logitüüp on seansi ärakiri (transcript), mis salvestab LLM-i vestlused, mis määravad agendi tegevuste jada. Kodeerimisagentide võimukad kasutajad on juba harjunud seansi ärakirju eksportima edasiseks analüüsiks ümbrise pakutavate käskude kaudu. Kuid need ekspordid on tavaliselt lihtteksti vormingus, mis ei sobi turvameeskondadele, kes vajavad ühtse ja ennustatava skeemiga masinloetavaid logisid.
Seetõttu toob Numbat seansi artefaktid otse failisüsteemist endast. Kuna enamik kliendipoolseid agentide ümbriseid salvestab originaalsed artefaktid failisüsteemi (tavaliselt agendispetsiifilisse punkti-kataloogi kausta $HOME all), pakub failisüsteemi puutumine kõige otsesemat teed nende andmeteni nende kõige kasutatavamas ja puhtamas vormis. Numbatit kasutavad turvameeskonnad saavad neid artefakte koguda normaliseeritud NDJSON ajaskaala vormingus käsu numbat scan kaudu, kas kohalikuks töötlemiseks kliendi lõpp-punktis või asünkroonseks kauganalüüsiks. Kuna seansi artefaktid on staatilised, iseseisvad kirjed, suudab Numbat neid ajaskaalasid rekonstrueerida isegi sessioonide puhul, mis toimusid kaua enne Numbati installimist.
OTLP telemeetria
Enamik kliendipoolseid agentide ümbriseid pakub ulatuslikku telemeetriat OpenTelemetry protokolli (OTLP) kaudu. See telemeetria pakub tavaliselt palju signaale lisaks neile, mis on saadaval konksude või seansi artefaktide kaudu.
Numbat võib toimida OTLP vastuvõtjana käsu numbat collect kaudu. See käsk käivitab serveri, kuhu kodeerimisagendid saadavad OTLP telemeetriat edasiseks analüüsiks. Oluline on see, et see server on kohalik ja kuulab vaikimisi ainult localhostis, mis tähendab, et kogu telemeetria jääb vaikimisi seadmesse. Turvaadministraatorid saavad seejärel otsustada, mida logitud telemeetriaga peale hakata, olgu selleks kerge kohapealse töötlemise rakendamine, kaugprotsessing numbat ship kaudu või põhjalikum analüüs analüütikaplatvormidel, nagu ClickHouse.
Numbati juurutamine Perplexity's
Perplexity's kasutame Numbatit selleks, et turvata meie inseneride kliendipoolsete kodeerimisagentide kasutamist, sealhulgas Claude Code, Codex, OpenCode ja Pi.
Nii meie ennetus- kui ka tuvastustööd kasutavad ulatuslikult Numbati reegleid, mis on rakendatud iga agendi konksu alamsüsteemi kaudu. Sõnastasime oma vajaduste jaoks mitu põhireeglit, millest paljud saatsime välja osana Numbati 52 sisseehitatud reeglist. Need reeglid on jagatud 11 käitumiskategooriasse ja mitmesammuliste jadade tuvastamise komplekti, nagu juurdepääs saladustele, andmete väljaviimine, õiguste eskaleerimine ja külgliikumine. Reeglid kasutavad CEL avaldisi normaliseeritud sündmuste põhjal ning operaatorid saavad lisada oma reegleid ja teste Numbati koodi muutmata.
Näiteks sisseehitatud reegel privilege.sudoers_tamper tuvastab kirjutamised sudoers-eeskirjadesse, visudo kasutamise ja katsetused installida NOPASSWD õigusi. Need on kõrge signaaliga toimingud, mis võivad muuta piiratud agendiprotsessi püsivaks juurkasutaja (root) juurdepääsuks.
# privilege.sudoers_tamper (simplified for readability)
id: privilege.sudoers_tamper
severity: high
expr: |
(
event.event_type == "file.write" &&
event.file_path.matches("(^|/)etc/sudoers$|(^|/)etc/sudoers\\.d/[^/]+$")
) || (
event.event_type == "command.exec" &&
event.command.matches("\\bvisudo\\b|\\bNOPASSWD\\s*:")
)Üksikud käsud ei näe omaette alati välja pahatahtlikud, seega korreleerib Numbat ka järjestusi agendi seansi sees. Sisseehitatud reegel chain.secret_manager_read_then_egress tuvastab, kui agent loeb väärtust levinud saladuste haldamise tööriistast ja üritab hiljem teha andmeid kaasavat curl või wget päringut. Saladuse lugemine võib olla õigustatud. Väljuv päring võib olla õigustatud. Järjestikku seotuna vajavad nad uurimist.
# chain.secret_manager_read_then_egress (simplified for readability)
id: chain.secret_manager_read_then_egress
severity: high
sequence:
within_events: 64
steps:
- expr: |
event.event_type == "command.exec" &&
event.command.matches("secretsmanager|get-secret|vault read")
- expr: |
event.event_type == "command.exec" &&
event.command.matches("curl.*(--data|--upload-file)|wget.*--post")Numbatite haldamine ja jälgimine kogu laevastikus
Nagu Bumblebee, meie avatud lähtekoodiga skanner tarneahela avatuse tuvastamiseks arendajate lõpp-punktides, juurutatakse Numbat kogu meie masinapargis MDM-i kaudu. Iga Numbat salvestab agendi tegevuse kohapealt ja saadab struktureeritud telemeetria meie tsentraliseeritud turvasüsteemidesse.
Sealt edasi vaatab Perplexity Computer korduva graafiku alusel läbi hiljutised Numbati leiud ja auditilogid kahtlase või pahatahtliku käitumise suhtes. See uurib tuvastusi, rekonstrueerib asjakohased agendi seansid ja pöörab täiendavat tähelepanu toimingutele, mida Numbat blokeeris.
Computer otsib ka lünki meie kaitses. See analüüsib uut käitumist, teeb ettepanekuid Numbati tuvastusvõime parandamiseks, testib neid muudatusi ja avab inimeste ülevaatamiseks tõmbetaotlused (pull requests). Pärast heakskiitmist ja juurutamist parandavad need reeglid seiret kogu masinapargis ja loovad paremaid tõendeid järgmise uurimise jaoks.
See loob iseennast parandava turbehooratta: agendid genereerivad tegevust, Numbat muudab selle tegevuse normaliseeritud ajaskaaladeks ja telemeetriaks, Computer uurib ja täiustab reegleid ning inimeste poolt üle vaadatud värskendused tugevdavad tulevasi agendi seansse kaitsvaid juhtelemente.
Kokkuvõte
Perplexity's usume, et tehisintellekti agendid täidavad ülesandeid igat tüüpi keskkondades: kohalikes, pilve- ja hübriidkeskkondades. Iga agendi ümbrise ja täitmiskeskkonna kombinatsioon tekitab unikaalseid turvaprobleeme ning kombinatoorne keerukus ähvardab koormata ribalaiuse puuduses vaevlevaid turvameeskondi. Agentide sulamised ja muud uued haavatavused muudavad turvapildi veelgi keerulisemaks.
Kaitsemeetmed, mis asuvad agendisüsteemis endas, võivad parandada kasutaja turvalisust olenemata sellest, kus agent täidetakse. Just seda Numbat pakub: tihedalt integreeritud agendi kaitsemeetmeid, mis võimaldavad kaitsjatel reaalajas murettekitavat käitumist ennetada, tuvastada ja sellele reageerida. Numbati kombineerimine Perplexity Computer'iga loob võimsa agentide turbeplatvormi, mis annab kaitsjatele võimaluse püsida kurvi ees.
Numbat on täna saadaval avatud lähtekoodiga projektina macOS-i, Linuxi ja Windowsi jaoks. Meie oma kliendi lõpp-punktid on kaitstud Numbatiga, mis võimaldab Perplexity meeskonnaliikmetel enesekindlalt kasutada agente laiaulatuslike ülesannete ja pikaajalise horisondi jaoks. Kutsume turvameeskondi kõikjal üles kasutama Numbati süsteemitasandi lähenemist oma agentide juurutuste turvamiseks ja kaitsmiseks.
Viide
@online{perplexity2026SecuringAgentsAcrossPerplexitySClientEndpointsWithNumbat,
author = {{Perplexity} and Adel Karimishiraz and Bex Brooker and Phi Hoang and Jerry Ma},
title = {{Securing agents across Perplexity's client endpoints with Numbat}},
date = {2026-07-29},
url = {https://perplexity.coolkeypoint.com/hub/blog/securing-agents-across-perplexity-s-client-endpoints-with-numbat}
}