Skip to content

原文(日本語)

サンドボックスモードで.claude/skillsディレクトリへの書き込みをブロック

原文(英語)

Blocked writes to .claude/skills directory in sandbox mode

概要

Claude Code 2.1.38では、サンドボックスモードにおいて.claude/skillsディレクトリへの書き込みが制限されるようになりました。これにより、信頼できないコードやAIが勝手にカスタムスキルを追加・変更することを防ぎ、システムのセキュリティが向上します。

基本的な使い方

サンドボックスモードでは、スキルディレクトリが自動的に保護されます。

bash
# サンドボックスモードでClaude Codeを起動
claude --sandbox

# または環境変数で設定
CLAUDE_SANDBOX=true claude

実践例

信頼できないコードのレビュー

未知のプロジェクトやコードをレビューする際に、サンドボックスモードを使用します。

bash
# サンドボックスモードでプロジェクトを開く
cd /path/to/untrusted-project
claude --sandbox

# AIがコードを分析・実行しても、
# .claude/skillsへの書き込みはブロックされる

保護される操作:

  • 新しいスキルファイルの作成
  • 既存のスキルの変更
  • スキル設定の改ざん

オープンソースプロジェクトの調査

GitHubからクローンした未検証のプロジェクトを安全に調査できます。

bash
# リポジトリのクローン
git clone https://github.com/unknown/project.git
cd project

# サンドボックスモードで安全に調査
claude --sandbox

# 以下のような操作が保護される:
# - 悪意のあるスキルの自動インストール
# - 既存スキルの置き換え
# - スキルコマンドの改ざん

CI/CD環境での使用

継続的インテグレーション環境では、デフォルトでサンドボックスモードを有効化すべきです。

yaml
# GitHub Actions の例
name: Code Review
on: [pull_request]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install Claude Code
        run: npm install -g @anthropic-ai/claude-code
      - name: Run Claude Code in Sandbox
        run: |
          export CLAUDE_SANDBOX=true
          claude "このPRをレビューしてください"
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}

ユーザー作成スクリプトの実行

ユーザーが提供したスクリプトを実行する際の安全策。

bash
# スクリプトを受け取る
cat > user_script.sh <<'EOF'
#!/bin/bash
# ユーザー提供のスクリプト
echo "Processing data..."
# ... 潜在的に危険なコード ...
EOF

# サンドボックスモードで検証
claude --sandbox "このスクリプトを分析してください"

セキュリティの詳細

保護される.claude/skillsディレクトリ

.claude/
└── skills/
    ├── custom-skill-1.md      # 書き込みブロック
    ├── custom-skill-2.md      # 書き込みブロック
    └── project-specific.md    # 書き込みブロック

ブロックされる操作

bash
# サンドボックスモード内での試行(すべてブロック)

# 新規スキルの作成
echo "# New Skill" > ~/.claude/skills/malicious.md  # ❌ ブロック

# 既存スキルの変更
sed -i 's/safe/unsafe/' ~/.claude/skills/existing.md  # ❌ ブロック

# スキルファイルの削除
rm ~/.claude/skills/important.md  # ❌ ブロック

許可される操作

bash
# 通常のファイルシステム操作は可能

# プロジェクトファイルの読み書き
echo "console.log('test')" > src/index.js  # ✓ 許可

# 一時ファイルの作成
mkdir -p tmp && echo "data" > tmp/file.txt  # ✓ 許可

# ビルド出力
npm run build  # ✓ 許可

注意点

  • サンドボックスモード専用: 通常モードでは.claude/skillsへの書き込みは制限されません
  • グローバルスキル: ユーザーのホームディレクトリのスキルも保護されます
  • プロジェクト固有スキル: プロジェクト内の.claude/skillsも同様に保護されます
  • スキルの実行: 既存のスキルの実行は可能で、書き込みのみが制限されます

サンドボックスモードの有効化方法

コマンドライン引数

bash
# 単発の実行
claude --sandbox

# インタラクティブモード
claude --sandbox --interactive

環境変数

bash
# シェル設定に追加(常時有効化)
export CLAUDE_SANDBOX=true

# または一時的に有効化
CLAUDE_SANDBOX=true claude "タスクを実行"

VS Code拡張機能

json
// settings.json
{
  "claude.sandboxMode": true
}

設定ファイル

json
// ~/.claude/config.json
{
  "sandbox": true,
  "restrictedPaths": [
    ".claude/skills"
  ]
}

解除方法

信頼できる環境でスキルを管理する必要がある場合。

bash
# サンドボックスモードを無効化
claude  # デフォルトは無効

# または明示的に無効化
claude --no-sandbox
CLAUDE_SANDBOX=false claude

関連情報