数百个下载能够传播 Rootkit 的恶意 NPM 软件包

供应链安全公司 ReversingLabs 警告称,最近观察到的一次恶意活动依靠拼写错误来诱骗用户下载恶意 NPM 软件包,该软件包会通过 rootkit 感染他们的系统。

该恶意软件包名为“node-hide-console-windows”,旨在模仿 NPM 存储库上合法的“node-hide-console-window”软件包,首次出现于 8 月底,但已积累了 700多个删除之前 下载。

为了确保恶意包与合法包难以区分,威胁行为者不仅模仿了包名称,还模仿了存储库内容,发布了十个版本的代码,与真正的“node-hide-console”相同-窗户'。

执行后,恶意代码将从远程位置获取可执行文件,该可执行文件是 DiscordRAT 2.0 的副本,这是一种开源远程访问木马 (RAT),声称其创建“仅供教育用途”。

设置完成后,DiscordRAT 会在关联的 Discord 服务器中创建一个频道,然后等待来自其操作员的其他命令。RAT 可以从受感染的系统中窃取信息,可以禁用安全程序、杀死进程、阻止使用鼠标和键盘,甚至关闭系统。

ReversingLabs 对此次攻击中使用的恶意软件变体的分析还显示,其中包含对新命令的支持,该命令允许威胁行为者在受害者的系统上启动旧版本的 r77 rootkit。

r77 是一种开源恶意软件,易于部署,可以与其他软件捆绑在一起,并且可以通过两个注册表子项(一个用于可执行路径,另一个用于恶意软件进程)隐藏其在系统上的存在。

据 ReversingLabs 称,该恶意软件包的所有 10 个版本都下载了提供 DiscordRAT 2.0 的相同可执行文件,而 DiscordRAT 2.0 又可以执行 r77 rootkit。RAT 还包含删除 rootkit 的命令。

该恶意软件包的最新两个版本还包含用于获取 PyInstaller 编译的可执行文件的代码,该可执行文件为 Blank-Grabber 信息窃取程序提供服务。

恶意“node-hide-console-windows”软件包已从 NPM 存储库中删除。

对开源开发者的威胁

尽管威胁行为者努力使恶意软件包看起来值得信赖,但该活动并没有表现出复杂的迹象,特别是考虑到使用了很容易检测到的开源恶意软件,但其造成的威胁不应被低估。

无论这次活动的复杂程度如何,这些软件包都凸显了潜伏在 NPM 或 PyPI 等公共存储库以及 GitHub 上的始终存在且不断增长的危险。像 Rootkit 这样危险和具有侵入性的东西对每个人来说都很容易获得,并且有详细的记录,并且随时可以使用。

这次攻击突显了开发人员在没有首先彻底验证开源软件包的情况下信任开源软件包时所面临的风险。

从大多数包管理器安装任何软件包,基本上都会运行作者编写的代码。这给软件包开发者带来了很大的信任,而这种信任可能会被滥用,从而使威胁行为者能够危害任何下载和安装该软件包的系统,”洛哈尼在一封电子邮件评论中说。

此次活动再次表明威胁行为者对开源环境越来越感兴趣,这使得他们能够发起有影响力的供应链攻击。

开源软件包是全球分布的许多企业软件系统的基础,也是供应链安全近年来成为优先事项的原因之一。保护这些环境的网络安全技术必须覆盖每个位置、每台设备上的每个用户。

下载恶意软件包并感染 r77 rootkit 的开发人员应该重新安装系统,以删除任何恶意软件。

由于 r77 是无文件 rootkit,并且框架可能在部署之前已被修改,因此按照灾难恢复协议重新映像受影响的设备通常更安全。强烈建议将适当的日志发送到不可变的日志存储服务,这有助于蓝队搜索和识别可能受影响的系统。

保持对开发环境中使用的所有依赖项的可见性至关重要,以有效补救任何攻击。

团队需要保留一个强大而准确的库来记录安装的软件包,以便他们可以快速返回并删除已被破坏的库或恶意拼写错误的库,因为这是一个手动过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/127167.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

abp中iquery类使用orderBy接口功能报错问题

在后端写排序时,当使用如下OrderBy(排序字段)时,只引用System.Linq时如下错误: 只是因为缺少一个引用:System.Linq.Dynamic.Core  在如下类文件中引用 System.Linq.Dynamic.Core  注意:切记不能删掉System.Linq的引…

【已解决】RuntimeError Java gateway process exited before sending its port number

RuntimeError: Java gateway process exited before sending its port number 问题 思路 🎯方法一 在代码前加入如下代码(如图): import os os.environ[‘JAVA_HOME’] “/usr/local/jdk1.8.0_221” # 记得把地址改成自己的 …

使用Java语言深度探索数据结构中的单向链表:完美结合详解与示例代码

版本说明 当前版本号[20231007]。 版本修改说明20231007初版 目录 文章目录 版本说明目录2.2 链表1) 概述定义简单分类随机访问性能插入或删除性能 2) 单向链表头部添加循环遍历while遍历for 遍历迭代器遍历匿名内部类转换为带名字的内部类 尾部添加递归遍历 根据索引获取寻…

阿里云轻量应用服务器流量价格表(计费/免费说明)

阿里云轻量应用服务器套餐有的限制月流量,有的不限制月流量,限制每月流量的套餐,如果自带的免费月流量包用完了,流量超额部分需要另外支付流量费,阿里云百科aliyunbaike.com分享阿里云轻量应用服务器月流量超额收费价格…

【虚拟机栈】

文章目录 1. 虚拟机栈概述2. 局部变量表(Local Variables)3. 操作数栈4. 动态链接4.1 方法的调用:解析与分配 1. 虚拟机栈概述 每个线程在创建时都会创建一个虚拟机栈,其内部保存一个个的栈帧(Stack Frame),对应着一次…

趣味工具箱小程序源码

趣味工具箱小程序源码,支持功能去水印,精选壁纸,图片压缩,文字生成二维码,图片加水印,模拟来电,手持弹幕,掷骰子…等 使用小工具,一个小程序有几十个功能。 源码下载&am…

Linux高性能服务器编程 学习笔记 第十一章 定时器

网络程序需要处理定时事件,如定期检测一个客户连接的活动状态。服务器进程通常管理着众多定时事件,有效地组织这些定时事件,使其在预期的时间被触发且不影响服务器的主要逻辑,对于服务器的性能有至关重要的影响。为此,…

STC89C51基础及项目第10天:LCD显示字符(非标协议外设)

1. 初识LCD1602(233.79) 非标协议外设 LCD1602显示 LCD1602(Liquid Crystal Display)是一种工业字符型液晶,能够同时显示 1602 即 32 字符(16列两行) 引脚说明 第 1 脚: VSS 为电源地第 2 脚&#xff1…

模拟滤波器的基础知识和设计

信号处理工作中滤波器的应用是非常广泛的,可以分成模拟滤波器和数字滤波器两种,数字滤波器主要包括两种,IIR和FIR,这两种滤波器后面统一说,今天先来说一说模拟滤波器(主要是我先用Python实现了Matlab书里面…

【SQL Server】表死锁/解锁和sql语句分析

文章目录 表死锁查询锁的进程解锁 sql语句分析来源 表死锁 查询锁的进程 1 首先创建一个测试用的表: CREATE TABLE Test ( TID INT IDENTITY(1,1) ) 2 执行下面的SQL语句将此表锁住: SELECT * FROM Test WITH (TABLOCKX) 3 通过下面的语句可以查看…

Docker搭建MySQL8.0主从复制(一主一从)

0. 配置说明 宿主机使用的版本为19045的win10专业版,MySQL使用的是8.0,Docker容器使用Linux。 1. 安装Docker Desktop 略 修改Docker默认安装路径 安装包自己就提供了修改安装路径的功能,CMD中运行: “Docker Desktop Installe…

Django 前端模板显示换行符、日期格式

linebreaksbr 显示换行符 <td>{{ data.sku_list|default:"无"|linebreaksbr }}</td> date:"Y年m月d日 H:i" 设置日期格式 <td>{{ data.submit_time|date:"Y年m月d日 H:i" }}</td> 其他语法 forloop 获取循环的索引 …