Gateway
Проверки аудита безопасности
openclaw security audit выводит структурированные результаты, сгруппированные по checkId. Эта
страница представляет собой справочный каталог этих идентификаторов. Общую модель угроз
и рекомендации по усилению защиты см. в разделе Безопасность.
Некоторые проверки выполняются только с openclaw security audit --deep: сканирование кода
плагинов и Skills (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 |
предупреждение/критическая | HTTP API Gateway доступны при 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 |
предупреждение/критическая | Включает команды Node с серьезными последствиями (ввод с рабочего стола/камера/экран/контакты/календарь/SMS) | gateway.nodes.allowCommands |
нет |
gateway.nodes.deny_commands_ineffective |
предупреждение | Записи запрета, похожие на шаблоны, не сопоставляются с текстом оболочки или группами | gateway.nodes.denyCommands |
нет |
gateway.tailscale_funnel |
критическая | Доступ из общедоступного Интернета | gateway.tailscale.mode |
нет |
gateway.tailscale_serve |
информация | Доступ из tailnet включен через Serve | 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 |
критическая | Аутентификация через доверенный прокси не может безопасно определить идентичность пользователя | 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 |
предупреждение | Глубокая проверка не смогла разрешить ссылки SecretRef для аутентификации в этом пути команды | источник аутентификации для глубокой проверки / доступность SecretRef | нет |
gateway.probe_failed |
предупреждение | Проверка работающего Gateway завершилась неудачно (только --deep) |
доступность Gateway/аутентификация | нет |
discovery.mdns_full_mode |
предупреждение/критическая | Полный режим mDNS публикует метаданные cliPath/sshPort в локальной сети |
discovery.mdns.mode, gateway.bind |
нет |
config.insecure_or_dangerous_flags |
предупреждение | Включён один небезопасный/опасный флаг отладки | ключ, указанный в подробностях обнаруженной проблемы | нет |
security.audit.suppressions.active |
информация | Для результатов аудита настроены исключения, поэтому они могут быть отфильтрованы | security.audit.suppressions |
нет |
config.secrets.gateway_password_in_config |
предупреждение | Пароль Gateway хранится непосредственно в конфигурации | gateway.auth.password |
нет |
config.secrets.hooks_token_in_config |
предупреждение | Bearer-токен хука хранится непосредственно в конфигурации | hooks.token |
нет |
hooks.token_reuse_gateway_token |
критическая | Токен входящих запросов хука также предоставляет доступ к аутентификации Gateway | hooks.token, gateway.auth.token, gateway.auth.password |
нет |
hooks.token_too_short |
предупреждение | Упрощён перебор токена входящих запросов хука | hooks.token |
нет |
hooks.default_session_key_unset |
предупреждение | Запуски агента через хук распределяются по создаваемым для каждого запроса сеансам | hooks.defaultSessionKey |
нет |
hooks.allowed_agent_ids_unrestricted |
предупреждение/критическая | Аутентифицированные вызывающие стороны хука могут направлять запросы любому настроенному агенту | hooks.allowedAgentIds |
нет |
hooks.request_session_key_enabled |
предупреждение/критическая | Внешняя вызывающая сторона может выбирать sessionKey | hooks.allowRequestSessionKey |
нет |
hooks.request_session_key_prefixes_missing |
предупреждение/критическая | Формат внешних ключей сеансов не ограничен | hooks.allowedSessionKeyPrefixes |
нет |
hooks.path_root |
критическая | Путь хука — /, что повышает риск коллизии или ошибочной маршрутизации входящих запросов |
hooks.path |
нет |
hooks.installs_unpinned_npm_specs |
предупреждение | Записи об установке хуков не привязаны к неизменяемым спецификациям npm | метаданные установки хука | нет |
hooks.installs_missing_integrity |
предупреждение | В записях об установке хуков отсутствуют метаданные целостности | метаданные установки хука | нет |
hooks.installs_version_drift |
предупреждение | Записи об установке хуков расходятся с установленными пакетами | метаданные установки хука | нет |
logging.redact_off |
предупреждение | Конфиденциальные значения попадают в журналы/данные о состоянии | logging.redactSensitive |
да |
browser.control_invalid_config |
предупреждение | Конфигурация управления браузером недопустима ещё до запуска | browser.* |
нет |
browser.control_no_auth |
критическая | Управление браузером доступно без аутентификации по токену/паролю | gateway.auth.* |
нет |
browser.remote_cdp_http |
предупреждение | Для удалённого CDP по обычному HTTP отсутствует шифрование транспорта | профиль браузера cdpUrl |
нет |
browser.remote_cdp_private_host |
предупреждение | Удалённый CDP обращается к частному/внутреннему хосту | профиль браузера cdpUrl, browser.ssrfPolicy.* |
нет |
sandbox.docker_config_mode_off |
предупреждение | Конфигурация Docker для песочницы существует, но неактивна | agents.*.sandbox.mode |
нет |
sandbox.bind_mount_non_absolute |
предупреждение | Относительные bind-монтирования могут разрешаться непредсказуемо | agents.*.sandbox.docker.binds[] |
нет |
sandbox.dangerous_bind_mount |
критическая | Цели bind-монтирования песочницы указывают на заблокированные системные пути, пути учётных данных или сокета Docker | agents.*.sandbox.docker.binds[] |
нет |
sandbox.dangerous_network_mode |
критическая | Сеть Docker песочницы использует режим объединения пространств имён host или container:* |
agents.*.sandbox.docker.network |
нет |
sandbox.dangerous_seccomp_profile |
критическая | Профиль seccomp песочницы ослабляет изоляцию контейнера | agents.*.sandbox.docker.securityOpt |
нет |
sandbox.dangerous_apparmor_profile |
критическая | Профиль AppArmor песочницы ослабляет изоляцию контейнера | agents.*.sandbox.docker.securityOpt |
нет |
sandbox.browser_cdp_bridge_unrestricted |
предупреждение | Мост браузера песочницы доступен без ограничения диапазона исходных адресов | sandbox.browser.cdpSourceRange |
нет |
sandbox.browser_container.non_loopback_publish |
критическая | Существующий контейнер браузера публикует CDP на интерфейсах, отличных от loopback | конфигурация публикации контейнера браузера в песочнице | нет |
sandbox.browser_container.hash_label_missing |
предупреждение | Существующий контейнер браузера создан до введения текущих меток хеша конфигурации | openclaw sandbox recreate --browser --all |
нет |
sandbox.browser_container.hash_epoch_stale |
предупреждение | Существующий контейнер браузера создан до текущей эпохи конфигурации браузера | openclaw sandbox recreate --browser --all |
нет |
sandbox.browser_container.docker_probe_timeout |
предупреждение | Истекло время ожидания проверки меток Docker для контейнера браузера | доступность демона Docker | нет |
tools.exec.host_sandbox_no_sandbox_defaults |
предупреждение | exec host=sandbox запрещает операцию при отключённой песочнице |
tools.exec.host, agents.defaults.sandbox.mode |
нет |
tools.exec.host_sandbox_no_sandbox_agents |
предупреждение | exec host=sandbox для отдельных агентов запрещает операцию при отключённой песочнице |
agents.list[].tools.exec.host, agents.list[].sandbox.mode |
нет |
tools.exec.security_full_configured |
предупреждение/критическая | Выполнение команд на хосте работает с security="full" |
tools.exec.security, agents.list[].tools.exec.security |
нет |
tools.exec.agent_skill_mcp_boundary_drift |
предупреждение | Списки разрешённых Skills агента заданы, хотя выполнение команд на хосте может обращаться к клиентам/реестрам MCP | agents.list[].tools.exec.*, изоляция песочницы/ОС, учётные данные сервера 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 ослабляют модель доверия к фильтру stdin с низким уровнем риска |
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 |
предупреждение | --permission-mode Claude CLI игнорируется, поскольку выполнение команд OpenClaw полностью автоматизировано |
аргументы 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 |
предупреждение | Плагины установлены без явного списка разрешённых плагинов | plugins.allowlist |
нет |
plugins.allow_phantom_entries |
предупреждение | plugins.allow содержит идентификатор, которому не соответствует ни один установленный плагин |
plugins.allow |
нет |
plugins.installs_unpinned_npm_specs |
предупреждение | Записи индекса плагинов не привязаны к неизменяемым спецификациям npm | метаданные установки плагина | нет |
plugins.installs_missing_integrity |
предупреждение | В записях индекса плагинов отсутствуют метаданные целостности | метаданные установки плагина | нет |
plugins.installs_version_drift |
предупреждение | Записи индекса плагинов расходятся с установленными пакетами | метаданные установки плагина | нет |
plugins.code_safety |
предупреждение/критично | Сканирование кода плагина обнаружило подозрительные или опасные шаблоны (только --deep) |
код плагина / источник установки | нет |
plugins.code_safety.entry_path |
предупреждение | Путь точки входа плагина указывает на скрытые расположения или расположения node_modules |
манифест плагина entry |
нет |
plugins.code_safety.entry_escape |
критично | Точка входа плагина выходит за пределы каталога плагина | манифест плагина entry |
нет |
plugins.code_safety.manifest_parse_error |
предупреждение | Не удалось разобрать манифест плагина во время сканирования безопасности кода | файл манифеста плагина | нет |
plugins.code_safety.scan_failed |
предупреждение | Не удалось завершить сканирование кода плагина (только --deep) |
путь плагина / среда сканирования | нет |
plugins.<pluginId>.security_audit_failed |
предупреждение | Сборщик аудита безопасности, принадлежащий плагину, вызвал ошибку | сборщик аудита безопасности этого плагина | нет |
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 |
критично | Открытые личные сообщения/группы в сочетании с инструментами с повышенными привилегиями создают высокоопасные пути внедрения промптов | пути политики личных сообщений верхнего уровня или вложенные, переопределения учётных записей, channels.*.groupPolicy |
нет |
security.exposure.open_groups_with_runtime_or_fs |
критично/предупреждение | Открытые личные сообщения/группы могут обращаться к инструментам командной строки и файлов без защиты песочницы/рабочей области | пути политик личных сообщений/групп, tools.profile/deny, tools.fs.workspaceOnly, agents.*.sandbox.mode |
нет |
security.exposure.open_groups_with_control_plane_tools |
критично | Открытые личные сообщения/группы могут обращаться к инструментам плоскости управления Gateway/Cron | пути политик личных сообщений/групп, 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> имеет значение "open"; любой может отправить боту личное сообщение |
channels.<provider>.dmPolicy, .allowFrom |
нет |
channels.<provider>.dm.open_invalid |
предупреждение | dmPolicy="open" без "*" в allowFrom является несогласованной настройкой |
channels.<provider>.allowFrom |
нет |
channels.<provider>.dm.scope_main_multiuser |
предупреждение | Несколько отправителей личных сообщений сейчас используют общий основной сеанс | session.dmScope |
нет |
channels.<provider>.allowFrom.dangerous_name_matching_enabled |
информация | dangerouslyAllowNameMatching повторно включает сопоставление отправителей по изменяемым имени, адресу электронной почты или тегу |
отключить dangerouslyAllowNameMatching, использовать стабильные идентификаторы отправителей |
нет |
channels.<provider>.account.read_only_resolution |
предупреждение | Не удалось полностью определить учётную запись канала для аудита (отсутствует секрет/Gateway) | убедиться, что указанные секреты доступны, или выполнить проверку по снимку работающего Gateway | нет |
channels.<provider>.warning.<n> |
информация/предупреждение/критично | Предупреждение безопасности конкретного провайдера, классифицированное на основе неструктурированного текста плагина | см. сведения о результате проверки | нет |
summary.attack_surface |
информация | Сводка состояния аутентификации, каналов, инструментов и открытости | несколько ключей (см. сведения о результате проверки) | нет |
channels.<provider>.* и tools.elevated.allowFrom.<provider>.* — это идентификаторы проверок,
создаваемые для каждого настроенного канала или провайдера, поэтому в фактическом выводе
<provider> является реальным идентификатором канала
(например, telegram, discord), а не строковым литералом.