GCP - Vertex AI Enum

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

Vertex AI

Vertex AI est la plateforme unifiĂ©e de machine learning de Google Cloud pour construire, dĂ©ployer et gĂ©rer des modĂšles d’IA Ă  grande Ă©chelle. Elle regroupe plusieurs services AI et ML en une plateforme intĂ©grĂ©e, permettant aux data scientists et aux ingĂ©nieurs ML de :

  • EntraĂźner des modĂšles personnalisĂ©s en utilisant AutoML ou un entraĂźnement personnalisĂ©
  • DĂ©ployer des modĂšles sur des endpoints scalables pour des prĂ©dictions
  • GĂ©rer le cycle de vie ML de l’expĂ©rimentation Ă  la production
  • AccĂ©der Ă  des modĂšles prĂ©-entraĂźnĂ©s depuis Model Garden
  • Surveiller et optimiser les performances des modĂšles

Agent Engine / Reasoning Engine

Pour l’énumĂ©ration spĂ©cifique d’Agent Engine / Reasoning Engine et les chemins de post-exploitation impliquant metadata credential theft, P4SA abuse, et producer/tenant project pivoting, consultez :

GCP - Vertex AI Post Exploitation

Composants clés

Models

Les models de Vertex AI reprĂ©sentent des modĂšles de machine learning entraĂźnĂ©s qui peuvent ĂȘtre dĂ©ployĂ©s sur des endpoints pour servir des prĂ©dictions. Les models peuvent ĂȘtre :

  • TĂ©lĂ©versĂ©s depuis des containers personnalisĂ©s ou des artefacts de modĂšle
  • Créés via l’entraĂźnement AutoML
  • ImportĂ©s depuis Model Garden (modĂšles prĂ©-entraĂźnĂ©s)
  • VersionnĂ©s avec plusieurs versions par model

Chaque model possĂšde des mĂ©tadonnĂ©es incluant son framework, l’URI de l’image du container, l’emplacement des artefacts et la configuration de serving.

Endpoints

Les endpoints sont des ressources qui hébergent les models déployés et servent des prédictions en ligne. Principales caractéristiques :

  • Peuvent hĂ©berger plusieurs models dĂ©ployĂ©s (avec rĂ©partition du trafic)
  • Fournissent des endpoints HTTPS pour des prĂ©dictions en temps rĂ©el
  • Supportent l’autoscaling selon le trafic
  • Peuvent utiliser un accĂšs privĂ© ou public
  • Supportent le A/B testing via la rĂ©partition du trafic

Custom Jobs

Les custom jobs permettent d’exĂ©cuter du code d’entraĂźnement personnalisĂ© en utilisant vos propres containers ou paquets Python. Fonctions incluent :

  • Support de l’entraĂźnement distribuĂ© avec plusieurs worker pools
  • Types de machines et accĂ©lĂ©rateurs configurables (GPUs/TPUs)
  • Service account attachĂ© pour accĂ©der Ă  d’autres ressources GCP
  • IntĂ©gration avec Vertex AI Tensorboard pour la visualisation
  • Options de connectivitĂ© VPC

Hyperparameter Tuning Jobs

Ces jobs recherchent automatiquement les hyperparamĂštres optimaux en exĂ©cutant plusieurs essais d’entraĂźnement avec diffĂ©rentes combinaisons de paramĂštres.

Model Garden

Model Garden donne accĂšs Ă  :

  • ModĂšles Google prĂ©-entraĂźnĂ©s
  • ModĂšles open-source (y compris Hugging Face)
  • ModĂšles tiers
  • CapacitĂ©s de dĂ©ploiement en un clic

Tensorboards

Les tensorboards fournissent la visualisation et la surveillance pour les expĂ©riences ML, en suivant les mĂ©triques, les graphes de modĂšle et la progression de l’entraĂźnement.

Service Accounts & Permissions

Par défaut, les services Vertex AI utilisent le Compute Engine default service account (PROJECT_NUMBER-compute@developer.gserviceaccount.com), qui possÚde des permissions Editor sur le projet. Cependant, vous pouvez spécifier des comptes de service personnalisés lors de :

  • la crĂ©ation de custom jobs
  • le tĂ©lĂ©versement de models
  • le dĂ©ploiement de models vers des endpoints

Ce compte de service est utilisé pour :

  • AccĂ©der aux donnĂ©es d’entraĂźnement dans Cloud Storage
  • Écrire des logs dans Cloud Logging
  • AccĂ©der aux secrets depuis Secret Manager
  • Interagir avec d’autres services GCP

Stockage des données

  • Les artefacts de model sont stockĂ©s dans des buckets Cloud Storage
  • Les donnĂ©es d’entraĂźnement rĂ©sident typiquement dans Cloud Storage ou BigQuery
  • Les images de containers sont stockĂ©es dans Artifact Registry ou Container Registry
  • Les logs sont envoyĂ©s vers Cloud Logging
  • Les mĂ©triques sont envoyĂ©es vers Cloud Monitoring

Chiffrement

Par défaut, Vertex AI utilise des clés de chiffrement gérées par Google. Vous pouvez également configurer :

  • des Customer-managed encryption keys (CMEK) depuis Cloud KMS
  • Le chiffrement s’applique aux artefacts de model, aux donnĂ©es d’entraĂźnement et aux endpoints

Réseau

Les ressources Vertex AI peuvent ĂȘtre configurĂ©es pour :

  • AccĂšs internet public (par dĂ©faut)
  • VPC peering pour un accĂšs privĂ©
  • Private Service Connect pour une connectivitĂ© sĂ©curisĂ©e
  • Support 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

Collecte d’informations sur le modùle

# 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)"

Détails du point de terminaison

# 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)"

Informations sur Custom Job

# 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)"

Contrîle d’accùs

# 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"

Stockage et artefacts

# 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

Sur la page suivante, vous pouvez voir comment abuse Vertex AI permissions to escalate privileges:

GCP - Vertex AI Privesc

Post Exploitation

GCP - Vertex AI Post Exploitation

Références

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks