JFrog 的网络安全研究人员发现了一种名为“Revival Hijack”的新型 PyPI 攻击技术,该技术利用包删除策略绕过安全检查。据统计,超过 22,000 个程序包处于风险之中,可能会影响数十万名用户。
JFrog 的网络安全研究人员发现了一种用于攻击 Python 包索引存储库的新供应链攻击技术,可能会影响超过22,000 个软件包并威胁到无数用户。
该技术被称为“Revival Hijack”,它利用了一个策略漏洞,允许攻击者在原始开发人员从 PyPI 中删除包后重新注册和劫持包。
Revival Hijack – 如何运作
与依赖于用户拼写错误包名称的传统攻击手法不同,Revival Hijack 利用了流行包的删除和重新注册。当开发人员从 PyPI 中删除他们的项目时,包名称可供其他任何人注册。然后,攻击者可以上传这些包的恶意版本,毫无戒心的用户可能会下载并安装这些包,认为它们是合法的。
JFrog 的技术分析显示,超过 22,000 个 PyPI 包暴露在 Revival Hijack 攻击中。这意味着数十万用户可能会在不知不觉中下载有害软件。
对 Revival Hijack 进行测试
为了证明 Revival 劫持的可行性,JFrog 进行了一项安全的实验。他们创建并发布了一个包,然后将其删除并在其他用户下重新注册。实验表明,新的冒名顶替程序包显示为合法更新,程序包管理器没有发出警告。
2024 年 4 月 12 日,JFrog 的系统检测到涉及“pingdomv3”包的异常活动,该软件包的最早版本标记为 0.0.2,于 2019 年 11 月 29 日发布。这个合法软件包包含 Pingdom API 的 Python 实现(Pingdom API 是 SolarWinds 软件开发公司于 2014 年收购的网站监控服务)。
该软件包于2024年3月30日被删除,然后一个新所有者立即重新注册,他开始是发布了一个明显无害的更新,然后又发布了一个包含可疑的 Base64 混淆有效负载的版本。JFrog立即上报了该包的异常,PyPI 维护者删除了恶意包。
好消息是,JFrog 的主动措施保障了在发生任何重大损害之前挫败了攻击者的企图。坏消息是,JFrog 的团队在随后几天内仍观察到数千次相关包的下载,这表明遭受供应链攻击的风险很高。
专家评论
Endor Labs 的安全研究员 Henrik Plate 对调查结果进行了分析:“这种风险是真实的,并且取决于软件包的受欢迎程度。如果很久以前就删除了包,风险可能会降低。
Plate 指出,在提供的示例中,包的快速恢复表明攻击者可能正在主动监控 PyPI 的删除情况。
“正如 Endor Labs Risk Explorer 所记录的那样,恢复已删除的软件包的问题是众所周知的。此类攻击手法还包括恢复 GitHub 存储库和 npm 包等场景,“Plate 解释说。
他强调了对软件包注册表的严格安全准则的重要性,并引用了 OpenSSF 提出的原则。
保持警惕
JFrog 已向 PyPI 的安全团队报告了此问题,并敦促制定更严格的策略来防止重复使用包名称。他们还敦促用户保持警惕,并确保他们的CI/CD系统不会尝试安装已从 PyPI 中删除的软件包。
完整分析过程:https://jfrog.com/blog/revival-hijack-pypi-hijack-technique-exploited-22k-packages-at-risk/