GCP - Compute Instances

Reading time: 5 minutes

tip

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

Підтримка HackTricks

Basic Information

Google Cloud Compute Instances є налаштовуваними віртуальними машинами на хмарній інфраструктурі Google, що пропонують масштабовану та за запитом обчислювальну потужність для широкого спектру застосувань. Вони надають такі функції, як глобальне розгортання, постійне зберігання, гнучкий вибір ОС та потужні інтеграції мережі та безпеки, що робить їх універсальним вибором для хостингу веб-сайтів, обробки даних та ефективного виконання застосувань у хмарі.

Confidential VM

Confidential VMs використовують апаратні засоби безпеки, які пропонуються останнім поколінням процесорів AMD EPYC, що включають шифрування пам'яті та безпечну зашифровану віртуалізацію. Ці функції дозволяють VM захищати дані, які обробляються та зберігаються в ній, навіть від хостової операційної системи та гіпервізора.

Щоб запустити Confidential VM, можливо, потрібно змінити такі речі, як тип машини, мережевий інтерфейс, образ завантажувального диска.

Disk & Disk Encryption

Можливо вибрати диск для використання або створити новий. Якщо ви виберете новий, ви можете:

  • Вибрати розмір диска
  • Вибрати ОС
  • Вказати, чи хочете ви видалити диск, коли екземпляр буде видалено
  • Шифрування: За замовчуванням буде використано ключ, керований Google, але ви також можете вибрати ключ з KMS або вказати сирий ключ для використання.

Deploy Container

Можливо розгорнути контейнер всередині віртуальної машини.
Можливо налаштувати образ для використання, встановити команду для виконання всередині, аргументи, змонтувати об'єм та змінні середовища (чутлива інформація?) і налаштувати кілька параметрів для цього контейнера, таких як виконання як привілейований, stdin та псевдо TTY.

Service Account

За замовчуванням буде використано обліковий запис служби за замовчуванням Compute Engine. Електронна пошта цього SA виглядає так: <proj-num>-compute@developer.gserviceaccount.com
Цей обліковий запис служби має роль редактора на всьому проекті (високі привілеї).

А стандартні області доступу такі:

Однак, можливо надати йому cloud-platform одним кліком або вказати кастомні.

Firewall

Можливо дозволити HTTP та HTTPS трафік.

Networking

  • IP Forwarding: Можливо увімкнути IP пересилання з моменту створення екземпляра.
  • Hostname: Можливо надати екземпляру постійне ім'я хоста.
  • Interface: Можливо додати мережевий інтерфейс

Extra Security

Ці параметри збільшать безпеку VM і рекомендуються:

  • Secure boot: Secure boot допомагає захистити ваші VM екземпляри від шкідливих програм на рівні завантаження та ядра.
  • Enable vTPM: Віртуальний модуль довіреної платформи (vTPM) перевіряє цілісність вашого гостьового VM перед завантаженням та під час завантаження, а також пропонує генерацію та захист ключів.
  • Integrity supervision: Моніторинг цілісності дозволяє вам контролювати та перевіряти цілісність завантаження ваших захищених VM екземплярів за допомогою звітів Stackdriver. Вимагає увімкнення vTPM.

VM Access

Звичайний спосіб увімкнення доступу до VM - це дозволити певні SSH публічні ключі для доступу до VM.
Однак також можливо увімкнути доступ до VM через сервіс os-config, використовуючи IAM. Більше того, можливо увімкнути 2FA для доступу до VM, використовуючи цей сервіс.
Коли цей сервіс увімкнено, доступ через SSH ключі вимкнено.

Metadata

Можливо визначити автоматизацію (userdata в AWS), яка є командами оболонки, що виконуватимуться щоразу, коли машина вмикається або перезавантажується.

Також можливо додати додаткові метадані у форматі ключ-значення, які будуть доступні з кінцевої точки метаданих. Ця інформація зазвичай використовується для змінних середовища та скриптів запуску/вимкнення. Це можна отримати, використовуючи метод describe з команди в розділі перерахування, але також може бути отримано зсередини екземпляра, отримуючи доступ до кінцевої точки метаданих.

bash
# view project metadata
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

# view instance metadata
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

Крім того, токен автентифікації для прикріпленого облікового запису служби та загальна інформація про екземпляр, мережу та проект також будуть доступні з метаданих. Для отримання додаткової інформації перегляньте:

Cloud SSRF - HackTricks

Шифрування

За замовчуванням використовується ключ шифрування, керований Google, але можна налаштувати ключ шифрування, керований клієнтом (CMEK). Ви також можете налаштувати, що робити, коли використаний CMEK відкликано: нічого або вимкнути віртуальну машину.

tip

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

Підтримка HackTricks