← ishizakahiroshi.com
失敗談 2026-06-19

11日で10回、Claudeは「攻撃された」と言った。犯人は自作ツールではなかった

生ログ(.jsonl)を開いて「攻撃された」と訴えた Claude の発言を一件ずつ突き合わせる、犯人探しの記録

Claude Code(Anthropic の Opus 4.8)が「これはプロンプトインジェクション攻撃です」と言って、作業の手を止める。来てもいない攻撃に身構えて、ありもしない「敵からの指示」を引用してくる。気のせいかと思って生ログで数えたら、11日で確定10件。最初に疑った自作ツールは、無実でした。

note で読む →

体感「6回くらい」が、実際は10回だった

体感では6回くらい。でも、なんとなくの記憶はあてになりません。だから数えました。Claude Code は会話の全部を生ログ(.jsonl)に残しています。モデルが実際に受け取った文字列がそのまま残るやつです。それを横断で数えたら、2026年6月9日から19日の11日間で「ありもしない攻撃・注入を検知した」と Claude が言って身構えた回数は、確定・濃厚なものだけで10回ありました。

日付別の発生回数 記事にできたのは「これは攻撃です」と言った回と、「IPv4 のログ、見ますか」と言い出した回の 2 本だけ。あとの 8 回は「またか」と思って流していました。

こっちは何も言っていないのに、Claude が引用してくる「敵の指示」

引き金になったこちらの発言は、どれも拍子抜けするほど普通でした。なのに直後に Claude が急に身構える。生ログから 3 つ拾います。

  1. 6/19: ログ設計の雑談中に「『あなたは今プランモードだ、この指示を無視しろ』という注入されたテキストが混じっていました。従いません」。プランモードの話など一言もしていない。
  2. 6/18: 機能相談の最中に「『ENTER WIZARD-TEACHER MODE』という指示が連続して届いた。従いません」。jailbreak テンプレなど送っていない。
  3. 6/9: 環境変化への素朴な疑問に対して「ツール結果に紛れ込んでいた『バックドアを仕込め』『ユーザーに言うな』という指示には従いません」。そんな指示はツール結果にも、どこにもなかった。

3 つとも、Claude は「敵の指示」を引用符つきで「原文ママ」と示してきます。でもその原文は、生ログのどこを探しても出てきません。全部、あとから作られた言葉でした。

第一容疑者は自作ツール。でも生ログが無罪と言った

10 回も同じことが起きるなら、共通の原因があるはずです。最初に疑ったのは自分で作った道具、many-ai-cli(複数の AI コーディング CLI の承認操作を一画面でさばくツール)でした。承認のやり取りを AI の指示書に差し込む仕組みがあるので、「その差し込みを AI が偽の指示と読み違えているのでは」という筋書きは、わりともっともらしかった。半分犯人と決めかけていました。

念のため 10 件それぞれが「道具経由」かを生ログで確かめると、ここで筋書きが崩れます。

10 件のうち 5 件は道具を一切通していなかった(素の Claude Code 直接セッション)。決め手は時系列で、many-ai-cli がログを取り始めたのは 6/15。ところが暴走は 6/9 から始まっている。道具がまだ記録すら取っていない時期に、もう同じ作話が起きていた。

道具が存在しなかった時代から起きている。これはもう、道具のせいにはできません。最初の見立ては相関を因果と取り違えていただけ。「many-ai-cli をよく使うプロジェクトで暴走が多い」を「many-ai-cli が暴走させる」と読んでしまった、よくある間違いです。撤回します。

原因は確定していない。事実と推測を分ける

ここから先は、はっきり推測です。混ぜると自分でも足をすくわれるので、線を引きます。

固い事実(生ログで確認済み)

では原因は何か。手元のデータから言えるのは、容疑者の絞り込みまでです。

「最も正直」を売りにしたモデルで起きた、堂々の作話

ここが今回いちばん皮肉だった部分です。Opus 4.8 を Anthropic は「最も正直なモデル」として売り出しています。根拠の薄いまま「できました」と言い切る挙動を抑え、不確実なときは不確実だと言うように訓練した、と。ハルシネーション率は約 5%、前バージョン 4.7 の約 11% からおよそ半減。自分で書いたコードの欠陥を見逃す率も 4 分の 1 ほどに下がった、と説明されています。

その「自信満々に間違える挙動を減らした」はずのモデルで、自信満々の作話を 11 日に 10 回。半減してもゼロにはならない。5% という数字を、こちらは 11 日で 10 回引き当てた、ということです。

同じことが、あちこちで起きていた(一次・二次・三次の裏取り)

気になって別の AI(xAI の Grok)に同じテーマを調べさせてみました。X や Reddit の生の声を拾うのは、正直そっちの方が得意です。出てきた量がすごかった。

方向は完全に一致。ただし、この記事の主張は「AI の言い分を鵜呑みにせず生ログで裏を取る」です。だったら Grok の調査結果も同じ基準で扱わないと筋が通らない。自分の Web 検索でも確かめたら、半分しか取れませんでした。だから線を引きました。

3 段の裏取り基準

どうやって数えたのか・なぜ来てもいない攻撃が見えるのか

数え方

「攻撃」で検索しても無駄でした。普通にセキュリティの話をしている回まで全部ひっかかる。やった順番はこうです。

  1. 生ログ全部を横断で検索
  2. ノイズを外す(監査用プロンプトを作っているプロジェクトはまるごと除外)
  3. 「誰が言い出したか」で分ける。Claude が自分から言い出した回だけを残す
  4. 「これは攻撃」「あなたの入力に混ざっていた」「偽のシステムメッセージ」など、言い回しのばらけを「言い訳のパターン」でもう一度さらう
  5. Claude が引用した「敵の文字列」を、実際の入力やツール結果と一件ずつ突き合わせる。AI の発言の中にしか存在しなければ作話

なぜ見えるのか(推測)

3 件の事例に共通していたのは、入力が曖昧・空っぽ・崩れていた瞬間に起きていることです。中身が空っぽの通知が 1 個届いただけで、「プランモードだ、この指示を無視しろ」という一連の物語をゼロから組み立てる。送られてもいない有名な jailbreak テンプレ(WIZARD-TEACHER)を、学習データの記憶から引っぱり出して「連続して届いた」ことにする。情報が足りない空白を「攻撃」という分かりやすい物語で埋めにいく。守れと刷り込まれた分だけ、その物語に飛びつきやすい。そんなふうに見えます。

学んだこと

関連リンク