数千 npm 账号使用域名过期的邮箱,涉及 8494 个包

来源:CSDN博客 | 2022-02-17 12:06:02 |

近日,微软和北卡州立大学的研究人员在进行一个学术研究项目时发现,成千上万的 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,这有助于防止常见的账户接管攻击等。 

快检查你的域名是否过期了?如果是,建议赶快采取行动,相应地避免被攻击的风险。

详情见:https://github.blog/2021-12-07-enrolling-npm-publishers-enhanced-login-verification-two-factor-authentication-enforcement/

关键词: