Node 包管理器索引中的恶意包使用不可见的 Unicode 字符来隐藏恶意代码,并使用 Google 日历链接来托管命令和控制位置的 URL。
该软件包名为os-info-checker-es6,是一个信息实用程序,自本月初以来已被下载超过 1,000 次。
代码安全评估公司Veracode的研究人员发现,该软件包的第一个版本于 3 月 19 日添加到 Node 软件包管理器 (NPM) 索引中,并且是良性的,因为它仅从主机收集操作系统信息。
几天后,作者添加了修改,包括特定于平台的二进制文件和混淆的安装脚本。
5 月 7 日,该软件包的新版本发布,其中包含用于传递最终有效载荷的“复杂 C2(命令和控制)机制”的代码。
Veracode 警告称,撰写本文时 npm 上可用的“ os-info-checker-es6 ”最新版本为 v1.0.8,它是恶意的。
此外,该软件包被列为其他四个 NPM 软件包的依赖项:skip-tot、 vue-dev-serverr、 vue-dummyy和vue-bit - 均作为可访问性和开发人员平台工程工具。
目前尚不清楚这些软件包是否或如何由威胁行为者推广。
在恶意版本中,攻击者将数据嵌入到一个看似“|”的字符串中。然而,竖线之后是一长串不可见的 Unicode 字符,这些字符属于变体选择符补充范围(U+E0100 至 U+E01EF)。
这些 Unicode 字符通常是修饰符,通常用于“在复杂的文字中提供特定的字形变化”。在这种情况下,它们的作用是促进基于文本的隐写术——将信息隐藏在其他数据中。
Veracode 对字符串进行解码和反混淆,以找到复杂 C2 机制的有效载荷,该机制依靠 Google 日历短链接到达托管最终有效载荷的位置。
研究人员解释说,在获取 Google 日历链接后,会检查一组重定向,直到收到该请求的 HTTP 200 OK 响应。
然后,它从事件的 HTML 页面中抓取数据库标题属性,该属性包含指向最终有效负载的 base64 编码 URL。
使用名为 ymmogvj 的函数 , 该 URL 被解码以获取恶意软件有效载荷。研究人员表示,该请求期望在响应正文中接收一个经过 base 编码的第二阶段恶意软件有效载荷,并且 HTTP 标头中可能包含初始化向量和密钥——这表明最终有效载荷可能经过加密。
Veracode还发现有效载荷也是使用eval()执行的。该脚本在系统临时目录中包含一个简单的持久化机制,可以防止多个实例同时运行。
在分析时,研究人员无法检索最终的有效载荷,这表明该活动可能处于暂停状态或仍处于早期阶段。
尽管 Veracode 向 NPM 报告了其发现,但可疑软件包仍然存在于平台上。
原文始发于微信公众号(犀牛安全):恶意 NPM 包使用 Unicode 隐写术来逃避检测
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
https://cn-sec.com/archives/4094021.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论