写点什么

最近 Npm 的意外事件暴露了安全漏洞

  • 2018-01-23
  • 本文字数:803 字

    阅读完需:约 3 分钟

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

最近,npm 注册库经历了一次运维的意外事件,导致一些被高度依赖的包变得不可用,比如 require-from-string。尽管这个意外事件非常易于修复,但是它暴露了一个较为严重的安全漏洞,借助该漏洞能够尝试将恶意代码注入到使用npm 的项目中。

按照官方报告的说法,这次意外事件的根本原因在于错误地将名为“floatdrop”的用户移除,并使他们的包无法查找和下载。之所以做出这样的决策是因为发布了一个包含垃圾软件的包,该包中还包含了floatdrop 的合法包 timed-out的 README。因为匹配了 README,所以 npm 的反垃圾系统将 floatdrop 标记为垃圾包,随后导致了移除用户及其所有的包的操作。

npm 快速发现 floatdrop 确实是一个合法的用户,并且他们的有些包被高度使用,所以他们立即采取行动恢复所有的包。但就在这个过程所需的短短时间内,有一些与删除包名称相同的新包发布了,并且安装数目不详。

尽管 npm 的员工确认所有这些上传的替代包并非恶意的,但是这种事件有可能会给 npm 用户的项目注入恶意代码。需要注意的是,npm 确实有一个策略,用来防止发布时间超过24 小时的包被删除掉,其目的在于让其他人无法重用这些包的名字,但是这项策略之前并没有应用到垃圾软件包的删除上。这样做的理由是不想让垃圾软件妨碍合法名称的使用。

作为对这起事件的回应,npm 的员工采取了几项措施,其中最重要的就是对所有删除的包名有一个24 小时的冷却(cooldown)时间,这项策略也包括含有垃圾内容的包。这样的话,通过替换已删除的包来注入恶意代码会变得更困难,但是如果有人试图重用合法的包名的话,这需要npm 的员工在24 小时的时间窗口内恢复该包名。

另外,npm 的员工将会建立一系列的指导文档,让合法包名的误删更加难以出现。读者可以在原始博客文章中了解更多信息。

查看英文原文 Last Npm Incident Uncovers Security Vulnerability

2018-01-23 18:002402

评论

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

Single-Spa构建第一个微前端项目

devpoint

Vue 大前端 6月日更

架构实战营 - 模块 6- 作业

请弄脏我的身体

架构实战营

CSS 选择器总结

编程三昧

CSS html5 大前端 DIV+CSS CSS选择器

「SQL数据分析系列」2. 创建和使用数据库

Databri_AI

数据库 语法

Java语言概述以及环境搭建

若尘

java编程 6月日更

☕【JVM技术探索】重塑虚拟机性能调优计划

洛神灬殇

JVM jvm调优 GC调优 6月日更

Kubernetes手记(10)- POD 存储卷

雪雷

k8s 6月日更

SpringCloud Gateway 路由转发性能优化

黄仲辉

性能优化 动态路由 SpringCloud Gateway JMH性能基准测试

JavaScript学习(二)

空城机

JavaScript 大前端 6月日更

【经验分享】RTC 技术系列之视频编解码

Hanson

音视频

产品开发的过程

Qien Z.

运营管理 6月日更

nacos配置中心模块详解

捉虫大师

nacos 配置中心

中国数字化转型为全球带来机遇

CECBC

Git 各指令的本质,真是通俗易懂啊

xcbeyond

6月日更

《原则》(十三)

Changing Lin

6月日更

(VMware)ubuntu 环境下搭建docker环境

逸少

Docker Docker-compose vmware Ubuntu20.04

模块六作业 - 拆分电商系统为微服务

张大彪

🍃【SpringBoot技术专题】「StateMachine」FSM状态机设计及实现

洛神灬殇

springboot 6月日更 状态机 StateMachine

从零开始搭建一个个人博客网站--Task0

IT蜗壳-Tango

django IT蜗壳教学 6月日更 Datawhale

五种服务部署升级策略,你也许会用的到

架构精进之路

6月日更 服务升级

模块6作业

薛定谔的指南针

架构实战营

架构实战营-模块一作业

rubys_

架构实战营

HarmonyOS的万里长征和万里长城

脑极体

MySQL基础之十一:创建表

打工人!

MySQL 6月日更

新手讲解this

前端树洞

JavaScript 面试 大前端 js

架构师实战营 模块六总结

代廉洁

策略模式怎么玩?

卢卡多多

设计模式 策略模式 6月日更

架构师实战营 模块六作业(拆分电商系统为微服务)

代廉洁

架构实战营

【LeetCode】第一个错误的版本Java题解

Albert

算法 LeetCode 6月日更

【音视频】基于声网的多人视频通话功能建设

轻口味

android 音视频 IM 声网

JAVA设计模式系列--单例模式

加百利

Java 后端 设计模式 单例模式 6月日更

最近Npm的意外事件暴露了安全漏洞_JavaScript_Sergio De Simone_InfoQ精选文章