恶意软件包通过PyPI传播Blank

2024年 1月 18日 121.7k 0

概述

Python 包索引 (PyPI) 是一个平台,它提供了广泛的包来简化和增强开发过程。恶意行为者定期在平台存储库中上传网络钓鱼包,旨在提供恶意软件以窃取受害者的信息,或者更频繁地破坏他们的环境。最近,据报道,来自 PyPI 的几个软件包是供应链攻击的一部分。

作为我们提高互联网安全性的持续研究的一部分,Imperva Threat Research 发现并报告了一个名为“sellpass-sdk”的软件包,该软件包随后出现了一系列其他虚拟恶意软件包,这些软件包很可能是由同一作者作为测试发布的。该软件包分发“Blank-Grabber”信息窃取恶意软件,并通过特定的 Discord Canary 链接泄露受害者的数据。在我们报告了这一发现后,PyPI 团队迅速删除了该软件包。

了解 PyPI 包元数据

该恶意包于 2023 年 12 月 27 日添加到 PyPI 存储库中,并一直保留到 1 月 8 日,在我们向 PyPI 安全团队报告后,它被删除。

这个包似乎伪装成一个名为“sellpass”的未受感染的包(省略了“sdk”)。真实的“sellpass”包用作 Sellpass.io API 的 Python 包装器。

图 1:PyPI sellpass 包

对下载数据的比较显示,欺骗性版本在短短一周内就被下载了 488 次,这表明在短时间内达到了惊人的范围。

该恶意包的作者使用的策略很有趣,旨在利用潜在用户的信任。让我们分解一下他们采用的策略:

1. 模仿作者姓名:恶意行为者通过将作者姓名从“xyss”略微更改为“xyss2”,旨在制造合法性的假象。这种微妙的变化很容易被忽视,尤其是那些不熟悉原作者作品或不注意细节的用户。这种策略利用了原作者建立的信任。

图 2:原始包的作者(左)与恶意包(右)

2. 上传多个版本以增加感知合法性:作者上传了两个版本的包,“sellpass-sdk-1.0.tar.gz”和“sellpass-sdk-1.1.tar.gz .tar.gz”。尽管这些版本是相同的,但区别在于版本号。这创造了持续开发和维护的外观。用户通常认为具有多个版本的软件包更可信且维护更积极,这增加了下载和使用的可能性。

Libraries.io 为所有 PyPI 包提供了一个评分系统,以评估其质量。如下图所示,我们评估了这些包装的质量。有些软件包的分数要高得多,但也有分数相似甚至更低的合法软件包。

图 3:来自 SourceRank Libraries.io 包分数

3.从原始包复制信息:添加直接从原始包复制的基本信息是另一种欺骗性策略。通过这样做,所有链接都指向原始包的真实 git 存储库。这不仅增加了一层真实性,而且还误导用户认为包装是正版和安全的。可能通过检查存储库链接来验证信息的用户将被重定向到原始来源,从而进一步确保他们包的真实性。

通过使用这些技术,该软件包在 PyPI 上可用了 13 天,并且在我们报告之前有近 500 次下载。

有趣的是,我们的系统识别了其他几个表现出相同特征的包,但名称是随机的,而不是模仿“sellpass”包。我们认为这些软件包可能被攻击者用于测试目的,并迅速删除。其中包括类似于“ef323refefeffe”软件包的软件包,如 Socket 最近的博客文章中所述,以及其他使用二进制文件进行感染的软件包。

图 4:包发布时间线

包装分析

由于几个指标,我们的检测系统发现了这个包裹。

该包托管在域 o5[.] 上gg的。攻击者通常使用不太常见或廉价的顶级域 (TLD) 的域作为其攻击策略的一部分。这些域名可以被快速注册,用于恶意目的,然后被放弃,这使得追踪肇事者变得更加困难。

该域名似乎是在上传恶意包的前一天注册的。

图 5:域详细信息

另一种欺骗性策略是将恶意软件托管在搜索引擎静态资源的路由后面(见下图 6)。该搜索引擎是 SearXNG 搜索引擎的一个实例,该搜索引擎是一个免费的互联网元搜索引擎,它汇总了来自 70 多种搜索服务的结果。既不跟踪也不分析用户。

图6:SearXNG搜索引擎

下一步是包含旨在下载二进制文件的 PowerShell 命令。PowerShell 虽然是 Windows 环境中合法且功能强大的工具,但由于其多功能性和深度系统集成,经常被攻击者利用。使用此类脚本下载和执行二进制文件是各种类型的网络攻击(包括恶意软件分发和系统利用)中的常见策略。

图 7:sellpass-sdk setup.py

如上所述,我们可以看到“python.exe”信息窃取程序托管在恶意域的“主题”文件夹下。

下面,您可以找到包感染流程。

图 8:包装感染流程

当用户下载并安装包作为其项目的组件时,将自动执行 setup.py 文件。这会触发一个新进程的创建,该进程执行 PowerShell 命令来下载和运行恶意软件。

此时,受害者的机器被“Blank-Grabber”信息窃取程序感染,该窃取程序会泄露数据并将其发送到特定的 Discord Canary 链接。

如图 9 所示,攻击者试图将该文件伪装成名为 Find.exe 的合法 Microsoft 软件。

图 9:CFF 资源管理器中看到的 python.exe 可执行文件详细信息

对二进制文件的静态分析显示,这确实是 Blank-Grabber 信息窃取程序的一个版本。

图 10:Blank-Grabber 恶意软件的证据

我们在分析过程中观察到的另一件事是攻击者使用的 Discord Canary 令牌,用于接收 Discord 令牌、浏览器 cookie 和密码、roblox cookie 等信息。

图 11:Discord Canary 代币

恶意软件感染的后果

正如之前讨论“Blank Grabber”信息窃取程序的博客文章中所强调的那样,这种感染可能导致各种安全漏洞,包括:

  • 盗窃凭据和会话 cookie,以及访问加密货币钱包;
  • 监控设备屏幕;
  • 未经授权访问和控制网络摄像头;
  • 本地或公司网络遭到破坏;和
  • 实现多种机制来维护受影响系统上的持久性。

总结

这些策略表明,利用 Python 社区中用户的信任和习惯是经过深思熟虑的努力。它强调即使在与看似合法的来源互动时也需要保持警惕。用户必须仔细检查包名称、作者和其他元数据,尤其是在处理关键或敏感项目时。此外,这种情况强调了存储库维护者和社区在监控和报告此类恶意活动以保护生态系统方面的重要性。

IOC

Domain

o5[.]gg

SHA256

3c36679cd4fb92ab0d39daf1c38cd82c4d7da7c6fee625acefd32fe5d34d3254
0972d0187bfba602c9f595265b623d4b3bf230b1fa15fb9b0a49ad45fc61c9d9
a80a6fa38f6bc2d471ed3c17a7bbdaa57f399417f8031434ece9b6c7ca117a2f
db1be9d1a3648c2ee780184a47611fb1adeb18ef5839bd9e8f2a96775fce34a8
069c289b998f71ca5f494253d948884d50f44b63631535b8ab69d290333a017a
cbdbd657a88273206d14d8a674edaa48004c19afd4ce8c4f984e17e66ec142e6
3de1b08578db4a38341c3f0e7b2930a254581b7b3955d1ce9bfac042ce7d8bef
b036d7530539d9e61702cbf43cda2ddcce9ad8d008bbb48af62c7c6e8a308ca8
b56fa761ac05750a6c069058e6bec06cfbb57649e7919b55a3ec411976b153b7
d4a8b7c9a5cce10fca7b6cb6d0055ed75f5c152ab86de6118800321ced940067
bfbcce170d4951b8bb355104a0f2a9f875372a348ebb0a4455621561df74d5ae

参考链接:https://www.imperva.com/blog/blank-grabber-malware-in-pypi-package/

图片来源网络目标可联系删除

相关文章

Mallox勒索软件新Linux变种现世
伪装成破解程序和商业工具的新型恶意软件正在传播
Orcinius后门新样本分析
Poseidon窃取程序通过Google广告感染Mac用户
大选开始之际,欧盟各政党遭受 DDoS 攻击
微软2024

发布评论