Sonatype 是国外一个提供漏洞查找和修复软件的公司,他们最著名的产品叫Nexus,它是Maven的私服。前不久,Sonatype 发现,自2月份以来,多个开源软件存储库被激增的可疑恶意包渗透,并在最近持续蔓延。
本周,我们通过 Sonatype 的自动恶意软件检测系统(Nexus Firewall的一部分)发现了 npm 中130个类型错误包,PyPI 存储库中 12 个恶意包。这些攻击发生的时间相当有趣——当时全世界都在关注俄罗斯-乌克兰危机,各国政府都在敦促组织加强网络安全工作力度,以应对相关的恶意网络事件。
由于大多数专业人员的精力都集中在正在进行的开发上,威胁行为者可能会借此机会更新他们的老策略——从利用恶意仿冒域名渗透开源软件 repo,到利用不会消失的依赖混淆攻击。
首先,对于安全研究团队的成员来说,这是忙碌的一周。我的研究员同事 Ankita Lamba 和 Juan Aguirre 一直在不懈地追踪 npm 和 PyPI 注册表上数百个假冒包的可疑活动,并认真负责地将这些发现报告给repo维护人员。
Collored 与 colored
虽然官方的 colored 是一个“用于终端颜色和格式的简单库”,但本周 Sonatype 识别出的恶意仿冒域名“collored”会在受感染的机器上启动一个恶意可执行文件。
然而,“collored”不会将可执行文件打包到包中,而是制作网站请求到编码rentry[.]co link:
Instead of packing the executable within the package, however, "collored" makes an HTTP request to a hardcoded rentry[.]co link:
rentry[. ]co URL 提供了不一致的网络钩子地址到一个可疑的可执行文件:srv.exe,在我们提交的时候,会被 VirusTotal 上的多个防病毒引擎判定为恶意。
在我们的安全研究数据中,“collored” 被跟踪为 sonatype-2022-1141。
命名的意义:What's in a name?
此外,我们深入研究了一个命名相当神秘的包:在 sonattype -2022-1142 的漏洞数据跟踪中,huehuehuehue 是一个相当奇怪的包,没有已知的用途。攻击者可以连接到它,它包含一个 base64 字符串,用于在您的系统上启动一个攻击者可以连接的绑定 shell。
解码后的代码如下图:
欢迎回来,假冒的“proxy connector"
“aiohttp-socks4”PyPI 包试图重新启动我们上周发现并分析的被木马化的包“aiohttp-socks5”。尽管 PyPI 管理员根据我们发给他们的电子邮件迅速删除了恶意包,但恶意包背后的威胁者似乎坚持要发布第二个版本。
这些包自诩为流行的 Python 异步服务器 AIOHTTP 的“代理连接器”,每周下载量接近 1000 万次:
实际上,这两个包都包含打包成大型 base64 字符串的恶意可执行文件。这些可执行文件是远程访问木马(RATs),能够为攻击者提供对受感染系统的高级监视和远程控制能力。
在我们的漏洞数据中,这两个包被跟踪为 sonatype-2022-1153和sonatype-2022-1044。
在 aiohttp-socks4 内部,清单文件(setup.py)的开头包含base64编码的可执行文件,它是较新版本的木马(在我们报告之前,未在 VirusTotal 看到),Python 代码连接到相同的 C2 服务器(144.24.115[.]170) 之后可以看到我们之前的报告。
用以前的报告解释,C2 服务器根据指纹信息接收,如果恶意软件是第一次在受感染的机器上运行(显示“first_run”字段),服务器会发送进一步的指令(base64编码的有效载荷)到受感染的系统上执行。
request.request 与 requests
接下来是模仿了官方请求包的“request.request”包,被跟踪为 sonatype-2022-1281,如果你看了它的说明,你会觉得它是一个低仿的 PoC 包。
该软件包的第一个版本只是在 Windows 和 macOS 操作系统上打开计算器应用程序。为了防止该包后续的高配恶意版本蔓延,我们及时通知了 PyPI 安全团队,并令其将该包删除:
蔚蓝的假冒 Azure typosquats
此外,我们还发现了8个通过依赖混淆来针对 Azure 开发人员和环境的 PyPI 包:
sdk-cli-v2
sdk-cli-v2-public
azureml-contrib-optimization
azure-cli-ml-private-preview
aml-ds-pipeline-contrib
azure-cli-ml-preview
azureml-contrib-reports
azureml-contrib-jupyterrun
这些包在我们的数据中被跟踪为 sonatype-2022-1143 。
npm充斥着130个仿冒域名,Discord窃取者
作为最大的 Node.JS 注册中心,npm 也遭受了超过 100 个不需要的包的涌入,包括 Discord 窃取者和仿冒域名。
在我们的安全研究数据中,被跟踪为 sonatype-2022-1140,这 130 个仿冒域名为同一个作者在 npm 上发布的,并且包含了我们常看到的依赖混淆代码。
这 130 个仿冒域名(以流行品牌、网站和项目命名)中的每一个都包含相同的代码,用于将基本指纹信息(您的用户名、主机名、IP 地址、操作系统信息等)从您的系统泄露到维护者的服务器:
此外,我们还看到npm上出现了多个名为 alprazolamdiv, discord.js-selfbot-v32, discord.js-selfbot-cloner, 和 discord.js-selfbot-v7 的 Discord 令牌窃取程序。所有此类窃取者都在 sonatype-2022-1145 下进行跟踪:
目前发现是在 npm 上发现了最新发展的可疑 jquery-lh 库,恶意 Roblox cookie 和 Discord 令牌窃取者攻击 PyPI,以及被 Sonatype 识别的 1,200 多个依赖混淆包淹没 PyPI 的攻击活动之后发生的。
鉴于所有这些事件都发生在很短的时间内,以及 2 月份针对 npm、PyPI 和 NuGet 这三个主要repo的垃圾邮件攻击,我们没有理由相信此类针对开源生态系统的攻击会在不久的将来放慢速度。
原文链接:https://blog.sonatype.com/careful-out-there-open-source-attacks-continue-to-be-on-the-uptick?utm_content=bufferf344e&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer
作者 | Axe Sharma
时间 | 2022年3月3日
翻译 | 王瑶
校对 | 堵俊平