Osiguranje agenata na klijentskim krajnjim točkama Perplexityja s Numbatom
Numbat je Perplexityjev sigurnosni paket otvorenog koda za klijentske krajnje točke. Detektira, sprečava i istražuje rizično ponašanje AI agenata na macOS-u, Linuxu i Windowsu.
AI agenti moraju biti sigurni da bi bili korisni. Kako se mogućnosti modela i sustava razvijaju, tako se povećava i budnost potrebna za zaštitu korisnika.
Rano istraživanje sigurnosti agenata bilo je usmjereno na ubacivanje promptova (prompt injections) i druge oblike neprijateljskih unosa. Ipak, nedavni napredak u autonomiji agenata dovodi do sigurnosnih incidenata koji ne moraju pretpostavljati postojanje neprijateljskih unosa – niti ljudskih protivnika uopće.
Umjesto toga, agenti usmjereni na ostvarivanje ciljeva visoke razine, bez propisanih smjernica o tome kako te ciljeve postići, mogu postati protivnik. Do toga dolazi kada agent, kao odgovor na cilj koji je odredio korisnik, odabere tijek radnje koji korisnik nije namjeravao niti bi odobrio. Iako su takvi incidenti prije samo nekoliko mjeseci bili teorijski, brzo su postali predmet praktične zabrinutosti.
Budući da se ta ponašanja ne mogu u potpunosti ispraviti unutar sloja modela, robusna obrana stoga mora postojati u okolnom sustavu, uključujući okruženje agenta (agent harness) koje služi kao sučelje modela prema vanjskom svijetu. Otvorili smo kod Numbata, našeg sigurnosnog paketa za agente koji pomaže braniteljima u sprječavanju, otkrivanju i ublažavanju incidenata povezanih s agentima. Numbat identificira i izravno se integrira s okruženjima agenata koja se obično nalaze na krajnjim točkama poslovnih klijenata, primjenjujući sigurnosna pravila i omogućujući brzu detekciju i odgovor.
Uvod
Usvajanje agenata donosi nove sigurnosne izazove za programere, usvojitelje i branitelje. To posebno vrijedi kada poduzeća primjenjuju agente izravno na krajnjim točkama klijenata s povlaštenim pristupom poslovnim sustavima i podacima.
Primjene agenata na krajnjim točkama klijenata, kao što su agenti za kodiranje koji se temelje na CLI-ju ili računalnim aplikacijama, dolaze s različitim razinama izolovane okoline (sandboxing) i izolacije. Korisnici koriste ove agente za bezbroj slučajeva upotrebe, od kojih svaki ima svoj pripadajući prostor radnji koji može utjecati na samu krajnju točku ili druge sustave dostupne s krajnje točke. Očekuje se da će agenti sve više raditi autonomno satima ili čak danima. Za ove tijekove rada, mnogi korisnici biraju delegirati odobrenja radnji agenata klasifikatorima ili u potpunosti zaobići odobrenja s konfiguracijskim zastavicama zabrinjavajućih naziva kao što su --dangerously-skip-permissions i --yolo. Mnoštvo slučajeva upotrebe i konfiguracija agenata, u kombinaciji sa širinom radnji koje agenti za kodiranje mogu izvršiti na povlaštenim krajnjim točkama, stvara profil rizika koji zahtijeva proaktivno upravljanje od strane sigurnosnih timova.
Danas izdajemo Numbat, sigurnosni paket otvorenog koda za agente koji smo izgradili za otkrivanje, istraživanje i sprječavanje opasnih aktivnosti AI agenata. Kako sve više tvrtki usvaja granične proizvode agenata, Numbat osposobljava sigurnosne timove da drže korak s nastalim sigurnosnim izazovima. Integrira se u svako od najčešće korištenih klijentskih okruženja agenata dok istovremeno izlaže dosljedno sučelje kroz sva njih. Numbat tako oslobađa sigurnosne timove tereta izgradnje prilagođenih zaštitnih mjera i alata za nadzor za svakog pojedinog agenta na kojeg se njihovi korisnici oslanjaju. Numbat je dostupan ekosustavu branitelja kao dio članstva Perplexityja u Open Secure AI Alliance s NVIDIA-om i drugim organizacijama.
Ovaj članak započinje raspravom o sigurnosnim izazovima koji motiviraju Numbat. Zatim predstavljamo dizajn i arhitekturu Numbata, zajedno s našim lekcijama iz primjene Numbata na tisućama Perplexityjevih vlastitih krajnjih točaka.
Smještanje krajolika ranjivosti u kontekst
Krajolik sigurnosnih incidenata AI agenata brzo se razvija. Velik dio postojeće literature o sigurnosti agenata usredotočen je na napade ubacivanjem (injection attacks), u kojima se zlonamjerni teret uvodi u promptove modela ili kontekst kako bi zbunio agente i doveo do neprikladnog ponašanja. Napadi ubacivanjem i zaštitne mjere opsežno su proučavani, a programeri agenata, uključujući Perplexity, osmislili su sve robusnije obrane protiv napada ubacivanjem.
Ali AI agentu nije potreban zlonamjerni teret da bi stvorio sigurnosni incident. Zapravo, uopće nije potrebno pretpostaviti postojanje protivnika. Pouzdani agent, koji radi unutar pouzdanog okruženja s alatima koje je odobrio administrator, može poduzeti štetne radnje jednostavno zato što se previše trudi dovršiti svoj zadatak.
Istraživači opisuju ovaj način kvara kao „slučajnu katastrofu“ (accidental meltdown): štetno ponašanje agenta potaknuto ne zlonamjernim unosom, već običnom pogreškom u okruženju. Nedostatak datoteke, neuspjeli zahtjev za API, istekli vjerodajnički podaci ili odbijanje dozvole mogu potaknuti agenta na potragu za zaobilaznim rješenjem. U ostvarivanju svog izvornog cilja koji je odredio korisnik, agent može prijeći sigurnosne granice kroz neovlašteno izviđanje, promjene kontrole pristupa, otkrivanje tajni ili ispuštanje podataka (data exfiltration). Umjesto da napadač pridobije agenta, sam agent je napadač. Štoviše, napad može ciljati interne sustave, eksterne sustave ili oboje, bez mogućnosti saznanja dok je napad već u tijeku.
Prva naveliko izvještena slučajna katastrofa stigla je ovog mjeseca, s OpenAI-jevim otkrivanjem napada koji su pokrenuli agenti, a koji je kompromitirao proizvodnu infrastrukturu Hugging Facea. Tijekom procjena GPT modela prije izdanja, model se našao u situaciji da ne može ostvariti napredak u procjeni s pruženim kontekstom. Kako bi razbio taj zastoj, model je pronašao način da pobjegne iz svog testnog okruženja (sandbox) i izvuče odgovore procjene iz Hugging Facea. Model je iskoristio svoje okruženje kako bi pobjegao iz nametnutih mrežnih ograničenja, eskalirao privilegije izvan granica sandboxa, pribavio tajne i pristupio sigurnim Hugging Face sustavima, a sve to s uskim ciljem rješavanja procjene.
Katastrofe također uključuju neželjene mutacije i brisanja sustava. Iako možda običnije od probijanja vanjskog sustava, ovi se događaji događaju češće i uočljiviji su svakom naprednom korisniku agenata za kodiranje. Brisanje proizvodnih baza podataka ili matičnih direktorija najgora je noćna mora svakog programera, a agenti se moraju moći kloniti takvih ponašanja tijekom cijelog svog izvršavanja.
Istraživači umjetne inteligencije rade na ublažavanju ovih ponašanja unutar samih modela. Iako su ti napori svakako dragocjeni, mnogi u istraživačkoj zajednici vide temeljnu napetost između treniranja modela za jaka sigurnosna svojstva i treniranja tih istih modela za izvršavanje sve složenijih zadataka. Vjerujemo da je malo vjerojatno da će obrane usmjerene isključivo na sloj modela smanjiti rizik od katastrofe na prihvatljive razine.
Osiguravanje agenata za kodiranje kroz izvorne integracije okruženja
Zaključak je da sigurnost agenata ne može počivati isključivo na zaštitnim mjerama na razini modela, korisnika ili zadatka. Umjesto toga, sigurnosnim timovima je potrebna vidljivost o tome što agenti zapravo rade na krajnjim točkama klijenata, plus kontrole koje mogu zaustaviti opasne radnje prije nego što se izvrše. To su kontrole na razini sustava koje moraju biti čvrsto integrirane s okruženjem agenta.
Numbat pruža ove kontrole u obliku lagane statičke Go binarne datoteke koja se neprimjetno uključuje u vodeća klijentska okruženja agenata. Nudi praćenje uživo, provođenje pravila i forenzičku rekonstrukciju preko okruženja agenata i okruženja izvršavanja.
Ključne točke integracije između Numbata i okruženja agenta su kukice (hooks), artefakti sesije i OTLP telemetrija. O svakoj ćemo raspraviti redom.
Kukice (Hooks)
Gotovo svi agenti za kodiranje posjeduju podsustav kukica (hooks). Kukice omogućuju agentima da deterministički izvršavaju potprograme na unaprijed određenim točkama unutar životnog ciklusa izvršavanja agenta. Korisnici agenata obično konfiguriraju kukice kako bi modelima pružili dodatni kontekst na predvidljive načine, primijenili petlje testiranja i provjere te napravili druga poboljšanja mogućnosti agenata.
Ista deterministička svojstva koja kukice čine privlačnima u ove svrhe također ih čine privlačnima za detekciju i odgovor. Obično je nedovoljno uhvatiti većinu pojavljivanja potencijalno zabrinjavajućeg događaja. Umjesto toga, potrebno je pokriti sva takva pojavljivanja radi detekcije i odgovora. Numbat konfigurira višestruke vrste kukica, omogućujući sigurnosnim timovima i IT administratorima implementaciju bogate logike detekcije.
U većini agenata za kodiranje, određene vrste kukica (često nazivane kukicama „prije radnje“ ili pre-action hooks) također mogu blokirati izvršavanje sljedeće radnje agenta. Koristeći ove kukice prije radnje, Numbat može implementirati ne samo logiku detekcije već i preventivna sigurnosna pravila kako bi spriječio pojavu katastrofe na prvom mjestu.
Artefakti sesije
Kukice su moćno sredstvo za implementaciju logike detekcije i prevencije u stvarnom vremenu. Međutim, ova se logika mora moći odrediti u kodu. Često sigurnosni incident s agentom poprima oblik koji se nije mogao unaprijed predvidjeti, a kamoli svesti na izvorni kod. Stoga Numbat također ima mogućnost naknadnog pristupanja i analiza artefakata sesije.
Artefakti sesije uključuju mnoge vrste zapisnika i dijagnostike. Možda je najvažnija vrsta zapisnika prijepis sesije (session transcript), koji bilježi razgovore s jezičnim modelom (LLM) koji diktiraju slijed radnji agenta. Napredni korisnici agenata za kodiranje već su navikli izvoziti prijepise sesija radi dalje analize putem naredbi koje nudi okruženje. No ti su izvozi obično u formatu običnog teksta, što je neprikladno za sigurnosne timove kojima su potrebni strojno čitljivi zapisnici s dosljednom, predvidljivom shemom.
Numbat stoga dohvaća artefakte sesije izravno iz samog sustava datoteka. Budući da većina klijentskih okruženja agenata pohranjuje izvorne artefakte u sustav datoteka (obično unutar direktorija s točkom specifičnim za agenta pod $HOME), uključivanje u sustav datoteka pruža najizravniji put do tih podataka u njihvom najkorisnijem i izvornom obliku. Sigurnosni timovi koji koriste Numbat mogu prikupljati ove artefakte u normaliziranom NDJSON formatu vremenske crte putem numbat scan, bilo za lokalnu obradu na krajnjoj točki klijenta ili asinkronu udaljenu analizu. Budući da su artefakti sesije statični, samostalni zapisi, Numbat može rekonstruirati ove vremenske crte čak i za sesije koje su se dogodile dugo prije nego što je Numbat instaliran.
OTLP telemetrija
Većina klijentskih okruženja agenata nudi opsežnu telemetriju kroz OpenTelemetry protokol (OTLP). Ova telemetrija obično pruža mnoge signale izvan onih dostupnih kroz kukice ili artefakte sesije.
Numbat može funkcionirati kao OTLP prijamnik putem naredbe numbat collect. Ova naredba pokreće poslužitelj na koji agenti za kodiranje šalju OTLP telemetriju za daljnju analizu. Važno je napomenuti da je ovaj poslužitelj lokalan i prema zadanim postavkama sluša samo na lokalnom hostu (localhost), što znači da sva telemetrija prema zadanim postavkama ostaje na uređaju. Sigurnosni administratori mogu tada odrediti što će učiniti s evidentiranom telemetrijom, uključuje li to implementaciju lagane obrade na uređaju, udaljenu obradu putem numbat ship ili složeniju analizu na analitičkim platformama kao što je ClickHouse.
Primjena Numbata unutar Perplexityja
Unutar Perplexityja koristimo Numbat kako bismo osigurali korištenje klijentskih agenata za kodiranje naših inženjera, uključujući Claude Code, Codex, OpenCode i Pi.
I naši napori za prevenciju i detekciju u velikoj mjeri koriste Numbat pravila, koja su implementirana putem podsustava kukica svakog agenta. Formulisali smo nekoliko osnovnih pravila za vlastite potrebe, od kojih smo mnoga isporučili kao dio Numbatovih 52 ugrađena pravila. Ova su pravila organizirana u 11 kategorija ponašanja i skup detekcija sekvenci u više koraka kao što su pristup tajnama, ispuštanje podataka, eskalacija privilegija i lateralno kretanje. Pravila koriste CEL izuse nad normaliziranim događajima, a operatori mogu dodati vlastita pravila i testove bez mijenjanja Numbatovog koda.
Na primjer, ugrađeno pravilo privilege.sudoers_tamper detektira zapisivanje u sudoers politiku, korištenje visudo alata i pokušaje instaliranja NOPASSWD odobrenja. To su radnje visoke vrijednosti signala koje mogu pretvoriti ograničeni proces agenta u postojani korijenski (root) pristup.
# 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*:")
)Pojedinačne naredbe ne izgledaju uvijek zlonamjerno same po sebi, tako da Numbat također korelira sekvence unutar sesije agenta. Ugrađeno pravilo chain.secret_manager_read_then_egress detektira kada agent pročita vrijednost iz uobičajenog alata za upravljanje tajnama, a kasnije pokuša zahtjev curl ili wget koji nosi podatke. Čitanje tajne može biti legitimno. Izlazni zahtjev može biti legitiman. Sekvencirani zajedno, zahtijevaju istragu.
# 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")Upravljanje i nadzor Numbata preko voznog parka
Poput Bumblebeeja, našeg skenera otvorenog koda za izloženost opskrbnog lanca na krajnjim točkama programera, Numbat se postavlja preko našeg voznog parka putem MDM-a. Svaki Numbat lokalno bilježi aktivnost agenta i šalje strukturiranu telemetriju u naše centralizirane sigurnosne sustave.
Od tamo, Perplexity Computer pregledava nedavne nalaze Numbata i dnevnike revizije prema ponavljajućem rasporedu za sumnjivo ili zlonamjerno ponašanje. Istražuje detekcije, rekonstruira relevantne sesije agenata i daje dodatnu pozornost radnjama koje je Numbat blokirao.
Computer također traži praznine u našoj pokrivenosti. Analizira novo ponašanje, predlaže poboljšanja Numbatovih detekcija, testira te promjene i otvara pull zahtjeve za ljudsku reviziju. Jednom odobrena i primijenjena, ta pravila poboljšavaju nadzor nad voznim parkom i proizvode bolje dokaze za sljedeću istragu.
Ovo stvara sigurnosni zamašnjak koji se sam poboljšava: agenti stvaraju aktivnost, Numbat pretvara tu aktivnost u normalizirane vremenske crte i telemetriju, Computer istražuje i poboljšava pravila, a ažuriranja s ljudskom revizijom jačaju kontrole koje štite buduće sesije agenata.
Zaključak
U Perplexityju vjerujemo da će AI agenti se izvršavati u svim vrstama okruženja: lokalnim, u oblaku i hibridnim. Svaka kombinacija okruženja agenta i okruženja izvršavanja predstavlja jedinstvene sigurnosne izazove, pri čemu kombinatorna složenost prijeti preplavljivanjem sigurnosnih timova s ograničenom propusnošću. Katastrofe agenata i druge nove ranjivosti dodatno kompliciraju sigurnosnu sliku.
Obrane koje obitavaju u samom sustavu agenta mogu poboljšati sigurnosni položaj korisnika bez obzira na to gdje se agent izvršava. To je upravo ono što Numbat pruža: čvrsto integrirane zaštitne mjere agenata koje braniteljima omogućuju sprječavanje, otkrivanje i reagiranje na zabrinjavajuće ponašanje u stvarnom vremenu. Kombinacija Numbata s Perplexity Computerom stvara moćnu platformu za sigurnost agenata koja osnažuje branitelje da ostanu korak ispred.
Numbat je dostupan danas kao projekt otvorenog koda za macOS, Linux i Windows. Naše vlastite krajnje točke klijenata osigurane su Numbatom, što članovima Perplexityjeva tima omogućuje da s povjerenjem koriste agente za široko obuhvaćene zadatke i duge horizonte. Pozivamo sigurnosne timove svugdje da iskoriste Numbatov pristup na razini sustava za osiguranje i zaštitu svojih primjena agenata.
Citiranje
@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}
}