UAParser.js NPM 软件包每周有 8 万次下载,被注入了恶意软件。

从 NPM 存储库中删除三个复制 UAParser.js 库代码的恶意软件包的故事得到了意想不到的延续——未知攻击者控制了 UAParser.js 项目作者的帐户,并发布了包含以下代码的更新:窃取密码和挖掘加密货币。

问题在于,UAParser.js 库提供了解析 User-Agent HTTP 标头的功能,每周下载量约为 8 万次,并在 1200 多个项目中用作依赖项。 据称,UAParser.js 用于 Microsoft、Amazon、Facebook、Slack、Discord、Mozilla、Apple、ProtonMail、Autodesk、Reddit、Vimeo、Uber、Dell、IBM、Siemens、Oracle、HP 和 Verison 等公司的项目中。

这次攻击是通过黑客入侵项目开发人员的帐户来进行的,当一波不寻常的​​垃圾邮件落入他的邮箱后,项目开发人员意识到出了问题。 开发者的帐户究竟是如何被黑客入侵的,目前还没有报道。 攻击者创建了 0.7.29、0.8.0 和 1.0.0 版本,并在其中引入了恶意代码。 几个小时内,开发人员重新控制了该项目,并创建了更新 0.7.30、0.8.1 和 1.0.1 来解决该问题。 恶意版本仅作为 NPM 存储库中的包发布。 该项目在 GitHub 上的 Git 存储库没有受到影响。 所有安装有问题版本的用户,如果在 Linux/macOS 上发现 jsextension 文件,在 Windows 上发现 jsextension.exe 和 create.dll 文件,建议考虑系统已被入侵。

添加的恶意更改让人想起之前在 UAParser.js 克隆中提出的更改,这些更改似乎是在对主项目发起大规模攻击之前发布的,以测试功能。 jsextension 可执行文件从外部主机下载并启动到用户的系统上,该主机根据用户的平台以及 Linux、macOS 和 Windows 上支持的工作进行选择。 对于Windows平台,除了挖掘门罗币加密货币的程序(使用了XMRig矿工)外,攻击者还组织引入create.dll库来拦截密码并将其发送到外部主机。

下载代码已添加到 preinstall.sh 文件中,其中插入 IP=$(curl -k https://freegeoip.app/xml/ | grep 'RU|UA|BY|KZ') if [ -z " $ IP" ] ...下载并运行可执行文件 fi

从代码中可以看出,该脚本首先检查了freegeoip.app服务中的IP地址,并没有针对来自俄罗斯、乌克兰、白俄罗斯和哈萨克斯坦的用户启动恶意应用程序。

来源: opennet.ru

添加评论