sistema: OPERATIVO
← volver a todos los hacks
AGENTS CRITICAL NEW

Secuestro de selección de herramienta: forzar al agente a elegir la del atacante

Un ataque de NDSS 2026 y un artículo de IBM de abril de 2026 apuntan al mismo punto ciego: el paso en que un agente elige qué herramienta llamar. Envenene el catálogo y el agente elige la suya, con un 70 a 100 % de éxito.

2026-06-21 // 6 min affects: gpt-4o, llama-3.3-70b, function-calling-agents, mcp-tool-using-agents

¿Qué es esto?

El secuestro de selección de herramienta ataca el paso en que un agente LLM decide cuál herramienta llamar, antes de decidir cómo llamarla. La mayor parte del trabajo de seguridad de agentes apunta al contenido que una herramienta devuelve, o a instrucciones ocultas en la descripción de una herramienta. Este ataque apunta a la decisión de enrutamiento en sí: un adversario coloca una herramienta manipulada en el catálogo del agente de modo que, para una tarea elegida, el agente elija de forma consistente la herramienta del atacante en lugar de la legítima. Dos publicaciones recientes lo formalizan. ToolHijacker (NDSS 2026, preprint de arXiv de abril de 2025) ataca la canalización de recuperación-y-selección, y Function Hijacking Attacks (IBM Research Europe, Imperial, Trinity College Dublin, arXiv:2604.20994, 22 de abril de 2026) ataca directamente la decisión de llamada a función.

Cómo funciona

Los agentes modernos eligen herramientas en dos etapas. Un recuperador reduce una gran biblioteca de herramientas a una lista corta top-k mediante similitud semántica, y luego el LLM lee esas descripciones candidatas y selecciona una. Ambas etapas son manipulables.

ToolHijacker inyecta un único documento de herramienta malicioso en la biblioteca. Su nombre y descripción se optimizan para ganar la recuperación y la selección de una tarea objetivo, incluso en un escenario «no-box» donde el atacante no ve las descripciones reales, ni el recuperador, ni el modelo, ni el valor de top-k. Los autores lo logran construyendo una copia en la sombra de la canalización y dividiendo la descripción en dos subsecuencias optimizadas, una para ganar la recuperación y otra para ganar la selección.

Function Hijacking toma una vía complementaria: añade tokens adversarios a los metadatos de una función para que un modelo de llamada a funciones emita la llamada elegida por el atacante. La técnica adapta el método de sufijo adversario GCG a la tarea de llamada a funciones. En particular, el artículo señala que es «en gran medida agnóstica a la semántica del contexto» y puede entrenarse como una función maliciosa universal que secuestra la selección a lo largo de muchas consultas.

Las cadenas optimizadas exactas no se reproducen aquí; son artefactos de investigación, no cargas listas para usar.

Por qué importa

Seleccionar la herramienta equivocada no es un error cosmético: es una redirección del flujo de control. Si el agente enruta una intención de «enviar un pago», «leer un archivo» o «consultar una base de datos» hacia una herramienta controlada por el atacante, este obtiene un punto de apoyo en el espacio de acción del agente sin tocar nunca la consigna del usuario. La eficacia medida es alta: ToolHijacker reporta una tasa de éxito del 96,7 % con Llama-3.3-70B como modelo en la sombra y GPT-4o como objetivo en el benchmark MetaTool, más una tasa de acierto de recuperación del 100 %. Function Hijacking reporta entre 70 y 100 % de éxito en cinco modelos, en variantes «instructed» y «reasoning», sobre el Berkeley Function Calling Leaderboard.

La exposición crece con los ecosistemas de herramientas abiertos. Allí donde los agentes obtienen herramientas o servidores MCP de un registro compartido, un mercado o un catálogo multiinquilino, una sola entrada plantada puede sesgar el enrutamiento de cada usuario que active la tarea objetivo.

Defensas

Ninguna defensa publicada detiene por completo estos ataques hasta la fecha, así que la defensa es por capas, no única.

Las defensas del lado de entrada probadas rinden por debajo de lo esperado. Los autores de ToolHijacker evaluaron métodos de prevención (StruQ, SecAlign) y de detección (known-answer detection, DataSentinel, perplejidad y perplejidad por ventana); el ataque sin gradiente aún alcanzó un 99,6 % de éxito bajo StruQ, y la detección por perplejidad pasó por alto el 90 % de los documentos maliciosos basados en gradiente manteniendo menos del 1 % de falsos positivos. Trátelas como fricción, no como solución.

Las mitigaciones prácticas se centran en el catálogo y en la decisión de enrutamiento. Cure y fije la biblioteca de herramientas: autorice herramientas por identidad firmada y procedencia, en lugar de resolverlas libremente desde registros abiertos. Restrinja la recuperación a entradas verificadas y evite la autoinstalación de servidores MCP de terceros. Añada una verificación de integridad de la selección: registre qué herramienta se eligió para qué intención, alerte cuando una herramienta nueva o de baja reputación capture una tarea sensible, y exija confirmación humana antes de llamadas de herramienta de alto impacto (pagos, escritura de archivos, red externa). Aplique el mínimo privilegio para que ni siquiera una selección secuestrada alcance una capacidad peligrosa. Por último, vigile cualquier cambio repentino en qué herramienta sirve una tarea recurrente, señal directa de manipulación del catálogo.

Estado

ElementoDetalle
ToolHijackerNDSS 2026; arXiv:2504.19793; apunta a recuperación + selección; no-box
Function Hijacking (FHA)arXiv:2604.20994, 22 abr. 2026; tipo GCG, variante universal
Impacto medidoToolHijacker 96,7 % ASR (objetivo GPT-4o); FHA 70–100 % ASR (BFCL)
Defensas probadasStruQ, SecAlign, DataSentinel, perplejidad — insuficientes
Estado del parcheProblema abierto; mitigar con procedencia, mínimo privilegio, auditoría de selección

Sources