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