CLI commands
Безопасность
openclaw security
Инструменты безопасности: аудит и необязательные безопасные исправления. См. также: Безопасность.
openclaw security auditopenclaw security audit --deepopenclaw security audit --deep --password <password>openclaw security audit --deep --token <token>openclaw security audit --auth password --password <password>openclaw security audit --fixopenclaw security audit --jsonРежимы аудита
Обычный security audit использует холодный путь только для чтения конфигурации и файловой системы: он не обнаруживает сборщики данных аудита безопасности среды выполнения плагинов, поэтому при плановом аудите не загружается среда выполнения каждого установленного плагина. --deep добавляет выполняемые по возможности проверки активного Gateway и принадлежащие плагинам сборщики данных аудита безопасности (явные внутренние вызывающие стороны также могут задействовать эти сборщики, если у них уже есть подходящая область среды выполнения).
Если пароль аутентификации Gateway задаётся только при запуске, передайте то же значение с помощью --auth password --password <password>, чтобы аудит мог проверить его на соответствие hooks.token.
Что проверяется
Модель личных сообщений и доверия
- Предупреждает, когда несколько отправителей личных сообщений используют общий основной сеанс, и рекомендует безопасный режим личных сообщений:
session.dmScope="per-channel-peer"(илиper-account-channel-peerдля каналов с несколькими учётными записями) для общих почтовых ящиков. Это усиление защиты при совместной работе и использовании общего почтового ящика, а не изоляция взаимно недоверяющих операторов; разделяйте границы доверия с помощью отдельных экземпляров Gateway (либо отдельных пользователей или узлов ОС). - Выдаёт
security.trust_model.multi_user_heuristic, когда конфигурация указывает на вероятный вход от нескольких пользователей (например, открытая политика личных сообщений или групп, настроенные целевые группы либо правила с подстановочными знаками для отправителей): модель доверия OpenClaw по умолчанию предполагает персонального помощника (одного оператора), а не изоляцию во враждебной многопользовательской среде. Для намеренно общих многопользовательских конфигураций: запускайте все сеансы в песочнице, ограничивайте доступ к файловой системе рабочей областью и не используйте в этой среде выполнения личные или конфиденциальные идентификационные данные либо учётные данные. - Предупреждает, когда малые модели (
<=300Bпараметров) используются без песочницы и с включёнными веб-инструментами или инструментами браузера.
Webhook/перехватчики
При запуске в журнал записывается некритическое предупреждение безопасности, а аудит отмечает повторное использование hooks.token активных значений аутентификации Gateway на основе общего секрета (gateway.auth.token / OPENCLAW_GATEWAY_TOKEN, gateway.auth.password / OPENCLAW_GATEWAY_PASSWORD). Также выдаются предупреждения в следующих случаях:
hooks.tokenслишком короткийhooks.path="/"hooks.defaultSessionKeyне заданhooks.allowedAgentIdsне ограничен- разрешены переопределения
sessionKeyв запросах - переопределения разрешены без
hooks.allowedSessionKeyPrefixes
Выполните openclaw doctor --fix, чтобы заменить сохранённый повторно используемый hooks.token, а затем настройте внешних отправителей перехватчиков на использование нового токена.
Песочница и инструменты
- Предупреждает, когда параметры Docker для песочницы настроены, но режим песочницы отключён.
- Предупреждает, когда
gateway.nodes.denyCommandsсодержит неэффективные шаблоноподобные или неизвестные элементы (сопоставление выполняется только по точному имени команды Node, а не путём фильтрации текста оболочки). - Предупреждает, когда
gateway.nodes.allowCommandsявно разрешает опасные команды Node. - Предупреждает, когда глобальный
tools.profile="minimal"переопределён профилями инструментов агента. - Предупреждает, когда инструменты записи и редактирования отключены, но
execпо-прежнему доступен без ограничивающей границы файловой системы песочницы. - Предупреждает, когда открытые личные сообщения или группы предоставляют доступ к инструментам среды выполнения или файловой системы без защиты песочницей или рабочей областью.
- Предупреждает, когда инструменты установленных плагинов могут быть доступны при разрешительной политике инструментов.
Браузер песочницы
- Предупреждает, когда браузер песочницы использует сеть Docker
bridgeбезsandbox.browser.cdpSourceRange. - Отмечает опасные сетевые режимы Docker для песочницы, включая присоединение к пространствам имён
hostиcontainer:*. - Предупреждает, когда существующие контейнеры Docker браузера песочницы имеют отсутствующие или устаревшие метки хеша (например, в контейнерах до миграции отсутствует
openclaw.browserConfigEpoch), и рекомендуетopenclaw sandbox recreate --browser --all.
Сеть и обнаружение
- Отмечает
gateway.allowRealIpFallback=true(риск подмены заголовков при неверной настройке прокси-серверов). - Отмечает
discovery.mdns.mode="full"(утечка метаданных через записи mDNS TXT). - Предупреждает, когда
gateway.auth.mode="none"оставляет HTTP API Gateway доступными без общего секрета (/tools/invokeи любая включённая конечная точка/v1/*).
Плагины и каналы
- Предупреждает, когда записи об установке плагинов или перехватчиков на основе npm не привязаны к точным версиям, не содержат метаданных целостности либо расходятся с версиями установленных в настоящий момент пакетов.
- Предупреждает, когда списки разрешённых каналов используют изменяемые имена, адреса электронной почты или теги вместо стабильных идентификаторов (в соответствующих областях Discord, Slack, Google Chat, Microsoft Teams, Mattermost и IRC).
Параметры с префиксами dangerous/dangerously представляют собой явные аварийные переопределения оператора; само по себе включение такого параметра не означает наличие уязвимости безопасности. Полный перечень опасных параметров см. в разделе «Сводка небезопасных или опасных флагов» на странице Безопасность.
Поведение SecretRef
security audit разрешает поддерживаемые SecretRef в режиме только для чтения для целевых путей. Если SecretRef недоступен в текущем пути выполнения команды, аудит продолжается и сообщает secretDiagnostics вместо аварийного завершения. --token и --password переопределяют аутентификацию глубокой проверки только для данного вызова команды; они не изменяют конфигурацию или сопоставления SecretRef.
Подавление результатов
Принимайте известные постоянные результаты с помощью security.audit.suppressions. Каждое правило подавления сопоставляется с точным checkId и может быть ограничено подстроками titleIncludes и/или detailIncludes без учёта регистра:
{ "security": { "audit": { "suppressions": [ { "checkId": "plugins.tools_reachable_permissive_policy", "detailIncludes": "Enabled extension plugins: gbrain", "reason": "trusted local operator plugin" } ] } }}Подавленные результаты удаляются из активных списков summary и findings. Для возможности аудита в выводе JSON они сохраняются в suppressedFindings. Когда настроены правила подавления, активный вывод также содержит неподлежащий подавлению информационный результат security.audit.suppressions.active, чтобы читатели могли определить, что аудит был отфильтрован. Опасные флаги конфигурации выводятся по одному флагу на результат, поэтому принятие одного опасного флага не скрывает другие включённые флаги с тем же идентификатором проверки config.insecure_or_dangerous_flags.
Поскольку правила подавления могут скрывать постоянный риск, их добавление или удаление с помощью команд оболочки, выполняемых агентом, требует подтверждения выполнения, если только выполнение уже не запущено с security="full" и ask="off" для доверенной локальной автоматизации.
Вывод JSON
openclaw security audit --json | jq '.summary'openclaw security audit --deep --json | jq '.findings[] | select(.severity=="critical") | .checkId'При использовании --fix --json вывод содержит как действия по исправлению, так и итоговый отчёт:
openclaw security audit --fix --json | jq '{fix: .fix.ok, summary: .report.summary}'Что изменяет --fix
Применяет безопасные детерминированные исправления:
- изменяет распространённые значения
groupPolicy="open"наgroupPolicy="allowlist"(включая варианты учётных записей в поддерживаемых каналах) - когда политика групп WhatsApp меняется на
allowlist, заполняетgroupAllowFromданными из сохранённого файлаallowFrom, если этот список существует и в конфигурации ещё не определёнallowFrom - изменяет
logging.redactSensitiveс"off"на"tools" - ужесточает права доступа к состоянию, конфигурации и распространённым конфиденциальным файлам (
credentials/*.json,auth-profiles.json,openclaw-agent.sqliteи устаревшим артефактам сеансов) - также ужесточает права доступа к подключаемым файлам конфигурации, на которые ссылается
openclaw.json - использует
chmodна узлах POSIX и сбросыicaclsв Windows
--fix не выполняет следующие действия:
- замена токенов, паролей или ключей API
- отключение инструментов (
gateway,cron,execи т. д.) - изменение параметров привязки Gateway, аутентификации или сетевой доступности
- удаление или перезапись плагинов или Skills