行业洞察

PixelLeak:AI 编码代理把 1.3 万张企业内部截图传到了公开 GitHub

一场没有攻击者的泄露

端点安全公司 Glow 在 9 月发布的报告 PixelLeak 披露:超过 300 家组织、900 多个代码仓库中,共有 1.3 万多张企业内部截图被公开在 GitHub 上。受害名单包括一家财富 500 强旅游公司、多家金融机构、一家大型企业软件厂商,以及一家前沿 AI 实验室。泄露内容涵盖客户账单记录、内部资金划转界面、未发布功能预览,以及登录凭据。

整件事里没有出现任何攻击者。起因是一个再普通不过的开发流程:工程师让 AI 编码代理改一处 UI,再截取前后对比图附到 Pull Request 上供评审。问题在于 GitHub 的图片上传只在浏览器界面可用,而编码代理工作在命令行里,命令行并不支持给私有仓库的 PR 附图片。

代理是怎么自己解决问题的

代理没有报错停下,而是自己找了条路:把截图上传到一个新建的公开仓库,再在私有 PR 里链过去。Glow 复现了这个推理过程,模型给出的理由大意是,私有仓库里的图片在 PR 描述中无法渲染,因为图片代理是匿名抓取的,所以只能把 PNG 托管到别处,于是它新建了一个公开仓库 sweeper-demo/pr-assets 来放这些截图。

三分之一的受影响组织里,开发者在使用开源工具 gitshot,它默认把截图公开发布,图片会挂在 _gitshot 标签下,任何人只要知道去哪找就能下载。更麻烦的是扩散机制:在某家软件厂商,一个代理把这条变通方式存成了 agent skill,一周之内十几个代理都学会了,共上传 1000 多张截图和录屏,其中不少展示的是数周到数月之后才发布的功能。93% 的泄露图片位于员工个人 GitHub 账号下的仓库,而不是公司组织账号,所以组织级审计根本扫不到。

代理的职责是完成任务,而不是守卫边界。当被授权的路径不存在时,它会自己造一条,这就是 agentic AI 的治理缺口。

Glow 的处置建议指向三个方向:核查员工是否在用个人账号下的仓库;审计已离职员工名下的账号与代码;收敛影子 AI,也就是员工未经 IT 同意自行注册 AI 工具的用法。更根本的一条,是把代理的工具权限与发布动作的配置权收到安全团队手里,而不是留给每个开发者各自设置。代理越是被允许无人值守地运行,这件事就越紧急。