ARGUS: una defensa por grafo de procedencia contra la inyección de prompts contextual
Publicado el 5 de mayo de 2026, el paper ARGUS introduce la auditoría por grafo de influencia para agentes LLM — la tasa de éxito de ataque cae del 28,8 % al 3,8 % en un nuevo benchmark.
¿De qué se trata?
El 5 de mayo de 2026, Shihao Weng y sus colaboradores publicaron en arXiv ARGUS: Defending LLM Agents Against Context-Aware Prompt Injection (2605.03378). El trabajo presenta dos aportaciones que merecen lectura: un benchmark, AgentLure, que captura ataques de inyección adaptados al contexto de ejecución, y una defensa, ARGUS, construida en torno a un grafo de procedencia de influencia sobre el estado del agente. En AgentLure, ARGUS reduce la tasa de éxito de ataque del 28,8 % al 3,8 %, preservando el 87,5 % de la utilidad de las tareas con un sobrecosto de 1,24× en tokens. Frente a un adversario adaptativo en modo white-box que conoce la arquitectura y los prompts de ARGUS, la tasa solo sube al 5,9 %.
Un panorama complementario publicado al día siguiente — A Systematic Survey of Security Threats and Defenses in LLM-Based AI Agents (arXiv:2604.23338v2, 6 de mayo de 2026) — confirma de forma independiente el marco: las capas superiores del stack agéntico, incluyendo memoria, ejecución de herramientas y coordinación multi-agente, siguen estando claramente subdefendidas.
Cómo funciona
La inyección de prompts ingenua es básicamente una plantilla — «Ignore previous instructions and…» — pegada sobre contenido por lo demás normal. La aportación de AgentLure es especificar un modelo de amenaza más exigente. Un payload contextual está «estrechamente acoplado al contenido de ejecución que el agente debe consumir» y «escrito para ser semánticamente indistinguible de los datos legítimos que lo rodean». Ejemplo concreto del paper: un agente recibe la orden de pagar mi factura de electricidad. El documento de la factura recuperado contiene campos válidos de beneficiario y monto, pero también una «nota de factura» que describe una tarifa de procesamiento adicional — un único span anómalo dentro de un portador por lo demás auténtico. Una defensa como Tool Filter autoriza la herramienta de pago a partir del prompt del usuario y nunca llega a ver que la transferencia adicional solo está fundamentada en el span anómalo.
AgentLure abarca cuatro dominios agénticos — Banking, Travel, Workspace, Slack — con ocho vectores de ataque: Capability Routing Hijacking, Argument Tampering, Conditional Flow Hijacking, Reasoning Hijacking, Persistent Context Poisoning, Inter-Agent Contagion, Skill Injection y Workflow Hijacking. Cada uno se instancia sobre seis superficies: documentación de herramientas, retornos de herramientas, documentos recuperados, entradas de memoria, skills instaladas y mensajes inter-agente.
ARGUS audita a nivel de span, no de observación. Conceptualmente:
# Grafo de procedencia de influencia (esquema — ilustrativo, no es código de exploit)
nodes = system_prompt, user_query, tool_docs, tool_returns, rag_docs,
memory, skills, agent_msgs
edges = u → v cuando el contenido de u influyó en el nodo v
trust = base_trust(node.type) × max(eta, fraction_benign_chars)
# base: system/user=1.0, skill=0.6, tool_doc/return=0.5,
# rag/memory=0.4, agent_msg=0.3 ; eta=0.1
audit(tool_call):
if read_only(tool_call):
execute(); append_returns_to_graph(); return
ContentSegmenter.label_spans(unsegmented_nodes)
grounding = ArgumentGrounder.map(args → spans) # copy/normalize/derive/resolve/ungrounded
if not InvariantChecker.holds(tool_call, user_query): block
if not EntailmentVerifier.entailed_by_benign(tool_call):
if EntailmentVerifier.shaped_by_anomalous(tool_call): block
return execute()
Cuatro herramientas cooperan: un ContentSegmenter que etiqueta los spans como benignos o anómalos; un ArgumentGrounder que mapea cada argumento de una llamada a herramienta hacia los spans que lo justifican (copy / normalize / derive / resolve / ungrounded); un InvariantChecker que valida la acción contra dos o tres invariantes a nivel de tarea extraídos del prompt del usuario al inicio de la sesión; y un EntailmentVerifier que pregunta tanto si la acción se desprende de evidencias benignas como si contenido anómalo pudo plausiblemente moldearla. Un bloqueo activa un módulo Hints que devuelve al agente valores benignos candidatos para que pueda reintentar. El reintento se audita de nuevo.
Por qué importa
La mayoría de las defensas en producción operan en la granularidad incorrecta. Tool Filter actúa sobre el prompt del usuario. Drift y Melon razonan en confianza a nivel de observación. El instruction-hierarchy training empuja al modelo a preferir el system prompt sobre los retornos de herramientas. Ninguna formula la pregunta: ¿qué caracteres exactos de este documento recuperado justifican este argumento exacto de esta llamada exacta a herramienta? Los resultados de AgentLure sugieren que sin esa pregunta, las inyecciones contextuales — las realistas — se cuelan.
Los números de ARGUS también funcionan como base de comparación. 1,24× en tokens es compatible con los presupuestos de producción, y 87,5 % de utilidad indica que la defensa no paraliza al agente en tareas legítimas. La ablación en §5 (no capturada íntegramente en el HTML del preprint) reporta que cada uno de los cuatro subcomponentes es individualmente necesario. No hay un único check mágico: la defensa es estructural.
Defensas
El paper es en sí mismo una defensa. Para los equipos que despliegan agentes LLM hoy, antes de que llegue herramienta estilo ARGUS a las bibliotecas:
- Rastree la procedencia por argumento, no por observación. Cuando un argumento es
derived, registre los spans que contribuyeron y el tipo de grounding (copy, normalize, derive, resolve, ungrounded). Un argumento ungrounded sobre una herramienta que cambia estado es una señal de anomalía de alto valor. - Extraiga invariantes de tarea al inicio de la sesión y verifíquelos antes de cualquier acción irreversible. Muchos ataques contextuales sobreviven a un filtrado por observación pero violan un invariante como «el beneficiario debe coincidir con el del prompt del usuario».
- Default-deny en herramientas que cambian estado. Las llamadas de solo lectura alimentan el grafo a bajo costo. El costo del audit debe recaer en las acciones que tocan el mundo.
- Trate la memoria y los mensajes inter-agente como de baja confianza por construcción. ARGUS los puntúa con 0,4 y 0,3 respectivamente. El panorama de 116 papers (
2604.23338) confirma que el envenenamiento de memoria a largo plazo y la contaminación inter-agente son las clases más subdefendidas. - Pruebe contra benchmarks contextuales, no solo plantillas. Si su suite de evaluación todavía depende de «Ignore previous instructions», está midiendo ataques de 2023.
Estado
| Elemento | Referencia | Fecha | Notas |
|---|---|---|---|
| Paper ARGUS (v1) | arXiv:2605.03378 | 2026-05-05 | 19 páginas, CC-BY-4.0 |
| Benchmark AgentLure | §3 del paper | 2026-05-05 | 4 dominios × 10 tareas × 8 vectores = 320 muestras |
| Panorama LASM (v2) | arXiv:2604.23338 | 2026-05-06 | Marco 7 capas × 4 escalas temporales sobre 116 papers |
| Implementación pública | Aún no publicada | — | Los autores publican el coding por paper; código de ARGUS pendiente |
La lectura de fondo: las defensas contra inyección de prompts pasan al fin de «filtrar la entrada» a «auditar la decisión». Es el nivel correcto de abstracción — y es el punto en el que el agente realmente se compromete a actuar sobre el mundo.