9月18号那天,有个普通程序员随手点开自己阿里云OSS控制台,看了一眼账单。然后他愣住了。
账户里有一堆他从没见过的压缩包,整整齐齐排着队,每个几百MB,文件名长得像"project_backup_xxx.tar.gz"。他点开一个,里面是他的整个代码仓库——Git历史、配置文件、环境变量、API密钥,甚至连~/.ssh里的私钥都打包进去了。
他从来没传过这些。
源头指向他前几天刚装的AI编程助手:ZCode——中国AI巨头智谱(Z.ai)的产品。
这事在程序员圈炸了。
一、一个叫"ZCode"的工具,悄悄干了件大事
先说ZCode是谁。
智谱,你可能听过,GLM系列大模型的开发商,国内最头部的大模型公司之一。2026年他们开源了GLM-5.2、GLM-5.3,在多个基准测试上刷脸,风头正劲。Z.ai这个英文品牌,就是智谱出海用的名字。
ZCode是他们的"AI编程助手"——说白了就是Cursor、Claude Code、Windsurf那一类的玩意儿。你写代码,它在旁边补全、解释、跑测试,跟个高级陪练似的。
它能做一件事:自动给整个项目生成Wiki文档——把代码结构、依赖关系、调用逻辑整理成可读的页面。这个功能本来挺贴心,智谱还给起了个名字叫"Repo Wiki",听起来还挺像GitHub上Copilot Workspace那个味道。
但问题来了:它在做这件事的时候,把你整个工作目录打包上传到了阿里云OSS。
没有提示框,没有确认弹窗,没有任何"我们要传你的代码了哦"的告知。就是默默上传,默默存着,默默等着被发现。
那位发现这事的程序员,把证据甩到了OSCHINA上。然后就是一波连锁反应:9月20日,观察者网跟进,有企业开始问"你们把数据传到国外了吗";9月21日,智谱正式道歉。
事情到这里,本来应该告一段落。但越挖越不对劲。
二、智谱的道歉信,藏着三个没回答的问题
智谱9月21日的道歉声明,态度其实挺端正的——至少姿态是这样:
第一,承认"我们在生成Repo Wiki时,将用户工作目录的Git历史打包上传到阿里云OSS";第二,表示"未经过用户明示同意";第三,承诺开源ZCode、清空OSS、永久下线Repo Wiki功能。
但有几个关键问题,道歉信没提。
第一个问题:这个功能从什么时候开始的?是上线就有,还是某个版本更新后才出现的?如果是上线就有,那意味着所有ZCode历史用户的代码,可能都被传到了阿里云OSS上,只是没人发现。这事不只关乎这位程序员一个人,可能关乎所有用过ZCode的人。
第二个问题:阿里云OSS里的这些数据,有没有被内部员工看过?有没有被用于模型训练?OSS清空了,日志清没清?有没有数据备份留底?
第三个问题,也是最敏感的:数据有没有跨境传输?有企业客户已经在问了。智谱在这点上没正面回答——他们只是说"已清空",没说"从未跨境"。
你看,道歉是道歉了,但"道歉"这两个字,盖不住"我可能已经偷看了你三年"的事实。
三、这不是ZCode一家的事
更让人后背发凉的是:这不是孤例。
过去一年,AI编程助手已经从"边角料"变成了黑客的首选攻击面。我随便列几个事件:
2025年,Shai-Hulud蠕虫横扫npm供应链,440多个包被感染,20亿次月度下载量遭殃。攻击的入口之一,就是AI编程助手的session token——拿到session之后,等于拿到了这个程序员电脑上所有项目的访问权。
2026年9月,Miasma蠕虫卷土重来,4小时感染444个npm包,2B月下载量。攻击者直接瞄准了AI编程助手——通过MCP(Model Context Protocol,模型上下文协议)注入到Cursor、Claude Code、Windsurf这些主流工具里。MCP是干什么的?就是让AI助手能调用外部工具的那个协议。攻击者用它,反过来让AI助手替他干活。
同期,Endor Labs披露了SANDWORM_MODE攻击:黑客用typo-squat包冒充"supports-color"、"claude-code",安装后偷偷在你的~/.dev-utils/目录部署一个恶意MCP服务器。然后通过prompt injection,让AI助手自己去读你的SSH密钥、AWS凭证、GitHub token,再把这些"通过context参数"传给恶意服务器。AI以为在帮你干活,其实在帮黑客干活。
还有Plugin4Shell漏洞,一口气绕过了4款主流AI编程Agent的SHA-Pinning安全机制。
把所有线索串起来看:过去12个月,AI编程助手相关的安全事件密度,几乎是传统IDE的10倍以上。
四、AI编程助手,凭啥成了新的"特洛伊"?
因为它太特殊了。它有三个普通软件没有的优势——对黑客来说:
第一,它有最高权限。它需要读你的整个项目,才能给你写代码、跑测试、做重构。所以它能访问你的源代码、你的Git历史、你的环境变量、你的~/.ssh目录。这是普通IDE从来没有的权限——VS Code需要装插件才能读.env,Sublime默认连.git都看不到。AI编程助手是默认全开。
第二,它有"信任背书"。你不会怀疑一个AI助手在偷你东西——它在帮你干活呢。但如果它被prompt injection,它就变成了一个任黑客摆布的"内部间谍",而且你还特别难发现。
第三,它的行为很难被察觉。AI生成的代码,你哪知道它读了什么?就算它读了你的SSH密钥,你也看不见。它的"操作日志"对用户来说基本是黑盒——你看到的是它给你写的那段代码,至于它读了哪些文件、调用了哪些API、传了哪些数据,你自己根本看不到。
ZCode这件事,正好把第一点暴露得明明白白——它不是被黑客入侵的,它是被设计成这样的。设计者在写代码时,根本没把"用户同意"当成一个必须考虑的事。或者考虑过了,觉得这事不重要。
五、给程序员的五条建议
如果你现在还在用Cursor、Claude Code、Windsurf、ZCode、GitHub Copilot这些AI编程工具,这几个动作,今晚就能做:
第一条:检查你所有AI编程工具的"数据使用"设置。Cursor有"Privacy Mode"开关,Claude Code有"数据不上传训练"选项,ZCode估计要等他们重新设计。把它们都打开,或者干脆关掉所有"自动同步"、"自动分析"、"自动Wiki"功能。打开 ≠ 真打开了,自己去配置文件里看一遍,别只看UI。
第二条:把企业代码和私人项目分开处理。企业代码,核心模块、密钥、配置文件、数据库schema,绝不要让AI助手直接读到。用.gitignore配合工具的白名单机制,把敏感目录屏蔽掉。最狠的做法是把AI编程工具装在一个独立的开发环境里——虚拟机、Docker容器、独立的Mac用户账户,都行。
第三条:监控AI助手的网络行为。看看它有没有偷偷往外发包,有没有访问奇怪的endpoint。Linux下可以用strace,Mac下可以用fs_usage。如果你看到它在你不知情的情况下,往某个OSS bucket、某个API、某个S3地址传数据——立即停掉。
第四条:真正敏感的代码,用本地AI模型。Ollama + DeepSeek-Coder、Qwen-Coder、CodeLlama,本地跑,数据不出你的电脑。速度慢一点,显存占一点,但安全。最近Mac M3/M4跑这些模型已经挺顺了。
第五条:别再用typo-squat包。安装npm包前,看清楚名字。"suport-color"不是"supports-color","claude-codex"不是"claude-code"。这一条去年就讲过,但每年都还有人中招——这次SANDWORM_MODE就是典型的typo-squat攻击。
六、说到底
Z.ai的道歉信写得挺感人的。
但感人归感人,代码已经被传到了阿里云OSS上,这事不能撤销。
真正让人害怕的不是智谱,也不是ZCode——而是这个行业的"默认状态":大家都默认AI编程助手可以读你的项目,默认它会"智能地"帮你干活,默认它不会拿你的数据做奇怪的事。
但默认就是用来打破的。
ZCode打破了"中国AI公司更懂合规"的默认;SANDWORM_MODE打破了"AI编程助手是工具不是攻击面"的默认;Miasma打破了"npm包审核够严"的默认。每一次打破,都是一次新的教训。
下一次,可能是某个你没听过的AI编程工具,做了一件你不知道的事。可能传到了某个你没见过的云上。可能用来训练了某个你没授权的模型。
而你,可能依然一无所知,直到下一个程序员打开他的OSS控制台,看到一堆奇怪的压缩包。
那个"智能编程助手",可能比你以为的更懂你,也可能比任何人更危险。
你用的AI编程工具,要不要今晚就检查一下?