写点什么

ESLint 的 NPM 账户遭黑客攻击,可能窃取用户 NPM 访问令牌

  • 2018-07-16
  • 本文字数:1488 字

    阅读完需:约 5 分钟

7 月 12 日,黑客攻击了 ESLint 维护者的 NPM 帐户,并将带有病毒的 eslint-scope 和 eslint-config-eslint 软件包发布到 NPM 注册表中。带有恶意病毒的软件包在安装时,计算机会自动下载并执行 pastebin.com 代码,然后将含有 NPM 访问令牌的.npmrc 文件内容发送给攻击者。

事件的起因是由于帐户遭到入侵的维护者在其他几个网站上设置的密码和 npm 上的一样,并且没有在他们的 npm 帐户上启用双重身份验证。

对此,ESLint 团队表示:

我们对此表示遗憾,我们希望其他软件包维护者可以从我们的错误中吸取教训并提高整个 npm 生态系统的安全性。

恶意程序包包含在 eslint-scope@3.7.2 和 eslint-config-eslint@5.0.2 中,目前,它们都已经从 npm 中被移除出去了,pastebin.com 在这些包中的链接也已被删除。

npm 也已撤销在 2018-07-12 12:30 UTC 之前发出的所有访问令牌。因此,受此攻击影响的所有访问令牌都不再可用。

受影响的包

  • eslint-scope@3.7,是几个流行包的依赖项,包括一些旧版本的 eslint 和最新版本的 babel-eslint 和 webpack。
  • eslint-config-eslint@5.0 是 ESLint 团队内部使用的配置,在其他地方使用很少。

据报道,受损版本是 eslint-scope 3.7.2,是昨天发布的版本。3.7.1 和 4.0.0 是安全的。如果你昨天已完成 npm 安装,请重置你的 NPM 令牌并再次安装 npm。如果你使用了 eslint-scope 3.7.2、ESLint 4 或任何版本的 Babel-ESLint(尚未更新到 4.0.0),则会受到影响。

如果你运行自己的 npm 注册表,则应删除带有恶意病毒的软件包,它们在 npmjs.com 注册表中已经被删除了。

攻击方式: https://gist.github.com/hzoo/51cb84afdc50b14bffa6c6dc49826b3e

官方建议

  • 软件包维护者和用户应避免在多个不同的站点上重复使用相同的密码,1Password 或 LastPass 这样的密码管理器可以帮助解决这个问题。
  • 包维护者应该启用 npm 双重身份验证,可参照 npm 上的指南( https://docs.npmjs.com/getting-started/using-two-factor-authentication )。
  • 如果你使用 Lerna,则可以按此操作( https://github.com/lerna/lerna/issues/1091 )。
  • 软件包维护者应审核并限制有权在 npm 上发布的人数。
  • 软件包维护者应注意使用任何自动合并依赖项的升级服务。
  • 应用程序开发人员应使用 lockfile(package-lock.json 或 yarn.lock)来阻止自动安装新软件包。

时间线

  • 事件发生之前:攻击者可能在第三方攻击中发现维护者重复使用的电子邮件和密码,并使用它们登录维护者的 npm 帐户。
  • 2018 年 7 月 12 日凌晨:攻击者在维护者的 npm 帐户中生成了一个身份验证令牌。
  • 2018-07-12 9:49 UTC:攻击者使用生成的身份验证令牌发布 eslint-config-eslint@5.0.2,其中包含泄露本地计算机.npmrc 身份验证令牌的恶意脚本 postinstall。
  • 2018-07-12 10:25 UTC:攻击者删除 eslint-config-eslint@5.0.2。
  • 2018-07-12 10:40 UTC:攻击者发布 eslint-scope@3.7.2,其中包含相同的恶意 postinstall 脚本。
  • 2018-07-12 11:17 UTC:用户发布了 eslint / eslint-scope#39( https://github.com/eslint/eslint-scope/issues/39 ),通知 ESLint 团队出现此问题。
  • 2018-07-12 12:27 UTC:包含恶意代码的 pastebin.com 链接被删除。
  • 2018-07-12 12:37 UTC:npm 团队在与 ESLint 维护人员联系后将 eslint-scope@3.7.2 删除。
  • 2018-07-12 17:41 UTC:ESLint 团队发布 eslint-scope@3.7.3 和 eslint-scope@3.7.1 的代码,以便缓存可以获取新版本。
  • 2018-07-12 18:42 UTC:npm 撤销了在 2018-07-12 12:30 UTC 之前生成的所有访问令牌。

相关链接

原始报告: https://github.com/eslint/eslint-scope/issues/39

npm 报告: https://status.npmjs.org/incidents/dn7c1fgrr7ng

2018-07-16 06:311214
用户头像

发布了 83 篇内容, 共 48.5 次阅读, 收获喜欢 187 次。

关注

评论

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

「案例分享」研发效能提升之第一性原理

京东科技开发者

redis flink 研发管理 研发效能 软件开发技术的第一性原理

新发现,新挑战,技术出海的机遇与挑战丨PingCAP DevCon 2022 出海专场

PingCAP

出海

有位大牛终于把珍藏多年的算法视频给分享出来了,总共3.81G

小二,上酒上酒

算法 数据结构与算法 左程云

听说,清华毕业大牛分享出Redis实战视频及文档,共2.3G

小二,上酒上酒

Java redis 学习路线

java培训学习有什么好的方法

小谷哥

干货 | 带你了解 EMC—— 什么是 EMC?

元器件秋姐

电磁兼容 元器件电商 华秋商城 电子工程师 电子科普

大数据培训后找不到工作的原因有哪些?

小谷哥

终于有阿里大牛把困扰我多年的计算机组成原理:网络通信讲明白了

小二,上酒上酒

计算机 计算机原理 TCP协议

Tiktok短视频搬运运营干货技巧

Geek_2d6073

数字化安全生产平台 DPS 重磅发布

阿里巴巴云原生

阿里云 云原生 数字化

Camtasia2023全新版下载及功能介绍讲解

茶色酒

Camtasia2023

前端培训机构需要注意什么?

小谷哥

终于学完阿里架构师推荐413页微服务分布式架构基础与实战笔记

小二,上酒上酒

Java 面试 分布式 微服务

异常检测算法分类总结(含常用开源数据集)

云智慧AIOps社区

人工智能 机器学习 深度学习 异常检测 算法模型

既快又稳还方便,火山引擎VeDI的这款产品解了分析师的愁

字节跳动数据平台

大数据 数据分析

高级Java面试经验总结:多家大厂简历优化+面试题目+面经+薪酬等

钟奕礼

Java 程序员 java面试 java编程

融云全球社交泛娱乐洞察,互联网社交换挡期的「社区产品」机遇

融云 RongCloud

社交 社区

膜拜!华为18级工程师用349页构建高可用Linux服务器,其实并不难

小二,上酒上酒

Java Linux 学习 华为 运维

前端培训程序员失业后就业方向有哪些

小谷哥

三面阿里,被Java面试官虐哭!现场还原真实的“被虐”场景

小二,上酒上酒

面试题 面经 大厂面试 春招

我说用count(*)统计行数,面试官让我回去等消息...

小小怪下士

Java sql 程序员

2023最新FL Studio中文版64位安装包下载教程

茶色酒

FL Studio FL Studio 21

年薪120W的架构师简历你见过吗?java程序员该如何达到?

小二,上酒上酒

学习 架构 简历规划

云原生加速器企业维格表创始人陈霈霖:提供人人可用的数字化转型全新方案,真正驱动组织创新

阿里巴巴云原生

阿里云 云原生 维格表

前端培训学习的前景怎么样

小谷哥

存算一体 VS 存算分离 ,IT发展下的技术迭代

StoneDB

数据库 开源 存算分离 HTAP StoneDB

The camera application scenrios on Wallys DR40X9 ipq4019/ipq4029 industrial 5g router

wallysSK

IPQ4019 ipq4029

WOS新商业操作系统:中国头部SaaS的一次进阶

ToB行业头条

AirServer2023个人免费版本下载

茶色酒

AirServer2023

支持向量机-线性SVM决策过程的可视化

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

荣耀MagicOS 7.0正式发布!打造以人为中心的智慧生活解决方案

荣耀开发者服务平台

手机 系统 安卓 荣耀 honor

ESLint的NPM账户遭黑客攻击,可能窃取用户NPM访问令牌_DevOps & 平台工程_覃云_InfoQ精选文章