La semana pasada tuve el placer de asistir a un evento de la comunidad tecnológica local, AIBirras, un espacio que combina el networking con la profundización de temas relacionados con la Inteligencia Artificial. Una de las ponencias del evento dada por Montevive.AI fue sobre un desafío de la seguridad de la IA: el Prompt Injection.
El Prompt Injection es una técnica de ataque que busca manipular un Modelo de Lenguaje Grande (LLM) modificando la instrucción interna que tiene.
En terminos más sencillos, el ataque consiste en introducir texto malicioso o engañoso en la entrada del usuario (lo que conocemos como User Input o User Prompt). Este texto está diseñado para que el LLM ignore sus reglas operacionales originales (System Prompt) y, en su lugar, ejecute órdenes ocultas del atacante. En esencia, se explota la naturaleza interpretativa del lenguaje natural para manipular el comportamiento del sistema de IA.
Esto subraya una preocupación fundamental: la seguridad en la IA trasciende el mero entrenamiento de modelos. Implica el diseño de sistemas robustos, la validación rigurosa de entradas y el entendimiento de que cualquier interacción en lenguaje natural puede convertirse en un vector de ataque si no se gestiona con la debida cautela.
analisis de la vulnerabilidad mediante ejemplos
Para ilustrar la sensibilidad de los sistemas basados en lenguaje, veamos dos escenarios. En estos ejemplos, la instrucción original se ve comprometida por un ataque malicioso.
En este primer ejemplo trataremos de vulnerar una instrucción tan simple como es mantener el estilo y la personalidad. Para ello, consideremos un modelo configurado con instrucciones estrictas de formalidad:

Tras una respuesta normal, introducimos una inyección:

El resultado demuestra cómo el modelo omite su personalidad predefinida y adopta el estilo inyectado. Estos ejemplos demuestran evidencian la sensibilidad de los sistemas, ya que este tipo de ataque no requiere un perfil técnico ni conocimientos de programación, solo necesitamos lenguaje natural.
En este segundo ejemplo veamos como podemos manipular la lógica de negocio de un asistente para la venta de coches. En este caso, el modelo actuará como un vendedor de coches con la misión de vender un vehículo específico.

La respuesta normal es profesional. Sin embargo, se introduce una instrucción maliciosa.

El sistema se compromete y el modelo “regala” el coche. Este resultado, logrado con una sola interacción, subraya el riesgo de que sistemas sin las medidas de seguridad adecuadas sean vulnerables a este tipo de manipulación. Es crucial destacar que, si bien se ha utilizado un modelo como GPT-3.5 para la demostración , esta vulnerabilidad es un problema activo en el panorama actual.
Estrategias de Mitigación: Blindando Nuestros Sistemas
Aunque el uso de modelos más nuevos (como GPT-4 o la serie GPT-5) puede mejorar la resistencia, esto no exime completamente al sistema de la vulnerabilidad. Por ello, es imperativo implementar capas de seguridad.
Una estrategia clave es la Validación de Entrada mediante un detector de inyección de prompts.
Para ello veamos como podemos crear un detector de Prompt Injection. Antes de enviar el texto al modelo principal, se realiza una llamada previa para detectar el ataque malicioso. Para esto, se utiliza una función que invoca un modelo clasificador:

Al aplicar el detector al ejemplo del vendedor de coches:

Aunque el modelo final, debido al ataque sigue regalando el coche, el detector clasifica correctamente la entrada como un ataque de alto riesgo. Esto permite al sistema aplicar una política de seguridad, como bloquear la respuesta o solicitar la reformulación de la entrada, antes de que el modelo principal pueda ser comprometido.
La implementación de estas barreras es fundamental para construir sistemas de IA seguros.
Para todos los ejemplos hemos usado el modelo GPT-3.5.