双重打击:AntV npm包与Nx Console VS Code插件遭供应链投毒事件深度解析
引言
2026年5月,前端与开发者工具生态接连遭遇两起严重的供应链攻击事件。先是AntV生态的数百个npm包被植入恶意代码,随后安装量超220万的VS Code插件Nx Console也被发现存在恶意版本。这两起事件不仅暴露了开发工具链的脆弱性,也标志着供应链攻击正将矛头直接指向开发者本地环境。
一、 AntV npm生态大规模投毒事件
1.1 事件概述
- 攻击时间:2026年5月(具体日期未明确,但文档提及“昨天”)
- 攻击目标:
@antv相关npm包生态系统 - 影响范围:涉及数百个包、数百个恶意版本
- 关键受害包:
echarts-for-react(每周下载量约110万次) - 披露方:安全公司Socket
安全警报截图:显示echarts-for-react被标记为恶意软件
图:Socket安全平台显示echarts-for-react包被标记为恶意软件,并详细列出了供应链风险指标
1.2 攻击手法分析
攻击者通过入侵npm维护者账户 “atool” 发起攻击,具体流程如下:
graph TD
A[攻击者入侵atool账户] --> B[发布带恶意代码的AntV包]
B --> C[开发者执行npm install]
C --> D[恶意代码自动执行]
D --> E[窃取各类凭证与密钥]
E --> F[利用窃取权限传播更多恶意包]
F --> B
1.3 窃取目标清单
恶意代码主要窃取以下敏感信息:
- 代码平台凭证:GitHub Token、npm Token
- 云服务密钥:AWS/GCP/Azure访问凭证
- 基础设施配置:SSH Key、Kubernetes配置、Docker凭证
- 环境机密:
.env文件内容、CI/CD Secrets
1.4 攻击扩散机制
最危险的特性在于自我传播能力:
- 开发者中招 → 2. Token泄漏 → 3. 攻击者利用窃取的npm/GitHub权限发布更多恶意包 → 4. 进一步扩散感染
二、 Nx Console VS Code插件投毒事件
1.1 事件概述
- 攻击时间:2026年5月18日
- 攻击目标:Nx Console VS Code扩展(
nrwl.angular-console) - 恶意版本:
18.95.0 - 影响范围:VS Code、Cursor、Windsurf、VSCodium
- 用户基数:安装量超过220万
- 在线时长:仅十几分钟(但因自动更新功能快速传播)
!https://via.placeholder.com/800x400?text=StepSecurity+博客截图:Nx+Console+VS+Code扩展被入侵
图:StepSecurity博客发布的Nx Console VS Code扩展被入侵警报,详细说明了攻击细节
1.2 攻击特殊性
与npm包攻击不同,此次攻击无需执行npm install:
- 开发者只要打开项目,被感染的插件就可能自动执行恶意代码
- Payload来自官方GitHub仓库路径,绕过许多安全工具的信任检测
- 利用了VS Code插件的高权限特性
1.3 VS Code插件权限风险
现代开发插件已远非简单UI工具,它们拥有:
├── 文件系统权限(读写任意文件)
├── Shell权限(执行系统命令)
├── Git权限(访问版本控制)
├── 网络权限(发起HTTP请求)
└── 环境变量权限(读取敏感配置)
1.4 窃取目标扩展
除了常规凭证外,此次攻击还针对:
- OpenAI API Key
- 数据库密码
- 其他本地存储的敏感信息
三、 攻击手法对比分析
| 攻击维度 | AntV npm投毒 | Nx Console插件投毒 |
|---|---|---|
| 入口点 | npm包依赖安装 | VS Code插件自动更新 |
| 触发条件 | 执行npm install |
打开项目/插件激活 |
| 传播速度 | 依赖开发者主动更新 | 编辑器自动更新加速传播 |
| 检测难度 | 相对较低(有lockfile可查) | 较高(Payload来自官方源) |
| 影响范围 | 使用AntV生态的项目 | 使用Nx Console的开发者 |
| 权限级别 | 项目级别 | 系统/用户级别 |
四、 影响范围与严重性评估
4.1 直接影响
- AntV生态:数百个包被污染,影响React、ECharts等流行技术栈用户
- Nx Console用户:超过220万开发者面临风险
- 凭证泄露:企业GitHub组织、云服务账户、内部系统可能被渗透
4.2 间接影响
- 信任危机:开发者对开源包和官方插件的信任度下降
- 开发效率:安全审查流程可能拖慢开发进度
- 合规风险:可能导致数据泄露合规问题
五、 自查与应急响应指南
5.1 AntV npm包投毒自查步骤
步骤1:检查lockfile
# 检查package-lock.json、pnpm-lock.yaml或yarn.lock
grep -n "@antv" package-lock.json
grep -n "echarts-for-react" package-lock.json
步骤2:清理并重新安装
# 彻底清理依赖
rm -rf node_modules
rm package-lock.json # 或pnpm-lock.yaml/yarn.lock
# 重新安装(确保使用干净环境)
npm install
步骤3:检查IOC(入侵指标)
# 检查网络请求日志中是否有恶意域名
grep -r "t\.m-kosche\.com" /var/log/
# 或检查浏览器历史、系统日志等
步骤4:立即轮换所有凭证
必须立即更换的凭证清单:
- [ ] GitHub Personal Access Token (PAT)
- [ ] npm访问令牌
- [ ] AWS/Azure/GCP访问密钥
- [ ] SSH公钥/私钥对
- [ ] Kubernetes kubeconfig
- [ ] Docker registry凭证
- [ ] CI/CD流水线密钥
- [ ] 数据库连接字符串
- [ ] 其他.env中的敏感信息
5.2 Nx Console插件投毒自查步骤
步骤1:检查已安装版本
# 查看是否安装了恶意版本
code --list-extensions --show-versions | grep angular-console
# 预期安全输出示例:
# nrwl.angular-console@18.94.0
# 危险输出示例:
# nrwl.angular-console@18.95.0 # 此为恶意版本!
步骤2:立即处理恶意插件
# 卸载恶意版本
code --uninstall-extension nrwl.angular-console
# 安装官方确认的安全版本
code --install-extension nrwl.angular-console@18.94.0
步骤3:全面凭证轮换
除了5.1中的凭证外,还需特别检查:
- [ ] OpenAI API密钥
- [ ] 本地开发环境配置
- [ ] IDE设置中的敏感信息
步骤4:检查GitHub账户异常
登录GitHub,重点检查:
-
Settings → Developer settings → Personal access tokens
- 是否有未知的新增PAT
- 现有PAT的最近使用记录是否异常
-
仓库级别检查
- 是否有未知的Deploy Keys
- 是否有异常的Workflow运行记录
- 检查最近是否有未经授权的npm发布
-
组织安全
- 检查组织成员的最近活动
- 审查第三方应用授权
六、 开发者安全防护建议
6.1 日常开发习惯
-
锁版本策略:始终使用精确版本号或lockfile
// package.json - 推荐 "dependencies": { "some-package": "1.2.3" // 精确版本 } // 避免 "dependencies": { "some-package": "^1.2.3" // 允许小版本更新 } -
依赖审计工具:定期使用安全扫描
# npm audit npm audit # 使用专业工具 npx socket-cli analyze -
最小权限原则:为CI/CD和开发环境使用有限权限的令牌
6.2 工具链安全加固
-
VS Code安全设置
// settings.json { "extensions.autoUpdate": false, // 关闭自动更新 "extensions.autoCheckUpdates": false, "security.workspace.trust.enabled": true, "git.autoRepositoryDetection": false } -
使用沙盒环境
- 考虑使用Docker容器进行依赖安装
- 使用虚拟机或独立环境进行高风险操作
-
网络层防护
- 配置防火墙规则,限制开发机出站连接
- 使用本地npm镜像源,并配置白名单
6.3 组织级安全措施
- 私有仓库镜像:搭建内部npm、VS Code插件市场
- 安全扫描集成:在CI/CD流水线中加入依赖扫描
- 凭证管理:使用Vault等专业密钥管理工具
- 安全培训:定期对开发团队进行供应链安全培训
七、 事件反思与行业影响
7.1 攻击趋势变化
graph LR
A[传统攻击] --> B[应用运行时]
C[新型攻击] --> D[开发构建时]
D --> E[开发工具链]
E --> F[本地开发环境]
7.2 工具链安全新认知
npm install≠ 安全操作:实质是“执行陌生代码”- 编辑器插件 ≠ 无害工具:拥有系统级权限
- 官方源 ≠ 绝对可信:账户劫持可污染官方发布
7.3 未来风险预测
可能成为新攻击入口的领域:
- AI Coding助手:GitHub Copilot、Cursor等
- 低代码平台:内部组件库、模板系统
- 构建工具插件:Webpack、Vite插件系统
- 云开发环境:GitHub Codespaces、Gitpod等
八、 总结
2026年5月接连发生的AntV npm包和Nx Console VS Code插件投毒事件,为整个开发者社区敲响了警钟。这两起事件清晰地表明:
开发工具链已成为供应链攻击的主战场。
攻击者正在将目标从生产环境前移到开发环境,从运行时攻击转向构建时攻击。面对这种变化,开发者需要:
- 转变安全观念:将本地开发环境视为关键安全边界
- 实施纵深防御:从依赖管理、工具配置到网络隔离多层防护
- 建立应急流程:制定明确的供应链攻击响应预案
- 推动生态改进:参与开源项目安全建设,支持供应链安全工具
只有整个社区共同重视并行动,才能构建更安全的开发环境,抵御日益复杂的供应链攻击。
最后更新:2026年5月22日
数据来源:Socket安全报告、StepSecurity博客、The Hacker News
建议行动:所有使用AntV生态或Nx Console的团队应立即按照本文指南进行自查
免责声明:本文基于公开安全报告整理,具体安全措施请根据实际情况调整。建议关注官方安全公告获取最新信息。