コンテンツにスキップ

Claude Code 完全ガイド

Claude Code セキュリティ自動チェック設定 - 安全な全許可モード実装

この記事の対象者

  • Claude Codeの自動許可設定を使いたいが、セキュリティ面で不安を感じている中級開発者

この記事のポイント

  1. セキュリティ自動チェック機能の実装
  2. 安全な全許可モード設定の完成
  3. 危険なコマンド実行の自動ブロック

問題の核心

全許可設定は開発効率を大幅に向上させるが、悪意のあるコード実行やファイル削除のリスクがあります。適切なセキュリティチェック機能なしでは、プロダクション環境で重大なインシデントを引き起こす可能性があります。

解決方法

ステップ1: セキュリティルール設定ファイル作成

Hooksでチェックするセキュリティルールを定義します。

{
  "forbidden_commands": [
    "rm -rf", "sudo rm", "git reset --hard",
    "DROP TABLE", "DELETE FROM", "> /dev/null"
  ],
  "forbidden_paths": [
    "/etc/", "/usr/", "/var/log/",
    "~/.ssh/", "~/.aws/"
  ]
}

ステップ2: pre-execution-check Hooks設定

Claude Codeの実行前チェックを自動化します。

{
  "hooks": {
    "PreToolUse": [
      {
        "name": "Security Check Hook",
        "condition": {"tool_name": "Bash"},
        "hooks": [
          {"type": "command", "command": "python security-check.py {command}"}
        ]
      }
    ]
  }
}

ステップ3: セキュリティチェックスクリプト実装

危険なコマンドを自動検出・ブロックする検証機能を追加します。

import sys, json, re

def check_security(command):
    with open('security-rules.json', 'r') as f:
        rules = json.load(f)

    for forbidden in rules['forbidden_commands']:
        if forbidden in command:
            print(f"BLOCKED: {forbidden}")
            return False
    return True

if __name__ == "__main__":
    if not check_security(sys.argv[1]):
        sys.exit(1)

よくあるトラブルと対処法

症状原因解決策
正常コマンドがブロックルールが厳しすぎsecurity-rules.jsonの条件緩和
Hooksが動作しない権限設定不備chmod +x security-check.py実行
チェック処理が重い大量ルール判定正規表現での高速化実装
詳細設定(上級者向け・クリックで展開) ## 高度なセキュリティ設定 ### 1. ファイルアクセス監視
# inotify-toolsによるリアルタイム監視
inotifywait -m /important/files/ -e modify,delete
### 2. ログ記録とアラート
import logging
logging.basicConfig(filename='security.log', level=logging.WARNING)
logging.warning(f'Blocked command: {command}')
### 3. 緊急停止機能
{
  "emergency_stop": {
    "keyword": "EMERGENCY_STOP",
    "action": "kill_all_processes"
  }
}

次のステップ