Obezbeđivanje agenata širom klijentskih krajnjih tačaka kompanije Perplexity pomoću Numbat-a
Numbat je open-source bezbednosni paket kompanije Perplexity za klijentske krajnje tačke. On detektuje, sprečava i istražuje rizično ponašanje AI agenata na macOS-u, Linux-u i Windows-u.
AI agenti moraju biti bezbedni da bi bili korisni. Kako se mogućnosti modela i sistema razvijaju, tako raste i budnost koja je potrebna za zaštitu korisnika.
Rano istraživanje bezbednosti agenata bilo je fokusirano na ubacivanje promptova (prompt injections) i druge oblike adversarialnih ulaznih podataka. Ipak, nedavni napredak u autonomiji agenata dovodi do bezbednosnih incidenata koji ne moraju da podrazumevaju postojanje adversarialnih ulaznih podataka—ili uopšte ljudskih protivnika.
Umesto toga, agenti usmereni na ostvarivanje ciljeva visokog nivoa, bez preskriptivnog usmeravanja o tome kako da postignu te ciljeve, mogu postati protivnik. Do ovoga dolazi kada agent, kao odgovor na cilj koji je odredio korisnik, izabere tok akcije koji korisnik nije nameravao i koji ne bi odobrio. Iako su takvi incidenti pre samo nekoliko meseci bili samo teoretisani, oni su brzo postali predmet praktične zabrinutosti.
Budući da se ova ponašanja ne mogu u potpunosti ispraviti na nivou modela, robusna odbrana stoga mora postojati u okolnom sistemu, uključujući okruženje agenta (agent harness) koje služi kao interfejs modela prema spoljnom svetu. Pokrećemo open-source projekat Numbat, naš bezbednosni paket za agente koji pomaže odbrambenim stranama da spreče, detektuju i ublaže incidente povezane sa agentima. Numbat identifikuje i direktno se integriše sa okruženjima agenata koja se obično nalaze na krajnjim tačkama klijenta u preduzeću, sprovodeći bezbednosna pravila i omogućavajući brzu detekciju i odgovor.
Uvod
Usvajanje agenata predstavlja nove bezbednosne izazove za programere, usvojioce i branioce podjednako. Ovo posebno važi kada preduzeća primenjuju agente direktno na krajnjim tačkama klijenata sa privilegovanim pristupom sistemima i podacima preduzeća.
Primene agenata na krajnjim tačkama klijenata, kao što su kodni agenti zasnovani na CLI-ju ili desktop aplikacijama, dolaze sa različitim nivoima peščanika (sandboxing) i izolacije. Korisnici koriste ove agente za bezbroj slučajeva upotrebe, od kojih svaki ima sopstveni prateći prostor radnji koji može uticati na samu krajnju tačku ili druge sisteme kojima se može pristupiti sa krajnje tačke. Sve više se od agenata očekuje da rade autonomno satima ili čak danima. Za ove radne tokove, mnogi korisnici biraju da delegiraju odobrenja radnji agenata klasifikatorima ili da u potpunosti zaobiđu odobrenja sa zastrašujuće nazvanim konfiguracionim zastavicama kao što su --dangerously-skip-permissions i --yolo. Mnoštvo slučajeva upotrebe i konfiguracija agenata, u kombinaciji sa obimom radnji koje kodni agenti mogu da izvrše na privilegovanim krajnjim tačkama, stvara profil rizika koji zahteva proaktivno upravljanje od strane bezbednosnih timova.
Danas objavljujemo Numbat, open-source bezbednosni paket za agente koji smo napravili da bismo otkrili, istražili i sprečili opasne aktivnosti AI agenata. Kako sve više kompanija usvaja napredne proizvode sa agentima, Numbat osposobljava bezbednosne timove da prate korak sa nastalim bezbednosnim izazovima. On se integriše u svako od najčešće korišćenih klijentskih okruženja agenata dok istovremeno izlaže dosledan interfejs kroz sva njih. Numbat na taj način oslobađa bezbednosne timove tereta izgradnje prilagođenih zaštitnih mera i alata za nadzor za svakog pojedinačnog agenta na kojeg se njihovi korisnici oslanjaju. Numbat je dostupan ekosistemu branilaca kao deo članstva kompanije Perplexity u Open Secure AI Alliance sa kompanijom NVIDIA i drugim organizacijama.
Ovaj članak počinje razmatranjem bezbednosnih izazova koji motivišu Numbat. Zatim predstavljamo dizajn i arhitekturu Numbat-a, zajedno sa našim lekcijama iz primene Numbat-a na hiljadama sopstvenih krajnjih tačaka kompanije Perplexity.
Sagledavanje pejzaža ranjivosti
Pejzaž bezbednosnih incidenata AI agenata se brzo razvija. Veliki deo postojeće literature o bezbednosti agenata fokusira se na napade ubacivanjem (injection attacks), u kojima se zlonamerni sadržaj unosi u promptove ili kontekst modela kako bi se agenti zbunili i naveli na nepravilno ponašanje. Napadi ubacivanjem i zaštitne mere su detaljno proučeni, a programeri agenata, uključujući Perplexity, osmislili su sve robusnije odbrane protiv napada ubacivanjem.
Ali AI agentu nije potreban zlonamerni sadržaj da bi izazvao bezbednosni incident. Zapravo, ne treba pretpostaviti postojanje protivnika uopšte. Pouzdani agent, koji radi unutar poverljivog okruženja sa alatima koje je odobrio administrator, može preduzeti štetne radnje jednostavno zato što se previše trudi da završi svoj zadatak.
Istraživači opisuju ovaj režim otkazivanja kao „slučajni raspad“ (accidental meltdown): štetno ponašanje agenta izazvano ne adversarialnim ulaznim podacima, već običnom greškom u okruženju. Nedostatak datoteke, neuspešan API zahtev, istekli akreditivi ili odbijanje dozvole mogu navesti agenta da traži rešenje u vidu zaobilazne putanje. U ostvarivanju svog originalnog cilja koji je odredio korisnik, agent može preći bezbednosne granice kroz neovlašćeno izviđanje, promene kontrole pristupa, pronalaženje tajni ili eksfiltraciju podataka. Umesto da agenta preuzme napadač, sam agent je napadač. Štaviše, napad može ciljati interne sisteme, eksterne sisteme ili oba, bez načina da se sazna dok je napad već u toku.
Prvi naširoko prijavljeni slučajni raspad stigao je ovog meseca, sa otkrivanjem napada iniciranog od strane agenta od strane kompanije OpenAI, koji je ugrozio produkcijsku infrastrukturu kompanije Hugging Face. Tokom procena GPT modela pre njegovog izdavanja, model je otkrio da ne može da ostvari napredak u proceni sa priloženim kontekstom. Da bi razbio ovaj zastoj, model je pronašao način da pobegne iz svog testnog okruženja u peščaniku (sandbox) i eksfiltrira odgovore procene iz Hugging Face-a. Model je iskoristio svoje okruženje da pobegne od predviđenih mrežnih ograničenja, eskalira privilegije izvan granica peščanika, dobije tajne i pristupi bezbednim sistemima kompanije Hugging Face, a sve to radi ostvarivanja uskog cilja rešavanja procene.
Meltdowns takođe obuhvataju nenamerne sistemske izmene i brisanja. Iako su možda svakodnevnije od narušavanja spoljnog sistema, ovakvi slučajevi su češći i uočljiviji svakom naprednom korisniku koding agenata. Brisanje produkcijskih baza podataka ili početnih direktorijuma najgora je noćna mora svakog developera, a agenti moraju biti u stanju da tokom izvršavanja izbegnu takvo ponašanje.
AI istraživači rade na ublažavanju ovih ponašanja unutar samih modela. Iako su ovi napori nesumnjivo dragoceni, mnogi u istraživačkoj zajednici primećuju fundamentalnu tenziju između obučavanja modela za snažne bezbednosne karakteristike i obučavanja tih istih modela da izvršavaju sve složenije zadatke. Verujemo da je malo verovatno da će odbrane koje se fokusiraju isključivo na sloj modela svesti rizik od raspada na prihvatljive nivoe.
Obezbeđivanje kodnih agenata kroz integracije sa izvornim okruženjima
Zaključak je da bezbednost agenata ne može da se oslanja isključivo na zaštitne mere na nivou modela, korisnika ili zadatka. Umesto toga, bezbednosnim timovima je potrebna vidljivost u ono što agenti zapravo rade na krajnjim tačkama klijenata, plus kontrole koje mogu zaustaviti opasne radnje pre nego što se izvrše. Ovo su kontrole na nivou sistema koje moraju biti čvrsto integrisane sa okruženjem agenta.
Numbat pruža ove kontrole u obliku lagane statičke Go binarne datoteke koja se besprekorno uklapa u vodeća klijentska okruženja agenata. Nudi nadzor uživo, sprovođenje politika i forenzičku rekonstrukciju preko okruženja agenata i izvršnih okruženja.
Ključne tačke integracije između Numbat-a i okruženja agenta su hook-ovi (funkcije presretanja), artefakti sesije i OTLP telemetrija. O svakoj od njih diskutujemo redom.
Hook-ovi
Gotovo svi kodni agenti poseduju hook podsubsistem. Hook-ovi omogućavaju agentima da deterministički izvršavaju potprograme na unapred određenim tačkama unutar životnog ciklusa izvršavanja agenta. Korisnici agenata obično konfigurišu hook-ove kako bi modelima obezbedili dodatni kontekst na predvidljive načine, primenili petlje testiranja i verifikacije i napravili druga poboljšanja mogućnosti agenata.
Iste determinističke osobine zbog kojih su hook-ovi privlačni u ove svrhe takođe ih čine privlačnim za detekciju i odgovor. Obično nije dovoljno uhvatiti većinu pojavnih oblika potencijalno zabrinjavajućeg događaja. Umesto toga, mora se pokriti svaki takav događaj radi detekcije i odgovora. Numbat konfiguriše više vrsta hook-ova, omogućavajući bezbednosnim timovima i IT administratorima da primene bogatu logiku detekcije.
Kod većine kodnih agenata, određene vrste hook-ova (često nazivane hook-ovima „pre akcije“ - pre-action) takođe mogu da blokiraju izvršavanje sledeće akcije agenta. Koristeći ove hook-ove pre akcije, Numbat je u stanju da primeni ne samo logiku detekcije već i preventivna bezbednosna pravila kako bi sprečio da do raspada uopšte dođe.
Artefakti sesije
Hook-ovi su moćno sredstvo za primenu logike detekcije i prevencije u realnom vremenu. Međutim, ova logika mora biti definisana u kodu. Često bezbednosni incident agenta poprima oblik koji se nije mogao unapred predvideti, a kamoli svesti na izvorni kod. Stoga Numbat takođe ima mogućnost pristupa i retrospektivne analize artefakata sesije.
Artefakti sesije obuhvataju mnoge vrste dnevnika (logova) i dijagnostike. Možda najvažnija vrsta dnevnika je transkript sesije, koji beleži LLM razgovore koji diktiraju redosled akcija agenta. Napredni korisnici kodnih agenata već su navikli da izvoze transkripte sesija radi dalje analize kroz komande koje obezbeđuje okruženje. Ali ovi izvozi su obično u formatu običnog teksta, koji je nepogodan za bezbednosne timove kojima su potrebni mašinski čitljivi dnevnici sa doslednom, predvidljivom šemom.
Numbat stoga preuzima artefakte sesije direktno iz samog fajl sistema. Budući da većina klijentskih okruženja agenata čuva originalne artefakte na fajl sistemu (obično unutar direktorijuma sa tačkom specifičnog za agenta pod $HOME), pristupanje fajl sistemu pruža najdirektniji put do ovih podataka u njihovom najupotrebljivijem i najčistijem obliku. Bezbednosni timovi koji koriste Numbat mogu da sakupljaju ove artefakte u normalizovanom NDJSON formatu vremenske linije preko numbat scan, bilo za lokalnu obradu na krajnjoj tački klijenta ili asinhronu udaljenu analizu. Budući da su artefakti sesije statički, samodovoljni zapisi, Numbat je u stanju da rekonstruiše ove vremenske linije čak i za sesije koje su se desile mnogo pre nego što je Numbat instaliran.
OTLP telemetrija
Većina klijentskih okruženja agenata nudi obimnu telemetriju kroz protokol OpenTelemetry (OTLP). Ova telemetrija obično pruža mnoge signale izvan onih koji su dostupni kroz hook-ove ili artefakte sesije.
Numbat može funkcionisati kao OTLP prijemnik preko komande numbat collect. Ova komanda pokreće server kojem kodni agenti šalju OTLP telemetriju radi naknadne analize. Važno je napomenuti da je ovaj server lokalan i po podrazumevanoj vrednosti sluša samo na localhost-u, što znači da sva telemetrija po podrazumevanoj vrednosti ostaje na uređaju. Bezbednosni administratori mogu tada da odluče šta će učiniti sa zabeleženom telemetrijom, bilo da to uključuje primenu lagane obrade na uređaju, udaljenu obradu preko numbat ship, ili složeniju analizu na analitičkim platformama kao što je ClickHouse.
Primena Numbat-a unutar kompanije Perplexity
Unutar Perplexity-ja, koristimo Numbat da osiguramo da naši inženjeri koriste klijentske kodne agente uključujući Claude Code, Codex, OpenCode i Pi.
I naši napori za prevenciju i detekciju u velikoj meri koriste Numbat pravila, koja se primenjuju preko podsubsistema hook-ova svakog agenta. Formulisali smo nekoliko osnovnih pravila za sopstvene potrebe, od kojih smo mnoga isporučili kao deo 52 ugrađena pravila Numbat-a. Ova pravila su organizovana u 11 kategorija ponašanja i set detekcija sekvenci u više koraka kao što su pristup tajnama, eksfiltracija, eskalacija privilegija i lateralno kretanje. Pravila koriste CEL izraze nad normalizovanim događajima, a operatori mogu dodati sopstvena pravila i testove bez menjanja koda Numbat-a.
Na primer, ugrađeno pravilo privilege.sudoers_tamper detektuje upise u sudoers politiku, korišćenje visudo-a i pokušaje instaliranja NOPASSWD odobrenja. Ovo su akcije visoke jačine signala koje mogu pretvoriti ograničeni proces agenta u perzistentni 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 komande ne izgledaju uvek zlonamerno same po sebi, tako da Numbat takođe korelacijski povezuje sekvence unutar sesije agenta. Ugrađeno pravilo chain.secret_manager_read_then_egress detektuje kada agent pročita vrednost iz uobičajenog alata za upravljanje tajnama i kasnije pokuša curl ili wget zahtev koji prenosi podatke. Čitanje tajne može biti legitimno. Izlazni zahtev može biti legitiman. Sekvencirani zajedno, oni zahtevaju 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 nadgledanje Numbat-a širom flote
Poput Bumblebee-ja, našeg open-source skenera za izloženost lanca snabdevanja na krajnjim tačkama programera, Numbat se primenjuje širom naše flote preko MDM-a. Svaki Numbat beleži aktivnost agenta lokalno i šalje struktuiranu telemetriju u naše centralizovane bezbednosne sisteme.
Odande, Perplexity Computer pregledava nedavne nalaze Numbat-a i dnevnike revizije po ponavljajućem rasporedu u potrazi za sumnjivim ili zlonamernim ponašanjem. On istražuje detekcije, rekonstruiše relevantne sesije agenata i posvećuje dodatnu pažnju radnjama koje je Numbat blokirao.
Computer takođe traži praznine u našoj pokrivenosti. On analizira novo ponašanje, predlaže poboljšanja detekcija Numbat-a, testira te promene i otvara pull zahteve na pregled ljudima. Jednom odobrena i primenjena, ta pravila poboljšavaju nadzor širom flote i daju bolje dokaze za sledeću istragu.
Ovo stvara bezbednosni zamajac koji se samousavršava: agenti generišu aktivnost, Numbat pretvara tu aktivnost u normalizovane vremenske linije i telemetriju, Computer istražuje i poboljšava pravila, a ažuriranja pregledana od strane ljudi jačaju kontrole koje štite buduće sesije agenata.
Zaključak
U kompaniji Perplexity verujemo da će AI agenti izvršavati zadatke u svim vrstama okruženja: lokalnom, u oblaku i hibridnom. Svaka kombinacija okruženja agenta i izvršnog okruženja predstavlja jedinstvene bezbednosne izazove, pri čemu kombinatorna složenost preti da preoptereti bezbednosne timove sa ograničenim resursima. Raspadi agenata i druge nove ranjivosti dodatno komplikuju bezbednosnu sliku.
Odbrane koje obitavaju u samom sistemu agenta mogu poboljšati bezbednosni položaj korisnika bez obzira na to gde se agent izvršava. Ovo je upravo ono što Numbat pruža: čvrsto integrisane zaštitne mere agenata koje omogućavaju braniocima da spreče, detektuju i odgovore na zabrinjavajuće ponašanje u realnom vremenu. Kombinovanje Numbat-a sa sistemom Perplexity Computer stvara moćnu bezbednosnu platformu za agente koja osposobljava branioce da ostanu korak ispred.
Numbat je dostupan danas kao open-source projekat za macOS, Linux i Windows. Naše sopstvene klijentske krajnje tačke su zaštićene pomoću Numbat-a, što članovima tima kompanije Perplexity omogućava da s poverenjem koriste agente za zadatke širokog opsega i dugoročne horizonte. Pozivamo bezbednosne timove svuda da iskoriste pristupe Numbat-a na nivou sistema za obezbeđivanje i zaštitu svojih primena 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}
}