GCP - Vertex AI Enumeracja

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks

Vertex AI

Vertex AI to zunifikowana platforma machine learning Google Cloud do budowania, wdrażania i zarządzania modelami AI w skali. Łączy różne usługi AI i ML w jedną, zintegrowaną platformę, umożliwiając data scientistom i inżynierom ML:

  • Trenowanie własnych modeli za pomocą AutoML lub custom training
  • Wdrażanie modeli na skalowalnych endpointach do predykcji
  • Zarządzanie cyklem życia ML od eksperymentów do produkcji
  • Dostęp do pre-trained models z Model Garden
  • Monitorowanie i optymalizację wydajności modeli

Agent Engine / Reasoning Engine

W przypadku Agent Engine / Reasoning Engine, aby uzyskać specyficzną enumerację i ścieżki post-exploitation związane z metadata credential theft, P4SA abuse, oraz producer/tenant project pivoting, sprawdź:

GCP - Vertex AI Post Exploitation

Kluczowe komponenty

Models

Vertex AI models reprezentują wytrenowane modele machine learning, które można wdrożyć na endpoints do serwowania predykcji. Modele mogą być:

  • Uploaded z custom containers lub model artifacts
  • Tworzone przez AutoML training
  • Importowane z Model Garden (pre-trained models)
  • Versioned z wieloma wersjami na model

Każdy model ma metadane, w tym framework, container image URI, lokalizację artifactów i konfigurację serwowania.

Endpoints

Endpoints to zasoby hostujące wdrożone modele i serwujące predykcje online. Kluczowe cechy:

  • Mogą hostować wiele wdrożonych modeli (z rozdzielaniem ruchu)
  • Zapewniają HTTPS endpoints do predykcji w czasie rzeczywistym
  • Wspierają autoscaling w oparciu o ruch
  • Mogą używać dostępu prywatnego lub publicznego
  • Wspierają A/B testing poprzez rozdzielanie ruchu

Custom Jobs

Custom jobs pozwalają uruchamiać własny kod treningowy używając własnych kontenerów lub pakietów Python. Funkcje obejmują:

  • Wsparcie dla distributed training z wieloma worker poolami
  • Konfigurowalne machine types i accelerators (GPU/TPU)
  • Dołączanie service account do dostępu do innych zasobów GCP
  • Integrację z Vertex AI Tensorboard do wizualizacji
  • Opcje VPC connectivity

Hyperparameter Tuning Jobs

Te joby automatycznie wyszukują optymalne hyperparametry, uruchamiając wiele prób treningowych z różnymi kombinacjami parametrów.

Model Garden

Model Garden daje dostęp do:

  • Pre-trained Google models
  • Open-source models (w tym Hugging Face)
  • Third-party models
  • Możliwości one-click deployment

Tensorboards

Tensorboards zapewniają wizualizację i monitoring eksperymentów ML, śledząc metryki, grafy modeli i postęp treningu.

Service Accounts & Permissions

Domyślnie usługi Vertex AI używają Compute Engine default service account (PROJECT_NUMBER-compute@developer.gserviceaccount.com), które ma uprawnienia Editor w projekcie. Jednak można określić custom service accounts przy:

  • Tworzeniu custom jobs
  • Uploadowaniu modeli
  • Wdrażaniu modeli na endpoints

To konto usługi jest używane do:

  • Dostępu do training data w Cloud Storage
  • Zapisywania logów do Cloud Logging
  • Dostępu do sekretów z Secret Manager
  • Interakcji z innymi usługami GCP

Data Storage

  • Model artifacts są przechowywane w bucketach Cloud Storage
  • Training data zazwyczaj znajduje się w Cloud Storage lub BigQuery
  • Container images są przechowywane w Artifact Registry lub Container Registry
  • Logs są wysyłane do Cloud Logging
  • Metrics są wysyłane do Cloud Monitoring

Encryption

Domyślnie Vertex AI używa Google-managed encryption keys. Możesz również skonfigurować:

  • Customer-managed encryption keys (CMEK) z Cloud KMS
  • Szyfrowanie obejmuje model artifacts, training data i endpoints

Networking

Zasoby Vertex AI można skonfigurować dla:

  • Public internet access (domyślnie)
  • VPC peering dla prywatnego dostępu
  • Private Service Connect dla bezpiecznej łączności
  • Wsparcia Shared VPC

Enumeracja

# 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

Zbieranie informacji 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)"

Szczegóły punktu końcowego

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

Informacje o niestandardowym zadaniu

# 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 dostępu

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

Przechowywanie i artefakty

# 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 poniższej stronie możesz sprawdzić, jak abuse Vertex AI permissions to escalate privileges:

GCP - Vertex AI Privesc

Post Exploitation

GCP - Vertex AI Post Exploitation

Źródła

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks