ESET研究:官方Python仓库分发的网络间谍后门,累积10,000+次下载

背景

在2023年12月28日,ESET研究发现了一组恶意的Python项目集群,通过PyPI(官方Python包存储库)分发。该威胁针对Windows和Linux系统,通常提供具有网络间谍功能的定制后门。它允许远程命令执行和文件外泄,有时还包括截图能力。在某些情况下,最终载荷是臭名昭著的W4SP Stealer的变种,用于窃取个人数据和凭证,或者是一个简单的剪贴板监视器,用于窃取加密货币,有时甚至是两者兼而有之。ESET发现了包含恶意软件的53个项目中的116个文件(源分发和wheels)。在过去的一年里,受害者下载这些文件超过10,000次。从2023年5月起,下载速率约为每天80次。

网络安全 漏洞

PyPI和恶意软件

PyPI在Python程序员中很受欢迎,用于分享和下载代码。由于任何人都可以向存储库贡献,恶意软件有时会伪装成合法的、流行的代码库。ESET研究员Marc-Étienne Léveillé发现并分析了这些恶意软件包,他表示:“一些恶意包的名称看起来与其他合法包相似,但我们认为潜在受害者安装它们的主要方式不是通过输错字,而是通过社会工程,他们被引导运行pip来安装‘有趣’的包,无论原因是什么。”

大多数包在此研究发布时已被PyPI下架。ESET已与PyPI沟通,采取措施处理那些尚未下架的包;目前,所有已知的恶意软件包都已离线。

恶意代码的捆绑技术

ESET观察到这个攻击活动背后的运营者使用了三种技术将恶意代码捆绑到Python包中。第一种技术是在包内放置一个带有轻度混淆代码的“test”模块。第二种技术是将PowerShell代码嵌入到setup.py文件中,这个文件通常由pip等包管理器自动运行,以帮助安装Python项目。第三种技术是运营者不费力地在包中包含合法代码,以便只有轻度混淆的恶意代码存在。

通常,最终载荷是一个自定义后门,能够进行远程命令执行、文件外泄,有时还有截图功能。在Windows上,后门是用Python实现的。在Linux上,后门是用Go语言实现的。在某些情况下,使用W4SP Stealer的变体替代后门,或者使用简单的剪贴板监视器来窃取加密货币,有时两者兼而有之。剪贴板监视器针对比特币、以太坊、门罗和莱特币等加密货币。

安全建议

ESET研究员Léveillé表示:“Python开发人员在安装其系统上的代码之前应该审查代码。我们预计对PyPI的这种滥用将继续,建议在从任何公共软件存储库安装代码时谨慎行事。”