文章总结: 文档深度分析了朝鲜黑客组织UNC1069针对Axios库的供应链攻击:通过三周LinkedIn社工获取维护者权限,使用FLATDIRT、WAVESHAPER.V2、LONGWAIT工具链向npm推送恶意版本,月影响超8亿次下载。核心指出软件供应链存在信任盲区,并提出四层防御体系:实时威胁情报、制品网关拦截、SBOM风险盘点和研发行为治理,强调需建立事前防御机制而非被动响应。 综合评分: 85 文章分类: 供应链安全,威胁情报,社会工程学,解决方案,安全运营
没有任何漏洞,黑客是如何接管全球数百万开发环境的?——深度拆解 UNC1069 供应链猎局
塞讯安全验证
2026年4月9日 13:33 上海
一场历时三周、月下载量 8 亿次的精密「围猎」
上周,Axios 供应链投毒事件震动了安全圈。新闻已经铺天盖地:攻击者是具有国家背景的朝鲜黑客组织 UNC1069。
但比起是谁做的,大家更应该关注的是他们是怎么得手的。
这不再是简单的暴力破解,而是一场极具耐心、针对信任链路的武器化攻击。UNC1069 花费了整整三周时间:在 LinkedIn 上伪装身份、洽谈合作、甚至配合维护者的档期开视频会议,最终通过伪装的视频会议工具(恶意载荷 FLATDIRT)攻陷了首席维护者的权限。
可怕的不是黑客组织的名字,而是他们已经洞悉了软件供应链防御的结构性盲区:
-
开发者盲目信任官方镜像站。
-
CI/CD 流程盲目信任 package.json。
-
企业安全团队则陷于「出事后才拿清单人肉排查」的被动响应循环。
攻击全链路分析
朝鲜国家级供应链猎手 UNC1069
UNC1069 是一个具有朝鲜国家背景、以经济目的为核心驱动的高级持续威胁(APT)组织。
UNC1069 并不是第一次出现在供应链攻击的视野里。塞讯智能安全验证平台的攻击库中,当前已追踪了 UNC1069 的十多个攻击动作,其中包括本次事件中被确认使用的三个工具:
- WAVESHAPER.V2:跨平台远程访问木马(RAT),支持 Windows / macOS / Linux,通过 postinstall 钩子触发、反取证自删除
- FLATDIRT:初始入侵阶段的恶意载荷投递工具,被用于社工场景中的「技术故障修复文件」伪装
- LONGWAIT:持久化等待模块,感染后静默驻留、等待最优时机窃取高价值凭证
这三个工具的组合,勾勒出了一个完整的攻击路径:社工建立信任 → FLATDIRT 投递载荷 → WAVESHAPER.V2 建立远程控制 → LONGWAIT 等待并窃取 npm 凭证 → 劫持账号发布恶意版本。
这不是一次机会性犯罪。这是 UNC1069 长期积累的供应链攻击经验,在一个高价值目标上的定向执行。
目前,塞讯安全实验室已完成对本次攻击全链路的深度解析与复现。塞讯智能安全验证平台用户现可利用平台的实战化验证能力,亲自度量企业防线对该组织典型对抗手段的真实拦截效能。
社工全链路:他们是怎么拿到 npm 账号的
理解这次攻击真正令人震惊的地方,需要把时间线完整地看一遍。
Axios 首席维护者 Jean Burellier 的遭遇,是 UNC1069 社工手法的完整缩影:
| 日期 | 事件 | | — | — | | 3 月 5 日 | 在 LinkedIn 上收到陌生人私信,对方自称是 Openfort 公司代表,希望洽谈合作 | | 3 月 5 日 – 22 日 | 双方进行了约三周的正常沟通。对方不催、不急,主动适应 Jean 的档期 | | 3 月 23 日 | 对方发来视频会议邀请链接,界面完全仿照 Microsoft Teams,域名为 teams.onlivemeet.com(真实的 Teams 域名是 teams.microsoft.com) | | 会议中 | 对方称遇到「技术故障」,请求 Jean 下载一个小型修复工具——FLATDIRT 伪装的恶意载荷 | | 此后 | WAVESHAPER.V2 建立远控,LONGWAIT 静默等待,最终在合适时机窃取 npm 凭证 | | 3 月 31 日凌晨 | UNC1069 利用被劫持的账号,绕过 CI/CD,手动发布 [email protected] 与 [email protected] |
值得注意的是,Jean 并不是唯一的目标。同一时期,UNC1069 同步接触了多位 Node.js 生态顶级维护者:
-
Pelle Wessman
(Mocha 测试框架维护者):遭遇伪装 Streamyard 的钓鱼会议
-
Matteo Collina
(Node.js 技术委员会成员):在 Slack 上收到疑似社工消息,险些中招
-
Scott Motte
(dotenv 创建者):被接触,dotenv 每月下载量超 5000 万次
-
John-David Dalton
(Lodash 创建者):同期被盯上,Lodash 每月下载量超 4 亿次
UNC1069 这一轮同时接触的维护者项目,加在一起的月下载量超过 8 亿次。
为什么开源维护者成了战略目标
UNC1069 的选择有清晰的战略逻辑。
传统网络攻击的逻辑是:攻陷一台机器 = 攻陷一台机器。而供应链攻击的逻辑是:攻陷一个维护者账号 = 自动继承那个账号背后所有用户的信任。
Axios 每周下载量近 1 亿次。这意味着一次账号劫持,可以在短短几小时内,向全球数百万个正在执行 npm install 的开发环境静默植入后门——没有漏洞、没有入侵,只是一次「正常的依赖更新」。
这是从「逐个钓鱼」升级到「劫持分发管道」的本质转变。
攻击者已经清楚:软件分发管道是整个互联网最大的信任放大器之一。开发者信任官方 registry,CI/CD 信任 package.json,生产环境信任 CI/CD——每一层都默默把上游的信任传递给下游,没有人在中间插一个问号。
而 UNC1069 的耐心,则让这套攻击更加难以察觉。三周慢慢聊,不催、不露馅,等你完全放松警惕。Socket 研究人员对这种手法给出了精准的描述:「这不是一键上钩,而是你根本不知道自己正在被猎。」
这类攻击只会越来越多,企业需要的是预设好的防御体系
虽然我们回答了「UNC1069 是谁、怎么打的」。
但这里有一个令人不舒服的现实:即使我们把 UNC1069 分析得再透彻,明天还有下一个组织,后天手法会更精密。情报感知永远比攻击慢半拍,靠「看到威胁再响应」的逻辑,注定是被动的。
这次 Axios 事件还暴露了一个更深的问题:对于大多数企业来说,恶意包进没进来、是哪个版本、影响了哪些项目——这些问题的答案,来自于事后人工排查,而不是一个随时可以查询的系统。
这就是软件供应链防御的结构性盲区:感知是被动的,防御是事后的,开发侧的依赖引入几乎没有管控。
真正有效的防御,不是应对某一次具体攻击,而是建立一套「在攻击者得手之前,防线已经挡在那里」的闭环体系。
塞讯四层防御体系:感知 — 拦截 — 盘点 — 治理
Layer 1:威胁情报实时感知
核心问题:这个包,现在安全吗?
3 月 31 日上午 11:19,塞讯高级持续威胁情报智能平台完成对 [email protected] 的威胁标注,早于 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 的账号已经被劫持,[email protected] 已经推送到 npm registry——只要网关在 11:19 情报同步后触发拦截,任何随后执行的 npm install [email protected] 都会在网络层被阻断,恶意代码永远不落地于你的开发机或 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 账号;然后用那个账号,在几小时内向全球数百万个开发环境推送了恶意代码。
整个过程没有漏洞利用,没有暴力破解。有的只是耐心、伪装,以及对「开源生态信任模型」这个根本性脆弱点的精准理解。
这不是最后一次。手法只会越来越精密,目标只会越来越多,下一个维护者现在可能已经在被接触了。
供应链安全的终极护城河,不是知道攻击者是谁,而是在他们得手之前,防线已经挡在那里。
如需了解更多关于塞讯智能安全验证平台的信息,欢迎拨打官方电话 400-860-6366 或发送邮件至 [email protected] 联系我们。您也可以扫描下方二维码添加官方客服,我们将竭诚为您服务。
用持续验证 建长久安全
长按图片扫码添加【官方客服】
▶▶关注【塞讯安全验证】,了解塞讯安全度量验证平台以及更多安全资讯
▶▶关注【塞讯威胁情报】,解锁 AI 赋能的新一代威胁情报中枢
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:塞讯安全验证 《没有任何漏洞,黑客是如何接管全球数百万开发环境的?——深度拆解 UNC1069 供应链猎局》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。












评论