HUOXIU

ChatGPTデータ侵害、技術的な詳細が明らかに。

制作者 | OSC オープンソースコミュニティ (ID: oschina2013)

先週の月曜日、ChatGPTはユーザーデータ侵害に見舞われ、多くのユーザーがチャット履歴で他人の会話を発見しました。チャット履歴以外にも、多くのChatGPT PlusユーザーがRedditやTwitterなどのプラットフォームにスクリーンショットを投稿し、サブスクリプションページで他人のメールアドレスを確認したことを示唆しました。

この事件を受け、OpenAIは問題を調査するため、ChatGPTサービスを一時的に停止しました。その後、OpenAIのCEOであるサム・アルトマン氏は 重大な問題が発生したことを認めつつも、当時は問題の詳細を明らかにしず、オープンソースライブラリのバグが原因であるとのみ述べました。

ChatGPTではオープンソースライブラリのバグにより重大な問題が発生しましたが、修正がリリースされ、検証が完了しました。
少数のユーザーは他のユーザーの会話履歴のタイトルを見ることができます。

OpenAIは数日間の調査を経て、技術的な詳細を含むインシデントレポートを最近公開しました。このインシデントはRedisクライアントのオープンソースライブラリのバグが原因で、ChatGPTサービスにおいて他のユーザーのチャットクエリ履歴とChatGPT Plusユーザーの約1.2%の個人情報が公開されました。

技術的な詳細

このバグは、Redisクライアントのオープンソースライブラリであるredis-pyで発見されました。OpenAIはこのバグを発見した後、直ちにRedisのメンテナーに連絡を取り、問題を解決するためのパッチを提供しました。このバグの具体的な内容は次のとおりです。

  • OpenAI は Redis を使用してユーザー情報をサーバー上にキャッシュするため、ChatGPT はリクエストごとにデータベースをチェックする必要がありません。
  • OpenAI は Redis Cluster を使用して、この負荷を複数の Redis インスタンスに分散します。
  • OpenAI は redis-py ライブラリを使用して、Asyncio を使用する Python サーバーが Redis とインターフェースできるようにします。
  • このライブラリは、サーバーとクラスター間の接続の共有プールを維持し、終了すると別の要求のために接続を再利用します。
  • Asyncio を使用する場合、redis-py のリクエストとレスポンスは 2 つのキューで表されます。呼び出し元はリクエストを受信キューにプッシュし、送信キューからレスポンスをポップして、接続をプールに返します。
  • リクエストが受信キューにプッシュされた後、応答が送信キューからポップされる前にキャンセルされた場合、エラーが表示されます。つまり、接続が切断され、無関係なリクエストのためにキューから取り出された次の応答が、接続に残されたデータを受け取ることができます。
  • ほとんどの場合、これにより回復不可能なサーバー エラーが発生し、ユーザーはリクエストを再試行する必要があります。
  • ただし、場合によっては、破損したデータが要求元が期待するデータ型と一致するため、データが別のユーザーに属している場合でも、キャッシュから返されたデータは有効であるように見えます。
  • 3月20日(月)午前1時(太平洋時間)、OpenAIはサーバーに不注意による変更を導入し、Redisリクエストのキャンセルが急増しました。これにより、各接続で誤ったデータが返される可能性が高まりました。
  • このバグは Redis Cluster Asyncio redis-py クライアントでのみ発生し、現在は修正されています。

OpenAIは徹底的な調査の結果、一部のユーザーが他のアクティブユーザーの名前、メールアドレス、請求先住所、クレジットカード番号の下4桁、クレジットカードの有効期限を閲覧できる可能性があることを発見しました。OpenAIは、クレジットカード番号全体が漏洩したわけではないことを特に強調しました。

影響を受けたユーザーは ChatGPT Plus ユーザー全体の 1.2% を占めており、現在、影響を受けるすべての ChatGPT ユーザーに連絡を取っています。