セキュリティサンドボックスデプロイ
AI の誤操作からシステムを守る —— OpenClaw をサンドボックスに入れる
OpenClaw をサンドボックス化なぜ
AI はコードを書いたり、ファイルを変更したり、スクリプトを実行したりしてくれます。これは AI が得意な部分であり、同時に危険な部分でもあります。AI が実行してはいけないコマンドを実行した場合、その結果は大きくも小さくもなります。
サンドボックスとは:AI 用に円を引く、圏内活動のみ、圏外何も不可。例え問題起こしたい時、システムに傷付かず。
['AI が rm -rf / でシステム全体を削除(実際のケース 1 つだけじゃない)', 'AI が誤ってシステムの重要なコンフィグファイルを変更、サーバーが起動できない', 'API Key が AI 出力ログに出現、誰もが見られます', 'コンテナエスケープ、ホストマシン上の他のサービスに影響', 'AI がネットワークで機密データを送出']
['ファイルシステム読み取り専用、AI はファイルを変更できない', 'すべての Linux capabilities を削除、権限を最小に', 'CPU とメモリを制限、リソース枯渇を防止', 'ネットワーク隔離、必要な API エンドポイントのみアクセス可能', 'ログ監査、すべての操作を記録']
Docker サンドボックス構築
核心思路:読み取り専用マウント + ネットワーク禁止 + リソース制限。
# 制限の厳しいコンテナを作成
このコマンドは何をした:ファイルシステムは読み取り専用、すべての特権を削除、メモリ制限 1G、CPU 制限 1 コア、プロセス数制限 100、完全に遮断。十分厳しいだろ。
docker-compose.yml サンドボックス設定
本番環境は compose 管理推奨、設定ファイル管理で忘却回避:
version: "3.8"
AppArmor / Seccomp 強化
さらに厳しくしたい?カーネルレベルセキュリティポリシー追加:
{
"defaultAction": "SCMP_ACT_ERRNO",
"architectures": ["SCMP_ARCH_X86_64", "SCMP_ARCH_AARCH64"],
"syscalls": [
{
"names": [
"read", "write", "open", "close", "stat", "fstat",
"mmap", "mprotect", "munmap", "brk", "ioctl",
"access", "pipe", "select", "sched_yield",
"dup", "dup2", "clone", "execve", "exit",
"wait4", "kill", "getpid", "getuid", "getgid",
"socket", "connect", "sendto", "recvfrom"
],
"action": "SCMP_ACT_ALLOW"
}
]
}
この seccomp 設定は基本的なシステムコールだけを許可、mount、ptrace などの危険操作は全部ブロック。
サンドボックスデプロイ 5 ステップ
隔離コンテナ作成
--read-only・--cap-drop ALL で高度制限コンテナ作成。
読み取り専用ファイルシステム
/tmp と指定の workspace ディレクトリ以外、他の場所は書き込み禁止。
ネットワークを制限
internal network で外部ネットへの直接アクセスを禁止、API が必要ならプロキシ経由で通す。
リソース上限
CPU、メモリ、プロセス数はすべて制限を設定して、コンテナがホストマシンのリソースを使い尽くすのを防止します。
ログ監査
全コンテナ操作ログ記録、定期異常行動確認。
多層隔離保護、ファイルシステム読み取り専用、ネットワークホワイトリスト制御、リソース上限設定。AI 誤操作はコンテナ内に限定、システムに影響なし。
共有システム権限。ファイル読み書き完全可。ネットワーク無限。部デプロイ簡単。が AI 誤操作がシステム全体またはデータベース削除の可能。