“复活劫持”供应链攻击威胁2.2万个PyPI包的安全

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

编译:代码卫士

威胁行动者们正在利用名为“复活劫持”的攻击方法,即使用此前被删除程序包的名称注册新的 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”。

e7c124c1943934268427051ac12d41d8.jpeg

12f1c85a9361b2454ddbc018c8fa4ea0.jpeg

奇安信代码卫士 (codesafe)

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用提供了pycrypto的下载地址为https://pypi.python.org/pypi/pycrypto。该链接指向的网页是用于下载pycrypto的页面。你可以在这个链接上找到pycrypto的最新版本并下载安装。引用中提到,在安装pycrypto时最好保持联网状态,因为它会自动下载依赖pycrypto。这意味着在使用python setup.py install命令安装pycrypto时,如果你的电脑联网,它会自动下载pycrypto的依赖。引用提供了PyQt5的国内镜像地址为https://pypi.tuna.tsinghua.edu.cn/simple/。这个镜像地址可以用于在PyCharm中添加国内镜像源来安装PyQt5。添加这个镜像源可以帮助你在下载和安装PyQt5时提高速度和成功率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [https://pypi.python.org/pypi/ssh](https://blog.csdn.net/weixin_39943442/article/details/114909903)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [PyCharm下添加国内镜像源 https://pypi.tuna.tsinghua.edu.cn/simple/ 安装PyQt5](https://blog.csdn.net/hnjzsyjyj/article/details/115712516)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值