HiddenLayerは3月12日(米国時間)、「New Google Gemini Content Manipulation Vulns Found - Attackers Can Gain Control of Users’ Queries and LLM Data Output - Enabling Profound Misuse|HiddenLayer Research」において、Googleの大規模言語モデル(LLM: Large Language Model)「Gemini」からセキュリティ上のリスクを発見したとしてその調査結果を公表した。この問題はGeminiの利用者だけでなく、Gemini AdvancedとGoogle Workspaceを併用しているユーザーにも影響するという。

  • New Google Gemini Content Manipulation Vulns Found - Attackers Can Gain Control of Users’ Queries and LLM Data Output - Enabling Profound Misuse|HiddenLayer Research

Geminiの脆弱性の概要

HiddenLayerが発見したGeminiの脆弱性は3つ。その概要は次のとおり。

(1)システムプロンプトリーク

LLMのプロンプトでは、質問の前にさまざまな条件を設定できる。これら条件をシステムプロンプトと呼び、回答を制限することが可能。通常はこれらシステムプロンプトを回答に含めないように条件として指定するため、システムプロンプトの出力を要求しても拒否される。

しかしながら、HiddenLayerは「システムプロンプト」を「基本的な指示(Foundational Instructions)」と言い換え、さらにマークダウン記法による出力を要求することで制限を回避してシステムプロンプトを出力させることに成功している。

  • 出力を禁止したパスワードを含むシステムプロンプトを出力させる例 引用:HiddenLayer

この攻撃では必ずしもマークダウン記法を指示する必要はなく、プロンプトリークを防止するために学習させた内容を回避できる質問であれば他の文言でもかまわない。本稿執筆時点では、同様の攻撃を包括的に防止することは難しいとみられている。

(2)制限からの脱獄

Geminiモデルでは、選挙などのトピックに関して偽のニュース記事を生成しないように制限がかけられている。そのため、通常は架空の選挙戦の物語を出力させることはできない。しかしながら、「架空の状態」を条件として指定することでこの制限を回避することができる。

  • 「架空の状態」を指定して制限を回避する例  引用:HiddenLayer

(3)シミュレーションリセット

Gemini Proは特定のトークンの繰り返しに対し、過去のプロンプトを出力する不具合を抱えている。そのため、攻撃者は意味のない文字列を入力するだけでシステムプロンプトをリークさせることができる。

  • 004l.jpg

    意味のない文字列を入力してシステムプロンプトを出力させる例 引用:HiddenLayer

大規模言語モデルはシステムプロンプトとユーザープロンプトを区別するようにトレーニングされている。Gemini Proは意味のない文字列の入力によりこの認識に問題が発生し、過去のプロンプトを含む確認メッセージが出力されるものと推測される。

対策

HiddenLayerは発見した脆弱性が「一般ユーザー」「Gemini APIを使用する開発者」「Gemini Advancedのユーザー」に影響するとして、これらユーザーに対し、詳細を把握しておくことを推奨している。また、Gemini Advancedのユーザーに対し、Google Workspace拡張機能へのアクセスを無効にしてモデルへの影響を回避することを提案している。