Socket 的威胁研究团队发现了一个复杂的网络钓鱼活动,涉及 175 个恶意 npm 包,累计下载量超过 26,000 次。
该活动被称为“Beamglea”,基于所有软件包的一致工件,代表了对 npm 公共注册表和 unpkg.com CDN 的新滥用,用于托管针对全球 135 多家工业、技术和能源公司的重定向脚本。
这些软件包本身在安装过程中不会执行恶意代码,这使得它们特别阴险,因为它们利用 npm 生态系统作为凭证收集操作的免费托管基础设施。
虽然这些软件包的随机名称遵循重定向-[a-z0-9]{6} 模式,使得开发人员不太可能意外安装,但大量的下载量可能包括安全研究人员、自动扫描器和 CDN 基础设施在披露后对软件包进行分析。
威胁行为者开发了全面的 Python 工具来自动化整个活动,使他们能够创建以采购订单和项目文档为主题的针对受害者的 HTML 网络钓鱼诱饵。
“beamglea” 的起源和含义尚不清楚,但它可能代表攻击者使用的代号或内部参考。
Socket.dev 分析师认为,此次攻击活动是其例行扫描操作的一部分,该操作基于 Safety 的 Paul McCarty 的初步发现,他于 2025 年 9 月 24 日首次发现了该网络钓鱼基础设施。
研究人员指出,与此次活动相关的大多数软件包在撰写本文时仍然有效,这促使人们立即请愿将其从 npm 注册表中删除,同时暂停威胁行为者的帐户。
该活动在技术实施上表现出了惊人的复杂性,代表了供应链滥用技术令人担忧的演变。
在此次披露之前,“beamglea”一词在网上几乎没有出现,这使其成为针对多个关键基础设施部门的组织的特定行动的有效跟踪标识符。
自动包生成基础设施
威胁行为者开发了复杂的 Python 自动化来简化他们的操作,利用 redirect_generator.py 脚本和 PyInstaller 编译的可执行文件以便于部署。
自动化过程展示了专业级的操作安全规划和系统化的受害者定位能力。
核心自动化需要三个输入:名为 beamglea_template.js 的JavaScript模板文件、受害者的电子邮件地址和目标网络钓鱼 URL。
然后,系统通过五步工作流程处理这些组件,从 npm身份验证开始,然后进行模板处理、包创建、发布和 HTML 诱饵生成。
随机包名称生成函数使用由小写字母和数字组成的六个字符的后缀创建唯一标识符,确保每个活动在遵循可识别的重定向前缀模式的同时保持独特。
每个包中嵌入的 JavaScript 有效载荷非常简单但有效。每个 beamglea.js 文件都包含一个 processAndRedirect() 函数,该函数将受害者的电子邮件作为 URL 片段附加,利用了片段出现在 # 符号之后且不会出现在标准服务器访问日志中这一特性。
当钓鱼页面使用受害者的电子邮件地址预先填写登录表单时,这种技术会产生合法性的外观。<自动化程序会生成具有特定商业文档主题的HTML 诱饵,旨在绕过怀疑,使用模仿合法采购订单、技术规格和项目文档的文件名。
所有 HTML 文件的元标记中均包含活动标识符 nb830r6x,从而对分布在 175 个包中的 630 多个生成的诱饵进行一致的跟踪。
该活动被称为“Beamglea”,基于所有软件包的一致工件,代表了对 npm 公共注册表和 unpkg.com CDN 的新滥用,用于托管针对全球 135 多家工业、技术和能源公司的重定向脚本。
这些软件包本身在安装过程中不会执行恶意代码,这使得它们特别阴险,因为它们利用 npm 生态系统作为凭证收集操作的免费托管基础设施。
虽然这些软件包的随机名称遵循重定向-[a-z0-9]{6} 模式,使得开发人员不太可能意外安装,但大量的下载量可能包括安全研究人员、自动扫描器和 CDN 基础设施在披露后对软件包进行分析。
威胁行为者开发了全面的 Python 工具来自动化整个活动,使他们能够创建以采购订单和项目文档为主题的针对受害者的 HTML 网络钓鱼诱饵。
“beamglea” 的起源和含义尚不清楚,但它可能代表攻击者使用的代号或内部参考。
Socket.dev 分析师认为,此次攻击活动是其例行扫描操作的一部分,该操作基于 Safety 的 Paul McCarty 的初步发现,他于 2025 年 9 月 24 日首次发现了该网络钓鱼基础设施。
研究人员指出,与此次活动相关的大多数软件包在撰写本文时仍然有效,这促使人们立即请愿将其从 npm 注册表中删除,同时暂停威胁行为者的帐户。
该活动在技术实施上表现出了惊人的复杂性,代表了供应链滥用技术令人担忧的演变。
在此次披露之前,“beamglea”一词在网上几乎没有出现,这使其成为针对多个关键基础设施部门的组织的特定行动的有效跟踪标识符。
自动包生成基础设施
威胁行为者开发了复杂的 Python 自动化来简化他们的操作,利用 redirect_generator.py 脚本和 PyInstaller 编译的可执行文件以便于部署。
自动化过程展示了专业级的操作安全规划和系统化的受害者定位能力。
核心自动化需要三个输入:名为 beamglea_template.js 的JavaScript模板文件、受害者的电子邮件地址和目标网络钓鱼 URL。
然后,系统通过五步工作流程处理这些组件,从 npm身份验证开始,然后进行模板处理、包创建、发布和 HTML 诱饵生成。
随机包名称生成函数使用由小写字母和数字组成的六个字符的后缀创建唯一标识符,确保每个活动在遵循可识别的重定向前缀模式的同时保持独特。
每个包中嵌入的 JavaScript 有效载荷非常简单但有效。每个 beamglea.js 文件都包含一个 processAndRedirect() 函数,该函数将受害者的电子邮件作为 URL 片段附加,利用了片段出现在 # 符号之后且不会出现在标准服务器访问日志中这一特性。
当钓鱼页面使用受害者的电子邮件地址预先填写登录表单时,这种技术会产生合法性的外观。<自动化程序会生成具有特定商业文档主题的HTML 诱饵,旨在绕过怀疑,使用模仿合法采购订单、技术规格和项目文档的文件名。
所有 HTML 文件的元标记中均包含活动标识符 nb830r6x,从而对分布在 175 个包中的 630 多个生成的诱饵进行一致的跟踪。


