🔐 Claude Code・Codex用に、超爆速で超安全なサンドボックスを作る方法

📰 元記事: Qiita (Koukyosyumei)
📅 ブクマ日時: 2026-07-10 10:58 UTC
👥 はてブ数: 96 users

📖 記事の概要

コロンビア大学博士課程でAI・セキュリティを研究する Koukyosyumei 氏(Hideaki Takahashi)による、AIエージェント(Claude Code・Codex)を安全に動かすためのサンドボックス技術の解説記事です。

AIエージェントが誤ってファイル削除・機密情報送信・リソース枯渇を起こすリスクに対して、各ツールが内蔵するサンドボックス機能の仕組みと、より高性能なサンドボックス「h5i」の使い方を実践的に解説しています。

🤖 Claude Code のサンドボックス

Claude CodeはOSレベルのサンドボックス機能(Bubblewrap、socat、seccomp等)をBash Toolに対して適用可能。Read/Write/WebFetch等は適宜ユーザーに確認する permission model で安全性を担保。

設定方法(settings.json)

サンドボックス設定は sandbox block で行い、各Bash Toolに対して許可/除外コマンド、ネットワークアクセス可否、credentialの扱いを設定:

{ "sandbox": { "enabled": true, "network": { "tlsTerminate": {}, "allowedDomains": ["*.github.com", "registry.npmjs.org"] }, "credentials": { "envVars": [ { "name": "GH_TOKEN", "mode": "mask", "injectHosts": ["api.github.com"] }, { "name": "NPM_TOKEN", "mode": "mask" } ] } } }

また、permissions block でツールごとの allow/ask/deny ルールも定義可能:

{ "permissions": { "allow": ["Bash(npm run *)", "Bash(git commit *)", "Bash(* --version)"], "deny": ["Bash(git push *)"] } }

🟢 Codex のサンドボックス

Codexでは「何が許されるか」を決める sandbox policy と「誰に聞くか」を決める approval policy の2つを組み合わせ、全コマンドをOSレベルのサンドボックスで実行。

sandbox policy(3モード)

モード説明
read-onlyディスク全体を読み込めるが、書き込み・ネットワーク不可
workspace-writeカレントディレクトリ・/tmp等に書き込み可能
danger-full-accessより広範囲のアクセスを許可

approval policy(3選択肢)

ポリシー説明
on-requestデフォルト。モデルが必要と判断した時にユーザーに承認を求める
never権限昇格リクエストを常に拒否
granular特定リクエストの拒否など、より細かい設定が可能

🚀 h5i:より高性能なサンドボックスツール

Claude CodeやCodexは「個々のコマンドの実行可否」に注力しますが、h5iは作業環境そのものを分離します。具体的には h5i env により、OSレベルのサンドボックスで隔離された専用のGit worktreeを提供します。

特徴

  • システムコールレベルの制限・フォルダアクセス制限に加え、メモリやプロセス数のリソース制限も設定可能
  • ドメイン単位のアクセス可否、認証情報の環境ごとの分離も柔軟に設定
  • docker等の重いコンテナを使わず、システムコール監視とnamespace設定で軽量なサンドボックスを実現
  • 0.2〜3秒でサンドボックス内のシェルに入れる超爆速
  • 「監査可能なワークスペース」をスローガンに、実行されたコマンド・結果・プロンプトを全て記録

基本的な使い方

# インストール curl -fsSL https://raw.githubusercontent.com/h5i-dev/h5i/main/install.sh | sh # 初期化 h5i init h5i hook setup --write --wrap-bash # サンドボックス環境の構築 h5i env create claude-env --profile agent-claude h5i env shell claude-env # 隔離環境に入る box $ claude --dangerously-skip-permissions box $ exit # 変更の確認・提案・反映 h5i env diff claude-env # 環境内の変更を確認 h5i env propose claude-env # 変更を提案 h5i env apply claude-env # 提案された変更を元のブランチに反映

💡 重要:プロンプトインジェクション攻撃やハルシネーションでエージェントが誤作動しても、元の環境への破壊的変更や機密情報の外部流出を防げる。これが h5i の最大の価値。

📝 所感

AIエージェントを本格運用する上で、サンドボックスは不可欠なセキュリティレイヤー。Claude Code/Codexの内蔵機能の解説から、より強力な h5i の紹介まで網羅されており、非常に実践的です。特に「コマンド単位の制限」から「環境単位の分離」への進化は、プロンプトインジェクション等の未知の脅威に対する本質的な防御策として注目に値します。はてブ96usersと話題になっているのも納得の内容です。