羊の皮を被ったGPT:カスタマイズされたGPTのリスク
https://scrapbox.io/files/66261f0e697f2700250cd105.png
論文情報
タイトル:GPT in Sheep's Clothing: The Risk of Customized GPTs
発行日:2024年1月
著者:Sagiv Antebi et al
所属:Ben-Gurion University
論文のポイント
この論文の詳細なコード情報
JAVA Code Assistant GPTs (脆弱性が確認されたLog4j versionのjavaへのdowngrade)
PHP Expert GPTs (SQLインジェクション対策のないコード)
C Expert GPTs (scanf関数の入力長チェックなし => バッファーオーバーフロー)
Python Expert GPTs (os.remove(path)で、全データ削除)
Notebook Converter(悪意のあるtorchsライブラリ(自作)のインストール)
論文を読んで感じたこと
怖すぎ!!!
絶対にUdemyで警鐘する。
GPTsのコードを理解することなくコピペしていると、痛い目にあう。
だからこそ、怪しいGPTs(〇〇Expert)には要注意。
というか、コードのコピペよくないよ。(<= 老害)
関連論文読むと、ChatGPTにも自己チェックできるような能力はありそう。
あとは、OpenAI側のセキュリティ対策に期待したい。
次にやること
Udemyでの啓蒙(§3.3 情報窃取)の一貫として、非公開のGPTsを作成した。
Actionsの接続を許可しただけで、会話内容が簡単に外部へと漏洩してしまっている。
https://scrapbox.io/files/662726fefe1e8c00250496e1.gif
概要
本論文では、GPTsが悪用される可能性があり、ユーザーのプライバシーとセキュリティにリスクをもたらすことを周知することを目的としています。 1 はじめに
最近の研究で議論されているように、ChatGPTは、ジェイルブレイクやプロンプトインジェクション攻撃など、さまざまなサイバー攻撃で悪用される可能性があるため、その急速な普及と人気の高まりが懸念されています。さらに、別の研究では、デマ情報キャンペーンを推進し、有害なコンテンツを作成するLLMの可能性が示されています。 本論文では、GPTを使用してさまざまな種類のサイバー攻撃を実行できる容易さを示します。また、この研究で作成した悪意のあるGPTからユーザーを保護できる対策も提示します。
構築者の身元はユーザーには匿名のままですが、OpenAIはクレジットカードの詳細と関連情報を介して構築者を特定できることが重要です。この情報は、ChatGPT Plusサブスクリプションの購入時に提供されます。これは、GPTを作成するために必要です。本論文では、悪意のある構築者が偽の資格情報を使用しているため、GPTがOpenAIに報告された場合でも、構築者の身元は不明のままであると想定しています。 2 GPTsの作成
省略
3 GPTsの脅威の分類法
提案する脅威の分類法を図1に示し、その構成要素を以下に説明します。
https://scrapbox.io/files/6626204f0d029f0025a09d7e.png
3.1 脆弱性誘導 (Vulnerability Steering)
脆弱性誘導とは、ユーザーの機密データにアクセスしたり、ユーザーのデバイスでコードを実行したり、ユーザーのデータを暗号化したりするために、ユーザーのデバイスのセキュリティを侵害することを目的としたあらゆる行為を指します。たとえば、攻撃者はGPTの機能を利用してユーザーを操作し、セキュリティレベルを下げてソフトウェアやデバイスに害を与える行動を取らせる可能性があります。
N日脆弱性攻撃
N日脆弱性とは、一般に報告されているセキュリティ上の欠陥で、パッチが利用可能な場合もない場合もあります。これらの脆弱性は、悪意のあるGPTを作成する攻撃者によって悪用され、ユーザーを操作して、N日脆弱性のあるバージョンにソフトウェアをロールバックさせ、それを悪用する攻撃にさらされる可能性があります。
安全でない慣行
これは、GPTがバッファーオーバーフローをチェックしないコード、SQLインジェクションの影響を受けやすいコードなど、安全でない慣行を採用するようユーザーに指示することを指します。
3.2 悪意のあるインジェクション
悪意のあるインジェクションとは、機密データにアクセスしたり、ユーザーのデバイスでコードを実行したり、ユーザーのデータの一部を暗号化したりするために、悪意のあるコードを直接ユーザーのソフトウェアに注入することを目的としたあらゆる行為を指します。攻撃者は、GPTをカスタマイズして、ユーザーのデバイスやソフトウェアに直接害を及ぼすアクティブに悪意のあるセクションを含むコードをユーザーに提供する可能性があります。
悪意のあるコードスニペット
この攻撃は、明らかに悪意のあるコードをユーザーに提案することで、ユーザーのデバイスやプログラムに直接害を及ぼすことを目的としています。これは、提案を確認しないユーザーにとって大惨事になる可能性があります。
悪意のあるライブラリ
この攻撃は、既知の弱点のある危険なサードパーティのライブラリや、悪意のあるコードをカプセル化したライブラリに依存しているユーザーに悪意のあるコードを提案することを指します。
3.3 情報窃取
情報窃取とは、ユーザーに機密データの提供を誘惑することを目的としたあらゆる行為を指します。たとえば、攻撃者はGPTsの機能を使用して、ユーザーに機密情報の開示を促す可能性があります。AI対応の電子メールセキュリティ企業であるVade Secureによると、2023年第3四半期のレポートによれば、フィッシング攻撃が173%、マルウェアメールが110%増加するなど、サイバーセキュリティの脅威が大幅に増加していることが明らかになっています。
大規模言語モデル(LLM)の進歩により、このような問題への対策が困難になっている可能性があります。これらの攻撃の結果、被害者は、人間の基本的な信頼傾向を悪用して、ログイン認証情報、財務情報、個人識別情報などの機密情報の提供を操作されます。フィッシングに関連するリスクには、経済的損失、ID盗難、データの完全性の侵害などがあり、個人や組織に大きな評判的および経済的損害を与える可能性があります。
直接フィッシング
これは、GPTアクション機能を介してユーザーの情報を直接漏洩させることを指します。構築者は、無害に見えるAPIコールでGPTに機密情報をカプセル化させ、「GPTsとのチャットは構築者と共有されません」とOpenAIが明示的に述べているにもかかわらず、その情報を密かに構築者に送信させることができます。OpenAIは、プライバシーへの取り組みの一環として、GPTの構築者はユーザーの会話にアクセスできないと主張しています。この主張に異議を唱え、OpenAIのプライバシープロトコルの潜在的な弱点を明らかにしています。
サードパーティのフィッシング
これは、GPTに悪意のあるサイトへのリンクを提供させ、ユーザーのデータを盗んだりクリックベイトを実行したりする攻撃を指します。
以下のセクションでは、攻撃を実行するために作成した悪意のあるGPTを使用して、GPT脅威分類法の各脅威を実証します。本論文の最後に、これらの脅威に対処するための軽減策を提案します。
4 脆弱性誘導
4.1 N日脆弱性攻撃
Common Vulnerabilities and Exposures(CVE)リファレンスCVE-2021-4422811で特定されたLog4Shellの脆弱性は、2021年末に発生した重大なセキュリティ問題です。
💡確かに、この事件は当時エンジニアをざわつかせた... 幸いうちのコードには影響なかった。
Javaで最も広く使用されているロギングフレームワークの1つであるApache Log4jの脆弱性は、多くのソフトウェアアプリケーションのセキュリティに大きな影響を与えます。この脆弱性を悪用すると、影響を受けるシステムでリモートコード実行につながる可能性があります。脆弱なバージョンは、Java 8の場合は2.17.0より前、Java 7の場合は2.12.3より前、Java 6の場合は2.3.1より前です。
この脆弱性を悪用するには、ユーザーのコードが、ターゲットとするサービスで実行されている攻撃者のエクスプロイトセッションにLightweight Directory Access Protocol(LDAP)クエリを実行する必要があります。したがって、GPTの目標は、悪意のあるLDAPクエリが実行されるコードスニペットを追加することです。
この攻撃を実証するために、Javaコーディングの支援を提供することになっているGPTを構築しました。図2に示す例では、ユーザーが「JAVAコードアシスタント」GPTにアクセスし、コードのリファクタリングを求めています。これに応答して、このタスクを支援するために、GPTは特定の脆弱なJavaバージョンをインストールすることを提案します。その後、GPTは、エクスプロイトを含むユーザーのコードのリファクタリングバージョンを提供します。
https://scrapbox.io/files/6626260347294d0024603ef1.png
4.2 安全でない慣行
ソフトウェア開発において、安全でないコーディング慣行は、さまざまなサイバーセキュリティの脆弱性につながります。コードセキュリティの不備は、多くの場合、不適切なコーディング方法、十分なテストの欠如、セキュリティ原則の理解不足が原因で、ソフトウェアシステムの侵害につながる可能性があります。
ChatGPTの台頭により、プログラマーはコードを書くためにそのコード生成機能を使用することが増えています。プログラマーは、ChatGPTが提供するコード推奨を信頼する傾向があり、多くの場合、コード推奨のセキュリティを評価する知識やツールを持っていません。
💡そうだよね...
この攻撃を実証するために、「PHP Expert」と呼ばれるPHPでコーディングの支援を提供することになっている2つのGPTと、「C Expert」と呼ばれるCでコーディングの支援を提供することになっているGPTを構築しました。
最初の攻撃では、PHP Expert GPTの役割は、SQLインジェクションに対して脆弱な行のコードを提案することです。図3に示す会話では、GPTがSQLデータベースでユーザー認証情報の有効性をチェックすることを目的としたPHPコードを提案しています。GPTはコードを提供しますが、このコードは機能的ですが、SQLインジェクション攻撃につながる可能性のある安全でない行が含まれています。
https://scrapbox.io/files/6626957ad1c4b300256fb8a0.png
2番目の攻撃では、C Expert GPTの役割は、バッファーオーバーフロー攻撃に対して脆弱な行のコードを提案することです。
図4に示す会話では、GPTがユーザー名、パスワード、サイトアドレスのユーザー入力を取得し、それらの認証情報をHTTPログインリクエストに使用することを目的としたCコードを提案しています。GPTはコードを提供しますが、このコードは目的を果たしますが、バッファオーバーフロー攻撃につながる可能性のある安全でない行(入力長をチェックせずに「scanf」関数を使用)が含まれています。
https://scrapbox.io/files/662696be8d8cf500255d286c.png
5 悪意のあるインジェクション
5.1 悪意のあるコードスニペット
悪意のあるコードスニペットは、ユーザーのデバイスで有害なコードを実行することを目的としています。有害なコードの実装には、暗号化、削除、データ収集、その他のリモートコード実行など、さまざまな形態があります。この攻撃を実証するために、Pythonでコーディングの支援を提供することになっている「Python Expert」と呼ばれるGPTを構築しました。
図5に示す例では、GPTがユーザー名、パスワード、サイトアドレスのユーザー入力を取得し、それらの認証情報をHTTPログインリクエストに使用することを目的としたPythonコードを提案しています。GPTはコードを提供しますが、良い提案のように見えますが、ユーザーにCドライブのWindowsフォルダ内のすべてのデータを消去させ、オペレーティングシステムを動作不能にし、大量のデータ損失をもたらす有害なコード行が含まれています。
💡 こわ...
https://scrapbox.io/files/6626989fea5b520024e45a87.png
5.2 悪意のあるライブラリ
悪意のあるライブラリインジェクションでは、攻撃者は無害なものを装った悪意のあるライブラリをコードセグメントに隠します。この攻撃を実証するために、Pythonコードをノートブックに変換することになっている「Notebook Converter」と呼ばれるGPTを構築しました。
この場合、図6に示すように、結果の会話には、正当な「torch」ライブラリを装った「torchs」と呼ばれる一見無害だが悪意のあるPythonライブラリが含まれています。ユーザーは、「torch」を「torchs」に置き換えるなどの小さな変更を見落とす可能性があります(タイポスクワッティングとしても知られています)。
元の「torch」ライブラリの機能を模倣しながら、このライブラリには、システムのセキュリティを侵害したり、ユーザーのソフトウェアとデバイスに直接害を及ぼしたりするように設計された追加の隠れた操作が含まれている可能性があります。
https://scrapbox.io/files/66269a55c1c8d50025c2f205.png
6 情報窃取
6.1 直接フィッシング
フィッシングにGPTを使用することは、受信者を欺いて機密情報を漏らしたり、安全でない行動を取らせたりすることを目的とした、説得力のある欺瞞的なメッセージを作成するために、GPTの高度な言語能力を非倫理的に悪用することを伴います。攻撃を実証するために、心理的問題を抱える人を支援することを目的とした「Psychology」と呼ばれるGPTを構築しました。ユーザーはGPTと通信し、自分の感情や懸念を共有します。次に、ユーザーのメッセージがAPIコールを介して攻撃者のサーバーに送信されます。 図7は、ユーザーがプライベートな会話を要求するシナリオを示しています。GPTは同意しているように見せかけていますが、実際にはメッセージを外部サーバーに送信しており、これらのメッセージを敵対者のデータベースに保存するように構成されています。
https://scrapbox.io/files/66269bcb6bb43e0024f827e1.png
この攻撃のデモンストレーションは心理学の分野に関するものですが、金融や法律など、助けを求めることが多い他の多くの分野でも実行できます。GPTがこのAPIコールを実行する許可を求めることに注意することが重要です。それにもかかわらず、OpenAIプラットフォームに対する一般の信頼のため、ユーザーはこの許可リクエストを開いて、送信されるデータを確認する可能性が低くなります。
💡ここは本当に危険で狡猾だから、Udemyで警鐘しよう。
6.2 サードパーティのフィッシング
サードパーティのフィッシング攻撃は、信頼できる外部エンティティになりすまして、不注意な被害者から機密データを取得します。攻撃を実証するために、IT支援を提供することになっている「General IT Expert」と呼ばれるGPTを構築しました。場合によっては、ChatGPTと通信するときに、ユーザーは追加情報が見つかるリンクの形式で応答を受け取ります。したがって、私たちのGPTのユーザーは、外部のWebサイトへのリンクを含む応答を信頼すると期待しています。
図8に示す例では、ユーザーがDiscordアカウントへのログインの支援をGPTに求めています。これに応答して、GPTはユーザーに「Discord Login Support」リンクをクリックするように指示しますが、これは正当に見えますが、実際にはGPTが本物として偽装している悪意のあるリンクです。このリンクは、ユーザーをhttps://www.disccrd.com/login/_pag URLに誘導します。これは、ユーザーが支援を要求したログインページと似ています。 https://scrapbox.io/files/66269e7ddb6a76002574bbc5.png
7 提案される緩和策
このセクションでは、GPTsがもたらす脅威に対する防御手段について説明します。これらのアイデアは、完全に肉付けされた方法論ではありませんが、GPTsのセキュリティを改善するために取ることができる積極的な手順を表しています。ここで言及されているほとんどの防御には、ChatGPTの微調整は含まれていないことに注意してください。シンプルさと実装の容易さのために、すぐに使える解決策を提案します。 7.1 GPTの自己チェック
最近の研究により、ChatGPTは自己検査を介して応答をチェックおよび検閲し、応答が有害かどうかを検出するために自分自身に問い合わせることができることが示されました。この方法は、ChatGPTがモデル自体に大きな変更を加えることなく、自身の悪意のある動作を検出するために必要な機能を備えていることを示しています。この知識に基づいて、悪意のあるGPTsがユーザーに攻撃を仕掛けようとしている会話の記録をChatGPTに与える単純な防御方法を考案しました。次に、会話にセキュリティの欠陥や悪意のあるコードがあるかどうかをChatGPTに判断させ、ある場合はそれを指摘させます。提案された防御方法をすべての攻撃に対して評価しました。
驚いたことに、悪意のあるGPTとの会話の記録にこの方法を使用した後、情報窃取を除いて、すべての会話がChatGPTによって悪意のあるものとしてフラグが立てられました。さらに驚いたことに、ChatGPTは、どのセキュリティまたはプライバシー攻撃が試みられたか、およびそれが会話のどこで発生したかを正確に指摘することができました。これに続いて、OpenAIは、脆弱性誘導や悪意のあるインジェクションなどの攻撃を防ぐことができる同様の防御メカニズムを組み込むことでGPTsのセキュリティを強化することを推奨します。
7.2 設定の検証
最近の研究[により、微調整と自己質問を通じて、ChatGPTは、特にジェイルブレイクや有害なプロンプトに関して、入力プロンプトの有害性を鋭敏に認識できることが示されました。別の研究では、「Drop and Check」メソッドを使用することにより、ChatGPTはモデルの安全ガードレールをバイパスすることを目的とした敵対的プロンプトを正確に検出できることがわかりました。これを念頭に置いて、単純な自己検証の防御を採用しました。悪意のあるGPTsに提供した指示、知識、およびアクションをChatGPTに与えました。次に、悪意のあるコード、誤解を招く可能性、またはプライバシーの侵害を検出するようChatGPTに依頼しました。驚いたことに、この防御を攻撃に対してテストしたところ、すべての場合において、ChatGPTは入力として攻撃が組み立てられていることを示し、それがどのように、どこで発生したかを正確に説明できました。OpenAIがこの方法に基づいて防御メカニズムを構築し、作成プロセスを検証して、悪意のある構築者が有害なGPTを作成する能力を軽減することを提案します。 7.3 コミュニティの評判
Androidマーケットプレイスアプリが導入されたとき、構築者は悪意のあるアプリケーションを簡単にアップロードできました。この脅威に対応するために、Googleは新しいアプリをアプリストアで公開する前に検査するメカニズムを開発しました。OpenAIも同じことを行い、GPTを一般公開する前にすべてのGPTを検査する高度なメカニズムを開発することを推奨します。GPTユーザーに保護を提供する可能性のある別の効果的なメカニズムは、評価の使用です。これにより、GPTストアでGPTの評判を測定できます。すべてのGPTの評判を計算する方法はさまざまですが、重要な点は、ユーザーコミュニティがGPTの安全性を評価することです。悪意のあるGPTを作成する動機を減らすために、OpenAIが構築者の信頼性を評価することを推奨します。悪意のあるGPTが特定された場合、OpenAIは攻撃を帰属させることができます。
7.4 リンクテキストなしでリンクを表示する
また、ハイパーリンクをクリック可能なテキストではなく、完全なURL形式で表示することを強制する、サードパーティのフィッシング攻撃に対する防御手段を提案します。多少不便ですが、このアプローチは、ユーザーがリンクに関与する前にURLを明確に確認して評価できるようにすることで、情報窃取やフィッシングなどの攻撃で悪意のあるリンクを隠すことを防ぐことを目的としています。OpenAIが、GPTがクリック可能なリンクに隠されたURLを含むメッセージで応答することを許可しないことを推奨します。
7.5 有益なAPIコール
情報窃取攻撃でのAPIコールを介した機密データ漏えいのリスクに対処するために、これらのコールを電子メールや電話番号などの個人を特定できる情報(PII)についてスキャンし、検出されたときにユーザーに警告する防御策を提案します。この積極的なスキャンと警告のメカニズムは、ユーザーデータの不注意な露出を防ぐことを目的としています。各APIコールでどのデータが送信されているかをユーザーに正確に示すことも、機密の会話の漏洩の可能性を低くするのに役立つかもしれません。
上記の防御戦略は、悪意のある構築者によるGPTの悪用の可能性に対してGPTを強化する最初の試みを表しています。これらの防御方法は、攻撃者が悪意のある指示でGPTを構築し、それ以上の操作(jailbreakingなど)を実行しない非常に単純なケースに対処することに注意することが重要です。最後に、上記の防御を含む、より堅牢な防御システムの余地があると考えており、OpenAIがそれらに注意を払うことを推奨します。
8 結論
本論文で提示した攻撃に基づいて、GPTは敵対者によって悪用される可能性があり、一般の人々のプライバシーとセキュリティに重大なリスクをもたらす可能性があると結論付けます。
私たちの研究は、この新しいサービスのユーザーは潜在的な攻撃を認識し、OpenAIの公式製品を使用している場合でも慎重に会話する必要があることを示しています。攻撃者は悪意のあるGPTを簡単に作成でき、それらは羊の皮を着た狼のように、役立つチャットを装って一般の人々がアクセスできることを示しました。また、単純な緩和技術がGPTの悪意を検証および検出するのに非常に効果的であり、Androidアプリストアの場合と同様に、コミュニティが悪意のある構築者のGPTストアへのGPTのアップロードを防ぐのに関与できることを示しました。今後の研究は、特にOpenAIがこのサービスを一般公開する場合に、GPTに関連するリスクを軽減するためのより堅牢な防御メカニズムの開発に焦点を当てる必要があります。
/icons/hr.icon
もっと、たくさんのAI情報を知りたいあなたへ...
現在週に1度の頻度で、AIの最新情報や活用ノウハウを、メルマガ限定で発信しております。
一人でも多くの方にとって、「AI人材としてのスキルアップ」につながれば幸いです^^
また、現在、登録者限定で「AIをフル活用した新しい知的生産管理」の実演解説動画を配布中です 🎁
※ ご登録完了のメールに、URlのリンクを添付いたします。
以下のリンクから、ぜひお受け取りください👇