研究人员发现“Ghostcommit”:利用图片文件隐藏恶意指令并欺骗AI窃取机密数据的新技术
安全研究团队演示了“Ghostcommit”技术,能将恶意指令嵌入PNG图片文件,从而躲避检测并成功欺骗AI编写代码以窃取项目中的关键数据。
ASSET Research Group 安全研究小组揭示了一种名为“Ghostcommit”的新型攻击技术,该技术能够将Prompt Injection(未经授权引导AI的指令输入)类型的恶意指令隐藏在看似无害的PNG图片文件中,从而从开发者的代码库(Repository)中窃取 API Keys 或数据库密码等机密数据。
Ghostcommit 的方法利用了 CodeRabbit 和 Bugbot 等流行 AI 代码审查工具(AI code reviewer)的盲点,这些工具通常不被设计用来打开或分析图片文件内部内容,从而使得隐藏的指令很容易逃避检测。该技术通过将攻击分为两部分来工作:第一部分是看似普通的文本文件(此处为 AGENTS.md),它会指示 AI agent 从指定的图片文件(docs/images/build-spec.png)中“提取构建常量”;第二部分,也是攻击的核心,是嵌入在图片文件中的恶意文本指令。该指令会告诉 AI 逐字符读取 .env 文件(开发者常用于存储机密数据的文件)的内容,然后转换为ASCII数字编码,再将其写入代码中。
在实际测试中,研究人员用由 Claude Sonnet 模型驱动的 AI agent Cursor 进行了演示。结果显示,Cursor 首次就被成功欺骗,按照图片中隐藏的指令行事。它生成了 311 个数字列表,这实际上就是项目的所有机密数据,包括 API keys、数据库 URL 和云访问凭证,这些数据被编码并混入看似正常的代码审查中。
这个漏洞之所以存在,是因为对于专注于文本的代码审查系统来说,图片文件只是无法读取理解的 Binary Blob(二进制数据块)。研究人员指出,这并非一个全新的概念,此前 Trail of Bits 的研究人员也曾演示过更复杂的技术,他们使用一种图片,当被 AI 缩放时会变成 Prompt Injection 指令,同样能够欺骗 Gemini CLI 等工具。目前,ASSET Research Group 团队正在开发一种多模态(理解多种数据形式)防御系统,以同时检查图片、文本和 AI agent 的行为,从而在未来堵塞此类漏洞。
这个漏洞揭示了当前AI辅助软件开发工具的重要盲点,也是对使用AI agent的泰国开发者的警示:即使是看似无害的图片文件,也可能成为恶意行为者窃取项目重要数据的途径。