原文(日本語)
サンドボックスモードで.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