行业新闻与博客

PyPI Revival 劫持使数千个应用程序面临风险

据安全研究人员称,一种新的软件供应链攻击正在被广泛利用。


该技术针对通过 Python 包索引 (PyPI) 分发的 Python 应用程序。


软件供应链安全公司 JFrog 的研究人员认为,这次被称为“Revival Hijack”的攻击可能会影响 22,000 个现有的 Python 软件包。这反过来可能会导致数千万次受感染的下载。


Revival Hijack 利用了作者从 PyPI 存储库中删除项目时产生的潜在安全漏洞。


一旦开发人员从 PyPI 中删除该软件包,该软件包名称就会可供其他用户注册。然后黑客可以劫持该软件包名称并使用它来分发恶意代码。


“曾经安全”的供应链攻击风险


Revival Hijack 利用了受害者可能在不知情的情况下更新“曾经安全”的软件包,而不知道它已被更改或感染的事实。此外,CI/CD 机器通常设置为自动安装软件包更新。


JFrog 研究人员 Brian Moussalli 和 Andrey Polkovnichenko 警告说,这比以前的软件供应链攻击(依靠域名抢注,因此是人为错误)构成的风险要大得多,从而传播恶意代码。


研究团队使用名称相同但版本号不同且代码完全不同的冒名包重现了这次攻击。在进一步的测试中,他们发现“安全劫持”包在三个月内已被下载了 20 万次。


“Revival Hijack 不仅仅是一种理论上的攻击——我们的研究团队已经看到它在野外被利用,”JFrog 研究团队负责人 Brian Moussalli 解释道。


“在处理已删除软件包时使用易受攻击的行为允许攻击者劫持现有软件包,从而无需用户交互即可将其安装到目标系统。”


针对开发人员的感染代码警告


据 JFrog 研究人员称,网络安全团队已经降低了域名抢注的风险。这迫使恶意黑客寻找其他方法将受感染的代码放入存储库,例如 Revival Hijack。


在 PyPI 上了解有关域名抢注的更多信息:PyPI 上发现的新域名抢注和域名劫持策略


尽管 PyPI 确实会警告删除软件包的开发人员其名称可能会被重复使用,并限制替换软件包的特定版本,但 JFrog 的研究人员呼吁“制定更严格的政策,完全禁止重复使用软件包名称”。


云安全专家 Sysdig 威胁研究总监 Michael Clark 告诉Infosecurity,使用代码库的开发人员也需要保持警惕。


他说道:“PyPI 等存储库在安全性方面面临着严峻的挑战,因为它们通常受到开发人员的默许信任。”


 “只要名称正确,危险感就很低。 Revival Hijack 攻击证明了这个问题,因为恶意存储库的名称将与之前受信任的名称相匹配。为了防止使用此载体进行攻击,必须对这些存储库的依赖项进行静态和运行时分析。”

需要帮助吗?联系我们的支持团队 在线客服