GCP - Vertex AI Enum

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Vertex AI

Vertex AI ist die einheitliche Machine-Learning-Plattform von Google Cloud zum Erstellen, Bereitstellen und Verwalten von AI-Modellen in großem Maßstab. Sie kombiniert verschiedene AI- und ML-Dienste zu einer einzigen, integrierten Plattform und ermöglicht Data Scientists und ML-Ingenieuren:

  • Eigene Modelle mit AutoML oder benutzerdefiniertem Training zu trainieren
  • Modelle an skalierbare Endpunkte für Predictions zu deployen
  • Den ML-Lifecycle von Experimenten bis zur Produktion zu verwalten
  • Auf vortrainierte Modelle aus dem Model Garden zuzugreifen
  • Modellleistung zu überwachen und zu optimieren

Wichtige Komponenten

Modelle

Vertex AI Modelle repräsentieren trainierte Machine-Learning-Modelle, die auf Endpunkten für Predictions bereitgestellt werden können. Modelle können:

  • Aus benutzerdefinierten Containern oder Modell-Artefakten hochgeladen werden
  • Durch AutoML-Training erstellt werden
  • Aus dem Model Garden (vortrainierte Modelle) importiert werden
  • Mit mehreren Versionen pro Modell versioniert werden

Jedes Modell besitzt Metadaten, einschließlich Framework, Container-Image-URI, Speicherort der Artefakte und Serving-Konfiguration.

Endpunkte

Endpoints sind Ressourcen, die bereitgestellte Modelle hosten und Online-Predictions ausliefern. Wichtige Merkmale:

  • Können mehrere bereitgestellte Modelle hosten (mit Traffic-Splitting)
  • Bieten HTTPS-Endpunkte für Echtzeit-Predictions
  • Unterstützen Autoscaling basierend auf Traffic
  • Können privaten oder öffentlichen Zugriff nutzen
  • Unterstützen A/B-Tests durch Traffic-Splitting

Custom Jobs

Custom Jobs erlauben es, eigenen Trainingscode mit eigenen Containern oder Python-Paketen auszuführen. Funktionen umfassen:

  • Unterstützung für verteiltes Training mit mehreren Worker-Pools
  • Konfigurierbare Maschinentypen und Beschleuniger (GPUs/TPUs)
  • Anbindung eines service accounts zum Zugriff auf andere GCP-Ressourcen
  • Integration mit Vertex AI Tensorboard zur Visualisierung
  • Optionen für VPC-Konnektivität

Hyperparameter Tuning Jobs

Diese Jobs durchsuchen automatisch optimale Hyperparameter, indem mehrere Trainingstrials mit unterschiedlichen Parameterkombinationen ausgeführt werden.

Model Garden

Model Garden bietet Zugriff auf:

  • Vortrainierte Google-Modelle
  • Open-Source-Modelle (inkl. Hugging Face)
  • Drittanbieter-Modelle
  • One-Click-Deployment-Funktionen

Tensorboards

Tensorboards bieten Visualisierung und Überwachung für ML-Experimente, verfolgen Metriken, Modellgraphen und Trainingsfortschritt.

Service Accounts & Permissions

Standardmäßig verwendet Vertex AI den Compute Engine default service account (PROJECT_NUMBER-compute@developer.gserviceaccount.com), der Editor-Berechtigungen im Projekt hat. Sie können jedoch benutzerdefinierte service accounts angeben beim:

  • Erstellen von custom jobs
  • Hochladen von Modellen
  • Bereitstellen von Modellen an Endpunkte

Dieser service account wird verwendet, um:

  • Auf Trainingsdaten in Cloud Storage zuzugreifen
  • Logs an Cloud Logging zu schreiben
  • Auf Secrets aus Secret Manager zuzugreifen
  • Mit anderen GCP-Diensten zu interagieren

Datenspeicherung

  • Modell-Artefakte werden in Cloud Storage Buckets gespeichert
  • Trainingsdaten liegen typischerweise in Cloud Storage oder BigQuery
  • Container-Images werden in Artifact Registry oder Container Registry gespeichert
  • Logs werden an Cloud Logging gesendet
  • Metriken werden an Cloud Monitoring gesendet

Verschlüsselung

Standardmäßig verwendet Vertex AI Google-managed Encryption Keys. Sie können auch konfigurieren:

  • Customer-managed encryption keys (CMEK) aus Cloud KMS
  • Verschlüsselung gilt für Modell-Artefakte, Trainingsdaten und Endpunkte

Networking

Vertex AI-Ressourcen können konfiguriert werden für:

  • Öffentlichen Internetzugang (Standard)
  • VPC Peering für privaten Zugriff
  • Private Service Connect für sichere Konnektivität
  • Shared VPC-Unterstützung

Aufzählung

# 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

Modell-Informationssammlung

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

Endpunktdetails

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

Informationen zu Custom Jobs

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

Zugriffskontrolle

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

Speicher und Artefakte

# 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

Auf der folgenden Seite kannst du nachsehen, wie man abuse Vertex AI permissions to escalate privileges:

GCP - Vertex AI Privesc

Referenzen

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks