聚焦源代码安全,网罗国内外最新资讯!
翻译:360代码卫士团队
黑客获得对某开发人员npm账户的访问权限并将恶意代码注入一个流行的JavaScirpt库,窃取在项目中使用遭投毒软件包的用户的npm凭证。
遭攻陷的JavaScript (npm) 软件包是 eslint-scope,是有名的 JavaScript 代码分析工具集 ESLint 的子模块。
黑客获得对开发人员 npm 账户的访问权限
从 GitHub 刚刚发布的初步调查结果来看,这起黑客事件发生在7月11日至12日晚上。ESLint 项目成员 Kevin Partington 指出,“我们的一名维护人员确实观测到半夜生成了一个新的 npm 令牌。”Partington 认为黑客利用这个新生成的 npm 令牌在 JavaScript 软件包的 npm 库上推出了 eslint-scope 库的一个新版本 3.7.2。目前该恶意版本已被删除。
恶意代码窃取 npm 凭证
Partington 建议,使用过 esling-scope 的开发人员要注意“这个发布的代码似乎是为了窃取 npm 凭证,因此我们建议可能安装了这个版本的任何人更改 npm 密码并(在可能的情况下)撤销 npm 令牌并生成新令牌。”
npm 的首席技术官 C.J.Silverio 表示,“我们判断认为,约4500个账户的访问令牌可能在关闭这个漏洞前就已经被获得。然而,我们尚未找到证据表明在这个窗口期令牌被真正获取或被用于访问任何 npmjs.com 账户……作为预防措施,npm 已经撤销了在 2:30 pm UTC 之前创建的每个访问令牌。这一措施要求所有 npm 注册用户重新在 npmjs.com 上认证并生成新的访问令牌,但今晨的漏洞无法持久或传播。另外,我们还开展了全面的取证分析以确保其它账户未遭访问或被用于发布未经授权的代码。”
Silverio 还补充道,“今天早晨发生的这起事件并非因 npmjs.com 安全事件所引发,而是因发布人员的 npm 凭证被暴露而引发的其它安全事件所造成。为缓解这一风险,我们鼓励所有 npmjs.com 用户启用双因素认证机制,如能部署,今晨事件本来是不可能发生的。”
账户遭攻陷的开发人员已更改其 npm 密码,启用了双因素认证并生成访问现有 npm 库的新令牌。
这起事件的意义重大,因为被盗 npm 凭证可被用于发动类似攻击。黑客能利用被盗 npm 凭证投毒其它经由 npm 即 Node Package Manager (JavaScript 生态系统的半官方数据库管理器)创建的库。
去年曾发生类似事件
这是继去年以来,黑客第三次在 npm 软件包中插入恶意代码的案例。
2017年8月,npm 团队删除了38个被指从受感染项目中窃取环境变量的 JavaScript npm 软件包。2018年5月,有人在流行的 npm 软件包 getcookies 中隐藏了一个后门。
软件包库中存在恶意软件的类似事件还曾出现在 Python 的 PyPI、Docker Hub、Arch Linux AUR 和 Ubuntu Store 中。
https://www.bleepingcomputer.com/news/security/compromised-javascript-package-caught-stealing-npm-credentials/
领取专属 10元无门槛券
私享最新 技术干货