第12章:セキュリティとプライバシー
この章で分かること
- ログがPIIの新しい通り道になる理由
- 守る対象(PII・秘密・権限)の整理
- プロンプトインジェクション(直接/間接)の実務対応
- MCP Tool Poisoning(ツールメタデータ経由の毒化)
- MCP/ツールの最小権限と読取/実行分離
- 保存・マスク・保持・監査の決め方
たとえ話
以前は「金庫(DB)の鍵を持つ人だけ」が中を見られました。
AIとMCPをつなぐと、「受付ロボット経由でメモのコピーが外に出る」通路が増えます [S02]。
通路を増やすなら、金属探知(マスキング)と通行許可(権限)がセットです。
PII対策は「マナー」ではなく信頼境界の再設計です。
AIを入れるほど、ログの取り扱いが本番DB並みの厳密さに近づきます。
AIを入れるほど、ログの取り扱いが本番DB並みの厳密さに近づきます。
1. 守るべきもの(3カテゴリ)
| 分類 | 例 | 原則 | 違反時の典型事故 |
|---|---|---|---|
| PII | メール、電話、氏名、住所 | 平文でモデルに渡さない [S02][S07] | ログ経由の個人情報到達 |
| 秘密 | APIキー、パスワード、トークン | ログにも出さない | 鍵漏洩→不正利用 |
| 権限 | 本番更新、FW変更 | 読取と実行を分ける [S15][S16] | 誤操作・間接誘導 |
2. 多層で守る(推奨レイヤ)
書き込み → 保存 → 検索 → AI出力
アプリ書込: マスク/ハッシュしてから出す 保存先: 列レベル権限・保持期間 検索: IDで受け、平文をモデルに渡さない AI出力: 再マスク、禁止語、監査ログ 操作: allow list + 承認 + タイムアウト
- 書き込み時点で平文PIIを残さない(可能な範囲)
- どうしても残すなら、権限の強い領域に閉じる
- 検索入力で生PIIをモデルに渡さない設計にする [S02]
- AI応答にも再表出しないか検査する
- ツール実行は読取/書込を分離する [S16]
3. プロンプトインジェクション
AIへの「頼み文句」と「データの中身」が同じ自然言語なので、データ側に書いた命令をAIが従ってしまう攻撃です。
OWASP LLM Top 10 では LLM01:2025 Prompt Injection として最上位リスクに位置づけられています [S08][S20][S21]。
直接: ユーザーが「指示を無視して…」と書く。
間接: ログ・チケット・Web・メール・コードコメント・ツール説明文などに命令を埋め込み、後からAIが読む。
直接: ユーザーが「指示を無視して…」と書く。
間接: ログ・チケット・Web・メール・コードコメント・ツール説明文などに命令を埋め込み、後からAIが読む。
| リスク | 監視AIでありがちな経路 | 対策 |
|---|---|---|
| データ漏洩 | ログ要約に秘密が混ざる | マスク、出力フィルタ |
| 不正操作 | ログ内「今すぐ再起動せよ」 | ログを命令として実行しない/L0-L1に限定 |
| 権限昇格 | 過剰なMCPツール | 最小権限、読取のみ |
監視ログ・チケット・観測メモをAIに読ませる設計では、文面を指示として実行しないことが必須です。
3b. MCP Tool Poisoning(ツールメタデータの毒化)
間接注入は「ログの中身」だけではありません。
MCPではツールの説明文・引数説明・サーバ応答メタデータもLLMのコンテキストに入ります。ここに隠した命令が、利用者の意図を上回る危険があります [S22][S23][S15]。
MCPではツールの説明文・引数説明・サーバ応答メタデータもLLMのコンテキストに入ります。ここに隠した命令が、利用者の意図を上回る危険があります [S22][S23][S15]。
| 攻撃のイメージ | 起きうること | 実務の守り |
|---|---|---|
| 無害そうな「ログ検索ツール」の説明に隠命令 | 秘密の読み出し・別ツールの悪用誘導 | ツール記述のレビュー/署名/変更検知 |
| 外部MCPサーバの応答をそのまま追加入力 | 次のプロンプトへの持ち越し注入 | 出力を無条件で次コンテキストに入れない |
| 特権ツールと一般ツールの同居 | 誘導による権限昇格 | 特権ツール分離・allow list・Human-in-the-loop [S16] |
- 接続するMCPサーバ/ツールをallow listで固定する(自由接続を許さない)
- ツール説明の変更を監査し、未知の説明は拒否または人間確認に回す
- 読取専用と実行系を別ホスト/別認証に分離する
- ツール実行結果を「次の指示」として自動採用しない
- 本番変更系はL4以上(明示承認)に固定する
4. 導入前チェック(セキュリティ)
| 項目 | 決めること | 未決のまま進む危険 |
|---|---|---|
| 保存可否 | プロンプト/応答を残すか | 気づかぬ長期保管 |
| マスキング | 何をどう隠すか | 属人ルール |
| 保持期間 | 日数と削除責任 | 監査不能な堆积 |
| 参照範囲 | AIが触れるデータ境界 | 全ログ常時送信 |
| AI停止時 | 手動ランブック | 監視も止まる錯覚 |
運用担当者AIツールの権限一覧を四半期で棚卸しする
PG秘密・PIIを出さないlint/レビュー観点を追加する
SEマスク方針・保持期間・AI参照範囲を設計書に落とす
PMセキュリティ未決のままPhase 3以降へ進まない
経営層利便性より信頼境界の文書化を先に要求する
5. 現場適用:接続前チェックリスト(Go/No-Go)
| 質問 | Noなら |
|---|---|
| 読取ツールと実行ツールが分かれているか | 接続しない |
| PIIのマスク方針が文書化されているか | Phase 3に進まない |
| ログ・ツール説明を命令として実行しない設計か | L0のみに制限 |
| MCPツールのallow listと説明変更の監査があるか | 未知ツールは接続しない |
| 保持期間と削除責任者は決まっているか | 保存オフで開始 |
| AI停止時の手動手順があるか | ランブック整備が先 |
ふりかえり
- 「ログを全部AIに読めばいい」を社内で否定できるか
- 読取専用ツールと実行ツールが分かれているか
- ツール説明の毒化(Tool Poisoning)をレビュー観点に入れたか
- PIIの保存可否・保持期間が文書にあるか