近日,Python的官方第三方软件存储库PyPI中发现了新的恶意库——能够在受感染设备上提取信用卡号和开启后门。
对此,8个下载次数超过3万次的Python软件包因含有恶意代码而从PyPI门户网站上被删除。
根据分析发现,一个名为noblesse的软件包和五个变体会在Windows系统上搜寻不一致的身份验证令牌和浏览器存储的信用卡号,并将它们转移到远程系统,而另一个名为pytagora的变体将执行远程系统提供的任意Python代码。据悉,这些恶意软件包都使用了简单的混淆技术。
nobleesse2恶意软件的主代码
此次事件再次凸显了软件包库如何演变为供应链攻击的热门目标。
无独有偶,根据最新消息,PyPI团队又修补了平台中的一个远程代码执行漏洞,该漏洞有可能被用来劫持整个Python库。
漏洞由信息安全研究员RyotaK上报,事实上,RyotaK总共发现了三个bug:
- PyPI上的旧文档删除漏洞:允许攻击者删除不受其控制的项目的文档
- PyPI上的角色删除漏洞:允许攻击者删除不受其控制的项目角色
- PyPI的GitHub Actions工作流程中的漏洞:攻击者可能会获得对该pypa/warehouse存储库的写入权限 ,导致在pypi.org上执行任意代码
其中,围绕 PyPI 源存储库的GitHub Actions 工作流程的漏洞最为严重,可以使用 GitHub Actions将具有写入权限的令牌泄漏到pypa/warehouse,并且可能被用来更改更多包含恶意内容的任意代码。目前,PyPI 维护者已经发布了针对该漏洞的修复程序。
随着npm、PyPI 和 RubyGems等流行存储库成为攻击的目标,一些开发人员依旧完全地信任存储库并从这些来源安装软件包。但是正如我们在之前的PyPI 研究中所看到的,公共软件存储库中缺乏自动化安全控制,即使是没有经验的攻击者也可以将它们作为传播恶意软件的平台,无论是通过域名抢注、依赖混淆还是简单的社会工程攻击,都屡试不爽。
警惕供应链安全,依旧需要开发者的时刻警惕和项目运营者的长期努力。