安全公司Blue41发现通过转账备注注入恶意指令,可操控银行AI助手实施精准钓鱼。

安全公司Blue41在为欧洲数字银行Bunq做安全测试时,发现了一个令人不安的漏洞:只需一笔小额转账,攻击者就能将银行AI助手变成精准钓鱼工具。

Bunq是欧洲第二大数字银行,拥有超过2000万用户。其AI助手可在应用内回答用户关于交易记录、账户信息、产品说明等各类问题。AI助手的工作流程是:当用户提问时,系统检索相关的交易记录和账户数据,将这些信息与用户问题一同送入大语言模型生成自然语言回答。这种架构的便利性毋庸置疑,但Blue41的安全研究人员发现了一个致命的盲区。

攻击原理基于间接提示注入。传统安全架构假设代码与数据有明确边界,但大语言模型并不区分二者。当一段文本被放入模型上下文中时,模型可能将其中的内容解读为指令而非普通数据。问题在于,交易备注是由转账发起人设定的第三方数据,而在传统的银行系统中,这个字段从未被当作安全边界来对待。

具体攻击仅需两步。第一步,攻击者向目标账户转账0.02欧元,在交易备注字段中嵌入精心构造的提示注入指令。这条备注看似普通,包含合法交易描述的伪装,但其中隐藏了对AI助手的恶意指令。第二步,当受害者随后在银行应用中询问"显示我的近期交易"时,AI助手检索交易记录,将攻击者的转账备注纳入上下文,并在生成回答时执行了其中隐藏的指令。

在Blue41的演示中,AI助手发动了一次精准钓鱼攻击。助手伪装成银行官方的身份验证请求,出现在银行自有应用内部,引用受害者真实的账户信息和近期交易详情,诱导用户输入登录凭证。这种攻击之所以极具欺骗性,是因为它利用了用户对银行应用的天然信任,且攻击载体不是钓鱼邮件或伪造网站,而是银行自己的AI助手。

Blue41指出,Bunq的AI应用本身已设有防护栏,但漏洞依然存在。原因在于,恶意意图在交易备注本身中并不明显,不需要经典的越狱话术如"忽略之前的指令"。攻击载荷被设计为融入正常的交易数据,只有在检索和响应生成阶段才显现其危害性。这揭示了提示注入攻击的本质特征:风险不在于单段文本本身,而在于不可信数据、检索逻辑、模型行为和可用功能之间的交互关系。

Blue41建议从四个层面部署防护。第一,最小化不必要的上下文传递,如果交易描述与用户问题无关,就不应进入模型上下文。第二,将检索到的所有数据视为不可信内容,在架构层面明确区分数据与指令的边界。第三,限制敏感输出和操作,AI助手不应自由生成链接、索要凭证或发起高风险工作流。第四,监控AI助手运行时行为,建立正常行为基线,检测异常响应模式、非预期数据源访问和工具调用的偏离。这一案例表明,AI安全不仅是模型层面的问题,更是应用安全、数据流和运行时监控的综合挑战。

原文:https://blue41.com/blog/how-we-helped-bunq-secure-their-financial-ai-assistant/