GCP - Artifact Registry Enum

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Основна інформація

Google Cloud Artifact Registry - це повністю керований сервіс, який дозволяє вам керувати, зберігати та захищати ваші програмні артефакти. Це, по суті, репозиторій для зберігання залежностей збірки, таких як образи Docker, пакети Maven, пакети npm та інші типи артефактів. Його часто використовують у конвеєрах CI/CD для зберігання та версіонування артефактів, що виробляються під час процесу розробки програмного забезпечення.

Основні функції Artifact Registry включають:

  1. Об'єднаний репозиторій: Він підтримує кілька типів артефактів, що дозволяє мати один репозиторій для образів Docker, пакетів мов (наприклад, Maven для Java, npm для Node.js) та інших типів артефактів, що забезпечує послідовний контроль доступу та єдиний перегляд всіх ваших артефактів.

  2. Повністю керований: Як керований сервіс, він дбає про базову інфраструктуру, масштабування та безпеку, зменшуючи накладні витрати на обслуговування для користувачів.

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

  4. Геореплікація: Він підтримує реплікацію артефактів у кількох регіонах, покращуючи швидкість завантаження та забезпечуючи доступність.

  5. Інтеграція з послугами Google Cloud: Він працює безперешкодно з іншими послугами GCP, такими як Cloud Build, Kubernetes Engine та Compute Engine, що робить його зручним вибором для команд, які вже працюють у екосистемі Google Cloud.

  6. Безпека: Пропонує функції, такі як сканування на вразливості та аналіз контейнерів, щоб забезпечити, що збережені артефакти є безпечними та вільними від відомих проблем безпеки.

Формати та режими

При створенні нового репозиторію можна вибрати формат/тип репозиторію серед кількох, таких як Docker, Maven, npm, Python... та режим, який зазвичай може бути одним з цих трьох:

  • Стандартний репозиторій: Стандартний режим для зберігання власних артефактів (таких як образи Docker, пакети Maven) безпосередньо в GCP. Він є безпечним, масштабованим та добре інтегрується в екосистему Google Cloud.

  • Віддалений репозиторій (якщо доступний): Діє як проксі для кешування артефактів зовнішніх, публічних репозиторіїв. Це допомагає уникнути проблем зі зміною залежностей вгорі та зменшує затримку за рахунок кешування часто використовуваних артефактів.

  • Віртуальний репозиторій (якщо доступний): Надає уніфікований інтерфейс для доступу до кількох (стандартних або віддалених) репозиторіїв через один кінцевий пункт, спрощуючи конфігурацію на стороні клієнта та управління доступом до артефактів, розподілених по різних репозиторіях.

  • Для віртуального репозиторію вам потрібно вибрати репозиторії та вказати їм пріоритет (репо з найбільшим пріоритетом буде використовуватися).

  • Ви можете комбінувати віддалені та стандартні репозиторії в віртуальному, якщо пріоритет віддаленого є більшим, ніж у стандартного, пакети з віддаленого (наприклад, PyPi) будуть використані. Це може призвести до конфлікту залежностей.

Зверніть увагу, що в Віддаленій версії Docker можна вказати ім'я користувача та токен для доступу до Docker Hub. Токен потім зберігається в Менеджері секретів.

Шифрування

Як і очікувалося, за замовчуванням використовується ключ, керований Google, але можна вказати ключ, керований клієнтом (CMEK).

Політики очищення

  • Видалення артефактів: Артефакти будуть видалені відповідно до критеріїв політики очищення.

  • Пробний запуск: (За замовчуванням) Артефакти не будуть видалені. Політики очищення будуть оцінені, і тестові події видалення будуть відправлені до Cloud Audit Logging.

Сканування на вразливості

Можливо увімкнути сканер вразливостей, який перевірятиме вразливості всередині контейнерних образів.

Виявлення

# Get repositories
gcloud artifacts repositories list
gcloud artifacts repositories describe --location <location> <repo-name>
gcloud artifacts versions list --repository=<repo-name> -location <location> --package <package-name>

# Get settings of a repository (example using python but could be other)
gcloud artifacts print-settings python --repository <repo-name> --location <location>

# Get docker images
gcloud artifacts docker images list us-central1-docker.pkg.dev/<proj-name>/<repo-name>

# Get packages (like python and others...)
gcloud artifacts packages list --repository <repo-name> --location <location>

# Get SBOMB artifacts
gcloud artifacts sbom list

# Get vulnerabilities (docker images)
gcloud artifacts vulnerabilities list us-east1-docker.pkg.dev/project123/repository123/someimage@sha256:49765698074d6d7baa82f
gcloud artifacts docker images list-vulnerabilities projects/<proj-name>/locations/<location>/scans/<scan-uuid>

Підвищення привілеїв

pageGCP - Artifact Registry Privesc

Неаутентифікований доступ

pageGCP - Artifact Registry Unauthenticated Enum

Післяексплуатаційна діяльність

pageGCP - Artifact Registry Post Exploitation

Постійність

pageGCP - Artifact Registry Persistence
Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated