ESLint发布的3.7.2包含恶意软件,开源社区的安全将何去何从
本帖最后由 thrall 于 2018-7-13 14:56 编辑2018年7月12日,一名黑客使用了ESLintnpm账户并发布了包含了恶意软件的版本3.7.2,用户在安装时,恶意代码将会自动执行,访问某个网站同时会把用户的.npmrc文件的内容发送给黑客自己,而在.npmrc文件中一般包含发布到NPM的访问令牌。恶意程序包的版本是eslint-scope@3.7.2和eslint-config-eslint@5.0.2,目前npm已经撤销在2018-07-1212:30 UTC之前发出的所有访问令牌,以及下架了受影响的包,因此,受此攻击影响的所有访问令牌都不再可用。用户应彻底删除对应版本的包及重新获取访问令牌。
事件发生的原因是,npm维护者的账户遭到了黑客盗用,这个维护者在其他站点上也重复使用了他们的npm密码,并且他们也没有在他们npm账户上开启双重身份验证,所以才导致此类事件的发生。
对于这种情况的发生,ESLint团队深表遗憾。同时也希望其他软件包维护者可以从这次事件中吸取经验教训并共同提高整个npm生态系统的安全。为此,为npm软件包维护者和用户提供一些建议:· 软件包维护者和用户应当避免在多个不同的站点上重复使用相同的密码。像1Password或LastPass这样的密码管理器可以帮助解决这个问题。· 包维护者应该开启npm双重身份验证。npm 在这里有一个教程。 · 如果您在使用Lerna,则可以按照此教程进行操作。· 软件包维护者应审核并限制有权在npm上发布的人数。· 软件包维护者应当谨慎使用任何自动合并依赖项升级的服务。· 应用程序开发人员应使用锁文件(package-lock.json或yarn.lock)来阻止软件包自动更新以避免这种损失的再次发生。
这不是开源社区安全事件的第一起,但相信也不会是最后一起,如何杜绝再次发生,开发者除了做好自身安全措施外,选择使用葡萄城成熟的商业软件也是一个不错的选择。最后,让我们祝福他们做的更好。
确实,开源的安全性是评估的重点
页:
[1]