Check Point 研究人员在 Python 包索引 (PyPI) 上发现了十个恶意包。这些软件包安装了信息窃取程序,允许攻击者窃取开发人员的私人数据和个人凭据。研究人员提供了有关恶意软件包的详细信息:
- Ascii2text 在名称和描述上模仿了流行的 art 软件包。可以在没有发布部分的情况下复制整个项目描述,从而防止用户意识到这是一个假包。恶意部分在包 init.py 文件中,由setup.py安装脚本导入。init.py 文件中的代码负责下载和执行恶意脚本,该脚本搜索本地密码并使用 discordweb hook 上传。
- Pyg-utils、Pymocks 和 PyProto2,允许攻击者窃取用户的 AWS 凭证。Pyg-utils 连接到同一恶意域 (pygrata.com),Pymocks 和 PyProto2 有几乎相同的代码针对不同的域 ——pymocks.com。
- Test-async 在其描述中被描述为 “非常酷的测试包,非常有用,每个人都 100% 需要”。在其 setup.py 安装脚本中,它从 Web 下载并执行可能是恶意的代码。在下载该代码段之前,它会通知 Discord channel “new run” 已开始。
- Free-net-vpn 和 Free-net-vpn2是针对环境变量的恶意软件包。在它的 setup.py 安装脚本上有一个干净的、有记录的代码来获取用户的凭据。然后将这些机密发布到一个由动态 DNS 映射服务映射的网站上。
- Zlibsrc模仿 zlib 项目,包含一个从外部源下载和运行恶意文件的脚本。
- Browserdiv 是一个恶意程序包,其目的是通过收集安装程序凭据并将其发送到预定义的 discord webhook 来窃取安装程序凭据。虽然根据它的命名,它似乎是针对网页设计相关的程序(bowser,div),但根据其描述,该软件包的动机是为了在 discord 内使用 selfbots。
- WINRPCexploit虽然根据其描述,它是一个 "利用 windows RPC 漏洞的软件包",但其实是一个凭据窃取程序包。在执行时,该包会将服务器的环境变量(通常包含凭据)上传到攻击者控制的远程站点。
尽管 CheckPoint 报告了发现的软件包并从 PyPI 中删除,但在其系统中下载这些软件包的软件开发者仍然可能面临风险。
Bleepingcomputer 指出,在许多情况下,恶意程序包为可能的供应链攻击奠定了基础,因此开发人员的计算机可能只是广泛感染的起始点,并且应该对代码进行恶意代码审计。重要的是要记住,PyPI 中的任何包都没有安全保证,用户有责任仔细检查名称、发布历史、提交详细信息、主页链接和下载数量。所有这些元素共同有助于确定 Python 包是否值得信赖或是否具有潜在恶意。