Gateway
安全稽核檢查
openclaw security audit 會輸出以 checkId 作為索引鍵的結構化發現項目。此
頁面是這些 ID 的參考目錄。如需高層次威脅模型
與強化指南,請參閱安全性。
以下是你最可能在實際部署中看到的高訊號 checkId 值(並非
完整清單):
checkId |
嚴重性 | 重要原因 | 主要修復鍵/路徑 | 自動修復 |
|---|---|---|---|---|
fs.state_dir.perms_world_writable |
critical | 其他使用者/處理程序可以修改完整的 OpenClaw 狀態 | ~/.openclaw 的檔案系統權限 |
是 |
fs.state_dir.perms_group_writable |
warn | 群組使用者可以修改完整的 OpenClaw 狀態 | ~/.openclaw 的檔案系統權限 |
是 |
fs.state_dir.perms_readable |
warn | 狀態目錄可被其他人讀取 | ~/.openclaw 的檔案系統權限 |
是 |
fs.state_dir.symlink |
warn | 狀態目錄目標會成為另一個信任邊界 | 狀態目錄的檔案系統配置 | 否 |
fs.config.perms_writable |
critical | 其他人可以變更驗證/工具政策/設定 | ~/.openclaw/openclaw.json 的檔案系統權限 |
是 |
fs.config.symlink |
warn | 不支援寫入符號連結設定檔,且會新增另一個信任邊界 | 改用一般設定檔,或將 OPENCLAW_CONFIG_PATH 指向實際檔案 |
否 |
fs.config.perms_group_readable |
warn | 群組使用者可以讀取設定權杖/設定值 | 設定檔的檔案系統權限 | 是 |
fs.config.perms_world_readable |
critical | 設定可能暴露權杖/設定值 | 設定檔的檔案系統權限 | 是 |
fs.config_include.perms_writable |
critical | 設定 include 檔案可被其他人修改 | openclaw.json 參照的 include 檔案權限 |
是 |
fs.config_include.perms_group_readable |
warn | 群組使用者可以讀取已 include 的祕密/設定值 | openclaw.json 參照的 include 檔案權限 |
是 |
fs.config_include.perms_world_readable |
critical | 已 include 的祕密/設定值可被所有人讀取 | openclaw.json 參照的 include 檔案權限 |
是 |
fs.auth_profiles.perms_writable |
critical | 其他人可以注入或替換已儲存的模型認證 | agents/<agentId>/agent/auth-profiles.json 權限 |
是 |
fs.auth_profiles.perms_readable |
warn | 其他人可以讀取 API 金鑰和 OAuth 權杖 | agents/<agentId>/agent/auth-profiles.json 權限 |
是 |
fs.credentials_dir.perms_writable |
critical | 其他人可以修改頻道配對/認證狀態 | ~/.openclaw/credentials 的檔案系統權限 |
是 |
fs.credentials_dir.perms_readable |
warn | 其他人可以讀取頻道認證狀態 | ~/.openclaw/credentials 的檔案系統權限 |
是 |
fs.sessions_store.perms_readable |
warn | 其他人可以讀取工作階段紀錄/中繼資料 | 工作階段儲存區權限 | 是 |
fs.log_file.perms_readable |
warn | 其他人可以讀取已遮罩但仍敏感的記錄 | Gateway 記錄檔權限 | 是 |
fs.synced_dir |
warn | iCloud/Dropbox/Drive 中的狀態/設定會擴大權杖/紀錄暴露範圍 | 將設定/狀態移出同步資料夾 | 否 |
gateway.bind_no_auth |
critical | 遠端繫結未使用共享祕密 | gateway.bind, gateway.auth.* |
否 |
gateway.loopback_no_auth |
critical | 反向代理的 loopback 可能變成未驗證狀態 | gateway.auth.*、代理設定 |
否 |
gateway.trusted_proxies_missing |
warn | 存在反向代理標頭,但未受信任 | gateway.trustedProxies |
否 |
gateway.http.no_auth |
warn/critical | Gateway HTTP API 可在 auth.mode="none" 時存取 |
gateway.auth.mode, gateway.http.endpoints.* |
否 |
gateway.http.session_key_override_enabled |
info | HTTP API 呼叫端可以覆寫 sessionKey |
gateway.http.allowSessionKeyOverride |
否 |
gateway.tools_invoke_http.dangerous_allow |
warn/critical | 重新啟用透過 HTTP API 使用危險工具 | gateway.tools.allow |
否 |
gateway.nodes.allow_commands_dangerous |
warn/critical | 啟用高影響力的 node 指令(相機/螢幕/聯絡人/行事曆/SMS) | gateway.nodes.allowCommands |
否 |
gateway.nodes.deny_commands_ineffective |
warn | 類似模式的 deny 項目不會匹配 shell 文字或群組 | gateway.nodes.denyCommands |
否 |
gateway.tailscale_funnel |
critical | 暴露於公用網際網路 | gateway.tailscale.mode |
否 |
gateway.tailscale_serve |
info | 已透過 Serve 啟用 tailnet 暴露 | gateway.tailscale.mode |
否 |
gateway.control_ui.allowed_origins_required |
critical | 非 loopback Control UI 未明確設定瀏覽器來源允許清單 | gateway.controlUi.allowedOrigins |
否 |
gateway.control_ui.allowed_origins_wildcard |
warn/critical | allowedOrigins=["*"] 會停用瀏覽器來源允許清單 |
gateway.controlUi.allowedOrigins |
否 |
gateway.control_ui.host_header_origin_fallback |
warn/critical | 啟用 Host 標頭來源 fallback(降低 DNS rebinding 強化程度) | gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback |
否 |
gateway.control_ui.insecure_auth |
warn | 已啟用不安全驗證相容性切換 | gateway.controlUi.allowInsecureAuth |
否 |
gateway.control_ui.device_auth_disabled |
critical | 停用裝置身分檢查 | gateway.controlUi.dangerouslyDisableDeviceAuth |
否 |
gateway.real_ip_fallback_enabled |
warn/critical | 信任 X-Real-IP fallback 可能因代理設定錯誤而啟用來源 IP 偽造 |
gateway.allowRealIpFallback, gateway.trustedProxies |
否 |
gateway.token_too_short |
warn | 短共享權杖較容易被暴力破解 | gateway.auth.token |
否 |
gateway.auth_no_rate_limit |
warn | 暴露的驗證未限制速率會增加暴力破解風險 | gateway.auth.rateLimit |
否 |
gateway.trusted_proxy_auth |
critical | 代理身分現在成為驗證邊界 | gateway.auth.mode="trusted-proxy" |
否 |
gateway.trusted_proxy_no_proxies |
critical | 未設定受信任代理 IP 的 trusted-proxy 驗證並不安全 | gateway.trustedProxies |
否 |
gateway.trusted_proxy_no_user_header |
critical | trusted-proxy 驗證無法安全解析使用者身分 | gateway.auth.trustedProxy.userHeader |
否 |
gateway.trusted_proxy_no_allowlist |
warn | trusted-proxy 驗證會接受任何已驗證的上游使用者 | gateway.auth.trustedProxy.allowUsers |
否 |
gateway.trusted_proxy_allow_loopback |
警告 | 受信任代理驗證接受明確允許的回送代理來源 | gateway.auth.trustedProxy.allowLoopback |
否 |
gateway.probe_auth_secretref_unavailable |
警告 | 深度探測無法在此命令路徑中解析驗證 SecretRefs | 深度探測驗證來源 / SecretRef 可用性 | 否 |
gateway.probe_failed |
警告/重大 | 即時 Gateway 探測失敗 | Gateway 可達性/驗證 | 否 |
discovery.mdns_full_mode |
警告/重大 | mDNS 完整模式會在區域網路上公告 cliPath/sshPort 中繼資料 |
discovery.mdns.mode, gateway.bind |
否 |
config.insecure_or_dangerous_flags |
警告 | 已啟用任何不安全/危險的偵錯旗標 | 多個鍵(請參閱發現項目詳細資料) | 否 |
config.secrets.gateway_password_in_config |
警告 | Gateway 密碼直接儲存在設定中 | gateway.auth.password |
否 |
config.secrets.hooks_token_in_config |
警告 | Hook bearer token 直接儲存在設定中 | hooks.token |
否 |
hooks.token_reuse_gateway_token |
重大 | Hook 入口權杖也會解鎖 Gateway 驗證 | hooks.token, gateway.auth.token |
否 |
hooks.token_too_short |
警告 | Hook 入口更容易遭受暴力破解 | hooks.token |
否 |
hooks.default_session_key_unset |
警告 | Hook agent 執行會分散到產生的每個請求工作階段 | hooks.defaultSessionKey |
否 |
hooks.allowed_agent_ids_unrestricted |
警告/重大 | 已驗證的 Hook 呼叫者可路由到任何已設定的 agent | hooks.allowedAgentIds |
否 |
hooks.request_session_key_enabled |
警告/重大 | 外部呼叫者可以選擇 sessionKey | hooks.allowRequestSessionKey |
否 |
hooks.request_session_key_prefixes_missing |
警告/重大 | 外部工作階段金鑰形狀沒有界限 | hooks.allowedSessionKeyPrefixes |
否 |
hooks.path_root |
重大 | Hook 路徑是 /,使入口更容易衝突或錯誤路由 |
hooks.path |
否 |
hooks.installs_unpinned_npm_specs |
警告 | Hook 安裝記錄未釘選到不可變的 npm 規格 | Hook 安裝中繼資料 | 否 |
hooks.installs_missing_integrity |
警告 | Hook 安裝記錄缺少完整性中繼資料 | Hook 安裝中繼資料 | 否 |
hooks.installs_version_drift |
警告 | Hook 安裝記錄與已安裝套件發生偏移 | Hook 安裝中繼資料 | 否 |
logging.redact_off |
警告 | 敏感值洩漏到記錄/狀態 | logging.redactSensitive |
是 |
browser.control_invalid_config |
警告 | 瀏覽器控制設定在執行階段前無效 | browser.* |
否 |
browser.control_no_auth |
重大 | 瀏覽器控制在沒有權杖/密碼驗證的情況下暴露 | gateway.auth.* |
否 |
browser.remote_cdp_http |
警告 | 透過純 HTTP 的遠端 CDP 缺少傳輸加密 | 瀏覽器設定檔 cdpUrl |
否 |
browser.remote_cdp_private_host |
警告 | 遠端 CDP 指向私有/內部主機 | 瀏覽器設定檔 cdpUrl, browser.ssrfPolicy.* |
否 |
sandbox.docker_config_mode_off |
警告 | Sandbox Docker 設定存在但未啟用 | agents.*.sandbox.mode |
否 |
sandbox.bind_mount_non_absolute |
警告 | 相對 bind mount 可能會解析到不可預測的位置 | agents.*.sandbox.docker.binds[] |
否 |
sandbox.dangerous_bind_mount |
重大 | Sandbox bind mount 目標是被封鎖的系統、憑證或 Docker socket 路徑 | agents.*.sandbox.docker.binds[] |
否 |
sandbox.dangerous_network_mode |
重大 | Sandbox Docker 網路使用 host 或 container:* 命名空間加入模式 |
agents.*.sandbox.docker.network |
否 |
sandbox.dangerous_seccomp_profile |
重大 | Sandbox seccomp 設定檔削弱容器隔離 | agents.*.sandbox.docker.securityOpt |
否 |
sandbox.dangerous_apparmor_profile |
重大 | Sandbox AppArmor 設定檔削弱容器隔離 | agents.*.sandbox.docker.securityOpt |
否 |
sandbox.browser_cdp_bridge_unrestricted |
警告 | Sandbox 瀏覽器橋接在沒有來源範圍限制的情況下暴露 | sandbox.browser.cdpSourceRange |
否 |
sandbox.browser_container.non_loopback_publish |
重大 | 現有瀏覽器容器在非回送介面上發布 CDP | 瀏覽器 Sandbox 容器發布設定 | 否 |
sandbox.browser_container.hash_label_missing |
警告 | 現有瀏覽器容器早於目前的設定雜湊標籤 | openclaw sandbox recreate --browser --all |
否 |
sandbox.browser_container.hash_epoch_stale |
警告 | 現有瀏覽器容器早於目前的瀏覽器設定 epoch | openclaw sandbox recreate --browser --all |
否 |
tools.exec.host_sandbox_no_sandbox_defaults |
警告 | Sandbox 關閉時,exec host=sandbox 會以失敗關閉方式處理 |
tools.exec.host, agents.defaults.sandbox.mode |
否 |
tools.exec.host_sandbox_no_sandbox_agents |
警告 | Sandbox 關閉時,每個 agent 的 exec host=sandbox 會以失敗關閉方式處理 |
agents.list[].tools.exec.host, agents.list[].sandbox.mode |
否 |
tools.exec.security_full_configured |
警告/重大 | 主機 exec 正以 security="full" 執行 |
tools.exec.security, agents.list[].tools.exec.security |
否 |
tools.exec.auto_allow_skills_enabled |
警告 | Exec 核准隱含信任 skill bins | ~/.openclaw/exec-approvals.json |
否 |
tools.exec.allowlist_interpreter_without_strict_inline_eval |
警告 | 直譯器允許清單允許內嵌 eval,而不強制重新核准 | tools.exec.strictInlineEval, agents.list[].tools.exec.strictInlineEval, exec 核准允許清單 |
否 |
tools.exec.safe_bins_interpreter_unprofiled |
警告 | safeBins 中沒有明確設定檔的直譯器/執行階段 bins 會擴大 exec 風險 |
tools.exec.safeBins, tools.exec.safeBinProfiles, agents.list[].tools.exec.* |
否 |
tools.exec.safe_bins_broad_behavior |
警告 | safeBins 中的廣泛行為工具會削弱低風險 stdin-filter 信任模型 |
tools.exec.safeBins, agents.list[].tools.exec.safeBins |
否 |
tools.exec.safe_bin_trusted_dirs_risky |
警告 | safeBinTrustedDirs 包含可變或有風險的目錄 |
tools.exec.safeBinTrustedDirs, agents.list[].tools.exec.safeBinTrustedDirs |
否 |
skills.workspace.symlink_escape |
警告 | 工作區 skills/**/SKILL.md 解析到工作區根目錄之外(符號連結鏈偏移) |
工作區 skills/** 檔案系統狀態 |
否 |
plugins.extensions_no_allowlist |
警告 | Plugins 在沒有明確 Plugin 允許清單的情況下安裝 | plugins.allowlist |
否 |
plugins.installs_unpinned_npm_specs |
警告 | Plugin 索引記錄未釘選到不可變的 npm 規格 | Plugin 安裝中繼資料 | 否 |
plugins.installs_missing_integrity |
警告 | Plugin 索引記錄缺少完整性中繼資料 | Plugin 安裝中繼資料 | 否 |
plugins.installs_version_drift |
警告 | Plugin 索引記錄與已安裝套件出現偏差 | Plugin 安裝中繼資料 | 否 |
plugins.code_safety |
警告/嚴重 | Plugin 程式碼掃描發現可疑或危險模式 | Plugin 程式碼 / 安裝來源 | 否 |
plugins.code_safety.entry_path |
警告 | Plugin 進入路徑指向隱藏或 node_modules 位置 |
Plugin manifest entry |
否 |
plugins.code_safety.entry_escape |
嚴重 | Plugin 進入路徑逸出 Plugin 目錄 | Plugin manifest entry |
否 |
plugins.code_safety.scan_failed |
警告 | Plugin 程式碼掃描無法完成 | Plugin 路徑 / 掃描環境 | 否 |
skills.code_safety |
警告/嚴重 | Skill 安裝程式中繼資料/程式碼包含可疑或危險模式 | Skill 安裝來源 | 否 |
skills.code_safety.scan_failed |
警告 | Skill 程式碼掃描無法完成 | Skill 掃描環境 | 否 |
security.exposure.open_channels_with_exec |
警告/嚴重 | 共用/公開聊天室可觸及已啟用 exec 的代理 | channels.*.dmPolicy, channels.*.groupPolicy, tools.exec.*, agents.list[].tools.exec.* |
否 |
security.exposure.open_groups_with_elevated |
嚴重 | 開放群組 + 提權工具會建立高影響的提示注入路徑 | channels.*.groupPolicy, tools.elevated.* |
否 |
security.exposure.open_groups_with_runtime_or_fs |
嚴重/警告 | 開放群組可在沒有沙箱/工作區防護的情況下觸及命令/檔案工具 | channels.*.groupPolicy, tools.profile/deny, tools.fs.workspaceOnly, agents.*.sandbox.mode |
否 |
security.trust_model.multi_user_heuristic |
警告 | 設定看起來像多使用者,而 Gateway 信任模型是個人助理 | 分割信任邊界,或共用使用者強化(sandbox.mode、工具拒絕/工作區範圍限定) |
否 |
tools.profile_minimal_overridden |
警告 | 代理覆寫會繞過全域 minimal profile | agents.list[].tools.profile |
否 |
plugins.tools_reachable_permissive_policy |
警告 | Plugin 工具可在寬鬆情境中觸及 | tools.profile + 工具允許/拒絕 |
否 |
models.legacy |
警告 | 仍在設定舊版模型系列 | 模型選擇 | 否 |
models.weak_tier |
警告 | 設定的模型低於目前建議層級 | 模型選擇 | 否 |
models.small_params |
嚴重/資訊 | 小型模型 + 不安全的工具介面會提高注入風險 | 模型選擇 + 沙箱/工具政策 | 否 |
summary.attack_surface |
資訊 | 驗證、頻道、工具與暴露態勢的彙總摘要 | 多個鍵(請參閱發現項詳細資訊) | 否 |