近日,微软和北卡州立大学的研究人员在进行一个学术研究项目时发现,成千上万的 JavaScript 开发者正在使用域名过期的邮箱作为他们的 npm(Node Package Manager)账户,npm 是最大的软件包仓库,这导致诸多开发者的项目很容易被劫持。
2818 个账户使用过期域名,涉及 8494 个包
据悉,此项研究项目最早在去年进行,研究人员分析了上传到 npm 包管理器上的 1,630,101 个库的元数据。其中,研究人员发现有 2818 个项目维护者的账户仍在使用域名过期的电子邮件地址,而部分过期的域名正在 GoDaddy 等域名售卖网站出售。
研究人员认为,攻击者可购买相关的域名,从而在电子邮件服务器上注册这些维护者的地址,然后重置维护者的账户密码接管 npm 包。
此外,由于 npm 社区不会对账户所有者强制执行双重身份验证(2FA),这意味着一旦有心之人在购买过期的域名之后,重置所有者的密码,他们就可以自由地更改软件包。
研究团队在进一步调研之后表示,2818 个维护者账户管理共计 8494 个包,其中平均有 2.43 个直接依赖项,这表明任何攻击也会影响数以万计的其他下游项目。
npm 团队最新措施
在发现这一问题的第一时间,研究团队表示已经将最新的发现反馈给了 npm 安全团队。
npm 团队也在 2021 年 12 月 7 日对外更新了其对 npm 生态系统安全的承诺,并宣布计划分阶段为 npm 维护者账号强制执行 2FA 验证。
即当维护者通过 npmjs.com 网站或 npm CLI 进行身份验证时,将收到一封带有一次性密码 (OTP) 的电子邮件。基于此,用户登录除了用户密码之外,还需要提供此电子邮件 OTP,这有助于防止常见的账户接管攻击等。
快检查你的域名是否过期了?如果是,建议赶快采取行动,相应地避免被攻击的风险。
《新程序员003》正式上市,50余位技术专家共同创作,云原生和数字化的开发者们的一本技术精选图书。内容既有发展趋势及方法论结构,华为、阿里、字节跳动、网易、快手、微软、亚马逊、英特尔、西门子、施耐德等30多家知名公司云原生和数字化一手实战经验!
☞旧 Mac、PC 别送去回收了,变身 Chromebook 了解一下!
☞“开源和商业化不能形成对立!”