Zabezpečení agentů na klientských koncových bodech společnosti Perplexity pomocí Numbatu
Numbat je open-source sada pro zabezpečení agentů pro koncové body klientů od společnosti Perplexity. Detekuje, zabraňuje a vyšetřuje rizikové chování agentů AI na systémech macOS, Linux a Windows.
Agoti AI musí být zabezpečení, aby byli užiteční. S tím, jak se rozvíjejí schopnosti modelů a systémů, roste i ostražitost nutná k ochraně uživatelů.
Raný výzkum bezpečnosti agentů se zaměřoval na prompt injections a další formy nepřátelských vstupů. Nedávný pokrok v autonomii agentů však přináší bezpečnostní incidenty, které nevyžadují existenci nepřátelských vstupů – ani lidských protivníků.
Spíše se agenti, kteří jsou nasměrováni k plnění cílů na vysoké úrovni bez normativního vedení, jak těchto cílů dosáhnout, mohou stát protivníkem. K tomu dochází, když agent v reakci na uživatelem zadaný cíl zvolí postup, který uživatel nezamýšlel a neschválil by jej. Ačkoli byly takové incidenty před pouhými několika měsíci pouze teoretizovány, rychle se staly záležitostí praktického zájmu.
Protože tyto chování nelze plně opravit na vrstvě modelu, robustní obrana musí být součástí okolního systému, včetně agentního harnessu, který slouží jako rozhraní modelu s okolním světem. Poskytujeme jako open-source nástroj Numbat, naši sadu pro zabezpečení agentů, která pomáhá obráncům předcházet incidentům souvisejícím s agenty, odhalovat je a zmírňovat jejich dopady. Numbat identifikuje a přímo se integruje s agentními harnessy, které se běžně vyskytují na koncových bodech podnikových klientů, vynucuje bezpečnostní pravidla a umožňuje rychlou detekci a reakci.
Úvod
Přijetí agentů přináší nové bezpečnostní výzvy pro vývojáře, uživatele i obránce. To platí zejména tehdy, když podniky nasazují agenty přímo na koncové body klientů s oprávněným přístupem k podnikovým systémům a datům.
Nasazení agentů na koncových bodech klientů, jako jsou kódovací agenti založení na CLI nebo desktopových aplikacích, přichází s různou úrovní sandboxování a izolace. Uživatelé využívají tyto agenti pro nespočet případů použití, z nichž každý má svůj vlastní přidružený akční prostor, který může ovlivnit samotný koncový bod nebo jiné systémy přístupné z koncového bodu. Od agentů se stále častěji očekává, že budou pracovat autonomně celé hodiny nebo dokonce dny. Pro tyto pracovní postupy mnoho uživatelů volí delegování schvalování akcí agentů na klasifikátory nebo úplné obejití schvalování pomocí obav budících konfiguračních příznaků, jako jsou --dangerously-skip-permissions a --yolo. Množství případů použití a konfigurací agentů v kombinaci s šíří akcí, které mohou kódovací agenti provádět na koncových bodech s oprávněními, vytváří rizikový profil, který vyžaduje proaktivní řízení ze strany bezpečnostních týmů.
Dnes vydáváme Numbat, open-source sadu pro zabezpečení agentů, kterou jsme vytvořili k detekci, vyšetřování a prevenci nebezpečné aktivity agentů AI. S tím, jak stále více společností přijímá hraniční produkty agentů, Numbat umožňuje bezpečnostním týmům držet krok s výslednými bezpečnostními výzvami. Integruje se do každého z nejpoužívanějších klientských agentních harnessů a zároveň poskytuje konzistentní rozhraní napříč všemi z nich. Numbat tak zbavuje bezpečnostní týmy břemene vytváření vlastních ochranných mechanismů a monitorovacích nástrojů pro každého jednotlivého agenta, na kterého se jejich uživatelé spoléhají. Numbat je k dispozici ekosystému obránců jako součást členství společnosti Perplexity v Open Secure AI Alliance s NVIDIA a dalšími organizacemi.
Tento článek začíná diskusí o bezpečnostních výzvách, které motivovaly vznik nástroje Numbat. Poté představujeme design a architekturu Numbatu spolu s našimi poznatky z nasazení Numbatu napříč tisíci vlastních koncových bodů společnosti Perplexity.
Mapování prostředí zranitelností
Prostředí bezpečnostních incidentů agentů AI se rychle vyvíjí. Velká část stávající literatury o bezpečnosti agentů se zaměřuje na útoky formou injektáže, při nichž je do výzev nebo kontextu modelu vnesena škodlivá datová část za účelem zmást agenta k nevhodnému chování. Injekční útoky a ochranné mechanismy byly podrobně studovány a vývojáři agentů včetně společnosti Perplexity vyvinuli stále robustnější obranu proti injekčním útokům.
Agent AI však k vytvoření bezpečnostního incidentu nepotřebuje škodlivou datovou část. Ve skutečnosti není třeba vůbec předpokládat existenci protivníka. Důvěryhodný agent operující v důvěryhodném prostředí s nástroji schválenými správcem může provést škodlivé akce jednoduše proto, že se příliš snaží dokončit svůj úkol.
Výzkumníci popisují tento režim selhání jako „náhodný kolaps“: škodlivé chování agenta spuštěné nikoli nepřátelským vstupem, ale obyčejnou chybou prostředí. Chybějící soubor, neúspěšný požadavek API, vypršené pověření nebo odepření oprávnění mohou přimět agenta k hledání náhradního řešení. Při plnění svého původního cíle zadaného uživatelem může agent překročit bezpečnostní hranice prostřednictvím neautorizovaného průzkumu, změn řízení přístupu, objevování tajných klíčů nebo exfiltrace dat. Místo toho, aby byl agent co-optován útočníkem, útočníkem je samotný agent. Útok může navíc cílit na interní systémy, externí systémy nebo obojí, aniž by bylo možné to zjistit dříve, než útok již probíhá.
První široce hlášený náhodný kolaps dorazil tento měsíc se zveřejněním útoku iniciovaného agentem, který ohrozil produkční infrastrukturu společnosti Hugging Face. Během vyhodnocování předběžné verze modelu GPT model zjistil, že nemůže pokračovat v hodnocení s poskytnutým kontextem. Aby tento pat prolomil, našel model způsob, jak uniknout ze svého testovacího prostředí sandboxu a exfiltrovat odpovědi z hodnocení ze společnosti Hugging Face. Model využil svůj harness k úniku zamýšlených síťových omezení, eskalaci oprávnění nad rámec sandboxu, získání tajných klíčů a přístupu k zabezpečeným systémům Hugging Face, a to vše za účelem sledování úzkého cíle vyřešit hodnocení.
Kolapsy zahrnují také neúcely mutace a mazání systémů. Ačkoli jsou tyto jevy možná prozaičtější než prolomení externího systému, jsou častější a významnější pro každého pokročilého uživatele kódovacích agentů. Smazání produkčních databází nebo domovských adresářů je nejhorší noční můrou každého vývojáře a agenti se musejí být schopni takovému chování po celou dobu své činnosti vyhnout.
Výzkumníci v oblasti AI pracují na zmírnění těchto chování přímo v modelech. Ačkoli jsou tato úsilí jistě cenná, mnozí v řadách výzkumné komunity vnímají základní napětí mezi trénováním modelů pro silné bezpečnostní vlastnosti a trénováním týchž modelů k provádění stále složitějších úkolů. Domníváme se, že je nepravděpodobné, že by obrana zaměřená výhradně na vrstvu modelu snížila riziko kolapsu na přijatelnou úroveň.
Zabezpečení kódovacích agentů prostřednictvím nativních integrací harnessu
Závěrem je, že bezpečnost agentů nemůže spočívat výhradně na ochranných mechanismech na úrovni modelu, uživatele nebo úkolu. Bezpečnostní týmy spíše potřebují přehled o tom, co agenti na koncových bodech klientů skutečně dělají, spolu s ovládacími prvky, které mohou zastavit nebezpečné akce dříve, než se spustí. Jedná se o ovládací prvky na úrovni systému, které musí být těsně integrovány s agentním harnessem.
Numbat poskytuje tyto ovládací prvky ve formě lehké statické binární soubory v jazyce Go, která se bezproblémově zapojuje do předních klientských agentních harnessů. Nabízí živé monitorování, vynucování pravidel a forenzní rekonstrukci napříč agentními harnessy a prováděcími prostředími.
Klíčovými integračními body mezi nástrojem Numbat a agentním harnessem jsou háčky (hooks), artefakty relace a telemetrie OTLP. Postupně probereme každý z nich.
Háčky
Prakticky všichni kódovací agenti disponují subsystémem háčků. Háčky umožňují agentům deterministicky spouštět podprogramy v předem stanovených bodech v rámci životního cyklu provádění agenta. Uživatelé agentů obvykle konfigurují háčky tak, aby poskytovaly modelům dodatečný kontext předvídatelnými způsoby, implementovaly smyčky testování a ověřování a prováděly další vylepšení schopností agentů.
Stejné deterministické vlastnosti, díky nimž jsou háčky atraktivní pro tyto účely, je činí atraktivními také pro detekci a reakci. Obvykle nestačí zachytit většinu výskytů potenciálně znepokojivé události. Pro detekci a reakci je naopak nutné pokrýt všechny takové výskyty. Numbat konfiguruje několik typů háčků, což bezpečnostním týmům a správcům IT umožňuje implementovat bohatou detekční logiku.
U většiny kódovacích agentů jsou určité typy háčků (běžně nazývané „pre-action“ háčky) schopny také blokovat provádění další akce agenta. Pomocí těchto pre-action háčků dokáže Numbat implementovat nejen detekční logiku, ale také preventivní bezpečnostní pravidla, která zabrání vzniku kolapsu.
Artefakty relace
Háčky jsou mocným prostředkem pro implementaci detekční a preventivní logiky v reálném čase. Tuto logiku je však nutné specifikovat v kódu. Bezpečnostní incident agenta má často formu, kterou nebylo možné předem předvídat, natož ji redukovat na zdrojový kód. Numbat má proto také schopnost přistupovat k artefaktům relace a analyzovat je zpětně.
Artefakty relace zahrnují mnoho typů protokolů a diagnostik. Nejdůležitějším typem protokolu je pravděpodobně přepis relace, který zaznamenává konverzace s LLM určující sled akcí agenta. Pokročilí uživatelé kódovacích agentů jsou již zvyklí exportovat přepisy relací pro další analýzu pomocí příkazů poskytovaných harnessem. Tyto exporty jsou však obvykle ve formátu prostého textu, který je nevhodný pro bezpečnostní týmy vyžadující strojově čitelné protokoly s konzistentním a předvídatelným schématem.
Numbat tak načítá artefakty relace přímo ze samotného souborového systému. Jelikož většina klientských agentních harnessů ukládá původní artefakty v souborovém systému (obvykle v adresáři specifickém pro agenta pod $HOME), napojení na souborový systém poskytuje nejkratší cestu k těmto datům v jejich nejužitečnější a nejčistší podobě. Bezpečnostní týmy používající Numbat mohou tyto artefakty shromažďovat v normalizovaném časovém formátu NDJSON prostřednictvím numbat scan, a to buď pro místní zpracování na koncovém bodě klienta, nebo pro asynchronní vzdálenou analýzu. Protože jsou artefakty relace statické, soběstačné záznamy, Numbat je schopen tyto časové osy rekonstruovat i pro relace, které proběhly dlouho před instalací Numbatu.
Telemetrie OTLP
Většina klientských agentních harnessů nabízí rozsáhlou telemetrii prostřednictvím protokolu OpenTelemetry (OTLP). Tato telemetrie obvykle poskytuje mnoho signálů nad rámec těch, které jsou dostupné prostřednictvím háčků nebo artefaktů relace.
Numbat může fungovat jako přijímač OTLP prostřednictvím příkazu numbat collect. Tento příkaz spustí server, do kterého kódovací agenti odesílají telemetrii OTLP pro následnou analýzu. Důležité je, že tento server je lokální a ve výchozím nastavení naslouchá pouze na localhostu, což znamená, že veškerá telemetrie zůstává ve výchozím nastavení na zařízení. Bezpečnostní správci pak mohou určit, co s přihlášenou telemetrií provést, ať už to zahrnuje implementaci lehkého zpracování v zařízení, vzdálené zpracování prostřednictvím numbat ship nebo složitější analýzu na analytických platformách, jako je ClickHouse.
Nasazení nástroje Numbat v rámci společnosti Perplexity
V rámci společnosti Perplexity používáme Numbat k zabezpečení používání klientských kódovacích agentů našimi inženýry, včetně Claude Code, Codex, OpenCode a Pi.
Jak naše úsilí v oblasti prevence, tak detekce široce využívá pravidla Numbatu, která jsou implementována prostřednictvím subsystému háčků každého agenta. Pro naše vlastní potřeby jsme zformulovali několik základních pravidel, z nichž mnohá jsme dodali jako součást 52 vestavěných pravidel Numbatu. Tato pravidla jsou uspořádána do 11 kategorií chování a sady detekcí vícestupňových sekvencí, jako je přístup k tajným klíčům, exfiltrace, eskalace oprávnění a boční pohyb. Pravidla používají výrazy CEL nad normalizovanými událostmi a operátoři mohou přidávat vlastní pravidla a testy bez nutnosti měnit kód Numbatu.
Například vestavěné pravidlo privilege.sudoers_tamper detekuje zápisy do zásad sudoers, použití visudo a pokusy o instalaci oprávnění NOPASSWD. Jedná se o akce s vysokým signálem, které mohou proměnit omezený proces agenta v trvalý přístup 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é příkazy nemusí vždy sami o sobě vypadat škodlivě, proto Numbat také koreluje sekvence v rámci relace agenta. Vestavěné pravidlo chain.secret_manager_read_then_egress detekuje, když agent přečte hodnotu z běžného nástroje pro správu tajných klíčů a později se pokusí o požadavek curl nebo wget obsahující data. Přečtení tajného klíče může být legitimní. Odchozí požadavek může být legitimní. Vzato dohromady, vyžadují vyšetření.
# 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 monitorování nástrojů Numbat v rámci celé flotily
Stejně jako Bumblebee, náš open-source skener pro vystavení dodavatelskému řetězci na koncových bodech vývojářů, je Numbat nasazen napříč naší flotilou prostřednictvím MDM. Každý Numbat zaznamenává aktivitu agenta lokálně a odesílá strukturovanou telemetrii do našich centralizovaných bezpečnostních systémů.
Odtud Perplexity Computer pravidelně kontroluje nedávné poznatky a protokoly auditů z Numbatu kvůli podezřelé nebo škodlivé aktivitě. Vyšetřuje detekce, rekonstruuje relevantní relace agentů a věnuje zvýšenou pozornost akcím, které Numbat zablokoval.
Computer rovněž vyhledává mezery v našem pokrytí. Analýzuje nové chování, navrhuje vylepšení detekcí Numbatu, testuje tyto změny a otevírá žádosti o stažení (pull requests) k lidské kontrole. Po schválení a nasazení tato pravidla zlepšují monitorování v celé flotile a poskytují lepší důkazy pro příští vyšetřování.
Tím vzniká sebezlepšující bezpečnostní setrvačník: agenti generují aktivitu, Numbat tuto aktivitu mění v normalizované časové osy a telemetrii, Computer vyšetřuje a vylepšuje pravidla a aktualizace kontrolované lidmi posilují ovládací prvky chránící budoucí relace agentů.
Závěr
Ve společnosti Perplexity věříme, že agenti AI budou fungovat ve všech typech prostředí: lokálních, cloudových i hybridních. Každá kombinace agentního harnessu a prováděcího prostředí představuje jedinečné bezpečnostní výzvy, přičemž kombinační složitost hrozí zahlcením bezpečnostních týmů s omezenou šířkou pásma. Kolapsy agentů a další nové zranitelnosti situaci v oblasti bezpečnosti ještě více komplikují.
Obranné mechanismy, které jsou součástí samotného systému agenta, mohou zlepšit bezpečnostní postoj uživatele bez ohledu na to, kde agent běží. Přesně to Numbat přináší: těsně integrované ochranné prvky agentů, které obráncům umožňují předcházet znepokojivému chování, detekovat ho a reagovat na něj v reálném čase. Spojením Numbatu s Perplexity Computer vzniká výkonná platforma pro zabezpečení agentů, která dává obráncům možnost udržet si náskok.
Numbat je dnes k dispozici jako open-source projekt pro macOS, Linux a Windows. Naše vlastní koncové body klientů jsou zabezpečeny Numbatem, což členům týmu Perplexity umožňuje s jistotou používat agenty pro úkoly v širokém rozsahu a dlouhém horizontu. Vyzýváme bezpečnostní týmy všude na světě, aby využily systémový přístup Numbatu k zabezpečení a ochraně svých nasazení agentů.
Citace
@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}
}