QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

最近 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:002349

评论

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

区块链十年与传统金融的变化

CECBC

区块链 金融

不同公司产品经理岗位对比

LouisN

关心群众生活,注意工作方法 Jan 15, 2021

王泰

28天写作

Volcano架构设计与原理介绍

华为云原生团队

大数据 AI 云原生 高性能 批量计算

自动量化搬砖套利交易机器人系统软件APP开发

系统开发

一文解析DDD中台和微服务设计

欧创新

中台 微服务 领域驱动设计 DDD

一文带你探究Sentinel的独特初始化

华为云开发者联盟

redis sentinel 框架

“反垄断”来袭,对产业区块链有什么启发

CECBC

市场垄断

为什么我认为 Deno 是一个迈向错误方向的 JavaScript 运行时?

hylerrix

typescript rust nodejs deno V8

敏捷里为何倡导固定迭代周期?

万事ONES

敏捷开发 研发管理 迭代

Kubernetes概念篇:基本概念和术语

xcbeyond

Kubernetes 容器 pod 28天写作 Kubernetes从入门到精通

来不及解释!Linux常用命令大全,先收藏再说

华为云开发者联盟

Linux 编程 命令行 命令

矿机挖矿APP系统模式开发平台

v16629866266

特斯拉自建ERP的背后

明道云

「产品经理训练营」第一章作业

Sòrγy_じò ぴé

产品经理训练营

万字多图 | UML 入门指南

白色蜗牛

Java 程序员 后端 架构设计 UML

架构师训练营W13作业

Geek_f06ede

同事试用期没过就被劝退,我比他还难受

熊斌

职场 成长笔记 28天写作 职场新人

第十三周课后练习

晴空万里

架构师训练营第2期

架构师训练营第十三周作业

李日盛

PageRank

解决div里面img图片下方有空白的问题

德育处主任

CSS html html5 大前端 28天写作

遇到代码缺陷不要慌,马上教你快速检测和修复

华为云开发者联盟

代码 bug 缺陷检测 代码缺陷

区块链科普系列:区块链是什么?

CECBC

区块链

面试官:你真的了解Redis分布式锁吗?

鄙人薛某

redis 分布式锁 线程安全 RedLock

生产者与消费者模式,数组阻塞队列(ArrayBlockingQueue)

李尚智

Java 学习 架构 并发编程

当音乐学博士搞起编程...

程序猿DD

Spring Frame

DevSecOps安全检查清单

啸天

安全 DevSecOps 应用安全

用AI「驯服」人类幼崽,手头有娃的可以试试

博文视点Broadview

人工智能 联邦学习 强化学习 集成学习 技术宅

即构小程序直播组件集成教程

ZEGO即构

古有诸葛亮八卦阵阻敌,今有iptables护网安

华为云开发者联盟

安全 防火墙 网络 iptables 数据包

『CDN』让你的网站访问起来更加柔顺丝滑

古时的风筝

CDN

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