GCP - Artifact Registry Persistence
Artifact Registry
Artifact Registryに関する詳細情報は次をチェックしてください:
GCP - Artifact Registry Enum依存関係混乱
リモートと標準リポジトリが仮想的に混在し、パッケージが両方に存在する場合、どうなるか?
仮想リポジトリで最優先設定されたものが使用される
優先度が同じ場合:
バージョンが同じ場合、仮想リポジトリでアルファベット順に最初のポリシー名が使用される
そうでない場合、最高バージョンが使用される
したがって、リモートリポジトリがより高いか同じ優先度を持つ場合、パブリックパッケージレジストリで**最高バージョン(依存関係混乱)**を悪用することが可能です
このテクニックは永続性と認証されていないアクセスに役立ち、それを悪用するにはArtifact Registryに格納されているライブラリ名を知るだけで、同じライブラリを**パブリックリポジトリ(たとえばPythonのPyPi)**により高いバージョンで作成する必要があります。
永続性のためには、以下の手順に従う必要があります:
要件: 仮想リポジトリが存在し、使用されている必要があり、パブリックリポジトリに存在しない名前を持つ内部パッケージを使用する必要があります。
リモートリポジトリを作成する(存在しない場合)
リモートリポジトリを仮想リポジトリに追加する
仮想レジストリのポリシーを編集して、リモートリポジトリに**より高い優先度(または同じ)**を与えます。 次のようなコマンドを実行します:
正規のパッケージをダウンロードし、悪意のあるコードを追加して、同じバージョンでパブリックリポジトリに登録します。開発者がインストールするたびに、あなたのものがインストールされます!
依存関係混乱についての詳細は次をチェックしてください:
Last updated