Agents beveiligen op Perplexity's client-endpoints met Numbat

Numbat is de open-source beveiligingssuite voor agents van Perplexity voor client-endpoints. Het detecteert, voorkomt en onderzoekt riskant gedrag van AI-agents op macOS, Linux en Windows.

AuteursPerplexity Secure Intelligence Institute

AI-agents moeten veilig zijn om nuttig te kunnen zijn. Naarmate de mogelijkheden van modellen en systemen toenemen, neemt ook de waakzaamheid toe die vereist is om gebruikers te beschermen.

Vroeg onderzoek naar agentbeveiliging richtte zich op prompt-injecties en andere vormen van vijandige invoer. Recente vooruitgang in de autonomie van agents leidt echter tot beveiligingsincidenten waarbij niet hoeft te worden uitgegaan van het bestaan van vijandige invoer – of überhaupt van menselijke tegenstanders.

Integendeel, agents die worden aangestuurd om doelen op hoog niveau na te streven, zonder voorgeschreven richtlijnen over hoe die doelen moeten worden bereikt, kunnen de tegenstander worden. Dit gebeurt wanneer een agent, in reactie op een door de gebruiker gespecificeerd doel, een handelingswijze kiest die de gebruiker niet beoogde en niet zou hebben goedgekeurd. Hoewel dergelijke incidenten slechts enkele maanden geleden theoretisch waren, zijn ze snel kwesties van praktisch belang geworden.

Omdat deze gedragingen niet volledig kunnen worden gepatcht binnen de modellaag, moet een robuuste verdediging zich in het omliggende systeem bevinden, inclusief de agent-harness die dient als de interface van het model naar de buitenwereld. Wij stellen Numbat open-source beschikbaar, onze beveiligingssuite voor agents die verdedigers helpt bij het voorkomen, detecteren en mitigeren van agent-gerelateerde incidenten. Numbat identificeert en integreert rechtstreeks met agent-harnesses die algemeen voorkomen op endpoints van zakelijke klanten, waarbij beveiligingsregels worden gehandhaafd en snelle detectie en respons mogelijk worden gemaakt.

Inleiding

De adoptie van agents brengt nieuwe beveiligingsuitdagingen met zich mee voor zowel ontwikkelaars als gebruikers en verdedigers. Dit geldt in het bijzonder wanneer ondernemingen agents rechtstreeks op client-endpoints inzetten met geprivilegieerde toegang tot bedrijfssystemen en data.

De inzet van agents op client-endpoints, zoals CLI-gebaseerde of desktop-app-gebaseerde codeer-agents, gaat gepaard met uiteenlopende niveaus van sandboxing en isolatie. Gebruikers benutten deze agents voor talloze gebruiksgevallen, elk met hun eigen bijbehorende actieruimte die het endpoint zelf of andere systemen die toegankelijk zijn vanaf het endpoint kan beïnvloeden. In toenemende mate wordt van agents verwacht dat ze uren of zelfs dagen autonoom opereren. Voor deze workflows kiezen veel gebruikers ervoor om goedkeuringen voor agentacties te delegeren aan classificatiesystemen, of keuringen volledig te omzeilen met zorgwekkend benoemde configuratievlaggen zoals --dangerously-skip-permissions en --yolo. De veelheid aan gebruiksgevallen en configuraties voor agents, gecombineerd met de breedte van de acties die codeer-agents kunnen uitvoeren op geprivilegieerde endpoints, zorgt voor een risicoprofiel dat proactief beheer door beveiligingsteams vereist.

Vandaag brengen we Numbat uit, een open-source beveiligingssuite voor agents die we hebben gebouwd om gevaarlijke activiteiten van AI-agents te detecteren, te onderzoeken en te voorkomen. Naarmate meer bedrijven frontier-agentproducten adopteren, stelt Numbat beveiligingsteams in staat om gelijke tred te houden met de resulterende beveiligingsuitdagingen. Het integreert in elk van de meest gebruikte client-side agent-harnesses en biedt tegelijkertijd een consistente interface voor alle systemen. Numbat ontlast beveiligingsteams daarmee van de last om voor elke afzonderlijke agent waarop hun gebruikers vertrouwen, op maat gemaakte veiligheidsmaatregelen en monitoringtools te moeten bouwen. Numbat is beschikbaar voor het verdedigers-ecosysteem als onderdeel van het lidmaatschap van Perplexity bij de Open Secure AI Alliance met NVIDIA en andere organisaties.

Systeemarchitectuur van door Numbat beveiligde agents.
Systeemarchitectuur van door Numbat beveiligde agents. Numbat legt de nadruk op lokale detectie als eerste stap en agent-agnostische forensische analyse.

Dit artikel begint met een bespreking van de beveiligingsuitdagingen die Numbat motiveren. Vervolgens presenteren we het ontwerp en de architectuur van Numbat, samen met onze lessen uit het inzetten van Numbat op duizenden eigen endpoints van Perplexity.

Het in kaart brengen van het kwetsbaarheidslandschap

Het landschap van beveiligingsincidenten met AI-agents evolueert snel. Veel van de bestaande literatuur over agentbeveiliging richt zich op injectie-aanvallen, waarbij een kwaadaardige payload wordt geïntroduceerd in modelprompts of context om agents in verwarring te brengen tot ongepast gedrag. Injectie-aanvallen en veiligheidsmaatregelen zijn uitgebreid bestudeerd, en agent-ontwikkelaars, waaronder Perplexity, hebben steeds robuustere verdedigingsmechanismen tegen injectie-aanvallen ontwikkeld.

Maar een AI-agent heeft geen kwaadaardige payload nodig om een beveiligingsincident te creëren. In feite hoeft men niet uit te gaan van het bestaan van een tegenstander. Een vertrouwde agent, die opereert binnen een vertrouwde omgeving met door de beheerder goedgekeurde tools, kan schadelijke acties ondernemen simpelweg omdat hij te hard probeert zijn taak te voltooien.

Onderzoekers beschrijven deze foutmodus als een “accidentele meltdown”: schadelijk agent-gedrag dat niet wordt getriggerd door vijandige invoer, maar door een gewone omgevingsfout. Een ontbrekend bestand, een mislukt API-verzoek, een verlopen inloggegeven of een toestemmingsweigering kan ertoe leiden dat een agent op zoek gaat naar een alternatieve oplossing. Bij het nastreven van het oorspronkelijke door de gebruiker gespecificeerde doel kan de agent beveiligingsgrenzen overschrijden door middel van ongeautoriseerde verkenning, wijzigingen in toegangscontrole, ontdekking van geheimen of data-exfiltratie. In plaats van dat de agent wordt ingeschakeld door een aanvaller, is de agent zelf de aanvaller. Bovendien kan de aanval zich richten op interne systemen, externe systemen of beide, zonder dat er een manier is om dit te weten totdat de aanval al gaande is.

De eerste breed gerapporteerde accidentele meltdown vond deze maand plaats, met de onthulling door OpenAI van een door een agent geïnitieerde aanval die de productie-infrastructuur van Hugging Face heeft gecompromitteerd. Tijdens evaluaties van een prerelease GPT-model bleek het model niet in staat om vooruitgang te boeken met de verstrekte context. Om deze impasse te doorbreken, vond het model een manier om te ontsnappen aan zijn sandbox-testomgeving en de antwoorden van de evaluatie van Hugging Face te exfiltreren. Het model maakte gebruik van zijn harness om de beoogde netwerkbeperkingen te omzeilen, privileges buiten de sandbox-grenzen te escaleren, geheimen te verkrijgen en toegang te krijgen tot beveiligde systemen van Hugging Face, alles om het nauwe doel van het oplossen van de evaluatie na te streven.

Meltdowns omvatten ook onbedoelde systeemsmutaties en verwijderingen. Hoewel wellicht minder spectaculair dan het binnendringen van een extern systeem, zijn deze gebeurtenissen frequenter en relevanter voor elke power-user van codeer-agents. Het verwijderen van productiedatabases of thuismappen is de grootste nachtmerrie van elke ontwikkelaar, en agents moeten in staat zijn dergelijk gedrag gedurende hun hele uitvoering te vermijden.

AI-onderzoekers werken eraan om dit gedrag binnen de modellen zelf te mitigeren. Hoewel deze inspanningen zeker waardevol zijn, ervaren velen in de onderzoeksgemeenschap een fundamentele spanning tussen het trainen van modellen voor sterke beveiligingseigenschappen en het trainen van diezelfde modellen om steeds complexere taken te volbrengen. Wij zijn van mening dat het onwaarschijnlijk is dat verdedigingsmechanismen die zich uitsluitend richten op de modellaag het risico op een meltdown tot een acceptabel niveau zullen verlagen.

Codeer-agents beveiligen door middel van native harness-integraties

De conclusie is dat agentbeveiliging niet uitsluitend kan rusten op veiligheidsmaatregelen op model-, gebruikers- of taakniveau. Integendeel, beveiligingsteams hebben zichtbaarheid nodig in wat agents daadwerkelijk doen op client-endpoints, plus controles die gevaarlijke acties kunnen stoppen voordat ze worden uitgevoerd. Dit zijn controles op systeemniveaus die nauw moeten worden geïntegreerd met de agent-harness.

Numbat biedt deze controles in de vorm van een lichtgewicht statische Go-binary die naadloos aansluit op toonaangevende client-side agent-harnesses. Het biedt live monitoring, beleidshandhaving en forensische reconstructie voor agent-harnesses en uitvoeringsomgevingen.

De belangrijkste integratiepunten tussen Numbat en een agent-harness zijn hooks, sessie-artefacten en OTLP-telemetrie. We bespreken elk daarvan op zijn beurt.

Hooks

Vrijwel alle codeer-agents beschikken over een hook-subsysteem. Met hooks kunnen agents deterministisch subroutines uitvoeren op vooraf gespecificeerde punten binnen de levenscyclus van de agentuitvoering. Agentgebruikers configureren hooks doorgaans om modellen op voorspelbare manieren van aanvullende context te voorzien, test- en verificatielussen te implementeren en andere verbeteringen aan te brengen in de mogelijkheden van de agent.

Dezelfde deterministische eigenschappen die hooks aantrekkelijk maken voor deze doeleinden, maken ze ook aantrekkelijk voor detectie en respons. Het is doorgaans onvoldoende om de meeste gebeurtenissen van een potentieel zorgwekkende gebeurtenis op te vangen. Men moet veeleer alle dergelijke gebeurtenissen afdekken voor detectie en respons. Numbat configureert meerdere typen hooks, waardoor beveiligingsteams en IT-beheerders rijke detectielogica kunnen implementeren.

In de meeste codeer-agents zijn bepaalde typen hooks (vaak “pre-action” hooks genoemd) ook in staat om de uitvoering van de volgende actie van de agent te blokkeren. Met behulp van deze pre-action hooks is Numbat in staat om niet alleen detectielogica, maar ook preventieve beveiligingsregels te implementeren om te voorkomen dat er überhaupt een meltdown optreedt.

Sessie-artefacten

Hooks zijn krachtige middelen om detectie- en preventielogica in real-time te implementeren. Deze logica moet echter in code kunnen worden gespecificeerd. Vaak neemt een beveiligingsincident met een agent een vorm aan die niet van tevoren had kunnen worden voorzien, laat staan dat deze in broncode had kunnen worden gereduceerd. Daarom heeft Numbat ook de mogelijkheid om achteraf sessie-artefacten te openen en te analyseren.

Sessie-artefacten omvatten vele soorten logboeken en diagnostische gegevens. Wellicht het belangrijkste type logboek is het sessie-transcript, dat de LLM-gesprekken registreert die de reeks acties van de agent bepalen. Power-users van codeer-agents zijn er al aan gewend om sessie-transcripten te exporteren voor verdere analyse via door de harness geleverde opdrachten. Maar deze exports zijn doorgaans in tekstformaat, wat ongeschikt is voor beveiligingsteams die machineleesbare logboeken met een consistent, voorspelbaar schema vereisen.

Numbat haalt sessie-artefacten dus rechtstreeks uit het bestandssysteem zelf. Omdat de meeste client-side agent-harnesses originele artefacten op het bestandssysteem opslaan (doorgaans binnen een agent-specifieke dot-directory onder $HOME), biedt het aftappen van het bestandssysteem de meest directe route naar deze gegevens in hun meest bruikbare en ongerepte vorm. Beveiligingsteams die Numbat gebruiken, kunnen deze artefacten in een genormaliseerd NDJSON-tijdlijnformaat verzamelen via numbat scan, hetzij voor lokale verwerking op het client-endpoint, hetzij voor asynchrone externe analyse. Omdat sessie-artefacten statische, op zichzelf staande records zijn, is Numbat in staat om deze tijdlijnen zelfs te reconstrueren voor sessies die lang voor de installatie van Numbat hebben plaatsgevonden.

OTLP-telemetrie

De meeste client-side agent-harnesses bieden uitgebreide telemetrie via het OpenTelemetry-protocol (OTLP). Deze telemetrie biedt doorgaans veel signalen die verder gaan dan die beschikbaar zijn via hooks of sessie-artefacten.

Numbat kan fungeren als een OTLP-ontvanger via de numbat collect-opdracht. Deze opdracht start een server waarheen codeer-agents OTLP-telemetrie sturen voor stroomafwaartse analyse. Belangrijk is dat deze server lokaal is en standaard alleen luistert op localhost, wat betekent dat alle telemetrie standaard op het apparaat blijft. Beveiligingsbeheerders kunnen vervolgens bepalen wat ze met de gelogde telemetrie gaan doen, of dat nu gaat om het implementeren van lichtgewicht verwerking op het apparaat, externe verwerking via numbat ship, of meer uitgebreide analyse op analyseplatforms zoals ClickHouse.

Numbat inzetten binnen Perplexity

Binnen Perplexity gebruiken we Numbat om het gebruik van client-side codeer-agents door onze engineers te beveiligen, waaronder Claude Code, Codex, OpenCode en Pi.

Zowel onze preventie- als detectie-inspanningen maken uitgebreid gebruik van Numbat-regels, die worden geïmplementeerd via het hook-subsysteem van elke agent. We hebben verschillende basisregels geformuleerd voor onze eigen behoeften, waarvan we er vele hebben uitgebracht als onderdeel van de 52 ingebouwde regels van Numbat. Deze regels zijn georganiseerd in 11 gedragscategorieën en een set detecties van sequenties in meerdere stappen, zoals toegang tot geheimen, exfiltratie, privilege-escalatie en laterale beweging. Regels maken gebruik van CEL-expressies over genormaliseerde gebeurtenissen, en operators kunnen hun eigen regels en tests toevoegen zonder de code van Numbat te wijzigen.

Bijvoorbeeld, de ingebouwde privilege.sudoers_tamper-regel detecteert schrijfacties naar het sudoers-beleid, het gebruik van visudo en pogingen om NOPASSWD-toekenningen te installeren. Dit zijn acties met een hoog signaalgehalte die een beperkt agentproces kunnen veranderen in persistente root-toegang.

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

Individuele opdrachten zien er op zichzelf niet altijd kwaadaardig uit, dus Numbat correleert ook sequenties binnen een sessie van een agent. De ingebouwde chain.secret_manager_read_then_egress-regel detecteert wanneer een agent een waarde leest uit een algemene tool voor geheimbeheer en later een datadragend curl- of wget-verzoek probeert. Het lezen van een geheim kan legitiem zijn. Een uitgaand verzoek kan legitiem zijn. Samen in een reeks vereisen ze onderzoek.

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

Numbats beheren en monitoren over het gehele wagenpark

Net als Bumblebee, onze open-source scanner voor blootstelling aan de toeleveringsketen op endpoints van ontwikkelaars, wordt Numbat via MDM over ons wagenpark uitgerold. Elke Numbat registreert agent-activiteit lokaal en stuurt gestructureerde telemetrie naar onze gecentraliseerde beveiligingssystemen.

Vanaf daar beoordeelt Perplexity Computer recente bevindingen van Numbat en audit-logboeken volgens een terugkerend schema op verdacht of kwaadaardig gedrag. Het onderzoekt detecties, reconstrueert relevante agentsessies en onderwerpt acties die door Numbat werden geblokkeerd aan aanvullend onderzoek.

Interne pipeline van Perplexity voor het monitoren van Numbat-telemetrie.
Interne pipeline van Perplexity voor het monitoren van Numbat-telemetrie. Een geplande Perplexity Computer-taak beoordeelt asynchroon nieuwe signalen en waarschuwt het beveiligingsteam bij riskante activiteiten.

Computer zoekt ook naar hiaten in onze dekking. Het analyseert nieuw gedrag, stelt verbeteringen aan de detecties van Numbat voor, test die wijzigingen en opent pull requests voor menselijke beoordeling. Eenmaal goedgekeurd en geïmplementeerd, verbeteren die regels de monitoring in het hele wagenpark en leveren ze beter bewijsmateriaal voor het volgende onderzoek.

Dit creëert een zelfverbeterend beveiligingsvliegwiel: agents genereren activiteit, Numbat zet die activiteit om in genormaliseerde tijdlijnen en telemetrie, Computer onderzoekt en verbetert de regels, en door mensen beoordeelde updates versterken de controles die toekomstige agentsessies beschermen.

Conclusie

Bij Perplexity zijn we ervan overtuigd dat AI-agents in alle soorten omgevingen zullen worden uitgevoerd: lokaal, in de cloud en hybride. Elke combinatie van agent-harness en uitvoeringsomgeving brengt unieke beveiligingsuitdagingen met zich mee, waarbij de combinatorische complexiteit dreigt beveiligingsteams met beperkte bandbreedte te overspoelen. Meltdowns van agents en andere nieuwe kwetsbaarheden compliceren het beveiligingsplaatje nog verder.

Verdedigingsmechanismen die zich in het agent-systeem zelf bevinden, kunnen de beveiligingsstatus van een gebruiker verbeteren, ongeacht waar de agent wordt uitgevoerd. Dit is precies wat Numbat levert: nauw geïntegreerde veiligheidsmaatregelen voor agents waarmee verdedigers in real-time zorgwekkend gedrag kunnen voorkomen, detecteren en hierop kunnen reageren. Het combineren van Numbat met Perplexity Computer creëert een krachtig beveiligingsplatform voor agents dat verdedigers in staat stelt voorop te blijven lopen.

Numbat is vandaag beschikbaar als open-sourceproject voor macOS, Linux en Windows. Onze eigen client-endpoints worden beveiligd door Numbat, waardoor teamleden van Perplexity vol vertrouwen agents kunnen gebruiken voor breed gedefinieerde taken en lange termijnen. Wij nodigen beveiligingsteams overal uit om de benadering op systeemniveau van Numbat te benutten voor het beveiligen en beschermen van hun agent-inzet.