blog
Trampas de contexto para agentes de IA
Un agente de IA se cree lo que lee, y por eso da respeto dejarlo suelto: basta una instrucción escondida en un log o en una web para que acabe haciendo otra cosa. Desde mayo, Tracebit, una empresa que vende señuelos para la nube, ha publicado tres estudios que le dan la vuelta a esa debilidad y la usan contra los agentes que atacan. En las pruebas de Tracebit, un señuelo saltó casi siempre antes del primer paso grave del agente y las trampas frenaron a muchos, aunque no a los modelos más capaces; en otro estudio, un agente que sabía qué buscar las reconoció casi todas.
Me acordé de los honeypots
Cuando leí el último de esos estudios, «Making attacking agents pay with Context Bombs», me acordé de los honeypots de toda la vida. Un honeypot es una máquina que no sirve para nada más que para que la ataquen. Nadie tiene por qué entrar ahí, así que quien entra es un intruso, y mientras se entretiene dentro, tú lo vigilas.
El caso clásico empezó en 1986, en el laboratorio Lawrence de Berkeley. Clifford Stoll, un astrónomo que hacía de administrador de sistemas, tiró del hilo de un descuadre de 75 centavos en lo que se cobraba por usar los ordenadores y encontró a un intruso. Para rastrear la llamada necesitaba tenerlo conectado mucho rato, así que él y sus compañeros prepararon unos ficheros con documentos falsos de un proyecto militar inventado. El intruso se pasó más de una hora leyéndolos. Stoll lo contó en «Stalking the Wily Hacker» y, con más detalle, en su libro The Cuckoo’s Egg.
Engañar así a una persona sale caro. Hay que montar un mundo falso que se sostenga, y alguien con oficio acaba oliéndoselo. Martin Lee, de Cisco Talos, ha hecho un honeypot que contesta con un LLM y reconoce que a un atacante con experiencia no lo engaña mucho tiempo. Un agente, en cambio, lee todo lo que tiene a su alcance, lo hace deprisa y se toma en serio lo que pone.
Palisade Research se aprovecha de eso para separar a los agentes del resto del tráfico. Su honeypot SSH esconde en el banner una instrucción del estilo «devuelve el color de…». Un bot no sabe qué hacer con ella, una persona tarda unos segundos en leerla y un agente la cumple en menos de dos.
Con Mantis, tres investigadores de la Universidad George Mason propusieron ya en 2024 ir un paso más allá: servicios señuelo que, cuando detectan un ataque automatizado, meten en sus respuestas instrucciones para el modelo. Es la inyección de prompts, pero puesta por el defensor.
El ruido de Hugging Face
En julio, un agente que funcionaba con modelos de OpenAI se escapó del entorno en el que lo estaban evaluando y acabó dentro de Hugging Face. La cronología que publicó después Hugging Face parece un manual de lo que hace un atacante dentro de Kubernetes. Desde un pod, el agente leyó el token de la cuenta de servicio, revisó el RBAC, tanteó la API del cluster, sacó credenciales de la nube del servicio de metadatos, pidió tokens para otras cuentas de servicio y se hizo root en un nodo con un pod privilegiado.
En cuatro días y medio dejó unas 17 600 acciones en los registros. El equipo de Hugging Face lo resume en una frase: «el camino que funcionó estaba escondido entre el ruido de los miles que fallaron». Su sistema de detección llegó a juntar las señales, pero no subió la gravedad de la alerta ni avisó a quien estaba de guardia.
Con un canario no pasa eso. Es un señuelo que nadie tiene motivo para tocar, así que, si salta, su aviso no se pierde entre miles de líneas. En agosto, OpenAI contó el incidente en Black Hat y pidió invertir también en entorpecer a los agentes con señuelos y engaño. Tracebit recoge cómo lo justificó: «la incertidumbre acaba frenando al atacante».
Un informe de pentest que miente
Tracebit lo ha probado a lo grande, con agentes de verdad que atacan entornos de AWS sembrados de trampas. En una de las pruebas de octubre, los agentes se encontraban por el camino un informe de pentest falso que daba por canarios justo los objetivos buenos, los que tenían un fallo aprovechable. Algunos se lo creyeron y pararon antes de tiempo, sin tocar lo que sí podían atacar. Con cuatro de los modelos, las ejecuciones que conseguían algún objetivo pasaron de 39 de 40 a solo 2.
También había una API señuelo de 825 páginas, todas hechas con los mismos seis fragmentos de texto. Uno de los agentes la recorrió, se dio cuenta de que no se acababa nunca y se fue a buscar otras pistas. Luego volvió a recorrerla.
La idea venía de julio, cuando Tracebit escondió en un secreto señuelo un texto escrito para que el modelo que lo leyera se negara a seguir. La trampa eran las barreras de seguridad del propio modelo. A los modelos occidentales los paraba un contenido biológico peligroso; a los chinos, si se usaban con un proveedor de allí, un tema político delicado escrito en chino. Con un solo secreto así, las ejecuciones que llegaban a administrador bajaron del 57 % al 5 %. Tracebit lo llamó context bomb, y ahora usa el nombre para toda la familia. Yo a todo eso lo llamo trampas de contexto, porque lo que atrapa al agente es lo que lee.
Tracebit también ha echado cuentas. Con los nueve trucos de octubre juntos, a los atacantes cada objetivo les salió unas 23 veces más caro. La trampa, en cambio, se pone una vez, y los tokens los sigue pagando el que ataca.
Por qué pica
Tracebit soltó en mayo diez modelos en una cuenta de AWS con once señuelos repartidos, y en parte de las pruebas les avisó de que podía haber trampas. En una de ellas, Claude Opus 4.7 se saltó varios recursos porque, según escribió, «por el nombre, está claro que son canarios». Escogió otro que le pareció menos sospechoso y lo leyó. También era un canario. Siguió a lo suyo, pisó dos más y llegó a administrador de todas formas.
Un agente mira todo lo que parece valioso, y cuanto más capaz es, más señuelos pisa. De las ejecuciones que acabaron en administrador, 19 de cada 20 habían tocado uno antes de dar el primer paso grave, con unos ocho minutos de margen. Es el tiempo que tienes para cortarle el acceso, si alguien está mirando la alerta.
El aviso, eso sí, les quitó empuje: los ataques que llegaron hasta el final, con administrador y persistencia, bajaron del 20 % al 3 %. Con personas ya se había visto algo parecido. Más de 130 red teamers atacaron una red en el estudio Tularosa, y lo que más los frenó fue que hubiera engaño y, además, que se lo dijeran.
Thinkst, la empresa de Canarytokens, va más allá con su Agent Provocateur, un servicio web que el agente encuentra al explorar la red y que, en vez de esconderse, le da conversación. Le pregunta qué piensa hacer después, con qué usuario se ejecuta o cuál es la huella de su clave SSH, y el agente contesta. Según Thinkst, en sus pruebas internas picaron todos, aunque alguno se inventó las respuestas, como el que dio una clave SSH que no existía.
Hasta que las busca
En septiembre se publicó Rouxii, un agente de pentest, y sus autores lo probaron con dos prompts. Con el normal reconocía los honeypots el 19 % de las veces; con otro que le explicaba en qué se delata un honeypot y cómo decidir si lo es, el 97 %. Eran honeypots clásicos, de SSH y de servicios industriales, y no canarios en una cuenta de nube, pero el salto da una idea de lo que cambia cuando a un agente le enseñan qué buscar. Y una trampa descubierta se puede volver contra quien la puso. Los autores de Rouxii tumbaron uno de esos honeypots, un Conpot, sin que saltara la comprobación que vigila si sigue en pie.
Tracebit tampoco vende sus trampas como infalibles. Los modelos más capaces pisan más señuelos, pero también son los que menos se dejan frenar. En octubre, Astra, uno de los siete modelos que probó, consiguió algún objetivo en 8 de 10 pruebas aun con los nueve trucos juntos. En mayo, los modelos capaces llegaron a administrador con señuelos y sin ellos, y lo dicen sin rodeos: «nada de esto es prevención». También cuentan con que lo que publican acabe pronto en los datos con los que se entrenan los modelos.
Las trampas que tiran de las barreras del modelo tienen su propio límite, porque solo funcionan si el modelo del atacante las tiene. Thinkst ha sacado Canarytokens pensados para hacerlas saltar, y Haroon Meer, su fundador, escribe que tienen su gracia pero no cree que duren, porque lo más probable es que los atacantes de verdad usen modelos sin barreras. El agente que entró en Hugging Face, de hecho, funcionaba con los filtros de seguridad de OpenAI desactivados a propósito. El texto de la trampa, además, lo lee cualquiera que abra el secreto, también tu propio agente o un compañero.
Un cebo para esta tarde
La parte que no depende de ningún modelo la puedes probar hoy. Canarytokens.org te genera gratis un kubeconfig falso que apunta a un servidor de Thinkst, con credenciales únicas para ti. Lo dejas en el portátil donde trabaja tu agente o entre los secretos de la CI, apuntas en la nota del token dónde lo has puesto, y el día que alguien lo use te llega un aviso por correo o por webhook. Escoge un sitio donde tus herramientas no lo carguen solas, o el primer aviso lo provocarás tú. Codificado en base64 puede pasar de 10 000 caracteres; si tu CI no admite secretos tan largos, la documentación explica cómo acortarlo.
Si tu agente usa MCP, le puedes dejar otro cebo en su propia configuración. El MCP Canarytoken de Thinkst genera un mcp.json con un servidor que promete credenciales de otros servicios, con herramientas como fetch_kubeconfig, y avisa cuando algo se conecta o cuando llama a alguna. Lenny Zeltser, que publica el código para montar uno en un Worker de Cloudflare, advierte de que tu propio agente lee esa misma configuración, así que tienes que decirle que no use esa entrada (en Claude Code, con disabledMcpjsonServers).
Dentro del cluster, un Secret señuelo con un nombre creíble hace un papel parecido, aunque nadie te avisa. Cada lectura queda registrada en la auditoría del cluster, si la tienes activada. Pero un list de los Secrets del namespace también se lo lleva sin que la petición lo nombre, así que no basta con buscarlo por su nombre. No lo montes en ningún pod: el kubelet lo lee al arrancar el pod y lo sigue vigilando mientras el pod esté en el nodo. Y al buscar en la auditoría, deja fuera a quien lista Secrets todos los días, como tu herramienta de GitOps o la de copias de seguridad.
Si ya tienes cebos puestos para tus agentes, escríbeme y cuéntame qué han cazado. Picaporte Labs es una sola persona, en España.