openclaw security
セキュリティツール: 監査と任意の安全な修正。関連: セキュリティ。
監査モード
通常のsecurity audit は、コールドな config/ファイルシステム/読み取り専用パスに留まります。Plugin ランタイムのセキュリティコレクターは検出しないため、定期監査でインストール済みのすべての Plugin ランタイムを読み込むことはありません。--deep はベストエフォートのライブ Gateway プローブと、Plugin が所有するセキュリティ監査コレクターを追加します (明示的な内部呼び出し元も、すでに適切なランタイムスコープを持っている場合は、それらのコレクターを有効化できます)。
Gateway パスワード認証が起動時にのみ指定されている場合は、監査が hooks.token と照合できるよう、同じ値を --auth password --password <password> で渡してください。
チェック内容
DM/信頼モデル- 複数の DM 送信者がメインセッションを共有している場合に警告し、共有 inbox 向けに安全な DM モード
session.dmScope="per-channel-peer"(複数アカウントのチャネルではper-account-channel-peer) を推奨します。これは協調的な共有 inbox の堅牢化であり、相互に信頼されていないオペレーター同士の分離ではありません。その場合は別々の gateway (または別々の OS ユーザー/ホスト) で信頼境界を分けてください。 - config が共有ユーザーの ingress の可能性を示す場合 (たとえば open DM/group policy、設定済みの group target、ワイルドカード sender rule)、
security.trust_model.multi_user_heuristicを出力します。OpenClaw のデフォルトの信頼モデルはパーソナルアシスタント (1 人のオペレーター) であり、敵対的なマルチテナント分離ではありません。意図的な共有ユーザー構成では、すべてのセッションを sandbox 化し、ファイルシステムアクセスをワークスペーススコープに限定し、個人/プライベートの ID や資格情報をそのランタイムに置かないでください。 - 小規模モデル (
<=300Bパラメーター) が sandbox 化なしで、web/browser ツールを有効にして使われている場合に警告します。
hooks.token がアクティブな Gateway 共有シークレット認証値 (gateway.auth.token / OPENCLAW_GATEWAY_TOKEN、gateway.auth.password / OPENCLAW_GATEWAY_PASSWORD) を再利用していることを検出します。また、次の場合にも警告します。
hooks.tokenが短いhooks.path="/"hooks.defaultSessionKeyが未設定hooks.allowedAgentIdsが無制限- リクエストの
sessionKeyoverride が有効 hooks.allowedSessionKeyPrefixesなしで override が有効
hooks.token をローテーションするには openclaw doctor --fix を実行し、その後、外部 hook 送信元を新しい token を使うよう更新してください。
Sandbox/tools
- sandbox モードがオフの状態で sandbox Docker 設定が構成されている場合に警告します。
gateway.nodes.denyCommandsが効果のないパターン風/不明なエントリを使っている場合に警告します (マッチングは厳密な node command-name のみで、shell-text filtering ではありません)。gateway.nodes.allowCommandsが危険な node command を明示的に有効化している場合に警告します。- グローバルの
tools.profile="minimal"が agent tool profile によって override されている場合に警告します。 - write/edit ツールが無効でも、制約のある sandbox ファイルシステム境界なしで
execがまだ利用可能な場合に警告します。 - open DM または group が、sandbox/workspace guard なしで runtime/filesystem ツールを公開している場合に警告します。
- permissive な tool policy の下で、インストール済み Plugin ツールに到達できる可能性がある場合に警告します。
- sandbox browser が Docker
bridgenetwork をsandbox.browser.cdpSourceRangeなしで使っている場合に警告します。 hostやcontainer:*namespace join を含む、危険な sandbox Docker network mode を検出します。- 既存の sandbox browser Docker container に hash label が欠落/古い場合 (たとえば
openclaw.browserConfigEpochが欠落した移行前の container) に警告し、openclaw sandbox recreate --browser --allを推奨します。
gateway.allowRealIpFallback=trueを検出します (proxy の設定ミスがある場合の header spoofing risk)。discovery.mdns.mode="full"を検出します (mDNS TXT record 経由の metadata leakage)。gateway.auth.mode="none"によって、共有シークレットなしで Gateway HTTP API (/tools/invokeと有効化された任意の/v1/*endpoint) に到達可能になる場合に警告します。
- npm ベースの Plugin/hook install record が pin されていない、integrity metadata がない、または現在インストールされている package version から drift している場合に警告します。
- channel allowlist が stable ID ではなく可変の名前/email/tag に依存している場合に警告します (Discord、Slack、Google Chat、Microsoft Teams、Mattermost、IRC の該当スコープ)。
dangerous/dangerously で始まる設定は、明示的な break-glass operator override です。これらを有効にすること自体は、セキュリティ脆弱性レポートではありません。危険なパラメーターの完全な一覧は、セキュリティ の「安全でないまたは危険なフラグの要約」を参照してください。
SecretRef の動作
security audit は、対象パスについて、サポートされている SecretRef を読み取り専用モードで解決します。現在の command path で SecretRef が利用できない場合、監査はクラッシュせず続行し、代わりに secretDiagnostics を報告します。--token と --password は、その command invocation の deep-probe auth だけを override します。config や SecretRef mapping は書き換えません。
抑制
意図的な継続的 findings はsecurity.audit.suppressions で受け入れます。各 suppression は正確な checkId に一致し、大文字小文字を区別しない titleIncludes および/または detailIncludes substring で絞り込めます。
summary と findings list から削除されます。JSON 出力では監査可能性のために suppressedFindings の下に保持されます。suppressions が構成されている場合、アクティブな出力にも、監査がフィルター済みであることを読者が分かるように、抑制不能な security.audit.suppressions.active info finding が保持されます。危険な config flag は finding ごとに 1 つの flag として出力されるため、ある危険な flag を受け入れても、同じ config.insecure_or_dangerous_flags checkId を共有する他の有効な flag は隠されません。
suppressions は継続的リスクを隠せるため、agent-run shell command 経由で追加または削除するには、信頼済みローカル automation 向けに exec がすでに security="full" と ask="off" で実行されていない限り、exec approval が必要です。
JSON 出力
--fix --json では、出力に fix action と final report の両方が含まれます。
--fix が変更する内容
安全で決定的な remediation を適用します。
- 一般的な
groupPolicy="open"をgroupPolicy="allowlist"に切り替えます (サポートされる channel の account variant を含む) - WhatsApp の group policy が
allowlistに切り替わる場合、保存済みのallowFromfile が存在し、config にallowFromがまだ定義されていなければ、その list からgroupAllowFromを seed します logging.redactSensitiveを"off"から"tools"に設定します- state/config と一般的な機密ファイル (
credentials/*.json、auth-profiles.json、sessions.json、session*.jsonl) の permission を厳格化します openclaw.jsonから参照される config include file も厳格化します- POSIX host では
chmod、Windows ではicaclsreset を使用します
--fix が行わないこと:
- token/password/API key のローテーション
- tool (
gateway、cron、execなど) の無効化 - gateway bind/auth/network exposure choice の変更
- plugins/skills の削除または書き換え