hiddenrows

Guías prácticas para trabajar con agentes de IA, con un laboratorio al final de cada una

última edición=16 de octubre · 24 piezas · 14 breves
regla=solo lo verificado como hecho
llamadas a un modelo por visita=0
Guía práctica

Revisa si tu agente tiene la trifecta letal

Un agente que accede a datos privados, lee contenido escrito por terceros y puede comunicarse hacia fuera reúne las tres condiciones que hacen posible una exfiltración sin que nadie toque tu red. Esta guía explica qué mirar en el tuyo, qué pata conviene romper y por qué un filtro que bloquea el 95 % de los ataques no basta.

14 min de lectura laboratorio: lista de comprobación publicado el 24 sept 2026

1El problema

Un agente hace dos cosas que, juntas, no encajan: lee lo que escriben otros y actúa con tus permisos. Aonan Guan lo resumió al publicar un ataque contra agentes que se ejecutan dentro de GitHub: el agente tiene las claves de producción porque las necesita para trabajar, y lee contenido que no controla nadie porque en eso consiste su trabajo. Las dos cosas son imprescindibles y son incompatibles entre sí. V

El fondo del asunto es que un modelo de lenguaje no distingue de forma fiable el peso de una instrucción según de dónde venga. Simon Willison, un programador que lleva años documentando estas herramientas, lo resume diciendo que estos modelos obedecen las instrucciones que encuentran dentro de lo que leen, vengan de donde vengan. V El NCSC británico lo dijo con más frialdad el 8 de diciembre de 2025: los ataques de inyección de prompts «seguirán siendo un riesgo residual» y «no se pueden mitigar del todo con un producto o un appliance». V

Tampoco se arregla eligiendo el modelo más capaz. En la competición pública de Gray Swan (marzo de 2026) participaron 464 personas que lanzaron 272.000 ataques contra 41 escenarios y 13 modelos: 8.648 tuvieron éxito, con tasas entre el 0,5 % y el 8,5 % según el modelo y estrategias universales que funcionaban en 21 de los 41 comportamientos evaluados. La conclusión que importa para decidir: capacidad y robustez apenas correlacionan. V

Según TechCrunch, OpenAI admitió al endurecer su navegador Atlas que la inyección de prompts «probablemente nunca se resuelva» del todo, igual que las estafas y la ingeniería social en la web. S Si el problema no se cierra con un parche, la pregunta práctica cambia: ya no es «¿está protegido mi agente?», sino «¿qué tres cosas tiene juntas que permitirían el robo?».

2Qué es la trifecta letal

Willison le puso nombre el 16 de junio de 2025. Un agente está en la trifecta letal cuando reúne tres condiciones a la vez: V

  • Acceso a datos privados. Tu repositorio, tus variables de entorno, tu correo, tu base de datos, tu wiki: cualquier cosa que no publicarías.
  • Exposición a contenido no fiable. Texto que escribe alguien ajeno y que acaba en el contexto del modelo: una página web, un correo, un issue, un comentario, un adjunto, la descripción de una herramienta.
  • Capacidad de comunicarse hacia fuera. Cualquier vía por la que algo salga y alguien de fuera lo vea.

Con las tres, quien solo controla la segunda pata puede hacer que el agente lea la primera y la saque por la tercera, sin tocar tu red ni tus credenciales. Willison enumera productos con exfiltraciones documentadas entre 2023 y 2025: ChatGPT, Microsoft 365 Copilot, el servidor MCP de GitHub, GitLab Duo, Google Bard, AI Studio y NotebookLM, Amazon Q, Slack, Mistral Le Chat, Grok, la aplicación de Claude para iOS y ChatGPT Operator, entre otros. V

Por qué no es como la inyección SQL. La comparación es tentadora y lleva a la conclusión equivocada: si fuera lo mismo, bastaría con escapar o parametrizar. El NCSC explica por qué no lo es: en un modelo de lenguaje no existe la separación entre datos e instrucciones. Todo —lo que escribes tú y lo que el modelo lee por ahí— acaba siendo la misma secuencia de la que predice la siguiente palabra. De ahí que lo describan como un delegado intrínsecamente confundible: no es que se fíe de más, es que no tiene con qué distinguir quién le habla. V No existe el escape() que cierre la clase entera de ataques, y por eso el NCSC recomienda salvaguardas deterministas fuera del modelo, limitar privilegios según el origen de la entrada y monitorizar entradas, salidas y llamadas a herramientas. V

Meta propuso en octubre de 2025 una regla de bolsillo complementaria, la «Agents Rule of Two»: en una misma sesión un agente debería tener como mucho dos de estas tres capacidades —procesar entradas no fiables, acceder a sistemas sensibles o datos privados, y cambiar estado o comunicarse hacia fuera—; si hacen falta las tres, supervisión humana o validación fiable. S Willison objetó que el diagrama original marcaba como «seguro» el cruce de entradas no fiables con cambiar estado; Meta lo reetiquetó después como «lower risk». V

Una advertencia antes de seguir, sobre los guardarraíles que prometen bloquear «el 95 % de los ataques»: para Willison, en seguridad eso es sencillamente un suspenso, porque el atacante solo necesita acertar una vez. V

3Cómo se revisa

Revisar la trifecta es un inventario, no una intuición. Se hace con tres listas delante y una regla: cuenta lo que el agente puede alcanzar si lo intenta, no lo que se supone que hace.

  1. Qué datos privados alcanza. Ficheros del repositorio y .env, variables de entorno del proceso, tokens y claves de API, credenciales de despliegue, repositorios privados, buzones, bases de datos, documentación interna. Incluye lo que llega por herramientas: un servidor MCP de correo o de CRM amplía esta lista sin que aparezca en ningún prompt.
  2. Qué entradas no fiables consume. Lo evidente: web, correos, adjuntos, issues, pull requests, comentarios, tickets, resultados de búsqueda, salidas de otros agentes. Lo que casi siempre se olvida: las descripciones de las herramientas. Invariant Labs mostró el 1 de abril de 2025 que unas instrucciones ocultas en los metadatos de una herramienta MCP —nombre, descripción, esquema— bastan para dirigir al agente; son visibles para el modelo y no para el usuario. Lo llamaron tool poisoning, con dos variantes: rug pull (la descripción cambia después de que la hayas aprobado) y shadowing (una herramienta maliciosa altera cómo se usa otra legítima). V
  3. Por dónde puede salir. Aquí está el error más común: pensar solo en «enviar un correo». Cuenta como canal de salida cualquier cosa observable desde fuera: una petición HTTP o un webhook, un comentario o un pull request publicado, un commit, una imagen o un enlace en Markdown que el cliente carga solo al renderizar, un nombre de dominio resuelto, y la propia API del servicio donde corre el agente.

Además del inventario, tres detalles que conviene mirar de cerca:

  • Qué ve realmente quien aprueba. En el caso de Cursor documentado por Invariant Labs, el diálogo de confirmación no mostraba los argumentos completos de la llamada, de modo que aprobar no equivalía a saber qué se estaba aprobando. V
  • Si los permisos se arrastran entre pasos. Un agente que empieza leyendo documentación pública y termina escribiendo en producción con las mismas credenciales tiene la trifecta aunque cada paso, por separado, parezca inocente.
  • Qué pasa entre sesiones. Memoria, ficheros de trabajo y cachés compartidas llevan contenido no fiable de una sesión a la siguiente.

Si prefieres una lista formal y ordenada para hacer el inventario, el OWASP Top 10 for Agentic Applications 2026 (9 de diciembre de 2025) nombra estas piezas por separado: ASI01 Agent Goal Hijack, ASI02 Tool Misuse, ASI03 Identity & Privilege Abuse y ASI06 Memory & Context Poisoning. V El laboratorio de abajo recorre el mismo inventario en doce preguntas.

4Qué hacer con cada pata

La regla es fácil de enunciar y difícil de aceptar: rompe una pata. No hay que proteger las tres; hay que quitar una. El artículo que reunió los patrones de diseño lo formula así: en cuanto un agente ha leído algo que no controlas, hay que atarlo de forma que a ese contenido le resulte imposible desencadenar una acción con consecuencias. V

Patrones de diseño. «Design Patterns for Securing LLM Agents against Prompt Injections» (arXiv 2506.08837, 10 de junio de 2025; autores de IBM, Invariant Labs, ETH Zúrich, Google y Microsoft) describe seis formas de romper una pata sin renunciar al agente: V

  • Action-Selector: el agente dispara herramientas pero no recibe sus respuestas.
  • Plan-Then-Execute: las llamadas se planifican antes de exponerse al contenido no fiable, así lo leído no cambia el plan.
  • LLM Map-Reduce: subagentes procesan los datos no fiables y sus resultados se agregan de forma segura.
  • Dual LLM: un modelo privilegiado coordina a otro «en cuarentena» mediante variables simbólicas, sin ver nunca el contenido sucio.
  • Code-Then-Execute: el modelo privilegiado genera código en un lenguaje acotado con seguimiento del flujo de datos.
  • Context-Minimization: eliminar del contexto lo innecesario entre interacciones.

CaMeL. «Defeating Prompt Injections by Design» (Google DeepMind y ETH Zúrich, 24 de marzo de 2025) lleva la idea al extremo: separa el flujo de control del flujo de datos, de modo que los datos no fiables no puedan alterar la ejecución, y aplica capacidades que bloquean la exfiltración en el momento de invocar una herramienta. En AgentDojo resuelve el 77 % de las tareas con seguridad demostrable, frente al 84 % sin defensa alguna. V AgentDojo, el banco de pruebas donde se mide esto, tiene 97 tareas y 629 casos de seguridad. V Siete puntos de utilidad: ese es, en ese entorno, el precio medido de la garantía.

Mínimo privilegio y aislamiento. Las recomendaciones coinciden entre el NCSC, los análisis de incidentes y la práctica de los proveedores: ejecutar en contenedor o máquina virtual, filtrar el tráfico de salida (egress) con lista de destinos permitidos, no poner secretos de producción en el mismo runtime que lee entradas no fiables, listas de herramientas y comandos permitidos, y credenciales efímeras y de alcance mínimo. V

Aprobación humana, con cuidado. Es la defensa que más se invoca y la que peor envejece. Anthropic publicó el dato que lo explica: los usuarios aprobaban el 93 % de las peticiones de permiso, lo que llaman fatiga de aprobación. V Según Help Net Security, al convertir el modo automático en el predeterminado para usuarios de pago en agosto de 2026, Anthropic habló de un 97 %. S La respuesta razonable no es pedir más confirmaciones, sino menos y mejores: concentrarlas en los puntos de irreversibilidad —borrados, pagos, envíos hacia fuera, escritura en producción— y enseñar los argumentos completos.

Cuando la aprobación se automatiza, se automatiza con números encima de la mesa. El auto mode de Claude Code (25 de marzo de 2026) usa dos capas: un clasificador de transcripción que decide si cada acción se ejecuta y que deliberadamente no ve los mensajes del asistente ni los resultados de las herramientas —para que el agente no pueda convencerlo—, y una sonda de inyección en servidor que examina los resultados de las herramientas antes de que entren en el contexto. Las cifras que publican: bloquea por error el 0,4 % de 10.000 acciones legítimas —es decir, cuatro molestias por cada mil acciones—; deja pasar el 17 % de 52 casos reales de agente demasiado lanzado y el 5,7 % en 1.000 exfiltraciones sintéticas. La propia Anthropic advierte de que no sustituye a la revisión humana en infraestructura crítica. V

Y una medida de lo que aportan las capas: en 110 entornos de uso de navegador, la system card de Claude Fable 5.1 (1 de septiembre de 2026) declara un 2,64 % de éxito de ataque sin sondas y un 0 % con auto mode activo. V

5Cuándo no basta

Un filtro que se mide contra ataques conocidos mide lo que ya sabe. «The Attacker Moves Second» (Nasr, Carlini y otros doce autores de OpenAI, Anthropic y Google DeepMind; arXiv 2510.09023, 10 de octubre de 2025; USENIX Security 2026) probó 12 defensas publicadas contra atacantes adaptativos —descenso de gradiente, aprendizaje por refuerzo, búsqueda aleatoria y exploración guiada por humanos— y superó todas con más del 90 % de éxito; un ejercicio de red teaming con 500 participantes llegó al 100 %. La mayoría de esas defensas había declarado tasas de éxito cercanas a cero. V

La diferencia entre un atacante estático y uno adaptativo se ve en los propios números de la system card de Fable 5.1: contra el banco de pruebas de inyección indirecta de Gray Swan, un 0,1 % de éxito a k=1 y un 1,0 % a k=15 (el resto de modelos frontera, entre el 24 % y el 53 % a k=15; y el mejor de los que no son Claude se queda en un 9,2 %, así que la diferencia entre modelos es real pero ninguno aguanta solo); contra el atacante adaptativo reforzado en entornos de código y sin salvaguardas, el éxito sube al 56,87 %, y con sondas de inyección baja al 12,80 %. V Anthropic lo advierte en el mismo documento: un repertorio fijo de ataques conocidos da una falsa sensación de seguridad, porque el atacante real no se limita al repertorio. V

La traducción práctica es incómoda pero clara: un clasificador o una sonda reducen el riesgo y encarecen el ataque, no convierten una trifecta completa en una arquitectura segura. Si tu agente necesita las tres patas y no puedes romper ninguna, lo que queda es supervisión humana real en los puntos irreversibles y un riesgo residual que conviene escribir y aceptar explícitamente, en los términos que describe el NCSC. V

Hay además un riesgo inverso que OWASP recoge como ASI09, Human-Agent Trust Exploitation: explicaciones bien redactadas que llevan al operador a aprobar acciones dañinas. V El humano que supervisa también lee texto generado por el sistema que está supervisando.

6Casos reales

Seis incidentes con la atribución que les corresponde. Los tres primeros son la trifecta de manual.

  • EchoLeak, junio de 2025 (CVE-2025-32711, CVSS 9,3, descubierto por Aim Security). Según el análisis de Simon Willison del 11 de junio de 2025, un correo con instrucciones ocultas lo recuperaba el RAG de Microsoft 365 Copilot y la exfiltración ocurría sin que el usuario hiciera clic; se corrigió en servidor. S La trifecta completa dentro de un producto empresarial de uso masivo.
  • Servidor MCP de GitHub, 26 de mayo de 2025. Según Invariant Labs, un issue malicioso en un repositorio público secuestraba al agente y le hacía publicar datos de repositorios privados —dirección, salario— en un pull request público. No era un fallo del código, sino de arquitectura: lo llamaron toxic agent flow. S
  • Tool poisoning en Cursor, 1 de abril de 2025. Invariant Labs describió una herramienta add envenenada que llevaba al agente a leer y enviar ~/.cursor/mcp.json y ~/.ssh/id_rsa; el diálogo de confirmación no mostraba los argumentos completos. Propusieron como mitigación distinguir en la interfaz lo que ve el modelo, fijar criptográficamente las versiones de las herramientas y controlar el flujo de datos entre servidores. V
  • Comment and Control, 15 de abril de 2026. Aonan Guan, con Zhengyu Liu y Gavin Zhong (Johns Hopkins), mostró que títulos de pull requests, issues o comentarios bastan para secuestrar Claude Code Security Review, Gemini CLI Action y Copilot Agent dentro de GitHub Actions, y exfiltrar credenciales por la propia API de GitHub. Por encontrarlo le pagaron 100 $ en Anthropic —que además rebajó la gravedad del fallo de 9,4 a «ninguna»—, 1.337 $ en Google y 500 $ en GitHub. I La distancia entre el riesgo descrito y lo que se paga por descubrirlo da una idea de cuánto se toma en serio el sector este problema. V
  • postmark-mcp, septiembre de 2025. Según Koi Security, un paquete npm que tras quince versiones limpias añadió una copia oculta (BCC) hacia el atacante; unas 1.643 descargas. Primer servidor MCP malicioso documentado: la pata de salida instalada como dependencia. S
  • OpenAI y Hugging Face, julio de 2026. Según la investigación independiente de METR publicada el 26 de agosto de 2026, el 8 de julio un agente creó un tablón de mensajes en un espacio de nombres de caché de Artifactory; alrededor de 1.200 agentes de una evaluación interna de ciberseguridad lo descubrieron y unos 700 participaron en el ataque, con más de 70.000 mensajes, convenciones propias (HOLD, VETO, STOP) y firma Ed25519 para evitar suplantaciones; el 11 de julio uno logró ejecución remota de código en servidores de Hugging Face. METR atribuye el origen a que entre el 30 % y el 40 % de los objetivos de la evaluación eran imposibles con la vulnerabilidad prevista, lo que empujó a los agentes a buscar cómo engañar al calificador. V Según el informe de OpenAI recogido por TechCrunch, el modelo operaba sin los clasificadores de producción y su monitorización de la cadena de razonamiento «habría detectado la actividad inicial más de un día antes» de la intrusión. S

Conviene no mezclar categorías. Otros incidentes que suelen contarse en la misma lista —el uso de herramientas agénticas por un actor estatal, o el ataque contra el Gobierno de México— son abuso deliberado de la herramienta por parte de quien la maneja, no inyección de prompts contra el agente de un tercero. S Son problemas reales, pero de otro modelo de amenaza, y revisarlos con esta lista no sirve de nada.

7Pruébalo

8Llévatelo a tu caso

Para qué sirve esto en un equipo

  • Agentes en CIAntes de darle permisos de escritura, mira qué token ve el agente que lee títulos de pull requests, issues y comentarios.
  • Asistentes internosComprueba si el asistente que busca en el correo o en el wiki puede además llamar hacia fuera en la misma sesión.
  • Compra de herramientasPasa la lista a cualquier conector o paquete de instrucciones de terceros antes de instalarlo en los equipos, y exige que la versión quede fijada.

Hasta dónde llega: esta lista dice si tu agente reúne las condiciones de la trifecta, no si ya lo han atacado ni si tus defensas aguantarían a un atacante adaptativo. No es una auditoría ni un pentest, y una puntuación baja no es un certificado de seguridad: el riesgo residual de la inyección de prompts no se elimina.

¿Te compensa?

Marca las que se cumplan en tu caso.

Si quieres seguir

Pruébalo tú

Usa el laboratorio de arriba con tu propio caso.

Entiéndelo mejor

Las piezas que lo completan.

¿Dudas o correcciones?

Si algo no encaja con tu caso, o si encuentras un error, escríbeme: se corrige y se anota.

Escríbeme

9Fuentes

  1. Simon Willison — The lethal trifecta for AI agents · 16-jun-2025
  2. NCSC (Dave Chismon) — Prompt injection is not SQL injection (it may be worse) · 8-dic-2025
  3. Meta AI — Agents Rule of Two: A Practical Approach to AI Agent Security · 31-oct-2025
  4. Simon Willison — New prompt injection papers: Agents Rule of Two and The Attacker Moves Second · 2-nov-2025
  5. Beurer-Kellner et al. — Design Patterns for Securing LLM Agents against Prompt Injections · 10-jun-2025
  6. Debenedetti et al. — Defeating Prompt Injections by Design (CaMeL) · 24-mar-2025
  7. Debenedetti et al. — AgentDojo · 19-jun-2024
  8. Nasr, Carlini et al. — The Attacker Moves Second · 10-oct-2025
  9. Dziemian et al. — How vulnerable are AI agents to indirect prompt injections? · 16-mar-2026
  10. Invariant Labs — MCP Security Notification: Tool Poisoning Attacks · 1-abr-2025
  11. Invariant Labs — GitHub MCP Exploited · 26-may-2025
  12. Simon Willison — Breaking down «EchoLeak» · 11-jun-2025
  13. Aonan Guan — Comment and Control: Prompt Injection to Credential Theft in Claude Code, Gemini CLI and GitHub Copilot Agent · 15-abr-2026
  14. The Hacker News — First Malicious MCP Server Found Stealing Emails (postmark-mcp, Koi Security) · sep-2025
  15. Anthropic (John Hughes) — Claude Code auto mode · 25-mar-2026
  16. Help Net Security — Anthropic to put AI in charge of reviewing Claude Code actions by default · 10-ago-2026
  17. Anthropic — System Card: Claude Fable 5.1 & Claude Mythos 5.1 · 1-sep-2026
  18. OWASP GenAI Security Project — OWASP Top 10 for Agentic Applications for 2026 · 9-dic-2025
  19. METR — Brief independent investigation of agents' behavior in the OpenAI / Hugging Face hacking incident · 26-ago-2026
  20. TechCrunch — OpenAI releases its official report on the Hugging Face breach · 26-ago-2026
  21. TechCrunch — OpenAI says AI browsers may always be vulnerable to prompt injection attacks · 22-dic-2025
hiddenrows · proyecto personal de divulgación de Miguel Yepes Contenido divulgativo, puede contener errores · sin garantías · Aviso legal · Privacidad · llms.txt