GCP - Vertex AI Enumerazione
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Vertex AI
Vertex AI è la piattaforma unificata di machine learning di Google Cloud per costruire, distribuire e gestire modelli AI su larga scala. Combina vari servizi AI e ML in un’unica piattaforma integrata, permettendo a data scientist e ingegneri ML di:
- Addestrare modelli personalizzati usando AutoML o custom training
- Distribuire modelli su endpoint scalabili per predizioni
- Gestire il ciclo di vita ML dalla sperimentazione alla produzione
- Accedere a modelli pre-addestrati da Model Garden
- Monitorare e ottimizzare le prestazioni dei modelli
Componenti chiave
Models
I modelli di Vertex AI rappresentano modelli di machine learning addestrati che possono essere distribuiti su endpoint per fornire predizioni. I modelli possono essere:
- Uploaded da custom containers o model artifacts
- Creati tramite AutoML training
- Importati da Model Garden (modelli pre-addestrati)
- Versioned con più versioni per modello
Ogni modello ha metadati inclusi il framework, il container image URI, la posizione degli artifact e la configurazione di serving.
Endpoints
Gli endpoints sono risorse che ospitano modelli distribuiti e forniscono predizioni in tempo reale. Caratteristiche principali:
- Possono ospitare più modelli distribuiti (con traffic splitting)
- Forniscono HTTPS endpoints per predizioni in real-time
- Supportano autoscaling basato sul traffico
- Possono usare accesso privato o pubblico
- Supportano A/B testing tramite traffic splitting
Custom Jobs
I Custom jobs permettono di eseguire codice di training personalizzato usando i propri container o pacchetti Python. Le funzionalità includono:
- Supporto per distributed training con più worker pool
- Tipi di macchina e acceleratori (GPU/TPU) configurabili
- Allegato di service account per accedere ad altre risorse GCP
- Integrazione con Vertex AI Tensorboard per la visualizzazione
- Opzioni di VPC connectivity
Hyperparameter Tuning Jobs
Questi job cercano automaticamente gli iperparametri ottimali eseguendo molteplici trial di training con diverse combinazioni di parametri.
Model Garden
Model Garden fornisce accesso a:
- Modelli Google pre-addestrati
- Modelli open-source (incluso Hugging Face)
- Modelli di terze parti
- Capacità di deployment con un clic
Tensorboards
I Tensorboards forniscono visualizzazione e monitoraggio per esperimenti ML, tracciando metriche, grafi dei modelli e progresso del training.
Account di servizio e permessi
Per impostazione predefinita, i servizi di Vertex AI utilizzano l’account di servizio predefinito di Compute Engine (PROJECT_NUMBER-compute@developer.gserviceaccount.com), che ha permessi Editor sul progetto. Tuttavia, puoi specificare service account personalizzati quando:
- Crei custom jobs
- Uploadi modelli
- Distribuisci modelli su endpoint
Questo account di servizio viene usato per:
- Accedere ai dati di training in Cloud Storage
- Scrivere log su Cloud Logging
- Accedere ai secret da Secret Manager
- Interagire con altri servizi GCP
Archiviazione dati
- Gli artifact dei modelli sono archiviati in bucket di Cloud Storage
- I dati di training tipicamente risiedono in Cloud Storage o BigQuery
- Le immagini dei container sono archiviate in Artifact Registry o Container Registry
- I log sono inviati a Cloud Logging
- Le metriche sono inviate a Cloud Monitoring
Crittografia
Per impostazione predefinita, Vertex AI utilizza chiavi di crittografia gestite da Google. Puoi anche configurare:
- Customer-managed encryption keys (CMEK) da Cloud KMS
- La crittografia si applica ad artifact dei modelli, dati di training e endpoint
Networking
Le risorse di Vertex AI possono essere configurate per:
- Accesso pubblico a Internet (predefinito)
- VPC peering per accesso privato
- Private Service Connect per connettività sicura
- Supporto Shared VPC
Enumerazione
# 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
Raccolta di informazioni sul modello
# 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)"
Dettagli dell’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)"
Informazioni sul job personalizzato
# 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)"
Controllo degli accessi
# 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"
Archiviazione e Artefatti
# 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
Nella pagina seguente puoi vedere come abusare dei permessi di Vertex AI per escalate privileges:
Riferimenti
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
HackTricks Cloud

