ARTICLE · 1054147
ZCode 事件后,查查你的 AI 编码工具在传什么
9 月 18 日,智谱的 AI 编程工具 ZCode 被开发者逆向实锤:登录状态下,它会把整个工作区——包括完整的 Git 历史、LFS 缓存和 .env 密钥——打包加密上传到云端对象存储。有开发者统计,自己的商业项目被打成了一个 313MB、含 4 万多个文件的快照。官方随后道歉:这是默认开启的「仓库索引」功能,最新版已移除并切断快照上传链路,并请中国信通院和绿盟科技做了安全审计。
信不信这个回应,你可以自己判断。这篇教你一套「出境审计」三板斧:盘点 → 静态扫端点 → 动态看连接 → 抓包判读,全程 20 分钟,对你机器上任何一个 AI 编码工具都适用。文中所有命令和输出,都是我在 ZCode 开源版上实测的真实结果。

很多人的机器上同时躺着三四个 AI 工具。先把审计对象数清楚:CLI、桌面应用、还有 VSCode / Cursor 里装过的 AI 扩展,都算。
这条命令把目录里所有硬编码的 https 域名抓出来按频次排序。我对刚开源的 ZCode 源码树跑了一遍,结果相当干净:

读法三条:① 出现官方模型 API 域名(比如 api.z.ai、open.bigmodel.cn)= 正常业务,不用慌;② 出现第三方统计 SDK 或对象存储(OSS / S3)域名 = 警惕,去翻官方文档看有没有写明用途;③ 闭源工具先用 strings 处理二进制再 grep:
让 AI 工具正常跑一个任务,另开一个终端反复执行这条命令,把出现的域名记下来。这是最便宜的「行为审计」:静态名单会说谎(可以动态拼 URL),运行时的 TCP 连接不会。把域名清单拿去和官方隐私文档比对,多出来的每一个都值得追问。
抓包重点看两样:目的地域名,和 POST 请求体体积。经验法则:KB 级的 JSON 是遥测(用了哪个模型、报了什么错),MB 级的二进制是内容上传,基本没有例外。ZCode 事件里那个 313MB 的快照,就是被异常体积出卖的。

对照 ZCode 事件:打包整个工作区、加密且解密私钥在服务端(用户自己都解不开自己上传的东西)、界面开关关不掉——三条红线全中,这就是它能引爆的原因。顺带划一下官方声明的重点:新版已移除 Repo Wiki 功能并切断快照上传链路;信通院与绿盟的审计结论是云端存储桶内无数据留存。在审计报告全文公开之前,「官方声明说」和「已独立验证」是两回事。

第 3 条多说一句:公司内网的出口代理本来就是一道现成的审计器。这次排查中,ZCode 的域名就是先被公司代理拦下来(curl 报 56 Proxy CONNECT aborted),才顺藤摸瓜查到认证和端点的——闸门拒绝了谁,和工具连了谁,是同一份情报。
开源不等于安全,闭源不等于有罪。「可审计」才是选型硬指标:端点你看得见、流量你抓得到、开关你关得掉——三条都满足的工具,才配碰你的代码库。ZCode 这次至少把源码交出来了,审计有了抓手;对那些连端点都摸不到的工具,多想一秒不亏。
你跑完三板斧,扫出了什么意外域名?评论区见。觉得有用点个「在看」,转发给那台装满 AI 工具的电脑的主人。