はじめに——守るべきは「注入された指示」ではなく「モデル自身の安全判断」
これまでのAIセキュリティ記事では、プロンプトインジェクション、プロンプトリーク、Confused Deputy(混乱した代理人)といった、外部から注入された指示でエージェントを乗っ取る系の攻撃を中心に扱ってきました。これらは「信頼できない入力が、特権を持ったエージェントの実行経路に紛れ込む」という構図が共通しています。
一方、本記事で扱うジェイルブレイク(脱獄)は、まったく別のカテゴリです。攻撃者は外部システムや特権を悪用しません。巧妙な対話そのものだけで、モデルに組み込まれた安全ポリシーを自ら破らせるのがジェイルブレイクです。注入された「他者の指示」ではなく、ユーザーが正面から投げかける「会話の運び方」によって、モデルの安全機構を無力化します。
この違いは、自社が公開するチャットボットやAIエージェントの運用に直結します。悪意あるユーザーが有害な出力(違法行為の手順、差別的コンテンツ、機密の暴露など)を引き出せば、ブランド毀損・コンプライアンス違反・法的責任に一直線です。しかも「対策済みのはず」が通用しません。2026年にNature Communicationsに掲載されたHagendorffらの研究では、推論モデルが他のAIモデルを自律的にジェイルブレイクする成功率が約97%に達したと報告されています。2025年に登場した自動ファジング手法JBFuzzは、主要モデル全体で平均約99%の成功率を示しました。人手によるプロンプト職人芸ではなく、AIがAIを自動で破る時代に入っています。
筆者はネットワークのNOC/TAC(運用センター/テクニカルアシスタンスセンター)で長年、トラフィック異常の検知に携わってきました。本記事の核心は、そのステートフルな振る舞い検知の発想が、ジェイルブレイク防御にそのまま転用できるという点にあります。無害な雑談から徐々に禁止トピックへ誘導するCrescendoのような多ターン攻撃は、単一リクエストの署名(シグネチャ)では捉えられません。IDS/IPSがパケット単位ではなくフロー全体を見て侵入を検知するのと同じく、「会話全体の振る舞い」で捉える必要があります。
想定読者は、自社AIチャットボット/エージェントを外部公開しているSaaS事業者、カスタマーサポート自動化を進める企業、そして公開AIのリスクを評価する情シス・CISOの方々です。
ジェイルブレイク vs プロンプトインジェクション——何が違うのか
最初に、本サイトの既存セキュリティ記事群との住み分けを明確にします。両者はしばしば混同されますが、攻撃の構造がまったく異なります。
プロンプトインジェクションは「注入」、ジェイルブレイクは「説得」
プロンプトインジェクションは、信頼できないデータ(Webページ、メール、ファイルなど)に仕込まれた指示が、エージェントの命令系統に紛れ込んで実行される攻撃です。攻撃者はモデルを「だます」のではなく、モデルの入力経路に他者の指示を混入させます。被害の本質は「権限の混同」であり、Confused Deputy問題と地続きです。
一方ジェイルブレイクは、ユーザー自身が正規の対話窓口から、モデルの安全ポリシーを破るよう仕向ける攻撃です。注入も特権昇格もありません。「ロールプレイを装う」「大量の悪性事例を見せて文脈を汚染する」「徐々に話題をずらす」といった説得・誘導のテクニックで、モデルが本来拒否すべき出力をさせます。
| 観点 | プロンプトインジェクション | ジェイルブレイク |
|---|---|---|
| 攻撃の本質 | 信頼できない指示の注入 | モデルへの説得・誘導 |
| 悪用される入力 | 外部データ(Web・メール・ファイル) | ユーザー自身の対話 |
| 破られるもの | 命令系統の信頼境界 | モデルの安全ポリシー |
| OWASP対応 | LLM01(Prompt Injection)の「注入」面 | LLM01の「安全機構の回避」面 |
| 典型的な被害 | データ漏洩・意図しない操作 | 有害出力・コンプラ違反 |
| 主な防御の軸 | 入力分離・最小権限・出力検証 | 入出力分類器・会話監視・整合性訓練 |
注意すべきは、OWASP LLM Top 10ではどちらもLLM01:2025 Prompt Injectionの傘下に整理されている点です。OWASPはジェイルブレイクを「モデルの安全プロトコルを無視させることで、安全機構を回避させるプロンプトインジェクションの一種」と位置づけています。ただし防御の設計はまったく異なるため、本記事ではジェイルブレイク特化の攻撃分類と防御設計に絞って解説します。「注入をどう防ぐか」は既存記事群(?p=752・?p=662・?p=718)を参照してください。
主要なジェイルブレイク手口の分類
ジェイルブレイクの手口は年々高度化していますが、防御設計のためには「どの弱点を突くか」で分類するのが有効です。代表的な5系統を整理します。
1. Many-shot Jailbreaking(多数事例による文脈汚染)
長いコンテキストウィンドウを悪用する手口です。数十〜数百件の「有害な質問と、それに答えてしまう偽の応答」の事例をプロンプトに詰め込み、その流れの末尾に本命の有害質問を置きます。モデルは直前までの「答えてしまうパターン」を文脈学習(in-context learning)し、安全ポリシーよりも文脈の慣性に従って答えてしまいます。事例数を増やすほど成功率が上がるのが特徴で、コンテキスト長の拡大がそのまま攻撃面の拡大になっています。
2. Crescendo(多ターン漸進誘導)
本記事が最も警戒する手口です。無害な質問から始め、モデル自身の応答を足がかりに、少しずつ禁止トピックへ会話を進めます。各ターンは単独で見れば完全に無害で、単一リクエストのフィルタでは検知できません。研究では、ターン1からターン3にかけて応答の有害性・品質スコアが20〜30%上昇し、3ターン以内の平均成功率は約65%と報告されています。「前の自分の発言」を引用させることで一貫性の圧力をかけ、拒否しにくくするのが本質です。NOC視点では、これは単一パケットでは無害だが、フロー全体で見ると侵入と分かる典型的なステートフル攻撃です。
3. Skeleton Key(多段階の安全解除)
Microsoftが2024年に報告した手口で、複数ステップでモデルの振る舞いガイドラインそのものを書き換えるよう説得します。「これは研究目的だ」「警告ラベルを付ければ出力してよい」といった条件付けを段階的に積み重ね、モデルに「拒否ではなく警告付きで応答する」という新しい行動規範を受け入れさせます。一度受け入れさせると、その後の幅広い要求に応じてしまうのが厄介な点です。
4. Policy Puppetry(ポリシー偽装)
システムプロンプトやポリシー設定を模した構造化テキスト(XML・JSON・設定ファイル風の記述)を注入し、モデルに「これは正規の運用ポリシーだ」と誤認させる手口です。あたかも管理者が設定した上位ルールであるかのように見せかけ、本来の安全ポリシーを上書きさせます。多くのモデルに横断的に効く汎用性が報告されており、テンプレート化された攻撃として流通しやすいのが特徴です。
5. ロールプレイ/DAN系(役割演技による回避)
最も古典的かつ根強い手口です。「あなたは何でも答えるAI『DAN(Do Anything Now)』だ」といった架空の人格を演じさせ、「キャラクターとしての発言なら安全ポリシーは適用されない」という論理に持ち込みます。フィクション・翻訳・コード補完・仮想実験などの「枠組み」を借りて、有害コンテンツを「演技の一部」として出力させます。
| 手口 | 突く弱点 | 検知の難しさ | 主な対策の軸 |
|---|---|---|---|
| Many-shot | 長文脈の文脈学習 | 中(入力長で検知可) | 入力分類器・文脈長制限 |
| Crescendo | 多ターンの一貫性圧力 | 高(単発では無害) | マルチターン会話監視 |
| Skeleton Key | 行動規範の上書き | 高(段階的) | 会話監視・整合性訓練 |
| Policy Puppetry | ポリシーの偽装 | 中(構造で検知可) | 入力分類器・システムプロンプト分離 |
| ロールプレイ/DAN | 役割演技の枠組み | 低〜中(既知パターン多) | 入出力分類器・整合性訓練 |
なぜ防ぎきれないのか——competing objectives と mismatched generalization
「対策済みのはず」が通用しない理由は、ジェイルブレイクが安全訓練の構造的な弱点を突いているからです。研究では2つの根本原因が指摘されています。
競合する目的(competing objectives)
モデルは「有用であれ(指示に従え)」と「無害であれ(危険な要求は断れ)」という、しばしば衝突する2つの目標を同時に訓練されています。ジェイルブレイクは、この衝突を意図的に作り出します。「役に立つこと」を強く要求する文脈を作れば、モデルは「断る」よりも「応じる」方向に傾きます。Crescendoが「前の自分の発言との一貫性」を圧力として使うのも、まさにこの競合を悪用する手口です。
整合しない汎化(mismatched generalization)
安全訓練が及んでいる入力分布と、モデルの本来の能力が及ぶ入力分布がズレているために生じる弱点です。たとえば「英語の有害質問は断るが、まれな言語・暗号・難読化された入力では同じ判断ができない」「コードや詩の形式では安全判断が緩む」といった現象です。安全訓練は無限のバリエーションをカバーできないため、訓練の隙間を突かれます。
この2つの原因から導かれる重要な結論は、「モデル単体の安全訓練だけでは原理的に防ぎきれない」ということです。だからこそ、モデルの外側に検知・防御層を重ねる多層防御が不可欠になります。NOCの発想で言えば、エンドポイントのパッチ(モデルの安全訓練)だけに頼らず、ネットワーク層の監視・遮断(入出力分類器・会話監視)を併用するのと同じ構図です。
多層防御の設計——4つの防御層
ジェイルブレイク防御は、ガードレールの一般論より一段踏み込み、「ポリシー破りに特化した検知」を組み合わせます。
第1層:入力分類器(プロンプトを通す前に判定)
ユーザー入力をモデルに渡す前に、専用の分類器でジェイルブレイクの兆候をスキャンします。既知のDAN系テンプレート、Policy Puppetry風の構造化テキスト、Many-shotの異常な事例羅列などをパターン・埋め込み類似度で検知します。ただし、新規・難読化された攻撃には弱いため、単独では不十分です。
第2層:出力分類器(応答を返す前に判定)
モデルの出力を、ユーザーに返す前に有害性でスキャンします。入力で見逃しても、出力で止めるという二重化が要点です。入力がどれだけ巧妙でも、最終的に有害コンテンツが生成されればそれを検知できる可能性が高く、未知の攻撃手口に対する汎化性能が入力分類器より優れる傾向があります。
第3層:Constitutional Classifier型アプローチ(憲法ベースの分類)
Anthropicが2025年に公表した手法で、「何が許可され、何が禁止か」を自然言語のルール(憲法)で定義し、その憲法に基づく合成データで入出力分類器を訓練します。固定パターンではなく「ルールの意図」で判定するため、言い換えや難読化に強く、新しい禁止カテゴリの追加も憲法を書き換えるだけで対応できます。広範なレッドチーミングでも突破が著しく困難だったと報告されており、本番運用の現実的な選択肢として注目されています。誤検知(正規ユーザーの拒否)を抑える調整が運用上の鍵です。
第4層:マルチターン会話監視(Crescendo対策の本命)
Crescendoのような漸進的攻撃は、単発リクエストの分類では捉えられません。会話全体の軌跡(トラジェクトリ)を主体(セッション/アカウント)ごとに継続評価する必要があります。これがNOC/TACのステートフル検査の発想です。
- 話題ドリフトの追跡:会話開始時のトピックから、禁止カテゴリ方向へ単調に近づいていないか(埋め込み空間での軌跡)。
- 有害性スコアの累積トレンド:各ターンの応答有害性が、ターンを追うごとに上昇していないか。
- 拒否回避の再試行:一度拒否された話題を、言い換えて再挑戦するパターンの頻度。
- 役割固定の検知:会話冒頭で人格・枠組みを固定し、それを引用し続ける構造(DAN/ロールプレイの兆候)。
補助層:温度・デコード制御
外部公開面では、温度を極端に上げた決定論破りや、特殊なデコードパラメータの悪用を防ぐため、サンプリングパラメータに上限・下限の制約をかけます。攻撃者が出力の予測可能性を操作して安全機構をすり抜ける余地を狭めます(正規ユーザーの体験を損なわない範囲での調整が前提です)。
| 防御層 | 主に効く手口 | 強み | 弱み |
|---|---|---|---|
| 入力分類器 | DAN・Policy Puppetry・Many-shot | モデル実行前に遮断・低コスト | 新規・難読化に弱い |
| 出力分類器 | 全般(最終防衛線) | 未知の攻撃にも汎化 | 生成後判定・レイテンシ増 |
| Constitutional Classifier型 | 言い換え・難読化全般 | ルール意図で判定・更新容易 | 誤検知調整が必要 |
| マルチターン会話監視 | Crescendo・Skeleton Key | 漸進攻撃を軌跡で捕捉 | 状態管理コスト |
| 温度・デコード制御 | パラメータ悪用 | 低コスト・補助的 | 単独効果は限定的 |
自社公開チャットボットでの実装チェックリスト
自社AIを外部公開している事業者が、最低限おさえるべき項目を整理します。
- 入力・出力の両方に分類器を置く:入力フィルタだけで満足しない。出力分類器が最終防衛線。
- セッション単位で会話状態を保持する:多ターン攻撃を捉えるため、主体ごとに話題ドリフト・有害性トレンドを集計。
- システムプロンプトを「漏れても無害」に設計する:機密や上位ルールをプロンプトに書かない。Policy Puppetryで偽装上書きされても被害が出ない構成にする(プロンプトリーク対策と共通)。
- 禁止カテゴリを自然言語ルールで明文化する:Constitutional Classifier型を採るなら、許可/禁止の「憲法」を文書化し、合成データ訓練の基盤にする。
- 段階的レスポンスを設計する:いきなり遮断せず「観測→警告→緩和→遮断」の階段(後述)。
- リリース前にジェイルブレイク特化のレッドチーミングを実施する:注入系とは別カテゴリとして、レッドチーミングの検査項目にCrescendo・Many-shot・Policy Puppetry・DAN系を必ず含める。
- 会話ログを改ざん不能に保全する:インシデント時の立証・再発防止のため、どのセッションがどの軌跡をたどったか再現できる粒度で記録。
- 誤検知率を継続監視する:過検知で正規ユーザーを止めると事業が痛む。平常ベースラインを学習し、逸脱を見る。
インシデント時の遮断・記録——段階的レスポンス
検知ロジックは、それ単体ではなく既存のセキュリティ運用(SOC/インシデント対応)に接続して初めて機能します。NOCのインシデント対応と同じく、「観測→警告→緩和→遮断」の階段を設計します。いきなり遮断すると正規ユーザーを巻き込むため、緩和から段階的に強めるのが鉄則です。
| 段階 | 条件の例 | レスポンス |
|---|---|---|
| 観測 | 有害性スコア・話題ドリフトが平常域 | 記録のみ |
| 警告 | 多ターンで有害性トレンドが上昇 | 監査ログにフラグ・内部アラート |
| 緩和 | 拒否回避の再試行が継続 | 応答の慎重化・追加の安全プロンプト挿入・レート厳格化 |
| 遮断 | 明確なジェイルブレイク成立・有害出力 | セッション一時停止・CISOへエスカレーション |
監査ログは、攻撃の全容(会話の軌跡・有害性の推移・使われた手口)を後から再現できる粒度で残すことが重要です。これは事後のコンプライアンス対応・再発防止・モデル改善のフィードバックすべての根拠になります。
よくある質問(Q&A)
Q1. ジェイルブレイクとプロンプトインジェクションは同じものですか?
関連しますが別物です。プロンプトインジェクションは「信頼できない外部データに仕込まれた指示が命令系統に紛れ込む(注入)」攻撃で、ジェイルブレイクは「ユーザーの対話そのものでモデルの安全ポリシーを破らせる(説得)」攻撃です。OWASPではどちらもLLM01の傘下ですが、防御設計は異なります。注入対策は入力分離・最小権限が軸、ジェイルブレイク対策は入出力分類器・会話監視が軸になります。
Q2. 最新モデルを使えばジェイルブレイクは防げますか?
防ぎきれません。2026年のNature Communications掲載研究では推論モデルによる自律ジェイルブレイクの成功率が約97%、自動ファジングのJBFuzzは平均約99%に達しています。これは安全訓練の構造的弱点(competing objectives/mismatched generalization)に起因するため、モデル単体の更新では解消しません。モデルの外側に検知・防御層を重ねる多層防御が前提です。
Q3. 入力フィルタだけでは不十分ですか?
不十分です。入力分類器は既知パターンには有効ですが、新規・難読化された攻撃や、単発では無害なCrescendoには弱いです。出力分類器(最終防衛線)とマルチターン会話監視を必ず併用してください。入力で見逃しても出力で止める二重化が要点です。
Q4. Crescendoのような多ターン攻撃はどう止めればよいですか?
単発リクエストのフィルタでは止まりません。セッション単位で会話の軌跡を保持し、話題が禁止カテゴリ方向へ単調にドリフトしていないか、応答の有害性がターンごとに上昇していないかを継続評価します。これはNOC/TACのステートフル検査(フロー全体で侵入を判定する発想)そのものです。
Q5. Constitutional Classifierとは何ですか?社内でも使えますか?
許可/禁止を自然言語のルール(憲法)で定義し、その憲法に基づく合成データで入出力分類器を訓練する手法です。固定パターンではなくルールの意図で判定するため、言い換えや難読化に強く、禁止カテゴリの追加も憲法の書き換えで対応できます。考え方は社内のチャットボットにも応用可能で、自社の禁止カテゴリを明文化し、それを判定基準にする設計が出発点になります。誤検知の調整が運用上の鍵です。
Q6. 正規ユーザーを誤って止めてしまうのが心配です。
だからこそ「観測→警告→緩和→遮断」の段階的レスポンスが重要です。いきなり遮断せず、まず応答の慎重化や追加の安全プロンプト挿入といった、正規ユーザーの体験をほとんど損なわない緩和から適用します。主体ごとの平常ベースラインを学習し、その逸脱を見るのが過検知を避けるコツです。
まとめ——「説得で破られる」を前提に多層で守る
ジェイルブレイクは、注入系の攻撃とは攻撃カテゴリそのものが異なります。要点は3つです。
1. 注入ではなく説得である。 外部データの混入ではなく、ユーザーの対話そのものでモデルの安全ポリシーを破らせます。プロンプトインジェクション対策とは別の防御設計が必要です。
2. モデル単体では原理的に防ぎきれない。 competing objectives と mismatched generalization という安全訓練の構造的弱点を突くため、入力分類器・出力分類器・Constitutional Classifier型・マルチターン会話監視を重ねる多層防御が前提になります。
3. 多ターン攻撃は「会話全体の振る舞い」で捉える。 Crescendoのような漸進誘導は単発フィルタでは止まりません。セッション単位で軌跡を見るNOC/TACのステートフル検査の発想が、そのまま武器になります。
「公開しない」という選択肢が現実的でない以上、「巧妙な対話だけで破られ得る」を前提に、入力・出力・会話状態・運用の各層で守る——これが、公開チャットボット/エージェントをジェイルブレイクから守るための基本姿勢です。本記事はセキュリティ柱の「最後のピース」(注入は網羅済み、ポリシー破りが空白)を埋めるものとして位置づけています。
参考リンク
- OWASP「LLM01:2025 Prompt Injection」
- OWASP Top 10 for LLM Applications(2025年版)
- Anthropic「Constitutional Classifiers」研究
- MITRE ATLAS(AIシステム向け敵対的脅威ランドスケープ)
免責事項: 本記事は2026年6月時点の公開情報および標準フレームワークに基づく一般的な情報提供であり、特定の製品・構成における安全性を保証するものではありません。また、法的助言ではありません。実際の防御実装は自社環境・脅威モデル・関連法令に照らして検討し、必要に応じてセキュリティ専門家や弁護士にご相談ください。本記事は攻撃を助長する目的ではなく、防御者が脅威を理解し対策を講じるための解説です。フレームワークやガイドラインは更新されるため、最新情報は各公式ソースでご確認ください。

コメント