Sonatype 研究人员发现并确认了两个新的易受攻击的 npm 软件包。据研究人员介绍,这两个软件包最初由他们的恶意代码自动检测系统 (malicious code detection bots) 发现,这套系统应用了机器学习和人工智能技术,可识别可疑的代码提交、项目更新情况和编码风格,并持续对数百万个开源组件新版本的变更进行评估。在收到检测系统的报警后,其安全研究团队验证了两个 npm 软件包中是否存在恶意代码,并追踪了预期的漏洞利用途径。
这两个软件包分别是:
- electorn
- loadyaml
上面两个软件包的作者为同一个人,除此之外,检测系统还发现了这名作者另外两个没有发布到 npm 中央仓库的软件包:
- loadyml
- lodashs
可以看到,"electorn"和"lodashs"这两个恶意软件包故意将名字拼写错误(对应的正确名称是“electron”和“lodash”),通过冒充合法的软件包并使不知情的开发者可以下载它们。对于部分无意打错字且毫无戒心的用户,他们便会在其开发环境中安装恶意软件包,而不是最初打算下载的软件包。例如,开发者错将“electron”打成“electorn”。
一旦安装了恶意软件包,它们便会按照固定的时间频率在后台运行收集用户 IP 地址、地理位置数据、用户名、home 目录路径和 CPU 型号信息的脚本。
这些信息的一部分构成了设备的指纹信息,被实时上传并发布在 GitHub 公共页面上。虽然部分信息经过了 base64 编码,但任何人都有权限访问这些信息并且可以十分轻松地将其解码。
Sonatype 安全研究团队向 GitHub 和 npm 反馈了此问题,这些恶意软件包目前已被下架。从发布到被下架,这些软件包的下载量总计超过 400 次:
- electorn: 255
- lodashs: 78
- loadyaml: 48
- loadyml: 37
目前尚不清楚恶意软件包作者收集这些数据的目的是什么,为什么将其发布在网络上以供全世界查看。然而,像这样的事件凸显了开源生态中 Typosquatting 攻击(误植域名)的潜在威胁。通过欺骗毫无戒备的开发者安装一个拼写错误的软件包,攻击者可以将他们的恶意代码向“下游”推送到任何依赖这些“李鬼软件包”的开源项目,从而形成开源软件供应链攻击。
猜你喜欢: