文章总结: 某国产AI编程工具ZCode被曝在本地留存313MB加密快照,含4.2万文件及.git目录,数据库口令与云凭证泄露。根因是工具为云端embedding需上传代码,但存在默认开启、整包上传、隐私政策不符等问题。Git历史比当前代码更危险,含已删密钥。建议开启隐私模式、密钥隔离、企业管控AI客户端,并定期自查。 综合评分: 82 文章分类: 数据泄露,AI安全,安全意识,安全建设,安全工具
安全工程师注意 AI 编程工具本地留了份”完整项目备份”
宝十八 宝十八
网络安全老宋
2026年9月24日 12:00 山东
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
导语: 你好,我是网络安全老宋。安全攻防干货准时送达!
网络安全老宋// AI编程 · 事件复盘
// AI编程 · 事件复盘
安全工程师注意 AI 编程工具本地留了份”完整项目备份”
某 AI 编程工具在你电脑上悄悄留的”备份”,数据库口令、云服务凭证全在里面。
AI编程数据泄露Git历史
▲ 图1 · 本地加密快照:git 目录与密钥凭证被封存其中
🔑 一句话精华 有开发者清理硬盘时发现,某国产 AI 编程工具(业内称 ZCode)在本地留了一份 313MB 的加密快照,里面塞了 42411 个文件,光 .git 目录就占了 86.6%,数据库口令、云服务凭证全在其中。
9 月 18 日,有开发者清理硬盘时,在本地机器上发现某国产 AI 编程工具(业内称 ZCode)悄悄留了一份 313MB 的加密快照。打开文件清单一看,里面塞了 42411 个文件,光 .git 目录就占了 86.6%,数据库口令、云服务凭证全在其中。
紧接着,一家使用了该工具的企业发了正式追责函:被传出去的不是零散代码片段,而是 6 个完整工作区、最大一个 410MB,含完整源码、系统架构、版本历史、数据库口令、员工信息。即便厂商当晚致歉、说”已修复”,这家企业在致歉当天凌晨仍检测到数据在被上传。
这事,每一个用 AI 写代码的安全人都该认真看完——因为它暴露的,不是某一家工具的 bug,而是整个”云端 AI 编程”品类的架构软肋。
00表面是产品事故,根子是架构原罪
ZCode 这次翻车,根子在于 AI 编程工具为了”懂你的项目”,必须把代码传到云端。原理不复杂:工具扫描你本地整个工作区,把代码切成小块,做 embedding 向量化,存进向量库;你写代码时,它再从库里检索最相关的片段拼进提示词发给大模型。而 embedding 这一步,绝大多数情况是在云端完成的——你的代码块,必须先上服务器才能变向量。
问题不在”AI 编程工具会传代码”,行业都这么干。真正的雷是三件事:
第一,默认开还是默认关。有的工具”隐私模式”要手动开,而 ZCode 上线初期连开关都没有,用户在完全不知情下数据就开始上传。一个默认开启的索引,等于在你电脑上装了只看不见的手,每天都在往外搬。
第二,传的是”相关片段”还是”整个工作区”。那家企业取证发现,被传的是整个工作区的归档文件,连数据库密码、云凭证一起打包——这不是索引,是整包搬走。你以为它只取了”相关上下文”,实际上它把整个家底都顺走了。
第三,隐私政策写的和做的对不对得上。同一产品的不同语言版本隐私条款,对”数据存哪、过不过境”的描述互相打架,数据出境疑云至今没盖。厂商一句话致歉,换不回已经流出去的密钥。
🔴 极高:只要用了云端大模型驱动的编程助手,你的代码就一定在离开电脑。区别只是厂商有没有把这个事实讲清楚、给不给你选择权。涉及密钥、凭证、商业机密的项目目录,在 AI 助手开着索引的状态下打开,等于主动把家底交出去。
01最致命的点:Git 历史比当前代码更危险
这里有个绝大多数人会踩的坑:.git 历史比你现在看到的代码危险十倍。
Git 不只记录项目现在长什么样,还存着被删的文件、作废的方案、曾经误提交的数据库账号和 API 密钥。那份 313MB 快照里 .git 占了 86.6%,意味着你三年前手滑提交又删掉的那个密钥,今天照样被打包送出去了。你以为传的是业务代码,实际上商业秘密全裸奔。
这就是为什么”我代码里没写密码”救不了你——密码早就在某次提交里,被 Git 记了下来,而你忘了。AI 编程工具一索引整个工作区,.git 里的陈年密钥就跟着一起上了云。
🟡 注意:定期用 git log -p | grep -i "password\|secret\|api_key" 之类的方式扫一遍历史,把误提交过的凭证全部轮换掉。轮换比删除更靠谱——历史里的密文删不掉,只能让旧密钥失效。
02不是不让你用,是得守住三条线
老宋的态度很明确:AI 编程工具该用,效率高、顺手,挡不住也别挡。但安全人用,得比普通开发者多想一层——你写的代码里可能就躺着客户的资产、公司的检测逻辑、内网的拓扑。三条线守住,工具照用,雷不踩。
第一,隐私模式 / 零数据保留,必须开。不管用哪家工具,先翻设置,把”数据保留””代码上传””隐私模式”找出来,默认关的手动开;没开关的工具,谨慎用。企业版一定谈”零数据保留(Zero Data Retention)”条款,白纸黑字约定代码不用于训练、不被第三方留存。
第二,密钥绝不进仓库,敏感项目物理隔离。数据库密码、云 AK/SK 用专门的密钥管理系统(KMS),别放代码里。涉及核心源码、凭证的项目,建一个”干净工作区”只在里面放公开代码,或者敏感代码直接上本地模型。2026 年本地模型已经能打:Qwen3 Coder、Devstral 2、DeepSeek V4 本地跑,4-bit 量化后 300 亿参数模型 8GB 显存就能扛,硬件买完每次查询成本为零——对金融、军工、内部核心库这种强合规场景,本地部署正从”锦上添花”变成”采购必备”。
第三,企业层面把 AI 客户端当”新数据出口”来管。别让开发自己悄悄装一个就开始用,引入前让安全团队评估它的上传范围、保留策略、跨境情况。在公司网络出口做流量监控,AI 编程工具的 API 域名走白名单;一旦发现非预期的大流量上传(比如整包工作区),立刻告警。gitignore 和 .env 一定配好,大部分工具会尊重 gitignore,但前提是你得配:
⏺ Shell · 让 AI 编程工具扫不到敏感文件
这些文件绝不让 AI 编程工具扫到
echo “.env” >> .gitignore
echo “*.key” >> .gitignore
echo “config/secret.yml” >> .gitignore
git check-ignore .env # 输出 .env 即生效
✅ 已验证:git check-ignore 文件名 能直接告诉你该文件是否被忽略,配完跑一遍,确认敏感文件不在扫描范围里再开 AI 索引。
除了这三条线,再给你一套“动手自查三步”,今晚就能做完:第一步,翻本地目录,重点看用户目录下的缓存、应用数据目录里有没有该工具留下的快照、归档、.cache 类文件——这次事件就是开发者清硬盘时翻出来的;第二步,打开工具设置,逐项确认”数据上传””云索引””隐私模式”的开关状态,截个图留档,这就是你未来追责的证据;第三步,把历史上误提交过的凭证全部轮换一遍,重点是数据库口令、云 AK/SK、内部系统的 API token,轮换完再在 .git 历史里扫一遍确认没有漏网。三步做完,你至少知道自己的家底现在在哪、暴露了多少。
💬老宋说
这件事真正的根因,不是某家工具写错了一行代码,而是 AI 编程”为了懂项目必须把代码传云端”这件事,被它用”全量快照”偷换了”局部上下文”、用”默认开启”偷换了”显式授权”、用”事后销毁”偷换了”事前同意”——架构决定它要拿数据,但拿多少、怎么用、用户知不知道,不能全靠厂商自觉。
从行业看,AI 编程正从”你贴代码给对话框”跨进”Coding Agent 直接进开发环境、自动跑命令、改文件”,权限越大,厂商越得证明自己只拿了必要的数据,而且每一步可查、可控、可追溯。对企业安全团队来说,得把每一个 AI 客户端当成一个新的数据出口来管,而不是等出事再发函。
现在你能做的一件具体事:打开你正在用的 AI 编程工具设置,把隐私模式或零数据保留打开;存放密钥、核心源码的项目目录,要么物理隔离,要么直接换本地模型。羊毛要薅,家底别送。
我是老宋,咱们下期见 👋
防御,不是在演练期间发现攻击,而是在演练开始前就把攻击面收敛到最小。
end
不想错过文章内容?读完请点一下“在看”,加个“关注”,您的支持是我创作的动力
期待您的一键三连支持(点赞、在看、分享~)
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:网络安全老宋 宝十八 宝十八《安全工程师注意 AI 编程工具本地留了份”完整项目备份”》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论