npm作为全球最大JavaScript包仓库,近年成为钓鱼攻击的重点目标。从钓鱼邮件到账户劫持,从typosquatting到依赖混淆,攻击手段持续升级,供应链安全形势日趋严峻。

钓鱼邮件与账户劫持
攻击者冒充npm官方发送钓鱼邮件,诱导开发者输入账户凭证。获取凭证后,攻击者接管正常包,植入恶意代码。由于开发者对这些包高度信任,影响范围极广。

Typosquatting与依赖混淆
Typosquatting通过注册与流行包名相似的拼写错误包名,等待开发者手误安装。依赖混淆则利用私有包名与公共包名的冲突,在CI/CD管道中植入恶意依赖。
真实案例:node-jsonwebtoken事件
2022年,攻击者劫持了node-jsonwebtoken包,由于原维护者长期未更新,攻击者轻松获得了发布权限。这再次提醒开源维护者:及时响应和安全意识同样重要。

防御建议
开发者应开启双因素认证,定期检查已安装包的来源,使用lockfile锁定依赖版本,并关注安全社区的预警通报。企业层面建议建立内部私有镜像仓库,减少对公共生态的依赖。
OpenClaw—AI研究