GCP - Vertex AI Enum

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Vertex AI

Vertex AI es la plataforma unificada de machine learning de Google Cloud para construir, desplegar y gestionar modelos de IA a escala. Combina varios servicios de AI y ML en una 煤nica plataforma integrada, permitiendo a cient铆ficos de datos e ingenieros de ML:

  • Entrenar modelos personalizados usando AutoML o entrenamiento personalizado
  • Desplegar modelos en endpoints escalables para predicciones
  • Gestionar el ciclo de vida ML desde la experimentaci贸n hasta la producci贸n
  • Acceder a modelos pre-entrenados desde Model Garden
  • Monitorear y optimizar el rendimiento de los modelos

Agent Engine / Reasoning Engine

Para la enumeraci贸n espec铆fica de Agent Engine / Reasoning Engine y rutas de post-explotaci贸n que involucran metadata credential theft, P4SA abuse, y producer/tenant project pivoting, consulta:

GCP - Vertex AI Post Exploitation

Key Components

Modelos

Los modelos de Vertex AI representan modelos de machine learning entrenados que pueden desplegarse en endpoints para servir predicciones. Los modelos pueden ser:

  • Cargados desde contenedores personalizados o artefactos del modelo
  • Creado mediante AutoML training
  • Importado desde Model Garden (modelos pre-entrenados)
  • Versionado con m煤ltiples versiones por modelo

Cada modelo tiene metadata que incluye su framework, URI de la imagen del contenedor, ubicaci贸n del artefacto y configuraci贸n de serving.

Endpoints

Los endpoints son recursos que alojan modelos desplegados y sirven predicciones en l铆nea. Caracter铆sticas clave:

  • Pueden alojar m煤ltiples modelos desplegados (con divisi贸n de tr谩fico)
  • Proporcionan endpoints HTTPS para predicciones en tiempo real
  • Soportan autoscaling seg煤n el tr谩fico
  • Pueden usar acceso privado o p煤blico
  • Soportan A/B testing mediante divisi贸n de tr谩fico

Custom Jobs

Los custom jobs permiten ejecutar c贸digo de entrenamiento personalizado usando tus propios contenedores o paquetes Python. Las caracter铆sticas incluyen:

  • Soporte para distributed training con m煤ltiples pools de trabajadores
  • Tipos de m谩quina y aceleradores configurables (GPUs/TPUs)
  • Asociaci贸n de service account para acceder a otros recursos de GCP
  • Integraci贸n con Vertex AI Tensorboard para visualizaci贸n
  • Opciones de VPC connectivity

Hyperparameter Tuning Jobs

Estos trabajos buscan autom谩ticamente hiperpar谩metros 贸ptimos ejecutando m煤ltiples pruebas de entrenamiento con diferentes combinaciones de par谩metros.

Model Garden

Model Garden proporciona acceso a:

  • Modelos pre-entrenados de Google
  • Modelos open-source (incluyendo Hugging Face)
  • Modelos de terceros
  • Capacidades de despliegue con un solo clic

Tensorboards

Los Tensorboards ofrecen visualizaci贸n y monitoreo para experimentos de ML, rastreando m茅tricas, gr谩ficas de modelos y el progreso del entrenamiento.

Service Accounts & Permissions

Por defecto, los servicios de Vertex AI usan la Compute Engine default service account (PROJECT_NUMBER-compute@developer.gserviceaccount.com), que tiene permisos Editor en el proyecto. Sin embargo, puedes especificar cuentas de servicio personalizadas cuando:

  • Creas custom jobs
  • Subes modelos
  • Despliegas modelos en endpoints

Esta cuenta de servicio se utiliza para:

  • Acceder a datos de entrenamiento en Cloud Storage
  • Escribir logs en Cloud Logging
  • Acceder a secretos desde Secret Manager
  • Interactuar con otros servicios de GCP

Data Storage

  • Los artefactos de modelos se almacenan en buckets de Cloud Storage
  • Los datos de entrenamiento t铆picamente residen en Cloud Storage o BigQuery
  • Las im谩genes de contenedor se almacenan en Artifact Registry o Container Registry
  • Los logs se env铆an a Cloud Logging
  • Las m茅tricas se env铆an a Cloud Monitoring

Encryption

Por defecto, Vertex AI usa Google-managed encryption keys. Tambi茅n puedes configurar:

  • Customer-managed encryption keys (CMEK) desde Cloud KMS
  • El cifrado aplica a artefactos de modelos, datos de entrenamiento y endpoints

Networking

Los recursos de Vertex AI pueden configurarse para:

  • Acceso p煤blico a Internet (por defecto)
  • VPC peering para acceso privado
  • Private Service Connect para conectividad segura
  • Soporte de Shared VPC

Enumeration

# List models
gcloud ai models list --region=<region>
gcloud ai models describe <model-id> --region=<region>
gcloud ai models list-version <model-id> --region=<region>

# List endpoints
gcloud ai endpoints list --region=<region>
gcloud ai endpoints describe <endpoint-id> --region=<region>
gcloud ai endpoints list --list-model-garden-endpoints-only --region=<region>

# List custom jobs
gcloud ai custom-jobs list --region=<region>
gcloud ai custom-jobs describe <job-id> --region=<region>

# Stream logs from a running job
gcloud ai custom-jobs stream-logs <job-id> --region=<region>

# List hyperparameter tuning jobs
gcloud ai hp-tuning-jobs list --region=<region>
gcloud ai hp-tuning-jobs describe <job-id> --region=<region>

# List model monitoring jobs
gcloud ai model-monitoring-jobs list --region=<region>
gcloud ai model-monitoring-jobs describe <job-id> --region=<region>

# List Tensorboards
gcloud ai tensorboards list --region=<region>
gcloud ai tensorboards describe <tensorboard-id> --region=<region>

# List indexes (for vector search)
gcloud ai indexes list --region=<region>
gcloud ai indexes describe <index-id> --region=<region>

# List index endpoints
gcloud ai index-endpoints list --region=<region>
gcloud ai index-endpoints describe <index-endpoint-id> --region=<region>

# Get operations (long-running operations status)
gcloud ai operations describe <operation-id> --region=<region>

# Test endpoint predictions (if you have access)
gcloud ai endpoints predict <endpoint-id> \
--region=<region> \
--json-request=request.json

# Make direct predictions (newer API)
gcloud ai endpoints direct-predict <endpoint-id> \
--region=<region> \
--json-request=request.json

Recopilaci贸n de informaci贸n del modelo

# Get detailed model information including versions
gcloud ai models describe <model-id> --region=<region>

# Check specific model version
gcloud ai models describe <model-id>@<version> --region=<region>

# List all versions of a model
gcloud ai models list-version <model-id> --region=<region>

# Get model artifact location (usually a GCS bucket)
gcloud ai models describe <model-id> --region=<region> --format="value(artifactUri)"

# Get container image URI
gcloud ai models describe <model-id> --region=<region> --format="value(containerSpec.imageUri)"

Detalles del endpoint

# Get endpoint details including deployed models
gcloud ai endpoints describe <endpoint-id> --region=<region>

# Get endpoint URL
gcloud ai endpoints describe <endpoint-id> --region=<region> --format="value(deployedModels[0].displayName)"

# Get service account used by endpoint
gcloud ai endpoints describe <endpoint-id> --region=<region> --format="value(deployedModels[0].serviceAccount)"

# Check traffic split between models
gcloud ai endpoints describe <endpoint-id> --region=<region> --format="value(trafficSplit)"

Informaci贸n del trabajo personalizado

# Get job details including command, args, and service account
gcloud ai custom-jobs describe <job-id> --region=<region>

# Get service account used by job
gcloud ai custom-jobs describe <job-id> --region=<region> --format="value(jobSpec.workerPoolSpecs[0].serviceAccount)"

# Get container image used
gcloud ai custom-jobs describe <job-id> --region=<region> --format="value(jobSpec.workerPoolSpecs[0].containerSpec.imageUri)"

# Check environment variables (may contain secrets)
gcloud ai custom-jobs describe <job-id> --region=<region> --format="value(jobSpec.workerPoolSpecs[0].containerSpec.env)"

# Get network configuration
gcloud ai custom-jobs describe <job-id> --region=<region> --format="value(jobSpec.network)"

Control de acceso

# Note: IAM policies for individual Vertex AI resources are managed at the project level
# Check project-level permissions
gcloud projects get-iam-policy <project-id>

# Check service account permissions
gcloud iam service-accounts get-iam-policy <service-account-email>

# Check if endpoints allow unauthenticated access
# This is controlled by IAM bindings on the endpoint
gcloud projects get-iam-policy <project-id> \
--flatten="bindings[].members" \
--filter="bindings.role:aiplatform.user"

Almacenamiento y Artefactos

# Models and training jobs often store artifacts in GCS
# List buckets that might contain model artifacts
gsutil ls

# Common artifact locations:
# gs://<project>-aiplatform-<region>/
# gs://<project>-vertex-ai/
# gs://<custom-bucket>/vertex-ai/

# Download model artifacts if accessible
gsutil -m cp -r gs://<bucket>/path/to/artifacts ./artifacts/

# Check for notebooks in AI Platform Notebooks
gcloud notebooks instances list --location=<location>
gcloud notebooks instances describe <instance-name> --location=<location>

Model Garden

# List Model Garden endpoints
gcloud ai endpoints list --list-model-garden-endpoints-only --region=<region>

# Model Garden models are often deployed with default configurations
# Check for publicly accessible endpoints

Privilege Escalation

En la siguiente p谩gina, puedes consultar c贸mo abuse Vertex AI permissions to escalate privileges:

GCP - Vertex AI Privesc

Post Exploitation

GCP - Vertex AI Post Exploitation

Referencias

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks