Security audit checks
openclaw security audit 发出由 checkId 键入的结构化发现。此页面是这些 ID 的参考目录。有关高级威胁模型和加固指南,请参阅 Security。
您在实际部署中极有可能看到的高信噪比 checkId 值(非详尽列表):
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 | 严重 | 其他人可以更改 auth/工具 策略/配置 | ~/.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 | 严重 | 包含的机密/设置可被所有人读取 | include-file perms 引用自 openclaw.json | 是 |
fs.auth_profiles.perms_writable | 严重 | 其他人可以注入或替换存储的模型凭据 | agents/<agentId>/agent/auth-profiles.json perms | 是 |
fs.auth_profiles.perms_readable | 警告 | 其他人可以读取 API 密钥和 OAuth 令牌 | agents/<agentId>/agent/auth-profiles.json perms | 是 |
fs.credentials_dir.perms_writable | 严重 | 其他人可以修改渠道配对/凭据状态 | ~/.openclaw/credentials 上的文件系统权限 | 是 |
fs.credentials_dir.perms_readable | 警告 | 其他人可以读取渠道凭据状态 | ~/.openclaw/credentials 上的文件系统权限 | 是 |
fs.sessions_store.perms_readable | 警告 | 其他人可以读取会话记录/元数据 | 会话 store perms | 是 |
fs.log_file.perms_readable | 警告 | 其他人可以读取已编辑但仍敏感的日志 | gateway log file perms | 是 |
fs.synced_dir | 警告 | iCloud/Dropbox/Drive 中的状态/配置会扩大令牌/记录的暴露范围 | 将配置/状态移出同步文件夹 | 否 |
gateway.bind_no_auth | 严重 | 远程绑定未使用共享密钥 | gateway.bind, gateway.auth.* | 否 |
gateway.loopback_no_auth | 严重 | 反向代理的环回地址可能变为未经验证状态 | gateway.auth.*, proxy setup | 否 |
gateway.trusted_proxies_missing | 警告 | 存在反向代理标头但不受信任 | gateway.trustedProxies | 否 |
gateway.http.no_auth | 警告/严重 | Gateway(网关) HTTP API 可通过 auth.mode="none" 访问 | 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 | 警告/严重 | 启用高影响的节点命令(相机/屏幕/联系人/日历/SMS) | gateway.nodes.allowCommands | 否 |
gateway.nodes.deny_commands_ineffective | 警告 | 类似模式的拒绝条目不匹配 shell 文本或组 | gateway.nodes.denyCommands | 否 |
gateway.tailscale_funnel | 严重 | 公网暴露 | gateway.tailscale.mode | 否 |
gateway.tailscale_serve | 信息 | 已通过 Serve 启用 Tailnet 暴露 | gateway.tailscale.mode | 否 |
gateway.control_ui.allowed_origins_required | 严重 | 非本地回环控制界面未显式设置浏览器源允许列表 | 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 | 严重 | 受信任代理身份验证无法安全解析用户身份 | gateway.auth.trustedProxy.userHeader | 否 |
gateway.trusted_proxy_no_allowlist | 警告 | 受信任代理身份验证接受任何经过身份验证的上游用户 | gateway.auth.trustedProxy.allowUsers | 否 |
gateway.trusted_proxy_allow_loopback | 警告 | 受信任的代理身份验证接受显式允许的回环代理源 | gateway.auth.trustedProxy.allowLoopback | 否 |
gateway.probe_auth_secretref_unavailable | 警告 | 深度探针无法解析此命令路径中的身份验证 SecretRefs | 深度探针身份验证源 / SecretRef 可用性 | no |
gateway.probe_failed | warn/critical | 实时 Gateway(网关) 探针失败 | gateway 可达性/身份验证 | no |
discovery.mdns_full_mode | 警告/严重 | mDNS 全模式在本地网络上通告 cliPath/sshPort 元数据 | discovery.mdns.mode, gateway.bind | no |
config.insecure_or_dangerous_flags | warn | 启用了一个不安全/危险的调试标志 | 发现详情中命名的键 | no |
security.audit.suppressions.active | 信息 | 审计输出具有已配置的抑制项,并且可能会被过滤 | security.audit.suppressions | no |
config.secrets.gateway_password_in_config | 警告 | Gateway(网关) 密码直接存储在配置中 | gateway.auth.password | no |
config.secrets.hooks_token_in_config | warn | Hook 承载令牌直接存储在配置中 | hooks.token | no |
hooks.token_reuse_gateway_token | 严重 | Hook 入口令牌也解锁 Gateway(网关) 认证 | hooks.token, gateway.auth.token | no |
hooks.token_too_short | 警告 | 更容易对 Hook 入口进行暴力破解 | hooks.token | no |
hooks.default_session_key_unset | 警告 | Hook 代理将输出分流到生成的每次请求会话中 | hooks.defaultSessionKey | no |
hooks.allowed_agent_ids_unrestricted | warn/critical | 经过身份验证的 Hook 调用者可以路由到任何已配置的代理 | hooks.allowedAgentIds | no |
hooks.request_session_key_enabled | 警告/严重 | 外部调用者可以选择 sessionKey | hooks.allowRequestSessionKey | no |
hooks.request_session_key_prefixes_missing | 警告/严重 | 对外部会话键的形状没有限制 | hooks.allowedSessionKeyPrefixes | no |
hooks.path_root | 严重 | Hook 路径为 /,使得入口更容易发生冲突或错误路由 | hooks.path | no |
hooks.installs_unpinned_npm_specs | warn | Hook 安装记录未固定到不可变的 npm 规范 | hook install metadata | no |
hooks.installs_missing_integrity | warn | Hook 安装记录缺少完整性元数据 | hook 安装元数据 | no |
hooks.installs_version_drift | warn | Hook 安装记录与已安装的包发生偏离 | hook 安装元数据 | no |
logging.redact_off | warn | 敏感值泄露到日志/状态中 | logging.redactSensitive | 是 |
browser.control_invalid_config | warn | 浏览器控制配置在运行时之前无效 | browser.* | no |
browser.control_no_auth | 严重 | 未使用令牌/密码认证暴露的浏览器控制 | gateway.auth.* | no |
browser.remote_cdp_http | warn | 通过纯 HTTP 的远程 CDP 缺少传输加密 | 浏览器配置文件 cdpUrl | no |
browser.remote_cdp_private_host | warn | 远程 CDP 以私有/内部主机为目标 | 浏览器配置文件 cdpUrl, browser.ssrfPolicy.* | no |
sandbox.docker_config_mode_off | warn | 沙箱 Docker 配置存在但未激活 | agents.*.sandbox.mode | no |
sandbox.bind_mount_non_absolute | warn | 相对绑定挂载的解析结果可能不可预测 | agents.*.sandbox.docker.binds[] | no |
sandbox.dangerous_bind_mount | critical | 沙箱绑定挂载的目标是已屏蔽的系统、凭据或 Docker 套接字路径 | agents.*.sandbox.docker.binds[] | no |
sandbox.dangerous_network_mode | critical | 沙箱 Docker 网络使用 Dockerhost 或 container:* 命名空间加入模式 | agents.*.sandbox.docker.network | no |
sandbox.dangerous_seccomp_profile | critical | 沙箱 seccomp 配置文件削弱了容器隔离 | agents.*.sandbox.docker.securityOpt | no |
sandbox.dangerous_apparmor_profile | critical | 沙箱 AppArmor 配置文件削弱了容器隔离 | agents.*.sandbox.docker.securityOpt | no |
sandbox.browser_cdp_bridge_unrestricted | warn | 沙箱浏览器网桥在没有源范围限制的情况下暴露 | sandbox.browser.cdpSourceRange | no |
sandbox.browser_container.non_loopback_publish | critical | 现有的浏览器容器在非回环接口上发布了 CDP | 浏览器沙箱容器发布配置 | no |
sandbox.browser_container.hash_label_missing | warn | 现有的浏览器容器早于当前的配置哈希标签 | openclaw sandbox recreate --browser --all | no |
sandbox.browser_container.hash_epoch_stale | warn | 现有的浏览器容器早于当前的浏览器配置纪元 | openclaw sandbox recreate --browser --all | no |
tools.exec.host_sandbox_no_sandbox_defaults | 警告 | 当沙箱关闭时,exec host=sandbox 失效关闭(fail closed) | tools.exec.host, agents.defaults.sandbox.mode | no |
tools.exec.host_sandbox_no_sandbox_agents | warn | 当沙箱关闭时,每个代理的 exec host=sandbox 失效关闭(fail closed) | agents.list[].tools.exec.host, agents.list[].sandbox.mode | no |
tools.exec.security_full_configured | 警告/严重 | Host exec 正以 security="full" 运行 | tools.exec.security, agents.list[].tools.exec.security | no |
tools.exec.fs_tools_disabled_but_exec_enabled | warn | 文件系统工具策略未将 shell 执行设置为只读 | tools.deny, agents.list[].tools.deny, agents.*.sandbox.workspaceAccess | no |
tools.exec.auto_allow_skills_enabled | warn | 执行批准隐式信任技能包 | ~/.openclaw/exec-approvals.json | no |
tools.exec.allowlist_interpreter_without_strict_inline_eval | warn | 解释器允许列表允许在没有强制重新批准的情况下进行内联评估 | tools.exec.strictInlineEval, agents.list[].tools.exec.strictInlineEval, exec approvals allowlist | no |
tools.exec.safe_bins_interpreter_unprofiled | warn | safeBins 中的解释器/运行时二进制文件在没有显式配置文件的情况下扩大了执行风险 | tools.exec.safeBins, tools.exec.safeBinProfiles, agents.list[].tools.exec.* | no |
tools.exec.safe_bins_broad_behavior | warn | safeBins 中的广泛行为工具削弱了低风险 stdin-filter 信任模型 | tools.exec.safeBins, agents.list[].tools.exec.safeBins | no |
tools.exec.safe_bin_trusted_dirs_risky | warn | safeBinTrustedDirs 包含可变或风险目录 | tools.exec.safeBinTrustedDirs, agents.list[].tools.exec.safeBinTrustedDirs | no |
skills.workspace.symlink_escape | warn | 工作区 skills/**/SKILL.md 解析到工作区根目录之外(符号链接链漂移) | workspace skills/** filesystem state | no |
plugins.extensions_no_allowlist | warn | 插件是在没有显式插件允许列表的情况下安装的 | plugins.allowlist | no |
plugins.installs_unpinned_npm_specs | 警告 | 插件索引记录未固定到不可变的 npm 规范 | 插件安装元数据 | no |
plugins.installs_missing_integrity | warn | 插件索引记录缺少完整性元数据 | 插件安装元数据 | no |
plugins.installs_version_drift | 警告 | 插件索引记录与已安装的包不一致 | plugin install metadata | no |
plugins.code_safety | 警告/严重 | 插件代码扫描发现可疑或危险模式 | plugin code / install source | no |
plugins.code_safety.entry_path | 警告 | 插件入口路径指向隐藏或 node_modules 位置 | 插件清单 entry | no |
plugins.code_safety.entry_escape | 严重 | 插件入口路径超出了插件目录 | 插件清单 entry | no |
plugins.code_safety.scan_failed | 警告 | 插件代码扫描无法完成 | 插件路径 / 扫描环境 | no |
skills.code_safety | 警告/严重 | 技能安装程序的元数据/代码包含可疑或危险的模式 | 技能安装源 | no |
skills.code_safety.scan_failed | 警告 | 技能代码扫描无法完成 | 技能扫描环境 | no |
security.exposure.open_channels_with_exec | 警告/严重 | 共享/公开房间可以访问已启用 exec 的代理 | channels.*.dmPolicy、channels.*.groupPolicy、tools.exec.*、agents.list[].tools.exec.* | no |
security.exposure.open_groups_with_elevated | 严重 | 开放组 + 提升权限的工具创建了高影响的提示注入路径 | channels.*.groupPolicy、tools.elevated.* | no |
security.exposure.open_groups_with_runtime_or_fs | 严重/警告 | 开放组可以在没有沙箱/工作区防护的情况下访问命令/文件工具 | channels.*.groupPolicy、tools.profile/deny、tools.fs.workspaceOnly、agents.*.sandbox.mode | no |
security.trust_model.multi_user_heuristic | warn | 配置看起来像多用户,但网关信任模型是个人助手 | 拆分信任边界,或共享用户加固(sandbox.mode、工具拒绝/工作区范围限定`) | no |
tools.profile_minimal_overridden | warn | 代理覆盖绕过了全局最低配置文件 | agents.list[].tools.profile | no |
plugins.tools_reachable_permissive_policy | 警告 | 扩展工具可在宽松的上下文中访问 | tools.profile + 工具允许/拒绝 | 否 |
models.legacy | 警告 | 旧版模型系列仍在配置中 | 模型选择 | 否 |
models.weak_tier | 警告 | 配置的模型低于当前推荐的层级 | 模型选择 | 否 |
models.small_params | 严重/信息 | 小型模型 + 不安全的工具界面会增加注入风险 | 模型选择 + 沙箱/工具策略 | 否 |
summary.attack_surface | 信息 | auth、渠道、工具 和 exposure posture 的汇总摘要 | 多个键(请参阅发现详细信息) | 否 |