CLI commands

Безпека

openclaw security

Інструменти безпеки: аудит і необов’язкові безпечні виправлення. Пов’язаний розділ: Безпека.

bash
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 без урахування регістру:

json
{  "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

bash
openclaw security audit --json | jq '.summary'openclaw security audit --deep --json | jq '.findings[] | select(.severity=="critical") | .checkId'

З --fix --json вивід містить як дії виправлення, так і остаточний звіт:

bash
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, автентифікації чи доступності в мережі
  • видаляє або переписує плагіни чи навички

Пов’язані матеріали

Was this useful?
On this page

On this page