看看OpenAI的漏洞,并推断可能的人工智能公司SSC黑客及其可能的影响。企业能做些什么来保护自己?
2023年3月20日,OpenAI公司关闭了流行的生成式人工智能工具ChatGPT几个小时。该公司后来承认,其宕机的原因是源自开源内存数据存储库“Redis”的软件供应链漏洞。
由于这个漏洞,有一个时间窗口(3月20日上午1-10点),用户可能会意外访问其他用户的聊天历史记录标题,并可能暴露与支付相关的信息,例如姓名、电子邮件地址、支付地址、信用卡类型和支付卡号的最后四位数字。
这是一个相对较小的错误,很快就被发现并修复了。考虑到ChatGPT和其他生成式人工智能来越受欢迎,更有针对性的软件供应链攻击可能会产生什么后果?
2023年企业应用程序安全将面临哪些挑战
2022年“企业应用安全”报告为开发人员提供了工具和技术,以确保SDLC的所有阶段都是安全的。其内容包括供应链安全、DevSecOps、零信任安全原则、移动应用程序安全等。
本文将研究3月20日究竟发生了什么,以及用户信息是如何暴露的。还将想象一下更严重的潜在攻击,看看哪些信息可能被暴露,以及可以做些什么来帮助防止此类情况的发生。最后将给出一些通用的软件供应链安全建议,无论企业正在开发什么软件,这些建议都是相关的。
像几乎所有其他软件公司一样,OpenAI公司的代码在很大程度上依赖于开源库和代码。在这个例子中,这个bug是在Redis客户端开源库Redis-py中发现的。以下是该公司自己重新记录的漏洞描述:
- OpenAI使用Redis在他们的服务器中缓存用户信息,以便不需要每次请求都检查他们的数据库。
- Redis集群用于将负载分配到多个Redis实例上。
- Redis-py库用于与公司的Python服务器的Redis接口,该服务器与Asyncio一起运行。
- 库维护服务器和集群之间的共享连接池,并回收连接,以便在完成后用于另一个请求。
当使用Asyncio时,redis-py的请求和响应表现为两个队列:调用者将请求推送到传入队列,从传出队列弹出响应,然后将连接返回到池。
假设一个请求在被推送到传入队列之后,但在响应从传出队列弹出之前被取消。在这种情况下,看到了错误:连接损坏,并且为不相关请求提取的下一个响应可以接收连接中遗留的数据。
在大多数情况下,这会导致一个不可恢复的服务器错误,用户将不得不再次尝试他们的请求。
但在某些情况下,损坏的数据恰好与请求者期望的数据类型相匹配,因此从缓存中返回的数据看起来是有效的,即使它属于另一个用户。
3月20日凌晨1点,OpenAI公司无意中对他们的服务器进行了更改,导致Redis请求取消激增。这使得每个连接返回错误数据的概率高于平常。
这个特定的错误只出现在Redis集群的AsyncioRedis-py客户端中,并且已经由OpenAI公司工程师和Redis库维护者共同修复。
提醒一下,这个错误可能会无意中暴露另一个活跃用户的搜索标题和该用户的部分支付信息。一些用户现在让ChatGPT完全或部分控制他们的个人财务,暴露这些信息可能会带来灾难性的后果。
这是可能发生的事情
在这种情况下,OpenAi从开源库Redis继承的软件供应链漏洞是一个相对简单的漏洞,很容易修补。可以想象一个更严重的场景,这是一个有针对性的软件供应链攻击,类似于SolarWinds遭受的攻击,发生了,并且在很长一段时间内(假设是几个月)都没有被发现。
由于用户现在向OpenAI公司付费以更直接地访问他们的大型语言模型(LLM),这样的攻击可能会泄露客户的信息,包括他们的支付数据。但这并不是我们假设的黑客组织真正感兴趣的信息。ChatGPT目前拥有11.6亿用户。它的用户在2023年3月突破了10亿。这些数字表明,从2023年2月到2023年3月,这一数字增长了近55%。现在,从艺术到历史作业再到金融,许多人都在使用生成式人工智能,不受限制地访问OpenAI的数据库可能会泄露无数用户的潜在勒索信息。如果想找一个更现实的例子,那么2015年AshleyMadison的数据泄露事件造成了一些严重后果,其中一些后果甚至在多年后仍然存在。
让我们在我们想象的黑客中更进一步,假设这个未命名的黑客组织不仅可以访问OpenAI数据库,而且还可以影响请求的结果。你能想象数以百万计的人获得黑客组织量身定制的有针对性的财务建议的可能性吗?或者得到虚假的安全扫描信息或代码测试信息,再次由我们神秘的黑客组织提供?ChatGPT现在可以访问互联网,这使得将进出OpenAI服务器的信息隐藏起来变得更加容易,这些信息只不过是常规的、无害的数据。
人们可以看到针对成功的LLM的软件供应链攻击可能造成的巨大潜在损害。
如何保护自己和软件供应链
为了保护自己,你能做的第一件事就是提高你的怀疑意识。不要盲目地信任任何工具,无论它看起来多么温和,除非您能保证完全控制它所做的事情、它可能做的事情以及它可以访问的资源。在本地运行ChatGPT的开源版本的选项可以让您对培训信息和访问级别有更多的控制。
对软件供应链中正在发生的事情有更多的透明度,并建立一个管道也是一个好主意。您可以从每个构建的SBOM开始,但这只是一个步骤,您还可以做许多其他事情来增加服务器、云或网络中正在发生的事情的透明度。
人工智能的未来
无论我们做什么,人工智能都会一直存在。它对人们日常生活的影响程度还有待推测,但仅从过去六个月的情况来看,似乎可以肯定的是,我们正在看到LLM技术及其应用的潜在分水岭。随着人工智能使代码和整个应用程序的创建变成了用“自然语言”找到正确提示的问题,我们可能会面临前所未有的大量应用程序,这些应用程序没有经过适当的测试,也没有适当的安全保障措施来保护它们的用户和创建它们的人员或公司。