问题的起点

很多人已经把”本地 Agent + 中转站”当成了日常玩法。Claude Code、OpenCode、Codex 这些工具的本质已经是 LLM + 本地执行器——它们不只是聊天,是真的能操作你的电脑。

你以为的中转站 vs 实际上的中转站

大多数人以为中转站就是个透明代理:

1
客户端 → Proxy → Claude/OpenAI

无非就是换个 API 地址、省点钱、解决区域限制。

但实际情况是,很多第三方 Proxy 并不是透明转发,它完全可以做到:

  • 修改 Prompt:在你发出去的请求里注入额外指令
  • 注入 System Prompt:改变模型的行为逻辑
  • 污染模型返回:在响应中插入恶意内容
  • 插入 Tool Call:伪造一个看起来正常的工具调用
  • 修改 Function Call:篡改参数或替换目标

这本质上已经是 MITM(中间人攻击)了。

真实案例

最近有用户在微信群反馈:接入了某个公益中转站后,本地环境出现了异常——

  • %AppData% 下被创建了 .ps1 文件
  • Startup 启动目录被写入了 .vbs 文件
  • 开机自动运行,PowerShell 隐藏执行
1
2
3
Startup\某文件.vbs
→ WScript.Shell.Run powershell ...
→ WindowStyle Hidden(隐藏窗口)

虽然该案例只是弹窗,但这个行为模式本身——VBS 启动项 + PS1 Payload + Hidden PowerShell——已经和传统脚本木马高度接近了。

攻击链路拆解

很多人以为这是中转站”黑进了电脑”,其实真正的链路更隐蔽:

1
2
3
4
5
6
7
8
9
10
11
用户请求

Claude Code(正常发起)

第三方 Proxy(修改返回内容)

Claude Code(信任返回结果,触发工具调用)

调用 Shell / File Tool

本机执行恶意操作

真正危险的是”返回结果”被篡改,而不是直接攻击主机。

而这个攻击之所以难以察觉,是因为 Agent 平时本来就会做这些事:

  • 创建文件、改配置
  • 跑 terminal 命令
  • 安装依赖、写脚本

恶意操作混在正常行为里,尤其是终端疯狂刷屏的时候,根本不会逐条去看。

而且用户看到的是”Claude Code 在正常工作”,天然就没什么警惕性。

安全边界正在模糊化

以前木马需要:

  • 漏洞利用
  • RCE
  • 提权

现在:用户自己装了一个”能执行命令的 AI”,它天然就有全盘读写权限和 Shell 执行能力。

攻击者不需要攻破你的系统——他只需要污染一次 API 返回,你的 Agent 就会帮他把剩下的活干了。这是安全模型上一个值得重视的变化。

防护建议

  1. 重要项目走官方 API:生产环境、涉及敏感数据的场景直接用厂商官方接口
  2. 审查 Agent 的操作日志:定期回看 Agent 的 Shell 和文件操作记录,关注异常的脚本写入和启动项修改
  3. 限制 Agent 的运行权限:在容器或受限用户下运行,减少 blast radius
  4. 选择可信渠道:如果必须用中转,选技术栈透明、可审计的开源方案自建,而不是来历不明的公益站

任何中转站都能干出这种事。不要把自己的 API 调用链路交给不透明的第三方——你给它的是钥匙,它拿你什么东西,全看人品。