写点什么

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:002346
用户头像

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

关注

评论

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

一些前端开发小技巧,超级好用!

秃头小帅oi

程序员接单指南,别被老板看见

高端章鱼哥

边缘计算各领域应用介绍

3DCAT实时渲染

边缘计算

MO干货 | Matrixone-Operator 设计与实现

MatrixOrigin

数据库 云原生 分布式,

form-data 使用指南:从基础到高级应用

Liam

JavaScript 程序员 前端 后端 Form-data

加速博客体验:静态资源优化技巧大揭秘!

快乐非自愿限量之名

Python 前端 网络

和鲸科技闪耀亮相InnoEX2024香港创科展,共话沪港数据合作,引领数据智能革新

ModelWhale

人工智能 大数据 创科展

和鲸科技出席第五届空间数据智能学术会议,执行总裁殷自强受邀发表主题报告

ModelWhale

人工智能 大数据 学术会议

Flink DataStream API 批处理能力演进之路

Apache Flink

大数据 flink 批处理

C++ 异常处理机制详解:轻松掌握异常处理技巧

高端章鱼哥

商品管理运营最全的名词解释

第七在线

数字化转型新篇章:企业通往智能化的新范式

优秀

数字化转型 智能化

推荐一款实用的 Python 库——sjvisualizer

伤感汤姆布利柏

一键修图拯救五一废片!百度搜索推出AI图片助手

科技热闻

构建安全高效的数字货币钱包:开发指南

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

币安链市值管理机器人功能介绍

开发丨飞机丨 @aivenli

2024 Google SEO【全面优化网页体验】

九凌网络

LLM资料大全:文本多模态大模型、垂直领域微调模型、STF数据集、训练微调部署框架、提示词工程等

汀丶人工智能

人工智能 nlp AI大模型 大模型 Prompt工程

软件测试学习笔记丨测试流程管理 jira 系统-测试用例管理

测试人

软件测试

C++ 异常处理机制详解:轻松掌握异常处理技巧

EquatorCoco

c++ 算法

Spring Boot 编写 API 的 10条最佳实践

不在线第一只蜗牛

Java Spring Boot 后端

阿里巴巴商品详情API返回值深度解析:电商数据新纪元

技术冰糖葫芦

API boy api 货币化 API 接口 API】 pinduoduo API

深度解析Partisia Blockchain 的互操作方案:Oracle 服务框架

威廉META

11个Python循环技巧

不在线第一只蜗牛

Python C#

Port:2024 内部开发者门户IDP现状报告

杨振涛

平台工程 内部开发者平台 内部开发者门户

《containerd 系列》了解 containerd 中的 snapshotter,先从 native 开始

公众号:云原生Serverless

云原生 容器化 Containerd

AutoMQ 系统测试体系揭秘

AutoMQ

Java 云计算 云原生 后端 AutoMQ

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