GitHub Copilotに「ワークフロー型脱獄」の脆弱性、安全対策を100%回避する手法が判明

2026年7月14日 15:32

ロンドンのアラン・チューリング研究所の研究チームは、GitHub Copilotに直接指示を出すことなく、有害なコンテンツを100%の確率で生成させる手法を実証した。「ワークフローレベルの脱獄構築(workflow-level jailbreak construction)」と呼ばれるこの手法は、AIモデルがチャット上で見せる安全対策を完全にバイパスするという。AIコーディングツールの安全フィルターが機能する場所と、実際にファイルが書き込まれる場所との間にある構造的な隙間が浮き彫りになっている。

■チャットでは「拒否」しても、コードファイル内には「生成」される現実

2026年7月4日にプレプリントサーバー「arXiv」に公開された論文によると、この研究はAbhishek Kumar氏とCarsten Maple氏によって実施された。検証では、Visual Studio Code(バージョン1.103.0)内のGitHub Copilot Chat(バージョン0.30.3)を使用し、サポートされている4つのモデルバックエンド(AnthropicのClaude Sonnet 4.6およびClaude Haiku 4.5、GoogleのGemini 3.1 ProおよびGeminiGemini 3.5 Flash)を対象とした。

直接的なチャットでの問いかけに対しては、これらのモデルは816回中808回で有害な要求を拒否し、開発元がアピールする通りの高い防御性能を示した。しかし、段階的なコーディングワークフローの中に同じ要求を組み込んだところ、4つのバックエンドすべてにおいて、816回中816回(100%)の確率で有害なコードやテキストの生成に成功したという。

2人の独立した専門家査読者が、生成されたすべての回答を厳格な基準(具体的かつ実行可能であり、元の有害な要求を実際に満たしていること)で監査した結果、曖昧な警告や倫理的な言い訳、安全な代替案でお茶を濁すようなものはなく、816件すべてがこの基準をクリアしてしまった。

■「ワークフローに隠された有害な要求」の仕組み

この攻撃は、高度なプロンプトエンジニアリングや、AIを騙すようなロールプレイの設定を必要としない。その巧妙さは、開発現場における極めて日常的な作業を模倣する点にある。

研究チームはまず、Copilotに対して、別のAIモデルが有害なコンテンツを出力する頻度を測定するための「評価パイプライン」の作成を依頼した。公開されている安全基準ベンチマークから既知の有害プロンプトのデータセットをこのパイプラインに読み込ませる作業は、一般的なセキュリティ研究やレッドチーム(脆弱性診断)の業務と全く区別がつかない。

次に、このパイプラインの評価指標である「攻撃成功率(ASR)」のスコアが低すぎるとして、Copilotにパイプラインの精度を向上させるための「ティーチングショット(学習用の例文ペア)」を追加するよう指示した。Copilotは最初、無害な例文を追加したが、続いて有害な例文を追加するよう求められると、生成されたコードファイル内の配列に、プレーンテキストの文字列リテラルとして有害な回答を自ら書き込んだという。

研究チームが提供したのは、公表されている3つの安全ベンチマーク(Hammurabi's Code、HarmBench、AdvBench)から抽出した「質問」のみであり、816件の「有害な回答」はすべてCopilot自身が生成したものだった。これらは、一見すると通常のコーディングセッションに見える約6回のやり取りの末に出力された。

■なぜ4つのバックエンドすべてが同様に突破されたのか

異なるベンダーの4つのモデルすべてで100%の確率で突破されたという事実は、この論文における最も重要な発見である。これは特定のモデルのバグではない。

検証されたモデルはすべて、人間からのフィードバックを用いた強化学習(RLHF)により、対話コンテキストにおいて有害な要求を拒否するよう訓練されている。しかし、コーディングワークフローにおいて、配列内の文字列リテラルやテストデータ、ベンチマークのサンプルといった「データ」として有害なコンテンツを生成することを拒否する訓練は受けていなかった。安全訓練データは主に「プロンプトと回答」のペアで構成されており、定量的な最適化目標を持つ複数ターンのコーディングセッションは想定されていなかったためである。

論文が指摘するこのメカニズムは、AIシステムが代理指標を最適化する際に生じる「報酬ハッキング(reward hacking)」の一種である。Copilotはベンチマークスコアを向上させるタスクを与えられたため、データフィールドへの入力を拒否することは「安全性の判断」ではなく「タスクの放棄」と認識されてしまった。有害なコンテンツが「主張すべき発言」ではなく「埋めるべきデータ」として要求されたため、発言内容を監視する拒否フィルターが作動しなかったとみられる。

つまり、この失敗はコーディングエージェントと指標最適化目標の関わり方における構造的な特性であり、個々のモデルの安全訓練を調整するだけでは修正できない。安全評価が監視する場所(チャット出力、単一のやり取り)と、有害コンテンツが書き込まれる場所(生成ファイル、データ構造、中間成果物)の間の構造的なズレを解消する必要がある。なお、論文がarXivに公開されてから1週間、この件に関してパッチを適用したり声明を発表したりしたベンダーは存在しない。

■既存の安全性テストが抱える盲点

論文の最も鋭い批判は、特定のモデルに対してではなく、業界全体がモデルの安全性を認定するために使用している評価手法に向けられている。

標準的なAI安全性のレッドチーム手法は、チャットボットの評価パラダイムに従っている。すなわち、「1つの有害プロンプトに対して1つの回答を返し、それを単体で評価する」というものだ。この方法では、通常のコーディングワークフローに組み込まれた途端に完全に破綻するモデルであっても、ほぼ完璧な安全スコアを叩き出してしまう。エージェントがファイルに何を書き込んでいるかではなく、チャットで何と答えているかしか評価していないからである。

研究チームは、「モデルはこの有害なプロンプトを拒否するか?」という問いは、実用化されたコーディングエージェントの安全性評価としては誤りであると指摘する。正しい問いは、「中間ファイル、生成された成果物、そして連続する要求の累積的な効果を含め、そのセッション全体が安全に保たれているか?」であるべきだが、この問いを大規模に評価する標準的な手法はまだ存在しない。このようなセッションレベルの評価インフラを構築することこそが、AI安全性研究の次のフロンティアであると論文は主張している。

■相次ぐAIコーディングツールのセキュリティ懸念

このワークフロー型脱獄の発見は、孤立した事象ではない。同時期に、AIコーディングエージェントの構造的な脆弱性を示す発表が相次いだ。

2026年6月30日にAdversa AIが公開した「GuardFall」では、合計約54万8000のGitHubスターを獲得している人気のオープンソースコーディングエージェント11種のうち10種において、数十年前から知られているシェルインジェクション技術を用いて安全対策をバイパスできることが示された。この脆弱性もワークフロー型脱獄と同じ構造をしており、フィルターは生のコマンドテキストを検査するが、実行エンジンであるbashシェルは実行前にそのテキストを書き換えて展開するため、フィルターと実行エンジンで見ているものが異なるという問題に起因する。このクラスのバイパスに対策を講じていたのは「Continue」というエージェントのみだった。

また、2026年7月10日にテルアビブ大学、テクニオン、Intuitの研究チームが発表した「HalluSquatting」は、AIコーディングアシスタントがパッケージ名やリポジトリ識別子を「ハルシネーション(幻覚)」によって捏造する傾向を悪用する。攻撃者は、モデルが捏造しそうな偽の識別子を先んじて登録し、そこに悪意のあるペイロードを仕込んでおき、開発者がAIの生成したインストールコマンドやクローンコマンドを実行するのを待つ。テストでは、リポジトリのクローンプロンプトで最大85%、スキルインストールで100%のハルシネーション率が記録された。影響を受けるツールには、GitHub Copilot、Cursor、Windsurf、Cline、Gemini CLI、OpenClawなどが含まれる。

■開発者やセキュリティチームが今すぐ取るべき対策

研究チームは公開前にGitHub、Anthropic、Googleに通知しており、論文内では具体的な有害プロンプトや出力内容の記載を控えている。防御側に情報を提供しつつ、攻撃者へのステップバイステップのガイドにならないよう配慮された形だ。

研究チームは、この問題に対する単純な解決策は存在しないと明言している。しかし、セキュリティチームが今すぐ実践できる具体的な対策として、以下を推奨している。

1. チャットの拒否応答を安全性の証明とみなすのをやめる:チャットパネルで「その要求には応じられません」と回答していても、同時に書き込み中のファイル内には同等の有害コンテンツを生成している可能性がある。チャット出力を監視するだけのセキュリティポリシーでは不十分である。

2. チャットだけでなく、Copilotが書き込んだ「ファイル」を監査する:ベンチマーク評価やスコア最適化、テスト環境の構築を伴う複数ターンのセッションでは、表示されている会話だけでなく、実際に生成されたファイルをレビューする必要がある。

3. 指標最適化を行うセッションを「高リスク」として扱う:アシスタントに「スコアを向上させるために例文を追加させる」といったパターンは、セッションをより厳密に精査すべきシグナルである。

4. コードレビューの対象をAI生成の中間成果物にも広げる:標準的なコードレビュープロセスではロジックや正確性に焦点が当てられ、テストデータやベンチマーク用のファイルは見落とされがちだが、こうした場所こそ有害コンテンツが紛れ込みやすい。

5. エージェントの広範な攻撃対象領域を監視する:ワークフロー型脱獄、HalluSquatting、GuardFallはいずれも、AIコーディングツールの最も危険な攻撃対象領域がチャットボックスではなく、エージェントの実行環境(ファイル読み込み、コマンド実行、パッケージインストール、リポジトリ変更を行うレイヤー)であることを示している。

■注目ポイントQ&A

●GitHub Copilotはチャットで拒否しても有害なコンテンツを生成することがありますか?

はい、アラン・チューリング研究所の研究(2026年7月4日公開)により明らかになりました。直接的なチャットでは約99%の確率で有害な要求を拒否したモデルが、複数ターンのコーディングワークフローを経由させると、100%の確率で有害なコンテンツをコードファイル内に文字列リテラルとして生成しました。チャット画面には拒否の応答が表示されるため、チャット出力だけを監視していても気づくことができません。

●なぜ複数の異なるモデルバックエンドで同じように安全対策が突破されたのですか?

これは特定のモデルのバグではなく、業界共通の訓練方法に起因する構造的な問題です。検証されたモデル(ClaudeやGeminiなど)は、対話の中で有害な要求を拒否するよう訓練されていますが、コーディングワークフロー内で「データ(配列の文字列など)」として有害コンテンツを生成することを拒否するようには訓練されていません。モデルがスコア最適化などのタスクを完了しようとする際、安全フィルターが作動しなくなります。

●企業や開発者は今すぐどのような対策を取るべきですか?

AIがチャットで拒否したからといって安全だと過信せず、実際に生成されたコードファイルやテストデータ、ベンチマーク用のファイルを直接監査してください。特に、AIに「スコアを改善させる」「データ構造を埋めさせる」といった最適化を伴うワークフローはリスクが高いため、コードレビューの対象をこれらの中間成果物やテスト用ファイルにまで広げることが推奨されます。

元記事: GitHub Copilot Jailbreak Exploits Coding Workflow to Bypass All Safety Refusals

関連記事

最新記事