一款恶意的 PyPI 软件包在安全研究人员周五发现,该包基于流行的“requests”库,并包含隐藏在 PNG文件中的后门。这款软件包名为“requests-darwin-lite”,是合法的“requests” Python 包的一个分支,周五被发布到开源 Python 仓库 PyPI上, 。
Phylum的自动风险检测平台迅速检测到了该软件包,随后该供应链安全公司在同一天发布了关于这一可疑发现的。
“requests-darwin-lite”软件包的 setup.py 文件包含一个名为“PyInstall”的项目,该项目会在安装时执行。据 Phylum研究者称,在 macOS 系统上运行时,PyInstall 会解码并运行一个 base64编码的命令,该命令查找特定的系统全球唯一标识符(UUID),这表明该包创建者可能有特定的目标,或是将该包用于测试。
如果系统的 UUID 与指定的 UUID 匹配,该包就会读取一个与合法“requests”logo名称相似的 PNG删除”文件大约有 17MB,远远大于原本 300KB 的 logo大小,并隐藏了 Golang 二进制文件,该文件在
上被超过十多款防病毒程序标记为 OSX/Sliver 后门。
是一款开源的命令与控制 (C2) 框架,类似于 CobaltStrike,旨在被网络安全专业人员用于红队演习。Phylum 指出,由于 Sliver 相对不为人知且不易被检测,威胁行为者越来越多地使用它。
“requests-darwin-lite”的创作者将 Sliver 二进制文件加入到 PNG文件中,显然是作为一种隐写术来掩饰其存在。尽管文件大小较大且内容异样,但其他软件会将其识别为 PNG 文件,并正常渲染为“requests”logo。
Phylum 研究人员发现最早的两个版本被其原作者移除,并替换为两个不再试图在安装时运行恶意 Golang 二进制的更新版本——实际上,最终版本已完全移除 PyInstall 和恶意 PNG 内容,从而使其变得无害,研究人员写道。
尽管如此,所有版本的“requests-darwin-lite”在被 Phylum 团队报告后立即从 PyPI 仓库中移除。根据
的数据,该软件包在被移除之前共被下载了 417 次。
Phylum 团队在其博客文章中总结说,在部署后门前检查系统的 UUID 的目的,以及从 PyPI中移除早期版本的理由,仍然是一个谜。“也许他们留下了带有恶意二进制的版本,因为他们打算在其他包中依赖它,或者甚至在后续的软件中调用它,”Phylum研究团队写道。“无论哪种方式,我们看到攻击者采用了更具隐蔽性和复杂性的手段在开源生态系统中传播恶意软件。”
Leave a Reply