Gateway
セキュリティ監査チェック
openclaw security audit は、checkId をキーとする構造化された検出結果を出力します。このページは、それらの ID のリファレンスカタログです。概要レベルの脅威モデルと堅牢化のガイダンスについては、セキュリティを参照してください。
一部のチェックは openclaw security audit --deep を使用した場合にのみ実行されます。対象は、Plugin/Skill コードのスキャン(plugins.code_safety*、skills.code_safety*)と、稼働中の Gateway に対するプローブチェック(gateway.probe_*)です。この表にあるその他すべてのチェックは、通常の openclaw security audit で実行されます。
warn/critical のような重大度は、設定に応じて同じ checkId がいずれかのレベルで出力される可能性があることを意味します(たとえば、Gateway がリモートに公開されているかどうかによって変わります)。実際のデプロイで目にする可能性が特に高い、重要度の高い値は次のとおりです(網羅的な一覧ではありません)。
checkId |
重大度 | 重要である理由 | 主な修正キー/パス | 自動修正 |
|---|---|---|---|---|
fs.state_dir.perms_world_writable |
致命的 | 他のユーザー/プロセスが OpenClaw の状態全体を変更できる | ~/.openclaw のファイルシステム権限 |
はい |
fs.state_dir.perms_group_writable |
警告 | グループユーザーが OpenClaw の状態全体を変更できる | ~/.openclaw のファイルシステム権限 |
はい |
fs.state_dir.perms_readable |
警告 | 状態ディレクトリを他者が読み取れる | ~/.openclaw のファイルシステム権限 |
はい |
fs.state_dir.symlink |
警告 | 状態ディレクトリの参照先が別の信頼境界になる | 状態ディレクトリのファイルシステム構成 | いいえ |
fs.config.perms_writable |
致命的 | 他者が認証/ツールポリシー/設定を変更できる | ~/.openclaw/openclaw.json のファイルシステム権限 |
はい |
fs.config.symlink |
警告 | シンボリックリンクされた設定ファイルへの書き込みはサポートされず、別の信頼境界が追加される | 通常の設定ファイルに置き換えるか、OPENCLAW_CONFIG_PATH で実ファイルを指定する |
いいえ |
fs.config.perms_group_readable |
警告 | グループユーザーが設定内のトークン/設定値を読み取れる | 設定ファイルのファイルシステム権限 | はい |
fs.config.perms_world_readable |
致命的 | 設定からトークン/設定値が漏えいする可能性がある | 設定ファイルのファイルシステム権限 | はい |
fs.config_include.perms_writable |
致命的 | 設定インクルードファイルを他者が変更できる | openclaw.json から参照されるインクルードファイルの権限 |
はい |
fs.config_include.perms_group_readable |
警告 | グループユーザーがインクルードされたシークレット/設定値を読み取れる | openclaw.json から参照されるインクルードファイルの権限 |
はい |
fs.config_include.perms_world_readable |
致命的 | インクルードされたシークレット/設定値をすべてのユーザーが読み取れる | openclaw.json から参照されるインクルードファイルの権限 |
はい |
fs.auth_profiles.perms_writable |
致命的 | 他者が保存済みのモデル認証情報を注入または置換できる | agents/<agentId>/agent/auth-profiles.json の権限 |
はい |
fs.auth_profiles.perms_readable |
警告 | 他者が API キーと OAuth トークンを読み取れる | agents/<agentId>/agent/auth-profiles.json の権限 |
はい |
fs.credentials_dir.perms_writable |
致命的 | 他者がチャネルのペアリング/認証情報の状態を変更できる | ~/.openclaw/credentials のファイルシステム権限 |
はい |
fs.credentials_dir.perms_readable |
警告 | 他者がチャネルの認証情報の状態を読み取れる | ~/.openclaw/credentials のファイルシステム権限 |
はい |
fs.sessions_store.perms_readable |
警告 | 他者がセッションの記録/メタデータを読み取れる | セッションストアの権限 | はい |
fs.log_file.perms_readable |
警告 | 他者が編集済みでも依然として機密性のあるログを読み取れる | Gateway ログファイルの権限 | はい |
fs.synced_dir |
警告 | iCloud/Dropbox/Drive 内の状態/設定により、トークン/記録が漏えいする範囲が広がる | 設定/状態を同期フォルダー外へ移動する | いいえ |
gateway.bind_no_auth |
致命的 | 共有シークレットなしでリモートにバインドする | gateway.bind, gateway.auth.* |
いいえ |
gateway.loopback_no_auth |
致命的 | リバースプロキシされたループバックが未認証になる可能性がある | gateway.auth.*、プロキシ設定 |
いいえ |
gateway.trusted_proxies_missing |
警告 | リバースプロキシのヘッダーが存在するが信頼されていない | gateway.trustedProxies |
いいえ |
gateway.http.no_auth |
警告/致命的 | auth.mode="none" で Gateway HTTP API にアクセスできる |
gateway.auth.mode, gateway.http.endpoints.*, plugins.entries.admin-http-rpc |
いいえ |
gateway.http.session_key_override_enabled |
情報 | HTTP API の呼び出し元が sessionKey を上書きできる |
gateway.http.allowSessionKeyOverride |
いいえ |
gateway.tools_invoke_http.dangerous_allow |
警告/致命的 | 所有者/管理者の呼び出し元に対し、HTTP API 経由で危険なツールを再び有効にする | gateway.tools.allow |
いいえ |
gateway.nodes.allow_commands_dangerous |
警告/致命的 | 影響の大きい Node コマンド(デスクトップ入力/カメラ/画面/連絡先/カレンダー/SMS)を有効にする | gateway.nodes.allowCommands |
いいえ |
gateway.nodes.deny_commands_ineffective |
警告 | パターン形式の拒否エントリはシェルテキストやグループに一致しない | gateway.nodes.denyCommands |
いいえ |
gateway.tailscale_funnel |
致命的 | 公開インターネットへの露出 | gateway.tailscale.mode |
いいえ |
gateway.tailscale_serve |
情報 | Serve により Tailnet への公開が有効になっている | gateway.tailscale.mode |
いいえ |
gateway.control_ui.allowed_origins_required |
致命的 | 明示的なブラウザーオリジン許可リストなしで、ループバック以外から Control UI にアクセスできる | gateway.controlUi.allowedOrigins |
いいえ |
gateway.control_ui.allowed_origins_wildcard |
警告/致命的 | allowedOrigins=["*"] によりブラウザーオリジンの許可リストが無効になる |
gateway.controlUi.allowedOrigins |
いいえ |
gateway.control_ui.host_header_origin_fallback |
警告/致命的 | Host ヘッダーによるオリジンのフォールバックを有効にする(DNS リバインディング対策が弱体化する) | gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback |
いいえ |
gateway.control_ui.insecure_auth |
警告 | 安全でない認証の互換性切り替えが有効になっている | gateway.controlUi.allowInsecureAuth |
いいえ |
gateway.control_ui.device_auth_disabled |
致命的 | デバイスのアイデンティティ確認を無効にする | gateway.controlUi.dangerouslyDisableDeviceAuth |
いいえ |
gateway.real_ip_fallback_enabled |
警告/致命的 | X-Real-IP フォールバックを信頼すると、プロキシの誤設定により送信元 IP の偽装が可能になる |
gateway.allowRealIpFallback, gateway.trustedProxies |
いいえ |
gateway.token_too_short |
警告 | 短い共有トークンは総当たり攻撃で突破されやすい | gateway.auth.token |
いいえ |
gateway.auth_no_rate_limit |
警告 | レート制限なしで認証を公開すると総当たり攻撃のリスクが高まる | gateway.auth.rateLimit |
いいえ |
gateway.trusted_proxy_auth |
致命的 | プロキシのアイデンティティが認証境界になる | gateway.auth.mode="trusted-proxy" |
いいえ |
gateway.trusted_proxy_no_proxies |
致命的 | 信頼済みプロキシの IP を指定しない信頼済みプロキシ認証は安全ではない | gateway.trustedProxies |
いいえ |
gateway.trusted_proxy_no_user_header |
critical | 信頼済みプロキシ認証ではユーザー ID を安全に解決できない | gateway.auth.trustedProxy.userHeader |
いいえ |
gateway.trusted_proxy_no_allowlist |
warn | 信頼済みプロキシ認証が、認証済みのすべての上流ユーザーを受け入れる | gateway.auth.trustedProxy.allowUsers |
いいえ |
gateway.trusted_proxy_allow_loopback |
warn | 信頼済みプロキシ認証が、明示的に許可されたループバックプロキシ送信元を受け入れる | gateway.auth.trustedProxy.allowLoopback |
いいえ |
gateway.probe_auth_secretref_unavailable |
warn | このコマンド経路では、詳細プローブが認証用 SecretRef を解決できなかった | 詳細プローブの認証ソース / SecretRef の可用性 | いいえ |
gateway.probe_failed |
warn | 稼働中の Gateway のプローブに失敗した(--deep のみ) |
Gateway の到達可能性 / 認証 | いいえ |
discovery.mdns_full_mode |
warn/critical | mDNS フルモードはローカルネットワーク上で cliPath/sshPort メタデータを通知する |
discovery.mdns.mode, gateway.bind |
いいえ |
config.insecure_or_dangerous_flags |
warn | 安全でない、または危険なデバッグフラグが 1 つ有効になっている | 検出結果の詳細に記載されたキー | いいえ |
security.audit.suppressions.active |
info | 監査出力には抑制が設定されており、フィルタリングされる可能性がある | security.audit.suppressions |
いいえ |
config.secrets.gateway_password_in_config |
warn | Gateway のパスワードが設定に直接保存されている | gateway.auth.password |
いいえ |
config.secrets.hooks_token_in_config |
warn | フックの Bearer トークンが設定に直接保存されている | hooks.token |
いいえ |
hooks.token_reuse_gateway_token |
critical | フックの受信トークンによって Gateway 認証も解除される | hooks.token, gateway.auth.token, gateway.auth.password |
いいえ |
hooks.token_too_short |
warn | フックの受信に対する総当たり攻撃が容易になる | hooks.token |
いいえ |
hooks.default_session_key_unset |
warn | フックエージェントの実行が、リクエストごとに生成されるセッションへ分散する | hooks.defaultSessionKey |
いいえ |
hooks.allowed_agent_ids_unrestricted |
warn/critical | 認証済みのフック呼び出し元が、設定済みの任意のエージェントへルーティングできる | hooks.allowedAgentIds |
いいえ |
hooks.request_session_key_enabled |
warn/critical | 外部の呼び出し元が sessionKey を選択できる | hooks.allowRequestSessionKey |
いいえ |
hooks.request_session_key_prefixes_missing |
warn/critical | 外部セッションキーの形式に制限がない | hooks.allowedSessionKeyPrefixes |
いいえ |
hooks.path_root |
critical | フックのパスが / であるため、受信が衝突または誤ルーティングされやすい |
hooks.path |
いいえ |
hooks.installs_unpinned_npm_specs |
warn | フックのインストール記録が、不変の npm 仕様に固定されていない | フックのインストールメタデータ | いいえ |
hooks.installs_missing_integrity |
warn | フックのインストール記録に整合性メタデータがない | フックのインストールメタデータ | いいえ |
hooks.installs_version_drift |
warn | フックのインストール記録が、インストール済みパッケージと一致していない | フックのインストールメタデータ | いいえ |
logging.redact_off |
warn | 機密値がログ / ステータスに漏洩する | logging.redactSensitive |
はい |
browser.control_invalid_config |
warn | ブラウザ制御の設定が実行前の時点で無効である | browser.* |
いいえ |
browser.control_no_auth |
critical | ブラウザ制御がトークン / パスワード認証なしで公開されている | gateway.auth.* |
いいえ |
browser.remote_cdp_http |
warn | 平文 HTTP 経由のリモート CDP には通信の暗号化がない | ブラウザプロファイルの cdpUrl |
いいえ |
browser.remote_cdp_private_host |
warn | リモート CDP がプライベート / 内部ホストを対象としている | ブラウザプロファイルの cdpUrl、browser.ssrfPolicy.* |
いいえ |
sandbox.docker_config_mode_off |
warn | サンドボックスの Docker 設定は存在するが無効である | agents.*.sandbox.mode |
いいえ |
sandbox.bind_mount_non_absolute |
warn | 相対バインドマウントは予測不能なパスに解決される可能性がある | agents.*.sandbox.docker.binds[] |
いいえ |
sandbox.dangerous_bind_mount |
critical | サンドボックスのバインドマウントが、ブロック対象のシステム、認証情報、または Docker ソケットのパスを参照している | agents.*.sandbox.docker.binds[] |
いいえ |
sandbox.dangerous_network_mode |
critical | サンドボックスの Docker ネットワークが host または container:* 名前空間参加モードを使用している |
agents.*.sandbox.docker.network |
いいえ |
sandbox.dangerous_seccomp_profile |
critical | サンドボックスの seccomp プロファイルがコンテナの分離を弱めている | agents.*.sandbox.docker.securityOpt |
いいえ |
sandbox.dangerous_apparmor_profile |
critical | サンドボックスの AppArmor プロファイルがコンテナの分離を弱めている | agents.*.sandbox.docker.securityOpt |
いいえ |
sandbox.browser_cdp_bridge_unrestricted |
warn | サンドボックスのブラウザブリッジが送信元範囲の制限なしで公開されている | sandbox.browser.cdpSourceRange |
いいえ |
sandbox.browser_container.non_loopback_publish |
critical | 既存のブラウザコンテナが、ループバック以外のインターフェースで CDP を公開している | ブラウザサンドボックスコンテナの公開設定 | いいえ |
sandbox.browser_container.hash_label_missing |
warn | 既存のブラウザコンテナは、現在の設定ハッシュラベルが導入される前に作成されている | openclaw sandbox recreate --browser --all |
いいえ |
sandbox.browser_container.hash_epoch_stale |
warn | 既存のブラウザコンテナは、現在のブラウザ設定エポックより前に作成されている | openclaw sandbox recreate --browser --all |
いいえ |
sandbox.browser_container.docker_probe_timeout |
warn | ブラウザコンテナに対する Docker ラベルのプローブがタイムアウトした | Docker デーモンの到達可能性 | いいえ |
tools.exec.host_sandbox_no_sandbox_defaults |
warn | サンドボックスが無効な場合、exec host=sandbox はフェイルクローズする |
tools.exec.host, agents.defaults.sandbox.mode |
いいえ |
tools.exec.host_sandbox_no_sandbox_agents |
warn | サンドボックスが無効な場合、エージェント単位の exec host=sandbox はフェイルクローズする |
agents.list[].tools.exec.host, agents.list[].sandbox.mode |
いいえ |
tools.exec.security_full_configured |
warn/critical | ホストでのコマンド実行が security="full" で動作している |
tools.exec.security, agents.list[].tools.exec.security |
いいえ |
tools.exec.agent_skill_mcp_boundary_drift |
warn | エージェントのスキル許可リストが存在する一方で、ホストでのコマンド実行から MCP クライアント / レジストリに到達できる | agents.list[].tools.exec.*、サンドボックス / OS の分離、MCP サーバーの認証情報 |
いいえ |
tools.exec.fs_tools_disabled_but_exec_enabled |
警告 | ファイルシステムツールのポリシーでは、シェル実行は読み取り専用にならない | tools.deny, agents.list[].tools.deny, agents.*.sandbox.workspaceAccess |
いいえ |
tools.exec.auto_allow_skills_enabled |
警告 | 実行承認では Skills のバイナリが暗黙的に信頼される | ホストの承認ファイル | いいえ |
tools.exec.allowlist_interpreter_without_strict_inline_eval |
警告 | インタープリターの許可リストでは、再承認を強制せずにインライン評価が許可される | tools.exec.strictInlineEval, agents.list[].tools.exec.strictInlineEval, 実行承認の許可リスト |
いいえ |
tools.exec.safe_bins_interpreter_unprofiled |
警告 | 明示的なプロファイルなしで safeBins に含まれるインタープリター/ランタイムのバイナリは、実行リスクを拡大する |
tools.exec.safeBins, tools.exec.safeBinProfiles, agents.list[].tools.exec.* |
いいえ |
tools.exec.safe_bins_broad_behavior |
警告 | safeBins 内の動作範囲が広いツールは、低リスクの標準入力フィルター信頼モデルを弱める |
tools.exec.safeBins, agents.list[].tools.exec.safeBins |
いいえ |
tools.exec.safe_bin_trusted_dirs_risky |
警告 | safeBinTrustedDirs に変更可能または危険なディレクトリが含まれている |
tools.exec.safeBinTrustedDirs, agents.list[].tools.exec.safeBinTrustedDirs |
いいえ |
tools.elevated.allowFrom.<provider>.wildcard |
重大 | tools.elevated.allowFrom.<provider> に "*" が含まれ、すべての送信者を承認している |
tools.elevated.allowFrom.<provider> |
いいえ |
tools.elevated.allowFrom.<provider>.large |
警告 | <provider> の昇格許可リストに25件を超えるエントリがある |
tools.elevated.allowFrom.<provider> |
いいえ |
agents.claude_cli.permission_mode_overridden_by_yolo |
警告 | OpenClaw の実行が完全に無人であるため、Claude CLI の --permission-mode は無視される |
tools.exec.security, tools.exec.ask, cliBackends.claude-cli の引数 |
いいえ |
skills.workspace.symlink_escape |
警告 | ワークスペースの skills/**/SKILL.md がワークスペースルート外に解決される(シンボリックリンクチェーンのずれ) |
ワークスペースの skills/** ファイルシステム状態 |
いいえ |
skills.workspace.scan_truncated |
警告 | ワークスペースの Skills スキャンが完了前にディレクトリ訪問上限に達した | ワークスペースの skills/ ディレクトリツリーを平坦化/簡素化する |
いいえ |
plugins.extensions_no_allowlist |
警告 | Plugin が明示的な Plugin 許可リストなしでインストールされている | plugins.allowlist |
いいえ |
plugins.allow_phantom_entries |
警告 | plugins.allow に、対応するインストール済み Plugin がない ID が記載されている |
plugins.allow |
いいえ |
plugins.installs_unpinned_npm_specs |
警告 | Plugin インデックスのレコードが不変の npm 指定に固定されていない | Plugin のインストールメタデータ | いいえ |
plugins.installs_missing_integrity |
警告 | Plugin インデックスのレコードに整合性メタデータがない | Plugin のインストールメタデータ | いいえ |
plugins.installs_version_drift |
警告 | Plugin インデックスのレコードがインストール済みパッケージと一致していない | Plugin のインストールメタデータ | いいえ |
plugins.code_safety |
警告/重大 | Plugin コードスキャンで疑わしい、または危険なパターンが検出された(--deep のみ) |
Plugin コード/インストール元 | いいえ |
plugins.code_safety.entry_path |
警告 | Plugin のエントリパスが非表示の場所または node_modules 内を指している |
Plugin マニフェストの entry |
いいえ |
plugins.code_safety.entry_escape |
重大 | Plugin のエントリが Plugin ディレクトリ外を参照している | Plugin マニフェストの entry |
いいえ |
plugins.code_safety.manifest_parse_error |
警告 | コード安全性スキャン中に Plugin マニフェストを解析できなかった | Plugin マニフェストファイル | いいえ |
plugins.code_safety.scan_failed |
警告 | Plugin コードスキャンを完了できなかった(--deep のみ) |
Plugin パス/スキャン環境 | いいえ |
plugins.<pluginId>.security_audit_failed |
警告 | Plugin が所有するセキュリティ監査コレクターでエラーが発生した | その Plugin のセキュリティ監査コレクター | いいえ |
skills.code_safety |
警告/重大 | Skills インストーラーのメタデータ/コードに疑わしい、または危険なパターンが含まれている(--deep のみ) |
Skills のインストール元 | いいえ |
skills.code_safety.scan_failed |
警告 | Skills コードスキャンを完了できなかった(--deep のみ) |
Skills のスキャン環境 | いいえ |
security.exposure.open_channels_with_exec |
警告/重大 | 共有/公開ルームから実行機能が有効なエージェントにアクセスできる | channels.*.dmPolicy, channels.*.groupPolicy, tools.exec.*, agents.list[].tools.exec.* |
いいえ |
security.exposure.open_groups_with_elevated |
重大 | オープンな DM/グループと昇格ツールの組み合わせにより、影響の大きいプロンプトインジェクション経路が生じる | 最上位またはネストされた DM ポリシーパス、アカウントの上書き、channels.*.groupPolicy |
いいえ |
security.exposure.open_groups_with_runtime_or_fs |
重大/警告 | オープンな DM/グループから、サンドボックス/ワークスペースの保護なしでコマンド/ファイルツールにアクセスできる | DM/グループポリシーのパス、tools.profile/deny、tools.fs.workspaceOnly、agents.*.sandbox.mode |
いいえ |
security.exposure.open_groups_with_control_plane_tools |
重大 | オープンな DM/グループから Gateway/Cron のコントロールプレーンツールにアクセスできる | DM/グループポリシーのパス、tools.allow、tools.alsoAllow、tools.profile、gateway、cron |
いいえ |
security.trust_model.multi_user_heuristic |
警告 | Gateway の信頼モデルが個人アシスタント向けである一方、設定は複数ユーザー向けに見える | 信頼境界を分離する、または共有ユーザー向けの堅牢化(sandbox.mode、ツール拒否/ワークスペースのスコープ設定) |
いいえ |
tools.profile_minimal_overridden |
警告 | エージェントの上書きがグローバルな最小プロファイルを迂回している | agents.list[].tools.profile |
いいえ |
plugins.tools_reachable_permissive_policy |
警告 | 許容的なコンテキストから拡張ツールにアクセスできる | tools.profile + ツールの許可/拒否 |
いいえ |
models.legacy |
警告 | レガシーモデルファミリーがまだ設定されている | モデル選択 | いいえ |
models.weak_tier |
警告 | 設定済みモデルが現在の推奨階層を下回っている | モデル選択 | いいえ |
models.small_params |
重大/情報 | 小規模モデルと安全でないツールサーフェスの組み合わせにより、インジェクションリスクが高まる | モデル選択 + サンドボックス/ツールポリシー | いいえ |
channels.<provider>.dm.open |
重大 | <provider> の DM ポリシーが "open" であり、誰でもボットに DM を送信できる |
channels.<provider>.dmPolicy, .allowFrom |
いいえ |
channels.<provider>.dm.open_invalid |
警告 | allowFrom に "*" がないのに dmPolicy="open" となっており、整合していない |
channels.<provider>.allowFrom |
いいえ |
channels.<provider>.dm.scope_main_multiuser |
警告 | 複数の DM 送信者が現在メインセッションを共有している | session.dmScope |
いいえ |
channels.<provider>.allowFrom.dangerous_name_matching_enabled |
情報 | dangerouslyAllowNameMatching により、変更可能な名前/メール/タグによる送信者照合が再び有効になっている |
dangerouslyAllowNameMatching を無効化し、安定した送信者 ID を使用する |
いいえ |
channels.<provider>.account.read_only_resolution |
警告 | チャネルアカウントを監査用に完全には解決できなかった(シークレット/Gateway の不足) | 参照されるシークレットが解決可能であることを確認するか、稼働中の Gateway スナップショットに対して実行する | いいえ |
channels.<provider>.warning.<n> |
情報/警告/重大 | 自由形式の Plugin テキストから分類された、プロバイダー固有のセキュリティ警告 | 検出事項の詳細を参照 | いいえ |
summary.attack_surface |
情報 | 認証、チャネル、ツール、公開範囲の態勢を集約した概要 | 複数のキー(検出結果の詳細を参照) | いいえ |
channels.<provider>.* と tools.elevated.allowFrom.<provider>.* の checkId は、設定されたチャンネル/プロバイダーごとに生成されるため、実際の出力では <provider> はリテラル文字列ではなく、実在するチャンネル ID(例: telegram、discord)になります。
関連項目
Was this useful?