CLI commands

Безпека

openclaw security

Інструменти безпеки (аудит + необов’язкові виправлення).

Пов’язано:

Аудит

openclaw security audit
openclaw security audit --deep
openclaw security audit --deep --password <password>
openclaw security audit --deep --token <token>
openclaw security audit --fix
openclaw security audit --json

Звичайний security audit залишається на холодному шляху конфігурації/файлової системи/лише читання. За замовчуванням він не виявляє колектори безпеки середовища виконання Plugin, тому рутинні аудити не завантажують середовище виконання кожного встановленого Plugin. Використовуйте --deep, щоб включити найкращі можливі живі перевірки Gateway і колектори аудиту безпеки, що належать Plugin; явні внутрішні виклики також можуть підключати ці колектори, що належать Plugin, коли вже мають відповідну область середовища виконання.

Аудит попереджає, коли кілька відправників DM спільно використовують основну сесію, і рекомендує безпечний режим DM: session.dmScope="per-channel-peer" (або per-account-channel-peer для багатооблікових каналів) для спільних вхідних скриньок. Це призначено для посилення захисту кооперативних/спільних вхідних скриньок. Один Gateway, спільний для взаємно недовірених/ворожих операторів, не є рекомендованою конфігурацією; розділяйте межі довіри окремими шлюзами (або окремими користувачами ОС/хостами). Він також видає security.trust_model.multi_user_heuristic, коли конфігурація вказує на ймовірний вхід від кількох користувачів (наприклад, відкрита політика DM/груп, налаштовані групові цілі або правила відправників із wildcard), і нагадує, що OpenClaw за замовчуванням має модель довіри персонального асистента. Для навмисних спільнокористувацьких конфігурацій рекомендація аудиту: ізолювати всі сесії в sandbox, тримати доступ до файлової системи в межах робочої області та не розміщувати персональні/приватні ідентичності чи облікові дані в цьому середовищі виконання. Він також попереджає, коли малі моделі (<=300B) використовуються без sandboxing і з увімкненими веб-/браузерними інструментами. Для вхідних Webhook він попереджає, коли hooks.token повторно використовує токен Gateway, коли hooks.token короткий, коли hooks.path="/", коли hooks.defaultSessionKey не задано, коли hooks.allowedAgentIds не обмежено, коли ввімкнено перевизначення sessionKey у запитах і коли перевизначення ввімкнено без hooks.allowedSessionKeyPrefixes. Він також попереджає, коли налаштування sandbox Docker сконфігуровані, а режим sandbox вимкнено, коли gateway.nodes.denyCommands використовує неефективні шаблоноподібні/невідомі записи (лише точне зіставлення імен команд Node, а не фільтрація shell-тексту), коли gateway.nodes.allowCommands явно вмикає небезпечні команди Node, коли глобальний tools.profile="minimal" перевизначається профілями інструментів агента, коли відкриті групи надають доступ до інструментів середовища виконання/файлової системи без захисту sandbox/робочої області, і коли інструменти встановлених Plugin можуть бути доступні за надто дозволеної політики інструментів. Він також позначає gateway.allowRealIpFallback=true (ризик підміни заголовків, якщо проксі налаштовано неправильно) і discovery.mdns.mode="full" (витік метаданих через записи mDNS TXT). Він також попереджає, коли браузер sandbox використовує мережу Docker bridge без sandbox.browser.cdpSourceRange. Він також позначає небезпечні мережеві режими sandbox Docker (зокрема host і приєднання до просторів імен container:*). Він також попереджає, коли наявні Docker-контейнери браузера sandbox мають відсутні/застарілі hash-мітки (наприклад, контейнери до міграції без openclaw.browserConfigEpoch) і рекомендує openclaw sandbox recreate --browser --all. Він також попереджає, коли записи встановлення Plugin/hook на основі npm не зафіксовані до версії, не мають метаданих цілісності або розходяться з поточними встановленими версіями пакетів. Він попереджає, коли списки дозволів каналів покладаються на змінні імена/електронні адреси/теги замість стабільних ID (Discord, Slack, Google Chat, Microsoft Teams, Mattermost, області IRC, де застосовно). Він попереджає, коли gateway.auth.mode="none" залишає HTTP API Gateway доступними без спільного секрету (/tools/invoke плюс будь-який увімкнений endpoint /v1/*). Налаштування з префіксами dangerous/dangerously є явними аварійними перевизначеннями оператора; увімкнення такого налаштування саме по собі не є звітом про вразливість безпеки. Повний перелік небезпечних параметрів див. у розділі «Підсумок небезпечних або незахищених прапорців» у Безпека.

Поведінка SecretRef:

  • security audit розв’язує підтримувані SecretRefs у режимі лише читання для своїх цільових шляхів.
  • Якщо SecretRef недоступний у поточному шляху команди, аудит продовжується й повідомляє secretDiagnostics (замість аварійного завершення).
  • --token і --password лише перевизначають автентифікацію глибокої перевірки для цього виклику команди; вони не переписують конфігурацію або зіставлення SecretRef.

Вивід JSON

Використовуйте --json для перевірок CI/політик:

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

--fix застосовує безпечні, детерміновані виправлення:

  • змінює поширене groupPolicy="open" на groupPolicy="allowlist" (включно з варіантами для облікових записів у підтримуваних каналах)
  • коли групова політика WhatsApp змінюється на allowlist, заповнює groupAllowFrom зі збереженого файла allowFrom, якщо такий список існує, а конфігурація ще не визначає allowFrom
  • встановлює logging.redactSensitive з "off" на "tools"
  • посилює дозволи для стану/конфігурації та поширених чутливих файлів (credentials/*.json, auth-profiles.json, sessions.json, сесійні *.jsonl)
  • також посилює дозволи для файлів include конфігурації, на які посилається openclaw.json
  • використовує chmod на POSIX-хостах і скидання icacls у Windows

--fix не:

  • ротує токени/паролі/API-ключі
  • вимикає інструменти (gateway, cron, exec тощо)
  • змінює вибір bind/auth/мережевого доступу Gateway
  • видаляє або переписує plugins/skills

Пов’язано