本文へスキップ
claudemods

Claude Code 安全対策 Mod:コマンドとシークレットのガード

Claude Code 安全対策 Mod は、ツールの実行前に危険なシェルコマンドをブロックし、シークレットを会話から遠ざけ、ファイルを保護します。防げることと防げないことを解説します。

Claude Code で動作中の 危険なコマンドのブロック

危険なコマンドのブロック

rm -rf /、main への force-push、DROP TABLE、curl | sh などの破壊的な Bash コマンドを実行前に拒否します。

  • トースト
  • ツール呼び出しを傍受
  • UI を変更

v2.1.291 で検証済み

Claude Code 安全対策 Mod は、Claude がこれから行おうとしていることをチェックし、危険な部分を実行前に止めます。よくある役割は、rm -rf / や main への強制プッシュのような危険なシェルコマンドのブロック、シークレットがモデルに届かないようにする秘匿、そして .env やロックファイルなどのファイルを編集から守ることです。

Claude Code 安全対策 Mod はどのように操作を横取りするのですか?

中心となるフックは tool.call です。これは Bash、Edit、Write などのツールが実行される直前に動き、Mod は next(e) で呼び出しをそのまま渡すか、{ deny: reason } で拒否するか、ツールを一切実行せずに { result } で応答するかを選べます。マッチャーを使うとフックの対象を絞り込めます(例:on('tool.call', { tool: 'Bash' }, ...))。tool.check は、tool.call と従来の PreToolUse フックが実行された後に、許可・確認・拒否を決定します。

シークレットを隠す Mod は、prompt.submit であなたが送る内容を検査・変更し、session.append で各行が保存される前にその内容を確認することが多いです。ガードはすべての呼び出しの経路上にあるため、.catch ハンドラーを登録しておくべきです。そうすればガード自体にバグがあっても、クラッシュしたり呼び出しを素通りさせたりせず、呼び出しを拒否できます。各イベントが何を返せるかはイベントリファレンスに記載されています。

インストール前に何を確認すべきですか?

すべての安全対策 Mod には ツール呼び出しを傍受が表示されます。それこそが目的だからです。確認すべきなのは、それ以外に何が表示されているかです。コマンドガードであれば、トースト用の UI を変更以外はほとんど必要ありません。プロンプトを読み取るは、シークレットフィルターなら想定どおりですが、コマンドガードでは想定外です。安全対策 Mod に ネットワークが付いている場合は、ソースをじっくり読む価値があります。

ルールの一覧も読みましょう。よいガードはすべてのパターンを文書化し、それぞれが存在する理由を説明しています。さらに、誤検知のための許可リストと、報告だけを行う警告モードを用意しています。

安全対策 Mod にできないことは何ですか?

パターンによるガードはサンドボックスではありません。どんな正規表現にも引っかからないようにコマンドを組み立てることは可能で、Mod はあなたのユーザー権限で動作します。安全対策 Mod は日常的なうっかりミスへの備えとして扱い、自分では実行しないような操作については権限確認のプロンプトをオンのままにしておきましょう。すべての Mod をオフにしたセッションが必要なときは、claude --safe-mode を使ってください。

よくある質問

Claude Code 安全対策 Mod は権限確認のプロンプトの代わりになりますか?
いいえ。パターンでよくある事故を捕まえる追加の防御層です。Claude Code 自身の権限確認プロンプトと拒否ルールはオンのままにしてください。難読化されたコマンドは、パターンマッチをすり抜けることがあります。
安全対策 Mod がコマンドをブロックすると何が起きますか?
tool.call フックが { deny: reason } を返します。コマンドは実行されず、Claude はその理由をツールの結果として受け取るので、より安全な方法を試すか、あなたに確認できます。
安全対策 Mod が壊れていると、コマンドが素通りしてしまいますか?
それは .catch ハンドラー次第です。ガードはフェイルクローズであるべきで、自身のチェックが例外を投げた場合は、実行を許すのではなく呼び出しを拒否します。「仕組み」セクションでその点を確認してください。