在 PyPI 上发现 3 个新的恶意包

背景

        我最近开始对 PyPI 上的大部分包进行大规模静态分析。使用Python Packaging Authority 的Bandersnatch,下载 PyPI 上目前可用的近 330k 包中的大约 200k 相对容易。在这项研究中,我小心地排除了过大的发行版,只拉取最新版本的软件包,并配置了较少数量的工作人员以避免对 PyPI 的服务器施加过大的压力。

        一旦我 下载了大量的软件包发行版,我需要提取它们以便于分析。我将一个非常简单的 Python 脚本放在一起,以递归方式遍历 Bandersnatch 有点复杂的文件夹结构,然后将每个 sdist、egg 或轮子解压缩并提取到一个平面目录中。提取后,我使用 grep 运行了许多字符串和正则表达式搜索,然后手动查看结果。

       这种简单方法的结果实际上非常有影响力。我最终在一家商业公司提供的开源包中发现了一个小漏洞。连同托管在 PyPI 上的三个本质上是恶意的包,我将在下面概述。

木马安装包

        我发现的第一个包是aws-login0tool,这似乎是一个拼写错误的尝试(在大多数键盘上就在0旁边-)。我发现这个包是因为它在我查看的多个文本搜索中被标记,因为它是setup.pyPython 包中恶意代码最常见的位置之一,因为在安装时可以在那里执行任意代码。具体来说,我通过查找发现了这一点,import urllib.request因为这通常用于窃取数据或下载恶意文件,它也是由from subprocess import Popen它触发的,这有点可疑,因为大多数包不需要执行任意命令行代码。

        查看文件本身,它显然是恶意的。它执行标准包安装,然后.exe在尝试执行.exe.

        我还分析了相关.exe问题,VirusTotal 能够轻松将其标记为已知木马

        该软件包于 12 月 1 日首次添加到 PyPI,我于 12 月 10 日将其报告给 PyPI 管理员。不幸的是,PyPI 下载统计数据在这段时间内受到了一个事件的影响,但在 12 月 12 日回填后,这个包似乎被下载了近 600 次

数据泄露包

        我还能够找到自 2021 年 2 月以来一直存在于 PyPI 上的同一用户上传的两个包,dpp-clientdpp-client1234。两者都试图实现相同的结果,即在安装期间收集环境详细信息并将其发送到未知的 Web 服务。虽然 VirusTotal 没有标记目标域,但这种行为仍然是粗略的 AF。

       和之前的木马包一样,我也通过import urllib.request字符串识别了这些包。仔细分析后,此安装将尝试收集环境变量、文件列表,并且似乎专门寻找与Apache Mesos相关的文件。

 

        这里的坏消息是dpp-client,这两个软件包中更受欢迎和更彻底的一个在去年的下载量超过了10,000 次,其中上个月的下载量超过了 600 次。更糟糕的是,这两个包都包含了它们的源代码 url 作为现有的流行库,所以任何人在 PyPI 中浏览包或分析库的流行程度都会看到大量的 Github 星和叉——表明良好的声誉。

外卖

         这对我来说是一个非常有趣的项目。即使采用不太科学的方法,并且只分析了 2/3 的可用包,我也很快发现了已发布代码中的实际漏洞,更令人担忧的是发现托管和下载的恶意代码活跃使用。

       随着时间的推移,我将继续更新和完善我对这些包的分析,并将分享任何其他发现。

       非常感谢 Python 安全团队在收到通知后提示删除已识别的包。七爪网源码交易平台_网站源码_商城源码_小程序源码平台_分销商城-七爪网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值