跳转至

XSS会话内容劫持

风险概览

风险编号:GAARM.0040.001
风险归属:GAARM.0040
安全阶段:应用安全
生命周期:应用阶段
创建时间:2024.05.01
修改时间:2024.08.06

攻击概述

XSS会话内容劫持作为一种间接提示词注入的攻击手段,利用了大型语言模型(LLMs)获取外部信息的过程。当用户与LLM通过LLM提供的界面进行交互,例如web界面、api接口、应用程序等,攻击者通过间接注入恶意的提示词指令,利用LLMs应用前端解析Markdown标签和HTML img标签等特性,将当前聊天会话内容进行总结,并将敏感密钥、数据等信息嵌入到img标签的src属性中,从而实现会话内容的泄露。

攻击案例

案例 描述
案例一 攻击者利用Google Bard的更新功能,构造特殊的Markdown图像标签,使得Bard渲染出一个指向攻击者服务器的图像,实现对数据的窃取
案例二 利用Azure AI Playground模型允许通过图像Markdown注入的方式将提示词附加到src属性的URL中渲染,导致数据泄露等风险
案例三 攻击者利用ChatGPT插件直接访问Youtube字幕的功能,通过间接Prompt注入控制字幕内容来操纵AI的行为
案例四 攻击者可以利用ChatGPT的Markdown图像渲染功能窃取聊天记录,攻击者控制AI行为,请求总结聊天历史并附加到URL以窃取数据
案例五 攻击者通过Markdown图像注入的方式自动从聊天会话中窃取数据
案例六 攻击者可指示ChatGPT使用插件记录对话,生成指向记录的URL,并通过Markdown图像注入泄露链接,以获取整个对话历史
案例七 由于LLM代理(客户端应用程序,如Bing Chat或ChatGPT)容易受到Prompt注入攻击,攻击者可利用此漏洞通过在图像URL中附加敏感数据来进行自动数据外泄

攻击风险

  • 数据泄露:攻击者可以获取到当前会话中,用户的敏感数据信息,包括会话令牌、个人信息、聊天记录等。
  • 会话劫持:攻击者可能通过获取的会话令牌接管用户的会话。

缓解措施

缓解方式 描述
输入/输出验证 对所有输入以及输出数据进行严格的验证和清洗,以移除或修正任何可疑的注入以及生成内容
内容安全策略(CSP) 实施严格的CSP内容安全策略,阻止恶意脚本的执行以及数据外带行为
最小权限原则 确保正确的沙盒化并限制LLMs的能力,限制插件、Agent等机制从不可信来源获取数据信息
人工干预审批 提供给用户更多的控制权,让他们能够管理插件的使用和数据的流向

参考