0.01欧元转账可攻陷银行AI助手:间接提示注入漏洞分析
安全公司Blue41发现,通过一笔0.01欧元的转账,攻击者可在交易描述中植入恶意指令,利用银行AI助手的上下文检索机制发起高度可信的钓鱼攻击,暴露了金融AI系统的架构性安全挑战。
Blue41帮助拥有超过2000万客户的欧洲第二大数字银行Bunq保护其AI助手免受鱼叉式网络钓鱼风险。在测试中,他们发现了一个间接提示注入漏洞:单笔银行转账就能将助手变成高度可信的钓鱼攻击的传播渠道。
分享此案例是因为根本问题并非一家银行独有,而是部署AI助手的金融机构面临的更广泛架构挑战——这些助手需要处理交易数据、客户记录、文档、消息等不受信任的输入。
现代银行应用越来越多地集成AI功能,它们位于用户与后端数据源(如交易记录、产品文档、账户详情、支持内容等)之间,利用大语言模型基于上下文回答自然语言问题。当用户问“给我概述近期交易”时,助手会获取相关记录并作为上下文传递给LLM,模型再以对话形式总结数据。
安全挑战在于:并非所有检索到的上下文都应被同等信任——交易描述是由第三方设置的数据。
交易描述看似普通文本,但一旦进入LLM上下文窗口,模型可能将其解释为指令而非数据。这是间接提示注入的核心问题:恶意指令并非来自与助手交互的用户,而是隐藏在助手后续处理的外部或检索数据中。对于开发和安全团队而言,评估间接引入AI模型的每条数据的风险级别非常复杂。
该概念验证无需访问受害者设备、无需恶意软件、也无需传统社会工程学——攻击者只需发送一笔小额银行转账。步骤1:攻击者向目标转账少量金额(本例中为0.02欧元),在交易描述字段中嵌入精心构造的提示注入载荷——这是攻击者唯一需要采取的行动。
步骤2:受害者打开银行应用,向AI助手询问常规问题(如“显示我的近期交易”),后续攻击由AI助手自动自主执行。为回答问题,助手检索交易数据(包括攻击者的转账),并将其作为上下文的一部分传递给LLM,LLM随后处理交易描述中注入的指令。
在受控演示中,助手被操纵向银行用户发起鱼叉式网络钓鱼攻击,伪装成银行合法的重新认证请求。最终消息出现在银行自己的应用内,来自银行自己的AI助手,并能引用真实交易详情和用户特定信息,使其成为高度可信的钓鱼攻击。
同样的信任边界失效可能导致多种攻击场景,具体取决于AI代理的能力。此类攻击对银行和金融服务尤为相关,原因如下:注入面普遍存在——交易描述、支付参考、商户元数据、支持消息、上传文档、电子邮件和CRM备注等数据字段都可能被AI助手检索,且许多字段从未被设计为可信指令边界;
交付机制廉价且可信——小额转账即可将攻击者控制的文本放入受害者交易历史,载荷通过银行自有应用这一高度可信渠道传递;助手拥有特权上下文——与钓鱼邮件不同,银行AI助手可访问真实账户上下文,使操纵后的响应更个性化、更及时、更可信;
风险随能力增长——只读助手仍可能误导用户。
能够访问工具、工作流或账户操作的助手会带来更大的风险面。助手越有用,其安全模型就越重要。更广泛的教训是:进入AI助手上下文的每个不受信任数据源都成为助手攻击面的一部分。自然的应对措施是添加输入过滤器、提示注入分类器或内容审核规则——这些控制措施有帮助,但仅靠它们还不够。
Bunq的AI应用已有护栏,但问题依然存在,因为孤立地看交易描述,恶意意图并不明显。载荷无需说“忽略之前指令”或使用经典越狱模式,而是精心融入交易数据,只有在助手检索、放入上下文并生成响应时才变得危险。
这就是仅依赖静态文本分类的局限性:风险不仅在于文本本身,更源于不受信任数据、检索逻辑、模型行为、应用上下文以及助手可用输出或操作之间的交互。结论是:仅靠护栏不够,需要分层安全模型——输入过滤减少明显攻击,输出约束防止有害响应或数据泄露,最小权限访问限制影响。
运行时监控有助于检测助手行为是否偏离预期操作范围。没有单一控制能解决间接提示注入,实际目标是减少暴露、约束危险行为,并在防护失效时检测入侵。
在此案例中,他们讨论了补救选项:减少对不受信任交易字段的不必要暴露、明确分离数据与指令、约束出站链接、监控助手异常输出行为,并共同验证了所实施缓解措施有效解决了漏洞。
更广泛而言,部署AI助手的金融机构应考虑四层控制:1. 最小化不必要的上下文——除非用户任务需要,否则不将字段传递给助手;如果交易描述不必要,默认不应进入模型上下文。
2. 将检索数据视为不受信任——交易描述、客户消息、文档、电子邮件和API响应应作为数据处理而非指令,助手架构应明确保持这一区分。3. 约束敏感输出和动作——助手不应在没有额外控制的情况下自由生成链接、请求凭证、启动敏感工作流或调用高影响力工具。
4. 监控运行时行为——即使有良好的预防控制,新攻击仍会出现。
安全团队需要了解助手检索了什么、生成了什么、使用了哪些工具,以及这些行为是否与应用预期画像匹配。阻止每一种可能的注入载荷是不现实的——攻击者可以调整措辞、隐藏意图、利用通用分类器无法理解的特定应用上下文。
但当AI助手被攻陷时,其行为通常会在可观察的方面发生变化:可能开始嵌入外部URL、抑制通常显示的信息、遵循异常响应模式、访问意外数据源,或以与正常使用不匹配的方式调用工具。这正是Blue41采用的方法:监控AI代理运行时行为,构建行为画像。