KEEL

セキュリティ

第06章 セキュリティ担当

DLP・ガードレール・5 層プロキシ・fail-closed・インシデントチェックリストをセキュリティ担当向けに整理する。

主な読者: セキュリティインフラ

セキュリティを「検知」だけに頼らない

図: fail-closed 監査(EU AI Act 向けの考え方)
リクエスト ポリシー判定+ 監査書込 同期コミット失敗→拒否 LLM 呼出 応答 + SIEM ログが書けないなら推論もさせない(fail-closed)

図: fail-closed 監査(EU AI Act 向けの考え方)

攻撃が検知をすり抜けても、権限を小さくしておけば被害は限定されます(特権分離)。


セキュリティ担当者の役割

セキュリティ部門は LLM ゲートウェイ導入の Risk Owner として、脅威モデル・DLP・インシデント対応を定義する。KEEL では社内データと顧客データが混在しうるため、fail-closed(疑わしきはブロック) を既定とする。

脅威モデル(STRIDE 要約)

脅威LLM 文脈の例主な対策
Spoofing盗まれた仮想キーでの不正利用キー短 TTL、IdP 連携、mTLS(Phase 2)
Tamperingプロンプトインジェクションでツール操作出力ガードレール、MCP スコープ制限
Repudiation誰が機密を送信したか不明監査ログ、仮想キーと個人の紐づけ
Information Disclosure学習データへの混入、ログ漏洩DLP、プロンプト非保存、契約上のオプトアウト
Denial of Service大量リクエストでコスト爆発RPM/TPM、予算キャップ、自動キー停止
Elevation of Privilegeエージェントが本来の権限外 API を呼ぶツール許可リスト、ネットワーク segmentation

DLP(Data Loss Prevention)設計

レイヤー構成

レイヤー検査タイミング手法
L1 クライアント教育送信前ポリシー、IDE 注意表示
L2 ゲートウェイ入力リクエスト受信時正規表現、辞書、エントロピー
L3 ゲートウェイ出力レスポンス返却前PII マスキング、機密パターン
L4 ネットワークegress許可 FQDN のみ
L5 事後分析バッチログ異常検知、サンプリングレビュー

検知パターン(最低限)

カテゴリアクション
認証情報API キー、パスワード、接続文字列ブロック + アラート
個人情報マイナンバー、クレジットカードブロックまたはマスク
顧客識別子契約で禁止された顧客名・案件コードブロック
ソースコード顧客リポジトリのフルファイル(閾値超)警告 → Phase 2 でブロック検討

正規表現のみの DLP は誤検知・見逃しがある。Phase 2 で ML ベース分類器(Azure AI Content Safety 等)の追加を計画する。

ガードレール

種別目的実装例
入力ガードジェイルブレイク、指示上書き既知攻撃パターン、システムプロンプト保護
出力ガード有害コンテンツ、機密の再出力コンテンツフィルタ、長さ制限
ツールガード危険な MCP ツール呼び出し許可ツールリスト、人間承認(HITL)
予算ガードコスト暴走キー単位の日次/月次上限

5 層プロキシ防御モデル

KEEL 推奨の論理防御層(物理は統合可):

  1. WAF / CDN — DDoS、基本ボット対策
  2. API ゲートウェイ(LiteLLM / APIM) — 認証、レート制限、ルーティング
  3. DLP / コンテンツ検査 — 入力出力スキャン
  4. プロバイダ契約層 — エンタープライズ契約、学習オプトアウト、地域制限
  5. 監視・応答 — SIEM、SOAR、キー失効
Internet/社内LAN → [1.WAF] → [2.Gateway] → [3.DLP] → [4.Provider API]
                                    ↓
                              [5.SIEM/Alert]

Fail-Closed 原則

状況動作
DLP エンジン障害全リクエスト拒否(503 + 内部アラート)
プロバイダキー取得失敗拒否(フォールバック別プロバイダは事前定義時のみ)
ログ基盤ダウンリクエストは許可しつつ 別途アラート(Phase 1 妥協点)→ Phase 2 で拒否検討
認証不明拒否

「使えなくなるより漏れる方がまし」は LLM 文脈では成立しない。セキュリティ担当は 停止を既定 で経営と合意する。

インシデント対応チェックリスト

検知〜封じ込め(0〜2 時間)

調査(2〜24 時間)

復旧・再発防止(1〜2 週間)

セキュリティレビューゲート

ゲートタイミング承認者
SR-1Phase 1 設計完了セキュリティ部長
SR-2新モデル追加セキュリティ + 法務
SR-3RAG/MCP 本番許可セキュリティ + データオーナー
SR-4四半期見直しセキュリティ + 経営

顧客案件向けセキュリティパッケージ

KEEL が顧客に提示できる統制の「売り物」:

詳細テンプレ → 第 15 章。コンプライアンス対応 → 第 14 章。


プロンプトインジェクション防御(2026 更新)

2026 年の最大 AI セキュリティリスクは プロンプトインジェクション(意味論層への攻撃)。従来 DLP・ファイアウォールは構文パターン中心のため、ゲートウェイでのセマンティック検査 + 権限分離 が必須。

攻撃分類とゲートウェイ対応

種別説明主な防御フック
直接インジェクションユーザー入力に指示を埋め込むllm_input
間接インジェクションメール・Web・RAG 文書経由mcp_post_tool / llm_output
ツール悪用許可過多ツールでのデータ流出mcp_pre_tool + Runtime AuthZ

特権分離(検知に依存しない層)

「致死的三要素」を同時に満たすエージェントを作らない。

  1. 機密データへの読み取りアクセス
  2. 信頼できない外部コンテンツの取り込み
  3. 無制限の外部送信または副作用のあるツール

高リスク操作(クレジット付与、一括削除、外部メール送信)は 人間承認(HITL) をゲートウェイまたはワークフローで強制する。

Content GW ↔ Runtime AuthZ の連携

異常プロンプトパターンを検知した場合、Runtime Authorization 側のリスクスコアを上げ、通常自動承認される操作を HITL にエスカレーションする 双方向シグナル を Phase 2 で設計する。

規制産業・金融系顧客案件では fail-closed(ガードレール失敗時はブロック)をデフォルトとする。fail-open は PoC のみ。


第 7 章へ — 本番品質の深掘り

本章はゲートウェイ上の DLP・ガードレールの骨格です。社内 RAG の本番投入や監査対応では、第 7 章の PII ハイブリッド・監査 5 要素・出力検証 をあわせて設計してください。

v1.7 補強 — 研究知見から見た防御優先順位

OWASP LLM Top 10、NIST AI 100-2、MCP tool poisoning 研究、EchoLeak 型の事例を横断すると、防御の優先順位は「検知精度の高さ」よりも 権限境界・出力経路・証跡相関に置くべきである。

優先防御理由KEEL 実装
1最小権限検知はすり抜ける前提。権限が小さければ被害が限定される仮想キー scope、モデル許可、MCP tool ACL
2出力・外部送信の検査間接インジェクションは回答内リンクや外部 fetch で漏洩しやすいURL/HTML/Markdown/コード片の llm_output 検査
3RAG 検索前 ACLLLM へ渡った後では秘密情報を完全に回収できないchunk ACL、検索クエリログ、文書分類
4ツール定義の審査MCP は tool metadata 自体が攻撃面になるtool schema 差分レビュー、署名、承認フロー
5統一 trace_id事故時にプロンプト・検索・ツール・認可をつなげる必要があるGateway、RAG、MCP、SIEM の共通 ID

プロンプトインジェクション検知器は有効だが、単独の合否判定にしない。検知、最小権限、出力サンドボックス、実行時認可を重ねる。

セキュリティレビューで追加する質問

質問合格ライン
RAG 文書は、検索前に利用者権限で絞られているかLLM 投入前に ACL 適用済み
外部 URL・画像・Markdown リンクを出力する用途か用途別に allowlist / blocklist を定義
MCP tool の説明文・schema は誰が承認するか所有者・承認者・差分履歴がある
Agent が write/delete/export を実行できるか人間承認または Runtime AuthZ が必須
事故時に同一 trace_id で追えるかプロンプト、検索、ツール、認可、応答が相関可能

統制責任の境界表 — 何をどこでやるか

ゲートウェイ万能論を避けるため、実装場所を分けて理解する。

統制ゲートウェイ(社内 GW / CF AIG 等)IdP / SaaS 管理画面アプリ実装
認証・RBAC仮想キー・テナント分離Entra ID · ChatGPT Enterprise ロールアプリ側ロールチェック
DLP(秘密・PII)入力/出力スキャン・ブロックSaaS 保持期間・学習オプトアウト送信前マスキング
Guardrails(有害コンテンツ)CF Guardrails 等で flag/blockプロバイダ Content Safety出力の再検証
プロンプトインジェクション部分検知 + 権限分離RAG 取込制御・ツール ACL
レート / コスト上限GW で集中SaaS シート管理リトライ制御
監査ログリクエストメタ・DLP 判定SaaS 利用ログ(契約範囲)業務アプリ監査
MCP / Agent ツールMCP GW・ツール台帳コネクタ権限最小権限・HITL
Action control(外部送信)ポリシーで禁止ツールChatGPT アプリ権限人間承認フロー

Cloudflare Guardrails は有害コンテンツ評価に強いが、プロンプトインジェクション専用防御ではないCloudflare Guardrails 公式)。インジェクションは権限分離 + 間接入力の再検査(第 7 章)で補う。

OpenAI Enterprise 側にも保持期間・RBAC・アプリ権限がある(Business data privacy)。「GW だけ見ればよい」は誤り。

研修 — セキュリティコース D(確認 5 問)

#問題正解
1DLP が検知をすり抜けた場合の最後の砦は?権限分離(特権最小化)
2間接プロンプトインジェクションの主な経路は?RAG / メール / Web 文書
3Guardrails だけで Agent の DB 削除を防げる?いいえ — ツール ACL + HITL
4監査ログが書けないときの金融系方針は?fail-closed(推論も止める)
5シャドー MCP の対策は?ツール台帳 + ネットワーク遮断

演習 — DLP アラート初動(15 分)

状況: 深夜、SIEM に「顧客名パターン検知・ブロック」が 50 件/10 分。

ステップあなたの対応
1. 15 分以内該当仮想キー特定・一時停止要否判断
2. 1 時間以内PM・データオーナーへ連絡
3. 24 時間以内インシデントチケット起票(第 15 章)

模範: キー停止 → ログ保全 → 横展開検索 → 第 13 章 Runbook 参照。


v1.10 — 4 カテゴリ・2026 チェックリスト

現場の AI セキュリティ論点は、次の 4 カテゴリに整理できます(Zenn 記事 より KEEL 向けに適用)。

開発現場のAIセキュリティ4カテゴリマップ
開発現場のAIセキュリティ4カテゴリマップ

*出典: 開発現場のAIセキュリティを見直す(nenene01 / Zenn)*

カテゴリ代表対策本パック
ガバナンス・契約学習オプトアウト、Shadow AI 禁止、保持期間第 3 章
データ保護マスキング、本番データ持ち込み禁止、DB 権限第 7 章
アクセス統制専用ロール、短命認証、監査可能な接続経路第 8 章
外部汚染への防御Lethal Trifecta 回避、MCP 審査、パッケージ確認第 6・9・13 章

露出 vs 悪用可能 — インフラメタデータの捉え方

情報露出してよいか悪用に必要なもの
ARN・アカウント ID・リソース名リコン材料にはなるが、単体ではアクセス不可有効な認証情報
シークレットのキー名(Key Vault / Secrets Manager 参照)チーム内「目次」相当。値は別GetSecretValue 権限
個人情報・接続文字列の不可

構成情報の露出はゼロが理想だが、エージェントに describe 系を任せるとコンテキストに載る。短命 SSO + 読み取り専用ロールで「知っていても鍵はかかっている」状態に留める(第 8 章付録)。

研修 — 確認テスト追補(コース D)

#問題正解
6学習不使用プランなら個人情報をプロンプトに入れてよい?いいえ — 保持期間の問題が残る
7SELECT * で本番 DB を調査させたとき最大のリスクは?ツール出力が事業者へ再送信される

v1.11 — 破壊的コマンドとリスト防御(iwaken71 教訓)

Zenn: Dドライブ消失事例 では「ブランチ整理」が git clean -fdx 等に化けうる。DLP やモデル allowlist では止まらない

防御層具体策限界
deny 加速弾git clean, git reset --hard, rm -rf, Remove-Item -Recurseパス・cwd 次第で爆心地が変わる
allowlist日常は git status, npm test 等のみ無承認best-effort(Cursor 公式
サンドボックスシェルをワークスペース内に閉じる.cursorignore は端末に効かない
セマンティック hookdestructive_command_guard導入・更新の運用コスト
スコープリポジトリ単位で開く(ドライブ直下禁止)組織文化

研修 — セキュリティコース D 追補(リスト)

#問題正解
6git clean を deny リストに入れれば D ドライブ事故は防げる?いいえ — cwd・.git 位置・allowlist/サンドボックス併用が必要
7allowlist はセキュリティ境界かいいえ — 便利な加速。承認・hook と併用
8リストの正本は GW だけかいいえ — 端末・Registry・IdP も正本。台帳で RACI

インシデント時に見るリスト

  1. 直前に変更された KEEL-LST-xxx(第 15 章)
  2. 仮想キー / チームの MCP 権限(LiteLLM Admin)
  3. 端末 permissions.json / Run Mode 設定
  4. 監査ログ(GW + SIEM — チャット履歴に依存しない)
KEEL