因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享
点击关注#互联网架构师公众号,领取架构师全套资料 都在这里
0、2T架构师学习资料干货分
上一篇:ChatGPT研究框架(80页PPT,附下载)
大家好,我是互联网架构师!
事件梳理
1、近日,由于Redis的开源库bug导致了ChatGPT发生故障和数据泄露事件,造成部分用户可以看见其他用户的个人信息和聊天查询内容;
2、OpenAI首席执行官Sam Altman在推特上为泄密事件道歉。Altman发推文道:“由于开源库中的一个漏洞,我们的ChatGPT遇到了一个重大问题,现在已经发布了补丁,我们刚完成了验证工作。只有一小部分用户能够看到其他用户的对话历史记录的标题。我们为此事深表歉意。”
3、上周末,OpenAI发布了一份事后分析报告,解释了Redis客户软件开源库中的一个漏洞导致ChatGPT服务泄露了其他用户的聊天查询和1.2%的ChatGPT Plus用户的个人信息。OpenAI在发布的事后分析报告中表示:“该漏洞是在Redis客户软件的开源库Redis -py中发现的。
我们一发现了这个漏洞,就联系了Redis的维护者,已发布了解决这个问题的补丁。”泄露的信息包括订阅者的姓名、电子邮件地址、支付地址、信用卡号后四位数字和到期日期。
技术细节
以下是这个错误的具体细节:
OpenAI 使用 Redis 在他们的服务器中缓存用户信息,所以 ChatGPT 不需要为每个请求检查数据库。
OpenAI 使用 Redis Cluster 将这一负载分布到多个 Redis 实例上。
OpenAI 使用 redis-py 库,以便让用了 Asyncio 的 Python 服务器与 Redis 对接。
该库在服务器和集群之间维护一个共享的连接池,并在完成后回收连接以用于另一个请求。
当使用 Asyncio 时,redis-py 的请求和响应表现为两个队列:调用者将请求推送到传入队列,并从传出队列中弹出响应,然后将连接返回到池中。
如果在请求被推送到传入队列之后,但在响应从传出队列中弹出之前,请求被取消,我们就会看到错误:连接因此被破坏,下一个为不相关的请求出列的响应可以接收连接中留下的数据。
在大多数情况下,这会导致一个无法恢复的服务器错误,而用户将不得不重新尝试他们的请求。
但在某些情况下,损坏的数据恰好与请求者所期望的数据类型相匹配,因此从缓存中返回的数据看起来是有效的,即使这些数据属于另一个用户。
在太平洋时间3月20日星期一凌晨1点,OpenAI 无意中给他们的服务器引入了一个变化,导致 Redis 请求取消的情况激增。这在一定程度上引发了每个连接返回错误数据的可能性。
这个错误只出现在 Redis Cluster 的 Asyncio redis-py 客户端,现在已经被修复。
经过深入调查,OpenAI 发现一些用户有可能看到其他活跃用户的姓名、电子邮件地址、账单地址、信用卡号码的最后四位数和信用卡到期日,OpenAI 特别强调道,完整的信用卡号码并没有暴露。
这部分受影响的用户占 ChatGPT Plus 用户总数的1.2%,目前他们已联系了所有受影响的 ChatGPT 用户。
总结
事后,测试修复程序代码经官方广泛测试,确保问题不会再发生,OpenAI也添加额外的检查,确保Redis缓存回传的资料与请求用户相符,并且通过比对多重资料,找出受影响的用户,提供必要的协助,OpenAI也扩大了Redis集群规模以及强健性,减少在极端负载时出现错误连接的可能性。
但值得深思的是,信息安全一直是每次技术进步的难点,而此次GPT带来的AI浪潮中,安全问题更引人深思,从模型的本身-面向的领域-数据的使用-具体的应用等多维度中均带来全新的考验。本次ChatGPT 故障导致数据泄露敲响了新技术带来新安全问题的警钟……
来源丨内容整理自网络
1、Alibaba开源内网高并发编程手册.pdf
2、2T架构师学习资料干货分享
3、10000+TB 资源,阿里云盘,牛逼!!
4、基本涵盖了Spring所有核心知识点总结
· END ·
最后,关注公众号互联网架构师,在后台回复:2T,可以获取我整理的 Java 系列面试题和答案,非常齐全。
如果这篇文章对您有所帮助,或者有所启发的话,帮忙扫描上方二维码关注一下,您的支持是我坚持写作最大的动力。
求一键三连点赞、转发、在看。