「AI企業がソフトウェア供給チェーンの脆弱性に対して被害を受けた場合、何が起こるのか」

AI企業のソフトウェア供給チェーンの脆弱性への影響は何か

2023年3月20日、OpenAIは人気のある生成AIツールChatGPTを数時間停止しました。後に、停止の原因はオープンソースのインメモリデータストアライブラリ「Redis」に起因するソフトウェア供給チェーンの脆弱性であることを認めました。

この脆弱性の結果、2023年3月20日の午前1時から午前10時(PST)の間に、ユーザーは他のユーザーのチャット履歴のタイトルに誤ってアクセスし、名前、メールアドレス、支払いアドレス、クレジットカードの種類、および支払いカード番号の下4桁などの支払い関連情報を公開する可能性がありました。

これは比較的小さなバグであり、迅速に発見され修正されました。ChatGPTや他の生成LLMの人気が高まっていることを考えると、よりターゲット指向のソフトウェア供給チェーン攻撃からはどのような影響が生じる可能性があるでしょうか。

この記事では、2023年3月20日に具体的に何が起こったのか、ユーザー情報がどのように公開されたのかについて調査します。また、より深刻な潜在的な攻撃について想像的な旅に出て、どのような情報が公開され、そのようなケースを防ぐために何ができるかを見ていきます。最後に、どのソフトウェアでも関連するソフトウェア供給チェーンのセキュリティに関する一般的な提案をいくつかご紹介します。

以下が起こったこと

OpenAIのコードは、他のほとんどのソフトウェア会社と同様に、オープンソースのライブラリやコードに依存しています。このケースでは、バグはRedisクライアントのオープンソースライブラリであるredis-pyで発見されました。以下は、OpenAIのエンジニアとRedisライブラリのメンテナーによる共同作業によって修正されたバグの説明です。

  • OpenAIは、ユーザー情報をデータベースのチェックなしでリクエストごとにキャッシュするためにRedisを使用しています。
  • Redisクラスタは、この負荷を複数のRedisインスタンスに分散させるために使用されています。
  • redis-pyライブラリは、会社のPythonサーバー(Asyncioで実行される)からRedisとのインターフェースとして使用されています。
  • このライブラリは、サーバーとクラスタ間の共有接続プールを維持し、接続が終了したら別のリクエストに使用するために接続を再利用します。
  • Asyncioを使用する場合、redis-pyとのリクエストとレスポンスは2つのキューとして機能します。呼び出し元はリクエストを「入力キュー」にプッシュし、レスポンスを「出力キュー」からポップし、その後接続をプールに返します。
  • リクエストが「入力キュー」にプッシュされた後で、レスポンスが「出力キュー」からポップされる前にリクエストがキャンセルされた場合、接続が破損し、別のリクエストに対して残されたデータが受信されるという「バグ」が発生します。
  • ほとんどの場合、これにより復旧不可能なサーバーエラーが発生し、ユーザーはリクエストを再試行する必要があります。
  • しかし、一部の場合では、破損したデータがリクエスターが期待していたデータ型に一致するため、キャッシュから返されるデータは有効に見えることがありますが、別のユーザーに属している可能性があります。
  • 2023年3月20日の午前1時(太平洋標準時)に、OpenAIは誤ってサーバーに変更を加え、Redisリクエストのキャンセルが急増しました。これにより、各接続が不正なデータを返す確率が通常よりも高くなりました。

この特定のバグは、Asyncio redis-pyクライアントでのRedisクラスタにのみ現れ、OpenAIのエンジニアとRedisライブラリのメンテナーによって修正されました。

このバグは、ユーザーの検索タイトルと一部の支払い情報を誤って公開する可能性があります。一部のユーザーは現在、ChatGPTに対して個人の財務に対する完全または部分的な制御を与えており、この情報の公開は潜在的に壊滅的な結果をもたらす可能性があります。

以下が起こりうること

この場合、OpenAIによってRedisというオープンソースライブラリから受け継がれたソフトウェア供給チェーンのバグは比較的単純なものであり、簡単に修正できました。私は、より深刻なシナリオを想像してお願いしたいと思います。つまり、SolarWindsに対して行われたようなターゲット指向のソフトウェア供給チェーン攻撃が発生し、発見されないまま長期間続く場合、たとえば数か月間です。

ユーザーは現在、OpenAIに対して直接的なアクセスを支払っていますので、このような攻撃はクライアントの情報、つまり支払いデータを公開する可能性があります。しかし、これは私たちの仮想的なハッカーグループが本当に興味を持っている情報ではありません。ChatGPTは現在、11.6億人のユーザーを有しています。2023年3月に10億人を超えました。これらの数字は、2023年2月から2023年3月までのほぼ55%の増加を示しています。人々がアートから歴史の宿題、財務に至るまで、生成AIを使用しているため、OpenAIのデータベースへの無制限のアクセスは、数え切れないユーザーの潜在的な脅迫情報を明らかにする可能性があります。Black Mirrorのエピソード「Shut Up and Dance」(シーズン3、エピソード3、2016年)は、そのような明示的な情報が悪徳な人々の手に渡るとどのような結果になるかをかなり想像させます。より現実的なパラレルをお探しの場合、2015年のAshley Madisonのデータ漏洩には、重大な結果があり、その一部は数年後でも関連性を持っています。

もう少し想像力を働かせて、この名前のないハッカーグループがOpenAIのデータベースにアクセスできるだけでなく、リクエストの結果にも影響を与えることができるとしましょう。ハッカーグループによって作成された個別の金融アドバイスを何百万人もの人々が受ける可能性を想像してみてください。または、再び当然のことながら、私たちの謎めいたハッカーグループから提供される虚偽のセキュリティスキャン情報やコードテスト情報を受ける可能性もあります。ChatGPTがインターネットにアクセスできるようになったことにより、OpenAIのサーバーの中に出入りする情報をただの通常の無害なデータとして隠すことがますます容易になりました。

ここで話をやめますが、成功したLLMに対するソフトウェア供給チェーン攻撃が引き起こす可能性のある膨大な損害を見て取ることができると思います。

自分自身とソフトウェア供給チェーンを保護する方法

自分自身を守るために最初にできることは、疑念を持つ感覚を研ぎ澄ませることです。どんなに無害に見えるツールでも、それが何を行い、潜在的に何を行う可能性があるのか、どのようなリソースにアクセスできるのかを完全にコントロールできることを保証できるまで、暗黙的に信頼しないでください。ChatGPTのオープンソースバージョンをローカルで実行できるオプションは、トレーニング情報とアクセスレベルの両方をより制御することができます。

ソフトウェア供給チェーンで何が起こっているかについての透明性を高め、パイプラインを構築することも良いアイデアです。各ビルドに対してSBOMを開始することから始めることができますが、それは単なる一歩に過ぎず、サーバー、クラウド、またはネットワークで何が起こっているのかを正確に把握するために他にも多くのことができます。

AIの未来

私たちが何をするにせよ、AIはここにあります。その日常生活への関与度は推測の問題ですが、過去6ヶ月だけでも、LLM技術とその利用方法において画期的な瞬間に直面していることは確かです。AIが「自然言語」で適切なプロンプトを見つけることにより、コードやアプリケーションの作成が容易になるにつれて、十分にテストされていないアプリケーションや適切なセキュリティ保護策を備えていない人々や企業が作成したアプリケーションの洪水に直面する可能性があります。

真の知性が私たちの画面の後ろで私たちを聞いてくれる日が来るまで、私たちは自分自身のセキュリティに対処するための他の方法を見つけるしかありません。私は信頼の前提としての可視性の促進が良い出発点だと考えています。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more