AIエージェントのセキュリティとは、AI の席に渡す権限と、渡さない物の線を先に決め、その線を道具の側で守らせる事です。
- 道具を問わず使える「渡す物・渡さない物」の線の早見表
- MCP の公式の頁が示す、権限を小さく始める考え方と、手元で動く MCP サーバーの扱い
- 当社で実際に起きた 2 つの漏れ(共有の置き場から保存が混ざった事・配る資料に社内の判断が写った事)と、その後に決めた形
この頁は、任せる前に置く「門」の話の続きです。門の頁では欠点を 4 つに分けて測る形を書きました。ここではそのうちの「漏れ」、つまり出してはいけない物が外へ出る事、混ざってはいけない物が混ざる事に絞ります。AIエージェントそのものの説明は柱の頁にあります。
考え方:鍵を守るより先に「線」を引く
AI エージェントの安全の話は、API の鍵やパスワードを守る話から始まりがちです。鍵は大事ですが、当社で実際に起きた漏れは、どちらも鍵ではありませんでした。1 つは「他の席の作業が自分の保存に混ざった」事、もう 1 つは「社内の判断が外へ配る資料に写った」事です(社の実測 2026-09-19・2026-09-15)。
どちらも、AI が悪意を持ったわけではありません。渡してよい範囲と渡さない物の線が、道具の側で引かれていなかっただけです。だから当社は、道具の名前ではなく「何を渡し、何を渡さないか」を先に決めています。
| 線 | 席に渡す物 | 席に渡さない物 | 線が無いと起きる事 |
|---|---|---|---|
| 権限の広さ | 今の仕事に要る分だけの権限 | 「後で要るかも」の広い権限・何でもできる 1 つの権限 | 鍵が漏れた時、関係の無い道具や資料まで触られる |
| 動かすコマンド | 中身を見て通したコマンド | 中身を見ていない起動のコマンド | 席と同じ権限で、知らないコマンドが走る |
| 共有の置き場 | 自分が触った物の道を全部書いた保存 | 置き場に「今あるもの全部」をまとめて保存する動き | 他の席の作業が自分の保存に混ざる |
| 外へ配る物 | 器(見出しと書式)だけ | 社内の判断(値段・報酬・取引先など)の中身 | 見本のつもりの資料から社内の判断が外へ出る |
出典: 権限の広さ・動かすコマンドの行は MCP 公式の Security Best Practices(2026-10-24 に見た)・共有の置き場の行は社の実測 2026-09-19・外へ配る物の行は社の実測 2026-09-15(社の規則)
表の上の 2 行は、どの会社にも当てはまる一般の線です。下の 2 行は、当社が実際に漏れを起こしてから足した線です。下の 2 行の方が、外からは見えにくい漏れです。
MCP のセキュリティ:公式が示す 2 つの考え方
MCP(AI に外の道具をつなぐ決まり)の公式には、セキュリティの考え方をまとめた頁があります。ここではそのうち、席に渡す物の線に関わる 2 点だけを写します(Security Best Practices・仕様の下書き版の頁・2026-10-24 に見た)。
権限は小さく始めて、要る時に広げる
公式は「Scope Minimization」の節で、最初から広い権限(例として files:*・db:*・admin:*)を全部取ると、その鍵が漏れた時の被害が広がると書いています。勧めているのは、まず読むだけなど危なくない操作の小さな権限で始め、強い操作を初めて使う時に、その分だけ権限を足す形です。よくある間違いとして、*・all・full-access のような何でもできる権限を使う事が挙がっています(同じ頁・2026-10-24 に見た)。
手元で動く MCP サーバーは、席と同じ権限で動く
公式は「Local MCP Server Compromise」の節で、自分の機体で動かす MCP サーバーは、つなぐ側と同じ権限で動くと書いています。そのため、新しく手元の MCP サーバーをつなぐ前に、走らせるコマンドを省かずに全部見せ、人がはっきり認めてから進める事を求めています(同じ頁・2026-10-24 に見た)。
この 2 点は、MCP に限らず AI の席全体に言えます。席に渡す権限は小さく始める。席が走らせるコマンドは、中身を見てから通す。表の上の 2 行はこの考え方から来ています。
実際の例 1:共有の置き場から、他の席の作業が保存に混ざった
当社では、何人もの AI の席が 1 つのリポジトリ(コードの置き場)を同時に使っています。席を分けて同時に動かす形はマルチエージェントの頁に書きました。この形で、鍵とは関係の無い漏れが起きました。
何が起きたか
git には「次の保存に入れる物の置き場」(index)があります。この置き場はリポジトリに 1 本しか無く、そのリポジトリを使う全部の席で共有されます(社の実測 2026-09-19)。
ある席が、自分の物を 1 本ずつ置き場に入れてから保存しようとしていました。その入れてから保存するまでの間に、別の席が自分の物を同じ置き場に入れました。結果、別の席の物がその席の保存に混ざりました(社の実測 2026-09-19)。
別の日には、置き場に入れてすらいない編集が、他の席の保存に相乗りして入りました(社の実測 2026-09-20)。どちらも、席は自分の仕事を正しくやったつもりでした。
決めた形:保存する道を全部書いて撃つ
そこで当社は、保存するときは保存する道を全部書いて撃つ事を決まりにしました(社の実測 2026-09-19)。
git commit -m "…" -- <保存する道を全部>
置き場に何が入っているかに頼らず、「この保存に入れる物はこれだけ」を保存のコマンドそのものに書く形です。他の席が置き場に何を入れていても、書いた道の外の物は入りません。
残した型:「確かめた」は撃った時の保証にならない
当社はこの件を、git の話としてではなく型として残しました。確かめた後と撃つ間に他の席の手番が入るので、「確かめた」は保存の時点の保証にならない、という型です(社の実測 2026-09-19)。
席が 1 体なら、確かめた物と撃った物は同じです。席が何体も同じ物を触ると、確かめてから撃つまでの間に中身が変わり得ます。だから「確かめてから撃つ」ではなく、「撃つコマンドの中に、撃つ物を全部書く」に変えました。共有の物を触る仕事なら、git でなくても同じ考え方が使えます。
実際の例 2:外へ配る見本に、社内の判断が写った
何が起きたか
当社で、外へ配る見本の資料に、社内の判断(値段・報酬・取引先など)を写してしまった事が実際に起きました(社の実測 2026-09-15)。見本を作る席は、手元にある本物の資料を手本にします。手本の中身ごと写せば、社内の判断も一緒に外へ出ます。
鍵だけを止める門では素通りする
鍵やパスワードを見つけて止める門は、この漏れを止められません。値段や取引先の名前は、鍵の形をしていないからです(社の実測 2026-09-15)。鍵の形は決まっていても、社内の判断の形は決まっていません。
決めた形:配る物は器だけ、中身は受け取った人が積む
そこで当社は、外へ配る物は「器(見出しと書式)だけ」にし、中身は受け取った人が自分で積む事を決まりにしました。あわせて、配る前に検査の道具を通し、引っかかる物が 0 件である事を確かめてから配ります(社の実測 2026-09-15・社の規則)。
| 配る資料の部分 | 配る | 配らない |
|---|---|---|
| 見出しと並び | そのまま配る | ― |
| 書式(表の列・記入の欄) | そのまま配る | ― |
| 中身(社内の判断・値段・報酬・取引先) | ― | 配らない。受け取った人が自分の物を積む |
| 配る前の検査 | 検査の道具を 0 件で通した物だけ | 1 件でも引っかかった物 |
出典: 社の実測 2026-09-15(社の規則)
「中身を消してから配る」ではなく「最初から器だけを作る」にしたのが要です。消す形だと、消し忘れが漏れになります。器だけを作る形なら、そもそも中身が入りません。
鍵を伏せる仕組みとの分け方
道具の出力に混ざった鍵やパスワードを伏せる仕組みは、Claude Code hooks の頁に書きました。鍵を伏せる仕組みは要ります。ただ、この頁の 2 つの例が示すように、漏れは鍵の形で来るとは限りません。
- 鍵の形をした物は、伏せる仕組みで止める
- 共有の置き場で混ざる物は、撃つコマンドの中に撃つ物を全部書いて止める
- 鍵の形をしていない社内の判断は、配る物を器だけにして、最初から入れない
3 つは別々の線です。1 つの仕組みで全部を守ろうとせず、漏れの形ごとに線を引くのが、当社の今の形です。
よくある質問
AIエージェントのセキュリティ対策は、まず何から始めればよいですか?
席に渡す権限を、今の仕事に要る分だけに絞る事から始めます。MCP の公式も、最初は危なくない操作の小さな権限で始め、強い操作を使う時にその分だけ足す形を勧めています(MCP 公式の Security Best Practices・2026-10-24 に見た)。
MCP のセキュリティで気をつける事は何ですか?
手元で動かす MCP サーバーは、つなぐ側と同じ権限で動く事です。公式は、つなぐ前に走らせるコマンドを省かずに全部見せ、人が認めてから進める事を求めています(同じ頁・2026-10-24 に見た)。
複数の AI エージェントを同じリポジトリで動かすと、何が危ないですか?
git の「次の保存に入れる物の置き場」(index)はリポジトリに 1 本しか無く、全部の席で共有されるため、他の席の物が自分の保存に混ざる事があります(社の実測 2026-09-19)。当社は、保存するときは git commit -m "…" -- <道を全部> のように保存する道を全部書いて撃つ事を決まりにしました(社の実測 2026-09-19)。
鍵やパスワードを止める仕組みがあれば、漏れは防げますか?
防げない漏れがあります。当社では、外へ配る見本の資料に社内の判断(値段・報酬・取引先など)が写った事があり、これは鍵の形をしていないので、鍵だけを止める門は素通りします(社の実測 2026-09-15)。そのため、配る物は器(見出しと書式)だけにし、配る前に検査の道具を 0 件で通しています(社の実測 2026-09-15・社の規則)。
出典
- MCP 公式 Security Best Practices https://modelcontextprotocol.io/specification/draft/basic/security_best_practices(2026-10-24 に見た・仕様の下書き版の頁・Scope Minimization と Local MCP Server Compromise の節)
- 社の実測 2026-09-15(外へ配る見本の資料に社内の判断が写った事・配る物を器だけにする決まりと、配る前に検査の道具を 0 件で通す社の規則)
- 社の実測 2026-09-19(共有の index から他の席の物が保存に混ざった事・保存する道を全部書いて撃つ決まり・「確かめた」は保存の時点の保証にならないという型)
- 社の実測 2026-09-20(入れていない編集が他の席の保存に相乗りした事)