Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 304

依存関係混同攻撃(Dependency Confusion)

依存関係混同攻撃(Dependency Confusion) とは何ですか?

依存関係混同攻撃(Dependency Confusion)攻撃者が組織内部の依存関係と同じ名前の悪意あるパッケージをパブリックレジストリに公開し、ビルドツールにパブリック版を取得させるサプライチェーン攻撃。


Dependency Confusion は、npm、pip、Maven、NuGet、RubyGems などのパッケージマネージャがパブリックとプライベートのレジストリを併用する際の既定の解決動作を悪用します。攻撃者は内部パッケージの名前を漏洩したマニフェスト、公開リポジトリ、DNS などから特定し、より高いバージョンを同名でパブリックレジストリに公開して、ビルドエージェントが取得するのを待ちます。Alex Birsan の 2021 年の調査により、大手企業多数が脆弱であることが示されました。対策には、レジストリスコープの明示(npm scoped パッケージ、NuGet の upstream feed、pip --index-url)、内部名のプレースホルダーをパブリックに事前公開、外向き解決のブロック、SigstorePGP による署名、名前と取得元を固定するキュレート済み成果物リポジトリ経由での取得などがあります。SLSA、SBOM、パブリックレジストリの新規パッケージの継続的監視も検知に有効です。

  1. 01

    内部パッケージ internal-utils が、npm 上の悪意ある internal-utils@99.0.0 に置き換えられる事例。

  2. 02

    ビルドパイプラインが、プライベートインデックスではなく PyPI から pip 依存をダウンロードしてしまうケース。

よくある質問

依存関係混同攻撃(Dependency Confusion) とは何ですか?

攻撃者が組織内部の依存関係と同じ名前の悪意あるパッケージをパブリックレジストリに公開し、ビルドツールにパブリック版を取得させるサプライチェーン攻撃。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。

依存関係混同攻撃(Dependency Confusion) とはどういう意味ですか?

攻撃者が組織内部の依存関係と同じ名前の悪意あるパッケージをパブリックレジストリに公開し、ビルドツールにパブリック版を取得させるサプライチェーン攻撃。

依存関係混同攻撃(Dependency Confusion) はどのように機能しますか?

Dependency Confusion は、npm、pip、Maven、NuGet、RubyGems などのパッケージマネージャがパブリックとプライベートのレジストリを併用する際の既定の解決動作を悪用します。攻撃者は内部パッケージの名前を漏洩したマニフェスト、公開リポジトリ、DNS などから特定し、より高いバージョンを同名でパブリックレジストリに公開して、ビルドエージェントが取得するのを待ちます。Alex Birsan の 2021 年の調査により、大手企業多数が脆弱であることが示されました。対策には、レジストリスコープの明示(npm scoped パッケージ、NuGet の upstream feed、pip --index-url)、内部名のプレースホルダーをパブリックに事前公開、外向き解決のブロック、Sigstore や PGP による署名、名前と取得元を固定するキュレート済み成果物リポジトリ経由での取得などがあります。SLSA、SBOM、パブリックレジストリの新規パッケージの継続的監視も検知に有効です。

依存関係混同攻撃(Dependency Confusion) からどのように防御しますか?

依存関係混同攻撃(Dependency Confusion) に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。

依存関係混同攻撃(Dependency Confusion) の別名は何ですか?

一般的な別名: パッケージ置き換え攻撃, ネームスペース混同。

関連用語

関連項目