JFrog的网络安全研究人员发现了一种名为“Revival Hijack”的新型PyPI攻击技术,该技术利用了软件包删除策略。超过22000个软件包处于危险之中,可能会影响数千名用户。
JFrog的网络安全研究人员发现了一种用于攻击Python包索引(PyPI)存储库的新型供应链攻击技术,可能影响超过22000个软件包并威胁到无数用户。
这种被称为“Revival Hijack”的技术利用了一项政策漏洞,允许攻击者在原始开发人员将软件包从PyPI中删除后重新注册并劫持软件包名称。
与传统的域名抢注攻击不同,Revival Hijack攻击利用的是用户拼写错误的软件包名称,而传统域名抢注攻击则利用了热门软件包的删除和重新注册。当开发人员从PyPI中删除他们的项目时,软件包名称就会可供其他任何人注册。然后,攻击者可以上传这些软件包的恶意版本,毫无戒心的用户可能会下载并安装这些软件包,并认为它们是合法的。
JFrog的技术分析显示,超过22000个PyPI软件包遭受Revival Hijack攻击。这意味着数十万用户可能会在不知情的情况下下载有害软件。
为了证明Revival Hijack的可行性,JFrog进行了一次安全实验。他们创建并发布了一个软件包,然后将其删除,并以其他用户的身份重新注册。实验表明,新的冒名顶替软件包看起来像是合法更新,软件包管理器没有发出任何警告。
例如,2024年4月12日,JFrog的系统检测到涉及“pingdomv3”软件包的异常活动。该软件包有了一个新所有者,他发布了一个看似无害的更新,随后又发布了一个包含可疑的Base64混淆负载的版本。此事件立即引发了调查,并导致PyPI维护人员删除了该恶意软件包。
好消息是,JFrog的主动措施在造成任何重大损害之前就挫败了恶意行为者的企图。“尽管我们采取了保留(“安全保留”)这些软件包并添加安全副本的主动措施,但这些措施将保护PyPI社区免受攻击者劫持下载次数最多的软件包的侵害,”JFrog的研究团队写道。
坏消息是,即使采取了这些保护措施,JFrog的团队仍然观察到几天内预订包的下载量达到数千次,这表明供应链攻击的风险很高。
Endor Labs安全研究员Henrik Plate对研究结果进行了评估:“这种风险是真实存在的,并且取决于软件包的受欢迎程度。如果软件包很久以前就被删除,风险可能会降低。”
Plate指出,所提供的示例中软件包的快速复活表明攻击者可能正在积极监视PyPI以查找删除内容。
Plate解释道: “这种恢复已删除软件包的问题众所周知,属于‘悬垂引用’攻击类别,正如Endor Labs Risk Explorer所记录的那样。此类别包括恢复GitHub存储库和npm软件包等场景。”
他强调了软件包注册表严格的安全指南的重要性,并参考了OpenSSF提出的原则。
“使用内部软件包注册表可以通过镜像开源软件包来帮助保护开发人员,确保即使从公共注册表中删除它们也可以使用。但是,必须配置这些注册表以要求对恢复的软件包的新版本进行审查,以防止包含潜在的恶意代码,”他建议道。
JFrog已将此问题报告给PyPI的安全团队,并敦促制定更严格的政策以防止软件包名称被重复使用。他们还敦促用户保持警惕,确保他们的CI/CD系统不会尝试安装已从PyPI中删除的软件包。
评论已关闭。