Google Cloud Vertex AI, la plataforma de aprendizaje automático de Google, ha sido noticia recientemente tras la divulgación de un grave error de seguridad en su SDK para Python. El fallo, descubierto por el equipo Unit 42 de Palo Alto Networks y reportado a través del programa de recompensas de errores de Google, permite a un atacante sin acceso a la cuenta de un usuario final interceptar y modificar la carga de un modelo de machine learning, ejecutando código arbitrario en la infraestructura de Google.
La vulnerabilidad, que el analista de seguridad denomina "Pickle in the Middle", aprovecha la deserialización insegura de objetos Python. Cuando un usuario sube un modelo a Vertex AI, el SDK serializa el archivo con la biblioteca pickle. Si un atacante logra colocar un archivo malicioso en una ruta de bucket de Google Cloud Storage que el SDK interprete como la fuente original, la deserialización ejecutará el código malicioso. El resultado es que el atacante puede ejecutar cualquier código dentro del entorno de despliegue del modelo, con privilegios que pueden variar desde la evasión de restricciones de acceso hasta la manipulación de resultados de inferencia.
Aunque Unit 42 no ha detectado casos de explotación en producción, la mera posibilidad de que un modelo pueda ser comprometido sin necesidad de credenciales de proyecto plantea un riesgo significativo, especialmente para organizaciones que confían en Vertex AI para servicios críticos. El hecho de que el atacante solo necesite la capacidad de crear o modificar un bucket de almacenamiento amplía el espectro de amenazas a cualquier usuario con permisos de escritura en GCP.
Contexto técnico El ataque funciona gracias a la interacción entre tres componentes: el SDK de Vertex AI, el bucket de Cloud Storage y el servicio de alojamiento de modelos. El SDK, al recibir la ruta de un bucket, asume que el contenido proviene del usuario y procede a deserializarlo sin validación adecuada. Si el bucket está configurado con la política de acceso predeterminada (por ejemplo, público al escribir), cualquier atacante puede subir un archivo malicioso con extensión .pickle y luego invocar el proceso de carga.
La mitigación más inmediata es el uso de la opción de deserialización segura que Google ha introducido recientemente en versiones actualizadas del SDK. Además, se recomienda aplicar políticas de IAM estrictas que limiten la escritura a buckets específicos y habiliten la verificación de integridad de los archivos antes de su procesamiento.
Importancia del hallazgo La IA en la nube ya ha sido objeto de múltiples discusiones sobre audibilidad, privacidad y seguridad. Este incidente subraya la necesidad de adoptar prácticas de desarrollo seguro incluso cuando se utilizan herramientas gestionadas por grandes proveedores. La cadena de suministro de modelos es tan importante como la propia infraestructura, y cualquier brecha puede traducirse en pérdida de datos confidenciales, alteración de resultados de negocio o exposición de código propietario.
Para las empresas, la respuesta inmediata debe incluir:
- Revisión de las versiones del SDK y actualización a la última release.
- Auditoría de los buckets de almacenamiento utilizados por Vertex AI.
- Implementación de políticas de IAM que restrinjan la escritura a usuarios y cuentas de servicio autorizadas.
- Monitoreo de logs de Cloud Storage y Vertex AI para detectar patrones de carga inusuales.
Conclusión Aunque la vulnerabilidad aún no se ha explotado a gran escala, su existencia demuestra que la seguridad de la IA en la nube es un tema crítico que requiere atención continua. Los proveedores de servicios como Google deben reforzar sus mecanismos de validación y los usuarios deben adoptar una postura proactiva en la configuración de sus recursos. La seguridad no es solo una cuestión de código, sino también de procesos y políticas que aseguren que los modelos no se conviertan en un vector de ataque.