写点什么

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

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

关注

评论

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

什么是软件开发领域的 disruptive innovation

汪子熙

软件工程 软件开发 三周年连更

【Linux】之Jumpserver堡垒机的部署_搭建

A-刘晨阳

Linux 跳板机 三周年连更

程序员失业:现实还是幻想?| 社区征文

断墨寻径

人工智能 三周年征文

sdn网络

乌龟哥哥

三周年连更

大数据集群的部署实例

TiAmo

大数据 集群 三周年连更 开发实例

深入理解vue2.x双向数据绑定原理

不叫猫先生

Vue vue响应式 三周年连更

2023移动端技术探索

轻口味

android 移动端 行业趋势 三周年连更

Selenium操作已经打开的浏览器

IT蜗壳-Tango

三周年连更

Bitmap引起的OOM问题

芯动大师

App 三周年连更 Out Of Memory

【Python实战】Python采集图书信息

BROKEN

三周年连更

多维评测指标解读2022MSU世界编码器大赛结果

阿里云CloudImagine

云计算 编码 编码器 视频云 MSU

基于STM32+华为云设计的智慧烟感系统

DS小龙哥

三周年连更

Qz学算法-数据结构篇(非线性结构、树)

浅辄

数据结构 三周年连更

招商证券与易观千帆达成合作,持续深耕数字化金融

易观分析

金融 证券

Marior去除边距和迭代内容矫正用于自然文档矫正

合合技术团队

人工智能 OCR 识别

大流量时代,如何规划系统流量提升可靠性

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 4 月 PK 榜

干货|SpringBoot JMS(ActiveMQ)API实践应用详解

浅羽技术

Apache 中间件 ​ActiveMQ 消息列队 三周年连更

《详谈·张勇》

石云升

读书笔记 三周年连更

OpenHarmony驱动子系统开发—GPIO

鸿蒙之旅

OpenHarmony 三周年连更

产品质量管理利器,华为云发布CodeArts Defect缺陷管理服务

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

探秘!第四代北斗芯片

江湖老铁

如何在 Linux 中查看正在运行的进程?这三个命令轻松实现!

wljslmz

Linux 三周年连更

Java 中的 null 到底是什么?

Java架构历程

Java 三周年连更

iOS MachineLearning 系列(9)—— 人物蒙版图生成

珲少

从软件哲学角度谈 Amazon SageMaker

亚马逊云科技 (Amazon Web Services)

Amazon SageMaker

Spring Boot之根据数据库连接信息指定分页查询表结构信息

bug菌

Spring Boot 2 spring-boot 三周年连更

【直播回顾】3月银行APP用户体验评测+中国金融业财富管理AI应用分析

易观分析

金融 银行

使用 Vue.js 和 JavaScript 在 Web 应用程序中下载 PDF 文件

海拥(haiyong.site)

三周年连更

一键生成rpc网关服务项目代码,让你轻松实现跨语言、跨平台的服务调用

vison

微服务 Go 语言 gin 代码自动生成 rpc gateway

Git 速查表:初学者必备的 12 个 Git 命令

Se7en

《一文带你读懂:云原生时代业务监控》

后台技术汇

三周年连更

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