这一漏洞可能导致攻击者利用内容生成时用到的语言模型,窃取用户私密文件。尽管已经向 Writer.com 报告了这一问题,但截至目前为止,由于 Writer.com 在披露后并未将其分类为安全漏洞,因此漏洞尚未得到修复(具体详情见文末“负责任披露”部分)。
Writer.com 是一个企业和普通消费者都可使用的应用。用户可以上传数据文件、分享链接并提出问题,以生成满足其业务需求的定制内容。考虑到用户上传的信息极为敏感,Writer.com 在其网站上特别强调了数据安全性:https://writer.com/product/data-security-privacy/
1. 漏洞介绍:
在 Writer 应用中,用户可以通过与 ChatGPT 类似的会话界面来编辑或创建文档。在这种对话模式中,大语言模型 (LLM) 能够利用网络上的信息资源,辅助用户进行文档创作。我们发现,攻击者可以设计特殊网站,当用户将这些网站作为参考资料添加进来时,就能诱使大语言模型向攻击者传输私人信息或执行其他恶意操作。
这种数据泄露可能涉及用户上传的文件、他们的聊天记录,甚至是一些特定的私人信息——这些信息是在攻击者的策划下,由聊天模型诱导用户透露的。
这类攻击被称作间接提示注入,最早由 Kai Greshake 提出概念。
为了验证这种攻击的实际可行性,我们上传了一个含有模拟敏感数据(如社会安全号码、营收数字、薪资信息)的文件,并成功提取了所有这些信息:
存放恶意代码的网站表面上与普通网站无异,恶意代码对普通访客是隐藏的。在下面的截图中,我们标出了隐藏的恶意代码文本(它采用白色字体,但还有其他手段来隐藏或在诸如社交媒体平台上嵌入恶意代码):
值得注意的是,*.cloudfront.net 是受到内容安全策略 (CSP) 许可的网络地址之一。
以下是一个典型用户的使用案例:
但实际上,在幕后发生的是这样一个带有注入过程的操作:
A) 用户会要求 Writer 根据他们上传的一些资料和数据为他们撰写报告。
B) 用户在网上找到了一个包含必要信息的优质来源。
C) 用户上传了一些敏感数据。
D) 用户让 Writer 完成这份报告。
E) 作者浏览了一个网页,但网页中隐藏着一段用小号白色字体编写的注入代码:
F) 作者按照这些指示操作,不仅忽视了用户的最初请求,也绕过了 Writer.com 所设置的安全防护。用户并未要求显示这张图片,它原本也不在他们最初浏览的网页上。然而,Writer.com 自动用 markdown 格式显示了这张由黑客控制的图片,并且从网络活动中可以看到,它根据指示把上传的客户端数据文件内容添加到了 HTTP 参数里:
下面是上传的客户端数据文件与上述截图中 HTTP 参数的放大图像的并排比较:
G) 在用户毫不知情的情况下,他们的数据被秘密发送到了攻击者的服务器。Markdown 格式下的图像渲染自动触发了一个 GET 请求,该请求的 HTTP 参数中包含了文件的内容。攻击者可以通过检查日志来提取文件中的敏感客户数据。
利用图像渲染来进行数据泄露只是众多数据泄露技巧中的一种。值得一提的是,据我们了解,Writer 在文本生成中并未使用 OpenAI 技术,而且OpenAI 也曾明确表示他们系统中的同类问题不会被修复。
以下是利用其他方式(例如链接)进行数据泄露的其他一些攻击示例。
更多示例:
示例 1: 上传文件泄露
在此示例中,攻击者通过注入特定链接,能够获取并泄露用户上传的机密文件:
相关视频解释(随安全披露一同发送)
示例 2: 聊天记录泄露
在这个示例中,攻击者通过一个特殊链接,能够获取并泄露用户的聊天记录:
相关视频解释(随安全披露一同发送)
放入背景:
这类攻击已在其他大语言模型 (LLM) 平台上发生过,如 Thacker、Rehberger 和 Greshake 所发起的 Bard 攻击,Google 安全团队和 Bard 团队迅速做出了应对。
想深入了解这些攻击及相关信息的优秀资源,可以访问以下网站:
-
https://kai-greshake.de/ (推特:@KGreshake)
-
https://embracethered.com/blog/index.html (推特:@wunderwuzzi23)
-
https://josephthacker.com/ (推特:@rez0_)
-
https://promptarmor.com/ (推特:@promptarmor)
此外,若想探索大语言模型的安全风险,可以参考:
-
https://owasp.org/www-project-top-10-for-large-language-model-applications/
-
https://atlas.mitre.org/
负责任披露的时间线:
-
11 月 29 日:我们向公司首席技术官和安全团队报告了这一问题,并提供了视频示例。
-
11 月 29 日:作者回复我们,要求提供更多详情。
-
11 月 29 日:我们提供了更详细的描述,包括利用漏洞的截图。
-
12 月 1 日:我们进行了后续跟进。
-
12 月 4 日:我们再次跟进,提交了配有旁白的重新录制视频,询问他们的负责任披露政策。
-
12 月 5 日:作者回复称:“我们不认为这是一个安全问题,因为真实的客户账户无法访问任何网站。”
-
12 月 5 日:我们指出付费客户账户也有同样的漏洞,并通知他们我们正在撰写关于这一漏洞的文章,以警示消费者。自此之后,Writer 团队便未再作出回应。
如果有疑问,欢迎通过 founders@promptarmor.com 联系我们,或访问 https://kai-greshake.de/about 了解更多。