标签 OWASP GenAI 下的文章

Copilot提示词注入缺陷是漏洞还是AI的局限?

这一进展凸显了供应商与研究人员在定义生成式AI系统风险时日益明显的分歧。

AI漏洞还是已知局限?

"上个月,我在Microsoft Copilot中发现了4个漏洞。随后他们关闭了我的案例,称这些不符合可修复标准。"网络安全工程师John Russell在LinkedIn上发帖称。

具体而言,Russell披露但被微软驳回、认为不属于安全漏洞的问题包括:

  • 导致系统提示词泄露的间接与直接提示词注入
  • 通过base64编码实现的Copilot文件上传类型策略绕过
  • Copilot隔离Linux环境内的命令执行

其中,文件上传限制绕过尤其值得关注。Copilot通常不允许上传"高风险"文件格式。但用户只需将其编码为base64文本字符串即可绕过此限制。

"一旦以纯文本文件形式提交,内容会通过初始文件类型检查,在会话中被解码,随后重建的文件会被分析——这有效地绕过了上传策略控制。"Russell解释道。

该工程师的帖子迅速引发了争论,安全社区给出了不同看法。

资深网络安全专业人士Raj Marathe认同这些发现的有效性,并引用了自己过去观察到的类似问题:

"去年我目睹了一个演示,其中提示词注入被隐藏在Word文档中并上传到Copilot。当Copilot读取文档时,它变得失控并锁定了用户。它并不可见或明文显示,而是巧妙地隐藏在文档中。我尚未听说那个人是否收到了微软关于此发现的回复。"

然而,其他人质疑系统提示词泄露是否应被视为漏洞。

"这些问题在于它们相对已知。至少其路径是已知的。"安全研究员Cameron Criswell辩称

"要在不牺牲实用性的前提下消除这些通常很困难。所有这些都表明LLM仍然无法[区分]数据和指令。"

Criswell认为,这种行为反映了大语言模型更广泛的局限性,它们难以可靠地区分用户提供的数据和指令。实际上,这意味着如果潜在指令能被注入,就可能导致数据投毒或非预期信息泄露等问题。

但Russell反驳道,像Anthropic Claude这样的竞争性AI助手"拒绝了我发现的在Copilot中有效的所有方法",并将此问题归因于缺乏足够的输入验证

系统提示词是指引导AI引擎行为的隐藏指令,如果设计不当,可能包含有助于攻击者的内部规则或逻辑。

OWASP GenAI项目持更细致的观点,仅当提示词包含敏感数据或被依赖作为安全控制措施时,才将系统提示词泄露归类为潜在风险,而非将提示词泄露本身视为独立漏洞:

"简而言之:系统提示词本身的泄露并不构成真正的风险——安全风险在于底层要素,无论是敏感信息泄露、系统防护措施绕过、权限分离不当等。

即使确切的措辞未被泄露,攻击者在与系统交互的过程中,几乎肯定能够通过使用应用程序、向模型发送语句并观察结果,推断出系统提示词语言中存在的许多防护措施和格式限制。"

微软对AI漏洞的立场

微软根据其公开的漏洞评级标准评估所有与AI缺陷相关的报告。

一位微软发言人告诉BleepingComputer,报告已审核但不符合公司的漏洞可修复标准

"我们感谢安全社区调查和报告潜在问题的工作……这位发现者报告了几个案例,根据我们已发布的标准,这些案例被评估为超出范围。

案例超出范围的原因有多种,包括未跨越安全边界、影响仅限于请求用户的执行环境,或提供了其他不被视为漏洞的低权限信息。"

归根结底,争议在于定义和视角。

Russell认为提示词注入和沙箱行为暴露了显著风险,而微软则将其视为预期局限,除非它们跨越了明确的安全边界,例如实现未授权访问或数据外泄。

随着这些工具在企业环境中更广泛地部署,AI风险定义上的这种分歧很可能将持续成为反复出现的摩擦点。