写点什么

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

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

关注

评论

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

ZAB 与 Paxos:分布式一致性算法的工程实践与深度对比

异常君

zookeeper 分布式 ZAB PAXOS Java.

IPv6检测指标中的IPv6授权体系是什么意思?(国科云)

国科云

Hype 4 Pro 4.1.19 - 创建动画和交互式的Web内容

Rose

流批一体向量化引擎Flex

Apache Flink

大数据 flink 流批一体

CAD看图软件可以进行标注吗?

在路上

cad cad看图 CAD看图王

鸿蒙Next仓颉语言开发实战教程:订单列表

幽蓝计划

电线电缆行业MES系统:实现智能制造与全流程追溯

万界星空科技

制造业 mes 万界星空科技mes 电线电缆行业 电线电缆mes

简单了解一下数据安全定义以及意义

行云管家

网络安全 数据安全 堡垒机

整合YashanDB数据库与人工智能技术的优势

数据库砖家

苹果macOS 26兼容设备 macos 26完整pkg安装程序

Rose

梁汝波:字节跳动要以持续智能突破,坚定服务产业应用

新消费日报

感谢艾瑞白皮书“点名”,但网易的挖掘机器人真不是“打游戏送的”

网易伏羲

数字孪生 人机协作 网易伏羲 工程机械

怎样做用YashanDB构建企业统一数据管理平台?

数据库砖家

优化YashanDB查询逻辑提高响应速度

数据库砖家

苹果访达Finder增强工具TotalFinder 中文版,让效率提升!

Rose

3D数字绘画和雕刻 Mudbox 2025新功能

Rose

mac苹果设备电量信息实时显示AirBattery免费

Rose

基于生成式物理引擎的AI模型训练方法论

申公豹

人工智能

如何使用CAD看图软件放大图纸文字?

在路上

cad cad看图 CAD看图王

火热报名中丨暨2025第三届中国SRE大会,将于6月26日在上海召开

雅菲奥朗

AI 可观测性 2025SRE大会

【JeecgBoot AIGC】AI知识库实战应用与搭建

JEECG低代码

AI大模型 AI应用 AIGC JeecgBoot

Ae/Pr/视觉特效和转场BCC插件 Boris FX Continuum 2023亮点功能

Rose

Ableton Live 12 Suite v12.2中文版注册机+许可证

Rose

现代财务——智能技术背景下的企业变革

智达方通

全面预算管理 财务管理

怎么才能知道你的Mac的系统性能呢?Geekbench 5性能测试

Rose

动漫与游戏产业用到堡垒机的必要性你知道吗?

行云管家

网络安全 等保 堡垒机 游戏行业

三大 Mac 软件下载站,总有一款适合你!

晨光熹微

四维图新与阿里云达成战略合作,联合打造汽车行业一揽子解决方案

科技汇

AI 技术在图书馆业务中的应用

北京木奇移动技术有限公司

软件外包公司 AI技术应用 图书馆信息化

云原生数据库架构设计指南——基于YashanDB的方案解析

数据库砖家

Ableton Live 12 Suite for mac v12.2中文:音乐制作软件

晨光熹微

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