2026年5月20日,安全研究机构BleepingComputer报道,GitHub正式确认一起通过恶意VSCode扩展发起的供应链攻击事件,导致约3800个代码仓库遭到未授权访问和数据泄露。这是继此前GitHub内部仓库遭入侵调查之后,事件的最新进展。
事件经过
攻击者通过在VSCode扩展市场发布看似正常的恶意扩展,利用开发者在日常工作中安装和使用扩展的习惯,植入恶意代码。当开发者安装了这些被污染的扩展后,攻击者可以窃取GitHub访问令牌,进而访问开发者有权限的所有仓库。
据安全研究人员分析,攻击链条如下:
- 攻击者在VSCode Marketplace上架伪装成代码格式化、语法高亮等常见功能的扩展
- 扩展内部嵌入了经过混淆的恶意代码,在用户不知情的情况下收集环境变量和Git凭证
- 窃取到的GitHub Personal Access Token被发送到攻击者控制的C2服务器
- 利用这些令牌,攻击者批量克隆了约3800个私有和公开仓库
影响范围
受影响的仓库涵盖了多个行业和领域,包括但不限于:
- 企业内部源代码和配置文件
- 包含API密钥和数据库凭证的.env文件
- CI/CD流水线配置和部署脚本
- 未公开的安全漏洞修复代码
GitHub安全团队表示,他们已经在第一时间下架了相关恶意扩展,并正在通知受影响的仓库所有者。同时,GitHub建议所有开发者立即检查自己的VSCode扩展列表,卸载来源不明或最近安装的可疑扩展。
如何自查和防护
作为开发者,你可以采取以下措施保护自己:
1. 检查已安装扩展
打开VSCode,进入扩展面板(Ctrl+Shift+X),逐一审查已安装的扩展。重点关注:
- 发布者信息是否可信
- 扩展的下载量和评价
- 最近是否有可疑更新
2. 审查GitHub访问令牌
前往GitHub Settings → Developer settings → Personal access tokens,检查所有活跃令牌:
- 删除不再使用的令牌
- 为仍在使用的令牌设置最小必要权限
- 启用令牌过期时间
3. 启用安全告警
在GitHub仓库设置中启用以下安全功能:
- Dependabot alerts:依赖漏洞自动告警
- Secret scanning:自动检测代码中的密钥泄露
- Push protection:阻止包含敏感信息的推送
4. 使用.gitignore保护敏感文件
确保.gitignore中包含以下条目:
.env
.env.local
.env.production
*.pem
*.key
config/secrets.yml
VSCode扩展安全的深层问题
这起事件再次暴露了IDE扩展生态系统的安全隐患。VSCode扩展市场目前缺乏严格的代码审查机制,任何人都可以发布扩展,而扩展拥有与VSCode进程相同的系统权限。这意味着恶意扩展可以:
- 读取终端中的环境变量(包括密钥和Token)
- 访问文件系统中的任意文件
- 发起网络请求将数据外传
- 修改其他扩展的行为
安全专家建议,开发者应该像对待npm包一样对待VSCode扩展——只安装来自可信发布者的扩展,定期审查扩展权限,并考虑在处理敏感项目时使用VSCode的受限模式(Restricted Mode)。
给站长的建议
如果你的团队使用VSCode进行开发,建议立即采取以下行动:
- 全员检查:通知团队所有成员检查已安装的VSCode扩展
- 轮换凭证:如果团队中有人安装过可疑扩展,立即轮换所有GitHub令牌和相关密钥
- 审计日志:检查GitHub仓库的访问日志,确认是否有异常克隆或下载行为
- 建立白名单:制定团队扩展白名单制度,只允许安装经过审核的扩展
供应链攻击正在成为开发者面临的主要安全威胁之一。从npm包投毒到现在的VSCode扩展攻击,攻击者越来越善于利用开发者的信任和便利性来实施入侵。保持警惕、建立安全意识,比任何时候都更加重要。
本文参考来源:BleepingComputer – GitHub confirms breach of 3,800 repos via malicious VSCode extension
















暂无评论内容