1.CloudGuard Spectral 在 PyPI 上检测到 10 个恶意包,pypi 是 Python Package Index 的首字母简写,其实表示的是 Python 的 Packag 索引,这个也是 Python 的官方索引;
2.恶意程序包安装信息窃取程序,使攻击者能够窃取开发人员的私人数据和个人凭据;
3.一旦检测到,CPR 就会披露这些信息并提醒 PyPI 这些包裹,稍后将被 PyPI 删除;
4.CPR 敦促用户注意这些包裹。
PyPI 是领先的 Python 存储库,是 Python 用户最常用的存储库。每个 Python 开发者都熟悉“pip install”日常程序,以提供他们所需的python软件。
Pypi 帮助开发人员查找和安装由该社区其他开发人员开发和共享的软件。该平台目前是免费的,开发人员每天都使用该存储库。截止目前,Pypi有超过612240名活跃用户,参与391325个项目,发布了3664724个版本。
许多用户没有意识到这样一个事实,这一简单的命令会使他们面临更高的风险。pip install 命令触发包安装,其中可以包含一个setup.py脚本。此脚本可以包含 Python 片段,以在目标安装程序的计算上完成所需的安装过程。黑客利用该特性将恶意代码作为安装脚本的一部分,这些代码在用户的设备上秘密运行而不被发现。
在这种情况下,必须要做好防护,因为这类攻击通常会获取非常关键的数据点,如密码和Api令牌。此外,此类攻击正在增加。一个相关的例子是最近的pygrata攻击,恶意软件包被用来窃取AWS(亚马逊网络服务)密钥和环境变量,这是供应链攻击的一部分。需要注意的是,攻击者并没有等待,正如你将看到的,相同的攻击者似乎已经生成了针对PyPI用户的新活动。我们检测到的包的详细信息会在本文中进行详细的描述。
Ascii2text是一个恶意程序包,仅通过名称和描述模仿流行的程序包。有趣的是,他们非常聪明地复制了除了发布部分的整个项目描述,从而防止用户意识到这是一个假包。
假冒的ascii2text描述VS原始包描述
包恶意部分在包__init__.py文件中,由setup.py安装脚本导入。__init__.py文件中的代码负责下载和执行一个恶意脚本,该脚本会搜索本地密码并使用discord web hook上传它们。
__init__.py中的恶意代码片段
它下载的恶意脚本
Pyg-utils似乎是最近Pygrata活动的产物,该活动的目的是获取用户的AWS证书。作为setup.py安装的一部分,Pyg-utils会连接到相同的恶意域名(pygrata.com),该域名可能是网络钓鱼攻击的基础设施。有趣的是,Pymocks和PyProto2具有几乎相同的代码,但针对的是不同的域——pymocks.com。Pyg-utils是在15/6发布的,Pyg-utils 于6月 15日发布,Pymocks 和 PyProto 发布的时间较晚(分别为 6月 24 日和 7月4 日)。Pymocks.com域名也是在同一天( 6月 24 日)创建的。因此,假设所有这些包都是由同一个恶意的攻击者制作的,这可能是出于 Pyg-utils 隐藏并决定复制并重新触发他们的恶意活动这一事实的动机。
Pyg-utils恶意的setup.py文件出现在几乎相同的pymock和PyProto2文件旁
Test-async在其描述中被描述为“非常酷的测试包,非常有用,每个人都需要100%的测试”。在它的setup.py安装脚本中,它从网上下载并执行可能是恶意的代码。有趣的是,在下载该片段之前,它会通知 Discord 频道“新运行”已开始。
测试async setup.py安装脚本
Free-net-vpn和Free-net-vpn2是针对环境变量的恶意包。在setup.py安装脚本中有一个干净的、有文档记录的代码,以获取用户的凭证(甚至黑客也在关注代码标准)。然后,这些秘密被发布到动态DNS映射服务映射的网站。
free-net-vpn setup.py 安装脚本
zlibsrc 包可能试图将合法用户与流行的 Python 内置 zlib 包混淆。在其 setup.py 脚本中,它会在安装过程中下载并运行恶意文件。
Zlibsrc __init__ . py脚本
Browserdiv 是一个恶意程序包,其目的是通过收集安装程序凭据并将其发送到预定义的不和谐 webhook 来窃取安装程序凭据。有趣的是,虽然根据它的命名,它似乎针对与网页设计相关的编程(bowser、div),但根据它的描述,该软件包的动机是允许在 discord 中使用 selfbot。
Browserdiv setup.py安装脚本
一个恶意的包,窃取用户的凭证作为其setup.py安装脚本的一部分,有趣的是,根据其描述,它是一个“利用 windows RPC 漏洞的包”,实际上它只是窃取了安装程序的凭据。
WINRPCexploit setup.py安装脚本
供应链攻击旨在利用组织和外部各方之间的信任关系。这些关系可能包括合作伙伴关系、供应商关系或第三方软件的使用。攻击者会破坏一个组织,然后向供应链上游扩散,利用这些可信的关系进入其他组织的环境。近年来,这样的攻击变得越来越频繁,影响也越来越大,因此,开发人员必须确保他们的行动是安全的,反复检查使用中的每一个软件成分,尤其是从不同的存储库下载的软件,特别是那些不是自己创建的。
参考及来源:https://research.checkpoint.com/2022/cloudguard-spectral-detects-several-malicious-packages-on-pypi-the-official-software-repository-for-python-developers/