Zabezpečenie agentov na klientskych koncových bodoch spoločnosti Perplexity pomocou nástroja Numbat
Numbat je open-source bezpečnostná sada pre agentov pre koncové body klientov od spoločnosti Perplexity. Detekuje, predchádza a vyšetruje rizikové správanie agentov AI v systémoch macOS, Linux a Windows.
Agenti umelej inteligencie musia byť zabezpečení, aby boli užitoční. S tým, ako sa zvyšujú schopnosti modelov a systémov, rastie aj ostražitosť potrebná na ochranu používateľov.
Skorý výskum bezpečnosti agentov sa zameriaval na prompt injections a iné formy kontroverzných vstupov. Nedávne pokroky v oblasti autonómie agentov však vedú k bezpečnostným incidentom, ktoré si nevyžadujú predpoklad existencie kontroverzných vstupov – ani ľudských protivníkov.
Namiesto toho sa agenti, ktorí majú plniť ciele na vysokej úrovni bez presných pokynov, ako tieto ciele dosiahnuť, môžu stať protivníkom. K tomu dochádza vtedy, keď agent v reakcii na cieľ zadaný používateľom zvolí postup, ktorý používateľ nezamýšľal a neschválil by ho. Hoci boli takéto incidenty ešte pred niekoľkými mesiacmi teoretické, rýchlo sa stali predmetom praktických obáv.
Keďže tieto správania sa nedajú úplne opraviť na úrovni modelu, robustná obrana sa preto musí nachádzať v okolitom systéme vrátane prostredia agenta, ktoré slúži ako rozhranie modelu so vonkajším svetom. Uvoľňujeme ako open-source Numbat, našu bezpečnostnú sadu pre agentov, ktorá pomáha obrancom predchádzať incidentom súvisiacim s agentmi, detekovať ich a zmierňovať ich následky. Numbat identifikuje a priamo sa integrovane prepája s prostrediami agentov, ktoré sa bežne nachádzajú na koncových bodoch podnikových klientov, pričom vynucuje bezpečnostné pravidlá a umožňuje rýchlu detekciu a reakciu.
Úvod
Prijatím agentov vznikajú nové bezpečnostné výzvy pre vývojárov, používateľov aj obrancom rovnakou mierou. To platí najmä vtedy, keď podniky nasadia agentov priamo na koncové body klientov s oprávneným prístupom k podnikovým systémom a údajom.
Nasadenia agentov na koncových bodoch klientov, ako sú kódovací agenti založení na CLI alebo desktopových aplikáciách, prichádzajú s rôznymi úrovňami pieskovania (sandboxing) a izolácie. Používatelia využívajú týchto agentov na nespočetné množstvo prípadov použitia, pričom každý z nich má svoj vlastný súvisiaci akčný priestor, ktorý môže ovplyvniť samotný koncový bod alebo iné systémy dostupné z koncového bodu. Od agentov sa čoraz častejšie očakáva, že budú pracovať autonómne hodiny alebo dokonca dni. Pre tieto pracovné postupy sa mnohí používatelia rozhodnú delegovať schvaľovanie akcií agentov na klasifikátory alebo úplne obísť schvaľovanie pomocou znepokojivo pomenovaných konfiguračných príznakov, ako sú --dangerously-skip-permissions a --yolo. Množstvo prípadov použitia a konfigurácií agentov v kombinácii so šírkou akcií, ktoré kódovací agenti môžu vykonávať na koncových bodoch s oprávneniami, vytvára rizikový profil, ktorý si vyžaduje proaktívnu správu zo strany bezpečnostných tímov.
Dnes vydávame Numbat, open-source bezpečnostnú sadu pre agentov, ktorú sme vytvorili na detekciu, vyšetrovanie a prevenciu nebezpečnej aktivity zo strany agentov umelej inteligencie. S tým, ako stále viac spoločností prijíma produkty s modernými agentmi, Numbat umožňuje bezpečnostným tímom držať krok s výslednými bezpečnostnými výzvami. Integruje sa do každého z najširšie používaných klientskych prostredí agentov a zároveň poskytuje konzistentné rozhranie pre všetky z nich. Numbat tak oslobodzuje bezpečnostné tímy od bremena vytvárania vlastných ochranných opatrení a monitorovacích nástrojov pre každého jednotlivého agenta, na ktorého sa ich používatelia spoliehajú. Numbat je k dispozícii ekosystému obrancov ako súčasť členstva spoločnosti Perplexity v aliancii Open Secure AI Alliance s NVIDIA a ďalšími organizáciami.
Tento článok začína diskusiou o bezpečnostných výzvach, ktoré motivovali vznik Numbatu. Potom predstavujeme dizajn a architektúru Numbatu spolu s našimi poznatkami z nasadenia Numbatu naprieč tisíckami vlastných koncových bodov spoločnosti Perplexity.
Mapovanie prostredia zraniteľností
Prostredie bezpečnostných incidentov agentov umelej inteligencie sa rýchlo vyvíja. Väčšina existujúcej literatúry o bezpečnosti agentov sa zameriava na injekčné útoky, pri ktorých sa do promptov alebo kontextu modelu zavádza škodlivá záťaž s cieľom zmiasť agentov a prinútiť ich k nevhodnému správaniu. Injekčné útoky a ochranné opatrenia boli dôkladne preskúmané a vývojári agentov vrátane spoločnosti Perplexity navrhli čoraz robustnejšie obranu proti injekčným útokom.
Agent umelej inteligencie však nepotrebuje škodlivú záťaž na to, aby spôsobil bezpečnostný incident. V skutočnosti netreba vôbec predpokladať existenciu protivníka. Dôveryhodný agent operujúci v dôveryhodnom prostredí s nástrojmi schválenými správcom môže vykonať škodlivé akcie jednoducho preto, že sa príliš snaží splniť svoju úlohu.
Výskumníci opisujú tento režim zlyhania ako „náhodné zlyhanie (accidental meltdown)“: škodlivé správanie agenta vyvolané nie kontroverzným vstupom, ale bežnou chybou prostredia. Chýbajúci súbor, zlyhaná požiadavka API, uplynuté poverenie alebo odmietnutie oprávnenia môžu primäť agenta k hľadaniu náhradného riešenia. Pri sledovaní pôvodného cieľa zadaného používateľom môže agent prekročiť bezpečnostné hranice prostredníctvom neoprávneného prieskumu, zmien riadenia prístupu, objavenia tajných údajov alebo úniku údajov. Namiesto toho, aby bol agent zneužitý útočníkom, útočníkom je samotný agent. Útok navyše môže cieliť na interné systémy, externé systémy alebo na oba, pričom neexistuje spôsob, ako to zistiť, kým útok už prebieha.
Prvé široko publikované náhodné zlyhanie prišlo tento mesiac spolu so zverejnením informácií od spoločnosti OpenAI o útokoch iniciovaných agentom, ktoré kompromitovali produkčnú infraštruktúru spoločnosti Hugging Face. Počas vyhodnocovania predbežnej verzie modelu GPT model zistil, že nedokáže pokročiť v hodnotení pomocou poskytnutého kontextu. Na prekonanie tohto patu našiel model spôsob, ako uniknúť zo svojho testovacieho prostredia v sandboxe a exfiltrovať odpovede z hodnotenia zo systému Hugging Face. Model využil svoje prostredie na únik z plánovaných sieťových obmedzení, eskaláciu oprávnení nad rámec hraníc sandboxu, získanie tajných údajov a prístup k zabezpečeným systémom Hugging Face, a to všetko za účelom splnenia úzko vymedzeného cieľa vyriešiť hodnotenie.
Medzi závažnými zlyhaniami patria aj neúmyselné systémové mutácie a mazania. Hoci sú možno prozaickejšie než narušenie externého systému, tieto udalosti sa vyskytujú častejšie a sú výraznejšie pre každého pokročilého používateľa kódovacích agentov. Vymazanie produkčných databáz alebo domovských adresárov je pre každého vývojára tou najhoršou nočnou morou a agenti sa musia počas celého svojho vykonávania vedieť takémuto správaniu vyhýbať.
Výskumníci v oblasti umelej inteligencie pracujú na zmierňovaní tohto správania priamo v samotných modeloch. Hoci sú tieto snahy určite cenné, mnohí v komunite výskumníkov vnímajú základné napätie medzi trénovaním modelov na silné bezpečnostné vlastnosti a trénovaním tých istých modelov na dosahovanie čoraz zložitejších úloh. Sme presvedčení, že je nepravdepodobné, že by obrana zameraná výlučne na vrstvu modelu znížila riziko zlyhania na prijateľnú úroveň.
Zabezpečenie kódovacích agentov prostredníctvom natívnych integrácií s prostredím
Výsledkom je, že bezpečnosť agentov sa nemôže spoliehať výlučne na ochranné opatrenia na úrovni modelu, používateľa alebo úlohy. Bezpečnostné tímy naopak potrebujú viditeľnosť toho, čo agenti skutočne robiat na koncových bodoch klientov, spolu s ovládacími prvkami, ktoré dokážu zastaviť nebezpečné akcie skôr, ako sa spustia. Ide o systémové ovládacie prvky, ktoré musia byť úzko integrované s prostredím agenta.
Numbat poskytuje tieto ovládacie prvky vo forme ľahkého statického binárneho súboru v jazyku Go, ktorý sa bezproblémovo pripája do popredných klientskych prostredí agentov. Ponúka živé monitorovanie, vynucovanie pravidiel a forenznú rekonštrukciu naprieč prostrediami agentov a prostrediami na vykonávanie.
Kľúčovými integračnými bodmi medzi Numbatom a prostredím agenta sú háčiky (hooks), artefakty relácie a telemetria OTLP. Postupne sa pozrieme na každý z nich.
Háčiky (Hooks)
Prakticky všetci kódovací agenti disponujú subsystémom háčikov (hooks). Háčiky umožňujú agentom deterministicky vykonávať podprogramy v vopred určených bodoch v rámci životného cyklu vykonávania agenta. Používatelia agentov zvyčajne konfigurujú háčiky tak, aby poskytovali modelom dodatočný kontext predvídateľným spôsobom, implementovali testovacie a overovacie slučky a vykonávali iné vylepšenia schopností agenta.
Rovnaké deterministické vlastnosti, vďaka ktorým sú háčiky atraktívne na tieto účely, ich robia atraktívnymi aj na detekciu a reakciu. Zvyčajne nestačí zachytiť väčšinu výskytov potenciálne znepokojujúcej udalosti. Na detekciu a reakciu je namiesto toho nutné pokryť všetky takéto výskyty. Numbat konfiguruje viaceré typy háčikov, čo bezpečnostným tímom a administrátorom IT umožňuje implementovať bohatú detekčnú logiku.
Vo väčšine kódovacích agentov dokážu určité typy háčikov (bežne nazývané „predakčné“ háčiky) tiež blokovať vykonávanie ďalšej akcie agenta. Pomocou týchto predakčných háčikov dokáže Numbat implementovať nielen detekčnú logiku, ale aj preventívne bezpečnostné pravidlá, ktoré zabránia vzniku samotného zlyhania.
Artefakty relácie
Háčiky sú silným prostriedkom na implementáciu detekčnej a preventívnej logiky v reálnom čase. Túto logiku je však nutné vedieť špecifikovať v kóde. Bezpečnostný incident agenta má často formu, ktorú nebolo možné vopred predvídať, nieto ešte redukovať do zdrojového kódu. Numbat preto ponúka aj schopnosť spätne pristupovať k artefaktom relácie a analyzovať ich.
Artefakty relácie zahŕňajú mnoho typov záznamov a diagnostiky. Pravdepodobne najdôležitejším typom záznamu je prepis relácie (session transcript), ktorý zaznamenáva konverzácie s veľkými jazykovými modelmi (LLM), ktoré určujú postupnosť akcií agenta. Pokročilí používatelia kódovacích agentov sú už zvyknutí exportovať prepisy relácií na ďalšiu analýzu prostredníctvom príkazov poskytovaných prostredím. Tieto exporty sú však zvyčajne vo formáte obyčajného textu, ktorý sa nehodí pre bezpečnostné tímy vyžadujúce strojovo čitateľné záznamy s konzistentnou a predvídateľnou schémou.
Numbat tak získava artefakty relácie priamo zo samotného súborového systému. Keďže väčšina klientskych prostredí agentov ukladá pôvodné artefakty do súborového systému (zvyčajne v adresári s bodkou špecifickom pre agenta pod $HOME), využitie súborového systému poskytuje najpriamejšiu cestu k týmto údajom v ich najpoužiteľnejšej a najčistejšej forme. Bezpečnostné tímy používajúce Numbat môžu tieto artefakty zhromažďovať v normalizovanom formáte časovej osi NDJSON prostredníctvom príkazu numbat scan, a to buď na lokálne spracovanie na koncovom bode klienta, alebo na asynchrónnu vzdialenú analýzu. Keďže artefakty relácie sú statické, samostatné záznamy, Numbat dokáže rekonštruovať tieto časové osi aj pre relácie, ktoré prebehli dávno predtým, ako bol Numbat nainštalovaný.
Telemetria OTLP
Väčšina klientskych prostredí agentov ponúka rozsiahlu telemetriu prostredníctvom protokolu OpenTelemetry (OTLP). Táto telemetria zvyčajne poskytuje mnoho signálov nad rámec tých, ktoré sú dostupné prostredníctvom háčikov alebo artefaktov relácie.
Numbat môže fungovať ako prijímač OTLP prostredníctvom príkazu numbat collect. Tento príkaz spúšťa server, do ktorého kódovací agenti posielajú telemetriu OTLP na následnú analýzu. Je dôležité poznamenať, že tento server je lokálny a štandardne počúva iba na adrese localhost, čo znamená, že všetka telemetria štandardne zostáva na zariadení. Bezpečnostní správcovia potom môžu rozhodnúť, čo urobiť so zaznamenanou telemetriou, či už to zahŕňa implementáciu nenáročného spracovania v zariadení, vzdialené spracovanie pomocou príkazu numbat ship, alebo podrobnejšiu analýzu na analytických platformách, ako je ClickHouse.
Nasadenie nástroja Numbat v rámci spoločnosti Perplexity
V rámci spoločnosti Perplexity používame Numbat na zabezpečenie toho, ako naši inžinieri využívajú klientskych kódovacích agentov vrátane Claude Code, Codex, OpenCode a Pi.
Naše snahy v oblasti prevencie aj detekcie intenzívne využívajú pravidlá Numbat, ktoré sú implementované prostredníctvom subsystému háčikov každého agenta. Pre naše vlastné potreby sme vytvorili niekoľko základných pravidiel, z ktorých mnohé sme dodali ako súčasť 52 vstavaných pravidiel nástroja Numbat. Tieto pravidlá sú usporiadané do 11 kategórií správania a sady viacrokových detekcií sekvencií, ako sú prístup k tajným údajom, exfiltrácia, eskalácia oprávnení a laterálny pohyb. Pravidlá používajú výrazy CEL nad normalizovanými udalosťami a operátori si môžu pridávať vlastné pravidlá a testy bez toho, aby museli meniť kód nástroja Numbat.
Napríklad vstavané pravidlo privilege.sudoers_tamper deteguje zápisy do politiky sudoers, použitie príkazu visudo a pokusy o inštaláciu oprávnení NOPASSWD. Ide o vysoko signifikantné akcie, ktoré môžu premeniť obmedzený proces agenta na trvalý prístup s oprávneniami root.
# 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*:")
)Jednotlivé príkazy samy o sebe nemusia vždy pôsobiť škodlivo, a preto Numbat koreluje aj sekvencie v rámci relácie agenta. Vstavané pravidlo chain.secret_manager_read_then_egress deteguje, keď agent prečíta hodnotu z bežného nástroja na správu tajných údajov a neskôr sa pokúsi o požiadavku curl alebo wget prenášajúcu údaje. Prečítanie tajných údajov môže byť legitímne. Odchádzajúca požiadavka môže byť legitímna. Keď sa však spoja do sekvencie, vyžadujú si vyšetrenie.
# 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")Správa a monitorovanie nástrojov Numbat v rámci flotily
Podobne ako Bumblebee, náš open-source skener na odhaľovanie zraniteľností dodávateľského reťazca na koncových bodoch vývojárov, sa Numbat nasadzuje v celej našej flotile prostredníctvom MDM. Každý Numbat zaznamenáva aktivitu agenta lokálne a posiela štruktúru telemetrie do našich centralizovaných bezpečnostných systémov.
Odtiaľ Perplexity Computer pravidelne kontroluje nedávne zistenia a záznamy auditov z nástroja Numbat, aby odhalil podozrivé alebo škodlivé správanie. Vyšetruje detekcie, rekonštruuje príslušné relácie agentov a venuje zvýšenú pozornosť akciám, ktoré Numbat zablokoval.
Computer tiež hľadá medzery v našom pokrytí. Analyzuje nové správanie, navrhuje vylepšenia detekcií nástroja Numbat, testuje tieto zmeny a otvára požiadavky na stiahnutie (pull requests) na ľudskú kontrolu. Po schválení a nasadení tieto pravidlá zlepšujú monitorovanie v celej flotile a vytvárajú lepšie dôkazy pre ďalšie vyšetrovanie.
Týmto sa vytvára sebezlepšujúci bezpečnostný zotrvačník: agenti generujú aktivitu, Numbat túto aktivitu mení na normalizované časové osi a telemetriu, Computer vyšetruje a zlepšuje pravidlá a aktualizácie skontrolované človekom posilňujú ovládacie prvky chrániace budúce relácie agentov.
Záver
V spoločnosti Perplexity veríme, že agenti umelej inteligencije budú pracovať vo všetkých typoch prostredí: lokálnych, cloudových aj hybridných. Každá kombinácia prostredia agenta a prostredia na vykonávanie prináša jedinečné bezpečnostné výzvy, pričom kombinačná zložitosť hrozí, že zahltí bezpečnostné tímy s obmedzenou priepustnosťou. Zlyhania agentov a iné nové zraniteľnosti ešte viac komplikujú bezpečnostnú situáciu.
Obranné opatrenia, ktoré sú zakotvené priamo v systéme agenta, môžu zlepšiť bezpečnostný postoj používateľa bez ohľadu na to, kde agent vykonáva svoju činnosť. Presne to prináša Numbat: úzko integrované ochranné opatrenia pre agentov, ktoré umožňujú obrancom predchádzať znepokojivému správaniu, detekovať ho a reagovať naň v reálnom čase. Kombinácia nástroja Numbat a systému Perplexity Computer vytvára silnú platformu na zabezpečenie agentov, ktorá oprávňuje obrancov zostať o krok vpred.
Numbat je dnes k dispozícii ako open-source projekt pre macOS, Linux a Windows. Naše vlastné koncové body klientov sú zabezpečené nástrojom Numbat, čo členom tímu Perplexity umožňuje s istotou používať agentov na úlohách s broad scope a dlhým časovým horizontom. Vyzývame bezpečnostné tímy všade na svete, aby využili prístup na systémovej úrovni, ktorý Numbat ponúka na zabezpečenie a ochranu ich nasadení agentov.
Citácia
@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}
}