Actualizado el

Trampas para agentes de IA: cuando una página web puede engañar a tu asistente


Trampas para agentes de IA: cuando una página web puede engañar a tu asistente

Hace poco estuve revisando un trabajo de Google DeepMind sobre un problema que probablemente va a volverse más común a medida que usemos agentes de IA con más autonomía. El artículo se llama AI Agent Traps y plantea una advertencia sencilla, pero incómoda: una página web puede estar diseñada para engañar a un agente sin que el usuario humano note nada raro.

No estamos hablando solo de un chatbot que responde preguntas. Un agente puede navegar por internet, leer documentos, interpretar correos, recordar información de sesiones anteriores y ejecutar acciones. Puede buscar un vuelo, llenar un formulario, comparar precios, coordinar tareas o interactuar con otros sistemas.

Esa autonomía lo vuelve útil, pero también abre una superficie de ataque distinta. Si el agente lee una página maliciosa, un PDF manipulado o una instrucción escondida en el contenido, podría interpretar eso como parte de su tarea. Y si además tiene permisos para actuar, el problema deja de ser teórico.

El punto central del paper

El trabajo de DeepMind, firmado por Matija Franklin, Nenad Tomašev, Julian Jacobs, Joel Z. Leibo y Simon Osindero, propone una clasificación de trampas para agentes de IA. La idea no es atacar directamente el modelo ni instalar un virus tradicional. El ataque ocurre en el entorno que el agente está leyendo.

Eso cambia la forma de pensar la seguridad. Un sitio aparentemente normal podría incluir instrucciones ocultas en HTML, texto invisible, imágenes, documentos o datos que luego el agente guarda en memoria. Para una persona, la página puede verse limpia. Para el agente, en cambio, puede contener órdenes que compiten con las instrucciones originales.

La preocupación aumenta porque los autores reportan que, en pruebas reales, algunas de estas trampas lograron secuestrar agentes en porcentajes muy altos. No hace falta imaginar una página sospechosa llena de anuncios raros. El riesgo puede aparecer en un blog, un documento de proveedor o una fuente que el usuario considera confiable.

Qué es un agente autónomo y por qué cambia el riesgo

Un agente de IA no es solo un sistema que conversa. La diferencia está en que puede actuar. Puede tomar una instrucción general, dividirla en pasos, buscar información, usar herramientas y ejecutar acciones.

Ese cambio parece pequeño, pero no lo es. Cuando una IA solo responde texto, el daño suele quedar limitado a una mala respuesta, una recomendación equivocada o una explicación poco confiable. Cuando un agente puede hacer cosas, una mala instrucción puede terminar en una compra, una transferencia, un correo enviado, un dato filtrado o una modificación no deseada.

Por eso, mientras más permisos tenga el agente, más importante se vuelve controlar qué lee, qué recuerda y qué puede ejecutar.

Seis tipos de trampas

El artículo organiza el problema en seis tipos de ataques. La clasificación ayuda porque permite dejar de hablar de “prompt injection” como una sola categoría y empezar a distinguir mecanismos distintos.

1. Inyección de contenido

Es la forma más fácil de imaginar. El agente encuentra instrucciones escondidas en una página, un documento o una imagen. Pueden estar en comentarios HTML, texto con el mismo color del fondo o contenido pensado para que el humano no lo vea, pero el modelo sí.

El agente podría leer algo como “ignora tus instrucciones anteriores” o “envía esta información a otro sitio” y tratarlo como parte válida de la tarea.

2. Manipulación semántica

Aquí el ataque no solo da una orden directa. Intenta alterar la interpretación del agente. Puede presentar información falsa o sesgada para que el sistema llegue a una conclusión equivocada.

El problema no es solo que el agente obedezca una instrucción maliciosa. También puede razonar sobre una base contaminada.

3. Trampas de estado cognitivo

Estas trampas apuntan a la memoria del agente. Si el sistema recuerda información entre sesiones, un atacante podría intentar guardar una instrucción o dato falso que se active después.

Este punto me parece especialmente delicado. La memoria hace que los agentes sean más útiles, pero también puede convertir una interacción aislada en un riesgo persistente.

4. Control de comportamiento

En este caso, la trampa busca que el agente haga algo que no debería hacer: comprar, compartir datos, cambiar una configuración, enviar un mensaje o tomar una decisión fuera del alcance original.

El riesgo depende mucho de los permisos. Un agente que solo resume páginas tiene un margen de daño menor que uno conectado a correo, pagos, CRM o sistemas internos.

5. Trampas sistémicas

El problema se vuelve más complejo cuando varios agentes trabajan juntos. Un agente contaminado podría pasar información maliciosa a otro, y ese segundo agente podría actuar sin conocer el origen del problema.

Esto recuerda un poco a la seguridad clásica en redes: no basta con proteger un nodo si luego ese nodo puede contaminar el resto del sistema.

6. Humano en el bucle

Esta categoría es incómoda porque incluye al usuario. El agente no necesariamente ejecuta la acción por sí mismo. Puede convencer al humano de aprobarla.

Por ejemplo, podría presentar una acción riesgosa como si fuera normal, resumir mal una alerta o recomendar una decisión basada en contenido manipulado. En ese caso, el humano sigue “en control”, pero con información sesgada.

La idea de los purificadores

Una defensa interesante es usar una capa intermedia antes de que el contenido llegue al agente principal. Me gusta pensarla como un purificador: un módulo o agente más limitado que revisa el contenido, elimina instrucciones sospechosas y deja pasar solo la información necesaria.

No sería el agente que toma decisiones ni el que ejecuta acciones. Su trabajo sería más acotado:

  • detectar órdenes ocultas o texto imperativo dentro del contenido;
  • revisar HTML, metadatos, imágenes o documentos antes de pasarlos al agente principal;
  • separar datos informativos de instrucciones;
  • bloquear contenido sospechoso o enviarlo a revisión humana;
  • evitar que información no verificada entre directamente a la memoria del agente.

La ventaja de esta idea es que no depende de que el agente principal sea perfecto. El purificador puede combinar reglas simples, listas de patrones, validaciones de origen y modelos más pequeños. Puede equivocarse, por supuesto, pero reduce la probabilidad de que cualquier contenido externo llegue sin control al sistema que decide.

En la práctica, esto se parece menos a “hacer al agente más inteligente” y más a construir controles alrededor de él. Esa diferencia importa. La seguridad no debería depender solo del buen comportamiento del modelo.

Defensa en capas

DeepMind también apunta a una defensa por capas. Tiene sentido porque ninguna medida aislada va a resolver el problema completo.

Una primera capa puede revisar la fuente: reputación del dominio, historial del sitio, contexto de la tarea y nivel de confianza. Una segunda capa puede escanear el contenido en busca de instrucciones ocultas, patrones raros o mezcla de datos con órdenes. Una tercera capa puede monitorear lo que el agente intenta hacer y detener acciones que no calzan con la tarea original.

Esto no elimina el riesgo, pero obliga al ataque a superar varias barreras. Y en seguridad, muchas veces eso es lo que marca la diferencia.

Entrenar contra ataques no alcanza

Otra línea de defensa es entrenar agentes con ejemplos adversariales: páginas con instrucciones escondidas, documentos manipulados o escenarios diseñados para confundir al sistema. Es una especie de entrenamiento preventivo.

Puede ayudar, pero no debería ser la única defensa. Los ataques cambian rápido y siempre aparecerán formas nuevas de ocultar instrucciones. Además, si el agente tiene herramientas con permisos reales, confiar solo en que “aprendió a ignorar trampas” parece demasiado frágil.

El entrenamiento ayuda, pero no reemplaza límites de permisos, monitoreo, revisión de memoria y confirmaciones humanas bien diseñadas.

Sandboxes, permisos mínimos y memoria en cuarentena

Otra idea básica, pero necesaria, es no darle al agente más permisos de los que necesita. Si va a leer información, no tiene por qué tener acceso a pagos. Si va a comparar opciones, no debería poder comprar sin confirmación. Si va a resumir correos, no debería poder reenviarlos libremente.

El principio de mínimo privilegio aplica muy bien aquí. Cada herramienta conectada al agente aumenta el riesgo, así que conviene tratar los permisos como algo que se concede por tarea y no como una autorización permanente.

La memoria también merece cuidado. No todo lo que el agente lee debería guardarse. Los datos nuevos podrían entrar primero a una zona de cuarentena, pasar por filtros y recién después incorporarse a la memoria persistente. Si no, una instrucción maliciosa podría sobrevivir a la sesión donde apareció.

El rol del humano también debe diseñarse mejor

Poner a una persona a aprobar todo no resuelve el problema. Después de muchas alertas, aparece el cansancio de aprobación: el usuario empieza a aceptar sin leer.

La supervisión humana sirve más cuando las alertas son pocas, claras y justificadas. No basta con preguntar “¿confirmas?”. El sistema debería explicar por qué una acción es riesgosa: de dónde salió la instrucción, qué permiso se está usando y qué consecuencia podría tener.

Una buena alerta no debería trasladar todo el trabajo al usuario. Debería ayudarlo a decidir mejor.

Esto también requiere cambios en el ecosistema

El problema no se limita a cada agente individual. Si los agentes van a navegar por la web, la propia web tendrá que adaptarse.

Podrían aparecer estándares para distinguir contenido dirigido a humanos de contenido procesable por agentes. También sistemas de reputación para dominios, marcas de procedencia más claras y reglas sobre qué tipo de instrucciones puede incluir una página cuando sabe que será leída por agentes autónomos.

No sé qué forma tomará eso, pero parece difícil que el futuro de los agentes se sostenga solo con filtros locales. Si cada agente tiene que defenderse solo de todo internet, el modelo será bastante frágil.

Lo que me queda de esta lectura

La lección principal del paper no es que debamos dejar de usar agentes. Es que no conviene tratarlos como simples chatbots con más funciones.

Cuando un sistema puede leer, recordar y actuar, la seguridad cambia de nivel. Ya no basta con revisar la respuesta final. Hay que revisar el entorno que alimenta al agente, las herramientas que puede usar, la memoria que conserva y las decisiones que pide aprobar.

Los agentes de IA pueden ser muy útiles, pero necesitan límites claros. Purificadores, filtros en capas, sandboxing, permisos mínimos, memoria en cuarentena y supervisión humana bien diseñada no son accesorios. Son parte de la arquitectura mínima para usarlos con criterio.

Si vamos a delegar tareas en agentes, también tenemos que construir las barandas que eviten que una página web cualquiera termine diciéndoles qué hacer.

Recursos

  • Paper revisado: AI Agent Traps, Google DeepMind
  • Autores citados: Matija Franklin, Nenad Tomašev, Julian Jacobs, Joel Z. Leibo y Simon Osindero