夜雨聆风学习资料网

ARTICLE · 1048313

AI 编程工具,正在偷偷看你的代码

AI 编程工具,正在偷偷看你的代码

9 月 18 日,开发者圈炸了。

一款 AI 编程工具,被曝在后台静默上传用户的整个代码仓库——包括完整的 Git 历史、大文件缓存,甚至已经删掉的密钥痕迹。

这款工具叫 ZCode,智谱旗下的 AI 编程产品。

当天 17 时 44 分,智谱官方致歉,承认问题源于一个默认开启的功能。

从信任崩塌到承诺开源,只用了一天。这件事,值得每一个用 AI 写代码的人认真看一遍。

一、先还原:到底发生了什么

9 月 18 日,多名用户爆料:ZCode 在账号登录状态下,会后台静默打包整个项目工作区,上传到第三方云服务器。

不是只传「当前打开的文件」。爆料里列出的范围,让不少开发者脊背发凉:

完整的 .git 版本历史——你每一次提交的演进痕迹,全在里面。

大文件存储(LFS)缓存、本地提交记录。

甚至包括已经删除、但还没推送到远端的敏感配置和密钥痕迹。

更让人不安的是加密方式:加密用的公钥由服务端下发,私钥只存在云端。本地客户端根本打不开这份数据包——你的数据被拿走了,你连看一眼里面装了什么都做不到。

上传失败还会反复重试。有用户手动删掉本地加密包,软件又会自动重新生成。

那设置里能不能关掉?也不能。

ZCode 的界面里确实有两个相关开关:「体验优化」控制是否拿数据训练模型,「仓库快照索引」控制云端是否建索引。

但两个开关都拦不住打包上传本身。只要你登录着,这套机制就默认在跑。

你以为是两个开关,其实是两扇假门。

二、官方致歉:四个动作,一次看懂

9 月 18 日 17 时 44 分,智谱官方发布情况说明,向受影响用户致歉。

说明里对事件的归因是:一个叫「代码库索引」的功能。

这个功能的设计初衷,是在本地生成仓库索引,支撑三类开发辅助能力:会话断点恢复、历史版本回退,以及「代码仓库知识库」(Repo Wiki)。

问题出在最后一项:Repo Wiki 在云端生成页面时,会触发仓库数据上传。官方强调,云端生成完成后,上传的数据会立即销毁,不会保存。

真正踩中雷区的,是「默认开启」——功能上线初期没有征求用户同意,在用户未充分感知的情况下触发了上传。

官方公布的整改是四个动作:

  • 漏洞已经修复
  • 近期开源 ZCode 代码库
  • 邀请第三方评估人员做独立审查,并持续公开审查进展
  • 为全体用户额外提供一次周额度重置,说明发布当天就发放

平心而论,这个响应速度在同类事件里算快的——从爆料到致歉,同一天完成。

但争议并没有因此平息,核心就一条:隐私政策里,从来没写清楚会采集完整的 Git 历史

对普通软件来说,采集一些使用数据可以理解。但对代码工具来说,.git 目录是开发者最深的抽屉——早期提交里残留的密钥、内部业务逻辑的演进痕迹,全在里面。

出事之后再解释「用完就毁」,和事先讲清楚「我会拿什么」,是两种完全不同的诚意。

三、48 小时后:有企业发函追责了

事情没有停留在「个人开发者吐槽」。

9 月 20 日,太原承明科技向智谱运营主体发函,就 ZCode 涉嫌擅自上传公司数据资产及商业秘密提出多项要求,并保留法律追责权利。

承明科技的独立取证,给出了一组具体数字:6 个工作区被完整上传,合计 34,549 个文件、约 425MB 明文。

内容也不只是代码——按发函说法,还包括系统架构、数据库口令、云服务凭证和员工个人信息。

函件里有两点更关键的质疑。

其一,承明科技的客户端 9 月 16 日已更新到 3.12.3 版本,但 9 月 18 日凌晨——也就是官方致歉当天——仍检测到上传行为。「已修复」的实际效果,被打了问号。

其二,客户端的网络请求指向海外注册主体,数据是否存在出境传输或境外存储,成为函件里的核心追问。

承明科技要求智谱在 10 月 10 日前书面答复,同时彻底删除已上传数据、提供处理清单与访问日志。

截至目前,智谱尚未公开回应。

后续看两个时间点:10 月 10 日的答复期限,以及开源承诺的兑现进度。

需要说明的是:以上为承明科技单方发函与媒体转述的企业主张,不是生效法律认定;事件全貌,以双方后续披露为准。

四、干货时间:代码库索引,到底是什么

情绪归情绪,这件事里有三个知识点,值得每个用 AI 编程工具的人搞懂。

知识点一:本地索引和云端上传,是两件事

代码库索引本身是个正当需求。

AI 编程工具要「读懂」你的项目,得先给代码建索引:哪些文件在哪、函数怎么命名、模块之间怎么调用。

关键区别在于:索引在哪里建

在本地建索引,数据不出你的电脑,AI 工具调用本地索引回答问题——这是安全的做法。

一旦索引要「上传到云端处理」,边界就变了:你的代码离开了你的机器,进入别人的服务器。

这次事件的问题,恰恰是模糊了这条边界:功能叫「代码库索引」,听起来是本地的事,实际却触发了云端上传。

看一个 AI 工具可不可信,别看它的功能名叫什么,看数据流向哪。

知识点二:「默认开启」,是智能体时代的通病

ZCode 不是第一个踩这个坑的,也不会是最后一个。

AI 编程工具、AI 智能体要好用,就需要权限:读你的文件、记你的上下文、访问你的仓库。

产品设计的直觉是:权限开得越足,体验越流畅。于是大量功能被设计成「默认开启」——用户少点一次确认,用起来就「顺滑」一分。

但安全领域的共识正好相反:最小权限原则——每个功能只拿它完成任务所必需的最小权限,而且默认关闭、由用户主动打开。

就在事发同一周,两份行业材料正好点了这个问题。

360 AI 安全实验室 9 月 18 日发布的《大模型安全测评体系与实践报告(2026)》指出:步入「数字员工」时代后,大模型的风险已超出内容安全范畴,延伸到自主调用工具、执行任务过程中的权限与行为失控。

机器之心 9 月 17 日的分析也指出:当大模型智能体进入浏览器、邮件、数据库与业务系统后,如果安全评估只检查最终回复,覆盖面明显不够——网页隐藏指令、过宽的工具权限、错误的记忆,都可能让多轮执行偏离授权。

两次提醒,说的是同一件事:AI 工具的权限,正在成为新的安全主战场

一句话记住:体验上的「顺」,不该以安全上的「盲」为代价。

知识点三:3 步自查,今天就能做

给一份可以直接照做的自查清单。

第一步:翻设置。 打开你 AI 编程工具的设置页,逐项看权限开关。重点看三类:数据上传、训练数据授权、云端索引。拿不准的先关掉,观察功能是否还够用。

第二步:查政策。 看隐私政策的「数据采集」一节,搜三个关键词:Git、代码、上传。没写清楚采集范围的,默认按「会采集」来对待。

第三步:挪密钥。 把密钥从代码目录里挪出去,用环境变量或专门的密钥管理工具。别让 .git 历史里躺着任何密钥——这条就算没有 AI 工具,也早该做了。

工具可以默认帮你干活,但权限不能默认替你做主。

五、往后看:信任是 AI 编程工具的地基

最后说说这件事更大的意义。

国内 AI 编程工具正处在爆发期,从大厂到创业公司,家家都在卷智能体、卷上下文、卷长程任务。工具要接管的工作越深,要碰的代码就越核心。

这次事件把一条底线摆上了台面:用户交出的每一份权限,都得是清醒的、主动的、可撤回的

智谱这次的响应,止损动作齐整;但真正的考题在后面——开源承诺能不能兑现,第三方审查报告敢不敢全公开。答案落地之前,开发者会用脚投票。

顺带说一句,「开源代码库」这个动作对编程工具的意义,比看起来更大。

开源不只是姿态:它让「数据到底流向哪」从一句官方承诺,变成所有人都能亲手验证的事实。对一家靠开发者信任吃饭的公司,这可能是比道歉更值钱的表态。

对整个行业来说,这一天未必是坏事。

AI 编程工具还在快速进化,今天的问题明天可能就有了新答案;但「数据流向哪里」这个问题的分量,只会越来越重。

信任是 AI 编程工具的地基,而地基这种东西,从来都是出过事、修过补,才变得结实。

💬 互动问题

看完这件事,你现在敢让 AI 编程工具碰你的生产代码吗?

A. 敢——工具在进步,关好权限就行

B. 不敢——核心代码必须留在本地

评论区站个队,说说你的选择。

📋 一页带走清单

三个关键词记住这件事:索引(功能名≠数据流向)、默认开启(权限通病)、最小权限(自查原则)

今晚花三分钟,翻一遍你 AI 工具的设置页。

关注爱创见,每天一篇 AI 深度干货。觉得有用,点个❤️,再留言说说你的选择。

相关学习资料