Con la llegada de los nuevos modelos de inteligencia artificial (IA) para el procesamiento del lenguaje natural, como los LLM (Modelos de Lenguaje del Lenguaje), se han abierto numerosos casos de uso en marketing, asistentes virtuales y más. Estos modelos tienen la capacidad de generar texto coherente y responder preguntas, pero es importante comprender que su comprensión del significado real es limitada y se basa en patrones aprendidos durante el entrenamiento.
Sin embargo, esta limitación puede dar lugar a riesgos, como la “indirect prompt injection” (inyección indirecta de indicaciones), que explota vulnerabilidades en los sistemas para manipular las entradas de datos y ejecutar comandos no deseados, revelar información sensible o comprometer el sistema en su totalidad.
Así las cosas, un LLM es un modelo de inteligencia artificial que aprende a generar lenguaje humano basándose en grandes cantidades de texto previamente analizado. Puede generar texto coherente y responder preguntas, aunque su comprensión del significado real es limitada (para tener más contexto, vale la pena revisar el artículo sobre el aprendizaje de máquina).
Todo acerca de los LLM es perfecto, seguro y confiable?
Para evitar la inyección indirecta de indicaciones, se recomienda aplicar filtros y restricciones en la ejecución de comandos maliciosos, utilizar técnicas de sanitización y escape de datos, parametrizar las consultas para evitar la inyección de comandos, limitar los privilegios del sistema, mantener el software actualizado y proporcionar capacitación en seguridad y concienciación sobre las mejores prácticas y posibles técnicas de ataque.
Cabe aclarar que, al igual que en el caso del cuerpo humano, la higiene de los algoritmos debe ser constante, uno no se baña una sola vez en la vida, lo hace con cierta periodicidad dependiendo de la cultura y, sobre todo, de las necesidades. Grandes productos del mismísimo Google, han tenido que ajustar sus algoritmo cuando los vicios han generado errores (como por ejemplo etiquetar a personas como si fueran animales, sólo por su tono de piel).
Qué hacer para prevenir la inyección indirecta de indicaciones?
Ahora bien, para prevenir la inyección indirecta de indicaciones, es importante utilizar técnicas de validación y filtrado de datos adecuadas. Esto implica validar y sanitizar cuidadosamente todas las entradas del usuario antes de utilizarlas en comandos o consultas. Técnicamente, para evitar eso de “indirect prompt injection” y proteger los sistemas contra este tipo de ataques, se pueden implementar varias soluciones y buenas prácticas de seguridad como es el caso de:
- Aplicar filtros y restricciones para evitar la ejecución de comandos o consultas maliciosas.
- Generar técnicas de sanitización o escape de datos para asegurarse de que los caracteres especiales y las secuencias de comandos maliciosos se traten como datos literales y no como instrucciones ejecutables, en palabras más simples, evitar la interpretación errónea de los datos y reducir el riesgo de inyecciones de comandos.
- Parametrizar las consultas para evitar la inyección de comandos al separar los datos de las instrucciones SQL.
- Limitar los privilegios y permisos del sistema a los niveles mínimos necesarios.
- Mantener el software actualizado con los últimos parches de seguridad, con el fin de, corregir las vulnerabilidades conocidas que podrían ser explotadas por medio de indirect prompt injection.
- Capacitación y concienciación para los programadores acerca de las mejores prácticas de seguridad y el conocimiento de las posibles técnicas de ataque.
Y entonces?
La seguridad debe ser un enfoque integral que evolucione para enfrentar las amenazas emergentes y mantener la integridad de los sistemas. Así como la ingeniería social se utiliza para engañar a los humanos, los ciberdelincuentes también pueden aprovechar las limitaciones de los modelos de IA para ejecutar ataques. La prevención y la conciencia son clave para protegerse contra estos riesgos.