Tenableは11月5日(米国時間)、「Private data at risk due to seven ChatGPT vulnerabilities|Tenable」において、OpenAIのChatGPTから複数の脆弱性を発見したと報じた。
これら脆弱性を悪用されると、ユーザーメモリやチャット履歴から個人情報を窃取される可能性があるという。
外部からの攻撃を可能にする7つの脆弱性
発見された脆弱性は間接プロンプトインジェクションの脆弱性とされる。その多くは「SearchGPT」と呼ばれる独立したAIシステムから発見された。SearchGPTはChatGPTの要求を受けてWebアクセスを実行するAI機能とされ、ユーザー情報を持たないことで情報流出を防止する役割がある。
Tenableの調査によると、SearchGPTはChatGPTと比較してガードレールの設計が甘く、明示するだけで攻撃できるという。研究者はテスト用に構築したブログ記事のコメント欄にSearchGPTを名指しするプロンプトを投稿し、ブログ記事の要約を生成させるだけでプロンプトを実行することを確認している。
この脆弱性は人気のブログ記事に悪意のあるコメントを投稿することで、不特定多数のChatGPTユーザーへの攻撃が可能なことを示している。研究者はこの脆弱性の発見を皮切りに、合計7つの脆弱性を発見している。概要は次のとおり。
- 検索コンテキスト汚染 - SearchGPTのアクセス時に悪意のあるプロンプトを応答するWebサイトを構築し、OpenAIのクローラーにWebサイトをインデックス登録させる。ユーザーが当該Webサイトに関連した質問をすると、WebサイトのURLを明示しなくても悪意のあるプロンプトが実行される
- ワンクリックインジェクションの脆弱性 - ユーザーは「https://chatgpt[.]com/?q={Prompt}」にアクセスすることで直接プロンプトを送信することができる。攻撃者は悪意のあるプロンプトを記述したリンクを作成し、ユーザーにクリックさせることでプロンプトを実行させることができる
- Microsoft Bingを無条件で信頼する脆弱性 - OpenAIは「url_safe」と呼ばれるエンドポイントを使用して外部URLの安全性を評価している。このurl_safeはBingを無条件で信頼しており、BingのインデックスURLを悪用することで間接的に攻撃者のWebサイトにアクセスさせることができる
- メモリ汚染 - 細工したプロンプトを含むWebサイトにSearchGPTがアクセスすると、ChatGPTに任意のプロンプトを記憶させることができる。ChatGPTはその後の会話で攻撃者のプロンプトを参照および実行するようになる
- 悪意のあるコンテンツの隠蔽 - マークダウン記法のコードブロックをレンダリングするChatGPTの処理に、先頭の単語以外を表示できない不具合が存在する。攻撃者はコードブロックに悪意のあるコンテンツを記述することで攻撃を隠蔽することができる
- 永続的なメモリ汚染 - プロンプトを調整することで、前述のメモリ汚染を永続化させることができる
概念実証(PoC: Proof of Concept)動画を公開
Tenableはこれら脆弱性の影響をわかりやすく説明するため、概念実証動画を公開している。動画の1つではメモリーに保存された個人情報を漏洩させることに成功しており、無視できない脅威となっている。
OpenAIはTenableからの報告を受け、すでにいくつかの脆弱性を修正している。しかしながらすべての修正には至っておらず、修正に向けた取り組みを実施中とされる。ChatGPTユーザーにはこれら脆弱性を理解し、定期的にメモリ汚染を確認するなど、悪意のあるプロンプトの実行に警戒することが望まれている。

