【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

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

关注

评论

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

一个关于SDWAN单臂部署方案验证的实验

天翼云开发者社区

网络

深度解析:DAO的7种常见投票机制

TinTinLand

LinkedHashMap 源码分析-访问最少删除策略

zarmnosaj

5月月更

如何挑选文档管理软件?

小炮

文档管理

月薪 30K 以上的程序员都在学啥?附书单合集

C++后台开发

后端开发 Linux服务器开发 C++后台开发 Linux后台开发 后端开发书籍

NVIDIA安培架构下MIG技术分析

天翼云开发者社区

Neo生态| Polaris Launchpad 黑客松评审现已启动

TinTinLand

10分钟弄懂云原生网络功能,快来瞧瞧!

VoltDB

云原生 云原生网络 网络功能

Apipost 多人多角色实时协作 爆赞!!!

Xd

数据库 后端 接口测试 API

uniapp 和 HTML5 区别

CRMEB

PolarDB-X迎来开源后首个重大版本升级,2.1版本新增5大特色功能

阿里云数据库开源

数据库 阿里云 开源 国产数据库 PolarDB-X

分享ApiPost的个人体验感受

Xd

后端 API

乌卡时代来临,企业供应链管理体系的应对策略

数商云

数字化转型 供应链

阿里云云原生一体化数仓入选 2022数博会“十佳大数据案例”

阿里云大数据AI技术

数据挖掘 大数据 分布式计算 数据处理 MaxCompute

Apipost 6.0.4版本 支持离线使用

Xd

后端 接口测试 API

第二章 启航

Geek_古藤模根

图数据库实战 gremlin 入门 Gremlin

一个轻量的数据库数据告警器

山河已无恙

Java 数据监控

网络空间测绘国内外发展及现状

郑州埃文科技

网络安全 IP地址 网络空间测绘技术

用开源github,还是咱中国自己的代码托管平台云效?

阿里云云效

GitHub 云计算 阿里云 代码管理 代码托管

EAM与ERP有什么区别?

低代码小观

资产管理 企业管理系统 ERP CRM系统 ERP系统

在线二进制转文本字符工具

入门小站

工具

未来3年,远程办公或成普遍现象,如何提高远程办公效率?

WorkPlus

两分钟带你体验ApiPost的魅力!

Xd

自动化 接口测试 API

喜讯|旺链科技成为TBI数字藏品项目组首批成员

旺链科技

区块链 产业区块链 数字藏品

在线HTML转PHP工具

入门小站

工具

你会用Apifox写断言吗?

Liam

测试 Postman 自动化测试 测试工具 测试自动化

照亮旷野的,是少年开发者眼中的炬火

脑极体

直播预告 | PolarDB-X 动手实践系列——基于 Prometheus + Grafana 的 PolarDB-X 监控体系

阿里云数据库开源

数据库 阿里云 开源 PolarDB-X 教学

netty系列之:在netty中使用UDP协议请求DNS服务器

程序那些事

Java Netty 程序那些事 5月月更

明源云天际PaaS平台,构建零代码、低代码在线协同开发实践

科技热闻

linux之xargs使用技巧

入门小站

Linux

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