ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【AI速览】ZCode“偷传代码“ 事件全复盘:AI 编程工具的信任危机,与开发者的自救手册

【AI速览】ZCode“偷传代码“ 事件全复盘:AI 编程工具的信任危机,与开发者的自救手册 2026 年 9 月 18 日智谱旗下 AI 编程工具 ZCode 被曝 静默上传 用户完整工作区至阿里云 OSS开发者社区炸锅。三天之内智谱致歉 → 企业发函追责 → 工具宣布开源 → 双机构审计 → 上线 数据不留存 功能。 这不是一次普通的产品事故而是给整个 AI 编程行业上了一堂安全课。本文基于公开报道与逆向分析资料还原事件全貌拆解技术链路并给开发者一份可执行的防护清单。一、事件时间线三天五个关键节点时间事件9 月 18 日开发者ferstar发布逆向分析ZCode 桌面端在登录状态下将整个工作区打包加密上传至阿里云 OSS包含完整.git历史、LFS 缓存、reflog、全局配置智谱当天在用户群致歉归因于 代码库索引Repo Wiki功能 默认开启9 月 20 日太原承明科技公开发函追责指出致歉当日凌晨仍有上传记录提出 12 项要求质疑数据是否出境保留刑事控告权利最后期限 10 月 10 日有用户晒出火绒监控显示后台累计上传43GB数据9 月 21 日智谱宣布ZCode 正式开源至 GitHub并公布两份第三方审计结论中国信通院确认涉事 OSS 存储桶 云端零数据绿盟科技确认桶内数据对象及存储桶已删除v3.14.0 客户端已移除 Repo Wiki 入口9 月 22 日智谱宣布上线数据不留存 功能风波仍在发酵一句话概括一款 AI 编程工具在用户不知情的前提下把整个项目的 家底—— 源码、Git 全量历史、大文件缓存、操作日志、历史密钥 —— 打包加密传到了云端而且解密私钥不在用户手里。二、硬核拆解这个 静默上传 到底是怎么实现的根据 ferstar 的逆向分析上传链路是这样一条完整流水线flowchart LR A[ZCode 桌面端br/用户处于登录状态] -- B[触发工作区快照br/后台生成加密包] B -- C[向智谱服务器索取br/上传凭证 RSA 公钥] C -- D[本地压缩 RSA 加密br/整个工作区: .git/LFS/reflog/全局配置] D -- E[绕过智谱业务服务器br/直传阿里云 OSS] E -- F[OSS 回调智谱后台br/完成数据入库] C -- G[解密私钥仅存云端br/用户本地无法解密]关键细节这是整个事件最 硬核、也最让开发者愤怒的部分2.1 触发条件只要登录就上传不是用户主动操作也不是某个明确的功能开关。只要 ZCode 处于登录状态客户端就会在后台静默执行。有逆向分析指出设置里的开关无法阻止本地侧边进程无条件捕获并加密上传核心资产。2.2 上传内容不是 当前代码是 全部家底被打包的内容远超 正在编辑的代码当前项目全部源代码完整.git历史从项目创建以来的每一次提交LFS 大文件缓存可能包含二进制资产、模型文件、压缩包reflog 记录分支操作、reset 痕迹部分全局开发配置可能含账号、Token、代理配置历史凭据 / 密钥一旦曾提交进仓库就可能在历史里。风险等级完全不同泄露 当前代码 是泄密泄露 全量 Git 历史 密钥 是把整个研发资产连锅端。2.3 加密方式RSA 公钥动态下发私钥在云端客户端向智谱服务器索取上传凭证 一把 RSA 公钥动态下发本地用公钥加密打包直传阿里云 OSS绕过智谱自己的业务服务器走对象存储直传通道解密所需的私钥只存在于云端用户本地没有。这意味着什么用户拿到的只是一堆自己解不开的密文 —— 无法验证 云端是否真的销毁了无法自证清白信任完全建立在厂商的一句话上。数据已销毁 成了无法被用户独立验证的承诺这是后续争议持续发酵的根本原因。2.4 上传失败 564 次痕迹是这样暴露的有用户发现本地残留的压缩包显示某次上传尝试失败 564 次。也就是说这个机制会持续重试即使网络不通也锲而不舍。正是这些残留痕迹让逆向分析得以还原整个链路。三、为什么开发者炸了三个层面的信任崩塌3.1 知情同意层面默认开启 开关无效代码库索引 功能默认开启且设置开关无法真正阻止上传。用户花钱请了个 AI 助手结果它在后台悄悄把家底往外搬 ——这已经不是产品缺陷是信任欺诈。有首席科学家用了一个很贴切的比喻相当于请保洁保洁却在你不知情时把保险箱里的房产证和银行卡密码复印打包带走了。3.2 数据范围层面超出一切合理预期即便要做 代码索引 提升 AI 补全质量也不需要上传完整.git历史、LFS 缓存和全局配置。数据采集的边界被无限放大完全超出 功能所需的最小数据 原则。3.3 技术设计层面私钥在云端 不可证伪非对称加密在这里的用法非常反直觉公钥加密、私钥解密用户本地只有公钥。这种设计保证了传输安全却也保证了用户永远无法独立验证数据是否真的被删除。厂商说 已销毁用户只能选择信或不信 —— 信任危机由此而生。四、事件升级火绒实锤 企业发函事件没有停留在 社区争论很快演变成有实锤、有法律动作的纠纷火绒流量监控实锤有用户晒出监控记录后台累计上传43GB—— 远超 代码索引 的合理需要被网友评价 跟木马有什么区别企业发函追责太原承明科技公开致函指出致歉当日凌晨仍有上传记录即 道歉了但还在传提出 12 项要求包括数据是否出境、留存明细、删除证明等并保留刑事控告权利智谱港股身份智谱为港股上市公司2513.HK事件直接波及资本市场与百万级用户对 AI 编程业务的信任。五、智谱的整改开源 双审计能挽回信任吗面对舆论智谱的回应速度很快动作也算 教科书级9 月 18 日当天致歉归因 代码库索引功能默认开启承诺立即销毁9 月 21 日宣布 ZCode 正式开源至 GitHub接受社区监督 —— 用 源码透明 回应 机制黑箱引入第三方审计中国信通院确认涉事 OSS 存储桶处于云端零数据状态绿盟科技确认桶内全部数据对象及存储桶本身已删除v3.14.0 客户端已移除 Repo Wiki 入口切断本地仓库快照生成与上传链路9 月 22 日上线 数据不留存 功能—— 从产品层面把 不采集 变成默认承诺。客观评价开源 第三方审计 移除上传链路是 AI 工具应对数据信任危机最标准的组合拳。但遗留问题依然存在已上传的历史数据是否真的无副本数据有没有被用于模型训练智谱称从未使用这些依赖审计结论和厂商声明信任修复仍需时间。六、硬核反思AI 编程工具的安全边界到底在哪ZCode 事件不是孤例它暴露的是整个 AI Agent 工具类的结构性风险6.1 风险模型变了从 用户主动提交 到 Agent 默认被允许访问什么传统工具的风险是 用户上传了什么而 AI 编程工具Agent要读你的代码、索引你的文件、调用你的工具、操作你的本地环境—— 这是它的核心能力。于是风险从用户主动提交了什么变成了Agent 默认被允许访问什么。权限边界一旦画错工具本身就成了最好的数据搬运工。6.2 索引 功能的安全红线代码索引做语义补全、全局搜索是 AI 编程的合理需求但设计时必须守住三条红线最小化只采集 当前打开文件 / 工作区必要信息绝不碰.git全量历史、reflog、全局配置本地优先能本地完成的计算向量索引、搜索就在本地做云端只收必要结果默认关闭 显式告知涉及数据上云的功能必须默认关闭开启时用清晰、显著的方式告知用户上传了什么、存多久、谁可见。6.3 私钥在云端 的设计教训任何需要 用户信任 的数据通道都应该让用户可验证提供本地解密能力或端到端加密 用户持有私钥提供 数据包内容清单让用户知道自己被传了什么提供可独立核验的删除证明而非一句 已销毁。信任不是靠承诺是靠可验证性。6.4 行业影响可以预见ZCode 事件之后开源会成为 AI 编程工具重建信任的标配让安全可审计第三方安全审计信通院、绿盟这类会变成行业惯例数据不留存 / 本地模式 / 断网可用会成为企业选型的硬性指标企业采购 AI 编程工具会把数据安全评估提到和功能评估同等重要的位置。七、开发者自救手册AI 编程时代的安全底线干货事件可以复盘但更重要的是 ——古法程序员该怎么保护自己的代码以下是可立即执行的清单7.1 第一层看得见网络与流量审计在开发机安装流量监控 / 防火墙如火绒、GlassWire盯住可疑的出网连接与上传流量敏感环境用代理白名单只放行必要的域名IDE 更新、模型 API其余一律拦截定期检查 DNS 请求日志看有没有 不认识 的存储域名OSS、S3 等。7.2 第二层管得住工具权限最小化登录态是最大的上传开关 ——不用的 AI 工具及时退出登录关闭一切 改进产品 数据回传 索引 遥测 类默认开关ZCode 事件就是默认开启的索引功能闯的祸检查工具是否支持本地模式 / 断网模式补全质量靠本地小模型也能满足时就别开云端选型时先看三件事是否开源、数据留存政策怎么写、有没有第三方审计。7.3 第三层隔得开环境隔离涉密 / 商业核心项目放在容器、虚拟机或专用开发机里跑 AI 工具物理隔离是最有效的防线用 Docker 装 AI 插件环境宿主机代码只读挂载工具想传也只能传它看得到的公司级把 AI 工具纳入网络准入出网流量走统一审计网关。7.4 第四层擦得净密钥与历史卫生历史里的密钥比当前代码更危险定期用git filter-repo或 BFG清理.git历史中的密钥 / Token清理reflog、LFS 缓存、本地缓存目录rm -rf .git/refs/originalgit reflog expire --expirenow --allgit gc --prunenow密钥改用环境变量 密钥管理器1Password/vault绝不落盘进仓库已泄露的密钥立即轮换—— 不是删掉是换新的。7.5 一句话原则AI 工具能看什么、能传什么必须由你决定而不是由它的 默认开关 决定。装任何 AI 编程工具之前先问它三个问题开源吗数据留多久我能验证删除吗八、总结AI 是桨你是船长ZCode 事件给所有 AI 编程用户的启示和 古法程序员 系列一贯的主张完全一致AI 的便利要拥抱但信任边界必须自己划功能强大不等于可以越权—— 读取、索引、上传每一步都该有明确授权开源和审计是信任的基石—— 没有可验证性的承诺都只是营销话术历史密钥和 Git 历史是数据资产的地雷—— 清理一次胜过补救十次。浪潮还在继续AI 编程工具还会越来越多、越来越强。但记住AI 是桨你是船长。桨再快也不能让它自己决定船往哪开、装了什么货。
返回列表