Claude Codeでツール実行のたびに「パスワード漏洩リスク: 0%」「悪意あるコード実行リスク: 0%」のようなセキュリティリスクのパーセンテージを表示させるCLAUDE.mdの設定がSNSで話題になった。これに対し、セキュリティエンジニアから「それは対策ではなくお気持ち表示」という指摘が上がり、議論を呼んでいる。

話題になった「パーセンテージ表示」

@wan_line_(ワン@AIのお兄さん)氏が2026年3月9日に投稿したポストでは、CLAUDE.mdに以下のようなルールを記述することが提案されていた:

ツール実行のたびに

  • パスワードが外に漏れる可能性: ○%
  • 外部サーバーにデータが送られる可能性: ○%
  • 悪意あるコードが動く可能性: ○%
  • PCの設定が書き換わる可能性: ○%

Claude Codeで「yes連打」してしまうユーザー向けに、実行前にリスクを可視化してくれるという趣旨だ。

セキュリティ専門家の反論:「お気持ち表示」

この投稿に対し、@sudachikawaii(シンジ☁Shinji)氏が反論した:

セキュリティ屋から言うと、これは「対策」ではなく「お気持ち表示」です。LLMはコードの安全性を静的解析していないので、表示されるパーセンテージに技術的根拠がありません。

「0%」を見てyes押すのは、yes連打と同じです。

指摘のポイントは明快だ:

  1. LLMは静的解析エンジンではない — LLMが出すパーセンテージは、コードを構文解析して脆弱性を検出した結果ではなく、「それっぽい数値」を生成しているだけ
  2. 偽の安心感を与える — 「0%」という表示を見てユーザーが安心してyesを押すなら、結局yes連打と変わらない
  3. 技術的根拠がない — 実際のセキュリティリスク分析には、静的解析ツール(SAST)、依存関係チェック、ネットワーク通信の監視などが必要

Claude Codeに本当に効くセキュリティ対策

Claude Codeには、CLAUDE.mdの「お気持ちルール」よりもはるかに実効性のあるセキュリティ機能が組み込まれている。公式ドキュメントに基づき、本当にやるべき対策を整理する。

1. サンドボックスを有効にする

最も重要な対策。Bashコマンドの実行をOSレベルで隔離し、ファイルシステムやネットワークへのアクセスを制限する。

  • macOSではSeatbelt、LinuxではBubble Wrapが使用される
  • /sandbox コマンドで有効化

2. denyルールで危険なコマンドをブロック

permissions.deny に実行禁止コマンドを明示的に設定する。評価順は deny → ask → allow で、denyが最優先。

1
2
3
4
5
6
7
8
9
{
  "permissions": {
    "deny": [
      "Bash(command:rm -rf *)",
      "Bash(command:curl *)",
      "Bash(command:wget *)"
    ]
  }
}

3. 機密ファイルへのアクセスを遮断

.env やシークレットファイルへのアクセスをブロックする。

4. ネットワークアクセスをホワイトリスト方式で制限

許可するドメインだけを明示的に指定し、プロンプトインジェクションによるデータ窃取を防ぐ。

5. PreToolUseフックで独自チェック

ツール実行前にカスタムスクリプトを実行し、危険なコマンドや本番環境へのアクセスを検出・ブロックできる。

6. devcontainerで完全隔離

コンテナ内でClaude Codeを動かし、ファイアウォール付きネットワーク制御とホストからの完全隔離を実現する。

CLAUDE.mdでのルール記述は無意味なのか?

完全に無意味というわけではない。CLAUDE.mdのルールは「LLMへの指示」であり、以下のような行動制約には一定の効果がある:

  • rm -rf は絶対に実行しない」
  • .env ファイルを読み取らない」
  • 「外部URLへのデータ送信を行わない」

ただし、これらはあくまで「お願い」であり、プロンプトインジェクション等で回避される可能性がある。本質的な防御は、サンドボックスやパーミッション設定といったシステムレベルの制約で実現すべきだ。

まとめ

アプローチ実効性説明
CLAUDE.mdにリスク%表示❌ 低いLLMが出す数値に技術的根拠なし
CLAUDE.mdに行動制約ルール⚠️ 限定的プロンプトインジェクションで回避可能
サンドボックス有効化✅ 高いOSレベルでコマンド実行を隔離
deny/allowルール設定✅ 高いシステムレベルでコマンド実行を制御
PreToolUseフック✅ 高いカスタムスクリプトで独自チェック
devcontainer使用✅ 最高完全な環境隔離

「0%だから安全」ではなく、OSレベルの隔離とパーミッション管理で守る。それが Claude Code を安全に使うための正しいアプローチだ。