Supply Chain Vulnerabilities
Definición
Las vulnerabilidades en la cadena de suministro en el contexto de los modelos de lenguaje (LLMs) se refieren a los riesgos de seguridad que surgen cuando los componentes externos utilizados en el desarrollo, entrenamiento, ajuste fino, despliegue o integración del modelo son manipulados o comprometidos por un atacante.
Estas vulnerabilidades son especialmente críticas porque los LLMs dependen de numerosos elementos externos, como datasets públicos, bibliotecas de código, APIs de terceros y servicios en la nube, lo que amplía significativamente su superficie de ataque.
El dato para encontrar este tipo de vulnerabilidades es pensar en: ¿de qué depende el LLM para funcionar, cuáles son sus proveedores (bibliotecas, datasets, apis, servicios)?
Una biblioteca que se me viene a la mente cuando hablamos de esta técnica pero que no está relacionado a LLMs es Wkhtmltopdf, que la pueden ver en la sección Server-Side Request Forgery (SSRF). Este es un ejemplo claro de Supply Chain Vulnerabilities ya que el cliente logró ser comprometido mediante esta biblioteca que era vulnerable a LFI y SSRF.
Principales vectores de ataque en la cadena de suministro de LLMs
1. Datos de entrenamiento comprometidos
Cómo ocurre: El atacante introduce datos manipulados en datasets públicos o privados utilizados para entrenar el modelo.
Impacto:
El modelo puede aprender sesgos o información errónea.
Puede facilitar ataques posteriores como prompt injection o filtración de información.
Ejemplo: Incluir contenido malicioso en foros o repositorios abiertos que son utilizados como fuente para el entrenamiento.
2. Bibliotecas de código maliciosas
Cómo ocurre: El atacante introduce código malicioso en bibliotecas de terceros utilizadas en el desarrollo o ajuste fino del LLM.
Impacto:
Permite la ejecución de código malicioso durante el entrenamiento o inferencia.
Puede generar accesos no autorizados o filtración de datos sensibles.
Ejemplo: Publicar una versión maliciosa de una librería en PyPI, que luego es utilizada sin la debida revisión en el pipeline de entrenamiento.
3. APIs de terceros comprometidas
Cómo ocurre: El LLM depende de APIs externas para obtener información o procesar datos, y estas APIs han sido manipuladas por un atacante.
Impacto:
El modelo podría recibir datos manipulados, lo que afectaría sus respuestas.
Puede exponer información sensible si las APIs son utilizadas sin autenticación adecuada.
Ejemplo: Una API de geolocalización manipulada que devuelve datos falsos, afectando las respuestas del modelo.
Mitigación
Validación de datos
Utilizar datasets de fuentes confiables y filtrar datos contaminados o maliciosos antes del entrenamiento o ajuste fino.
Revisión de bibliotecas y dependencias
Verificar la integridad de las bibliotecas de terceros mediante herramientas de análisis de seguridad y evitar versiones no oficiales.
Seguridad en APIs externas
Usar autenticación y validación estricta para cualquier API externa y sanitizar los datos que se reciban.
Monitoreo en producción
Supervisar continuamente el comportamiento del modelo para detectar anomalías o respuestas inusuales.
Control de accesos y cifrado
Restringir el acceso a datos y modelos, y aplicar cifrado en el almacenamiento y transmisión de información.
Pruebas de seguridad continuas
Realizar pruebas regulares de seguridad en el pipeline de desarrollo y en el entorno de producción.
Actualización y parches
Mantener todos los componentes, bibliotecas y dependencias actualizados para prevenir la explotación de vulnerabilidades conocidas.
Referencias
Última actualización