17611538698
webmaster@21cto.com

GitLost 提示高危注入漏洞!利用 GitHub 的 AI 代理泄露私有仓库数据

安全 0 11 1小时前
图片

21CTO导读:多家安全机构发现了使用AI代理可以攻击GitHub的漏洞,这对安全工程师和相关机构有重要提示。

GitLost 是Noma Security 发现的一种提示注入漏洞,它能诱使GitHub 的新型 Agentic Workflows泄露私有数据。

攻击者通过在公开的 GitHub 问题中嵌入隐藏指令,可以绕过安全防护措施,诱使 AI 代理在公开评论中泄露机密之信息。

此外,Noma Labs 发现的 GitHub Agentic Workflow 存在漏洞,它被配置为在issues.assigned事件发生时触发,读取问题标题和正文,使用该add-comment工具发布回复评论,并以读取权限访问组织内的其他公共和私有存储库。

利用此漏洞,攻击者无需任何编程技能、访问权限或凭证。他们只需在某个使用 GitHub Agentic Workflow 设置的组织的公共代码库中提交一个 issue,然后等待即可。

Noma在报告中称,尽管GitHub设置了严格的防护措施来防止这种情况发生,但仅仅使用关键字“Additionally”就触发了模型的意外行为。这导致模型访问了一个原本受限的文件内容,并将其发布到公开评论中。

传统安全模型通常假设信任边界由代码强制执行。而在智能体系统中,信任边界部分由模型的行为强制执行,而模型本质上是指令执行型的。对于智能体人工智能而言,提示注入攻击已经如同 SQL 注入攻击对于 Web 应用程序一样:一种系统性的、类别广泛的漏洞,需要采用相同的系统性策略和防御措施。

为了降低这些风险,Noma 的研究人员建议,用户控制的内容绝不应被视为人工智能代理的可信指令输入。代理的权限应仅限于绝对必要的范围,因为拥有跨库访问权限的代理尤其具有攻击价值。组织还应限制代理可以公开披露的信息,尤其是在回应问题内容时,并确保在将用户输入提供给模型之前,对其进行适当的清理或与指令上下文隔离。

Fractional CTO Vijendra Malhotra 在 LinkedIn 上评论说,Noma 的调查结果表明:

私有代码库从来就不是安全边界,而是组织层面的边界,而且只有在所有代码阅读者都是你雇佣的人时才有效。代理打破了这一假设。[...] 如果代理可以访问你的私有代码库,那么务必将其中的所有内容都视为只需一个精心设计的 issue 就能公开。

类似地,Reddit 用户 Significant_Sea_4230 观察到

危险之处不在于代理“智能”,而在于它可能连接到过多的上下文、过多的存储库或过于宽泛的标记。

另一方面,用户 cH3332xr则强调:

“此外”绕过机制是这里最有趣的细节——有效载荷本身并没有改变,只是框架标记发生了变化,在防护栏看来,它将有效载荷从“新指令”重新分类为“当前任务的延续”。这是一个决策边界问题,而不是内容问题。

最后,开源社区开发者mcv 在 Hacker News 上发表了评论:

SQL注入漏洞是由于将用户输入视为指令的一部分,而不是将其视为原本的纯数据而导致的。将这两者分开后,问题就解决了。提示符注入是不可避免的,因为用户输入本身就是指令。

如果需要深入了解技术细节和概念验证,请阅读 Noma 网站上的完整报告。

作者:聆听音乐的鱼

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信