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 计划任务或将脚本放入用户的启动文件夹中。

主机侦察

在最终建立隧道之前,恶意软件会将主机信息发送回攻击者。这包括主机名、用户名、操作系统详细信息,以及与 KEY、TOKEN、SECRET、PASS、AWS 或 GCP 等模式匹配的环境变量名称列表。通过收集这些变量名称,攻击者可以根据敏感云或 API 凭据的存在情况来确定高价值目标的优先级。

检测与修复

安全团队不应仅依赖删除扩展程序来修复此威胁,因为后门组件会独立存在。

修复步骤

  1. 终止活动进程: 终止任何连接到 134.209.82.225 的正在运行的 ssh 或 autossh 进程。
  2. 移除持久化: 删除 macOS 上的恶意 LaunchAgent、Linux 上的 crontab 条目,或 Windows 上的计划任务/启动脚本。删除相关的隐藏文件(例如 ~/.config/.smt 和 ~/.config/.smtk)。
  3. 清理 SSH 密钥: 从 ~/.ssh/authorized_keys 中删除 svc-telemetry 公钥。
  4. 轮换凭据: 鉴于存在未经授权访问的可能性,请轮换受影响机器环境变量中存在的任何 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
  • 项目
  • 项目