艾体宝新闻 | NPM 惊现「幽灵字体」攻击:拆解黑客如何利用 900GB 假字体档瘫痪您的供应链防线

摘要

Mend.io 威胁情报团队于 2025 年 12 月 16 日截获一场极具隐蔽性的供应链攻击行动。一名代号为 sdjkals 的用户正以惊人的速度向 NPM 注册表灌注伪装成 WOFF2 字体档的恶意分片载荷(Split Payloads)。本文将深度剖析这种绕过传统静态检测的「化整为零」战术,并提供 Mend.io 的防御策略,协助企业在黑客组装完毕前斩断攻击链。

引言:当字体档不再只是字体

在常规的开源组件监控中,我们习惯关注可执行代码(.js、.exe、.sh),往往忽视了那些看似无害的静态资源。然而,黑客正是利用了这个盲点。

Mend.io 威胁研究团队近日发现,NPM 用户 sdjkals 在短短数小时内发布了 10 个看似普通的字体包,版本号迅速飙升至 v1.0.1912。这些包内含总计近 900GB 的数据,伪装成标准的 WOFF2 字体文件。但深入分析显示,这些根本不是字体,而是被精心切割、加密的攻击载荷分片。

这不仅仅是一次垃圾数据灌注,这是一场经过精密计算的基础设施滥用(Infrastructure Abuse)与检测规避(Detection Evasion)演练。黑客正在测试如何将 NPM 变成他们的免费 C2(命令与控制)服务器或恶意软件分发网络。

对于技术决策者,这意味着:

  1. 传统防御失效:仅扫描单个包的恶意代码已不足以发现威胁,因为单个分片本身是「无毒」的。
  2. 供应链被武器化:你的构建管道可能正在不知不觉中下载并组装黑客的攻击工具。
  3. 资源消耗风险:频繁的恶意更新将消耗大量的带宽与存储,甚至导致构建服务器瘫痪。

三大核心价值:Mend.io 如何破解「化整为零」的供应链隐形攻击

价值一:识破「分片伪装」—— 跨包关联分析能力

攻击手法:黑客将一个巨大的恶意载荷切割成数千个小文件(如 segment_000128.woff2),分散在 @sdjkals/lib-v1-ifmt、@sdjkals/media-static-pro 等多个看似无关的包中。传统安全工具将每个包视为独立个体进行扫描,由于单个包内只包含「损坏的字体文件」和简单的 package.json,因此很难触发恶意代码警报。

Mend.io 防御机制:Mend 供应链防御(Supply Chain Defender)不只看单个包,而是具备生态系统级别的关联分析能力。我们的算法检测到了跨多个包的异常模式:

  • 文件名序列断层:发现不同包之间的文件名(如 segment_NNNNNN)存在连续性逻辑(Package A 结束于 158,Package B 开始于 283)。
  • 发布者行为指纹:识别出同一用户 sdjkals 在极短时间内对多个包进行高频版本迭代的异常行为。
  • 元数据一致性:所有包均使用通用的 "Assets" 描述与极简结构,这在正常开源项目中极为罕见。

客户价值:Mend 能在黑客「组装」攻击载荷之前,就识别出这些散落的「零件」,提前发出预警,防止恶意软件在你的环境中合体。

价值二:抵御「版本洪水」—— 异常流量与行为阻断

攻击手法:sdjkals 的版本号在极短时间内从 1.0.0 飙升至 1.0.1912。这种「版本洪水」攻击有两个目的:一是掩盖真实的恶意更新,二是利用 NPM 的 CDN 机制进行大规模数据分发(类似于将 NPM 用作免费的云存储)。这会导致企业的代理缓存服务器(Proxy/Cache)被垃圾数据填满,甚至触发上游的速率限制。

Mend.io 防御机制:Mend 提供行为异常检测(Behavioral Anomaly Detection)。

  • 发布频率监控:即时标记出超出正常开发周期的极端发布频率(如每分钟发布新版本)。
  • 体积 / 内容比对:监测到包体积巨大(90MB+)且内容熵值(Entropy)异常高(疑似加密数据)的情况,自动触发隔离策略。

客户价值:保护你的开发基础设施免受垃圾数据轰炸,确保 CI/CD 管道的带宽与存储资源不被滥用,维持构建效率。

价值三:斩断「隐形组装」—— 动态分析与安装拦截

攻击手法:这些分片文件本身不能执行,但黑客的最终目标是通过一个轻量级的「加载器(Loader)」脚本(可能伪装成另一个依赖项),在安装后(Post-install)或运行时将这些 woff2 文件读取、拼接、解密,还原成可执行的恶意二进制文件(如勒索软件或挖矿程序)。

Mend.io 防御机制:Mend 的恶意软件检测引擎结合了静态与动态分析。

  • 策略即代码(Policy as Code):企业可设定规则,自动拦截任何被标记为「可疑基础设施滥用」的包,或禁止安装发布时间极短、未经社群验证的包。
  • 已知威胁情报库:Mend 威胁情报团队已将 sdjkals 及其所有相关包加入黑名单。一旦你的开发者试图 npm install 这些包,Mend 会直接在客户端进行拦截。

客户价值:在攻击发生的最前端 —— 开发者拉取代码时 —— 就进行阻断,确保恶意载荷永远无法进入你的内网或生产环境。

威胁情报案例:sdjkals 攻击行动深度解析

背景:NPM 监控警报触发

时间:2025 年 12 月 16 日 13:02 ET事件:Mend.io 威胁情报系统监测到 NPM 注册表中出现异常流量峰值,源头指向单一用户 sdjkals。

攻击特征分析

  1. 伪装性极强

    • 发布了 10 个包,命名极具欺骗性,如 @sdjkals/lib-v1-ifmt、@sdjkals/media-static-pro、@sdjkals/font-core-v1。
    • 内容伪装成 .woff2 字体文件,文件头包含合法的 WOFF2 魔术字节(Magic Bytes),以此欺骗文件类型检测工具。
    • 但标准字体解析工具无法打开这些文件,二进制分析显示内容可能被加密或使用了非标准压缩。
  2. 分片式架构(Split-Payload)

    • 每个包包含 31-33 个文件,每个文件 2-3MB。
    • 文件名呈现全局连续性,例如:@sdjkals/lib-v1-ifmt: segment_000128.woff2 - segment_000158.woff2...(中间跳过部分编号)...@sdjkals/media-static-pro: segment_000283.woff2 - segment_000313.woff2
    • 这表明这是一个巨大的单一文件被切分后,分散存储于不同包中。唯有将所有包下载并按顺序拼接,才能还原真实载荷。
  3. 基础设施滥用

    • 版本号异常:@sdjkals/data-lib-kernel 已更新至 v1.0.1912。
    • 每几分钟推送新版本,利用 NPM 的版本历史功能存储海量数据。
    • 总计托管了近 900GB 的混淆数据。

潜在危害

这很可能是一次概念验证(PoC)或僵尸网络基础设施的搭建。黑客展示了如何利用 NPM 免费分发大规模恶意软件,而不会触发针对单个小文件的病毒扫描。

结论:别让你的依赖项成为黑客的「云存储」

sdjkals 事件再次证明,供应链攻击的手法正在快速演进。黑客不再只是在代码中写入 eval () 这么简单,他们正在利用生态系统本身的特性 —— 分包机制、版本管理、CDN—— 来构建复杂的攻击链。

面对这种「化整为零」的攻击,传统的漏洞扫描器(只看 CVE)和简单的恶意软件扫描器(只看单文件特征)已完全失效。你需要的是具备全局视野与行为分析能力的新一代 SCA 解决方案。

Mend.io 已经为所有客户拦截了 sdjkals 的攻击路径。我们的 Supply Chain Defender 不仅能识别已知的恶意包,更能透过行为模式发现未知的威胁。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值