En los últimos años, los desarrolladores se han convertido cada vez más en el objetivo de ataques cibernéticos en las bibliotecas de componentes de código abierto. Los hackers han perfeccionado sus métodos, utilizando paquetes de software falsificados y, recientemente, incluso han extendido sus tácticas a marcos de inteligencia artificial (IA) falsificados y modelos de aprendizaje automático (ML) contaminados. Recientemente, una investigación reveló que los hackers lograron ejecutar este tipo de ataque al cargar paquetes maliciosos disfrazados de kits de herramientas de desarrollo creados por el laboratorio de IA de Alibaba Cloud.

Los investigadores descubrieron tres paquetes maliciosos en Python Package Index (PyPI) que imitaban el SDK del laboratorio de IA de Alibaba Cloud, pero no tenían ninguna funcionalidad legítima. Estos paquetes maliciosos utilizan modelos de ML maliciosos almacenados en formato Pickle para robar información del entorno del usuario y enviarla a un servidor controlado por los atacantes.

Hackers, código, programadores

Nota de la fuente de la imagen: La imagen ha sido generada por IA, con el servicio de autorización de imágenes Midjourney.

Los hackers eligieron ocultar el código malicioso dentro de los modelos de ML posiblemente porque las herramientas de seguridad actuales apenas están comenzando a detectar comportamientos maliciosos en formatos de archivo de ML. Tradicionalmente, estos archivos se consideran medios para compartir datos, no como formas de distribuir código ejecutable.

Pickle es un módulo oficial de Python utilizado para la serialización de objetos y a menudo se utiliza para almacenar modelos de ML relacionados con la biblioteca PyTorch. Con la creciente popularidad de PyTorch entre los desarrolladores de IA, el formato Pickle también está ganando popularidad. Sin embargo, los hackers han aprovechado este formato para hospedar modelos contaminados en plataformas como Hugging Face. Aunque Hugging Face ha implementado herramientas de código abierto como Picklescan para detectar potenciales peligros, los investigadores señalan que aún existe la posibilidad de evitar la detección.

Los tres paquetes maliciosos identificados fueron aliyun-ai-labs-snippets-sdk, ai-labs-snippets-sdk y aliyun-ai-labs-sdk, que en total fueron descargados aproximadamente 1600 veces, aunque fueron descubiertos y eliminados solo un día después de su publicación. Las computadoras de los desarrolladores generalmente contienen varias credenciales, tokens de API y otras claves de acceso a servicios, por lo que, una vez comprometidas, los atacantes pueden moverse fácilmente lateralmente e infiltrarse en el sistema.

Estos SDK maliciosos cargan modelos maliciosos de PyTorch a través del script __init__.py, que ejecuta código codificado en base64 con el objetivo de robar información de inicio de sesión, direcciones IP y el nombre de la organización a la que pertenece la máquina. Es importante destacar que el objetivo principal de este código malicioso podría ser los desarrolladores chinos, ya que el SDK de Alibaba Cloud atrae más a los desarrolladores locales que usan ese servicio. Sin embargo, este enfoque puede dirigirse a cualquier desarrollador simplemente cambiando el cebo.

Este ataque pone de manifiesto que los riesgos de seguridad de los formatos de archivos de modelos de aprendizaje automático aún están en una etapa inicial, y las herramientas de seguridad actuales no son suficientemente sofisticadas para detectar modelos de ML maliciosos de manera adecuada.