GCP - Artifact Registry Persistence

Support HackTricks

Artifact Registry

Artifact Registryに関する詳細情報は、以下を確認してください:

Dependency Confusion

  • リモートと標準のリポジトリが仮想リポジトリで混在し、両方にパッケージが存在する場合、どうなるか?

  • 仮想リポジトリで設定された優先度が最も高いものが使用される

  • 優先度が同じ場合

  • バージョン同じであれば、仮想リポジトリ内でアルファベット順に最初のポリシー名が使用される

  • そうでなければ、最も高いバージョンが使用される

したがって、リモートリポジトリがより高いまたは同じ優先度を持っている場合、パブリックパッケージレジストリでの最高バージョン(依存関係の混乱)を悪用することが可能です。

この技術は、持続性認証されていないアクセスに役立つ可能性があり、これを悪用するには、Artifact Registryに保存されているライブラリ名を知っていることと、パブリックリポジトリ(例えばPythonのPyPi)に同じライブラリをより高いバージョンで作成することが必要です。

持続性のために従うべき手順は以下の通りです:

  • 要件仮想リポジトリ存在し、使用されている必要があり、パブリックリポジトリに存在しない名前の内部パッケージを使用する必要があります。

  • リモートリポジトリが存在しない場合は作成する

  • リモートリポジトリを仮想リポジトリに追加する

  • リモートリポジトリにより高い(または同じ)優先度を与えるために仮想レジストリのポリシーを編集する。 次のようなコマンドを実行します:

  • 正当なパッケージをダウンロードし、悪意のあるコードを追加して、同じバージョンでパブリックリポジトリに登録します。開発者がそれをインストールするたびに、彼はあなたのものをインストールします!

依存関係の混乱に関する詳細情報は、以下を確認してください:

Support HackTricks

Last updated