用Claude Code 找到攻击者

有人在我的生产系统中挖矿。整个调查过程不到一小时。不是因为我快。而是因为 Claude Code 很快。

用Claude Code 找到攻击者
AI编程/Vibe Coding 遇到问题需要帮助的,联系微信 ezpoda,免费咨询。

新年第一天。手里拿着咖啡。准备慢慢回到工作中。

然后我看到了日志。

2026-01-02T06:34:27 GET xmrig-6.24.0-linux-static-x64.tar.gz   
2026-01-02T06:34:30 GET http://37.32.6.33:7979/m   
2026-01-02T06:34:30 spawn /opt/systemf/m ENOENT

Xmrig。在生产环境中。有人正在我的客户 Kubernetes 集群中挖掘门罗币。

令人震惊。

1、调查过程

我有几百兆的 JSON 日志,对手动关联时间戳毫无耐心。所以我做了任何理性的人会做的事情:我让 Claude Code 分析日志并找出触发矿工下载的原因。

几秒钟内,它构建了时间线:

时间 事件

  • 06:34:26 正常请求到 /onboarding
  • 06:34:27 从 GitHub 下载 xmrig
  • 06:34:30 从可疑 IP 下载第二个负载
  • 06:34:57 容器 OOMKilled

这个加密货币矿工消耗资源如此之多,以至于在 30 秒内消耗了 2GB 内存并导致容器崩溃。讽刺的是。攻击者的贪婪让我们避免了长期的妥协。

但他们是怎么办到的?

2、追踪错误线索

Claude Code 的第一个嫌疑人是一个低版本的 npm 包叫做 device-unique-keygen。由一个电子邮件与包维护者匹配的开发者添加。经典的供应链攻击模式。

我感到兴奋。可能太兴奋了。

Claude Code 获取了 GitHub 仓库,分析了源代码,检查了 postinstall 脚本,寻找混淆代码,搜索了 eval() 调用。

什么也没有。该包是干净的。只是一个浏览器指纹库。无聊。合法的。

我们继续前进。

没有恶意的 init 容器。没有 sidecars。没有 .ashrc 的把戏。Dockerfile 是干净的。Pod 规范是干净的。

除了有人确实在我们的基础设施上挖矿,一切都干净。

3、真正的答案

Claude Code 在代码库上运行了 npm audit

critical │ Next.js is vulnerable to RCE in React flight protocol
Package  │ next
Patched  │ >=15.3.6
Your ver │ 15.3.4
CVSS     │ 10.0

CVSS 10.0。最高可能的分数。安全评级中的“你的房子正在被主动烧毁”的级别。

应用程序正在运行 Next.js 15.3.4。一个公开披露的 RCE 漏洞。不需要身份验证。攻击者可以通过发送精心设计的请求在服务器上运行任意命令。

这就是发生的事情。他们发送了一个请求,运行了两次 wget,下载了矿工,并开始从他们未付费的计算周期中提取加密货币价值。

容器的内存限制阻止了他们。每月 20 美元的 Kubernetes 资源限制防止了可能的持续盗窃。

4、Claude Code 实际做了什么

我想明确说明这里发生了什么。我没有独自解开一个复杂的攻击。我没有手动关联日志时间戳或逆向工程混淆的 npm 包。

我说“检查这些日志”,而 Claude Code 做了:

  • 从 JSON 日志条目中构建时间线
  • 识别恶意工件和 C2 服务器
  • 追踪 git blame 找出添加可疑包的人
  • 从 GitHub 获取并分析源代码
  • 逐一排除攻击路径
  • 通过 npm audit 找到实际漏洞
  • 将 OOMKill 时间与攻击相关联
  • 建议修复措施和取证保存步骤

整个调查不到一小时。不是因为我快。而是因为 Claude Code 很快。

5、修复方法

pnpm update next@^15.3.6

一个命令。这就是修复 CVSS 10.0 漏洞的方法。

我们还对被破坏的 Pod 进行了取证分析,旋转了密钥,并添加了适当的安全上下文以防止未来的 wget 冒险。

6、教训

两件事拯救了我们:

  1. 集中式日志(没有日志就无法进行调查)
  2. 内存限制(攻击者的矿工自己杀死了自己)

一件事本来可以完全防止这种情况:在部署之前运行 npm audit

攻击者利用了一个公开披露并已修复的漏洞。我们只是还没有更新而已。

祝你在自己的依赖项更新中好运。


原文链接:I Found a Cryptominer in My Client’s Production Cluster. Claude Code Found the Attacker.

汇智网翻译整理,转载请标明出处