GCP - アーティファクト レジストリの列挙
Reading time: 8 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
基本情報
Google Cloud Artifact Registryは、ソフトウェアアーティファクトを管理、保存、保護するための完全に管理されたサービスです。これは、Dockerイメージ、Maven、npmパッケージ、その他のタイプのアーティファクトを保存するためのリポジトリです。これは、ソフトウェア開発プロセス中に生成されたアーティファクトを保存およびバージョン管理するために、CI/CDパイプラインで一般的に使用されます。
Artifact Registryの主な機能は次のとおりです。
- 統一リポジトリ: 複数のタイプのアーティファクトをサポートし、Dockerイメージ、言語パッケージ(JavaのMaven、Node.jsのnpmなど)、およびその他のタイプのアーティファクトのための単一のリポジトリを持つことができ、一貫したアクセス制御とすべてのアーティファクトに対する統一されたビューを可能にします。
- 完全管理: 管理されたサービスとして、基盤となるインフラストラクチャ、スケーリング、およびセキュリティを管理し、ユーザーのメンテナンスオーバーヘッドを削減します。
- 細かいアクセス制御: Google Cloudのアイデンティティおよびアクセス管理(IAM)と統合され、リポジトリ内のアーティファクトにアクセス、アップロード、またはダウンロードできる人を定義できます。
- 地理的レプリケーション: 複数のリージョンにわたるアーティファクトのレプリケーションをサポートし、ダウンロードの速度を向上させ、可用性を確保します。
- Google Cloudサービスとの統合: Cloud Build、Kubernetes Engine、Compute Engineなどの他のGCPサービスとシームレスに連携し、Google Cloudエコシステム内で作業しているチームにとって便利な選択肢となります。
- セキュリティ: 脆弱性スキャンやコンテナ分析などの機能を提供し、保存されたアーティファクトが安全で既知のセキュリティ問題がないことを確認します。
フォーマットとモード
新しいリポジトリを作成する際には、Docker、Maven、npm、Pythonなどの中からリポジトリのフォーマット/タイプを選択し、通常は次の3つのいずれかのモードを選択できます。
- 標準リポジトリ: GCP内で自分のアーティファクト(Dockerイメージ、Mavenパッケージなど)を直接保存するためのデフォルトモードです。安全でスケーラブルであり、Google Cloudエコシステム内でうまく統合されます。
- リモートリポジトリ(利用可能な場合): 外部の、公開リポジトリからアーティファクトをキャッシュするためのプロキシとして機能します。上流で依存関係が変更されることによる問題を防ぎ、頻繁にアクセスされるアーティファクトをキャッシュすることでレイテンシを削減します。
- 仮想リポジトリ(利用可能な場合): 複数の(標準またはリモート)リポジトリにアクセスするための統一インターフェースを提供し、さまざまなリポジトリに分散されたアーティファクトのクライアント側の構成とアクセス管理を簡素化します。
- 仮想リポジトリでは、リポジトリを選択し、優先順位を付ける必要があります(最も優先順位の高いリポジトリが使用されます)。
- リモートと標準のリポジトリを仮想リポジトリで混在させることができ、リモートの優先順位が標準よりも大きい場合、リモートからのパッケージ(例えばPyPi)が使用されます。これにより、依存関係の混乱が生じる可能性があります。
リモート版のDockerでは、Docker Hubにアクセスするためのユーザー名とトークンを提供することが可能です。トークンはその後、Secret Managerに保存されます。
暗号化
予想通り、デフォルトでは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
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。