“复活劫持”供应链攻击威胁2.2万个PyPI包的安全
2024-9-5 12:19:59 Author: mp.weixin.qq.com(查看原文) 阅读量:8 收藏

 聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士

威胁行动者们正在利用名为“复活劫持”的攻击方法,即使用此前被删除程序包的名称注册新的 PyPI项目,开展供应链攻击。这种技术“可用于劫持2.2万个已有的 PyPI 包并导致数万次恶意包下载。”
劫持热门项目

“复活劫持”是一种攻击向量,涉及以从 PyPI 平台删除的包名称注册新项目。如此,攻击者可将恶意代码推送到开发人员的拉取更新中。由于 PyPI 允许以已删除 Python 项目的名称进行注册,因此这种攻击是可能实现的。

决定从 PyPI 删除项目的开发人员仅会收到关于潜在后果的提醒,包括“复活劫持”攻击的场景。对话提醒称,“删除该项目将使该项目名称可被其它任何 PyPI 用户使用。该用户将能够以该项目名称进行发布,只要分发文件名称不匹配此前已发布分发的文件名称即可。”

JFrog 公司的研究人员指出,PyPI 上超过2.2万个已删除包易受“复活劫持”攻击,其中一些包非常流行。他们提到,PyPI 上平均每个月被删除的包数量是309个,为攻击者提供了稳定的新机会。

研究人员表示,开发人员删除包的原因多种多样,如该脚本不再需要、重写工具并以新名称发布等。在一些情况下,这些包变得冗余,因为它的新功能已被引入官方库或内置 API中。

“pingdomv3”案例

4月中旬,JFrog 公司研究人员发现“复活劫持”的在野利用,当时威胁行动者针对 “pingdomv3”发动攻击。”pingdomv3” 是对 Pingdom API 网站监控服务的视线。

虽然该包在3月30日被删除,但另外一名开发人员劫持了该名称并在同一天发布了一个更新,即攻击者了解该问题。在随后的更新中包含了一个通过 Base64 混淆且攻击 Jenkins CI/CD 环境的 Python 木马。

问题解决

研究人员以最流行的但已被删除的包的名称创建了新的 Python 项目。

研究人员解释称,PyPI 维护着一个非公开的拦截清单,会阻止某些名称在新项目中注册,但多数已被删除包并未上榜。这就导致研究人员可采取间接措施来缓解“复活劫持”威胁,并以名为 “security_holding” 的账号来注册最为流行的已删除/易受攻击的程序包。这些被弃用的包是空的,因此研究员将其版本号变更为 “0.0.0.1”来确保活跃用户不会拉取更新。这一行为实际上保留了包名称并阻止恶意人员劫持。三个月后,研究人员发现,通过自动脚本和用户输入错误的方式,他们仓库中的包下载量已接近20万次。

“复活劫持”对PyPI的影响要比一般的误植域名 (typosquatting) 更严重,因为为自己所选项目拉取更新的用户不会犯错。为缓解该攻击,用户和组织机构可使用包锁定的方式停留在特定的已知可信的版本、验证包完整性、审计其内容并查找包所有权的变更情况或异常的更新活动。

代码卫士试用地址:https://codesafe.qianxin.com
开源卫士试用地址:https://oss.qianxin.com

推荐阅读

在线阅读版:《2024中国软件供应链安全分析报告》全文

奇安信《软件供应链安全报告》:七成国产软件有超危漏洞

JFrog Artifactory 缺陷导致软件供应链易受缓存投毒攻击

MLOps 平台存在20多个供应链漏洞

原文链接

https://www.bleepingcomputer.com/news/security/revival-hijack-supply-chain-attack-threatens-22-000-pypi-packages/

题图:Pixabay License

本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。

    觉得不错,就点个 “在看” 或 "” 吧~


文章来源: https://mp.weixin.qq.com/s?__biz=MzI2NTg4OTc5Nw==&mid=2247520683&idx=2&sn=18f9b633ae22eab04a32ea14664dde07&chksm=ea94a0c1dde329d773200df4470e2f6dfba305c7c3c4e70dee8ce91ebb53fbf1ea18dd3ea9c1&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh