OpenClaw セキュリティベストプラクティス
公式設定ガイド:標準設定を適用してOpenClawインスタンスを強化し、セキュリティリスクを防止する。
1はじめに
OpenClawは完全自律型の実行能力を備えたAIエージェントフレームワークであり、AIがコンピュータを直接操作できるように設計されています。しかし、この強力な能力には高いセキュリティリスクが伴います。セキュリティアーキテクチャのドキュメントによれば、エージェントはデフォルトで実行ユーザーと同じシステム権限を保持します。つまり、制限がない場合、AIは任意のシェルコマンドの実行、機密ファイルの読み書き、さらにはシステム設定の変更まで行うことができてしまいます。
これらのリスクを軽減するためには、「最小権限の原則」および「多層防御戦略」を厳守しなければなりません。最小権限の原則では、特定のタスクを完了するために必要な最小限のツールとファイルアクセスのみをAIに許可することを求めています。多層防御戦略では、サンドボックスによる隔離、ツールのホワイトリスト化、ネットワーク境界の構築など、複数のレベルで防御を構築し、ある層が突破されてもシステム全体の安全性が保たれるようにします。本ドキュメントは、管理者が標準設定を通じてOpenClawインスタンスを要塞化(ハードニング)するための公式ガイドを提供することを目的としています。
2Dockerサンドボックスの有効化と設定
OpenClawの核となるセキュリティメカニズムは、Dockerベースのサンドボックス隔離です。本番環境では、高リスクなエージェントタスクをホスト上で直接実行すべきではありません。Dockerデプロイメントガイドによれば、OpenClawは「ホストゲートウェイ + Dockerツール」に分離されたアーキテクチャを採用しています。ゲートウェイがメッセージとロジックを処理し、実際のツール実行(コード実行、ファイル操作など)は隔離されたDockerコンテナ内に封じ込められます。
非メインセッション(WhatsApp/Telegram経由の外部ユーザーなど)に対してのみサンドボックスを有効にします。ローカルCLIでのメインユーザー(オーナー)による操作は、ホスト上で直接実行されます。
メインユーザーを含むすべてのセッションをDockerコンテナ内で実行させます。これは、セキュリティ強化ガイドが強く推奨する設定です。
2.2 ワークスペースへのアクセス
workspaceAccess パラメータは、コンテナからホストのミドルディレクトリへのアクセス権限を制御します。
- rw (Read-Write): デフォルト。AIによるワークスペースファイルの変更を許可します。開発シナリオに適していますが、データの改ざんに注意が必要です。
- ro (Read-Only): 読み取り専用。コードレビューや分析タスクに適しており、データベースの意図しない削除などを効果的に防止します。
- none: ホストディレクトリを一切マウントしません。永続性を必要としない純粋なロジック計算や一時的なタスクに適しています。
3ツール権限管理戦略
サンドボックスが環境を隔離するのに対し、ツール権限管理は「AIが何を実行できるか」を制御します。OpenClawは強力な tools.allow および tools.deny 設定項目を提供しています。公式ドキュメントによると、システムには group:runtime (exec, bash等) や group:fs (read, write等) といった高リスクなツールグループが組み込まれています。
tools.deny は常に tools.allow よりも優先されます。ツールが許可リストに含まれていても、拒否リストにも含まれている場合は強制的に無効化されます。| ツールグループ / ツール | リスクレベル | 推奨 (デフォルト安全設定) | 説明 |
|---|---|---|---|
| group:runtime (exec, bash) | 極めて高い | deny (拒否) | 任意のシェルコマンド実行を許可します。デフォルトでは無効にし、管理されたサンドボックス内でのみ必要に応じて有効にするべきです。 |
| group:fs (write, edit) | 高い | allow (サンドボックス併用) | ファイル書き込み権限は、Dockerコンテナ内の特定の作業ディレクトリに制限されるべきです。 |
| group:browser | 中 | allow (許可) | ブラウザ自動化。主なリスクは、悪意のあるサイトへのアクセスやCookieの漏洩です。 |
| web_search | 低い | allow (許可) | 公開情報の取得のみ。通常は安全です。 |
設定例 (openclaw.json):
{
"tools": {
"deny": ["group:runtime", "sys_shutdown"],
"allow": ["group:fs", "group:browser", "web_search"]
}
}4ネットワークと認証の強化
ネットワークレベルの設定は、不正アクセスに対する第一の防衛線です。OpenClaw GatewayはデフォルトでHTTPポートをリッスンします。不適切な設定は、制御インターフェースをインターネットにさらすことになります。
ネットワークバインドとリモートアクセス
セキュリティのベストプラクティスに基づき、ゲートウェイの bind アドレスは厳格に 127.0.0.1 (ループバック) に設定されるべきです。これにより、サービスはローカルマシンからのみ可視化されます。
リモート管理が必要な場合でも、バインドアドレスを 0.0.0.0 に変更してはいけません。TailscaleやWireGuardなどのVPNソリューションの使用を推奨します。
IMチャンネルペアリングポリシー (DM Policy)
WhatsAppやTelegramなどのチャンネルでは、dmPolicy が極めて重要です。デフォルト設定がオープンになっている場合があります。
- ペアリングを強制: ポリシーを
allowlistに設定し、新規ユーザーにはワンタイムトークンによる認証を要求します。 - 監査ログ:
~/.openclaw/credentials/ディレクトリ内の承認済みユーザーを定期的に確認してください。
5監査と監視
セキュリティは一度の設定で終わるものではなく、継続的なプロセスです。OpenClawにはセキュリティ監査を支援するCLIツールが組み込まれています。
5.1 セキュリティ監査コマンドの使用
管理者は定期的に openclaw security audit コマンドを実行してください。このコマンドは以下をスキャンします:
- 暗号化されずに保存されている機密トークン
- サンドボックスモードがオフまたは non-main になっていないか
- tools.allow で高リスクツールが制限なしに有効化されていないか
5.2 定期チェックリスト
ログ確認: gateway.log を確認し、未知のIPからの接続試行や異常な exec 呼び出しがないかチェックする。
コンテナ状態: `docker ps` を使用して、サンドボックスコンテナが正常に動作し、予期しないホストディレクトリがマウントされていないか確認する。
ポリシー更新: 新しいスキルをインストールした際は、tools.deny リストを再評価する。
