Entry № 338
依赖混淆攻击
依赖混淆攻击 是什么?
依赖混淆攻击供应链攻击的一种,攻击者在公共注册中心发布与组织内部依赖同名的恶意包,诱使构建工具拉取公共版本。
依赖混淆利用包管理器(npm、pip、Maven、NuGet、RubyGems 等)在同时使用公共与私有注册中心时的默认解析行为。攻击者通过泄露的 manifest、公开仓库或 DNS 等手段获取内部包名,然后在公共注册中心发布同名的更高版本包,等待构建机器安装。Alex Birsan 在 2021 年的研究证明多家大公司均受影响。缓解措施包括:显式指定 registry 范围(npm scoped 包、NuGet 上游 feed、pip --index-url)、在公共注册中心提前占位、阻断对外解析、用 Sigstore 或 PGP 对包签名,以及通过受管控的制品库统一约束包名与来源。SLSA、SBOM 与对公共注册中心新增包的持续监控,也有助于检测此类尝试。
● 示例
- 01
公共 npm 上出现的恶意 internal-utils@99.0.0 取代了内部的 internal-utils 包。
- 02
构建流水线从 PyPI 拉取本应来自私有源的 pip 依赖。
● 常见问题
依赖混淆攻击 是什么?
供应链攻击的一种,攻击者在公共注册中心发布与组织内部依赖同名的恶意包,诱使构建工具拉取公共版本。 它属于网络安全的 应用安全 分类。
依赖混淆攻击 是什么意思?
供应链攻击的一种,攻击者在公共注册中心发布与组织内部依赖同名的恶意包,诱使构建工具拉取公共版本。
如何防御 依赖混淆攻击?
针对 依赖混淆攻击 的防御通常结合技术控制与运营实践,详见上方完整定义。
依赖混淆攻击 还有哪些其他名称?
常见的别称包括: 命名空间混淆, 替换式攻击。