夜雨聆风学习资料网

ARTICLE · 1107582

你的 AI 编程助手,可能正在把你的 Git 历史打包上传

你的 AI 编程助手,可能正在把你的 Git 历史打包上传
9 月 18 日凌晨,开发者 ferstar 清理磁盘的时候,发现用户目录下的 ~/.zcode 文件夹占了 700 多 MB。
他往里翻,找到一个 313MB 的加密文件,旁边躺着一份状态文件。
状态文件写得很清楚:这个包扫描的是他本地一个 10GB 的商业项目,内容被压成 345MB 的全量快照,准备上传。上传失败了,失败 564 次,所以留在他电脑里。
他把客户端拆开,看了代码。
结论是,只要处于登录状态,ZCode 桌面端就会在后台静默地把整个工作区加密打包,然后直传阿里云的对象存储。打包进去的不只是他正在写的代码,还有完整的 .git 版本历史、LFS 大文件缓存、reflog 记录,以及一部分全局开发配置。
清单里一共 42411 个文件,Git 目录占了 86.6%,当前的源码和文档只占 13.4%。
换句话说,被传走的主体,是这个项目几年来的修改历史,不是他此刻在敲的那几行代码。
帖子是凌晨发的,标题叫《扒一扒 ZCode 静默上传全量 Git 历史的骚操作》。天亮之后,开发者社区炸了。
先说清楚 ZCode 是什么。它是智谱旗下的桌面 AI 编程客户端,按公开说法已经进入百万用户阶段,是智谱 Coding 业务的重要入口。就在被曝出问题的前一天晚上,ferstar 还在技术群里跟人安利它,不到半天,自己先被打脸。
真正让人后背发凉的,不是「有数据上传」这件事,而是传的是什么。
很多人对代码泄露的想象,还停留在「我这几行代码被拿走了」。但对一个真实项目来说,危险的东西往往不在正在写的那部分。
Git 历史的作用是找回旧版本,反过来说就是:从代码里删掉的东西,不一定真的消失。误提交过的密钥、写死过的内部服务器地址、测试用过的账号密码、客户名单、没推送的本地分支,甚至前东家留下的东西,都可能安安静静地待在历史里。
ferstar 还原的上传链路是这样的:客户端向服务器申请上传凭证,服务器返回一个云存储地址和一把公钥,文件在本地加密之后直传。加密用的那把公钥是服务端动态下发的,私钥只在云端。他本地生成的这份几百兆的密文,连他自己和客户端本体都解不开。
更别扭的是开关。ZCode 界面上有两个开关,一个管数据是否用于模型训练,一个管是否为快照建索引。在 ferstar 用的那个版本里,两个开关全关,客户端依然会打包上传。
9 月 18 日当天,智谱在官方用户群致歉,说问题出在「代码库索引」功能上,Repo Wiki 生成页面的时候可能触发仓库数据上传,上传的数据会在页面生成后立即销毁。这个功能在上线初期是默认开启的。
然后是补救。9 月 19 日推 3.14.0,更新日志写「修复仓库百科异常上传的问题」;9 月 20 日晚,智谱 MaaS 平台宣布将上线「数据内容不留存」功能;9 月 21 日,ZCode 客户端代码开源到 GitHub,并再次说明相关数据没有留存、从未用于模型训练。第三方这边,中国信通院确认阿里云 OSS 存储桶为零数据,绿盟科技确认相关存储桶和数据对象均已删除。
到这里,官方的动作算是给全了。但社区那边的火没灭。
有人不认可「即时销毁」的说法。有人去看了开源的仓库,发现它创建于 9 月 20 日,只有 2 个提交,没有版本标签,文件树里也找不到 Repo Wiki 和上传凭证相关的路径,出问题时用的那份旧代码已经无从比对。也有公司在内部停用了 ZCode。
上海交通大学数据法律研究中心执行主任何渊的说法,我觉得是这次争议里最该被记住的一句:加密和删除,不能替代充分告知。服务商需要建立文件级、功能级的授权机制;企业也该把 AI 编程工具纳入供应商管理和数据安全体系,明确哪些代码可以交给外部工具。
「充分告知」四个字,说起来轻,做起来是另一回事。用户点过的那个「同意」,如果藏在很长很长的条款里,很可能不算数。《个人信息保护法》要的是充分知情、明确同意,不是签了字就随你便。而对企业的核心代码来说,源代码往往就是商业秘密,这条线后面还有《反不正当竞争法》在那等着。
还有一层背景值得注意:这不是孤例。两个月前,xAI 的编程工具 Grok Build 也被发现把用户整个 Git 仓库打包上传到谷歌云存储。AI 编程工具正在从「补全几行代码」,变成能读整个项目、调终端、改文件、甚至操作数据库的 Agent。能力越大,能碰到的东西越多,而授权粒度还停留在「一个总开关」的水平,出事只是时间问题。
说回我们自己。作为天天用这些工具的人,能做的事情其实不多,但有几件是马上可以做的。
装之前,花两分钟看一眼权限和隐私政策,尤其注意它会读什么、传什么、存多久。敏感仓库,把云同步关掉,密钥和账号一律不进代码库,走环境变量。真出了问题,先把证据留住,日志、截图、文件清单,再谈别的。如果是公司项目,更该把选工具这件事当采购来办,核心代码优先考虑本地化部署。
技术跑得快是好事,但边界模糊着跑,早晚要还。
你电脑里现在装着几个 AI 编程助手?你确定它们往哪儿传数据吗。评论区聊聊,也把这篇转给正在用 AI 写代码的同事。

相关学习资料