Atribución causal: una defensa emergente contra la inyección indirecta
Un grupo de papers de inicios de 2026 — CausalArmor y AttriGuard — defiende a los agentes con herramientas preguntando qué acciones están causadas por contenido no confiable y no por el usuario. Repaso de la defensa por atribución causal.
¿De qué se trata?
La inyección indirecta de prompts (IPI) oculta instrucciones dentro del contenido que un agente lee — una página web, un correo, un documento RAG, el resultado de una herramienta — para que el agente ejecute el texto del atacante como si fuera una instrucción legítima. Greshake et al. describieron esta clase de ataque en 2023 (arXiv 2302.12173), y sigue encabezando el OWASP Top 10 for LLM Applications. Lo nuevo es el ángulo defensivo.
Entre febrero y abril de 2026, varios grupos de investigación convergieron — por caminos distintos — en la misma idea: en lugar de intentar reconocer cadenas maliciosas, preguntar si una llamada a herramienta determinada se explica causalmente por la petición del usuario o por el contenido no confiable que el agente acaba de ingerir. Este artículo cubre esa defensa emergente por «atribución causal», en torno a dos papers representativos — CausalArmor (arXiv 2602.07918, 8 feb. 2026) y AttriGuard (arXiv 2603.10749, 11 mar. 2026) — y la evaluación que explica su necesidad, «Your Agent is More Brittle Than You Think» (arXiv 2604.03870, abr. 2026).
Cómo funciona
La intuición común es un contrafactual: una acción legítima debería seguir explicándose por la instrucción del usuario aunque se elimine o neutralice la observación no confiable. Una acción que solo aparece después de que el agente leyó contenido controlado por el atacante es sospechosa.
Acción propuesta por el agente
|
+-----------------+------------------+
| |
Reevaluar con la observación ¿La acción se sigue produciendo?
no confiable atenuada / quitada ├── sí → atribuida a la INTENCIÓN del usuario → permitir
└── no → atribuida al SPAN no confiable → bloquear / sanear
CausalArmor lo implementa mediante una ablación «leave-one-out» ligera en los puntos de decisión privilegiados. Mide cuánto aporta cada segmento no confiable a la siguiente acción y dispara el saneamiento solo cuando un segmento no confiable domina la intención del usuario, en vez de un filtrado permanente y costoso. Añade un enmascaramiento retroactivo de la cadena de razonamiento, para que el agente no siga actuando sobre un razonamiento ya envenenado por el texto inyectado. Los autores lo evalúan en AgentDojo y DoomArena.
AttriGuard formula la misma intuición como atribución causal a nivel de acción, mediante pruebas contrafactuales en paralelo: para cada llamada a herramienta propuesta, reejecuta el agente bajo una vista «con control atenuado» de las observaciones externas y comprueba si la llamada se sigue produciendo. Las llamadas que persisten se atribuyen a la intención del usuario; las que desaparecen se atribuyen a la observación no confiable y se detienen.
Aquí no se reproduce ningún payload — lo que importa es el mecanismo, no una cadena de inyección concreta.
Por qué importa
El paper sobre la fragilidad aporta la urgencia. Al evaluar seis defensas frente a cuatro vectores de IPI sobre nueve modelos base, en entornos dinámicos y multietapa con llamadas a herramientas, constata que defensas que parecen sólidas en benchmarks de un solo turno se degradan en bucles de agente realistas. Los filtros por coincidencia de cadenas o por clasificador son sorteados con frecuencia por payloads cargados de razonamiento o nunca vistos.
La atribución causal resulta atractiva porque apunta al mecanismo — ¿provocó esta acción algún contenido no confiable? — en lugar de a la superficie — ¿este texto parece malicioso? Un atacante puede reformular un payload para esquivar un clasificador mucho más fácilmente de lo que puede hacer que una instrucción inyectada parezca la propia petición del usuario.
Conviene enunciar con claridad dos compromisos. Coste: AttriGuard reporta un coste en tokens de aproximadamente 2× por la reejecución contrafactual; el argumento de CausalArmor es precisamente evitar el coste permanente actuando solo cuando la atribución señala un span no confiable dominante. Cobertura: las cifras de tasa de éxito de ataque del 0 % se miden bajo ataques estáticos en benchmarks concretos. Los atacantes adaptativos que moldean deliberadamente sus payloads para sobrevivir a la ablación — de modo que la acción maliciosa parezca «necesaria» incluso bajo atenuación — siguen siendo una pregunta de investigación abierta.
Defensas
La atribución causal es una capa, no una solución mágica. Una pila práctica:
- Etiquetar la procedencia. Marcar como no confiable por defecto cada span que el agente lee (salida de herramienta, documento recuperado, página web) y conservar esa etiqueta a lo largo del razonamiento.
- Añadir un control contrafactual en las acciones privilegiadas. Antes de llamadas a herramientas de alto impacto (enviar, borrar, pagar, exfiltrar), reevaluar si la acción sobrevive cuando se atenúan las observaciones no confiables, como hacen CausalArmor y AttriGuard.
- Enmascarar el razonamiento envenenado. Impedir que el agente siga actuando sobre una cadena de razonamiento ya contaminada por texto inyectado.
- Mantener a la vista el mínimo privilegio y el trío letal. La atribución reduce el riesgo; cortar el acceso del agente a datos privados, contenido no confiable o un canal de exfiltración lo elimina.
- Combinar con defensas por grafo de procedencia. Enfoques como Argus siguen el flujo de datos; la atribución causal razona sobre la necesidad de la acción. Se complementan.
- Probar en bucles multietapa, no en un solo turno. Esa es la lección del paper sobre la fragilidad: valide cualquier defensa de IPI dentro del entorno dinámico con llamadas a herramientas donde realmente se ejecutará.
Estado
| Trabajo | Referencia | Fecha | Aporte |
|---|---|---|---|
| CausalArmor | arXiv 2602.07918 | 2026-02-08 | Ablación «leave-one-out» + enmascaramiento del razonamiento; saneamiento selectivo (no permanente) |
| AttriGuard | arXiv 2603.10749 | 2026-03-11 | Atribución causal a nivel de acción por reejecución contrafactual; ~0 % ASR (estático), ~3 % de pérdida de utilidad, ~2× tokens |
| Your Agent is More Brittle Than You Think | arXiv 2604.03870 | 2026-04 | 6 defensas × 4 vectores IPI × 9 LLM en multietapa; muestra que las defensas de un turno se degradan en bucle de agente |
| Inyección indirecta de prompts (origen) | arXiv 2302.12173 | 2023-02 | Primera descripción sistemática de la clase IPI |
La conclusión no es que la IPI esté «resuelta». Es que la frontera defensiva se desplaza de detectar texto malicioso hacia atribuir cada acción a su causa — y que cualquier defensa que se adopte debería medirse dentro de un agente realista y multietapa, porque es allí donde las defensas frágiles fallan.