La cadena de suministro de la IA: siete puertas que tu revisión de seguridad no mira
Cada dependencia de un sistema de IA es una decisión de confianza. Estas siete vías de compromiso ya tienen casos reales, y varias no las detecta ningún escáner de ficheros.

Un sistema de IA se apoya casi entero en piezas que tu equipo no ha construido: pesos preentrenados, conjuntos de datos públicos, paquetes de Python, un asistente de código y un puñado de servidores MCP. Cada una es una decisión de confianza, y cada decisión es una puerta. MITRE ATLAS tiene el compromiso de la cadena de suministro de ML catalogado como técnica AML.T0010, y el OWASP Top 10 para aplicaciones LLM de 2025 coloca la cadena de suministro (LLM03) y el envenenamiento de datos y modelos (LLM04) entre los riesgos principales.
La seguridad clásica de la cadena de suministro partía de una premisa: el código se puede leer. La IA la rompe por tres sitios. Los pesos son opacos; una puerta trasera vive en números, no en una función que puedas buscar con grep. Cargar un modelo puede ejecutar código, porque varios formatos de serialización lo hacen al abrirlo. Y los agentes actúan sobre texto: la descripción de una herramienta, un README o un archivo de reglas acaban funcionando como instrucciones que el modelo sigue.
De pickle a los servidores MCP
Los archivos en formato pickle, que PyTorch sigue usando en muchos checkpoints, ejecutan código arbitrario al cargarse. En 2024 los investigadores de JFrog localizaron alrededor de 100 modelos maliciosos en Hugging Face; en 2025 ReversingLabs describió nullifAI, archivos pickle deliberadamente corruptos que esquivaban el escáner de la plataforma y aun así lanzaban su carga. La mitigación pasa por safetensors, por torch.load(..., weights_only=True) —opción por defecto desde PyTorch 2.6— y por abrir modelos de terceros en un entorno aislado.
El segundo grupo no lo detecta ningún escáner, porque el modelo es seguro de cargar y está comprometido en su comportamiento. PoisonGPT (Mithril Security, 2023) modificó GPT-J para difundir una falsedad concreta pasando los benchmarks y lo publicó bajo un nombre que imitaba al de EleutherAI. Anthropic mostró en 2024 con Sleeper Agents que una conducta activada por un disparador sobrevive al entrenamiento de seguridad estándar. Solo el red teaming dirigido contra esas condiciones la saca a la luz.
Con los datos pasa algo parecido. Carlini y otros demostraron en 2023 que los conjuntos distribuidos como listas de URL se pueden envenenar comprando dominios caducados a los que apuntan, y calcularon que envenenar el 0,01% de LAION-400M habría costado unos 60 dólares. En octubre de 2025, Anthropic, el Instituto de Seguridad de IA del Reino Unido y el Instituto Alan Turing comprobaron que bastaban unos 500 documentos envenenados para implantar una puerta trasera en modelos de 600M a 13B parámetros, y que la cifra no crecía con el tamaño del modelo.
Las dependencias heredan todos los riesgos clásicos de los gestores de paquetes, con objetivos de alto valor: clústeres de GPU y credenciales de nube. torchtriton (diciembre de 2022) fue un ataque de confusión de dependencias en las builds nocturnas de PyTorch que traía un paquete malicioso desde PyPI para exfiltrar datos del sistema. Ultralytics (diciembre de 2024) abusó de la pipeline de GitHub Actions del proyecto para publicar versiones de la librería YOLO que instalaban un minero de criptomonedas.
El quinto frente son los paquetes que no existen. Un trabajo académico de 2025 encontró que cerca de uno de cada cinco paquetes sugeridos por modelos generadores de código no existían, y que muchos nombres alucinados se repetían entre prompts, lo que los hace predecibles. Un investigador registró en 2024 el nombre alucinado huggingface-cli como placeholder vacío y acumuló miles de descargas.
El asistente también forma parte de la cadena. Pillar Security documentó en 2025 caracteres Unicode ocultos en archivos de configuración de Cursor y GitHub Copilot que dirigían el código generado. En julio de 2025 se fusionó en la extensión de Amazon Q Developer para VS Code un prompt malicioso que ordenaba al agente borrar recursos locales y en la nube. Y en agosto de 2025, las versiones maliciosas de Nx en npm usaban las herramientas de IA instaladas en la máquina para buscar secretos.
En los SDK oficiales de MCP, el transporte STDIO ejecuta el comando que aparezca en la configuración del servidor; OX Security lo reveló en abril de 2026. Quien pueda tocar ese archivo —un paquete malicioso, una inyección de prompt que edite mcp.json— obtiene ejecución de código en el host. Además, la descripción de una herramienta puede llevar instrucciones ocultas que el modelo lee y obedece aunque la herramienta no llegue a invocarse.
En los siete casos la confianza se transfiere sin verificación: un nombre de modelo, un paquete, una descripción. Lo que toca es tratar los archivos de reglas y la configuración de agentes como código —revisión, diff, permiso de escritura restringido—, fijar versiones con hash, usar réplicas privadas para lo crítico, poner en lista blanca los servidores MCP y aislarlos de los secretos. Nada de eso protege del segundo y el tercer frente, que no se ven en un fichero.
