皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

ESLint 组件库的 npm 帐号被盗,并被注入恶意代码

2018年7月12日,一名黑客盗用了 ESLint 项目维护者的 npm 帐号,并使用该帐号发布了两个包含恶意软件的版本更新,用户在安装时,恶意代码将会自动执行,然后访问某个网站,同时会把用户的 .npmrc 文件的内容发送给黑客自己,而在 .npmrc 文件里面一般会包含用户发布到 npm 的 token。

受影响的两个组件库版本分别是eslint-scope@3.7.2eslint-config-eslint@5.0.2,事件发生后,npm 已经撤销在 2018-07-12 12:30 UTC 之前发出的所有 token,以及下架了受影响的包。因此,受此攻击影响的所有 token 都不再可用。用户应彻底删除对应版本的包及重新获取 token。

据 ESLint 团队表示,维护者的 npm 帐号之所以被盗用是因为这个维护者在其他站点上重复使用了他们的 npm 密码,并且他们没有在自己的 npm 帐号上开启双重身份验证,所以导致这次事件的发生。

ESLint 团队也对本次的事件深表遗憾,同时希望其他软件包维护者可以从这次事件中吸取经验教训并共同提高整个 npm 生态系统的安全。为此,他们给 npm 软件包维护者和用户提供一些建议:

  • 软件包维护者和用户应当避免在多个不同的站点上重复使用相同的密码。像 1Password 或 LastPass 这样的密码管理器可以帮助解决这个问题。
  • 包维护者应该开启 npm 帐号双重身份验证。npm 提供了一个教程
  • 软件包维护者应审核并限制有权在 npm 上发布的人数。
  • 软件包维护者应当谨慎使用任何自动合并依赖项升级的服务。
  • 应用程序开发人员应使用锁文件(package-lock.json 或 yarn.lock)来阻止软件包自动更新以避免这种损失的再次发生。

开源社区经常会发生安全事件,开发者和维护者都应从众多事件中吸取教训,有则改之,无则加勉。

参考 https://eslint.org/blog/2018/07/postmortem-for-malicious-package-publishes

转自 https://www.oschina.net/news/97995/eslint-malicious-packages