GCP - Vertex AI Enumeração

Tip

Aprenda e pratique AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoie o HackTricks

Vertex AI

Vertex AI é a plataforma unificada de aprendizado de máquina do Google Cloud para construir, implantar e gerenciar modelos de IA em escala. Ela combina vários serviços de AI e ML em uma única plataforma integrada, permitindo que data scientists e ML engineers:

  • Treinem modelos customizados usando AutoML ou treinamento customizado
  • Implantem modelos em endpoints escaláveis para predições
  • Gerenciem o ciclo de vida de ML desde a experimentação até a produção
  • Acessem modelos pré-treinados do Model Garden
  • Monitorem e otimizem o desempenho dos modelos

Agent Engine / Reasoning Engine

Para caminhos específicos de enumeração e post-exploitation relacionados a Agent Engine / Reasoning Engine envolvendo metadata credential theft, P4SA abuse, e producer/tenant project pivoting, verifique:

GCP - Vertex AI Post Exploitation

Componentes-chave

Modelos

Vertex AI models representam modelos de machine learning treinados que podem ser implantados em endpoints para servir predições. Modelos podem ser:

  • Fazem upload a partir de containers customizados ou artefatos de modelo
  • Criados através de AutoML training
  • Importados do Model Garden (modelos pré-treinados)
  • Versionados com múltiplas versões por modelo

Cada modelo possui metadata incluindo seu framework, container image URI, localização do artefato e configuração de serving.

Endpoints

Endpoints são recursos que hospedam modelos implantados e servem predições online. Principais características:

  • Podem hospedar múltiplos deployed models (com traffic splitting)
  • Fornecem HTTPS endpoints para predições em tempo real
  • Suportam autoscaling baseado no tráfego
  • Podem usar acesso privado ou público
  • Suportam A/B testing através de traffic splitting

Custom Jobs

Custom jobs permitem executar código de treinamento customizado usando seus próprios containers ou pacotes Python. Recursos incluem:

  • Suporte para distributed training com múltiplos worker pools
  • Machine types e accelerators configuráveis (GPUs/TPUs)
  • Associação de service account para acessar outros recursos do GCP
  • Integração com Vertex AI Tensorboard para visualização
  • Opções de VPC connectivity

Hyperparameter Tuning Jobs

Esses jobs automaticamente buscam os melhores hyperparameters executando múltiplos trials de treinamento com diferentes combinações de parâmetros.

Model Garden

Model Garden fornece acesso a:

  • Modelos Google pré-treinados
  • Modelos open-source (incluindo Hugging Face)
  • Modelos de terceiros
  • Capacidades de deploy com um clique

Tensorboards

Tensorboards fornecem visualização e monitoramento para experimentos de ML, acompanhando métricas, gráficos de modelos e progresso de treinamento.

Service Accounts & Permissions

Por padrão, serviços do Vertex AI usam a Compute Engine default service account (PROJECT_NUMBER-compute@developer.gserviceaccount.com), que tem permissões de Editor no projeto. Entretanto, você pode especificar service accounts customizadas ao:

  • Criar custom jobs
  • Fazer upload de modelos
  • Implantar modelos em endpoints

Essa service account é usada para:

  • Acessar dados de treinamento no Cloud Storage
  • Escrever logs no Cloud Logging
  • Acessar secrets do Secret Manager
  • Interagir com outros serviços do GCP

Armazenamento de Dados

  • Model artifacts são armazenados em buckets do Cloud Storage
  • Training data normalmente reside no Cloud Storage ou BigQuery
  • Container images são armazenadas no Artifact Registry ou Container Registry
  • Logs são enviados ao Cloud Logging
  • Metrics são enviadas ao Cloud Monitoring

Criptografia

Por padrão, Vertex AI usa chaves de criptografia gerenciadas pelo Google. Você também pode configurar:

  • Customer-managed encryption keys (CMEK) via Cloud KMS
  • A criptografia aplica-se a model artifacts, training data e endpoints

Networking

Recursos do Vertex AI podem ser configurados para:

  • Acesso público à internet (padrão)
  • VPC peering para acesso privado
  • Private Service Connect para conectividade segura
  • Suporte a Shared VPC

Enumeração

# 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

Coleta de Informações do Modelo

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

Detalhes do 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)"

Informações do Custom Job

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

Controle de Acesso

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

Armazenamento e Artefatos

# 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 página a seguir, você pode ver como abuse Vertex AI permissions to escalate privileges:

GCP - Vertex AI Privesc

Post Exploitation

GCP - Vertex AI Post Exploitation

Referências

Tip

Aprenda e pratique AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoie o HackTricks