威胁行为者通过VS市场传播恶意扩展
粗心的开发者在向两个开放市场发布Visual Studio扩展时,包含了可能被威胁行为者利用的访问令牌和其他密钥,一家安全供应商发现。
这一发现由Wiz的研究人员在今年早些时候做出,他们悄悄与微软及其VSCode Marketplace以及OpenVSX市场背后的团队合作,改进了平台的防护措施。Wiz本周发布了调查报告。
泄露的密钥规模
Wiz发现了超过550个经过验证的密钥,分布在来自数百个VS扩展发布者的500多个扩展中。这些密钥包括:
- AI提供商密钥:OpenAI、Gemini、Anthropic、xAI、DeepSeek、HuggingFace和Perplexity
- 高风险专业平台密钥:AWS、Github、Stripe、Auth0和Google Cloud Platform
- 数据库密钥:MongoDB、Postgres和Supabase
在VSCode Marketplace扩展中识别出超过100个有效的Azure DevOps个人访问令牌泄露,代表超过85,000次扩展安装。
识别出超过30个泄露的OVSX访问令牌,代表超过100,000次扩展安装。
泄露原因与攻击风险
报告指出,密钥泄露的最大原因是开发者捆绑了隐藏文件(也称为点文件)。尽管扩展源代码中的硬编码凭据也很普遍,但.env文件的数量尤其突出。
更糟糕的是,一些威胁行为者意识到有机会利用这些市场来毒化扩展供应链,就像他们近年来试图(在许多情况下成功)在NPM、GitHub和其他开放代码存储库中植入恶意代码一样。Wiz调查是由2月份发现威胁行为者试图在经典供应链攻击中将恶意软件引入VSCode Marketplace触发的。
平台响应与修复
微软和Wiz发起了一项通知活动,提醒受影响的发布者并帮助他们解决这些漏洞。微软还在扩展发布到其市场之前集成了密钥扫描功能,现在会阻止包含已验证密钥的扩展,并在检测到密钥时通知扩展所有者。详细信息参见6月份的公告。
OpenVSX也正在为其令牌添加前缀(ovsxp_)。
扩展安全的重要性
Wiz在报告中表示:“我们发现发布者经常未能考虑到包中的所有内容都是公开可用的,或者未能成功清理其扩展中的硬编码密钥。”
SANS研究所研究院长Johannes Ullrich评论说:“开发者是攻击的主要目标。他们通常没有意识到,他们安装的任何扩展,即使看起来是无害的,例如更改代码颜色的扩展,都可以完全访问他们的代码,并可能在未明确通知开发者的情况下进行修改。”
加拿大安全意识公司Beauceron Security负责人David Shipley表示:“网络犯罪分子和国家行为者已经找到了安全链中的新薄弱环节:软件供应商生态系统。这种情况已经发生了很多次,这是一个明显的系统性问题。”
恶意扩展活动
在另一项发现中,Koi Security的研究人员发现,威胁组织TigerJack放置在VSC和Open VSX市场中的11个恶意扩展已被下载超过17,000次。该活动的两个流行扩展“C++ Payground”和“HTTP Format”已被删除,但该操作通过使用新帐户重新上传感染恶意软件的代码而继续。
Koi Security表示,其中一个恶意扩展悄悄将开发者的源代码上传到外部端点,另一个使用本地资源进行加密挖矿,最复杂的变体可以远程执行JavaScript,而无需新的更新来扩展或更改功能。
建议与最佳实践
Wiz建议VSCode用户:
- 限制工作中安装的扩展数量
- 审查扩展信任标准
- 考虑自动更新的权衡
企业安全团队应该:
- 开发IDE扩展清单
- 考虑为VSCode扩展创建集中允许列表
- 考虑从VSCode Marketplace获取扩展
Wiz的McCarthy表示,领导者应使用设备管理和端点安全工具来清点扩展并强制执行允许列表。集中批准扩展有助于降低风险,但保持开发者的灵活性也很重要,让他们使用推动创新的工具。
SANS研究所的Ullrich警告说,没有好的方法来验证应用程序是否未被泄露。标准的端点和网络安全解决方案可以帮助保护开发者,但需要调整才能有效,并且很难识别恶意扩展。因此,开发者应尝试最小化安装的扩展数量。