Claude Code 扩展程序遭入侵:安全公告与技术分析
事件概述
官方 Claude Code VS Code 扩展程序的一个受损版本(版本 2.1.313)通过 Cursor Marketplace 进行分发,导致受影响用户面临持续的安全威胁。该恶意扩展包包含一个后门,可建立反向 SSH 隧道,从而允许未经授权的远程访问受害者的机器。Cursor 现已从其市场中删除了受影响的版本,建议用户对其环境进行彻底的安全审计。
后门技术分析
恶意负载通过 extension.js 文件中注入的立即执行函数表达式 (IIFE) 执行。此代码在扩展模块加载时立即运行,使其能够在官方扩展逻辑初始化之前访问用户的环境。该攻击遵循多阶段流程,以确保持久性和远程访问能力。
SSH 访问与持久化
恶意软件试图通过修改受害者的 SSH 配置来获取长期的交互式访问权限:
- 凭据注入: 它将攻击者控制的 Ed25519 公钥(注释为
svc-telemetry)附加到~/.ssh/authorized_keys文件中。 - 反向隧道: 该脚本使用远程端口转发 (
-R *:0:localhost:22) 与攻击者控制的服务器 (134.209.82.225) 建立出站 SSH 连接。这使得攻击者可以通过已建立的隧道访问受害者的机器。 - 持久化机制: 该后门通过安装特定于平台的持久化程序来确保在重启后依然存活:
- macOS: 安装一个执行隐藏 shell 脚本的 LaunchAgent (
~/Library/LaunchAgents/com.apple.sysmond.plist)。 - Linux: 在用户的 crontab 中添加一个
@reboot条目。 - Windows: 尝试创建
SYSTEM计划任务或将脚本放入用户的启动文件夹中。
- macOS: 安装一个执行隐藏 shell 脚本的 LaunchAgent (
主机侦察
在最终建立隧道之前,恶意软件会将主机信息发送回攻击者。这包括主机名、用户名、操作系统详细信息,以及与 KEY、TOKEN、SECRET、PASS、AWS 或 GCP 等模式匹配的环境变量名称列表。通过收集这些变量名称,攻击者可以根据敏感云或 API 凭据的存在情况来确定高价值目标的优先级。
检测与修复
安全团队不应仅依赖删除扩展程序来修复此威胁,因为后门组件会独立存在。
修复步骤
- 终止活动进程: 终止任何连接到
134.209.82.225的正在运行的ssh或autossh进程。 - 移除持久化: 删除 macOS 上的恶意 LaunchAgent、Linux 上的 crontab 条目,或 Windows 上的计划任务/启动脚本。删除相关的隐藏文件(例如
~/.config/.smt和~/.config/.smtk)。 - 清理 SSH 密钥: 从
~/.ssh/authorized_keys中删除svc-telemetry公钥。 - 轮换凭据: 鉴于存在未经授权访问的可能性,请轮换受影响机器环境变量中存在的任何 API 密钥、令牌或机密信息。
检测信号
- 文件完整性: 监控 IDE 辅助进程(例如
Code Helper)对~/.ssh/authorized_keys的修改。 - 进程遥测: 查找使用
/tmp/或~/.config/中的身份文件并带有远程端口转发标志的ssh或autossh进程。 - LaunchAgent 异常: 标记在
~/Library/LaunchAgents/中创建或修改带有com.apple.*标签文件的非 Apple 进程。
社区见解
安全和开发者社区内的讨论强调了对编辑器市场信任模型的担忧。评论者指出,此次事件凸显了“市场代理”的风险,以及缺乏对扩展程序的强制性包完整性或校验和验证机制。
"这种事情只会越来越严重。人们假设其他开发者和他们一样,但国家级行为者现在很可能正在利用 AI 运行代理程序,通过制作开发工具或向开源项目贡献代码来不断破坏安全性。" — @Hacker News User
建议用户通过检查其 authorized_keys 文件中是否存在 svc-telemetry 注释字符串来验证其状态,因为这仍然是受损的最可靠指标。
Sources
相关
- Dispatch
- Dispatch
- Dispatch
- 项目
- 项目