一场历时三周、月下载量 8 亿次的精密「围猎」上周Axios 供应链投毒事件震动了安全圈。新闻已经铺天盖地攻击者是具有国家背景的朝鲜黑客组织 UNC1069。但比起是谁做的大家更应该关注的是他们是怎么得手的。这不再是简单的暴力破解而是一场极具耐心、针对信任链路的武器化攻击。UNC1069 花费了整整三周时间在 LinkedIn 上伪装身份、洽谈合作、甚至配合维护者的档期开视频会议最终通过伪装的视频会议工具恶意载荷 FLATDIRT攻陷了首席维护者的权限。可怕的不是黑客组织的名字而是他们已经洞悉了软件供应链防御的结构性盲区开发者盲目信任官方镜像站。CI/CD 流程盲目信任package.json。企业安全团队则陷于「出事后才拿清单人肉排查」的被动响应循环。攻击全链路分析朝鲜国家级供应链猎手 UNC1069UNC1069是一个具有朝鲜国家背景、以经济目的为核心驱动的高级持续威胁APT组织。UNC1069 并不是第一次出现在供应链攻击的视野里。塞讯智能安全验证平台的攻击库中当前已追踪了 UNC1069 的十多个攻击动作其中包括本次事件中被确认使用的三个工具WAVESHAPER.V2跨平台远程访问木马RAT支持 Windows / macOS / Linux通过 postinstall 钩子触发、反取证自删除FLATDIRT初始入侵阶段的恶意载荷投递工具被用于社工场景中的「技术故障修复文件」伪装LONGWAIT持久化等待模块感染后静默驻留、等待最优时机窃取高价值凭证这三个工具的组合勾勒出了一个完整的攻击路径社工建立信任 → FLATDIRT 投递载荷 → WAVESHAPER.V2 建立远程控制 → LONGWAIT 等待并窃取 npm 凭证 → 劫持账号发布恶意版本。这不是一次机会性犯罪。这是 UNC1069 长期积累的供应链攻击经验在一个高价值目标上的定向执行。目前塞讯安全实验室已完成对本次攻击全链路的深度解析与复现。塞讯智能安全验证平台用户现可利用平台的实战化验证能力亲自度量企业防线对该组织典型对抗手段的真实拦截效能。社工全链路他们是怎么拿到 npm 账号的理解这次攻击真正令人震惊的地方需要把时间线完整地看一遍。Axios 首席维护者 Jean Burellier 的遭遇是 UNC1069 社工手法的完整缩影值得注意的是Jean 并不是唯一的目标。同一时期UNC1069 同步接触了多位 Node.js 生态顶级维护者Pelle WessmanMocha 测试框架维护者遭遇伪装 Streamyard 的钓鱼会议Matteo CollinaNode.js 技术委员会成员在 Slack 上收到疑似社工消息险些中招Scott Mottedotenv 创建者被接触dotenv 每月下载量超 5000 万次John-David DaltonLodash 创建者同期被盯上Lodash 每月下载量超 4 亿次UNC1069 这一轮同时接触的维护者项目加在一起的月下载量超过8 亿次。为什么开源维护者成了战略目标UNC1069 的选择有清晰的战略逻辑。传统网络攻击的逻辑是攻陷一台机器 攻陷一台机器。而供应链攻击的逻辑是攻陷一个维护者账号 自动继承那个账号背后所有用户的信任。Axios 每周下载量近 1 亿次。这意味着一次账号劫持可以在短短几小时内向全球数百万个正在执行npm install的开发环境静默植入后门——没有漏洞、没有入侵只是一次「正常的依赖更新」。这是从「逐个钓鱼」升级到「劫持分发管道」的本质转变。攻击者已经清楚软件分发管道是整个互联网最大的信任放大器之一。开发者信任官方 registryCI/CD 信任package.json生产环境信任 CI/CD——每一层都默默把上游的信任传递给下游没有人在中间插一个问号。而UNC1069 的耐心则让这套攻击更加难以察觉。三周慢慢聊不催、不露馅等你完全放松警惕。Socket 研究人员对这种手法给出了精准的描述「这不是一键上钩而是你根本不知道自己正在被猎。」这类攻击只会越来越多企业需要的是预设好的防御体系虽然我们回答了「UNC1069 是谁、怎么打的」。但这里有一个令人不舒服的现实即使我们把 UNC1069 分析得再透彻明天还有下一个组织后天手法会更精密。情报感知永远比攻击慢半拍靠「看到威胁再响应」的逻辑注定是被动的。这次 Axios 事件还暴露了一个更深的问题对于大多数企业来说恶意包进没进来、是哪个版本、影响了哪些项目——这些问题的答案来自于事后人工排查而不是一个随时可以查询的系统。这就是软件供应链防御的结构性盲区感知是被动的防御是事后的开发侧的依赖引入几乎没有管控。真正有效的防御不是应对某一次具体攻击而是建立一套「在攻击者得手之前防线已经挡在那里」的闭环体系。塞讯四层防御体系感知 — 拦截 — 盘点 — 治理Layer 1威胁情报实时感知核心问题这个包现在安全吗3 月 31 日上午 11:19塞讯高级持续威胁情报智能平台完成对axios1.14.1的威胁标注早于 npm 官方 41 分钟。情报精度达到包名 版本号级别——不是 “axios” 可能有问题」而是 “1.14.1是恶意的1.14.0是干净的” 两者的处置逻辑完全不同。从恶意包到 C2 域名、攻击 IP 的完整关联也同步收录——一张详情页看清整条攻击链支持封禁和溯源。在 UNC1069 场景下的价值维护者账号被劫持的那一刻你无法阻止。但情报收录之后的每一次 npm install都可以在被告知的同时被保护。Layer 2制品下载节点拦截情报的价值是「被保护」而不只是「被告知」。软件供应链安全网关以反向代理模式部署在企业制品仓库Nexus / JFrog Artifactory与公共包源npm / PyPI / Maven之间。开发者无需改变任何工作流npm install照常执行所有请求流经网关。网关支持两种运行模式可实时热切换检测模式告警包正常通过适合开发环境不影响业务拦截模式直接阻断恶意包不落地适合生产 CI/CD 环境在 UNC1069 场景下的价值即使 Jean 的账号已经被劫持axios1.14.1 已经推送到 npm registry——只要网关在 11:19 情报同步后触发拦截任何随后执行的 npm install axios1.14.1 都会在网络层被阻断恶意代码永远不落地于你的开发机或 CI/CD 环境。Layer 3存量资产风险盘点SBOM很多企业在 3 月 31 日面临的第一个困难是这个问题我到底有多少个项目在用 axios是哪个版本在依赖树越来越深、传递依赖越来越多的今天这个基础问题的答案不应该来自人工排查。SBOM软件物料清单把「我用了什么」变成一份可查询的档案。平台支持导入SPDX和CycloneDX两种标准格式导入后自动与情报库比对哪些项目存在受影响版本、风险暴露数量、与拦截告警的交叉印证。在 UNC1069 场景下的价值影响面评估从「小时级人工排查」缩短到「分钟级系统查询」。Layer 4研发行为治理——体系能否真正落地的前提前三层解决的是感知、拦截、盘点。但有一个更根本的问题没有解决如果研发人员绕过了这些控制怎么办这不是假设是日常现实开发者本地配置了npm config set registry https://registry.npm.taobao.org彻底绕过企业网关AI 编程工具如上篇提到的 OpenClaw自动拉取第三方 Skill 文件开发者甚至不知道发生了什么新接入的 CI/CD 流水线忘记配置通过企业代理源前三层做得再好只要「通路」是敞开的等于形同虚设。有效的治理需要强制制品请求经由软件供应链安全网关在网络层或 CI/CD 层面限制直接访问公共源这是拦截能力发挥作用的前提AI 编程工具的 Skill 来源管控Skill 供应链的攻击面正在快速扩大需纳入与代码包同等级别的情报核验体系RBAC 权限分级核心系统严格拦截开发环境仅告警避免安全策略影响研发效率完整审计留痕每次告警、规则变更、白名单操作均自动生成审计记录让事后溯源有完整链路安全能力的边界由你允许什么来决定。情报再准、网关再强如果通路没有管控一切都可以被绕过。治理不是额外的负担而是让前三层能力真正生效的基础。UNC1069 花了三周时间从一条 LinkedIn 私信最终拿到了 Axios 首席维护者的 npm 账号然后用那个账号在几小时内向全球数百万个开发环境推送了恶意代码。整个过程没有漏洞利用没有暴力破解。有的只是耐心、伪装以及对「开源生态信任模型」这个根本性脆弱点的精准理解。这不是最后一次。手法只会越来越精密目标只会越来越多下一个维护者现在可能已经在被接触了。供应链安全的终极护城河不是知道攻击者是谁而是在他们得手之前防线已经挡在那里。