Назад

11. OpenClaw: лучшие практики безопасности

Безопасность — ключевой аспект развёртывания OpenClaw. В статье подробно рассмотрены механизм DM-сопряжения, режим песочницы, управление правами доступа, работа с конфиденциальными данными и сетевая безопасность для построения надёжной системы ИИ-ассистента.

Для OpenClaw v2026.2 | Статья подходит для всех пользователей OpenClaw, особенно для тех, кто готовит продакшн-развёртывание или командное использование.

TL;DR: DM-сопряжение предотвращает несанкционированный доступ: "dmPolicy": "pairing". Песочница изолирует опасные операции: "sandbox": {"mode": "non-main"}. Фильтрация конфиденциальных данных: "security": {"sensitiveData": {"patterns": ["sk-*"]}}. Для удалённого доступа используйте Tailscale, а не публичные порты. Запустите openclaw doctor --security для проверки состояния безопасности.

Обзор рисков безопасности

Основные типы рисков

Тип риска Описание Возможные последствия
Несанкционированный доступ Посторонний может использовать вашего Agent Злоупотребление ресурсами, утечка данных
Злоупотребление правами Agent выполняет операции сверх ожидаемых Повреждение данных, нарушение работы системы
Утечка данных Некорректная обработка конфиденциальной информации Нарушение конфиденциальности, проблемы с соответствием
Сетевые атаки Внешний злоумышленник использует уязвимости Проникновение в систему, кража данных
Prompt-инъекция Вредоносные инструкции обходят ограничения безопасности Несанкционированные операции

Модель безопасности

flowchart TB
    subgraph Outer["Сетевой уровень"]
        FW[Файрвол]
        TLS[HTTPS/TLS]
    end
    
    subgraph Middle["Контроль доступа"]
        DM[DM-сопряжение]
        WL[Белый список]
        AUTH[Аутентификация]
    end
    
    subgraph Inner["Контроль выполнения"]
        SBX[Песочница]
        PERM[Права доступа]
        AUDIT[Аудит]
    end
    
    subgraph Core["Agent"]
        AG[Ядро Agent]
    end
    
    Outer --> Middle --> Inner --> Core

Механизм DM-сопряжения

Что такое DM-сопряжение?

DM (Direct Message) сопряжение — это защитный механизм, требующий от новых пользователей пройти процедуру сопряжения перед началом диалога с Agent.

Процесс сопряжения

sequenceDiagram
    participant S as Незнакомец
    participant B as Бот
    participant G as Gateway
    participant O as Владелец
    
    S->>B: Отправляет сообщение «Привет»
    B->>G: Сообщение поступает
    G->>G: Проверка статуса сопряжения
    G-->>B: Не сопряжён, генерация кода
    B-->>S: «Пожалуйста, выполните сопряжение: код ABC123»
    S->>O: Сообщает владельцу код сопряжения
    O->>G: openclaw pairing approve telegram ABC123
    G->>G: Добавление в белый список
    G-->>S: Сопряжение успешно
    S->>B: Отправляет сообщение «Привет»
    B-->>S: Нормальный ответ

Настройка DM-сопряжения

{
  "channels": {
    "telegram": {
      "botToken": "your_token",
      "dmPolicy": "pairing"
    },
    "whatsapp": {
      "dmPolicy": "pairing"
    },
    "discord": {
      "dmPolicy": "pairing"
    }
  }
}

Режимы сопряжения

Режим Описание Уровень безопасности Сценарий использования
pairing Требуется код сопряжения ⭐⭐⭐⭐ Личное использование (по умолчанию)
open Доступен любому Публичный сервис
whitelist Только пользователи из белого списка ⭐⭐⭐⭐⭐ Высокие требования к безопасности

Управление сопряжением

# Просмотр ожидающих запросов на сопряжение
openclaw pairing list

# Пример вывода:
# Channel    Code     User        Created
# telegram   ABC123   @stranger   2026-02-26 10:30:00
# discord    XYZ789   user#1234   2026-02-26 10:35:00

# Одобрить сопряжение
openclaw pairing approve telegram ABC123

# Отклонить сопряжение
openclaw pairing reject telegram ABC123

# Просмотр сопряжённых пользователей
openclaw pairing show telegram

Настройка белого списка

{
  "channels": {
    "telegram": {
      "dmPolicy": "open",
      "allowFrom": [
        123456789,
        987654321
      ]
    },
    "whatsapp": {
      "dmPolicy": "open",
      "allowFrom": [
        "+8613800138000",
        "+8613800138001"
      ]
    }
  }
}

Получение ID пользователя

# Telegram: отправьте сообщение боту @userinfobot
# Discord: используйте команду /id в канале или посмотрите профиль пользователя
# WhatsApp: получите из информации о контакте

Режим песочницы

Что такое песочница?

Песочница — это механизм изоляции, ограничивающий область действий Agent для предотвращения случайных или вредоносных изменений в системе.

Режимы песочницы

Режим Описание Сценарий использования
off Без песочницы, полное доверие Основная сессия, доверенное окружение
non-main Песочница для неосновных сессий Многопользовательский, командный доступ
always Песочница всегда включена Ненадёжное окружение, публичный сервис

Настройка песочницы

{
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "non-main",
        "allowlist": ["read", "write", "edit", "bash"],
        "denylist": ["browser", "canvas", "nodes"],
        "container": {
          "image": "openclaw/sandbox:latest",
          "timeout": 30000,
          "memory": "512m",
          "cpu": "0.5"
        }
      }
    }
  }
}

Контроль прав на инструменты

{
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "non-main",
        "allowlist": [
          "read",
          "write",
          "edit",
          "bash",
          "web_search",
          "sessions_list",
          "sessions_history",
          "sessions_send"
        ],
        "denylist": [
          "browser",
          "canvas",
          "nodes",
          "cron",
          "discord",
          "gateway"
        ]
      }
    }
  }
}

Права доступа к файловой системе

{
  "agents": {
    "defaults": {
      "permissions": {
        "filesystem": {
          "read": ["~/workspace", "~/documents"],
          "write": ["~/workspace/output"],
          "deny": ["~/.ssh", "~/.gnupg", "~/.openclaw/credentials"]
        }
      }
    }
  }
}

Сетевые права

{
  "agents": {
    "defaults": {
      "permissions": {
        "network": {
          "outbound": {
            "allow": [
              "api.anthropic.com",
              "api.openai.com",
              "github.com"
            ],
            "deny": ["*"]
          }
        }
      }
    }
  }
}

Повышенные привилегии (Elevated)

Что такое повышенные привилегии?

Повышенные привилегии — это механизм временного повышения уровня доступа для операций, требующих расширенных прав.

Настройка повышенных привилегий

{
  "agents": {
    "defaults": {
      "elevatedAccess": {
        "enabled": true,
        "allowlist": [123456789, 987654321],
        "requireConfirmation": true,
        "timeout": 300000
      }
    }
  }
}

Использование повышенных привилегий

# Запросить повышение привилегий в чате
/elevated on

# Выполнить операции, требующие повышенных привилегий
# ...

# Отключить повышенные привилегии
/elevated off

Обработка конфиденциальных данных

Типы конфиденциальной информации

Тип Пример Способ обработки
API-ключи sk-ant-xxx, sk-xxx Не записывать, не выводить
Пароли Пароли для входа, пароли БД Не хранить, не передавать
Токены OAuth-токен, Session-токен Шифрованное хранение
Персональные данные Удостоверение личности, банковские карты Не записывать, анонимизировать

Настройка фильтрации конфиденциальных данных

{
  "security": {
    "sensitiveData": {
      "patterns": [
        "sk-[a-zA-Z0-9]{20,}",
        "xox[baprs]-[a-zA-Z0-9-]+",
        "[0-9]{15,19}",
        "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}"
      ],
      "redact": true,
      "log": false
    }
  }
}

Хранение учётных данных

# Расположение хранилища учётных данных
~/.openclaw/credentials/

# Шифрованное хранение
# OpenClaw использует системную связку ключей для шифрованного хранения конфиденциальных учётных данных

Управление учётными данными

# Просмотр сохранённых учётных данных
openclaw credentials list

# Пример вывода:
# Name           Type        Created
# telegram-bot   api_key     2026-02-20
# gmail-oauth    oauth       2026-02-21

# Удаление учётных данных
openclaw credentials delete telegram-bot

# Экспорт учётных данных (зашифрованных)
openclaw credentials export --output credentials.enc

# Импорт учётных данных
openclaw credentials import --input credentials.enc

Сетевая безопасность

Настройка привязки

{
  "gateway": {
    "bind": "loopback",  // только локальный доступ
    "port": 18789,
    "tls": {
      "enabled": false
    }
  }
}
Вариант привязки Описание Уровень безопасности
loopback Только локальный доступ ⭐⭐⭐⭐⭐
private Доступ из частной сети ⭐⭐⭐⭐
all Доступ со всех интерфейсов

Настройка Tailscale

{
  "gateway": {
    "tailscale": {
      "mode": "serve",  // serve или funnel
      "resetOnExit": true
    },
    "auth": {
      "mode": "password",
      "allowTailscale": true
    }
  }
}

Настройка аутентификации

{
  "gateway": {
    "auth": {
      "mode": "password",
      "password": "your-secure-password",
      "sessionTimeout": 3600000
    }
  }
}

Аудит и логирование

Журнал операций

{
  "logging": {
    "level": "info",
    "audit": {
      "enabled": true,
      "events": [
        "tool.invoke",
        "session.create",
        "session.reset",
        "pairing.approve",
        "pairing.reject",
        "elevated.enable",
        "elevated.disable"
      ],
      "retention": 30
    }
  }
}

Просмотр журнала аудита

# Просмотр журнала аудита
openclaw logs --type audit

# Пример вывода:
# [2026-02-26 10:30:00] INFO  tool.invoke session=main tool=bash command="ls -la"
# [2026-02-26 10:30:05] INFO  pairing.approve channel=telegram code=ABC123 user=123456789
# [2026-02-26 10:31:00] INFO  elevated.enable session=telegram:user:123456789

# Фильтрация по типу события
openclaw logs --type audit --filter "tool.invoke"

# По временному диапазону
openclaw logs --type audit --from 2026-02-01 --to 2026-02-28

Мониторинг использования

# Просмотр статистики использования
openclaw usage --today

# Пример вывода:
# Date: 2026-02-26
# Requests: 128
# Tokens In: 125,000
# Tokens Out: 45,000
# Cost: $2.10
# Top Tools: bash(45), read(32), write(18)

# Обнаружение аномалий
openclaw usage --alerts

# Пример вывода:
# ⚠️  High usage detected: 1000+ requests in 1 hour
# ⚠️  Unusual tool pattern: bash commands to sensitive directories

Чек-лист безопасности

Базовая безопасность

  • Включить DM-сопряжение или белый список
  • Настроить режим песочницы
  • Установить разумные права на инструменты
  • Включить журнал аудита операций
  • Регулярно менять API-ключи

Продвинутая безопасность

  • Настроить ограничения доступа к файловой системе
  • Установить белый список исходящих сетевых подключений
  • Включить фильтрацию конфиденциальных данных
  • Настроить подтверждение повышенных привилегий
  • Регулярно проверять сопряжённых пользователей

Корпоративная безопасность

  • Использовать Docker-песочницу для изоляции
  • Настроить частную сеть Tailscale
  • Включить HTTPS/TLS
  • Настроить оповещения о превышении лимитов
  • Регулярно проводить аудит безопасности

Диагностика безопасности

# Запуск диагностики безопасности
openclaw doctor --security

# Пример вывода:
# ✅ DM Pairing: Enabled
# ✅ Sandbox Mode: non-main
# ⚠️  File Permissions: Some directories not restricted
# ✅ Network Outbound: Restricted to allowlist
# ⚠️  Elevated Access: No confirmation required
# ✅ Audit Logging: Enabled
# ✅ Credentials: Encrypted

# Рекомендации:
# - Restrict file access to ~/workspace only
# - Enable elevated access confirmation

Итоги

Настройка безопасности — важный этап развёртывания OpenClaw:

  • DM-сопряжение: предотвращение несанкционированного доступа
  • Режим песочницы: ограничение области действий
  • Контроль прав: гранулярные права на инструменты и файлы
  • Конфиденциальные данные: фильтрация и защита конфиденциальной информации
  • Сетевая безопасность: настройка привязки и аутентификации
  • Журнал аудита: отслеживание и мониторинг операций

Краткие итоги статьи:

  • Разобрались в основных рисках безопасности и механизмах защиты
  • Освоили настройку DM-сопряжения и белого списка
  • Научились настраивать песочницу и управление правами
  • Узнали об обработке конфиденциальных данных и сетевой конфигурации
  • Освоили журнал аудита и чек-лист безопасности

История изменений:

  • 2026-02-26: первая публикация, на основе OpenClaw v2026.2

Навигация по серии: