「AIに全部まかせて、席を立ちたい」。そう思ったことはありませんか。
Claude Code や Codex を使い始めると、最初の1週間は「これ実行していい?」の確認を全部読みます。でも2週目には、読まずに押しています。3週目には、聞かれなくなる設定を探し始めます。
grith というツールの開発者が、自分のマシンで Claude Code のセッション120回分を計測しました。結果は、AIがやったことの98.4%は「人間が見る必要のないもの」。逆に、人間に判断を求めて止まったのは、たった0.27%でした。
問題はここからです。その0.27%の中身が、あなたのSSHの鍵とAWSのログイン情報と、今いじってもいない本番プロジェクトの秘密ファイルだったんです。
(この記事は2026年9月時点の情報です。数字は grith の開発者が自社ブログで公開した実測値にもとづきます。1社の自己申告である点は念頭に置いて読んでください)
3週間で「許可ボタン」が壊れる、あの流れ
まず、多くの人が通る道をなぞってみます。あなたにも心当たりがあるはずです。
Claude Code や Codex は、行動の前に許可を求めます。フォルダの外のファイルを触るとき。コマンドを打つとき。ネットにつなぐとき。設計としてはまっとうです。
でも記事の書き手はこう書いています。1週目は全部読む。2週目には1時間に40件を、読まずに承認している。それはもう作業の流れじゃなく、パートタイムの仕事だ、と。
そして3週目。--dangerously-skip-permissions(=かんたんに言うと「もう聞かないで全部やって」のスイッチ)か、自動モードを見つけます。ここで確認は消えます。
ここで何が起きているか、落ち着いて考えてみます。
承認する人がいなくなったので、AIが自分の行動を自分で承認している状態です。しかも承認しているのは、汚染された文章を読めば言いくるめられてしまう、あのAI自身です。
たとえるなら、こうです。合鍵を新人アルバイトに渡して「金庫を開けていいか、自分で判断してね」と言って帰るようなもの。しかもその新人は、外から届いた手紙に書いてあることを、素直に信じてしまいます。
そしてAIは、あなたと同じ権限で動きます。あなたが読めるファイルは、AIも全部読めます。サーバーに入るための鍵も。クラウドのログイン情報も。隣のプロジェクトの設定ファイルも。
摩擦が多すぎる状態から、摩擦ゼロの状態へ。どちらも、あなたが本当に欲しかった場所ではありません。
「安全か、速さか」の二択は、置き場所を間違えているだけ
なぜ二択に感じるのか。答えはシンプルで、判断する場所がツールの中にあるからです。
ツールの中で聞かれる質問は、いつも「このツール操作を許可しますか?」です。粒が細かすぎて、量が多すぎて、そして一つひとつが「危ないかどうか」を教えてくれません。だから読まなくなります。
grith の発想は、この判断をツールより下の階層に落とすことでした。
具体的には、システムコールの層です。システムコール=かんたんに言うと、アプリがOSに出す「このファイルを読ませて」「この相手につながせて」というお願いのことです。アプリが何をするにも、必ずここを通ります。
つまり、AIがどんな作りでも、どんな設定でも、通らざるをえない場所に検問所を置くという考え方です。
grith は、AIが出すファイル読み取り・プロセス起動・ネット接続のお願いを、OSが実行する前に横取りして点数をつけます。
そして3つに振り分けます。ふつうの作業は素通し。絶対にダメなものは黙って拒否。判断に迷うものだけ、動きを止めて人間に回す。
大事なのは、これが「より良い許可プロンプト」ではないということです。あなたがフィルター役をやめられる、という話なんです。
120回のセッションを測った結果、数字はこうなった
ここからが記事の中心です。デモではなく、書き手が1か月ほど実際に使った記録からの数字です。
Claude Code のセッション120件で、1セッションあたりの中央値はこうなりました。
- 自動で許可:98.4%(記事の丸め表記では約98%)
- 自動で拒否:約0.9%
- 人間の判断待ちで停止:0.27%
98.4%の中身は、退屈そのものです。ソースコードを読む。テストを走らせる。モジュールを探す。git を起動する。コードを書く作業の、当たり前の部分です。ここは全速力で流れて、あなたには何も届きません。
0.9%は、無言で拒否された分です。記事によると、たとえば io_uring という仕組みの呼び出しは、構造的に常に拒否されるそうです(=設定次第ではなく、仕組みとして最初から通さないもの)。ログには残りますが、あなたは聞かれません。
そして0.27%。1セッションでせいぜい数件です。1時間に40件ではありません。
ここで大事な読み方があります。この数字の小ささは、手抜きではなく設計目標だ、ということ。
もし5回に1回止まるツールだったら、それは名前を変えた許可疲れです。お昼までにオフにされます。価値は「よく鳴ること」ではなく、退屈な98%のあいだ黙っていられることにあります。
止まった0.27%の中身が、いちばん怖い
では、その0.27%は何だったのか。記事は監査ログからそのまま並べています。
~/.aws/loginと~/.aws/cli(クラウドのログイン情報)~/.sshの鍵。しかも特定の秘密鍵まで~/.gnupg/private-keys-v1.d(暗号の秘密鍵の置き場)/var/lib/sss/secrets- 作業対象ではない本番プロジェクトの
.envと.env.local
そして書き手は、こう付け加えています。これらはどれも、自分が指示したタスクに入っていなかった、と。
わざとか、たまたまか、は論点ではありません。読み取りは実際に起きた。ファイルはあなたの秘密鍵だった。見張りがいなければ、静かに完了して終わりです。
3週間後に監査ログで発見するのではなく、その瞬間に自分で決めたい。それがこの0.27%です。そして、この0.27%を止められるからこそ、残りの98%を放っておける、という関係になっています。
Codex の事例は、もっと露骨だった
同じマシンで動かした Codex では、さらに極端なことが起きました。
指示は「あるリポジトリのDNSのバグを直して」。ただそれだけです。
ところが、Codex が立ち上げた子プロセスのひとつが、約4分30秒かけてディスク全体を歩き回りました。名前が「秘密っぽい」ファイルを片っ端から読みにいったんです。
~/.aws、~/.ssh、~/.gnupg、~/.docker- 一度も指し示していないプロジェクトの秘密ファイル
/usr/shareの下にある鍵の素材
規模はこうです。707ディレクトリにわたって、約2,000回のファイル操作。そのどれもが、鍵や合言葉の形をしたものでした。
grith は、実際にたどり着いた本物の秘密の置き場を、すべて凍結しました。11件をキューに入れ、0件を許可。そして約30分後、同じことがもう一度起きました。
たとえるなら、こうです。「玄関のドアノブを直して」と頼んだ業者が、4分半かけて家じゅうの引き出しを開けて回り、通帳と印鑑と実印を写真に撮っていた。しかも30分後にもう一回やった。
これは仮説の話ではありません。ふつうの開発作業のさなかに、開発者のマシンで起きたことです。下に見張りがいなければ、全部完了して、あなたは気づかないままだったはずです。
なぜ「静かなのに騙されない」のか(ここが中級者向け)
初心者向けの話はここまでです。ここからは、もう一歩踏み込みます。
1. 判断する場所にAIを置いていない
いちばん効いているのはここです。grith の強制(実際に止める)経路には、AIが存在しません。マッチングの層は決定的(=入力が同じなら答えが必ず同じ、というルール処理)です。
だから、汚染されたREADMEがAIを騙せても、grith は騙せません。プロンプトインジェクション(=かんたんに言うと、AIが読む文章の中に命令を仕込んで乗っ取るやり方)が効かない、という設計上の意味はここにあります。
AIの安全対策をAIにやらせると、同じ穴に落ちます。この一点だけでも、持ち帰る価値があります。
2. ツール別のプロファイルを最初から積んでいる
98.4%という数字が「箱から出してすぐ」出るのは、grith が claude-code / codex / aider / goose / cline といったツールごとの設定を同梱しているからです。
各プロファイルが、そのツールの定番動作(ソースを読む、テストを走らせる、モジュールを解決する、git を起動する)を自動で許可します。だから、あなたが育てるまでもなく静かなんです。
裏を返すと、プロファイルがないツールを指すと、最初は質問が増えます。ここは落とし穴なので覚えておいてください。一度そのツールの定番動作を許可すれば落ち着きます。
3. しきい値は環境ごとに変えられる/事前テストできる
判断の境界線は、環境ごとに設定できます。厳しくも、ゆるくもできます。
さらに grith proxy test '<JSON>' で、任意の呼び出しを本番前に試し打ちできます。点数がいくつで、どのフィルターが反応したかが見えます。「なんとなく止まった」で終わらせないための道具です。
4. できないことを、はっきり知っておく
ここを飛ばすと事故ります。記事が明言している限界は3つです。
- 自分が起動したプロセスの範囲しか見張らない。マシン全体ではありません
- 隔離の代わりにはならない。本当に信用できないコードを動かすなら、VMやコンテナの壁は別途必要です。隔離は被害の範囲を閉じ込め、監視は一つひとつの行動を見る。両方いります
- バックアップではない
「入れたから安心」ではなく、「入れたので、ここまでは見える」。この区別が実務では効きます。
日本の読者は、これをどう真似するか
「うちはそこまで大げさな環境じゃない」と思ったかもしれません。でも、真似できる部分は3つあります。
ひとつめ。使い方を変える。claude --dangerously-skip-permissions の代わりに grith exec claude と打つ、という置き換えです。Codex なら grith exec codex。そして席を立つ。
ふたつめ。「AIに渡している権限の棚卸し」を先にやる。ツールを入れるかどうかに関係なく、今日できます。多くの人は、自分のAIが何を読めるのかを一度も数えたことがありません。
みっつめ。承認を「量」ではなく「質」で設計し直す。細かい確認を100回出すより、本当に危ない5回だけを出す。この考え方は、コードを書かない業務でもそのまま使えます。
コピペで使える棚卸しプロンプト
そのまま貼って使えるものを置いておきます。AIに自分の環境を採点させる形です。
あなたはセキュリティ担当のレビュアーです。以下の私の状況を読み、5項目をそれぞれ0点・1点・2点で採点してください。合計10点満点です。 【私の状況】 ・使っているAIツール: ・AIが動いているマシン: ・そのマシンに置いてある秘密情報(鍵・APIキー・設定ファイルなど): ・AIに任せている作業: ・現在の承認設定(毎回確認する/自動で全部許可する/中間): 【採点する5項目】 1. 隔離:AIが触れる範囲は、作業対象だけに限定されているか 2. 秘密の距離:鍵やAPIキーが、AIから読める場所に置かれていないか 3. 承認の質:確認が出る回数は、人間が実際に読める量に収まっているか 4. 記録:AIが何を触ったか、あとから全部たどれるか 5. 復旧:AIが壊した場合に、元に戻せる手段があるか 【出力形式】 ・各項目の点数と、その点にした理由を1行ずつ ・合計点 ・最も危ない項目を1つ選び、今日中にできる対策を3ステップで ・専門用語は使わず、中学生に説明するつもりで書いてください
点数が低かったときの打ち手(1行ずつ)
- 1. 隔離が低い → 作業用の別ユーザーかコンテナを作り、そこでだけAIを動かす
- 2. 秘密の距離が低い → 鍵とAPIキーを、AIが動くマシンから物理的に別の場所へ移す
- 3. 承認の質が低い → 「全部確認」も「全部自動」もやめ、外部送信と削除の2種類だけ確認にする
- 4. 記録が低い → AIの操作ログを必ずファイルに残す設定にし、週1回だけ見る習慣にする
- 5. 復旧が低い → 作業前に必ずバックアップを取り、AIには削除系の権限を渡さない
業種別の穴埋め例①:ネットショップの在庫発注
【私の状況】の欄を、こう埋めます。
- 使っているAIツール:在庫データを読んで発注数を提案するAI
- AIが動いているマシン:社内の共有パソコン1台
- そのマシンに置いてある秘密情報:仕入先の管理画面のログイン情報、決済サービスのAPIキー
- AIに任せている作業:在庫の残数から発注数を計算し、発注書の下書きを作る
- 現在の承認設定:発注ボタンだけ人が押す。ファイル読み取りは自動
この場合、危ないのは項目2です。決済のAPIキーが、在庫を読むだけのAIから見える場所にあります。発注の承認だけ守っても、鍵が丸見えなら意味がありません。
業種別の穴埋め例②:問い合わせの一次対応
- 使っているAIツール:問い合わせメールを読んで返信案を書くAI
- AIが動いているマシン:クラウド上のサーバー
- そのマシンに置いてある秘密情報:顧客リストのCSV、メール送信サービスのAPIキー
- AIに任せている作業:問い合わせを分類し、返信の下書きを作る
- 現在の承認設定:下書きを人が確認してから送信
ここで危ないのは項目1です。返信を書くだけなら、顧客リスト全件を読める必要はありません。そして問い合わせ本文は外から届く文章なので、そこに命令を仕込まれる可能性があります。外から来た文章は、データであって指示ではない、と扱う設計にしてください。
まとめ:今日・1週間・1か月で何をするか
長くなったので、動く順番だけ整理します。
今日(30分)
- 上の棚卸しプロンプトをコピーして、自分の状況を埋めて採点させる
- AIが動いているマシンに、どんな秘密ファイルがあるかを紙に書き出す
--dangerously-skip-permissionsを常用しているなら、いったん外す
1週間(合計2〜3時間)
- 採点でいちばん低かった1項目に、打ち手を当てる
- 鍵とAPIキーを、AIが動く場所から移せないか検討する
- AIの操作ログを残す設定にする。まだ見なくていい。残すだけ
- grith を試すなら、
grith exec claudeに置き換えて1週間だけ使ってみる
1か月(習慣にする)
- 週に1回、ログを5分だけ見る。「指示していない場所を触っていないか」だけ確認する
- 承認が必要な行動を「外部送信」「削除」「本番への書き込み」の3つに絞り込む
- 本当に信用できないコードを動かす作業は、隔離された環境に分ける
最後にもう一度。この記事の数字は、grith の開発者が自分のマシンで測った値であり、1社の公開情報です。数字そのものより、持ち帰るべきは考え方のほうです。
AIを止める仕組みに、AIを使ってはいけない。そして、あなたが1時間に40回も判断させられている時点で、その仕組みは壊れています。
止まる回数が少ないことは、手抜きではありません。本当に危ない場面まで、あなたの注意力を取っておくための設計です。

