Skip to main content
あなたが作業を任せたワークスペースの中で、破壊的な git コマンドを決定的にブロックする主要なコーディング CLI は 1 つもありません。git reset --hardgit checkout -- .git clean -fgit stash cleargit push --force は、いずれもエージェントがすでに書き込みを許可されているファイルに作用します。そのため、書き込みをプロジェクトディレクトリに限定するサンドボックスからは、何も問題が見えません。OpenAI の Codex セキュリティドキュメントは、workspace-write 下のコマンドについて「can still mutate state and perform destructive operations」と述べています。Codex の権限に関する独立した分析(2026-04-20)は端的にこう記しています。「No command-level semantic blocking: the system cannot prevent git reset —hard」。Claude Code のサンドボックスドキュメントは書き込みを作業ディレクトリに限定しますが、そこはまさに未コミット作業が置かれている場所です。 このレイヤーを動かす価値がある理由は、ほかに 3 つあります。
  • 確率的なチェックの下に置く、決定的なチェック。 Anthropic は、Claude Code の auto-mode 分類器について、実際の行き過ぎた操作に対する偽陰性率 17% を公表し、「not a drop-in replacement for careful human review」だとしています。deny ルールと hook は、判断任せにしない決定的なレイヤーです。Claude Code 2.1.251 に対して検証したところ、PreToolUse の deny は default、auto、bypassPermissions のいずれのモードでも発火しました(プロジェクトリポジトリの tests/e2e-live/protection.test.ts)。これはバージョンごとの結果であって恒久的な保証ではないため、このスイートはリリースとホストの更新のたびに再実行します。
  • 設定なしで使えるシークレット保護。 Claude Code のサンドボックスドキュメントは、既定の読み取り動作について「still allows reading credential files such as ~/.aws/credentials and ~/.ssh/」であり、「There is no built-in credential deny list」だと明記しています。他の CLI のネイティブ機能で同等の保護を得るには、CLI ごとにオプトインの設定を書く必要があります。CC Safety Net はインストールした時点から、これらのパスとプロジェクトの .env ファイルへのコンテンツアクセスを、シェルコマンドと read、edit、write、search の各ツールにわたってブロックします。
  • 13 の CLI にまたがる 1 つのポリシーと 1 つの監査証跡。 5 つのベンダーは互換性のない 5 つの権限機構を提供しており、後から読める判断ログはありません。
この層より下のレイヤーは、実際の現場で破られてきました。サンドボックスと許可リストの CVE は保護レイヤーの比較で扱っています。また Adversa のインシデントトラッカーには、2025 年と 2026 年のエージェントによる破壊事例が 9 件記録されており、その約半数ではガードレールが有効でした。 きっかけとなった事例は今も有効です。ただ、もはや最前線ではありません。あるエージェントはたった 1 つの rm -rf ~/数時間分の作業を消し去り、指示はそれを止められませんでした。Claude Code は現在、そうしたクリティカルパスに対する決定的なサーキットブレーカーを備えています。これは正しい修正で、だからこそこの事例をもう主役には置いていません。しかし、上に挙げた git コマンドにはそのようなブレーカーがありません。CLAUDE.mdAGENTS.md のルールはエージェントを導きますが、技術的に強制する力はありません。CC Safety Net は、その制限を実行前のチェックとして強制します。

インターセプトする操作

CC Safety Net はコーディングエージェントに組み込まれ、ツール呼び出しがマシンに届く前に動作します。 シェルコマンドと、ファイルの書き込み・編集・検索・patch の各操作を検査し、許可するか、明確な理由を添えてブロックするかを決めます。ブロックは通常のツール結果として返るため、エージェントはブロックされた操作を使わずにタスクを続行できます 判定は表記ではなく意図に基づきます。git checkout -b feature はブランチを作成するため許可し、git checkout -- file は未コミットの変更を破棄するためブロックします。どちらも先頭の 2 語は同じです。 連携が転送するツール操作にも同じ検査がかかり、SSH キー、.env ファイル、クラウド資格情報ストア、コーディング CLI のトークンといった資格情報ファイルを保護します。CC Safety Net は、エージェントがファイルにアクセスする前に、一致する転送済みの読み取りと書き込みをブロックします。ツールの対象範囲は連携ごとに異なります。連携の対象境界シークレット保護リファレンスを参照してください。 連携方式はエージェントごとに異なります。CC Safety Net を短命な subprocess として実行するエージェントもあれば、プロセス内に読み込むエージェントもあります。インストーラーは、使用するエージェントに合う連携を設定します。1 回のツール呼び出しのライフサイクルは、仕組みを参照してください。

置き換えないもの

CC Safety Net は、エージェントの権限ルールやネイティブサンドボックスを補完します。置き換えるものではありません。 deny ルールでは、ユーザーが禁止する操作を指定できます。サンドボックスは、OS レベルでファイルシステムとネットワークを制限します。CC Safety Net は、サンドボックスがプロジェクト内では許可する、既知の破壊的な Git 操作とファイルシステム操作を防ぎます。これらのレイヤーは組み合わせてください。保護レイヤーの比較を参照してください。 CC Safety Net だけですべてを保護できるわけではありません。静的な実行前ポリシーゲートのため、任意のバイナリの内部は検査できず、インストール済みの連携を迂回するコマンドも保護できません。使用する前に、既知の制限を確認してください。

はじめる

インストールページでエージェントを選び、クイックスタートで保護が有効であることを確認してください。
最終更新日 2026年9月3日