查看: 73|回复: 0

智谱 ZCode 风波:AI 编程工具暴露的代码数据安全陷阱

[复制链接]

1813

主题

5

回帖

5516

积分

超级版主

积分
5516
发表于 2026-10-24 08:12:54 | 显示全部楼层 |阅读模式
前言

      AI 编程助手正在成为开发者日常工具,Cursor、ZCode 等工具可以读取本地项目代码,辅助写代码、查 bug、重构工程。大多数开发者有一个固有认知:只要我在设置里关闭「允许用于模型训练」,我的代码就不会向外流出。
但智谱 ZCode 的公开风波撕开了行业的现实漏洞:关闭模型训练授权,并不等于阻止客户端把你的完整代码仓库上传云端。数据上传行为,发生在模型推理之前的客户端外围软件流程,和是否参与模型训练是两套独立逻辑。
      这起事件也提醒整个行业风险点:安全风险不只有大模型本身,AI 工具的客户端、快照、索引、后台上传逻辑,同样是敏感代码泄露的高危点。
风险提示:本文仅为行业事件科普,不做法律定性,相关事实均来自公开技术分析、企业公开公告与媒体报道。
概念释义Git 历史 (.git 目录):完整记录项目全部提交记录、删除文件、密码密钥残留、版本迭代,属于项目完整资产,远不止当前可见源代码。Repo Wiki 仓库索引:工具自动解析整个项目,生成项目说明文档,用于 AI 理解整个工程上下文。OSS 对象存储:云端文件存储服务,客户端打包的加密快照上传到此。模型训练开关:控制用户输入数据是否拿来训练大模型;不等于控制客户端是否上传代码文件。

一、事件复盘:一次磁盘清理挖出的静默上传问题

事件始于开发者ferstar清理 Mac 电脑磁盘,发现 ZCode 本地目录存在数百 MB 加密打包文件,逆向抓包之后发现重大行为虎嗅网:只要用户登录账号,ZCode 客户端就会在本地生成整个项目工作区的加密快照。快照不只有当前正在编辑的源码,还包含完整.git版本历史、Git‑LFS 缓存、操作记录。打包完成之后,会尝试把加密大包上传阿里云 OSS 存储桶。
  • 加密采用服务端下发 RSA 公钥加密,解密私钥只保存在云端,用户自己本地无法解密这份属于自己的代码包。
  • 该快照上传逻辑默认开启,客户端界面没有对应的关闭开关;哪怕用户关闭 “用于模型训练” 选项,这套快照上传流程依旧会运行。
  • 开发者发现的 313MB 快照因为体积过大,连续 564 次上传失败,一直滞留在本地;小体积仓库则可以成功上传云端InfoQ。
事件曝光之后智谱迅速公开致歉,解释该行为来自默认开启的 Repo Wiki 仓库索引功能,上传目的是在云端生成仓库知识库,数据生成完成之后即销毁,不会用于模型训练,并紧急发布修复版本。
风波进一步发酵:太原承明科技有限公司发公开问询函,追问已上传数据完整流向、是否存在跨境传输、历史数据是否彻底删除等一系列问题新浪财经。
后续企业完成整改:ZCode v3.14.0 版本移除 Repo Wiki 与快照上传链路;开源 ZCode 客户端仓库;邀请信通院、绿盟科技做第三方安全审计,公布涉事存储桶数据全部删除的审计结论央广网财经。
二、最容易被误解的关键点:关闭训练授权≠不上传代码

这也是本次风波带给所有开发者最重要的认知。很多 AI 编程工具设置页有一个选项:是否允许我的数据用于模型训练。✅这个开关的作用:控制你的输入内容会不会拿来迭代、训练大模型权重。❌它管不到客户端会不会把本地文件、整个代码快照上传到服务商服务器。
快照上传属于「客户端外围业务流程」:为了生成仓库索引、会话断点恢复、项目知识库,客户端把整套代码打包上传,这一步发生在大模型推理之前。哪怕你明确禁止训练,这套上传逻辑依旧可以独立运行。
我们可以拿行业同类产品 Cursor 做参照理解:Cursor 同样会读取本地项目,但是它区分两种模式:
  • 上下文片段:你当前打开的文件、选中代码片段,发给大模型做问答;
  • 完整仓库索引:可选功能,才会扫描更多本地文件,并且明确提示用户风险。
核心区别:是否默认静默全量打包整个仓库(含 Git 历史)上传,是否给用户提供可关闭开关,是否清晰告知上传范围。Git 历史远比当前源码危险,很多已经删掉的密钥、密码、内部配置,依旧残留在 git 记录里面。一旦快照上传,这些敏感信息一并被带走。
三、这不是孤例,全球 AI 编程工具都面临同类隐患

ZCode 并不是唯一出现该类问题的 AI 编程工具:
  • xAI 的 Grok Build 被安全研究者抓包证实,会打包完整项目上传云存储,包含用户明确要求不要读取的文件、密钥信息36氪。
  • 部分 AI 编码客户端,会在后台收集项目文件用于上下文检索,而弹窗提示写的模糊笼统,普通开发者很难读懂背后风险。
过去大家谈 AI 安全,目光集中于 “大模型会不会泄露提问内容”;而现在新风险转移到客户端本身。很多安全漏洞,不是大模型输出幻觉,而是客户端软件在用户不知情的情况下,处理、搬运本地磁盘上的全部文件。
四、普通开发者怎么保护自己的源码安全

1. 分清两个完全不同的权限开关

  • 「禁止用于模型训练」:只管模型训练,不能阻止文件上传。
  • 重点找:完整仓库扫描、项目索引、仓库快照这类功能,确认是否可以手动关闭。
如果产品没有提供关闭全量扫描上传的选项,处理商业机密项目要格外谨慎。
2. 商业涉密项目,谨慎使用联网 AI 编程客户端

  • 涉及密钥、核心业务逻辑、未公开专利代码,优先考虑完全本地运行、不上传任何文件的离线 AI 编码模型。
  • 如果一定要用联网 AI 工具:只复制当前需要提问的片段,不要让工具扫描完整项目文件夹,尤其禁止读取.git 目录。
3. 警惕 Git 历史泄露风险

很多人只保护现在可见代码,忽略.git 目录。哪怕当前文件已经删掉密码密钥,git 历史里面依旧完整留存。一旦工具扫描整个仓库,历史秘密全部会被打包带走。
4. 学会简单排查客户端行为

重要项目使用 AI 工具的时候,可以借助抓包工具观察客户端网络请求,看是否出现大量本地文件、压缩包向外上传行为。
五、行业留给 AI 编程工具的拷问

  • 默认行为边界:工具到底应该读取多大范围本地文件?是仅读取当前打开的单个文件,还是默认扫描整个项目完整仓库?
  • 用户知情权:全量仓库快照上传,必须明确弹窗告知,并且提供关闭开关,不能藏在后台静默执行。
  • 数据销毁可信度:声称 “用完即删” 如何可审计?上传的加密快照,密钥全部掌握在服务商手里,用户无法验证是否真的销毁。
  • 训练开关与上传行为要解耦:不能让用户误以为关掉训练,就代表代码不会离开本机。
六、常见认知误区澄清

  • 误区:关掉 “允许用于模型训练”,代码就不会上传云端
真相:训练开关只管模型迭代;客户端快照、索引上传是独立业务流程,二者互不绑定。
  • 误区:加密上传等于代码是安全的
真相:加密只是传输过程加密,解密私钥在服务商云端。加密上传≠数据不会被服务商读取。
  • 误区:只有国内 AI 编程工具有这类问题
真相:海外 Cursor、Grok Build 同样存在仓库上传机制,区别在于产品提示、默认开关策略。
  • 误区:只要不上传给大模型推理,代码就不会流出本机
真相:客户端可以为了索引、快照功能,在调用大模型之前,就已经把完整项目上传服务器。
结语

ZCode 风波,不只是单一产品 bug,它撕开 AI 编程时代一个被普遍忽视的安全盲区。
很多开发者的固有认知存在漏洞:模型训练开关不等于数据上传总开关。风险不止来自大模型本身,AI 客户端软件的快照、索引、后台上传逻辑,同样会带走包括 Git 历史在内的全套项目资产。
对于开发者,对待商业机密代码,不能盲目信任 AI 工具的默认配置;对于产品厂商,需要重新回答一个基础问题:AI 工具到底有权读取你电脑磁盘里多大范围的文件?知情权、可关闭开关、行为可审计,才是 AI 编程工具最基础的信任基石。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|天翼网

相关侵权、举报、投诉及建议等,请发 E-mail:2026@typc.net

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|晋ICP备2026008270号-1|晋公网安备14010602111293号

QQ客服返回顶部