GCP - Artifact Registry Enum

支持 HackTricks

基本信息

Google Cloud 构件库是一个完全托管的服务,允许您管理、存储和保护软件构件。它本质上是一个用于存储构建依赖关系的存储库,例如 Docker 镜像、Maven、npm 包和其他类型的构件。它通常用于 CI/CD 流水线,用于存储和对软件开发过程中产生的构件进行版本控制。

构件库的关键特性包括:

  1. 统一存储库:支持多种类型的构件,允许您拥有一个用于 Docker 镜像、语言包(如 Java 的 Maven、Node.js 的 npm)和其他类型构件的单一存储库,实现一致的访问控制和跨所有构件的统一视图。

  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>

提权

GCP - Artifact Registry Privesc

未经身份验证访问

GCP - Artifact Registry Unauthenticated Enum

后渗透

GCP - Artifact Registry Post Exploitation

持久化

GCP - Artifact Registry Persistence
支持HackTricks

Last updated