自衛のためのサイバー攻撃の仕組み講座(AI時代・エンジニア水準)
区分4 AIとエージェントを狙う攻撃★★★道具のない会話AIが騙されても、出てくるのは変な文章だけです。 道具を持ったAIが騙されると、あなたの権限で、実際に操作が起きます。
事務所のたとえで言えば、手紙を読むだけの受付係と、印鑑と通帳を預けた事務員の違いです。 同じ「だまされやすさ」でも、後者は被害が桁違いになります。
OWASP は、この点を2つの資料で整理しています。
名前を暗記する必要はありません。どちらも「AIに持たせすぎた権限」が問題の中心、と覚えれば十分です。
LLM06 の説明では、持たせすぎは次の3つに分けられます。
| 形 | 意味 | あなたの環境の例 |
|---|---|---|
| 機能が多すぎる | 使わない道具まで入れている | ファイルを読むだけの用なのに、削除や送信の道具も入っている |
| 権限が大きすぎる | 道具の裏の鍵が強すぎる | 読み取りで足りるのに、管理者の鍵を渡している |
| 自律が大きすぎる | 人の確認なしに重い操作をする | 送信や支払いが毎回自動で通る |
直し方も3つに対応します。道具を減らす・鍵を弱くする・重い操作で人を挟む、です。
○ 「プロンプトで『危ない操作はしない』と頼んであるから大丈夫」と書いてあったら×。頼みごとは文章であり、権限の代わりにはなりません(No.10の第1章)
○ 「許可の画面が出るから大丈夫」と書いてあったら△。毎回の確認が多いと、人は読まずに押すようになります(確認疲れ)。確認は数を絞って効かせます
MCP の公式仕様(最新版は2025-11-25)には、セキュリティのページがあります。 ここでは、あなたが使う側として知っておくべき型を3つに絞ります。
2つ目の「説明文が命令になる」は、ツールの説明が最初に承認された時と、後の更新で変わってしまうことがある、という点まで含めて「見張る」対象です。 作り方や具体的な文面はここでは扱いません。見抜く側の視点だけ持っていれば十分です。
MCP の公式仕様のセキュリティ節は、開発者向けに次のことを求めています(一部は「望ましい」という強さです)。 あなたが自分で MCP サーバーを作る場合や、他人の物を選ぶ時の判断材料になります。
「素通し」は、受付が預かった他人の合鍵を、確認せずにそのまま奥の部屋に渡す状態です。 後ろの部屋の持ち主から見ると、誰が何をしたかが分からなくなります。
Claude Code の許可は、settings.json(Claude Code の設定ファイル)の permissions に allow・ask・deny で書きます。
評価は拒否→確認→許可の順で、最初に当たった物が採用されます。
~/.claude/settings.json、プロジェクト共有の .claude/settings.json、自分専用の .claude/settings.local.jsonmcp__サーバー名__道具名 で書く。mcp__サーバー名 と書けばそのサーバーの全部Read(./.env) のような拒否で、ファイルの読み取りを止められるなお、Bash(...)(コマンドを実行する道具の許可や拒否を書く書き方。かっこの中に対象のコマンドを書く)の拒否は、書かれたコマンドの文字に当てはまる物を止める仕組みです。
同じ動きを別の書き方で出されると外れることがあるので、公式も「これは壁ではない」としています。
本気で止めたいなら、後で出る分離(OSの隔離=サンドボックス)と組み合わせます。
確認を全部に置くと、人は読まずに押します。 道具を3つの段に分けて、確認を置く場所を決めます。
| 段 | 例 | 初期設定のおすすめ |
|---|---|---|
| 読むだけ | 一覧を取る・検索する | 自動で許可してよい |
| 書く(元に戻せる) | メモを書く・下書きを作る | 自動か、まとめて確認 |
| 送る・消す・お金が動く | メッセージ送信・削除・請求・支払い | 毎回確認(ask)にする |
「まとめて確認」とは、1回ごとには聞かず、作業がひと区切りついた所で、変更の一覧を1度に見て承認することです。元に戻せるので、これで足ります。
この表は、ご自身の環境の道具(Addness・freee・UTAGE など)を、1つずつ当てはめる時の型です。 「取り消せない物」を毎回確認に置く、という一点だけは外さないでください。
知らない人のリポジトリを開くと、その中の .claude/settings.json や .mcp.json に、許可や MCP サーバーの設定が入っていることがあります。
Claude Code は、対話の画面では次の備えを持っています。
.mcp.json のサーバーは、使う前に承認を求められるただし、画面を出さずに動かす claude -p(指示を1回だけ実行して終わる、Claude Code の動かし方)では、これらの確認が出ません。
自動化で動かすフォルダは、中身をあなたが先に読んで確かめた物だけにします。
/sandbox がある読むだけの点検です。
claude mcp list で、入れている MCP サーバーを全部出す。それぞれ「誰が作った物か」「起動コマンドは何か」を1行ずつ書く~/.claude/settings.json と、よく使うプロジェクトの .claude/settings.json を開き、allow に入っている物を読む。送信・削除・支払いが自動で通る物が無いかを見る頼み方の例:「claude mcp list の結果と settings.json の permissions を読んで、送信・削除・支払いが確認なしで通る道具を表にして。設定は変えないで」
道具を持ったAIは、騙されると本当に操作が起きる。問題は機能・権限・自律の持たせすぎ。拒否→確認→許可の順で、送る・消す・お金は毎回確認。部品は出所と起動コマンドを読み、鍵は最小にして自動化ごとに分ける。
問1 「読み取りで足りる作業なのに、管理者の鍵を渡している」は、LLM06 の持たせすぎの3つのうちどれですか?
問2 `settings.json` で、ある道具を `allow` に、同じ道具を別の設定ファイルの `deny` に書きました。結果はどうなりますか?
問3 次の道具のうち、毎回の確認を置くべきなのはどれですか?
問4 画面を出さずに `claude -p` で自動化を動かす時の注意として、正しいのはどれですか?
出典(2026年10月時点で確認):MCP 公式仕様 2025-11-25 版「Security Best Practices」(https://modelcontextprotocol.io/specification/2025-11-25/basic/security_best_practices)/Anthropic「Claude Code Security」(https://code.claude.com/docs/en/security)/「Configure permissions」(https://code.claude.com/docs/en/permissions)/OWASP Top 10 for LLM Applications 2025「LLM06 Excessive Agency」(https://genai.owasp.org/llm-top-10/)/OWASP GenAI Security Project「Top 10 for Agentic Applications」(https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/)