ARTICLE · 1049823
你的AI编程助手,可能正在偷你的代码
9月18日,一个叫ferstar的开发者清理电脑磁盘,发现智谱ZCode在本地藏了个700MB的隐藏目录。
里面躺着一个313MB的加密文件,旁边有状态记录:上传失败564次,卡在重试队列里,等待下一次网络恢复后继续传。
这份没传出去的包,意外把整条链路扒了个底朝天。
逆向分析发现,只要你登录了ZCode账号,客户端就会在后台打包你的整个工作区——不是当前文件,是全部文件——加密后直传阿里云OSS。42411个文件的快照清单里,.git目录占了86.6%。
翻译一下:你写的代码只占13.4%,剩下86%是你的Git提交历史、被删掉的旧密钥、内网地址、没推送到远端的本地分支名、被reset抹掉的操作记录。
更扎心的是加密方式:公钥由服务端下发,私钥只在云端。你硬盘上那份313MB的密文,你打不开,客户端自己也打不开,全天下只有智谱后端的私钥能解。
界面有两个开关——"优化体验"和"仓库快照索引"。但你关掉它们,上传照跑不误。前者只控制数据能不能用于训练,后者只控制服务端要不要对已上传的快照建索引。没有一个开关在描述"上不上传"这件事。
智谱当晚致歉,承认"代码库索引"功能默认开启,承诺开源客户端、引入第三方审计、补偿周额度。
但这件事真正值得琢磨的不是智谱一家的问题。是今年AI编程工具圈的连环翻车——
7月,xAI的Grok Build被安全研究者cereblab抓包:把用户整个Git仓库打包上传到Google Cloud Storage,包括用户明确告诉AI"不要读取"的文件,以及未脱敏的密码。12GB的测试项目,截至抓包中断已传5.1GB。
马斯克后来承诺删除所有已上传数据,xAI开源了CLI代码,重置用户额度。
3月,Anthropic的Claude Code被发现读取用户的代理、网关地址和时区等环境信号,通过系统提示中的隐蔽字符将分类结果带回服务端。Anthropic工程师事后确认这是一次"有意实验"。
三家,三种翻法:Grok Build连"别读的文件"都传了,量最大;ZCode把Git历史打包了86.6%,范围最广;Claude Code传的是行为元数据,量级最小但性质同样涉及知情权。
那行业里做得好的是怎么做的?
Cursor的做法比较清晰:设一个"Privacy Mode"开关。开启后,数据不用于训练,与所有模型供应商签零数据留存协议。文件在服务器上的临时缓存使用客户端生成的唯一密钥加密,密钥只在请求期间存在于服务器,用完即删。
关键区别:Cursor的加密密钥是客户端生成的,用户握有主动权。ZCode的公钥是服务端下发的,用户连解密的可能都没有。
GitHub Copilot的做法是:明确告知。2026年4月宣布免费和专业版用户的交互数据默认用于训练,引发争议,但至少公开说了,也提供了退出路径。企业版明确不用于训练。
对比下来,行业里有个朴素的分水岭:
第一,是否明确告知采集范围。Cursor写了"会缓存文件内容用于降低延迟",Copilot写了"交互数据可能用于训练"。ZCode的隐私政策只写"收集对话中提交的文本、文件和代码",对整库静默上传只字未提。
第二,开关能不能真关。Grok Build关了"改进模型"照传,ZCode关了"优化体验"照传——都是假开关。Cursor的Privacy Mode是真的,开了就不训练不留存。
第三,密钥归谁。Cursor密钥在客户端,ZCode密钥在云端。前者是备份,后者是采集。
但说到底,AI编程工具要理解你的代码,就必须读取你的代码。这个矛盾是天生的。
早期的代码补全只读光标附近几行,安全但能力有限。新一代AI编程助手要理解整个项目架构、支持跨文件重构、生成项目文档,就必须扫描整个工程,提取类、函数、调用关系,构建语义索引。
但理解代码和上传代码之间有明确边界。本地建立索引辅助运算,和把包含完整版本历史的工程打包传到云端,性质完全不同。就像你的浏览器需要读取网页内容才能显示,但不应该把你看过的所有网页打包传给服务器。
今年这三起事件的共同点是:都不是厂商自查发现的。一次靠配置失误导致源码泄露,一次靠安全研究者的主动抓包,一次靠博主对硬盘空间不对劲的警觉。没有任何一次来自行业审计或监管巡查。
这才是最让人不安的地方——Agent厂商自己就是数据外传的源头,但目前没有任何规则约束这种行为。
而最新的进展更耐人寻味:9月20日,智谱在v3.12.2版本中悄悄删除了此前加上去的那条"优化仓库快照上传的内存占用"的更新日志——这条日志本来是事件发酵后加上去的,等于变相承认了上传行为的存在,现在又被撤掉了。
从"静默上传"到"加日志承认"再到"删日志撤回",整个过程只用了两天。态度转了一圈,又缩回去了。
对个人开发者,能做的有限:检查一下你用的AI编程工具的本地数据目录,按体积排序,看有没有异常的加密包或快照。跑一次git log -p,看历史里有没有不小心留下的密钥和内网地址。
对企业,这类工具该纳入安全评估和白名单管理。商业代码属于《反不正当竞争法》界定的商业秘密,员工点一下消费级隐私政策,无权代企业处分核心知识产权。
行业需要回答的不只是"该不该上传",而是"谁能验证你上传了什么、传去哪了、谁有权解密"。
在答案出来之前,每次点"同意"的时候,最好想清楚你同意的到底是什么。
我是自落果,一个爱琢磨事儿的人。觉得有共鸣,转发给朋友一起聊聊。
觉得说得有道理?点个「赞」,让更多人看到。点赞 👍 · 转发 ↗️ · 收藏 ⭐
#智谱ZCode #AI编程 #代码隐私 #Cursor #GitHub Copilot #数据安全 #Grok Build