GCP - Vertex AI Aufzählung

Tip

Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lerne & übe Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstütze HackTricks

Vertex AI

Vertex AI ist Google Cloud’s einheitliche Machine-Learning-Plattform zum Entwickeln, Bereitstellen und Verwalten von AI-Modellen im großen Maßstab. Sie kombiniert verschiedene AI- und ML-Services in einer einzigen, integrierten Plattform und ermöglicht es Data Scientists und ML Engineers:

  • Modelle mittels AutoML oder benutzerdefiniertem Training zu trainieren
  • Modelle an skalierbare Endpunkte für Vorhersagen zu deployen
  • den ML-Lifecycle von Experimenten bis zur Produktion zu verwalten
  • auf vortrainierte Modelle aus Model Garden zuzugreifen
  • die Modellleistung zu überwachen und zu optimieren

Agent Engine / Reasoning Engine

Für Agent Engine / Reasoning Engine-spezifische Aufzählung und Post-Exploitation-Pfade, die metadata credential theft, P4SA abuse und producer/tenant project pivoting betreffen, siehe:

GCP - Vertex AI Post Exploitation

Wichtige Komponenten

Models

Vertex AI Models repräsentieren trainierte Machine-Learning-Modelle, die an Endpoints deployt werden können, um Vorhersagen bereitzustellen. Models können:

  • aus benutzerdefinierten Containern oder Modellartefakten hochgeladen werden
  • durch AutoML-Training erstellt werden
  • aus Model Garden (pre-trained models) importiert werden
  • versioniert werden, mit mehreren Versionen pro Modell

Jedes Model hat Metadaten, einschließlich Framework, Container-Image-URI, Artefakt-Speicherort und Serving-Konfiguration.

Endpoints

Endpoints sind Ressourcen, die deployte Models hosten und Online-Vorhersagen bereitstellen. Wichtige Merkmale:

  • Können mehrere deployte Models hosten (mit Traffic-Splitting)
  • Bieten HTTPS endpoints für Echtzeit-Vorhersagen
  • Unterstützen Autoscaling basierend auf Traffic
  • Können privaten oder öffentlichen Zugriff verwenden
  • Unterstützen A/B-Tests durch Traffic-Splitting

Custom Jobs

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

  • Unterstützung für verteiltes Training mit mehreren Worker-Pools
  • Konfigurierbare Machine Types und Accelerators (GPUs/TPUs)
  • Anbindung eines Service Accounts für den Zugriff auf andere GCP-Ressourcen
  • Integration mit Vertex AI Tensorboard zur Visualisierung
  • VPC-Konnektivitätsoptionen

Hyperparameter Tuning Jobs

Diese Jobs suchen automatisch nach optimalen Hyperparametern, indem sie mehrere Trainingstrials mit unterschiedlichen Parameterkombinationen durchführen.

Model Garden

Model Garden bietet Zugriff auf:

  • vortrainierte Google-Modelle
  • Open-Source-Modelle (einschließlich Hugging Face)
  • Drittanbieter-Modelle
  • Ein-Klick-Bereitstellungsfunktionen

Tensorboards

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

Service Accounts & Permissions

Standardmäßig verwenden Vertex AI-Services 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 Models
  • Deployen von Models zu Endpoints

Dieser Service Account wird verwendet, um:

  • auf Trainingsdaten in Cloud Storage zuzugreifen
  • Logs in Cloud Logging zu schreiben
  • Secrets aus Secret Manager zuzugreifen
  • mit anderen GCP-Services zu interagieren

Datenspeicherung

  • Model-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 Modellartefakte, Trainingsdaten und Endpoints

Netzwerk

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

  • Public internet access (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 benutzerdefinierten 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 erfahren Sie, wie man abuse Vertex AI permissions to escalate privileges:

GCP - Vertex AI Privesc

Post Exploitation

GCP - Vertex AI Post Exploitation

Referenzen

Tip

Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lerne & übe Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstütze HackTricks