NPM 移除 4 个恶意软件包:泄露用户数据已有数月,4 个包分工明确

2020 年 10 月 24 日

NPM 移除 4 个恶意软件包:泄露用户数据已有数月,4 个包分工明确

近日,NPM 移除了多个托管在其仓库中的包,原因是这些包会向远程服务器建立连接并泄露用户数据。


这 4 个包在过去几个月中累计有超过 1000 次下载,直到 10 月 15 日被 NPM 移除。


这 4 个包是:


  1. plutov-slack-client- manifest 中的信息声称是一个“Node.JS Slack 客户端”。

  2. nodetest199- 没有描述。

  3. nodetest1010- 没有描述。

  4. npmpubman- manifest 中的信息声称是“一个关于 Linux shell 登录的简单实现”。


向攻击者的服务器建立一个反向 shell


尽管恶意软件已经被 NPM 曝光和移除,但我依然从 Sonatype 的自动恶意软件检测系统档案中获得了这些包的源代码,就像它曾经在 NPM 下载时一样。


前 3 个包 plutov-slack-client、nodetest1010 和 nodetest199 共享相同的代码。


这些包中包含的非常简单的代码能够在 Windows 和基于 Unix 的系统上运行。


用户安装了这些包之后,这些包的代码会向攻击者的服务器建立一个反向 shell,允许攻击者能够远程访问受害机器。



前 3 个包 (plutov-slack-client, nodetest1010, and nodetest199) 向攻击者的服务器建立了一个反向 shell

来源:BleepingComputer



在这里我发现了一个关键的点,那就是尽管这 3 个包共享相同的代码,但这 3 个包所包含的 manifest 文件(package.json)中关于作者介绍和他们的 GitHub 简介的元数据却完全不同。


很可能,packge.json 中的数据是恶意软件的作者伪造的,或者恶意软件使用属于不同受害开发者的 GitHub 和 npm 账号发布了这些恶意软件包。


向一个远程服务器上传用户数据


列表中的最后一个包 npmpubman 的代码结构和目标完全不同。


它从环境变量收集用户数据,并将这些信息发送到一个远程主机。


由 NodeJS process.env 提供的环境信息会暴露开发者环境的敏感信息,例如 PATH 变量、数据库服务器、端口、API 密钥等等。



恶意软件 NPM 包 npmpubman 向一个远程服务器泄露环境变量

来源: BleepingComputer



尽管 package.json 文件中提供的数据冲突,但很可能这 4 个软件包都是由相同的攻击者创建的。


在实际的场景中,npmpubman 可以被攻击者当作“侦查工具”来使用,收集系统信息,而其它包则是负责在攻击者和受害者的计算机之间建立一个直接连接。


正如 BleepingComputer 观察到的,与这 4 个包有关的不同的 NPM 作者账户已经被 npm 关闭了。然而,开发人员的 GitHub 仓库并没有显示最近托管包的痕迹,尽管 package.json 文件表明了这种可能性。


渗透到开源生态系统中的恶意软件案例一直在增加。就在上个月,我在博客上写了一篇关于 npm 恶意软件 的博文,这些恶意软件没有被发现,一直在公共 GitHub 页面上实时发布用户信息。


通过利用开源社区的信任,攻击者可以将其恶意代码“下流”到任何可能错误地将这些恶意软件包作为依赖包含在他们的应用程序中的开发人员或客户。


Sonatype 在他们的十月份恶意软件包清单中对这些包进行了说明,并追踪到 sonatype-2020-1013。


作者介绍:


Ax Sharma 是一名安全研究员、工程师和技术专栏作家。他的作品和专业分析经常被头部媒体发表,例如 Fortune、The Register、TechRepublic、CIO 等等。Ax 的专长在于漏洞研究、逆向工程、软件开发和 web 应用程序安全。他是 OWASP 基金会和英国记者协会(BAJ)的一名活跃社区成员。


原文链接:


https://www.bleepingcomputer.com/news/security/npm-nukes-nodejs-malware-opening-windows-linux-reverse-shells


2020 年 10 月 24 日 09:001245

评论

发布
暂无评论
发现更多内容

丢弃掉那些BeanUtils工具类吧,MapStruct真香!!!

Hollis

Java 程序员 后端

华为阿里下班时间曝光:所有的光鲜,都有加班的味道

程序员生活志

华为 加班 阿里

微服务的认识

chenzt

架构师训练营第10周

大丁💸💵💴💶🚀🐟

5招详解linux之openEuler /centos7防火墙基本使用指南

华为云开发者社区

centos7 网络安全 防火墙 openEuler 网络环境

不断壮大的电竞生态——英特尔大师挑战赛携手李宁中国选手等你来战!

飞天鱼2017

第十周作业

晨光

如何通过electron构建桌面跨平台音视频应用

ZEGO即构

音视频 Electron RTC

中国计算机软件开发合同纠纷分析报告(2019-2)

朱又生

项目管理 计算机软件开发合同纠纷 风险管理 司法大数据

中国计算机软件开发合同纠纷分析报告(2019-3)

朱又生

项目管理 计算机软件开发合同纠纷 风险管理 司法大数据

第十周总结

晨光

微服务架构

不在调上

原创 | 使用JPA实现DDD持久化- O:对象的世界(3/3)

编程道与术

Java hibernate DDD JDBC jpa

Linux神器strace的使用方法及实践

华为云开发者社区

Linux 运维 工具 后端 Strace

Oracle常用命令

阡陌r

IMC御用设备到底有多强?英特尔携手掠夺者呈现“飞”一般5GHz电竞盛宴

飞天鱼2017

信息管理软件需求分析阶段的实践经验及论述(2010年)

朱又生

项目管理 产品经理 需求分析 用户需求调研

中国计算机软件开发合同纠纷分析报告(2019-1)

朱又生

项目管理 计算机软件开发合同纠纷 风险管理 司法大数据

SpreadJS 纯前端表格控件应用案例:生产采购管理软件

Geek_Willie

软件规模扩张与其组织粒度的进化

superman

中台 微服务 服务化改造

腾讯SaaS千帆对渠道的态度——合作共赢的诚意

人称T客

最右JS2Flutter框架——动画、小游戏的实现(四)

刘剑

flutter 前端 探索与实践

获奖名单公布 | 写作平台八月宠粉福利来袭,参与创作领取限时大奖~

InfoQ写作平台

写作平台 有奖活动 征稿 活动专区

AndroidStudio解决Unknown host 'd29vzk4ow07wi7.cloudfront.net'. You may need to adjust the proxy settings in Gradle

小菜鸟学php

将设计模式应用到日常的curd中-模板方法和装饰器

LSJ

Java 设计 设计模式 装饰器 模板方法

低/零代码的认知误区有哪些?

代码制造者

编程语言 低代码 零代码 信息化 开发应用

第四届IMC再起烽烟 极致性能助战力升级!

飞天鱼2017

快速学习秘诀:费曼学习法

池建强

学习方法

RushPlayer“一键下马”系列之-JavPlayer

flow

SpreadJS 纯前端表格控件应用案例:医疗行业智能报表系统

Geek_Willie

娱乐至穷

北柯

学习 互联网 娱乐 抖音

NPM 移除 4 个恶意软件包:泄露用户数据已有数月,4 个包分工明确-InfoQ