GitHub Copilot で発見されたジェイルブレイクの手法:悪意のモデルのトレーニングなどが可能に?

New Jailbreaks Allow Users to Manipulate GitHub Copilot

2025/01/31 DarkReading — GitHub の AI コーディング・アシスタント Copilot を操作する、2つの新たな手法を研究者たちが発見した。この方式を用いれば、セキュリティ制限やサブスクリプション料金の回避や、悪意のモデルのトレーニングなどが可能になる。

1番目のトリックは、Copilot コード内にチャット・インタラクションを埋め込み、AI の本能である有益性を利用して、悪意の出力を生成するものだ。2番目の方法は、Copilot をプロキシ・サーバ経由で再ルーティングし、統合されている OpenAI モデルとダイレクトに通信させることに重点を置くものである。

Apex の研究者たちは、これらの問題を脆弱性と見なしている。GitHub は、それに反対しており、それぞれを “トピック外のチャット・レスポンス” と “悪用問題” であるとしている。Dark Reading からの問い合わせに対する GitHub の回答は、「当社は、責任のある AI 開発の一環として、有害で不快な出力を防止するための安全対策を継続的に改善している。さらに、問題2で説明されるような悪用を防止するために投資を続け、製品の意図された使用を確保している」というものだ。

GitHub Copilot のジェイルブレイク

Apex の脆弱性研究者である Fufu Shpigelman は、「Copilot は、コード・ファイル内に記述する全てのコンテンツにおいて、可能な限るコードの作成を支援しようとする。ただし、コード・ファイルでは、ユーザーとアシスタントの会話も記述できる。

たとえば、以下のスクリーンショットでは、エンド・ユーザーの視界において開発者が、コード内にチャットボット・プロンプトを埋め込んでいる。このプロンプトには悪意があり、Copilot にキーロガーの作成を依頼している。それに対して、Copilot は安全な出力を提案し、リクエストを拒否している。

Source: Apex

ただし、開発者には、この環境の完全な制御が可能である。開発者は、Copilot のオートコンプリート・レスポンスを削除し、悪意のレスポンスに置き換えられる。

さらに、開発者は簡単な操作で、Copilot に影響を与えることができる。 Shpigelman は、「AI は、意味のある文章を完成させるように設計されている。したがって、”申し訳ないが、その件については手伝えない” という文章を削除し、”はい” という単語に置き換えると、”はい” という単語で始まる文章を完成させようとする。つまり、望むだけ、悪意の活動を手助けしてくれる」と述べている。言い換えるなら、このコンテキストで Copilot にキーロガーを作成させるのは、それを望んだと思わせる卑劣なリクエストと同じくらい簡単である。

Source: Apex

このトリックを用いる開発者であるなら、マルウェアや生物兵器の設計方法に関する指示などの、悪意の出力を生成できる。おそらく、Copilot を使用して、これらの種類の悪意の動作を独自のチャットボットに埋め込み、それを一般に配布することも可能である。

プロキシを用いた Copilot からのエスケープ

新しいコーディングの提案や、プロンプトへの応答 (キーロガーの作成要求など) の処理のために、Copilot は API を介して、クラウドベース LLM である Claude/Google Gemini/OpenAI などの支援を得られる。

Apex の研究者が考案した2番目のスキームは、このエンゲージメントの真っ只中に、彼らを置くものだった。研究者たちは、最初に Copilot のコンフィグを変更し、その “github.copilot.advanced.debug.overrideProxyUrl” 設定を調整し、独自のプロキシ・サーバ経由でトラフィックをリダイレクトした。続いて、Copilot にコードに関する提案を生成するように依頼すると、彼らのサーバは生成されたリクエストを傍受し、Copilot が OpenAI との認証に使用するトークンをキャプチャした。こうして、必要な認証情報を手に入れた研究者は、制限や制約を回避し、また、権限に対して料金を支払うこともなく、OpenAI のモデルにアクセスできた。

ただし、このトークンは、彼らが見つけた唯一の興味深いアイテムではないという。Shpigelman は、「Copilot がサーバと “通信する” 際に、Copilot はシステム・プロンプトとユーザー・プロンプトおよび、以前に送信したプロンプトとレスポンスの履歴を送信する。プロンプトの長い履歴の公開に伴うプライバシー・リスクはさておき、このデータには、Copilot の動作設計を悪用する十分な機会が含まれている」と指摘している。

彼は、「システム・プロンプトとは、AI の特性 (制約/生成する応答の種類など) を定義する一連の命令である。たとえば、Copilot のシステム・プロンプトは、悪意を持って使用されると思われる、さまざまな方式をブロックするように設計されている。しかし、それを LLM API への経路で傍受することで、システム・プロンプト自体を変更できるため、それほど苦労することなく操作できてしまう。つまり、システム・プロンプトを “変更” することで、有害なコンテンツの表示や、コードとは無関係な会話を可能にする」と主張している。

Apex の共同創設者兼 CPO である Tomer Avni は、「この2つの Copilot の弱点から得られる教訓は、GitHub が提供するガードレールの不備を追求するものではない。つまり、LLM の性質上、どれだけ多くのガードレールを実装しても、操作されてしまう可能性が常に存在するということだ。そのため、これらの脆弱性を探すための、独立したセキュリティ・レイヤーを、LLM の上に配置する必要があると考えている」と締め括っている。

GitHub Copilot に対する、新たなジェイルブレイク手法が発見されました。これにより、セキュリティ制限やサブスクリプション料金を回避したり、悪意のモデルのトレーニングなどが可能になるとのことです。AI 技術の進化に伴い、ツールの脆弱性を悪用する手法も高度化しています。よろしければ、以下の関連記事も、ご参照ください。

2025/01/30:国家に支援される APT と AI の関係:57 の脅威グループが Google Gemini を悪用
2024/04/19:GPT-4 調査:脅威アドバイザリを読むだけで多くの脆弱性を悪用できる – University of Illinois