【ChatGPT插件漏洞三连发之一】未授权恶意插件安装

漏洞

要了解第一个漏洞,我们必须首先向您展示 OAuth 身份验证的工作原理:

假设您是 Dan,并且您想使用您的 Facebook 帐户连接到 Example.com。当您点击"使用Facebook登录"时会发生什么?

在步骤 2-3 中:

在 Dan 单击"使用 Facebook 登录"后,www.example.com 打开一个新窗口,指向以下地址:

复制代码
https://www.facebook.com/v3.0/dialog/oauth?redirect_uri=https://www.example.com/OAuth&scope=email&client_id=1501&state=[random_value]&response_type=token
在步骤 4-5 中:

Facebook 为 www.example.com 准备一个令牌,并将浏览器重定向回redirect_uri(步骤 2 中的参数)。确切的重定向:

复制代码
https://www.example.com/OAuth#token=[secret_token]
在步骤 6-7 中:

www.example.com从 URL 中读取令牌,并使用它来直接与 Facebook 通信,以完成身份验证并验证 Dan 的身份。

让我们把重点放在第 5 步上:
复制代码
https://www.example.com/OAuth#token=[secret_token]

在此步骤中,www.example.com 接收令牌,并根据该令牌标识用户。如果攻击者将此链接发送给受害者,但使用攻击者的凭据(令牌),会发生什么情况?

由于 example.com 存在安全问题,它不会验证 Dan 是否启动了 OAuth 流,因此受害者 (Dan) 将作为攻击者连接到 Example.com

在这种情况下,攻击者可以操纵受害者使用其凭据登录网站!

你可能会问自己,有什么大不了的?而且有此看法的人不在少数,许多 OAuth 开发人员认为这不是安全问题,因此无法防范此类攻击。

为了理解这大事,我们使用 ChatGPT 进行实际演示。

当用户安装需要 OAuth 用户批准的插件时,ChatGPT 会启动以程:

步骤1-2:

当用户安装新插件时,ChatGPT 会将他重定向到插件网站以接收代码(对于这篇文章来说,代码即前面提到的令牌)。

步骤3-5:

用户需要批准插件,用户批准后,插件会生成一个代码,并使用该代码将用户重定向回 ChatGPT。

该插件将用户重定向到以下链接:

复制代码
https://chat.openai.com/aip/{plugin_ID}/oauth/callback?code={secret_code}

步骤6-7:

当 ChatGPT 收到代码时,它会自动安装插件,并可以代表用户与插件进行交互。

用户在ChatGPT中写入的任何消息都可以转发到插件。

听起来很熟悉?这与 www.example.com 的 OAuth 图相同。新插件安装中的第 5 步与我们刚才描述的 OAuth 身份验证中的第 5 步相同。

问题和攻击:

ChatGPT 不会验证用户是否确实开始了插件安装。

攻击者可以将步骤 5 中的链接发送给受害者,如果受害者单击该链接,则受害者的帐户上将自动安装带有攻击者凭据的新恶意插件。

受害者向chatGPT发送的任何消息都可能被转移到插件中。

例如,攻击者可以向受害者发送以下链接(指向 chatgpt.openai.com 域的合法链接):

{malicious_plugin_id} 是攻击者想要在受害者身上安装的插件标识符。

{attacker_code_from_malicious_plugin) 是攻击者从插件接收的代码。

通过单击此链接,受害者在未经过确认的情况下即会安装恶意插件。

影响

攻击者可以编写自己的插件,使 ChatGPT 将几乎所有聊天数据转发到该插件,然后通过利用 ChatGPT 中的漏洞,可以在受害者帐户上安装此恶意插件。

由于攻击者是此插件的所有者,因此他可以看到受害者的私人聊天数据,其中可能包括凭据、密码或其他敏感数据。

在 ChatGPT 插件的文档中,他们写到"随着时间的推移,我们预计系统将不断发展以适应更高级的用例",因此随着 ChatGPT 插件的不断发展(现在称为 GPT),此类漏洞的安全影响也变得更加显著。

缓解措施

如果实现 OAuth 并希望针对此方案进行保护,则应实现 OAuth RFC 中所述的状态参数:

请注意,ChatGPT 确实实现了状态参数,但它们的状态不是随机值,因此可以被攻击者猜到。

来源:salt.security

相关推荐
陈敬雷-充电了么-CEO兼CTO6 分钟前
具身智能多模态感知与场景理解:融合语言模型的多模态大模型
人工智能·python·gpt·语言模型·自然语言处理·chatgpt·多模态
lingggggaaaa28 分钟前
小迪安全v2023学习笔记(七十八讲)—— 数据库安全&Redis&CouchDB&H2database&未授权&CVE
redis·笔记·学习·算法·安全·网络安全·couchdb
MoloXuanhe1 小时前
[TryHackMe]Wordpress: CVE-2021-29447(wp漏洞利用-SSRF+WpGetShell)
运维·网络·安全·tryhackme·thm
wanhengidc2 小时前
网页版的云手机都有哪些优势?
运维·网络·安全·游戏·智能手机
czijin4 小时前
【论文阅读】Security of Language Models for Code: A Systematic Literature Review
论文阅读·人工智能·安全·语言模型·软件工程
2501_915921434 小时前
iOS混淆工具实战 在线教育直播类 App 的课程与互动安全防护
android·安全·ios·小程序·uni-app·iphone·webview
monster_风铃5 小时前
小补充: IPv6 安全RA
网络·安全·智能路由器
运维开发王义杰5 小时前
信息安全:代码质量双雄对决,SonarQube 与 Codacy,传统巨擘与云原生新贵的深度剖析
安全·云原生
塔子终结者6 小时前
网络安全A模块专项练习任务十解析
java·服务器·网络安全
2301_780789667 小时前
渗透测试与网络安全审计的关系
网络·数据库·安全·web安全·网络安全