GCP - Vertex AI Enumeracija

Tip

Nauči & vežbaj AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Nauči & vežbaj GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Nauči & vežbaj Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Vertex AI

Vertex AI je Google Cloud-ova objedinjena platforma za machine learning za izgradnju, deploy i upravljanje AI modelima u velikom obimu. Kombinuje različite AI i ML servise u jedinstvenu, integrisanu platformu, omogućavajući data scientist-ima i ML inženjerima da:

  • Treniraju prilagođene modele koristeći AutoML ili custom training
  • Deploy-uju modele na skalabilne endpoints za predviđanja
  • Upravljaju ML životnim ciklusom od eksperimentisanja do produkcije
  • Pristupe pre-trained modelima iz Model Garden
  • Prate i optmizuju performanse modela

Agent Engine / Reasoning Engine

Za specifičnu enumeraciju i putanje post-exploitation za Agent Engine / Reasoning Engine koje uključuju metadata credential theft, P4SA abuse, i producer/tenant project pivoting, pogledajte:

GCP - Vertex AI Post Exploitation

Ključne komponente

Models

Vertex AI modeli predstavljaju istrenirane machine learning modele koji se mogu deploy-ovati na endpoints za serviranje predviđanja. Modeli mogu biti:

  • Uploaded iz custom container-a ili model artifacts
  • Kreirani kroz AutoML training
  • Uvezeni iz Model Garden (pre-trained modeli)
  • Versioned sa više verzija po modelu

Svaki model ima metadata koja uključuje njegov framework, container image URI, lokaciju artifact-a i serving konfiguraciju.

Endpoints

Endpoints su resursi koji hostuju deploy-ovane modele i služe online predviđanja. Ključne karakteristike:

  • Mogu hostovati više deploy-ovanih modela (sa traffic splitting)
  • Pružaju HTTPS endpoints za realtime predviđanja
  • Podržavaju autoscaling na osnovu saobraćaja
  • Mogu koristiti private ili public pristup
  • Podržavaju A/B testing kroz traffic splitting

Custom Jobs

Custom jobs omogućavaju pokretanje custom training koda koristeći sopstvene containere ili Python pakete. Karakteristike uključuju:

  • Podršku za distributed training sa više worker pool-ova
  • Konfigurisane machine types i accelerators (GPUs/TPUs)
  • Prikačen service account za pristup drugim GCP resursima
  • Integraciju sa Vertex AI Tensorboard za vizualizaciju
  • Opcije VPC connectivity

Hyperparameter Tuning Jobs

Ovi job-ovi automatski pretražuju optimalne hyperparametre pokretanjem više training trial-ova sa različitim kombinacijama parametara.

Model Garden

Model Garden pruža pristup:

  • Pre-trained Google modelima
  • Open-source modelima (uključujući Hugging Face)
  • Third-party modelima
  • One-click deployment mogućnostima

Tensorboards

Tensorboards pružaju vizualizaciju i monitoring za ML eksperimente, prateći metrike, model graph-ove i napredak treninga.

Service Accounts & Permissions

Po default-u, Vertex AI servisi koriste Compute Engine default service account (PROJECT_NUMBER-compute@developer.gserviceaccount.com), koji ima Editor permisije na projektu. Međutim, možete specificirati custom service accounts kada:

  • Kreirate custom jobs
  • Upload-ujete modele
  • Deploy-ujete modele na endpoints

Ovaj service account se koristi za:

  • Pristup training podacima u Cloud Storage
  • Pisanje logova u Cloud Logging
  • Pristup secret-ima iz Secret Manager
  • Interakciju sa drugim GCP servisima

Data Storage

  • Model artifacts su skladišteni u Cloud Storage bucket-ima
  • Training data obično se nalazi u Cloud Storage ili BigQuery
  • Container images su u Artifact Registry ili Container Registry
  • Logs se šalju u Cloud Logging
  • Metrics se šalju u Cloud Monitoring

Encryption

Po default-u, Vertex AI koristi Google-managed encryption keys. Možete takođe konfigurisati:

  • Customer-managed encryption keys (CMEK) iz Cloud KMS
  • Enkripcija se primenjuje na model artifacts, training data i endpoints

Networking

Vertex AI resursi se mogu konfigurisati za:

  • Public internet access (default)
  • VPC peering za private pristup
  • Private Service Connect za secure konektivnost
  • Shared VPC podršku

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

Prikupljanje informacija o modelu

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

Detalji krajnje tačke

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

Informacije o Custom Job-u

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

Kontrola pristupa

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

Skladištenje i artefakti

# 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

Na sledećoj stranici možete videti kako abuse Vertex AI permissions to escalate privileges:

GCP - Vertex AI Privesc

Post Exploitation

GCP - Vertex AI Post Exploitation

References

Tip

Nauči & vežbaj AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Nauči & vežbaj GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Nauči & vežbaj Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks