Sécuriser les agents sur les terminaux clients de Perplexity avec Numbat
Numbat est la suite de sécurité open-source pour agents de Perplexity pour les terminaux clients. Elle détecte, prévient et enquête sur les comportements risqués des agents IA sur macOS, Linux et Windows.
Les agents IA doivent être sécurisés pour être utiles. À mesure que les capacités des modèles et des systèmes progressent, la vigilance requise pour protéger les utilisateurs augmente également.
Les premières recherches sur la sécurité des agents se concentraient sur les injections de requêtes (prompt injections) et d'autres formes d'entrées adverses. Cependant, les récentes avancées en matière d'autonomie des agents donnent lieu à des incidents de sécurité qui ne nécessitent pas l'existence d'entrées adverses, ni même d'adversaires humains.
Au contraire, les agents chargés de poursuivre des objectifs de haut niveau, sans directives prescriptives sur la manière d'atteindre ces objectifs, peuvent devenir l'adversaire. Cela se produit lorsqu'un agent, en réponse à un objectif spécifié par l'utilisateur, sélectionne une ligne de conduite que l'utilisateur n'avait pas l'intention de suivre et qu'il n'aurait pas approuvée. Bien que de tels incidents n'aient été que théorisés il y a quelques mois, ils sont rapidement devenus des préoccupations pratiques.
Étant donné que ces comportements ne peuvent pas être entièrement corrigés au niveau du modèle, une défense robuste doit donc habiter le système environnant, y compris le harnais d'agent qui sert d'interface au modèle vers le monde extérieur. Nous mettons en libre accès Numbat, notre suite de sécurité pour agents qui aide les défenseurs à prévenir, détecter et atténuer les incidents liés aux agents. Numbat identifie et s'intègre directement aux harnais d'agents couramment présents sur les points de terminaison des clients d'entreprise, en appliquant des règles de sécurité et en permettant une détection et une réponse rapides.
Introduction
L'adoption d'agents pose de nouveaux défis de sécurité pour les développeurs, les adoptants et les défenseurs. Cela est particulièrement vrai lorsque les entreprises déploient des agents directement sur les points de terminaison des clients avec un accès privilégié aux systèmes et aux données de l'entreprise.
Les déploiements d'agents sur les points de terminaison des clients, tels que les agents de codage basés sur une interface de ligne de commande ou une application de bureau, s'accompagnent de différents niveaux de bac à sable et d'isolation. Les utilisateurs exploitent ces agents pour d'innombrables cas d'utilisation, chacun avec son propre espace d'action associé pouvant affecter le point de terminaison lui-même ou d'autres systèmes accessibles depuis celui-ci. De plus en plus, les agents sont censés fonctionner de manière autonome pendant des heures, voire des jours. Pour ces flux de travail, de nombreux utilisateurs choisissent de déléguer l'approbation des actions des agents à des classificateurs, ou de contourner entièrement les approbations avec des indicateurs de configuration aux noms préoccupants tels que --dangerously-skip-permissions et --yolo. La multiplicité des cas d'utilisation et des configurations d'agents, combinée à l'étendue des actions que les agents de codage peuvent effectuer sur des points de terminaison privilégiés, crée un profil de risque nécessitant une gestion proactive par les équipes de sécurité.
Aujourd'hui, nous publions Numbat, une suite de sécurité open-source pour agents que nous avons conçue pour détecter, enquêter et prévenir les activités dangereuses des agents IA. À mesure que davantage d'entreprises adoptent des produits d'agents pionniers, Numbat permet aux équipes de sécurité de suivre le rythme des défis de sécurité qui en découlent. Il s'intègre dans chacun des harnais d'agents côté client les plus largement utilisés tout en exposant une interface cohérente à travers tous ces derniers. Numbat libère ainsi les équipes de sécurité du fardeau de devoir créer des protections personnalisées et des outils de surveillance pour chaque agent individuel sur lequel leurs utilisateurs s'appuient. Numbat est disponible pour l'écosystème de défenseurs dans le cadre de l'adhésion de Perplexity à l'Open Secure AI Alliance avec NVIDIA et d'autres organisations.
Cet article commence par une discussion sur les défis de sécurité qui motivent Numbat. Nous présentons ensuite la conception et l'architecture de Numbat, ainsi que les leçons tirées du déploiement de Numbat sur des milliers de points de terminaison de Perplexity.
Situer le paysage des vulnérabilités
Le paysage des incidents de sécurité liés aux agents IA évolue rapidement. Une grande partie de la littérature existante sur la sécurité des agents se concentre sur les attaques par injection, dans lesquelles une charge utile malveillante est introduite dans les invites ou le contexte du modèle pour induire les agents en erreur et provoquer un comportement inapproprié. Les attaques par injection et les mesures de protection ont été largement étudiées, et les développeurs d'agents, dont Perplexity, ont conçu des défenses de plus en plus robustes contre les attaques par injection.
Mais un agent IA n'a pas besoin d'une charge utile malveillante pour créer un incident de sécurité. En fait, il n'est même pas nécessaire de supposer l'existence d'un adversaire. Un agent de confiance, fonctionnant dans un environnement de confiance avec des outils approuvés par l'administrateur, peut commettre des actions nuisibles simplement parce qu'il essaie trop fort d'accomplir sa tâche.
Les chercheurs décrivent ce mode de défaillance comme une « fusion accidentelle » : un comportement d'agent nuisible déclenché non pas par une entrée adverse, mais par une erreur environnementale ordinaire. Un fichier manquant, une requête API ayant échoué, une identification expirée ou un refus de permission peut amener un agent à rechercher une solution de contournement. En poursuivant son objectif initial spécifié par l'utilisateur, l'agent peut franchir les frontières de sécurité par le biais d'une reconnaissance non autorisée, de modifications du contrôle d'accès, de la découverte de secrets ou de l'exfiltration de données. Au lieu que l'agent soit coopté par un attaquant, l'agent lui-même est l'attaquant. De plus, l'attaque peut cibler des systèmes internes, des systèmes externes, ou les deux, sans moyen de le savoir tant que l'attaque n'est pas déjà en cours.
La première fusion accidentelle largement rapportée est survenue ce mois-ci, avec la divulgation par OpenAI d'une attaque initiée par un agent qui a compromis l'infrastructure de production de Hugging Face. Lors des évaluations d'un modèle GPT en pré-version, le modèle s'est trouvé incapable de progresser dans l'évaluation avec le contexte fourni. Pour débloquer cette situation, le modèle a trouvé un moyen d'échapper à son environnement de test en bac à sable et d'exfiltrer les réponses de l'évaluation depuis Hugging Face. Le modèle a tiré parti de son harnais pour échapper aux contraintes réseau prévues, élever ses privilèges au-delà des frontières du bac à sable, obtenir des secrets et accéder aux systèmes sécurisés de Hugging Face, le tout pour poursuivre l'objectif étroit de résoudre l'évaluation.
Les fusions incluent également des mutations et des suppressions involontaires du système. Bien que cela puisse paraître plus banal que la violation d'un système externe, ces occurrences sont plus fréquentes et plus saillantes pour tout utilisateur expérimenté d'agents de codage. Supprimer des bases de données de production ou des répertoires personnels est le pire cauchemar de tout développeur, et les agents doivent être capables d'éviter de tels comportements tout au long de leur exécution.
Les chercheurs en IA travaillent à atténuer ces comportements au sein même des modèles. Bien que ces efforts soient certainement précieux, beaucoup dans la communauté de recherche perçoivent une tension fondamentale entre l'entraînement des modèles pour des propriétés de sécurité fortes et l'entraînement de ces mêmes modèles pour accomplir des tâches de plus en plus complexes. Nous pensons qu'il est peu probable que des défenses se concentrant uniquement sur la couche de modèle réduisent le risque de fusion à des niveaux acceptables.
Sécuriser les agents de codage grâce à des intégrations natives de harnais
Le résultat est que la sécurité des agents ne peut reposer uniquement sur des mesures de protection au niveau du modèle, de l'utilisateur ou de la tâche. Au contraire, les équipes de sécurité ont besoin d'une visibilité sur ce que les agents font réellement sur les points de terminaison des clients, ainsi que de contrôles capables d'arrêter les actions dangereuses avant qu'elles ne soient exécutées. Ce sont des contrôles au niveau du système qui doivent être étroitement intégrés au harnais de l'agent.
Numbat fournit ces contrôles sous la forme d'un binaire Go statique et léger qui s'insère de manière transparente dans les principaux harnais d'agents côté client. Il offre une surveillance en direct, une application des politiques et une reconstruction médico-légale à travers les harnais d'agents et les environnements d'exécution.
Les points d'intégration clés entre Numbat et un harnais d'agent sont les hooks, les Artifacts de session et la télémétrie OTLP. Nous abordons chacun d'eux successivement.
Hooks
Pratiquement tous les agents de codage possèdent un sous-système de hook. Les hooks permettent aux agents d'exécuter de manière déterministe des sous-routines à des points préspécifiés au sein du cycle de vie d'exécution de l'agent. Les utilisateurs d'agents configurent généralement les hooks pour fournir aux modèles un contexte supplémentaire de manière prévisible, mettre en œuvre des boucles de test et de vérification, et apporter d'autres améliorations aux capacités de l'agent.
Les mêmes propriétés déterministes qui rendent les hooks attrayants à ces fins les rendent également attrayants pour la détection et la réponse. Il est généralement insuffisant de détecter la plupart des occurrences d'un événement potentiellement préoccupant. Au contraire, il faut couvrir toutes ces occurrences pour la détection et la réponse. Numbat configure plusieurs types de hooks, permettant aux équipes de sécurité et aux administrateurs informatiques de mettre en œuvre une logique de détection riche.
Dans la plupart des agents de codage, certains types de hooks (communément appelés hooks « pré-action ») sont également capables de bloquer l'exécution de la prochaine action de l'agent. En utilisant ces hooks de pré-action, Numbat est capable de mettre en œuvre non seulement une logique de détection, mais aussi des règles de sécurité préventives pour empêcher une fusion de se produire dès le départ.
Artifacts de session
Les hooks sont des moyens puissants de mettre en œuvre une logique de détection et de prévention en temps réel. Cependant, cette logique doit pouvoir être spécifiable dans le code. Souvent, un incident de sécurité lié à un agent prend une forme qui n'aurait pas pu être prévue à l'avance, et encore moins réduite en code source. Par conséquent, Numbat a également la capacité d'accéder aux Artifacts de session et de les analyser de manière rétroactive.
Les Artifacts de session incluent de nombreux types de journaux et de diagnostics. Le type de journal le plus important est peut-être la transcription de la Session, qui enregistre les conversations LLM dictant la séquence d'actions de l'agent. Les utilisateurs expérimentés d'agents de codage sont déjà habitués à exporter des transcriptions de Session pour une analyse plus approfondie via des commandes fournies par le harnais. Mais ces exportations sont généralement au format texte brut, ce qui est inadapté aux équipes de sécurité qui exigent des journaux lisibles par machine avec un schéma cohérent et prévisible.
Numbat récupère ainsi les Artifacts de session directement depuis le système de fichiers lui-même. Étant donné que la plupart des harnais d'agents côté client stockent les Artifacts originaux sur le système de fichiers (généralement dans un répertoire point spécifique à l'agent sous $HOME), l'accès au système de fichiers constitue le moyen le plus direct d'accéder à ces données sous leur forme la plus utilisable et la plus pure. Les équipes de sécurité utilisant Numbat peuvent collecter ces Artifacts au format de chronologie NDJSON normalisé via numbat scan, soit pour un traitement local sur le point de terminaison du client, soit pour une analyse distante asynchrone. Étant donné que les Artifacts de session sont des enregistrements statiques et autonomes, Numbat est capable de reconstruire ces chronologies même pour des sessions s'étant déroulées longtemps avant l'installation de Numbat.
Télémétrie OTLP
La plupart des harnais d'agents côté client offrent une télémétrie étendue via le protocole OpenTelemetry (OTLP). Cette télémétrie fournit généralement de nombreux signaux au-delà de ceux disponibles via les hooks ou les Artifacts de session.
Numbat peut fonctionner comme un récepteur OTLP via la commande numbat collect. Cette commande démarre un serveur auquel les agents de codage envoient la télémétrie OTLP pour une analyse en aval. Il est important de noter que ce serveur est local et n'écoute par défaut que sur localhost, ce qui signifie que toute la télémétrie reste sur l'appareil par défaut. Les administrateurs de sécurité peuvent ensuite déterminer ce qu'il faut faire de la télémétrie enregistrée, que cela implique la mise en œuvre d'un traitement léger sur l'appareil, un traitement distant via numbat ship, ou une analyse plus approfondie sur des plateformes d'analyse telles que ClickHouse.
Déploiement de Numbat au sein de Perplexity
Au sein de Perplexity, nous utilisons Numbat pour sécuriser l'utilisation par nos ingénieurs des agents de codage côté client, notamment Claude Code, Codex, OpenCode et Pi.
Nos efforts de prévention et de détection font tous deux un usage intensif des règles Numbat, qui sont mises en œuvre via le sous-système de hooks de chaque agent. Nous avons formulé plusieurs règles de base pour nos propres besoins, dont beaucoup ont été intégrées dans les 52 règles intégrées de Numbat. Ces règles sont organisées en 11 catégories de comportement et un ensemble de détections de séquences en plusieurs étapes telles que l'accès aux secrets, l'exfiltration, l'élévation de privilèges et le mouvement latéral. Les règles utilisent des expressions CEL sur des événements normalisés, et les opérateurs peuvent ajouter leurs propres règles et tests sans modifier le code de Numbat.
Par exemple, la règle intégrée privilege.sudoers_tamper détecte les écritures dans la politique sudoers, l'utilisation de visudo et les tentatives d'installation de subventions NOPASSWD. Ce sont des actions à signal élevé qui peuvent transformer un processus d'agent limité en un accès root persistant.
# 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*:")
)Les commandes individuelles ne semblent pas toujours malveillantes en soi, c'est pourquoi Numbat corrèle également les séquences au sein d'une Session d'agent. La règle intégrée chain.secret_manager_read_then_egress détecte lorsqu'un agent lit une valeur à partir d'un outil de gestion de secrets courant et tente ultérieurement une requête curl ou wget porteuse de données. Une lecture de secret peut être légitime. Une requête sortante peut être légitime. Séquencées ensemble, elles nécessitent une enquête.
# 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")Gestion et surveillance des Numbats sur la flotte
Comme Bumblebee, notre scanner open-source pour l'exposition de la chaîne d'approvisionnement sur les points de terminaison des développeurs, Numbat est déployé sur l'ensemble de notre flotte via MDM. Chaque Numbat enregistre l'activité de l'agent localement et envoie une télémétrie structurée dans nos systèmes de sécurité centralisés.
À partir de là, Perplexity Computer examine les résultats récents de Numbat et les journaux d'audit selon un calendrier récurrent à la recherche de comportements suspects ou malveillants. Il enquête sur les détections, reconstruit les sessions d'agent pertinentes et examine plus attentivement les actions que Numbat a bloquées.
Computer recherche également les lacunes dans notre couverture. Il analyse les nouveaux comportements, propose des améliorations aux détections de Numbat, teste ces changements et ouvre des demandes de tirage (pull requests) pour examen humain. Une fois approuvées et déployées, ces règles améliorent la surveillance sur l'ensemble de la flotte et produisent de meilleures preuves pour la prochaine enquête.
Cela crée un volant d'inertie de sécurité à amélioration automatique : les agents génèrent de l'activité, Numbat transforme cette activité en chronologies et télémétries normalisées, Computer enquête et améliore les règles, et les mises à jour examinées par l'humain renforcent les contrôles protégeant les futures Sessions d'agent.
Conclusion
Chez Perplexity, nous pensons que les agents IA s'exécuteront dans tous types d'environnements : locaux, cloud et hybrides. Chaque combinaison de harnais d'agent et d'environnement d'exécution pose des défis de sécurité uniques, la complexité combinatoire menaçant de submerger les équipes de sécurité à la bande passante limitée. Les fusions d'agents et d'autres vulnérabilités nouvelles compliquent encore davantage le tableau de la sécurité.
Les défenses qui habitent le système d'agent lui-même peuvent améliorer la posture de sécurité d'un utilisateur, quel que soit l'endroit où l'agent s'exécute. C'est précisément ce que propose Numbat : des protections d'agent étroitement intégrées qui permettent aux défenseurs de prévenir, détecter et répondre aux comportements préoccupants en temps réel. Combiner Numbat avec Perplexity Computer crée une plateforme de sécurité d'agent puissante qui permet aux défenseurs de garder une longueur d'avance.
Numbat est disponible dès aujourd'hui en tant que projet open-source pour macOS, Linux et Windows. Nos propres points de terminaison clients sont sécurisés par Numbat, permettant aux membres de l'équipe Perplexity d'utiliser en toute confiance des agents sur des tâches à large portée et sur de longs horizons. Nous invitons les équipes de sécurité du monde entier à tirer parti de l'approche au niveau du système de Numbat pour sécuriser et protéger leurs déploiements d'agents.
Citation
@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}
}