夜雨聆风学习资料网

ARTICLE · 1114304

AI 编程工具偷传 4 万个文件,问题不在厂商,在评审表

AI 编程工具偷传 4 万个文件,问题不在厂商,在评审表

一个技术博主清理硬盘,翻出了一个 313MB 的加密文件。

不是缓存,不是日志,不是某个插件的临时目录。

那是 42411 个代码文件打包压缩后的快照,其中 86.6% 是完整的 Git 历史——被删掉的密钥、回滚掉的逻辑,全都躺在里面。

生成它的那款 AI 编程工具,没有询问过他。

事情发生在一周多以前。到今天还在发酵:近 400 名开发者组建了维权群,那家上市公司的股价三个交易日累计跌逾 16%。

比"那家公司做错了什么"更值得琢磨的,是另一件事——

几乎每个在用 AI 编程工具的人,工具评审表里都没有这一栏。

一、五天,从道歉到开源

技术博主 ferstar 在博客里披露了细节。他清理本地磁盘时发现,客户端在 ~/.zcode 下生成了一个 313MB 的加密快照,由约 345MB / 10GB 的项目工作区压缩而来。

上传失败记录显示,这个动作失败了 564 次。

因为一直卡在重试队列里没能发出去,反倒把整条链路暴露了:登录状态下后台自动打包加密整个工作区,向服务端申请上传凭证和 RSA 公钥,直传阿里云 OSS。

私钥仅存云端,用户本地无法解密。

快照一共 42411 个文件,.git/lfs、.git/objects、.git/logs 三项合计占 86.6%。

这不是"抽取代码片段做索引",是把整个版本历史连同大文件缓存和操作日志一起打包走。

设置里找不到关闭开关。关掉"优化体验""仓库快照索引"之后,上传记录依然存在。

厂商当晚上线了道歉,原因归到"代码库索引"功能上线初期默认开启,称数据仅用于云端生成 Repo Wiki、生成后立即销毁,并声明从未用于模型训练。

第二天,一家科技公司发来正式法律函,称独立取证发现 6 个工作区被批量上传、最大 410MB,质疑数据出境至注册于新加坡的实体——服务协议的签约方是北京的公司。

第三天,MaaS 平台上线"数据内容不留存"。

第四天,产品正式开源至 GitHub,Apache-2.0,客户端、后端、Agent CLI 全量代码。新版本移除了 Repo Wiki 入口和本地快照生成上传链路。厂商同时邀请信通院和绿盟科技做审计,公布的结论是 OSS 桶云端零数据、全部对象已删除。

第六天,那家公司发来澄清,撤回了函件及所列主张。

撤回的是函件。不是已经传出去的 410MB。

二、真正的问题不是"上没上传"

只留下一个结论的话,应该是:某厂商偷传用户代码,被抓了,改了,该罚。

太轻了。

拆开看,四个问题一个都没真正解决。

范围。

争议一开始是"该不该上传",很快变成"上传的是什么"。

完整的 Git 历史不是代码片段。它包含已经删除的密钥、已经回滚的逻辑、写过又撤下的临时方案。

一个当前版本里没有凭证的仓库,看起来是安全的。但如果三年前某次提交里有过一个密钥,它现在还在历史里躺着。

开关。

官方说法是"上线初期默认开启"——是疏忽,不是设计。

问题也正在这里:一个找不到关闭开关的功能,它到底是疏忽还是默认,从外部分辨不出来。

真正让人不安的从来不是"默认开了",是"你关不掉,也看不出它关没关"。

私钥。

私钥只在云端,客户端拿到公钥。技术上确实保证了本地无法解密,官方说的"生成后立即销毁"也能被验证。

问题是验证需要能力和决心。普通用户既没能力去查那个对象存储桶里到底有什么,也没理由去查。

"声称会销毁"和"你能确认已经销毁",是两件事。

出境。

律师函质疑过,随后撤回了。这属于商业纠纷的常见结果,不必过度解读。

要分清的是:撤回的是主张,不是事实的消失。已经打包上传的数据曾经存在于境外这件事,不因为撤回函件就没发生过。

四件事指向同一句话:

你没法验证的事情,不叫安全,叫对方希望你相信。

三、这不是某一家的问题

两个月前,xAI 的 Grok Build 也被曝把整个 Git 仓库打包上传到了谷歌云存储。

同类事情在不同公司重复发生,就说明它不是某个团队的疏忽,是整个赛道的默认做法:厂商把"索引你的代码"当普通产品特性推,没把它当数据出域来管。

而按金融行业的数据安全监管口径,代码、架构文档、数据库口令、云凭证、员工个人信息,都在数据分类分级里,走评审才能出域。

问题在于,很多公司的采购流程里,AI 编程工具走的是"研发工具"那一栏。

研发工具的审批标准和数据出域的审批标准,从来不是同一套。

缝隙在这儿。不是谁故意留了后门,是两张表之间没对齐过。

四、今天能做的三件事

落到个人身上,能做的就三件。

翻一遍设置。

不是翻隐私政策——那份东西你也看不懂。

是找有没有"数据上传""索引""快照"这类开关,关掉它,过十分钟再看一眼那个目录,看还有没有新文件。

找不到开关的工具,本身就是答案。

给自己画一条线。

可以碰 SaaS 版 AI 编程工具的代码:已经开源的、已经发布的、不含任何凭证的。

绝对不碰的:生产代码库、含密钥的历史、客户数据、未公开的架构文档。

金融 IT 干了十几年有条老规矩——数据出域要走分类分级评审。这条规矩在 AI 工具上一样成立,只是很少有人把 AI 工具算进"数据出域"这个类别。

它应该被算进去。

把这一栏加进评审表。

以后不管引入什么 AI 工具,问三个问题:

  • • 默认开不开?
  • • 关掉之后数据去哪?
  • • 我能不能自己验证?

有一个答不上来,先别接。

工具能力可以后补,合规审查补不回来。

五、那个 313MB 的文件

那个文件躺在硬盘里的时候,没有人通知过它的主人。

它是在一次清理磁盘的动作里被偶然发现的——不是被审计发现的,不是被监管发现的,也不是被厂商主动告知的。

如果那位博主没有顺手清理一次磁盘,这个快照现在可能还好好待在某个存储桶里,没有人会知道。

让人后背发凉的不是某家公司做错了什么。

是我们所有人的安全,一直建立在"对方守规矩"这个假设上。

而这个假设,从没被检验过。

所以真正的安全,从来不是厂商承诺你不外传。

是你有本事自己确认它没外传。

这套能力手上还没有的话,那就是工具选型里最该补的一项。

相关学习资料