Claude Media
「safety measures flagged」とは — Claude Codeのセキュリティ誤検知の対処

「safety measures flagged」とは — Claude Codeのセキュリティ誤検知の対処

Claude Codeがセキュリティ調査を「cybersecurity topic」として遮断したときの意味と、Cyber Verification Programでの解除方法、/rewindでの再開手順をまとめます。

脆弱性診断やマルウェア解析をClaude Codeにやらせようとして、正当な作業なのに応答を止められた経験がある方は少なくないはずです。モデルの安全機構が会話の内容をサイバーセキュリティ関連の話題と判定し、リクエストごとフラグを立てる仕様が原因です。

最初に確認したいのは、使っているモデルです。Fable 5.1・Fable 5・Opus 5.5・Sonnet 5.5・Opus 5では、フラグが立つと別のモデルで自動的にやり直す動きが先に入り、エラーが画面に出ないことがあります。

画面に出る文言はモデルと利用経路で変わる

Claude Codeが呼び出すモデルの安全機構は、会話の内容をサイバーセキュリティ関連の話題として検知します。フラグが立つと、モデル名を含む次のようなメッセージとともに応答が止まります。

API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude

どの文言が出るかは、モデルと経路の組み合わせで決まります。

くらべる

フラグが立ったときの表示の違い

エラーで停止

Anthropic直・Opus 4.8 など

上のメッセージで応答が止まります。文頭は <model>'s safeguards flagged this message です。

冒頭の文言が違う

Opus 5.5 / Sonnet 5.5

文頭が <model>'s safeguards flagged this session になります。フラグの種類に代替モデルがあれば、エラーを出さずにそちらで再実行します。

Amazon Bedrock・Google Cloud's Agent Platform・Microsoft Foundryを経由する場合は別の文言です。サイバー関連のフラグも「Usage Policy refusal」として表示されます。文言は違っても、会話を巻き戻して言い回しを変えるという対処は共通です。

Fable系・Opus 5.5・Sonnet 5.5・Opus 5では自動で別モデルに切り替わる

これらのモデルで分類器がフラグを立てたとき、Claude Codeはリクエストを代替モデルで再実行し、切り替えたことをトランスクリプトに表示します。代替先は次のとおりです。

  • Fable 5.1 / Fable 5(サイバー関連): Opus 4.8
  • Opus 5.5(サイバー関連): Opus 4.8
  • Sonnet 5.5(サイバー関連): Sonnet 5
  • Opus 5(サイバー関連): Opus 4.8

切り替えた後は、そのモデルでセッションが続きます。元のモデルに戻すには /model を使います。effortを既定のまま使っているなら、フラグが立ったリクエストのeffortは引き継がれます。既定の medium のOpus 5.5からOpus 4.8へ切り替わっても medium のままです。設定や組織の既定値があればそちらが優先され、自分でeffortを変えたり再開したりすると引き継がれません。

Bedrock・Agent Platform・Foundryでも、モデルIDを識別できれば自動切り替えは動きます。どのモデルから切り替える場合も、ANTHROPIC_DEFAULT_OPUS_MODEL の設定かOpus 4.8のエントリが必要です。無ければSonnet 5.5を含め、切り替えは働きません。Sonnet 5.5ではさらに ANTHROPIC_DEFAULT_SONNET_MODEL の設定かSonnet 5のエントリが要ります。

このカテゴリ別の代替はv2.1.219以降の挙動で、v2.1.219より前はFable 5のフラグがすべてプロバイダーの既定のOpusに回されていました。

自動で切り替わるのが困るときは、/config で「Switch models when a message is flagged」をオフにするか、設定ファイルに次を書きます。

{
  "switchModelsOnFlag": false
}

オフにすると、フラグのたびにセッションが止まり、代替モデルへ切り替えるか、プロンプトを直して元のモデルで再試行するかを選べます。非対話モード(-p)やSDK連携のようにプロンプトを出せない環境では、フラグが立ったターンは拒否で終わります。代替先が availableModels で許可されていない場合も、切り替えは起きずに拒否で終わります。モバイルアプリのクラウドセッションでは、プロンプトを編集して再試行する操作に対応していません。

最初のリクエストで出るなら、CLAUDE.mdやGit状態が原因かもしれない

フラグはユーザーが怪しい依頼を送る前、セッション最初のリクエストでも起こりえます。最初のリクエストにはCLAUDE.mdの内容やGitのステータスといった作業環境の情報が含まれるためです。セキュリティやバイオ関連の資料が多いリポジトリでは、その情報だけで分類器に引っかかる場合があります。

カスタマイズが原因かどうかは、--safe-mode で切り分けられます。v2.1.287の claude --help には次の行があります。

--safe-mode    Start with all customizations disabled …

CLAUDE.md・スキル・プラグイン・フック・MCPサーバーなどを読み込まずに起動します。それでも出るなら原因はカスタマイズではなく、Gitのステータスやディレクトリ名、あるいは依頼そのものです。Gitのステータスとディレクトリ名はカスタマイズではないため、--safe-mode でも送られます。

なぜ正当なセキュリティ調査でも止まるのか

エラーメッセージ自身が「intentionally broad safeguards(意図的に広くとった安全機構)」と説明しています。検知範囲を広めに設定して、機能提供のスピードを優先する設計です。その代償として、脆弱性診断・マルウェア解析・侵入テストのような正当な業務が引っかかることがあります。

自動ブロックの対象は2つに分かれます。

  • 禁止用途: 大量のデータ流出やランサムウェア開発のように、防御目的の用途がほぼない活動。既定でブロックされ、Cyber Verification Programへの申請でも調整できません
  • 高リスクの二面用途(dual use): 脆弱性の悪用やセキュリティツール開発のように、防御目的の正当な用途もある活動。既定でブロックされ、申請で調整できる対象です

エラーに遭遇した作業がどちらに近いかが、申請するかどうかの分かれ目です。

誤検知だと思ったときの2つの窓口

窓口は、今後も同種の作業を続けるかどうかで選びます。

  • 続ける予定がある: Cyber Verification Programに申請し、正当なセキュリティ業務としてのアクセスを得る
  • 単発の誤検知: /feedback でfalse positive(誤検知)として送る

/feedback は報告であって、その場でフラグが外れる仕組みではありません。同じセッションで作業を続けるには、次の巻き戻しが必要です。

Cyber Verification Programの対象と申請経路

Cyber Verification Program(CVP)は、防御目的の正当なセキュリティ業務に従事する専門家向けの、無料の申請制プログラムです。脅威データの整理に使うMITRE ATT&CKの可視化は、LLM ATT&CK Navigatorとはで扱っています。

申請先は、Claudeへのアクセス経路で決まります。

経路申請先
Anthropic直(Claude.ai・Claude Code・API)・BYOK申請先検証ポータル(管理者のみに表示)
Claude Platform on AWS申請先検証ポータル。AnthropicアカウントにAWSアカウントを連携
Claude on Google Cloud申請先検証ポータル。Googleアカウントの連携とデータ保持の設定が前提
Microsoft Foundry申請先Cyber Use Case Form(SurfaceでAzureを選ぶ)
Amazon Bedrock申請先提供されていない
サードパーティ製品申請先各プラットフォームに問い合わせ。参加していない場合がある

Claude on Google Cloudでは、プロジェクトごとにAdvanced AI Safety Addendumへ同意し、モデル・リージョンごとにデータ保持の設定を有効にする必要があります。Opus 5はデータ共有、Sonnet 5とOpus 4.7・4.8はAdvanced AIの設定を使います。

審査結果は2営業日以内のメール通知を目標としており、申請には本人確認が必要です。Zero Data Retention(ZDR)の組織は現在対象外です。対象はOpusクラスとSonnetクラスですが、Opus 5.5とSonnet 5.5は含まれておらず、拡大は予告段階です。

経路別の詳しい手順はCyber Verification Programの申請手順にあります。承認後のConsole側の設定はワークスペースへの割り当て手順です。

同じセッションで作業を続ける手順

フラグ判定は、直近のプロンプトだけでなく会話全体を対象にします。同じセッションで新しいメッセージを送っても、同じ拒否がたいてい再発します。--continue や --resume で開き直しても、トランスクリプトに引き金の内容が残っているため同じです。

手順

フラグが立ったセッションを再開する

  1. 1

    巻き戻しメニューを開く

    プロンプトの入力欄が空の状態で /rewind を実行するか、Esc を2回押します。入力欄に文字があるときは、Esc 2回で入力が消えるだけでメニューは開きません。

  2. 2

    フラグが立つ前のプロンプトを選ぶ

    メニューにはセッション中に送ったプロンプトが並びます。引き金になったターンより前のものを選びます。

  3. 3

    戻す対象を決める

    「Restore conversation」は会話だけを戻してコードは今のままにします。コードと会話の両方を戻す選択肢もあります。

  4. 4

    別のアプローチで送り直す

    同じ内容をそのまま送ると、また引っかかります。調査の目的や範囲を言い換えるか、依頼を分けて送ります。

/rewind のチェックポイントはセッションと一緒に保存されるため、セッションを再開した後でも使えます。ただしファイルのスナップショットは、最後に保存してから約30日で定期削除の対象になります。古いセッションでは「No files were restored」で失敗することがあり、保持期間は cleanupPeriodDays で延ばせます。チェックポイントの挙動はClaude Code rewindコマンドで/clear前まで戻るにまとめています。

引き金のターンが特定できないときは、/clear で同じプロジェクトの新しい会話を始める手があります。以前の会話はディスクに残り、/resume から開けます。同じプロセス内なら、巻き戻しメニューの先頭に出る /resume <session-id> (previous session) からも戻れます。

元の会話を残したまま別の言い回しを試す

/rewind は同じセッションの中で過去に戻る操作です。フラグが立つ前の状態を残し、別の言い回しを並行して試すなら /branch を使います。

/branch

/branch は現在の会話をその時点で枝分かれさせて新しいセッションに切り替え、元のセッションは /resume で戻れる形で残します。コマンドラインからは claude --continue --fork-session が同じ働きです。v2.1.287の claude --help では、--fork-session は「再開時に元のセッションIDを使い回さず、新しいIDを作る」オプションとして出ます。

注意点は、分岐する位置です。引き金になった内容を含んだまま分岐すると、会話全体が評価されるため分岐先でも同じフラグが再発します。

/fork は名前が似ていますが、会話を新しいバックグラウンドセッションにコピーして手元の作業を続けるコマンドです(v2.1.212以降)。巻き戻しの代わりにはなりません。

似た文言の別エラーと見分ける

よく混同されるのが、auto modeで出る次のエラーです。

Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details

こちらはauto modeの承認判定が実行できなかったという表示で、本記事のエラーとは別の仕組みです。ただし末尾の説明どおり、原因が会話の以前の内容にある場合は、本記事と同じ安全チェックが背景にあります。見分け方は文言です。safeguards flagged を含んで応答自体が止まるなら本記事、Auto mode で始まり特定のツール操作だけが止まるなら別のエラーとして扱います。

権限設定やサンドボックスとは別の仕組み

この誤検知はモデル側の安全機構によるもので、Claude Code自体の権限設定やツールアクセス制御とは別です。権限モデルやサンドボックスの設計はClaude Codeセキュリティ・権限ガイドにまとめています。CVPが緩和するのはリクエスト内容へのフラグであり、権限設定を緩めることではありません。

防御側の脆弱性対応でのClaudeの使い方は、Claudeサイバーセキュリティ活用ガイドで扱っています。

よくある質問

この安全機構はClaude Code独自の機能か

いいえ。サーバー側にあるモデルの安全機構で、v2.1.203より前から存在していました。クライアントのリリースで変わったのは表示文言です。

  • v2.1.203より前: 「exemption(適用除外)を申請してください」という文面。申請フォームへのリンクつき
  • v2.1.203〜v2.1.218: has safety measures that flagged this message for a cybersecurity topic で始まる文面。対話セッションでは末尾に /feedback への案内が付く
  • 現行: 冒頭に掲げた文面

Claude Codeのエラー全般はどう切り分けるか

導入時のエラーはClaude Codeインストールエラーの切り分けチェックリストを参照してください。

この記事を共有:XはてブLinkedIn