写点什么

NPM 中混入了包含恶意后门的包

  • 2018-05-09
  • 本文字数:1008 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

NPM 团队移除了一个伪装成Cookie 解析器的包。这个包里包含一个恶意后门。还有三个依赖它的包也同时被移除了。这个后门让攻击者可以向运行中的服务器注入任意代码并执行。

NPM 报告确认,getcookies包中包含恶意代码,它会分析 HTTP 头,查找类似gCOMMANDhDATAi这样的数据格式。恶意代码里有三个不同的命令:

  • 0xfffe重置代码缓冲区
  • 0xfffa执行缓冲区中的代码,这是通过执行[vm.runInThisContext][2]实现的
  • default把远程代码加载到内存并执行

除了getcookies之外,还有三个包也被从注册中心里移除了:express-cookieshttp-fetch-cookies以及虽然不建议使用但仍然非常流行的mailparser

据 NPM 员工介绍:

发布到 npm 注册中心并且使用恶意模块的包,它们的使用方式都不会触发后门。

不过,这仍然保留了这种可能性,使用恶意包的外部应用程序面临着被利用的风险,或者已经被利用了。

颇让人不解的是,每周仍然有大约 64000 下载量的mailparser包并没有以任何方式使用恶意模块。据 NPM 安全团队介绍,这可以解释成为将来能够完成攻击所做的准备,或者说是为了提高get-cookieshttp-fetch-cookies的知名度,诱导开发人员使用它们。

这份声明在 Node 开发人员中引发了强烈的反响。虽然人们普遍认为,这类问题不是NPM 特有的,但是,有若干评论者指出,NPM 的一些特性让这样的问题更可能发生。尤其是,NPM 包往往较小,而且聚焦于一组缩减的特性,导致一个应用程序要依赖大量的外部模块,经常是成百上千。要审计所有的依赖项,确保它们都合法,这变得异常困难。此外,NPM 允许开发人员通过最小版本表示依赖,如 mailparser@^2.2.0,这意味着,任何更高的版本,只要没有改变主版本号,就被视为可以兼容,就可以运行 npm install进行安装。这进一步增加了依赖审计的难度。

mailparser已经不再维护了,它已经几个月没有更新了。现在还不清楚,像mailparser这样成功的包为什么会有三个新版本包含一个不使用的依赖。事实上,对于发布在 NPM 上包含恶意代码的版本 2.2.1、2.2.2 和 2.2.3, mailparserGitHub 库中没有任何说明这一变化的信息。因此,不知道是mailparser的作者被诱导添加了恶意依赖,还是某个未知的 NPM 漏洞被利用,可以在他不知情的情况下发布新版本。InfoQ 将继续追踪报道,及时披露最新细节。

查看英文原文 Package Containing Malicious Backdoor Makes its Way Into NPM

2018-05-09 19:002808
用户头像

发布了 1008 篇内容, 共 442.3 次阅读, 收获喜欢 346 次。

关注

评论

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

站在“场景化保险”拐点的致保科技,按下了增长“加速键”

Alter

阶跃星辰发布端到端语音接口 Realtime API,理解情绪、随时打断;Dia TTS:生成语音可带笑声、咳嗽声、清嗓子丨日报

声网

让 LLM 来评判 | 基础概念

量贩潮汐·WholesaleTide

LLM

YashanDB知识库|一个 SQL 多个执行计划?绑定参数背后的优化器逻辑别忽略

数据库砖家

数据库·

iVX:图形化编程语言 + IDE,而非传统 “代码平台”

代码制造者

无代码平台

YashanDB 知识库|如何远程连接 YashanDB 数据库?最全工具和方式合集!

数据库砖家

数据库·

程序员「达尔文时刻」:飞算JavaAI如何帮你从「码农」转型「AI架构师」?

飞算JavaAI开发助手

Arthas monitor(方法执行监控)

刘大猫

Java 监控 Monitor Arthas 方法执行监控

BOE(京东方)LTPO技术赋能vivo x200 Ultra 超低功耗解锁专业级影像新体验

爱极客侠

飞算 JavaAI 实战:从零搭建电商系统,代码一键生成!

飞算JavaAI开发助手

【参会有礼】4.26 广州 | 国产开源 AI 数据库技术交流

Apache IoTDB

TiDB 社区第四届专栏征文大赛联合墨天轮火热开启,TiDB 业务场景实战、运维开发攻略两大赛道,BOSE 降噪耳机、大疆手持云台、投影仪、运动手环、礼品卡等重磅礼品等你来拿!

TiDB 社区干货传送门

数据库 运维 分布式数据库 征文大赛 TiDB

YashanDB知识库|JDBC 和 OCI 驱动需要设置字符集吗?其实你可能多虑了!

数据库砖家

数据库·

YashanDB知识库|Quartz调度写布尔值报错?问题关键在于 true/false 与 0/1 的差异

数据库砖家

数据库·

YashanDB|设置了归档日志上限,为什么磁盘还是被打爆了?

数据库砖家

数据库·

飞算 JavaAI 与 Spring Boot:如何实现微服务开发效率翻倍?

飞算JavaAI开发助手

YashanDB知识库|服务端编码是 GBK,为什么升级失败了?这其实是个字符集对齐问题

数据库砖家

数据库·

YashanDB知识库|别名和变量同名就报错?这个“重名陷阱”得避开!

数据库砖家

数据库·

海外加速专线:解锁跨国视频会议,助您畅享畅聊体验

宽炜网络

海外网络专线

YashanDB知识库|BeetISQL 批量插入时报 autoAssignKey 异常?可能是 rowid 惹的祸

数据库砖家

数据库·

智源数据新基建系列Workshop | 从大模型到具身智能

智源研究院

AI在线生成组织架构图!办公效率原地起飞!

职场工具箱

AI 办公软件 AIGC 绘图软件 组织架构图

YashanDB知识库|用 yasldr 导入 LOB 字段,有几种方式?lls 和 lobfile 怎么选?

数据库砖家

数据库·

电信SD-WAN线路的有那些优势

宽炜网络

电信sd-wan

别让工具拖后腿!2025年Top5 AI代码工具,让Java开发效率翻倍

飞算JavaAI开发助手

YashanDB知识库|集成 Druid 连接池时日志报 “token IDENTIFIER start”?问题虽小但有来头!

数据库砖家

数据库·

分析型数据库与事务型数据库?核心差异与选型指南

镜舟科技

OLAP 分析型数据库 OLTP 事务型数据库 数据存储结构

炸裂!推荐一款开源项目集成 Dify 到钉钉

柯杰

钉钉 dify

从代码小白到 Java 高手:AI 工具如何压缩你的学习曲线?

飞算JavaAI开发助手

NPM中混入了包含恶意后门的包_安全_Sergio De Simone_InfoQ精选文章