智谱偷代码被实锤秒怂,承诺改bug开源接受第三方审计。大家好,欢迎收听老范讲故事的YouTube频道。智谱偷代码直接被抓了个现行。先跟不写代码的朋友们交个实底啊,这一次被实锤的产品叫ZCode,是智谱今年7月份推出的AI编程桌面工具。对标的是Cursor和Claude Code这一类的产品,你在里头写代码啊,大模型帮你去做代码生成、补全、改bug,甚至把整个项目搭起来。

偷代码偷的到底是什么呢?大家要注意啊,不是说你写了提示词打了个回车,或者请你修改哪段代码去处理一下,它把这些东西作为上下文传回去了。不是这样的,这个其实大家已经心里有底了:你既然选择使用AI去写程序,就没惦记保密。但是智谱这一次做的事情更过分一些:你没发给他的东西,他也会传上去;他会把整个项目全都打包,而且是包括你整个的Git历史记录一起都打包。

然后自己还加了个密,直接给传走了。今天的话咱们就要来把这个事稍微捋一捋:首先呢,咱们要讲一下这事谁爆出来的、到底靠不靠谱;然后咱们再详细地说一说他到底偷了什么,哪些事他干了、哪些事他没干;咱们也要看看智谱的这个小心思。现在三天过去了,承诺兑现了哪一些?然后别家是不是也干这种事啊?还是只有他干?

如果别家干,那智谱到底跟其他人有什么不一样的地方?最后呢咱们要讲一下以后这些工具咱们该用哪个,哪个要小心一些。首先呢,咱们来讲一下这事谁爆出来的啊:有一个人的网名叫ferstar(F E R S T A R),人呢应该是个大陆的人,独立开发者。平时写Python、写Go,业余给小米、一加这些手机做一些Linux内核补丁。

不是安全圈的名人啊,就是个看见怪事忍不住去扒一下的这种技术人。文章呢是9月18号中英文双发,现在因为有AI了嘛,所以你也不用担心他英文怎么样。这哥们也写了一堆的英文的博客啊,但是呢他说的是:“我所有博客都是用中文写的,只是用英文翻译了一遍放在这而已。”诶说到这,我是不是可以把我自己的中文博客都翻译成英文也放一遍?这个等我思考一下啊。

事情呢是从9月16号开始的,这位ferstar他去清理磁盘,发现ZCode的数据目录占了700多兆。他就觉得很奇怪:“我没怎么用这东西啊,这不正常啊。”这些文件到底哪来的呀?顺着目录翻下去,发现有一个叫checkpoints文件夹里头躺着一个加密文件313兆。旁边呢有一份明文状态文件,三个关键字段:哪三个关键字段呢?

第一个对应他本地一个商业项目整个仓库10GB,排除依赖包之后打包了345兆。几乎全是核心知识产权!大家注意啊,这个10GB的项目里头可能有很多是你下载的开源包这种依赖库啊,这个东西是没必要重新传的。现在只是把他自己生生写的这345兆打包打在里头了。第二个包的类型写的叫baseline基线,全量基线快照,不是增量。

什么意思呢?就是像我们去打包这些代码的时候啊,一般不会去做全量基线,因为量太大。我们会去做增量:就是每次改了哪些、每次改了哪些啊,会做这些东西。第三个呢更可笑的一个数字叫失败次数564:也就是ZCode尝试上传它这345兆的包,尝试了564次失败了。还在本地排队呢等待传第565次,非常非常的执着!

删了它吧,它又能长回来。他一开始以为就是个临时文件就删了,过了半个小时以后发现一个新的313兆的包又给打回去了。计数器从564变成了565:“你删你的,我计数上啊又失败了一次,我准备继续往上传。”那一般人啊到这就卸载了:“说你这有问题啊你偷我东西对吧?”这位哥们呢有点较真直接拆包了。

现在这种AI IDE的工具呢都是用一些TypeScript语言去编程然后打包出来的,它是可以拆出JavaScript包来的。普通人搞不了这个事,他可以把这些执行代码拆开了啊去读去了。于是呢他就发现了秘密啊:整个过程还原出来,客户端向智谱服务器要凭证和公钥。呃说我现在准备往上传东西了啊请你给我一个呃上传的公钥。

公钥是什么东西呢?咱们现在做加密都是叫做非对称加密,也就是一个公钥一个私钥。公钥的意思是你拿回来把这个东西加密了以后上传上去,然后他再拿私钥给你解开。等于同一个文件包你让公钥加密了以后用公钥解不开,这样的话保证这个公钥虽然可以在公开的网络上去传播但是呢你加密的包在过网络的时候是不能解开的。

然后本地拿到公钥以后呢就是打包加密,绕过智谱自己的业务服务器一个表单直接把这个加密包甩到阿里云对象存储上。在智谱自己的应用服务器上不留上传记录。懂行的朋友你们品一品啊,这个是像干好事的样子吗?肯定不像啊!这个发现了以后他到18号把这个文章发出来,开源中国、博客园、V2EX、Linux.do直接炸锅了呀。

还有用户在官方飞书群里头直接就骂街:“你直接把我所有的东西都传上去你到底想干什么呢?”还有人甩了一张火绒流量监控截图。火绒也是一个安全软件,它专门会监控你的电脑往上传多少东西。他们发现呢智谱ZCode偷偷上传了43GB的内容,截图发出去3分钟就被管理员直接给删了这个呃也是很神奇的一种操作。

因为我们以前管理过社区啊,你只要在里头敢删帖这事一定会爆!你上来要解释一下稍微抹个稀泥没准还能够稍微拖延一下。你直接删帖,你在自己的能够说话的地方把帖删了那就属于逼着大家出去说了嘛!啊所以这个事情就直接爆炸了。43GB呢是个用户截图,这东西到底是做的什么咱不研究了;但是呢那个313兆、564次加密算法这个是ferstar自己在机器上一步一步提取出来的,每一步都写了复现的方法谁都能够去验证。

他不是来骂街的他就是提交了个证据。智谱呢删了帖以后想了想啊说算了认吧,当天下午17:44道歉声明就出来了。也没有敢说造谣啊就直接对不起啊我这有个bug我去给你把这个bug修掉了然后我去开源、我去接受审计就把这些事就全说了。那这313兆里边到底都装了什么呢?这个加密包因为本地是打不开的啊,这个也是一个比较恶心的事情:文件是你的人家给你一个公钥你在本地把这个文件加密了以后你自己打不开你不知道里头是什么。

但是呢呃ferstar他看到了有一个叫打包文件清单的东西,他知道里头大概打了哪些东西。虽然这个加密包我解不开了,这个打包文件清单呢是明文存在本地的啊!他把这个包打开一看:42,411个文件,非常非常精确的一个数啊有零有整的。这个里头Git的大文件缓存是196.1兆占56.8%;Git对象库也就是完整提交历史102.2兆占29.6%;Git日志0.6兆。剩下的是源代码和文档46.2兆,整个包86.6%是Git目录。

当前代码只有13.4%!大家注意啊,我们去写程序的时候特别是需要做版本控制的时候我们会喜欢做一个Git。Git这个东西呢实际上会在我们的项目目录里头留一个个隐藏目录叫.git,它会把我们所有这个项目的提交历史全都存在这个目录里头。你说哎我不是存GitHub吗?GitHub就是他把这个目录里的内容再去推送到GitHub上去,但是你只要做Git呃完整的更新日志全都是在本地的。

整个更新历史都在本地!所以这个300多兆里头大部分86%就是这个Git目录。那智谱为什么把整个Git目录都打包打上去呢?这个不写代码的人可能不太理解啊:你今天改了什么、昨天删了什么、三个月前加了什么?每次提交你还要去写一个叫git commit的一个注释说我这一次解决了什么问题。所以去做提交把这些东西通通都要写在这个目录里,它不是项目现在的样子啊它是项目从头一天创建一直发展到今天。

中间每一步踩过的所有坑都在里边了!那么智谱把这种东西传上去这就非常非常危险了呢?为什么呢?因为这种Git目录里头经常会存比如说历史的密钥。按道理来说我们是不应该把密钥传到Git服务器上去的,所以呢有一个文件叫.gitignore就是你可以在里头写说哪个文件不传上去、哪个文件不传上去。但是呢我们有时候会图省事暂时呢就先写在里头了,等下一次呢我们再更新.gitignore的时候呢把这个写密钥的文件排除掉以后就不再提交了。

但是以前写过的通通都在历史目录里存着呢啊非常危险!第二个呢就是没推送的本地分支名。因为Git很多东西是在本地我们是不需要推送到服务器上去的,这些东西里头可能有你偷偷做的一些新功能啊、给一些大客户做的定制啊。等于把所有没发布的产品规划通通都拎走了!啊像我们就向GitHub去推代码的时候我们只把这个特定的分支推上去并不会把所有的分支都推上去。

现在智谱把所有这些玩意啪一把全都拿走了,那就相当于是把你整个的保险库密码本、整个失败和成功的所有的经验教训通通全都拎走了!智谱还是呃拿的东西拿的挺全的。那这个文件是在什么情况下传呢?代码里头有两个触发器:一个呢叫做每一次捕捉到提示词的时候。什么意思呢就是你每一次打回车提交prompt进去的时候它就去进行抓取,这个博主做了测试啊打了是62个回车每一次他那个就尝试去打包啊去上传就干这样的一个事情。

另一个呢是挂在任务完成时标记呢叫做仓库Wiki更新这个咱后边讲。你说我关了行不行?你默认开我就给你关了不就完了吗?虽然默认开这事也很恶心啊这个就属于更吓人的一点了!智谱ZCode里头有两个开关:第一个呢叫优化体验,第二个叫仓库快照索引。博主都尝试了把这两个关掉了以后发现没有任何作用照传不误!所以开关是有的但是本地打包上传这件事情并不受开关的影响。

那你说他这隐私政策里头到底写了什么呢?智谱是有很多To B的用户的,你干这样的事情实在有点太伤人品了!啊这位博主呢把政策FAQ更新日志翻了个遍,整仓快照Git历史一个字都没提过。只有一句套话政策原文啊咱们就直接念:“收集你在对话中提交的文本、文件和代码。”压根就没有说我会把你整个的Git仓库Git历史全都给你传上去!大家注意它整个的呃隐私政策FAQ里头写的其实是骗人的。

这几样东西凑齐了以后智谱都干了什么呢?你只要登录我就传;开关是个摆设;政策里头一个字没写;删了重新打包;钥匙在云端。它只有一个打包文件清单,打包以后的结果你看不到只有上传了以后云端才可以看到!而且是把你所有的Git仓库和历史分支全都是一把打包上去的。这还能叫bug吗?咱们自己想想啊智谱呢真的是秒怂啊!四份承诺和一个为了你好这事,咱们作为中国的用户已经比较习惯了。

道歉是9月18号17:44发的,发在哪呢?这个特别有意思啊:发在ZCode的官方飞书群里。他没有做官网的发布也没有发任何的新闻,只是在他的飞书群里发了一下就是说我们给开发者安抚一下其他人你们就当不知道好了。咱们来摆一摆他都说什么了呢?首先这个问题是出在代码库索引功能上了!什么叫代码库索引呢大家要知道大模型干活的时候它是有上下文限制的啊你不能超出它的上下文范围。

但是你一个代码库里头有很多很多的代码我到底改哪块不改哪块呢?它需要先去做索引这样可以在你去修改代码的时候快速的找到目标代码区域去给你进行修改。这个也可以帮你节省大量的上下文啊可以替你省钱省token的!所以呢它里头有一个叫做仓库Wiki更新的一个触发项啊说只要触发了这个我就去帮你上传啊上传到云端去我来在云端帮你整个的进行索引。

索引好了以后我再把索引的结果传回来!而且呢智谱还说了说所有代码送到云端以后啊,我们索引完了就给你删了我绝对不自己留!还专门给你做了这样的一个保证。但是这种保证呃有人愿意信就信吧也只能是这样。然后呢智谱说这个功能上线初期呢是默认开启的部分用户受影响,他不敢说全部用户受影响啊然后深表歉意问题已经修复。

这个我觉得才是最吓人的为什么呢?因为他发了这个道歉之后没有更新版本!啊你按道理来说哎我说问题修复了应该你会看到一个新版本的ZCode让你去下载没有?为什么老范说吓人呢哼这个里头啊有几种可能:第一种可能呢我先说问题修复了我先糊弄大家把大家稳住了。注意啊9月18号是个礼拜五咱们礼拜一再来呗智谱没准人家还老老实实双休呢等一等我们去把它修复掉就可以了。

虽然我们发的公告上说问题已解决啊但是我稍微偷个懒这个不算是一个特别吓人的结果。真正吓人的结果是什么?真正吓人的结果叫云控开关!就是它不需要给你更新版本我在云端把开关一关这个事它就不干了。那为什么这个事很吓人呢?因为下次它还可以开开所有东西你是没有任何可控制的地方!人家自己在云端什么时候想开就开什么时候想关就关。

所以不更新软件版本直接告诉你问题已修复比更新软件版本还要吓人啊!再往后是其他承诺:下一个是近期准备直接把ZCode代码库开源掉。这个哼因为你现在已经没法让人信任了嘛那以后开源了以后你们自己看就完了对吧信不信反正都开源了!第三个呢是邀请第三方评估做这个系统审核。第四个说全体用户额外发一次周额度重置,这个也是跟OpenAI学的动不动就给你发重置当天。

实锤当天就认怂啊所以我说秒怂呢速度呢咱先给他记一功啊但是呢大家品一品这个味道啊很熟悉原来谁最爱干这事呢?360最爱干这个事!360在手机上把别人家的应用商店删了只留他自己家应用商店;在你的电脑上把人家浏览器卸了只留他自己的浏览器。当你问他说你为什么这么干呀他理直气壮说我为了你好啊!

为了你的电脑安全、为了你的电脑跑得更快、为了你不会下载到呃有问题的应用、为了你不会被钓鱼网站钓鱼啊所以我来帮你处理掉了!你不需要谢谢我了啊它是这样的一套话术。现在呢智谱也是这么一个话术说来我去给你做Wiki的呃索引了啊我都是为了你好啊只是里头可能有一些小问题啊瑕不掩瑜啊咱们给你去打补丁我还给你重置了一次呢就不要再唧唧歪歪了。

那你说Wiki这事是不是真的呢?肯定是真的啊也有用!但是呢这里头有几件事是说不通的:第一个你要做Wiki的话你干嘛要把完整的Git历史打包传上去呢?这不应该啊你不需要这么多东西!第二个就是你这个加密是很奇怪的:你从云端发一个公钥下来你把整个的东西打了一个包发回去我的本机还解不开这个也是不应该的!

第三个关不掉你还给我留了两个开关让我去选,选完了以后你继续打包继续上传这个也不应该啊!最后一个不应该是什么?每按一次回车传一次你对我的数据有这么饥渴吗?所有这些都不是生成Wiki所必须的东西!这一次智谱认错呢第一个是只在一个很小的范围内认啊并没有到外边说去;第二个呢他只承认了给你去做代码索引做Wiki这一部分其他的通通都没认。

每次回车、每次你提交提示词就去打包上传这事压根就没提!所以呢这一次认错基本上是一个避重就轻的认错。那么智谱是认这些事干了哪些没干哪些呢?第一个刚才咱们讲了没有更新版本,现在是3.12.3版本是九月十七号发布的这个事是九月十八号曝光的。所以在九月十八号曝光号称bug已修改过后版本并没有更新啊这个跟大家去实锤一下。

第二个号称要开源,截止到目前为止GitHub上没有官方仓库!哪怕你先建个仓库、建个空目录打个README上去呢啊说我这个代码在整理之中你也算有个态度没干啊这事没有!第三个呃说我要找第三方评估,找什么机构啊、什么资质啊什么时候公开报告啊什么都没写啊这不知道。当然这个有可能会弄死他因为智谱大量的To B用户对于像我们这种C端用户或者个人开发者来说虽然我也不用智谱因为原来没抢着购套餐这个你就算传了就传了呗我虽然觉得膈应但对于我来说无所谓。

但是对于那些B端用户或者是这些政府用户你把他全部的家伙事儿都上传到你的服务器上去了这个就不是说你去找人审计一下评估一下就完了咱们要坐下来好好谈一谈了啊这一块估计后边还要再补!至于这个周额度重置呢还真发了啊这个是最容易的。还有就是他所谓的这句我把这个包抓上来以后立即销毁后边我没留这事呢钥匙在他手里头服务器也在他手里头到底是不是销毁了你没地验证去。

所以智谱现在给的所有这些承诺等到周一咱们再看看他到底能做出几样来!那这事只有智谱这么干吗?别人干不干呢?别人其实也干啊特别是所有闭源的开发工具都干。

Cursor、Claude Code、Codex也干,但是呢干的没有他这么难看。咱们把这几家的官方文档都扒一遍啊,里头写的是不会去传你完整的Git。当然智谱也没有承认我传你完整Git,默认开还要先问你一声啊,不是说我直接开了我就干了啊,我要先跟你确认一下。而且开关呢人家是管用的,如果你直接把这开关关上,人家就真的不传了。

比如说像Cursor吧,它呢是把代码切成小块传上去做向量化,明文传上去算完了就直接删了。服务器上只留向量、结果和混淆过的文件名。官方文档里写了不存你代码,还有隐私模式,你开了隐私模式以后我就不传了。

Claude Code呢这个程序在你机器上跑,源文件本地读只把当前任务需要的部分发给接口。不建索引、不上传整个仓库,这个都是要承诺的。企业版和API客户数据是不用于训练的,这个也是要承诺的。

Codex它也是承诺本地跑,而且Codex命令行现在开源了啊。另外它还有云端版本啊那是真的要把仓库上传上去,要不然你没法在云端跑它。但是呢它会给你一个沙箱保证你的东西在你自己沙箱里跑,这是你自己主动下的单啊。你不下单Codex是不会把整个仓库拎上去的,这个是完全两回事。

所以大家看明白了没有?为什么大家都干咱们今天在这骂智谱,因为没有一家是一登录就把整个Git历史全扔上去的。没有一家是加密打包上传的,没有一家是开关做一个摆设你把它关了然后接着给你上传的。也没有一家是删了以后重新建立接着传的。

开源的这些AI Agent编程工具会更干净一些,因为你要传你还得有地儿存还要耗服务端算力。所以好多开源的项目他压根就没有这个预算,他就压根不传。而且这些项目呢直接在GitHub上有全部源码你要敢在这个项目里头进行上传的话,马上就给你拎出来。没有人敢在里边塞私货那你说智谱是头一个干这种事被抓包的吗?还真不是啊。

还有一位萝卜快了不洗泥的同志啊,大家猜猜是谁?啊马斯克xAI家的Grok Build。他呢在7月份干过一次整个Git包上传上去,当时呢他是往谷歌云上传。包括密钥文件SSH的密钥连模型自己都没打开过的文件啊都在里头,有用户明明告诉他说关闭上传别给我传了但是还是继续照样传。

那xAI后来怎么处理的呢?智谱也是照人家学的啊,关闭上传承诺删数据。7月15号直接把Grok Build给开源了就是你一旦干这个事那你就开源吧,大家自己看呗。但是开源呢还有开源以后的问题啊马斯克的Grok Build开源以后还被人扒出两个猫腻。

第一个是什么?这个上传代码没删啊只是注释停用开关随时能够拨回去就是它还是有云端的开关的。第二个仓库一上来只有一个commit以前的开发历史清得干干净净的,因为刚才咱们也讲了Git仓库里头是有完整的从第一天开始的开发历史的。

但是马斯克上传的Grok Build的开源项目所有以前历史都没有,原来干的各种脏活累活压根就没有给你看。最后是开源出来的这个版本是他们打了多少补丁以后出来的版本谁也不知道,所以针对智谱说我们要开源这件事听听就行了啊不用感动。

开源之后还有第二刀啊这一刀砍四样,第一个是开源开的是哪一部分?采集器是不是在里头上传代码这功能是真的把它删了还是注释掉了提交历史是不是清干净了?智谱连第一刀都没给呢因为它官方仓库都没建呢所以咱们等着后边再看吧。

很多人呢都说哎呀使用中国开源模型不安全,但是今天要跟大家讲使用中国开源模型没什么不安全的。是你要敢去使用中国的这些AI Agent,使用这些去写程序那您得加点小心了。为什么呢因为开源模型这个东西再怎么不安全它也是可以部署到本地去。

你可以在美国可以在日本可以在全世界任何地方找来服务器把这些模型部署上去,它最多也就是在回答问题的时候有一些意识形态方面的偏差。这些问题你完完全全可以靠微调啊想怎么让他摆姿势就怎么让他摆姿势,日本人已经测试过了这是没问题的。

阿联酋啊沙特呀也都做过这样的工作就是拿中国的开源模型,甚至他可以找中国团队来说来你把你们自己家的模型拎来我提要求你给我改啊改完了以后我来测试都是没问题的。但是你要敢使用中国公司做的这些Agent工具那就是另外一回事了为什么?

因为它会读你本地的文件它会把你本地的文件传输到云端去甚至它还会写你本地的文件这个就完完全全是两个概念了。在以前我们去讲龙虾的时候就说龙虾这个东西本身是很危险的现在已经不怎么用龙虾了我现在主要是用Codex和Claude Code。

你比如说智谱这些地方我总觉得心里不是很踏实,那你说我实在使不了OpenAI使不了Anthropic我怎么办呢?那选开源的啊比如说使用DeepSeek Harness这样的啊你使用这种还是相对安全一些的。

第二个呢即使你选开源的你也不要选什么智谱开源的这些东西,因为它开出来的这个东西可能也不干净。选开源的这些AI Agent工具有一个标准就是一定要选的活跃的,如果他开源社区非常不活跃更新了以后再有人提问题就彻底没人理你了。

他自己的产品更新得飞快他开源仓库就彻底不更新了那这种千万不要用啊国内呢现在DeepSeek Harness是开源的,小米的MiMo Code是开源的。Kimi的Kimi Code客户端就CLI、TUI的这部分也是开源的,但是它用户界面这部分就是你的App部分是闭源的啊这块使用起来要小心一些。

MiniMax Code也是这个命令行的是开源的完整App这部分是闭源的,其他的像什么WorkBuddy啊豆包啊这些东西都是闭源的啊使用之前先想一想啊说我的坦荡君子啊事无不可对人言。

没问题您用着啊但是你说我这个里头有很多小心思啊我没法对人说万一被人传走了以后出点事情我受不了啊这个是自己加点小心。我自己现在呢Claude、ChatGPT我是主力工具另外的就是MiniMax Code以及豆包。

豆包虽然它是一个闭源的但是呢这种稿件啊我觉得问题不太大你就使吧这一部分事无不可对人言我都搁在YouTube上公开了这个就无所谓了啊如果要写程序的话我肯定还是ChatGPT Codex或者是OpenCode其他的我就不用了。

DeepSeek Harness呢我也在小规模使用用的并不是很多,最后总结一下啊智谱这次呢被抓了现行偷的不是几行代码是项目从生到死的完整的过程。钥匙在他手里头开关是摆设文档里头的政策只字未提这不叫bug叫做你没得选。

道歉道的很快但是只在很小的范围内道歉承诺要去开源并没有仓库被建立起来号称已经修复了bug但是并没有发布新版本。说是要找第三方来审计但是没有动作至少从9月18号这个文章被发布出来到今天所有动作没有啊我们就相信他在双休吧。

以后使用国产模型不用太担心安全问题,但是如果你要使用国内的AI Agent甭管是编程工具还是办公工具建议找开源的用啊这些闭源的产品谨慎。好这就是今天的故事感谢大家收听请帮忙点赞点小铃铛参加Discord讨论群也欢迎有兴趣有能力的朋友加入我们的付费频道再见