Seguridad en LLMs Locales: Mitigación en Ollama y vLLM
Aprende a proteger servidores de inferencia local con Ollama y vLLM frente a fugas de memoria VRAM e inyecciones de prompt en 2026.

La seguridad en LLMs locales se ha transformado en 2026 en un vector prioritario para equipos de desarrollo y ciberseguridad corporativa. Con la adopción masiva de servidores de inferencia autohospedados basados en Ollama, vLLM, llama.cpp y TGI para procesar datos confidenciales sin enviarlos a la nube pública, han emergido riesgos arquitectónicos específicos asociados a la gestión de memoria GPU y la exposición de APIs REST sin autenticación nativa.
El mito de que la ejecución local garantiza automáticamente la inmunidad contra ciberataques ha sido refutado por incidentes recientes de exfiltración de memoria gráfica (VRAM) y compromiso de sockets de control en infraestructuras internas.
Arquitectura de Memoria VRAM y el Riesgo de Fuga en KV Cache
Tanto vLLM como los motores basados en PagedAttention fragmentan la memoria de atención (Key-Value Cache) en bloques virtuales dinámicos para maximizar el throughput de tokens por segundo. Sin embargo, cuando múltiples solicitudes de usuarios o agentes autónomos comparten la misma GPU, la falta de una rutina de puesta a cero (zeroization) entre sesiones puede provocar que tensores residuales queden accesibles.
Un atacante que envíe prompts diseñados para provocar desbordamientos de contexto puede forzar al modelo a autocompletar texto utilizando fragmentos remanentes del buffer de memoria de una consulta previa, comprometiendo claves API, información médica o secretos corporativos.
Para verificar la seguridad y escanear endpoints de inferencia en busca de puertos expuestos, puedes utilizar nuestro Escáner de Amenazas y Seguridad.
Matriz de Vectores de Ataque en Servidores de Inferencia Local
| Vector de Ataque | Motor Afectado | Impacto Técnico | Mecanismo de Mitigación |
|---|---|---|---|
| Exposición de API REST (0.0.0.0) | Ollama / vLLM | Ejecución no autenticada de modelos y descarga de blobs arbitrarios | Reverse Proxy Nginx con mTLS / Firewalls |
| Residual KV Cache Leakage | vLLM / llama.cpp | Lectura cruzada de fragmentos de prompts entre tenants | Forzar --enforce-eager o aislamiento por contenedor |
| Indirect Prompt Injection | Agentes en Ollama | Ejecución no autorizada de herramientas locales (Tool Calling) | Sandboxing estricto de llamadas y validación de schemas |
| Denegación de Servicio por VRAM Exhaustion | Motores Locales | Pánico del kernel CUDA y caída del servicio por OOM | Límites de max_model_len y cuotas de tokens |
Hardening Práctico de Ollama y vLLM en Entornos de Producción
El primer paso fundamental consiste en revocar la vinculación indiscriminada a todas las interfaces de red (0.0.0.0) y aplicar contramedidas a nivel de proceso y contenedor.
A continuación se presenta una configuración de servicio seguro para Ollama bajo Linux mediante Systemd y variables de entorno restrictivas:
[Service]
Environment="OLLAMA_HOST=127.0.0.1:11434"
Environment="OLLAMA_ORIGINS=https://app.tuempresa.internal"
Environment="OLLAMA_NUM_PARALLEL=4"
# Aislamiento de privilegios en el sistema operativo
ProtectSystem=strict
ProtectHome=true
NoNewPrivileges=true
PrivateTmp=true
Para vLLM, es indispensable restringir el consumo de memoria y deshabilitar endpoints administrativos en despliegues compartidos:
# Inicio seguro de vLLM con aislamiento de memoria GPU y límite de contexto
python3 -m vllm.entrypoints.openai.api_server \
--model meta-llama/Llama-3.3-70B-Instruct \
--gpu-memory-utilization 0.85 \
--max-model-len 8192 \
--disable-log-requests \
--api-key "${VLLM_INTERNAL_API_KEY}"
La deshabilitación del registro de solicitudes (--disable-log-requests) previene que prompts con datos altamente confidenciales se almacenen en texto plano en los discos del servidor.
Protocolo de Aislamiento y Sandboxing para Inferencia Segura
Para desplegar modelos locales con garantías de grado bancario, implementa los siguientes controles:
- Aislamiento a Nivel de Kernel con gVisor: Ejecuta los contenedores de inferencia sobre el runtime
runscpara interceptar y restringir las llamadas al sistema del proceso del modelo. - Segmentación de Red: Aloja los servidores con GPU en una VLAN aislada, permitiendo tráfico entrante únicamente desde el proxy inverso autenticado.
- Validación Criptográfica de Pesos: Comprueba siempre el hash SHA-256 de los modelos
.safetensorsantes de cargarlos en memoria para prevenir la ejecución de artefactos maliciosos, siguiendo las pautas de Integridad de Archivos y Firmas Criptográficas. - Sanitización de Salidas de IA: Filtra y sanitiza las respuestas estructuradas generadas por el modelo utilizando nuestro Validador y Formateador JSON.
- Monitorización de Temperatura y Consumo VRAM: Configura alertas ante picos anómalos de consumo que puedan indicar ataques de saturación algorítmica.
Resumen Accionable
Desplegar LLMs en infraestructura propia es una estrategia excelente de soberanía de datos, pero requiere el mismo rigor de hardening que cualquier base de datos crítica. Configurar enlaces a interfaces privadas, autenticación mTLS y aislamiento de buffers de VRAM garantiza una inferencia rápida y segura.
Lecturas Recomendadas y Recursos:
- OWASP Top 10 for Large Language Model Applications (2025/2026).
- Guía de Ciberseguridad de TecnoCrypter: Privacidad y Seguridad en Modelos de Lenguaje.
- Informe Técnico: Seguridad en la Cadena de Suministro de Software e IA.


