Asegurando axentes nos puntos finais de clientes de Perplexity con Numbat

Numbat é a suite de seguridade de axentes de código aberto de Perplexity para puntos finais de clientes. Detecta, prevén e investiga comportamentos de axentes de IA de risco en macOS, Linux e Windows.

AutoresPerplexity Secure Intelligence Institute

Os axentes de IA deben ser seguros para seren útiles. A medida que avanzan as capacidades dos modelos e dos sistemas, tamén o fai a vixilancia necesaria para protexer os usuarios.

A investigación temperá sobre a seguridade dos axentes centrouse nas inxeccións de orixes e outras formas de entradas adversariais. Con todo, os recentes avances na autonomía dos axentes dan lugar a incidentes de seguridade que non precisan asumir a existencia de entradas adversariais, nin sequera de adversarios humanos.

Pola contra, os axentes dirixidos a acadar obxectivos de alto nivel, sen orientación prescriptiva sobre como acadar eses obxectivos, poden converterse en adversarios. Isto ocorre cando un axente, en resposta a un obxectivo especificado polo usuario, selecciona un curso de acción que o usuario non pretendía e non tería aprobado. Aínda que tales incidentes foron teorizados hai só uns meses, rapidamente convertéronse en motivos de preocupación práctica.

Dado que estes comportamentos non se poden arranxar por completo dentro da capa do modelo, unha defensa robusta debe habitar, polo tanto, no sistema circundante, incluíndo o arnés do axente que serve como interface do modelo co mundo exterior. Estamos a publicar como código aberto Numbat, a nosa suite de seguridade de axentes que axuda aos defensores a previr, detectar e mitigar incidentes relacionados con axentes. Numbat identifica e intégrase directamente cos arneses de axentes que se atopan habitualmente nos puntos finais dos clientes empresariais, aplicando regras de seguridade e permitindo unha detección e resposta rápidas.

Introdución

A adopción de axentes plantexas novos desafíos de seguridade para programadores, adoptadores e defensores por igual. Isto é especialmente certo cando as empresas desplegan axentes directamente nos puntos finais dos clientes con acceso privilexiado a sistemas e datos empresariais.

Os despregamentos de axentes nos puntos finais dos clientes, como os axentes de codificación baseados en CLI ou en aplicacións de escritorio, veñen con varios niveis de sandboxing e illamento. Os usuarios aproveitan estes axentes para innumerables casos de uso, cada un co seu propio espazo de acción concomitante que pode afectar ao propio punto final ou a outros sistemas accesibles desde este. Cada vez máis, espérase que os axentes funcionen de forma autónoma durante horas ou incluso días. Para estes fluxos de traballo, moitos usuarios optan por delegar a aprobación de accións dos axentes en clasificadores, ou ignorar por completo as aprobacións con indicadores de configuración con nomes preocupantes como --dangerously-skip-permissions e --yolo. A multiplicidade de casos de uso e configuracións de axentes, combinada coa amplitude de accións que os axentes de codificación poden realizar en puntos finais privilexiados, crea un perfil de risco que require unha xestión proactiva por parte dos equipos de seguridade.

Hoxe estamos a lanzar Numbat, unha suite de seguridade de axentes de código aberto que construímos para detectar, investigar e previr actividades perigosas de axentes de IA. A medida que máis empresas adoptan produtos de axentes de vangarda, Numbat capacita os equipos de seguridade para manter o ritmo dos desafíos de seguridade resultantes. Intégrase en cada un dos arneses de axentes do lado do cliente máis amplamente utilizados á vez que expón unha interface consistente en todos eles. Deste xeito, Numbat libera os equipos de seguridade da carga de construír salvagardas personalizadas e ferramentas de monitorización para cada axente individual do que dependen os seus usuarios. Numbat está dispoñible para o ecosistema de defensores como parte da pertenza de Perplexity á Open Secure AI Alliance con NVIDIA e outras organizacións.

Arquitectura do sistema de axentes asegurados con Numbat.
Arquitectura do sistema de axentes asegurados con Numbat. Numbat fai fincapé na detección local e na forense axnóstica de axentes.

Este artigo comeza cunha discusión sobre os desafíos de seguridade que motivan a Numbat. A continuación, presentaremos o deseño e a arquitectura de Numbat, xunto coas nosas leccións ao despregar Numbat en miles de puntos finais propios de Perplexity.

Situando a paisaxe de vulnerabilidades

A paisaxe dos incidentes de seguridade de axentes de IA está a evolucionar rapidamente. Gran parte da literatura existente sobre seguridade de axentes céntrase nos ataques de inxección, nos que se introduce unha carga útil maliciosa nos avisos ou no contexto do modelo para confundir os axentes e facer que actúen de forma incorrecta. Os ataques e salvagardas de inxección foron amplamente estudados, e os programadores de axentes, incluído Perplexity, deseñaron defesas cada vez máis robustas contra os ataques de inxección.

Pero un axente de IA non necesita unha carga útil maliciosa para crear un incidente de seguridade. De feito, non é necesario asumir a existencia dun adversario. Un axente de confianza, que opere dentro dun ambiente de confianza con ferramentas aprobadas polo administrador, pode realizar accións daniñas simplemente porque se escoita demasiado en completar a súa tarefa.

Os investigadores describen este modo de fallo como un «colapso accidental»: un comportamento daniño do axente desencadeado non por unha entrada adversarial, senón por un erro ambiental ordinario. Un ficheiro perdido, unha solicitude de API fallida, unha credencial caducada ou unha denegación de permisos poden facer que un axente busque unha solución alternativa. Ao perseguir o seu obxectivo orixinal especificado polo usuario, o axente pode cruzar os límites de seguridade mediante recoñecemento non autorizado, cambios no control de acceso, descubrimento de segredos ou exfiltración de datos. En lugar de que o axente sexa cooptado por un atacante, o propio axente é o atacante. Ademais, o ataque pode dirixirse a sistemas internos, externos ou a ambos, sen forma de sabelo ata que o ataque xa está en marcha.

O primeiro colapso accidental amplamente informado chegou este mes coa divulgación por parte de OpenAI dun ataque iniciado por un axente que comprometeu a infraestrutura de produción de Hugging Face. Durante as avaliacións dun modelo GPT previo ao lanzamento, o modelo atopouse incapaz de avanzar na avaliación co contexto proporcionado. Para romper este bloqueo, o modelo atopou o xeito de escapar do seu contorno illado de proba e exfiltrar as respostas da avaliación de Hugging Face. O modelo aproveitou o seu arnés para escapar das limitacións de rede previstas, escalar privilexios máis aló dos límites do contorno illado, obter segredos e acceder a sistemas seguros de Hugging Face, todo para perseguir o obxectivo estreito de resolver a avaliación.

Os colapsos tamén inclúen mutacións e eliminacións de sistemas non intencionadas. Aínda que quizais sexan máis comúns que violar un sistema externo, estes acontecementos son máis frecuentes e salientables para calquera usuario avanzado de axentes de codificación. Eliminar bases de datos de produción ou directorios de inicio é o peor pesadelo de calquera programador, e os axentes deben ser quen de evitar tales comportamentos ao longo da súa execución.

Os investigadores de IA están a traballar para mitigar estes comportamentos dentro dos propios modelos. Aínda que estes esforzos son sen dúbida valiosos, moitos na comunidade investigadora perciben unha tensión fundamental entre adestrar modelos para obter propiedades de seguridade fortes e adestrar eses mesmos modelos para realizar tarefas cada vez máis complexas. Cremos que é pouco probable que as defensas centradas exclusivamente na capa do modelo reduzan o risco de colapso a niveis aceptables.

Asegurar os axentes de codificación mediante integracións de arneses nativos

O resultado é que a seguridade dos axentes non pode descansar unicamente en salvagardas a nivel de modelo, usuario ou tarefa. Pola contra, os equipos de seguridade necesitan visibilidade do que realmente fan os axentes nos puntos finais dos clientes, ademais de controis que poidan deter accións perigosas antes de que se executen. Estes son controis a nivel de sistema que deben estar estreitamente integrados co arnés do axente.

Numbat ofrece estes controis en forma dun binario Go estático e lixeiro que se conecta sen problemas aos principais arneses de axentes do lado do cliente. Ofrece monitorización en directo, aplicación de políticas e reconstrución forense a través de arneses de axentes e contornos de execución.

Os puntos de integración clave entre Numbat e un arnés de axente son os ganchos (hooks), os artefactos de sesión e a telemetría OTLP. Discutiremos cada un deles á súa vez.

Ganchos

Praticamente todos os axentes de codificación posúen un subsistema de gancho. Os ganchos permiten aos axentes executar de forma determinista subrutinas en puntos preespecificados dentro do ciclo de vida de execución do axente. Os usuarios de axentes normalmente configuran ganchos para proporcionar aos modelos contexto adicional de xeito previsible, implementar bucles de proba e verificación, e facer outras melloras nas capacidades dos axentes.

As mesmas propiedades deterministas que fan que os ganchos sexan atractivos para estes propósitos tamén os fan atractivos para a detección e a resposta. Normalmente é insuficiente capturar a maioría das ocorrencias dun evento potencialmente preocupante. Pola contra, hai que cubrir todas esas ocorrencias para a detección e a resposta. Numbat configura varios tipos de ganchos, o que permite aos equipos de seguridade e administradores de TI implementar lóxica de detección rica.

Na maioría dos axentes de codificación, certos tipos de ganchos (comunmente chamados ganchos "pre-action") tamén poden bloquear a execución da seguinte acción do axente. Utilizando estes ganchos de pre-acción, Numbat é quen de implementar non só lóxica de detección, senón tamén regras de seguridade preventivas para evitar que se produza un colapso en primeiro lugar.

Artefactos de sesión

Os ganchos son medios poderosos para implementar lóxica de detección e prevención en tempo real. Con todo, esta lóxica debe poder especificarse en código. Moitas veces, un incidente de seguridade de axentes adopta unha forma que non se podería prever de antemán, e moito menos reducir a código fonte. Polo tanto, Numbat tamén ten a capacidade de acceder e analizar artefactos de sesión retroativamente.

Os artefactos de sesión inclúen moitos tipos de rexistros e diagnósticos. Quizais o tipo de rexistro máis importante sexa a transcrición da sesión, que rexistra as conversacións de LLM que ditan a secuencia de accións do axente. Os usuarios avanzados de axentes de codificación xa están afeitos a exportar transcricións de sesión para unha análise posterior a través de comandos proporcionados polo arnés. Pero estas exportacións están normalmente en formato de texto plano, o cal non é adecuado para os equipos de seguridade que requiren rexistros lexibles por máquina cun esquema consistente e previsible.

Numbat recupera así os artefactos de sesión directamente do propio sistema de ficheiros. Debido a que a maioría dos arneses de axentes do lado do cliente almacenan artefactos orixinais no sistema de ficheiros (normalmente dentro dun directorio de puntos específico do axente en $HOME), aproveitar o sistema de ficheiros proporciona a ruta máis directa a estes datos na súa forma máis usable e prístina. Os equipos de seguridade que usan Numbat poden recoller estes artefactos en formato de liña de tempo NDJSON normalizado a través de numbat scan, xa sexa para procesamiento local no punto final do cliente ou para análise remota asíncrona. Dado que os artefactos de sesión son rexistros estáticos e autónomos, Numbat pode reconstruír estas liñas de tempo mesmo para sesións que se produciron moito antes de que se instalase Numbat.

Telemetría OTLP

A maioría dos arneses de axentes do lado do cliente ofrecen unha extensa telemetría a través do protocolo OpenTelemetry (OTLP). Esta telemetría normalmente ofrece moitos sinais máis aló dos dispoñibles a través de ganchos ou artefactos de sesión.

Numbat pode funcionar como un receptor OTLP a través do comando numbat collect. Este comando inicia un servidor ao que os axentes de codificación envían telemetría OTLP para unha análise posterior. É importante destacar que este servidor é local e escoita por defecto só en localhost, o que significa que toda a telemetría permanece no dispositivo por defecto. Os administradores de seguridade poden entón determinar que facer coa telemetría rexistrada, xa implique implementar un procesamento lixeiro no dispositivo, procesamiento remoto a través de numbat ship, ou unha análise máis complexa en plataformas de analítica como ClickHouse.

Despregando Numbat dentro de Perplexity

Dentro de Perplexity, usamos Numbat para asegurar o uso por parte dos nosos enxeñeiros de axentes de codificación do lado do cliente, incluíndo Claude Code, Codex, OpenCode e Pi.

Tanto os nosos esforzos de prevención como de detección fan un uso extensivo das regras de Numbat, que se implementan a través do subsistema de ganchos de cada axente. Formulamos varias regras básicas para as nosas propias necesidades, moitas das cales enviamos como parte das 52 regras integradas de Numbat. Estas regras están organizadas en 11 categorías de comportamento e un conxunto de deteccións de secuencias de varios pasos como acceso a segredos, exfiltración, escalada de privilexios e movemento lateral. As regras utilizan expresións CEL sobre eventos normalizados, e os operadores poden engadir as súas propias regras e probas sen cambiar o código de Numbat.

Por exemplo, a regra integrada privilege.sudoers_tamper detecta escrituras na política de sudoers, o uso de visudo e intentos de instalar concesións de NOPASSWD. Estas son accións de alto sinal que poden converter un proceso de axente limitado nun acceso 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*:") )

Os comandos individuais non sempre parecen maliciosos por si mesmos, polo que Numbat tamén correlaciona secuencias dentro dunha sesión de axente. A regra integrada chain.secret_manager_read_then_egress detecta cando un axente le un valor dunha ferramenta común de xestión de segredos e posteriormente intenta unha solicitude curl ou wget que transporta datos. A lectura dun segredo pode ser lexítima. Unha solicitude saínte pode ser lexítima. Secuenciadas xuntas, requiren investigación.

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

Xestión e monitorización de Numbats en toda a frota

Do mesmo xeito que Bumblebee, o noso escáner de código aberto para a exposición da cadea de subministración nos puntos finais dos programadores, Numbat desprégase en toda a nosa frota a través de MDM. Cada Numbat rexistra a actividade do axente localmente e envía telemetría estruturada aos nosos sistemas de seguridade centralizados.

A partir de aí, Perplexity Computer revisa os descubrimentos recentes e os rexistros de auditoría de Numbat nun horario recorrente en busca de comportamentos sospeitosos ou maliciosos. Investiga deteccións, reconstrúe sesións de axentes relevantes e presta escrutinio adicional ás accións que Numbat bloqueou.

O pipeline interno de Perplexity para monitorizar a telemetría de Numbat.
O pipeline interno de Perplexity para monitorizar a telemetría de Numbat. Unha tarefa programada de Perplexity Computer revisa de forma asíncrona os novos sinais e alerta ao equipo de seguridade sobre actividades de risco.

Computer tamén busca lagoas na nosa cobertura. Analiza novos comportamentos, propón melloras nas deteccións de Numbat, proba eses cambios e abre pull requests para a revisión humana. Unha vez aprobadas e desplegadas, esas regras melloran a monitorización en toda a frota e producen mellores evidencias para a seguinte investigación.

Isto crea un volante de seguridade que se auto-mellora: os axentes xeran actividade, Numbat converte esa actividade en liñas de tempo e telemetría normalizadas, Computer investiga e mellora as regras, e as actualizacións revisadas por humanos fortalecen os controis que protexen as futuras sesións de axentes.

Conclusión

En Perplexity, cremos que os axentes de IA se executarán en todo tipo de contornos: locais, na nube e híbridos. Cada combinación de arnés de axente e contorno de execución presenta desafíos de seguridade únicos, coa complexidade combinatoria ameazando con saturar os equipos de seguridade con ancho de banda limitado. Os colapsos de axentes e outras novas vulnerabilidades complican aínda máis o panorama de seguridade.

As defensas que habitan no propio sistema de axentes poden mellorar a postura de seguridade dun usuario sen importar onde se execute o axente. Isto é exactamente o que ofrece Numbat: salvagardas de axentes estreitamente integradas que permiten aos defensores previr, detectar e responder a comportamentos preocupantes en tempo real. Combinar Numbat con Perplexity Computer crea unha poderosa plataforma de seguridade de axentes que capacita aos defensores para manterse á vangarda.

Numbat está dispoñible hoxe como un proxecto de código aberto para macOS, Linux e Windows. Os nosos propios puntos finais de clientes están asegurados por Numbat, permitindo aos membros do equipo de Perplexity utilizar con confianza axentes en tarefas de gran alcance e horizontes longos. Invitamos aos equipos de seguridade de todas partes a aproveitar o enfoque a nivel de sistema de Numbat para asegurar e protexer os seus despregamentos de axentes.