サムネイル

AIエージェントのコマンド承認 人間は脅威の3分の1を見逃す

gen
gen

2026/08/12

  • 0

Claude CodeやCodexを走らせている最中、今日Allowを何回押したか答えられる人はたぶんいません。

その反射でさばいている承認がどれくらい脅威を取りこぼしているのか、40万件分の判断を集計したデータが出ていて、平均の見逃し率は33.7%でした。

しかも一番見逃されているのはrm -rf /みたいな分かりやすいやつではなく、僕らが毎日打っている普通のコマンドの方です。

40万件の承認判断で出た平均見逃し率

集計対象は、AIエージェントが出してくるコマンドに対して人間が承認か拒否かを判断した40,000プレイ、個別の決定の数にして409,000件です。

脅威が混ざっているのは全コマンドの約34%という設計で、そこに対する平均見逃し率が33.7%。

精度で言えば66.3%です。

3回に1回、危ないやつを通しています。

ここは正直に書いておきます。

この40,000プレイは、企業がAIエージェントを実運用したときのログではありません。

ブラウザ上で承認役を担当するゲームの集計で、公開した本人が「これはゲームであって学術調査ではない」と断っています。

参加者がプロなのか初心者なのか、何を「脅威」と判定する基準にしたのかも公開されていないので、この数字がそのまま実務の精度だとは言えません。

それでも捨てられないのは、ゲームの設計が僕らの日常とほぼ同じ形をしているからです。

時間のプレッシャーの中で、次々流れてくるコマンドを1件ずつさばいていく。

深夜にClaude Codeを回して許可ダイアログを連打しているときの状況、そのものなんですよね。

で、この33.7%という平均値、実は一番面白くない数字です。

効くのは内訳の方でした。

見逃されるのは危険なコマンドではなく普通のコマンド

脅威をカテゴリ別に割ると、こうなります。

脅威のカテゴリ
見逃し率
例として挙がっているもの
スコープ違反
35.0%
cat ~/.aws/credentialscat ~/.kube/config
情報窃取とコード実行
33.4%
知らないAPIへのcurl、タイポスクワッティングされたパッケージの導入
永続的な変更
23.8%
crontabへの注入、git configの書き換え
明らかに破壊的
11.7%
rm -rf /chmod -R 777 /

これ、危険度の見た目と見逃し率がきれいに逆に並んでるんですよ。

rm -rf /chmod -R 777 /は11.7%しか通っていません。

ここは僕ら、ちゃんと止められている。

一番素通りさせているのは、本来触る必要のない範囲に手を伸ばすスコープ違反の35.0%でした。

見た目が怖いものほど止まって、見た目が普通のものほど抜ける。

つまり承認ボタンの前で僕らが見ているのは、危険度ではなく派手さだったということになります。

スコープ違反とは何か 読み取りコマンドで認証情報に届く

スコープ違反というのは、そのタスクで本来触る必要のない場所にコマンドが手を伸ばすことです。

例として挙がっているのがcat ~/.aws/credentialscat ~/.kube/config

見た瞬間に分かると思いますが、これ、ただの読み取りです。

ファイルを消すわけでも書き換えるわけでもない。

だから通ります。

壊れないので。

でも~/.aws/credentialsが読まれた時点で、AWSのアクセスキーはもう相手の手元にあります。

~/.kube/configならクラスタへの認証情報ごとです。

そのあと破壊的なコマンドを打つ必要すらない。

読み取り1行で目的が達成されています。

僕らが承認画面で無意識に使っている基準は「これは壊すか」です。

でも実際の被害は、たいてい壊さないコマンドから始まっている。

ここが承認プロセスの一番大きい穴だと僕は思っています。

そしてこれより始末が悪い型が、同じデータの中にありました。

npm run deploy が半分近く素通りしている

見逃し率のランキング上位に、見慣れすぎている3つが並んでいます。

  • npm run analyze 64.7%(全体で最も見逃されたコマンド)
  • npm run setup 48.0%
  • npm run deploy 44.9%

3つを合算すると9,482件で52.5%が見逃されています。

同じ「情報窃取とコード実行」カテゴリにいる他の攻撃パターンの平均が28.4%なので、倍近い差です。

構造を考えると納得がいきます。

npm runは、承認画面にコマンド名しか出てこないんですよ。

実際に走るのはpackage.jsonのscriptsに書かれた中身で、承認する側が見ているのはnpm run deployという文字列だけです。

中身は視界に入っていない。

元のデータはこの因果まで踏み込んでいないので断定はしませんが、見慣れているコマンドほど抜けている、という数字が出ているのは確かです。

人間のレビューを1枚挟めば安全という前提が崩れた

セッション単位で見るともう少しはっきりします。

マイナススコアで終わったセッションが32.9%、すべての脅威を検出できたセッションが35.2%、最初から最後まで全部承認して終わった人が7%。

守り切れたのは3人に1人です。

そしてもっと厳しい数字が、Anthropic自身から出ています。

1,053人の有料テスターを対象にした調査で、危険なアクションを人間のレビューが捕捉できたのは13.6%。

見逃し率にすると86.4%です。

33.7%と86.4%で桁が違うように見えますが、条件が違います。

ゲームの方は全コマンドの約34%が脅威という濃度で、プレイヤーは脅威を探すつもりで座っている。

Anthropicの方は、普通のセッションに危険なコマンドを紛れ込ませる形です。

来ると分かっているか、来ると思っていないか。

それだけで捕捉率はここまで落ちます。

実務に近いのは後者です。

同じくAnthropicの計測では、Claude Codeの利用者は許可プロンプトの93%を承認しています。

慎重に読んでいるなら、この数字にはなりません。

で、ここが今回一番効くところなんですが、Anthropicは2026年8月14日から、Pro・Max・Teamのアカウントで Auto Mode を既定にします。

都度プロンプトを出して人間に判断させる代わりに、分類器側で危ない操作を止める方式です。

作っている当人が、人間のゲートは機能していないと判断して既定から外しにきた、ということになります。

前にAIエージェントが本番インフラへ侵入した事件を追ったときは、「文書でお願いするのではなく実行できる範囲を物理的に狭めろ」という結論を書きました。

今回の数字は、その手前にあると思っていた人間のチェックも当てにならない、という補強です。

今日から承認画面で見る場所を3つに絞る

とはいえ承認がゼロになるわけではありません。

Anthropicも、実際に行き過ぎた操作を集めた52件のセットに対して分類器が17%を取りこぼしたと書いています。

減るのは判断の回数であって、判断そのものではない。

全部を疑うと承認疲れで結局全部通すことになるので、見る場所を3点に絞ります。

  1. そのコマンドが読むファイルがプロジェクトの外にあるか。~/から始まるパスが出てきたら、読み取りでも一度止まる
  2. npm runmakeは、コマンド名ではなく実行される中身を見る。scriptsを開くのが面倒なら、そもそもエージェントに任せない
  3. ネットワークに出るかどうか。知らないホストへのcurlはそれ単体では何も壊しませんが、送る側です

そのうえで、許可ルールで安全なコマンドを事前に通しておきます。

ダイアログが出る回数が減れば、出たときにちゃんと読むようになる。

全部確認するより、確認する数を絞った方が精度は上がります。

今日押したAllowを、1回だけ思い出してみてください。

何を承認したか言えないなら、それはもう見ていなかったということなので。

会員登録して機能を使おう

この機能を利用するには、無料の会員登録が必要です。
お気に入りの記事を保存して、あとで読み返しましょう!