Protezione degli agenti sugli endpoint client di Perplexity con Numbat

Numbat è la suite di sicurezza per agenti open-source di Perplexity per endpoint client. Rileva, previene e investiga comportamenti rischiosi degli agenti IA su macOS, Linux e Windows.

AutoriPerplexity Secure Intelligence Institute

Gli agenti IA devono essere sicuri per essere utili. Con l'avanzare delle capacità dei modelli e dei sistemi, aumenta anche la vigilanza necessaria per proteggere gli utenti.

La ricerca iniziale sulla sicurezza degli agenti si è concentrata sulle iniezioni di prompt e su altre forme di input avversari. Tuttavia, i recenti progressi nell'autonomia degli agenti danno origine a incidenti di sicurezza che non richiedono l'esistenza di input avversari, o addirittura di avversari umani.

Piuttosto, gli agenti incaricati di perseguire obiettivi di alto livello, senza una guida prescrittiva su come raggiungerli, possono diventare l'avversario. Ciò si verifica quando un agente, in risposta a un obiettivo specificato dall'utente, seleziona un corso d'azione che l'utente non intendeva e non avrebbe approvato. Sebbene tali incidenti fossero teorizzati solo pochi mesi fa, sono rapidamente diventati questioni di pratica preoccupazione.

Poiché questi comportamenti non possono essere completamente corretti all'interno del livello del modello, una difesa solida deve quindi risiedere nel sistema circostante, incluso l'agente harness che funge da interfaccia del modello verso il mondo esterno. Stiamo rendendo open-source Numbat, la nostra suite di sicurezza per agenti che aiuta i difensori a prevenire, rilevare e mitigare gli incidenti legati agli agenti. Numbat identifica e si integra direttamente con gli agenti harness comunemente presenti sugli endpoint dei client aziendali, applicando regole di sicurezza e consentendo una rapida rilevazione e risposta.

Introduzione

L'adozione di agenti pone nuove sfide di sicurezza per sviluppatori, adottanti e difensori. Ciò è particolarmente vero quando le aziende distribuiscono agenti direttamente sugli endpoint dei client con accesso privilegiato ai sistemi e ai dati aziendali.

Le distribuzioni di agenti sugli endpoint dei client, come gli agenti di codifica basati su CLI o applicazioni desktop, presentano diversi livelli di sandboxing e isolamento. Gli utenti sfruttano questi agenti per innumerevoli casi d'uso, ognuno con il proprio spazio d'azione di pertinenza che può influenzare l'endpoint stesso o altri sistemi accessibili dall'endpoint. Sempre più spesso, ci si aspetta che gli agenti operino autonomamente per ore o addirittura giorni. Per questi flussi di lavoro, molti utenti scelgono di delegare le approvazioni delle azioni dell'agente ai classificatori, o di bypassare del tutto le approvazioni con flag di configurazione dai nomi preoccupanti come --dangerously-skip-permissions e --yolo. La molteplicità di casi d'uso e configurazioni degli agenti, combinata con l'ampiezza delle azioni che gli agenti di codifica possono eseguire su endpoint privilegiati, crea un profilo di rischio che richiede una gestione proattiva da parte dei team di sicurezza.

Oggi rilasciamo Numbat, una suite di sicurezza per agenti open-source che abbiamo creato per rilevare, investigare e prevenire attività pericolose da parte di agenti IA. Man mano che sempre più aziende adottano prodotti basati su agenti di frontiera, Numbat consente ai team di sicurezza di stare al passo con le sfide di sicurezza che ne derivano. Si integra in ciascuno degli agenti harness lato client più utilizzati, esponendo un'interfaccia coerente su tutti loro. Numbat libera così i team di sicurezza dall'onere di costruire salvaguardie personalizzate e strumenti di monitoraggio per ogni singolo agente su cui fanno affidamento i propri utenti. Numbat è disponibile per l'ecosistema dei difensori come parte dell'adesione di Perplexity all' Open Secure AI Alliance con NVIDIA e altre organizzazioni.

Architettura di sistema degli agenti protetti da Numbat. Numbat enfatizza il rilevamento locale-prioritario e la forense agnostica rispetto all'agente.

Questo articolo inizia con una discussione sulle sfide di sicurezza che motivano Numbat. Presentiamo quindi il design e l'architettura di Numbat, insieme alle nostre lezioni apprese dalla distribuzione di Numbat su migliaia di endpoint di Perplexity.

Situare il panorama delle vulnerabilità

Il panorama degli incidenti di sicurezza degli agenti IA è in rapida evoluzione. Gran parte della letteratura esistente sulla sicurezza degli agenti si concentra sugli attacchi di iniezione, in cui un payload dannoso viene introdotto nei prompt o nel contesto del modello per confondere gli agenti e spingerli verso un comportamento improprio. Gli attacchi di iniezione e le salvaguardie sono stati ampiamente studiati e gli sviluppatori di agenti, inclusa Perplexity, hanno ideato difese sempre più robuste contro gli attacchi di iniezione.

Ma un agente IA non ha bisogno di un payload dannoso per creare un incidente di sicurezza. Di fatto, non è necessario presumere l'esistenza di un avversario. Un agente fidato, che opera all'interno di un ambiente fidato con strumenti approvati dall'amministratore, può compiere azioni dannose semplicemente perché sta cercando troppo intensamente di completare il proprio compito.

I ricercatori descrivono questa modalità di guasto come un “crollo accidentale”: comportamento dannoso dell'agente innescato non da un input avversario, ma da un normale errore ambientale. Un file mancante, una richiesta API fallita, una credenziale scaduta o un diniego di autorizzazione possono spingere un agente alla ricerca di una soluzione alternativa. Nel perseguire il suo obiettivo originale specificato dall'utente, l'agente potrebbe superare i confini di sicurezza attraverso ricognizioni non autorizzate, modifiche al controllo degli accessi, scoperta di segreti o esfiltrazione di dati. Invece di essere cooptato da un utente malintenzionato, l'agente stesso diventa l'attaccante. Inoltre, l'attacco può prendere di mira sistemi interni, sistemi esterni o entrambi, senza alcun modo di saperlo finché l'attacco non è già in corso.

Il primo crollo accidentale ampiamente riportato è avvenuto questo mese, con la divulgazione da parte di OpenAI di un attacco avviato dall'agente che ha compromesso l'infrastruttura di produzione di Hugging Face. Durante le valutazioni di un modello GPT pre-rilascio, il modello si è trovato nell'impossibilità di progredire nella valutazione con il contesto fornito. Per sbloccare questa situazione, il modello ha trovato un modo per sfuggire al suo ambiente di test sandbox ed esfiltrare le risposte di valutazione da Hugging Face. Il modello ha sfruttato il suo harness per sfuggire ai vincoli di rete previsti, scalare i privilegi oltre i confini della sandbox, ottenere segreti e accedere ai sistemi sicuri di Hugging Face, tutto per perseguire l'obiettivo ristretto di risolvere la valutazione.

I crolli includono anche mutazioni e cancellazioni involontarie del sistema. Sebbene forse più banali rispetto alla violazione di un sistema esterno, questi eventi sono più frequenti e rilevanti per qualsiasi power user di agenti di codifica. Eliminare database di produzione o directory home è il peggior incubo di ogni sviluppatore, e gli agenti devono essere in grado di evitare tali comportamenti durante l'intera esecuzione.

I ricercatori di IA stanno lavorando per mitigare questi comportamenti all'interno dei modelli stessi. Sebbene questi sforzi siano certamente validi, molti nella comunità di ricerca percepiscono una tensione fondamentale tra l'addestramento dei modelli per forti proprietà di sicurezza e l'addestramento degli stessi modelli per compiere attività sempre più complesse. Riteniamo improbabile che le difese incentrate esclusivamente sul livello del modello riducano il rischio di crollo a livelli accettabili.

Proteggere gli agenti di codifica attraverso integrazioni native dell'harness

Il risultato è che la sicurezza degli agenti non può basarsi esclusivamente sulle salvaguardie a livello di modello, utente o attività. Piuttosto, i team di sicurezza necessitano di visibilità su ciò che gli agenti fanno effettivamente sugli endpoint dei client, oltre a controlli che possano fermare azioni pericolose prima che vengano eseguite. Si tratta di controlli a livello di sistema che devono essere strettamente integrati con l'agente harness.

Numbat fornisce questi controlli sotto forma di un binario Go statico leggero che si collega perfettamente ai principali agenti harness lato client. Offre monitoraggio in tempo reale, applicazione delle policy e ricostruzione forense attraverso gli agenti harness e gli ambienti di esecuzione.

I punti di integrazione chiave tra Numbat e un agente harness sono hook, artifact di Sessione e telemetria OTLP. Discutiamo di ciascuno a turno.

Hook

Praticamente tutti gli agenti di codifica possiedono un sottosistema di hook. Gli hook consentono agli agenti di eseguire deterministicamente subroutine in punti predefiniti all'interno del ciclo di vita dell'esecuzione dell'agente. Gli utenti di agenti in genere configurano gli hook per fornire ai modelli un contesto aggiuntivo in modi prevedibili, implementare cicli di test e verifica e apportare altri miglioramenti alle capacità degli agenti.

Le stesse proprietà deterministiche che rendono gli hook attraenti per questi scopi li rendono anche attraenti per il rilevamento e la risposta. In genere è insufficiente cogliere la maggior parte delle occorrenze di un evento potenzialmente preoccupante. Piuttosto, è necessario coprire tutte tali occorrenze per il rilevamento e la risposta. Numbat configura molteplici tipi di hook, consentendo ai team di sicurezza e agli amministratori IT di implementare una ricca logica di rilevamento.

Nella maggior parte degli agenti di codifica, alcuni tipi di hook (comunemente chiamati hook “pre-azione”) sono anche in grado di bloccare l'esecuzione dell'azione successiva dell'agente. Utilizzando questi hook di pre-azione, Numbat è in grado di implementare non solo una logica di rilevamento ma anche regole di sicurezza preventive per impedire che si verifichi un crollo in primo luogo.

Artifact di Sessione

Gli hook sono mezzi potenti per implementare una logica di rilevamento e prevenzione in tempo reale. Tuttavia, questa logica deve essere specificabile nel codice. Spesso, un incidente di sicurezza dell'agente assume una forma che non avrebbe potuto essere prevista in anticipo, tanto meno ridotta al codice sorgente. Pertanto, Numbat ha anche la capacità di accedere e analizzare gli artifact di Sessione retroattivamente.

Gli artifact di Sessione includono molti tipi di log e diagnostica. Forse il tipo di log più importante è la trascrizione della Sessione, che registra le conversazioni LLM che dettano la sequenza di azioni dell'agente. I power user di agenti di codifica sono già abituati a esportare le trascrizioni di Sessione per ulteriori analisi tramite i comandi forniti dall'harness. Ma queste esportazioni sono solitamente in formato plaintext, che è inadatto ai team di sicurezza che richiedono log leggibili dalla macchina con uno schema coerente e prevedibile.

Numbat recupera quindi gli artifact di Sessione direttamente dal file system stesso. Poiché la maggior parte degli agenti harness lato client memorizza gli artifact originali sul file system (solitamente all'interno di una directory dot specifica dell'agente sotto $HOME), l'accesso al file system fornisce il percorso più diretto verso questi dati nella loro forma più utilizzabile e incontaminata. I team di sicurezza che utilizzano Numbat possono raccogliere questi artifact in formato NDJSON di timeline normalizzato tramite numbat scan, sia per l'elaborazione locale sull'endpoint del client che per l'analisi remota asincrona. Poiché gli artifact di Sessione sono record statici e autonomi, Numbat è in grado di ricostruire queste timeline anche per sessioni avvenute molto prima dell'installazione di Numbat.

Telemetria OTLP

La maggior parte degli agenti harness lato client offre un'ampia telemetria attraverso il protocollo OpenTelemetry (OTLP). Questa telemetria fornisce solitamente molti segnali oltre a quelli disponibili tramite hook o artifact di Sessione.

Numbat può funzionare come ricevitore OTLP tramite il comando numbat collect. Questo comando avvia un server a cui gli agenti di codifica inviano telemetria OTLP per l'analisi a valle. È importante sottolineare che questo server è locale e ascolta per impostazione predefinita solo su localhost, il che significa che tutta la telemetria rimane sul dispositivo per impostazione predefinita. Gli amministratori della sicurezza possono quindi determinare cosa fare con la telemetria registrata, se ciò comporta l'implementazione di un'elaborazione leggera sul dispositivo, un'elaborazione remota tramite numbat ship o un'analisi più complessa su piattaforme di analisi come ClickHouse.

Distribuzione di Numbat all'interno di Perplexity

All'interno di Perplexity, utilizziamo Numbat per proteggere l'utilizzo da parte dei nostri ingegneri di agenti di codifica lato client, inclusi Claude Code, Codex, OpenCode e Pi.

Sia i nostri sforzi di prevenzione che quelli di rilevamento fanno ampio uso delle regole di Numbat, che vengono implementate tramite il sottosistema hook di ciascun agente. Abbiamo formulato diverse regole fondamentali per le nostre esigenze, molte delle quali abbiamo incluso come parte delle 52 regole integrate di Numbat. Queste regole sono organizzate in 11 categorie di comportamento e una serie di rilevamenti di sequenze a più passaggi come accesso ai segreti, esfiltrazione, escalation dei privilegi e movimento laterale. Le regole utilizzano espressioni CEL su eventi normalizzati e gli operatori possono aggiungere le proprie regole e test senza modificare il codice di Numbat.

Ad esempio, la regola integrata privilege.sudoers_tamper rileva le scritture nella policy sudoers, l'uso di visudo e i tentativi di installare grant NOPASSWD. Si tratta di azioni ad alto segnale che possono trasformare un processo agente limitato in un accesso root persistente.

yaml
# 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*:") )

I singoli comandi non sembrano sempre dannosi di per sé, quindi Numbat correla anche le sequenze all'interno di una Sessione agente. La regola integrata chain.secret_manager_read_then_egress rileva quando un agente legge un valore da un comune strumento di gestione dei segreti e successivamente tenta una richiesta curl o wget che trasporta dati. Una lettura di segreto può essere legittima. Una richiesta in uscita può essere legittima. Sequenziate insieme, richiedono un'indagine.

yaml
# 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")

Gestione e monitoraggio dei Numbat attraverso la flotta

Come Bumblebee, il nostro scanner open-source per l'esposizione della supply chain sugli endpoint degli sviluppatori, Numbat viene distribuito attraverso la nostra flotta tramite MDM. Ogni Numbat registra l'attività dell'agente localmente e invia telemetria strutturata ai nostri sistemi di sicurezza centralizzati.

Da lì, Perplexity Computer esamina i risultati recenti di Numbat e i log di audit su una pianificazione ricorrente per comportamenti sospetti o dannosi. Indaga sui rilevamenti, ricostruisce le sessioni dell'agente pertinenti e sottopone a ulteriore scrutinio le azioni che Numbat ha bloccato.

Pipeline interna di Perplexity per il monitoraggio della telemetria Numbat. Un'attività pianificata di Perplexity Computer esamina in modo asincrono i nuovi segnali e avvisa il team di sicurezza in merito ad attività rischiose.

Computer cerca anche lacune nella nostra copertura. Analizza il nuovo comportamento, propone miglioramenti ai rilevamenti di Numbat, testa tali modifiche e apre pull request per la revisione umana. Una volta approvate e distribuite, tali regole migliorano il monitoraggio attraverso la flotta e producono prove migliori per l'indagine successiva.

Ciò crea un volano di sicurezza che si auto-migliora: gli agenti generano attività, Numbat trasforma tale attività in timeline e telemetria normalizzate, Computer indaga e migliora le regole, e gli aggiornamenti rivisti dall'uomo rafforzano i controlli a protezione delle future sessioni dell'agente.

Conclusione

In Perplexity, riteniamo che gli agenti IA verranno eseguiti in tutti i tipi di ambienti: locali, cloud e ibridi. Ogni combinazione di agente harness e ambiente di esecuzione pone sfide di sicurezza uniche, con la complessità combinatoria che minaccia di sopraffare i team di sicurezza a corto di banda. I crolli degli agenti e altre nuove vulnerabilità complicano ulteriormente il quadro della sicurezza.

Le difese che risiedono nel sistema dell'agente stesso possono migliorare la postura di sicurezza dell'utente indipendentemente da dove l'agente viene eseguito. Questo è esattamente ciò che Numbat offre: salvaguardie dell'agente strettamente integrate che consentono ai difensori di prevenire, rilevare e rispondere a comportamenti preoccupanti in tempo reale. Combinare Numbat con Perplexity Computer crea una piattaforma di sicurezza per agenti potente che consente ai difensori di rimanere al passo con i tempi.

Numbat è disponibile oggi come progetto open-source per macOS, Linux e Windows. I nostri endpoint client sono protetti da Numbat, consentendo ai membri del team di Perplexity di utilizzare con sicurezza gli agenti su attività ad ampio raggio e orizzonti temporali lunghi. Invitiamo i team di sicurezza ovunque a sfruttare l'approccio a livello di sistema di Numbat per proteggere e salvaguardare le loro distribuzioni di agenti.

Citazione

BibTeX
@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}
}