Ataque de inyección indirecta de instrucciones
Un ataque en el que el atacante inserta contenido malicioso, por ejemplo, en información que probablemente se incluya en la respuesta a una instrucción; cuando se recupera, el contenido malicioso hace que el modelo de IA se comporte de forma inesperada o perjudicial. Véanse Ataque de inyección de instrucciones y Ataque pasivo de inyección de instrucciones
¿Qué es un ataque de inyección indirecta de instrucciones?
Un ataque de inyección indirecta de instrucciones se produce cuando un atacante inserta instrucciones o contenido maliciosos en información externa que posteriormente recupera o utiliza un modelo, una aplicación o un agente de IA mientras procesa una solicitud.
Inyección de instrucciones directa frente a indirecta
Existen formas directas e indirectas de inyección de prompts. La inyección directa de prompts se produce cuando un atacante introduce instrucciones o contenido maliciosos directamente en el prompt de un modelo. En la inyección indirecta de prompts, el atacante oculta instrucciones o contenido maliciosos en materiales que el modelo procesará, como páginas web, archivos de repositorios, correos electrónicos, documentos subidos o entradas de API.
Estas son algunas diferencias clave entre la inyección de instrucciones directa e indirecta:
| Inyección directa de instrucciones | Inyección indirecta de instrucciones | |
|---|---|---|
Concepto fundamental | La carga maliciosa se introduce directamente por el usuario en el prompt de un modelo. | La carga maliciosa está incrustada en materiales externos que el modelo procesa o recupera. |
Sistemas de destino | Chatbots orientados al usuario, interfaces de búsqueda basadas en IA, endpoints de API públicos y modelos conversacionales independientes. | Sistemas de generación aumentada por recuperación (RAG), agentes de IA autónomos con acceso a herramientas, herramientas que resumen correos electrónicos o documentos y asistentes de IA para navegar por Internet o extraer datos de sitios web. |
Activador de ataque | Inmediato. El ataque se activa en cuanto el atacante envía el prompt al modelo. | Diferido y condicional. El ataque se desencadena cuando el modelo procesa el recurso externo, ya sea mediante un proceso autónomo o cuando una persona utiliza el modelo. |
Mecánica de ejecución | La carga maliciosa anula o elude las restricciones del prompt del sistema mediante cambios de contexto, juegos de rol con personajes, situaciones hipotéticas o inyección de prefijos (obligando al modelo a comenzar la respuesta generada con una frase afirmativa que elude las medidas de protección). | El modelo procesa contenido comprometido, como código malicioso, junto con entradas legítimas. No logra separar ambos y ejecuta las instrucciones del código malicioso. |
Cómo funciona la inyección indirecta de prompts
La inyección indirecta de prompts implica un proceso de varios pasos. Los cuatro pasos esenciales son:
1. Inyección: El atacante inserta instrucciones o contenido maliciosos en materiales externos, como un sitio web, un documento, un correo electrónico o un registro de una base de datos. Para ocultar esa carga maliciosa, el atacante puede utilizar texto invisible (blanco sobre blanco), comentarios HTML o metadatos.
2. Propagación: Un modelo de lenguaje de gran tamaño (LLM), una aplicación de IA o un agente de IA autónomo ingiere ese material comprometido. Puede estar realizando una consulta RAG en una base de datos vectorial, resumiendo una bandeja de entrada de correo electrónico o navegando por una página web. La carga maliciosa se propaga por el sistema de IA o el flujo de trabajo del agente.
3. Ejecución: El modelo procesa las instrucciones o el contenido maliciosos junto con entradas legítimas, como la petición de un usuario al modelo. Cuando el modelo no logra distinguir las instrucciones maliciosas del contenido legítimo, puede seguir las instrucciones incrustadas
4. Impacto: Al seguir esas instrucciones maliciosas, el sistema o agente de IA puede cumplir los objetivos del atacante, entre los que podrían encontrarse exponer datos confidenciales, modificar registros del sistema, enviar correos electrónicos no autorizados o proporcionar contenido inexacto o inapropiado al usuario que formuló una solicitud legítima.
Escenarios y vectores de ataque reales
Los atacantes podrían utilizar una amplia variedad de vectores para llevar a cabo inyecciones indirectas de instrucciones y emplear esta técnica para lograr diversos objetivos dirigidos contra empresas. Veamos algunos ejemplos reales:
Manipulación del proceso de contratación: Un atacante podría insertar instrucciones ocultas en un currículum en PDF para indicar a un sistema de selección de candidatos basado en IA que otorgue una puntuación alta al candidato e ignore cualquier información negativa. Además de ayudar a una persona a conseguir una entrevista inicial, un atacante podría utilizar esta táctica como parte de una operación de espionaje corporativo de mayor envergadura.
Llevar a cabo ataques de phishing contra clientes: Sabiendo que una empresa concreta utiliza un servicio de atención al cliente basado en IA, un atacante podría enviar una solicitud de asistencia mediante un formulario web o un correo electrónico. Esta solicitud contendría una petición aparentemente legítima que haría referencia a la cuenta de un cliente real, combinada con instrucciones ocultas e integradas. Las nuevas instrucciones podrían anular las instrucciones anteriores del modelo y ordenarle que enviara un correo electrónico al cliente real con un enlace de phishing añadido.
Ejecución de fraudes durante el proceso de compra: Un atacante podría infiltrarse en el sitio web de un proveedor B2B e insertar instrucciones maliciosas que leería un agente de compras basado en IA. El agente podría estar analizando el sitio para extraer datos sobre precios, pero también leer las nuevas instrucciones, que podrían anular las directrices existentes y hacer que transfiriera inmediatamente fondos a la cuenta del atacante.
Estrategias de prevención y defensa
Dada la cantidad de posibles vectores para este tipo de ataque, prevenir y defenderse frente a la inyección indirecta de instrucciones puede resultar complicado. Sin embargo, aplicar tres buenas prácticas puede ayudar a las organizaciones a reducir la probabilidad de que estos ataques tengan éxito.
1. Tratar de forma predeterminada los datos externos recuperados como no fiables: Los sistemas de IA deben considerar todos los datos externos como entradas sin procesar y no fiables, e impedir que se utilicen como instrucciones ejecutables del sistema. Como medida complementaria, las organizaciones deben aplicar el principio de mínimo privilegio a los modelos y agentes, limitando lo que pueden hacer y a qué pueden acceder mientras gestionan esos datos externos no fiables.
2. Implementar barreras de protección dobles (de entrada y salida): Las organizaciones deben aplicar barreras de protección de IA tanto a la entrada como a la salida del modelo. Las barreras de entrada pueden impedir que los modelos lleguen a ver instrucciones y contenido maliciosos mediante la detección de patrones de inyección de prompts o de anulación del sistema. Las barreras de salida pueden examinar y validar el resultado (ya sea texto o acciones de agentes) antes de que el modelo lo ejecute. Por ejemplo, estas barreras podrían bloquear enlaces externos e impedir llamadas no autorizadas a otros sistemas.
3. Utilizar aprobaciones con intervención humana (HITL) para acciones sensibles: Exigir la aprobación humana para determinadas acciones de modelos y agentes puede detener ataques a gran escala o, al menos, limitar su impacto. Por ejemplo, las organizaciones podrían exigir que una persona apruebe las transacciones financieras ejecutadas por agentes que superen un determinado importe, las modificaciones masivas de bases de datos o los cambios en la información de las cuentas de clientes.
Preguntas frecuentes
¿Qué es el «problema del agente confuso» en los agentes de IA?
El «problema del agente confuso» se produce cuando un usuario con privilegios limitados engaña a un agente de IA con privilegios superiores (el «agente») para que realice alguna acción en su nombre. El usuario podría recurrir a la inyección indirecta de instrucciones para coaccionar al agente, por ejemplo, insertando comandos maliciosos en contenido que, por lo demás, parece una entrada legítima.
¿Cómo amenazan las inyecciones indirectas de prompts a los sistemas de generación aumentada por recuperación (RAG)?
Los atacantes pueden utilizar sistemas de generación aumentada por recuperación (RAG) para llevar a cabo una inyección indirecta de instrucciones. Si consiguen insertar instrucciones maliciosas en un documento incorporado a la base de datos vectorial del sistema RAG, un modelo que acceda a dicha base de datos podría leerlas (y ejecutarlas).
¿En qué se diferencia el aislamiento de prompts del control de privilegios para modelos y agentes de IA?
El aislamiento de prompts evita que los modelos y agentes sean engañados o confundidos por entradas maliciosas. Esta técnica puede separar los canales de datos y de instrucciones, o utilizar un modelo secundario para depurar las entradas que no sean de confianza. El control de privilegios limita lo que un modelo o agente puede hacer, incluso si recibe instrucciones maliciosas. Las organizaciones pueden aplicar el principio de mínimo privilegio, implementar un control de acceso basado en roles o mantener la supervisión humana para ayudar a garantizar que, aunque los modelos y agentes estén confundidos, no ejecuten acciones que puedan causar daños graves.
¿Pueden los firewalls de aplicaciones web (WAF) tradicionales detectar la inyección indirecta de prompts?
Los cortafuegos de aplicaciones web (WAF) tradicionales no están diseñados para detectar de forma fiable la inyección indirecta de instrucciones. Estas soluciones protegen el tráfico HTTP entrante y las solicitudes de los usuarios, pero la inyección indirecta de instrucciones se introduce a través de fuentes de datos de terceros. Además, los WAF buscan código que pueda indicar un ataque, mientras que la inyección indirecta de instrucciones utiliza comandos en lenguaje natural que los WAF no identificarían como amenazas.
¿Cómo se protegen los sistemas y las aplicaciones de IA durante la inferencia y en tiempo de ejecución?
Proteger los sistemas y las aplicaciones de IA durante la inferencia y en tiempo de ejecución requiere controles que inspeccionen las instrucciones, las respuestas, las acciones de los agentes y el uso de herramientas a medida que se producen las interacciones. La seguridad en tiempo de ejecución específica para la IA puede ayudar a bloquear la inyección de instrucciones, evitar la filtración de datos confidenciales, aplicar políticas y controlar cómo interactúan los modelos y los agentes con los usuarios, los datos, las API y las herramientas conectadas.
¿Qué capacidades de F5 respaldan la seguridad de la IA empresarial?
F5 AI Guardrails ayuda a aplicar políticas en tiempo de ejecución y a proteger frente a riesgos como la inyección de instrucciones, la filtración de datos, los resultados dañinos y las acciones no seguras de los agentes. F5 AI Red Team utiliza pruebas adversarias para identificar vulnerabilidades y puntos débiles. F5 AI Gateway proporciona un punto de control centralizado para gestionar el acceso a modelos, agentes y herramientas, mientras que F5 Workforce AI Security ofrece visibilidad sobre el uso autorizado y no autorizado de la IA en toda la empresa. En conjunto, estas capacidades forman parte de F5 AI Security Platform. Para ofrecer una protección más amplia en aplicaciones, API y entornos distribuidos, F5 Application Delivery and Security Platform (ADSP) reúne capacidades como la protección de aplicaciones web y API, la gestión de bots, la mitigación de ataques DDoS y la entrega de aplicaciones.

