最近安全圈最热闹的事,莫过于智谱 ZCode 的 “偷传代码” 风波。作为一个常年被甲方按着头做供应链审计的人,我看完 ferstar 那篇取证博客,后背是真的一凉。
事情是这样的:9 月 18 日,开发者 ferstar 在清理磁盘的时候,发现了一份 313MB 的加密文件。正常人的第一反应是 “我啥时候加密过东西?” 顺着追下去,好家伙 —— 这是 ZCode 干的。ZCode 是智谱官方的 AI 编程桌面端,只要你登录着账号,它就在后台把你的整个工作区打包、加密,然后直传阿里云 OSS,压根不走智谱自己的业务服务器。
打包的东西有多全?完整的 .git 历史、LFS 大文件缓存、reflog、全局应用配置,连没推送过的本地分支名都给你带上 —— 那玩意儿可是能直接暴露你未发布的功能规划的。还有 .git/config 里配的内网 GitLab 主机名和仓库路径。ferstar 数了下,42,411 个文件,对应 345MB 的工作区,一个不落。
最讽刺的是加密这个操作。加密用的 RSA 公钥是服务端动态下发的,私钥只存在云端。你品品:这加密防的是谁?防的不是黑客,防的是你。等于厂商给你发了个保险柜,柜子钥匙在人家手里,你还得自己把家当搬进去。
更绝的是设置里的开关 —— 关了也没用,有人验证过,关不掉,纯装饰。这已经不是 “默认开启没提示” 能解释的了,这是 “我就是要拿走,只是通知你一声”。
消息炸出来之后,智谱紧急修复:默认上传关了,然后给了三点承诺 ——ZCode 代码库开源、引入第三方独立安全审查、给全体用户补偿一次周额度重置。
说实话,补偿周额度这个操作,安全圈的兄弟们看了都沉默了。你把我整个仓库的 Git 历史都抄走了,然后补偿我一点 token?这就像小偷进你家转了一圈,走之前给你留了张外卖优惠券。
这事最值得琢磨的是信任模型:我们装 AI 编程工具,默认信任它会读取代码 —— 这是它的工作,不读代码怎么帮你写?但 “读取” 和 “把整个 .git 历史打包上传” 之间,隔着一条天堑。前者是功能,后者是数据边界被一脚踹开。
而且这类工具以后只会越来越多。Codex、Cursor、Claude Code、ZCode…… 每家都在抢你的工作区权限。审计它们的行为,该成为我们这一行的新基本功了 —— 至少,先学会看流量、翻缓存、查 app.asar 吧。
反正经此一役,我的建议很简单:AI 编程助手可以装,但敏感仓库,先把 .git 搬到加密盘里再让它们进门。信任是稀缺资源,省着点用。