返回资讯中心
外部精选
软件工程
#开发者实时流

微软披露伪装成 Claude Code 的恶意扩展及其 SSH 后门

来源标题:Postmortem on Claude Code Cursor extension hack

微软安全研究团队发布了一份针对恶意 Claude Code 品牌扩展的事后分析报告,揭示该供应链攻击会植入持久化 SSH 后门。报告梳理了完整攻击链,包括主机侦察、反向 SSH 隧道转发、按平台实现开机持久化,并给出缓解措施与 Defender XDR 检测规则。

Hacker News 最新soundworlds2026/11/2 · 3 天前30 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

研究 2026年10月30日 11分钟阅读 深入剖析一个冒充Claude Code的恶意扩展及其持久化SSH后门 作者:Microsoft Security Research,查看该作者的所有文章 收听本文 / 1倍速 分享 链接已复制到剪贴板! 标签 前沿AI模型 供应链攻击 威胁情报 AI威胁 供应链攻击 内容类型 研究 产品与服务 Microsoft Defender 主题 可操作的威胁洞察 AI与智能体 威胁情报 本文内容 攻击链概览攻击链 主机侦察信息收集 SSH授权与隧道身份 协议隧道(T1572):反向SSH转发 平台特定的启动持久化 缓解与防护指引即时措施 修复措施 后续调查与恢复 Microsoft Defender XDR检测 威胁情报报告 Microsoft Defender XDR威胁分析 高级 hunting 查询 MITRE ATT&CK技术 入侵指标(IOCs) 了解更多 2026年10月29日,Cursor报告称,一份被篡改的Claude Code扩展副本(anthropic.claude-code,版本2.1.313和2.1.312)曾在Cursor扩展市场中上架并提供下载数小时,试图对Cursor用户发起供应链攻击。Cursor表示,该扩展的上架时间约为太平洋夏令时(PDT)凌晨2:27至下午1:35。我们已确认,在Cursor市场上发现的恶意包从未在Microsoft Visual Studio Marketplace和npm的@anthropic-ai/claude-code上发布或分发,这两者未受此事件影响。Anthropic向Microsoft确认,其系统未被入侵,他们也没有开发发布在Cursor市场上的恶意包。目前,所有证据表明该事件仅限于Cursor市场。 Microsoft Threat Intelligence分析了嵌入恶意扩展包中的注入JavaScript代码。注入的加载器在扩展模块加载时运行,试图添加攻击者控制的Secure Shell(SSH)密钥、启用本地SSH服务、建立反向SSH转发、配置持久化,并上报主机详细信息。能否成功实现远程访问取决于主机权限、SSH配置以及攻击者的服务器配置;不过,即使隧道访问失败,加载器仍可能写入密钥和持久化痕迹。 各组织应识别从Cursor市场安装或自动更新到此版本的系统,保存证据,清除已确认的恶意痕迹,审查端点和网络遥测数据,并在调查表明存在暴露时轮换凭据或撤销会话。Microsoft客户可在本文列出的覆盖范围和查询验证门槛完成后,使用文中的检测和hunting指引。 与Cursor Marketplace事件相关的恶意样本包含一个JavaScript函数,该函数会在扩展的预期代码之前执行。当模块加载时,此函数可利用Node.js API收集主机信息、修改文件并执行操作系统命令。以下各节描述了基于我们对注入代码的分析所得出的功能和尝试执行的操作。 加载器首先收集主机侦察信息,然后尝试安装SSH密钥、启用SSH、创建反向隧道并配置持久化。随后,一个延迟回调会尝试发送主机详细信息。以下顺序反映代码执行顺序,并不证明每一步在每台主机上都成功执行。 加载器使用嵌入组件和内置系统工具建立持久访问,无需下载其他可执行文件。它会抑制命令输出并静默捕获错误,以隐藏失败和恶意活动,同时扩展继续正常运行,以免引起用户警觉。 加载器收集主机名、用户名、操作系统、架构、主目录、工作目录以及全局Git邮箱。它还会查找名称中包含KEY、TOKEN、SECRET、PASS、AWS或GCP等词的环境变量,最多保留四十个匹配项。 回调发送的是匹配的环境变量名称,而非其值。这揭示了可能敏感的配置类别,但并不能证明存储在其中的机密已被窃取。 信息收集在模块加载期间进行。收集到的详细信息会被保留,供持久化阶段之后描述的延迟上报回调使用。 加载器使用两个角色不同的SSH身份。一个公钥用于授权访问工作站的用户账户,另一个私钥用于对隧道服务器进行出站连接的身份验证。首先,加载器检查用户的authorized_keys文件中是否存在注释svc-telemetry。如果缺少该标记,它会追加一个嵌入的Ed25519公钥。这就为持有对应私钥的人创建了一个授权条目,具体是否生效取决于本地SSH服务器的配置。 接下来,它解码一个用于出站连接的独立私钥。初始副本被写入一个隐藏的临时文件,文件名为.stk_后跟十个十六进制字符,这些字符由主机名和主目录派生而来。SSH通过其-i选项接收该文件,并使用远程账户tunnel进行连接。 公钥材料已被遮盖,但格式与以下类似: ssh-ed25519 [已遮盖的公钥] svc-telemetry 协议隧道(T1572):反向SSH转发 隧道SSH进程启动时,命令行包含以下参数: -N -R '*:0:localhost:22' 它在远程SSH服务器上请求一个监听端口,并将通过隧道的连接转发到受害者回环接口的22端口。远程端口值0要求服务器分配一个端口;它不会将本地目标从22端口改变。-N选项告诉SSH不要在隧道服务器上运行命令。

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →