En esta serie de entradas, repasaremos algunas técnicas para realizar pruebas de seguridad sobre aplicaciones LLM. Esta primera parte cubrirá algunos aspectos fundamentales, para luego ir viendo vulnerabilidades de acuerdo a la clasificación de OWASP Top 10 para LLMs.
Bien, lo primero que debemos hacer es entender algunos conceptos básicos. Es importante aclarar que no entraremos en detalles técnicos avanzados sobre LLMs, Prompt Engineering, Técnicas de entrenamiento u otros conceptos relacionados, ya que nuestro enfoque será desde la perspectiva de ciberseguridad.
Dicho esto, comencemos.
Entendiendo al adversario
Antes de comenzar a atacar a una aplicación LLM, es importante diferenciar algunos términos:
Inteligencia Artificial: Es un campo de la informática que busca crear sistemas capaces de realizar tareas que normalmente requieren inteligencia humana. Como parte de la ejecución de las tareas, la IA requiere incluir aprendizaje, razonamiento, percepción, toma de decisiones, y capacidad de resolver problemas. Para que la IA trabaje de manera eficiente, se necesitan altas capacidades computacionales, por ello es que recién estamos viendo su apogeo desde hace pocos años. La IA que es capaz de generar algún contenido
- Machine Learning: Es una rama de la IA, que permite que las máquinas aprendan de los datos con los que se alimenta, para que mejore su rendimiento en tareas específicas sin que estas hayan sido programadas de manera explícita. Está orientado a poder identificar patrones y hacer predicciones. La diferencia con la IA es el alcance y las capacidades que tiene esta última.
- Deep Learning: Es un subconjunto de Machine Learning. La diferencia de este concepto radica en la forma que emplea para aprender automáticamente, la cual está basada en redes neuronales artificiales (inspiradas en el cerebro humano). Los modelos de Deep Learning son útiles cuando se requiere procesar grandes volúmenes de datos no estructurados
- NLP: Procesamiento de lenguaje natural. Es una rama de la Inteligencia Artificial Generativa, que busca entender e interpretar el lenguaje humano de manera natural. Las técnicas relacionadas con el procesamiento del lenguaje, son parte del campo de estudio de NLP.
- LLM: Modelo de Lenguaje Grande. Es un tipo de modelo NLP que usa deep learning y un gran volumen de datos de entrenamiento para generar respuestas basadas en lenguaje humano. Utilizan millones de parámetros en redes neuronales para entender contextos complejos y producir respuestas similares a las que un humano entregaría.
Ahora bien, las tecnologías modernas no usan un determinado tipo modelo, sino que pueden combinar varios para un fin específico, por ejemplo: Alexa, utiliza IA a través de NLP, e incluye ML y Deep Learning para el entendimiento de las instrucciones y la entrega de respuestas.
¿Qué LLMs existen?
Existen muchos modelos LLM que han ido mejorando en términos de rendimiento y fiabilidad de respuestas. Los más comunes son:
- OpenAI: GPT-3.5, GPT-4, GPT-4o
- Meta: Llama-2, Llama-3
- Google: Gemini 1.5, Gemini 2.0
- DeepSeek: DeepSeek v3
Si quieres ver un mapa de evolución de los LLM, puedes ver el siguiente paper: https://arxiv.org/pdf/2304.13712

¿Como trabaja una aplicación LLM?
Para que el LLM pueda ser «usado», necesita contar con una capa de aplicación, que recoja las instrucciones de los usuarios y sea derivada el modelo para su procesamiento. Existen muchas aplicaciones, como Chat-GPT, Copilot, etc.
Veamos un diagrama que nos ayudará a entender el proceso:

Existe una interfaz que se ejecuta en una aplicación front, la cual puede utilizar algunos plugin. Esta aplicación se conecta hasta el motor de procesamiento, que es donde se encuentra el LLM. La conexión puede realizarse a través de APIs o cualquier otro servicio. A su vez, este «motor» puede utilizar plugins para conectarse a otros servicios o alimentarse de más datos.
Aunque este es un resumen muy superficial, nos permiten entender la interacción de un usuario con una aplicación LLM.
¿Qué problemas de seguridad presentan estas aplicaciones?
Si bien la IA es de mucha ayuda hoy en día, también nos enfrentamos a riesgos de seguridad diferentes a los que presenta una aplicación convencional.
Existen dos principales guías que son de utilidad a la hora de evaluar la seguridad de una aplicación LLM. Estas son:
- OWASP Top 10 para Aplicaciones LLM: https://genai.owasp.org/resource/owasp-top-10-for-llm-applications-2025/#
- Mitre ATLAS: https://atlas.mitre.org/
En ambas, se han definido los principales riesgos y técnicas de ataque que puede tener una aplicación LLM. En esta serie de artículos nos enfocaremos en OWASP Top 10 para LLMs
OWASP nos presenta los riesgos más importantes en una aplicación LLM para que nos sirva como guía a la hora de utilizar esta tecnología. Siguiendo el modelo de arquitectura mostrado antes, OWASP muestra como en cada capa se puede presentar un determinado riesgo:

Una de las particularidades que tenemos en este tipo de aplicaciones, es que debemos pensar en formas no convencionales de ejecutar un ataque, entendiendo que lo que se espera es un prompt basado en instrucciones con lenguaje natural.
Aunque ya se ha demostrado en varias ocasiones que la inteligencia artificial podría ser «bypasseada» para entregar respuestas que en un contexto normal no entregarían, el alcance que tiene la guía de OWASP Top 10 LLM va más allá.
Es importante recordar que hoy en día, toda la inteligencia artificial que utilizamos es débil, Los chatbots, los asistentes virtuales, los sistemas de recomendación, o los sistemas que buscan amenazas con IA, no tienen una conciencia autónoma, están limitados por el modelo y la cantidad de datos con las que son entrenados. Su objetivo es específico sin un verdadero entendimiento del contexto. Esto es lo que, desde el punto de vista de seguridad ofensiva, es aprovechable para encontrar fallos o vulnerabilidades. La IA Fuerte, sigue siendo teórica, ya que no se ha alcanzado una conciencia autónoma.

En el próximo artículo, vamos a ver el Top 10 de OWASP, con algunos ejercicios prácticos, por lo que primero prepararemos nuestro entorno de práctica. Utilizaremos dos aplicaciones preparadas especialmente para ser vulneradas:
- AI-LAB: https://github.com/ai-risk-armour/Vulnerable-AI-Chatbot
- DVLA: Damn Vulnerable LLM agent: https://github.com/WithSecureLabs/damn-vulnerable-llm-agent
Instalarlos es sencillo, sin embargo, necesitamos hacer uso de un LLM. Si bien existen algunos modelos que pueden ser ejecutados de modo local y podemos incluso entrenarlos, lo mejor es hacer uso de un servicio a través de APIs.
Si quieres experimentar con modelos de manera local, puedes explorar esta vía comenzando aquí: https://huggingface.co/models
Por otro lado, si quieres usar alguna API de un modelo conocido, necesitarás la API-Key de alguno de ellos. En nuestro caso, utilizaremos Open-AI:
- Para crear una API Key, lo primero es registrarnos en el sitio de Open AI. https://auth.openai.com/create-account.
- Luego puedes dirigirte a la plataforma de API: https://platform.openai.com/
- En la página Dashboard, debes dirigirte a la última opción: API Keys

- Ahí podrás crear una nueva API Key que puede ser usada en cualquier proyecto, y que te permitirá interactuar con algún modelo de Open AI que tu elijas. Cada modelo tiene un costo diferenciado, basado en la cantidad de tokens de entrada y salida. Puedes ver los costos acá: https://openai.com/es-ES/api/pricing/
Algo importante a considerar es que cuando ejecutes alguna llamada a las APIs de Open AI, debes contar con crédito. Puedes ir a este link: https://platform.openai.com/settings/organization/billing/overview, y recargar crédito a voluntad.

Para hacer pruebas no necesitas gastar mucho, con unos cuantos dólares bastará.
Una vez hecho esto, procederemos a preparar nuestros laboratorios:
DVLA
Para instalar esta aplicación, se necesita ejecutar los siguientes comandos:
git clone https://github.com/WithSecureLabs/damn-vulnerable-llm-agent
cd damn-vulnerable-llm-agent/
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
sudo pip install pipenv
pipenv install python-dotenv
Ahora hay que agregar nuestra API Key en el archivo env.list:
OPENAI_API_KEY="sk.........."
Y arrancar el servicio
streamlit run main.py
Si el servicio no inicia correctamente, prueba creando un archivo con el nombre .env, en donde debes agregar OPENAI_API_KEY=»[Tu token]»
El servicio se ejecutará en el puerto 8501:

Vulnerable AI Chatbot
Para instalar esta aplicación, se necesita ejecutar los siguientes comandos:
git clone https://github.com/ai-risk-armour/Vulnerable-AI-Chatbot
cd /Vulnerable-AI-Chatbot
sudo docker build -t vulnerable-ai-chatbot . --platform linux/amd64/v3
Si el contenedor falla al momento de compilar, comenta la siguiente línea en el archivo Dockerfile: #RUN apt install -y curl procps
Ahora iniciaremos el contenedor, ejecutando lo siguiente:
docker run -e OPENAI_API_KEY=[TU-API-KEY] -v "$PWD:/dataset" -p 5000:5000 -p 7000:7000 vulnerable-ai-chatbot:latest
El servicio se ejecutará en el puerto 5000

Dejaremos este artículo acá. En el siguiente veremos el detalle de OWASP Top 10 para aplicaciones LLM.