Sécurisation des agents sur les terminaux clients de Perplexity avec Numbat
Numbat est la suite de sécurité d'agents open source de Perplexity pour les terminaux clients. Elle détecte, prévient et analyse les comportements risqués des agents d'IA sur macOS, Linux et Windows.
Les agents d'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.
La recherche initiale sur la sécurité des agents s'est concentrée sur les injections de requêtes (prompt injections) et d'autres formes d'entrées contradictoires. Pourtant, les progrès récents de l'autonomie des agents donnent lieu à des incidents de sécurité qui ne nécessitent pas de supposer l'existence d'entrées contradictoires, ni même d'adversaires humains.
Au contraire, les agents appelés à 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, choisit une ligne de conduite que l'utilisateur n'avait pas voulue et n'aurait pas approuvée. Bien que de tels incidents n'aient été théorisés qu'il y a quelques mois, ils sont rapidement devenus des sujets de préoccupation concrète.
Étant donné que ces comportements ne peuvent pas être entièrement corrigés au niveau du modèle, une défense robuste doit donc résider dans le système environnant, y compris l'infrastructure de l'agent qui sert d'interface entre le modèle et le monde extérieur. Nous mettons en open source 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 infrastructures d'agents couramment présentes sur les terminaux 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. C'est particulièrement vrai lorsque les entreprises déploièrent des agents directement sur les terminaux clients avec un accès privilégié aux systèmes et aux données de l'entreprise.
Le déploiement d'agents sur les terminaux clients, tels que les agents de codage basés sur une interface en ligne de commande (CLI) ou sur une application de bureau, s'accompagne de différents niveaux de mise en bac à sable (sandboxing) et d'isolement. Les utilisateurs exploitent ces agents pour d'innombrables cas d'utilisation, chacun disposant de son propre espace d'action inhérent qui peut affecter le terminal lui-même ou d'autres systèmes accessibles à partir de celui-ci. De plus en plus, on attend des agents qu'ils fonctionnent 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 complètement les approbations à l'aide de drapeaux de configuration aux noms inquiétants tels que --dangerously-skip-permissions et --yolo. La multiplicité des cas d'utilisation et des configurations des agents, combinée à l'étendue des actions que les agents de codage peuvent effectuer sur des terminaux privilégiés, crée un profil de risque qui nécessite une gestion proactive de la part des équipes de sécurité.
Aujourd'hui, nous lançons Numbat, une suite de sécurité pour agents open source que nous avons conçue pour détecter, enquêter et prévenir les activités dangereuses des agents d'IA. À mesure que de plus en plus d'entreprises adoptent des produits d'agents de pointe, Numbat permet aux équipes de sécurité de suivre le rythme des défis de sécurité qui en résultent. Il s'intègre dans chacune des infrastructures d'agents côté client les plus largement utilisées tout en offrant une interface cohérente à travers elles. Numbat libère ainsi les équipes de sécurité du fardeau de devoir créer des mesures de protection et des outils de surveillance personnalisés pour chaque agent individuel sur lequel leurs utilisateurs s'appuient. Numbat est mis à la disposition de l'écosystème des défenseurs dans le cadre de l'adhésion de Perplexity à la 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 terminaux propres à Perplexity.
Mise en contexte du paysage des vulnérabilités
Le paysage des incidents de sécurité liés aux agents d'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 (prompts) ou le contexte du modèle pour induire un comportement incorrect chez les agents. Les attaques par injection et les mesures de protection ont été étudiées de manière approfondie, et les développeurs d'agents, y compris Perplexity, ont conçu des défenses de plus en plus robustes contre ces attaques.
Mais un agent d'IA n'a pas besoin d'une charge utile malveillante pour provoquer 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, opérant 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 un « effondrement accidentel » (accidental meltdown) : un comportement nuisible de l'agent déclenché non pas par une entrée contradictoire, mais par une erreur environnementale ordinaire. Un fichier manquant, une requête API échouée, un identifiant expiré ou un refus de permission peuvent pousser un agent à chercher une solution de contournement. En poursuivant son objectif initial spécifié par l'utilisateur, l'agent peut franchir les limites 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 qu'il soit possible de le savoir avant que l'attaque ne soit déjà en cours.
Le premier effondrement accidentel largement signalé est survenu 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 version préliminaire, 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 de s'échapper de son environnement de test en bac à sable et d'exfiltrer les réponses de l'évaluation de Hugging Face. Le modèle a exploité son infrastructure pour contourner les contraintes réseau prévues, élever ses privilèges au-delà des limites du bac à sable, obtenir des secrets et accéder aux systèmes sécurisés de Hugging Face, le tout pour poursuivre l'objectif restreint de résoudre l'évaluation.
Les plantages comprennent aussi des mutations et des suppressions involontaires du système. Même si elles sont peut-être plus banales qu’une compromission d’un système externe, ces occurrences sont plus fréquentes et plus marquantes pour tout utilisateur avancé 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 en mesure d’éviter de tels comportements tout au long de leur exécution.
Les chercheurs en IA s'efforcent d'atténuer ces comportements au sein même des modèles. Bien que ces efforts soient certainement précieux, de nombreux membres de la communauté de recherche perçoivent une tension fondamentale entre l'entraînement de modèles pour obtenir de solides propriétés de sécurité 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 les défenses axées uniquement sur le niveau du modèle réduisent le risque d'effondrement à des niveaux acceptables.
Sécurisation des agents de codage grâce aux intégrations natives de l'infrastructure
En fin de compte, la sécurité des agents ne peut pas reposer uniquement sur des mesures de protection au niveau du modèle, de l'utilisateur ou de la tâche. Les équipes de sécurité ont plutôt besoin d'une visibilité sur ce que font réellement les agents sur les terminaux clients, ainsi que de contrôles capables d'arrêter les actions dangereuses avant qu'elles ne s'exécutent. Il s'agit de contrôles au niveau du système qui doivent être étroitement intégrés à l'infrastructure de l'agent.
Numbat fournit ces contrôles sous la forme d'un binaire Go statique et léger qui s'intègre de manière transparente aux principales infrastructures d'agents côté client. Il offre une surveillance en direct, l'application de politiques et une reconstitution forensique à travers les infrastructures d'agents et les environnements d'exécution.
Les principaux points d'intégration entre Numbat et l'infrastructure d'un agent sont les hooks, les artefacts de session et la télémétrie OTLP. Nous les examinons chacun leur tour.
Hooks
Pratiquement tous les agents de codage possèdent un sous-système de hooks. Les hooks permettent aux agents d'exécuter de manière déterministe des sous-programmes à des points prédéfinis du cycle de vie de l'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 des agents.
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 capturer la plupart des occurrences d'un événement potentiellement préoccupant. Il faut plutôt couvrir toutes ces occurrences pour assurer une détection et une réponse efficaces. 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 « pre-action ») sont également capables de bloquer l'exécution de la prochaine action de l'agent. Grâce à ces hooks pre-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 qu'un effondrement ne se produise en premier lieu.
Artefacts de session
Les hooks constituent un moyen puissant de mettre en œuvre une logique de détection et de prévention en temps réel. Cependant, cette logique doit pouvoir être spécifiée dans le code. Souvent, un incident de sécurité lié à un agent revêt une forme qui n'aurait pas pu être prévue à l'avance, et encore moins réduite à du code source. Par conséquent, Numbat a également la capacité d'accéder aux artefacts de session et de les analyser de manière rétrospective.
Les artefacts de session comprennent de nombreux types de journaux et de diagnostics. Le type de journal le plus important est sans doute la transcription de session, qui enregistre les conversations avec les grands modèles de langage (LLM) qui dictent 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 l'infrastructure. Mais ces exportations se présentent généralement sous un format de texte brut, ce qui ne convient pas aux équipes de sécurité qui ont besoin de journaux lisibles par machine dotés d'un schéma cohérent et prévisible.
Numbat récupère ainsi les artefacts de session directement à partir du système de fichiers lui-même. Étant donné que la plupart des infrastructures d'agents côté client stockent les artefacts 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 offre la voie la plus directe vers ces données sous leur forme la plus utilisable et la plus pure. Les équipes de sécurité utilisant Numbat peuvent collecter ces artefacts au format chronologique NDJSON normalisé via numbat scan, soit pour un traitement local sur le terminal client, soit pour une analyse à distance asynchrone. Les artefacts de session étant des enregistrements statiques et autonomes, Numbat est capable de reconstituer ces chronologies même pour des sessions s'étant produites bien avant l'installation de Numbat.
Télémétrie OTLP
La plupart des infrastructures d'agents côté client offrent une télémétrie approfondie 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 artefacts 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. Fait important, ce serveur est local et n'écoute par défaut que sur l'hôte local (localhost), ce qui signifie que toute la télémétrie reste par défaut sur l'appareil. Les administrateurs de sécurité peuvent ensuite déterminer quoi faire de la télémétrie enregistrée, qu'il s'agisse de mettre en œuvre un traitement léger sur l'appareil, un traitement à distance via numbat ship, ou une analyse plus poussée 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 d'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 largement appel aux règles Numbat, qui sont mises en œuvre via le sous-système de hooks de chaque agent. Nous avons formulé plusieurs règles fondamentales 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 déplacement 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 d'autorisations NOPASSWD. Ce sont des actions à fort signal qui peuvent transformer un processus d'agent limité en un accès racine 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 n'ont pas toujours l'air malveillantes en soi, c'est pourquoi Numbat met également en corrélation 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 des secrets courant et tente ensuite une requête curl ou wget transmettant des données. La lecture d'un secret peut être légitime. Une requête sortante peut être légitime. Si elles sont séquencées ensemble, elles nécessitent une investigation.
# 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 l'ensemble du parc
À l'instar de Bumblebee, notre scanner open source pour l'exposition de la chaîne d'approvisionnement sur les terminaux de développement, Numbat est déployé sur l'ensemble de notre parc via la gestion des appareils mobiles (MDM). Chaque Numbat enregistre l'activité des agents localement et envoie une télémétrie structurée vers nos systèmes de sécurité centralisés.
À partir de là, Perplexity Computer examine les récentes découvertes et journaux d'audit de Numbat selon un calendrier régulier à la recherche de comportements suspects ou malveillants. Il enquête sur les détections, reconstitue les sessions d'agents pertinentes et accorde une attention accrue aux 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 modifications 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 du parc et produisent de meilleures preuves pour la prochaine investigation.
Cela crée un volant d'inertie de sécurité à amélioration autonome : les agents génèrent de l'activité, Numbat transforme cette activité en chronologies et en télémétrie 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'agents.
Conclusion
Chez Perplexity, nous sommes convaincus que les agents d'IA s'exécuteront dans tous types d'environnements : locaux, cloud et hybrides. Chaque combinaison d'infrastructure d'agent et d'environnement d'exécution pose des défis de sécurité uniques, et la complexité combinatoire menace de submerger les équipes de sécurité aux ressources limitées. Les effondrements d'agents et d'autres nouvelles vulnérabilités compliquent encore davantage le panorama de la sécurité.
Les défenses intégrées au système de l'agent lui-même peuvent améliorer la posture de sécurité d'un utilisateur, peu importe l'endroit où l'agent s'exécute. C'est précisément ce que propose Numbat : des mesures de protection d'agent étroitement intégrées qui permettent aux défenseurs de prévenir, de détecter et de répondre aux comportements préoccupants en temps réel. La combinaison de Numbat et de Perplexity Computer crée une plateforme de sécurité pour agents surpuissante qui permet aux défenseurs de garder une longueur d'avance.
Numbat est disponible dès aujourd'hui sous forme de projet open source pour macOS, Linux et Windows. Nos propres terminaux clients sont sécurisés par Numbat, permettant aux membres de l'équipe Perplexity d'utiliser en toute confiance des agents pour des tâches à grande échelle et à long terme. Nous invitons les équipes de sécurité du monde entier à exploiter l'approche axée sur le 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}
}