Press "Enter" to skip to content

当一个人工智能公司成为软件供应链漏洞的受害者时会发生什么

2023年3月20日,OpenAI暂时下线了备受欢迎的生成AI工具ChatGPT。后来承认,这次停机的原因是一个软件供应链漏洞,源于开源内存数据存储库’Redis’。

由于这个漏洞,存在一个时间窗口(3月20日太平洋标准时间1-10am之间),用户可能意外访问其他用户的聊天历史标题,并可能暴露与付款相关的信息,如姓名、电子邮件地址、付款地址、信用卡类型和付款卡号的最后四位数字。

这是一个相对较小的错误,被快速发现并修复。考虑到ChatGPT和其他生成LLM的日益流行,更有针对性的软件供应链攻击可能会有什么后果呢?

在本文中,我们将详细介绍3月20日发生的具体情况以及用户信息如何被公开。我们还将进行一次短暂的虚构旅程,探讨更严重的潜在攻击,并看看可能暴露哪些信息以及如何防止此类情况。最后,我们将提供一些建议,无论您的公司开发哪种软件,都可以提高软件供应链的安全性。

具体情况如下

与几乎所有其他软件公司一样,OpenAI的代码在很大程度上依赖于开源库和代码。在这种情况下,这个错误是在Redis客户端开源库redis-py中发现的。以下是公司自己的描述:

  • OpenAI使用Redis在服务器上缓存用户信息,以免每次请求都需要检查数据库。
  • 使用Redis集群将负载分布到多个Redis实例上。
  • redis-py库用于与公司的Python服务器接口,该服务器使用Asyncio运行。
  • 该库在服务器和集群之间维护一个共享的连接池,并在完成后重新使用连接以供下一个请求。
  • 在使用Asyncio时,redis-py的请求和响应行为就像两个队列:调用者将请求推送到输入队列,从输出队列弹出响应,然后将连接返回到连接池。
  • 假设在将请求推送到输入队列后但在从输出队列弹出响应前,请求被取消。在这种情况下,我们会遇到bug:连接变得损坏,并且下一个为不相关的请求提取的响应可能会接收到连接中留下的数据。
  • 在大多数情况下,这会导致无法恢复的服务器错误,用户将不得不再次尝试他们的请求。
  • 但在某些情况下,损坏的数据恰好与请求者所期望的数据类型匹配,因此从缓存返回的数据看起来是有效的,即使它属于另一个用户。
  • 在太平洋时间周一的凌晨1点,3月20日,OpenAI无意中对服务器进行了更改,导致Redis请求取消率激增。这导致每个连接返回错误数据的概率高于平常。

这个特定的错误仅出现在使用Asyncio的redis-py客户端中,用于Redis集群,并且已经由OpenAI工程师和Redis库维护人员共同修复。

作为提醒,这个错误可能会无意中暴露另一个活跃用户的搜索标题和部分付款信息。现在一些用户已经允许ChatGPT完全或部分控制他们的个人财务,使得此信息的曝光可能产生灾难性后果。

可能会发生的情况

在这种情况下,OpenAI从开源库Redis继承的软件供应链错误相对简单,很容易修复。请您想象一个更严重的情况,即一个与SolarWinds类似的有针对性的软件供应链攻击,在相当长的一段时间内没有被发现,比如几个月。

由于用户现在正在向OpenAI支付更直接的LLM访问,这样的攻击可能会泄露客户的信息,包括付款数据。但这实际上并不是我们假设的黑客组感兴趣的信息。ChatGPT目前拥有11.6亿用户。它于2023年3月突破10亿用户。这些数字显示了从2023年2月到2023年3月几乎增加了55%。随着越来越多的人现在将生成AI用于从艺术到历史作业到财务的各种用途,对OpenAI数据库的不受限访问可能会揭示未计数用户的潜在勒索信息。《黑镜》第三季第三集(2016年)的剧集“闭嘴并跳舞”对这种明确信息流向不道德人士的想象结果给出了一个很好的例子。如果你想找到一个更接近现实世界的类比,2015年的Ashley Madison数据泄露事件产生了一些严重的后果,其中一些后果甚至在多年后仍然存在。

让我们在我们的想象中再进一步,假设这个无名的黑客组不仅可以访问OpenAI的数据库,而且还可以影响请求的结果。你能想象到数百万人受到黑客组定制的有针对性的金融建议的潜力吗?或者受到来自我们神秘黑客组的虚假安全扫描信息或代码测试信息的影响?ChatGPT现在可以访问互联网,使得隐藏进出OpenAI服务器的信息变得更加容易,只不过看起来像是普通的无害数据而已。

我在这里就停下了,但我想你能看到一个成功的LLM遭受软件供应链攻击可能造成的巨大潜在破坏。

如何保护自己和软件供应链

保护自己的第一件事就是提高警惕。不要隐式信任任何工具,无论它看起来多么良性,除非你能保证你对它的操作、潜在操作和资源访问具有完全控制权。运行ChatGPT的开源版本可以让你更好地控制训练信息和访问级别。

了解软件供应链中正在发生的事情并建立一个流水线也是一个好主意。你可以为每个构建过程开始使用SBOM,但这只是一步,你还可以做很多其他事情来增加服务器、云端或网络中发生的确切情况的透明度。

人工智能的未来

无论我们做什么,人工智能都将存在。它在我们日常生活中的参与程度是一个推测的问题,但仅仅根据过去六个月的情况,似乎可以确定我们正在面临LLM技术及其应用的一个潜在转折点。随着人工智能将代码和整个应用程序的创建变成了在“自然语言”中找到正确提示的事情,我们可能面临着尚未经过适当测试,也没有适当安全保障来保护用户和创建它们的人或公司的应用程序的前所未有的泛滥。

在真正的智能将在我们的屏幕后面听我们说话的那一天到来之前,我们只能找到其他方法来处理我们自己的安全问题。我相信,将可见性作为建立信任的先决条件是一个很好的起点。

Leave a Reply

Your email address will not be published. Required fields are marked *