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 攻击(误植域名)的潜在威胁。通过欺骗毫无戒备的开发者安装一个拼写错误的软件包,攻击者可以将他们的恶意代码向“下游”推送到任何依赖这些“李鬼软件包”的开源项目,从而形成开源软件供应链攻击。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。