GCP - Vertex AI Enum

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks

Vertex AI

Vertex AI — це Google Cloud’s уніфікована платформа машинного навчання для створення, розгортання та керування AI-моделями у великих масштабах. Вона об’єднує різні AI та ML сервіси в одну інтегровану платформу, що дозволяє data scientists та ML engineers:

  • Навчати кастомні моделі за допомогою AutoML або власного тренування
  • Розгортати моделі на масштабовані endpoints для отримання прогнозів
  • Керувати життєвим циклом ML від експериментів до продакшену
  • Отримувати доступ до попередньо навчених моделей з Model Garden
  • Моніторити та оптимізувати продуктивність моделей

Agent Engine / Reasoning Engine

Для специфічної енумерації Agent Engine / Reasoning Engine та шляхів post-exploitation, що включають metadata credential theft, P4SA abuse та producer/tenant project pivoting, дивіться:

GCP - Vertex AI Post Exploitation

Ключові компоненти

Models

Vertex AI models представляють навчені моделі машинного навчання, які можна розгорнути на endpoints для надання прогнозів. Моделі можуть бути:

  • Завантажені з кастомних контейнерів або артефактів моделей
  • Створені через AutoML training
  • Імпортовані з Model Garden (попередньо навчені моделі)
  • Версіоновані з кількома версіями на модель

Кожна модель має метадані, включаючи її фреймворк, URI образу контейнера, розташування артефактів і конфігурацію сервингу.

Endpoints

Endpoints — це ресурси, які хостять розгорнуті моделі та надають онлайн-прогнози. Ключові особливості:

  • Можуть хостити кілька розгорнутих моделей (з розподілом трафіку)
  • Забезпечують HTTPS endpoints для реального часу прогнозів
  • Підтримують автоматичне масштабування залежно від трафіку
  • Можуть використовувати приватний або публічний доступ
  • Підтримують A/B testing через розподіл трафіку

Custom Jobs

Custom jobs дозволяють запускати власний код навчання, використовуючи ваші контейнери або Python-пакети. Особливості включають:

  • Підтримку розподіленого навчання з декількома worker pools
  • Налаштовувані machine types та accelerators (GPUs/TPUs)
  • Прикріплення service account для доступу до інших ресурсів GCP
  • Інтеграцію з Vertex AI Tensorboard для візуалізації
  • Опції VPC connectivity

Hyperparameter Tuning Jobs

Ці jobs автоматично шукають оптимальні гіперпараметри, запускаючи кілька навчальних прогонів з різними комбінаціями параметрів.

Model Garden

Model Garden надає доступ до:

  • Попередньо натренованих Google моделей
  • Open-source моделей (включно з Hugging Face)
  • Моделей від третіх сторін
  • Можливостей розгортання в один клік

Tensorboards

Tensorboards забезпечують візуалізацію та моніторинг експериментів ML, відслідковуючи метрики, графи моделей і прогрес навчання.

Service Accounts & Permissions

За замовчуванням сервіси Vertex AI використовують Compute Engine default service account (PROJECT_NUMBER-compute@developer.gserviceaccount.com), яка має роль Editor у проєкті. Проте ви можете вказати кастомні service accounts під час:

  • Створення custom jobs
  • Завантаження моделей
  • Розгортання моделей на endpoints

Цей service account використовується для:

  • Доступу до training data у Cloud Storage
  • Запису логів у Cloud Logging
  • Доступу до секретів у Secret Manager
  • Взаємодії з іншими сервісами GCP

Зберігання даних

  • Артефакти моделей зберігаються в бакетах Cloud Storage
  • Training data зазвичай зберігається в Cloud Storage або BigQuery
  • Образи контейнерів зберігаються в Artifact Registry або Container Registry
  • Логи відправляються в Cloud Logging
  • Метрики відправляються в Cloud Monitoring

Шифрування

За замовчуванням Vertex AI використовує Google-managed encryption keys. Ви також можете налаштувати:

  • Customer-managed encryption keys (CMEK) з Cloud KMS
  • Шифрування застосовується до артефактів моделі, training data та endpoints

Мережа

Ресурси Vertex AI можна налаштувати для:

  • Публічного доступу в інтернет (за замовчуванням)
  • VPC peering для приватного доступу
  • Private Service Connect для безпечного з’єднання
  • Підтримки Shared VPC

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

Збір інформації про модель

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

Деталі 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)"

Інформація про 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)"

Контроль доступу

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

Сховище та артефакти

# 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

На наступній сторінці ви можете переглянути, як abuse Vertex AI permissions to escalate privileges:

GCP - Vertex AI Privesc

Post Exploitation

GCP - Vertex AI Post Exploitation

Посилання

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks