Безопасность OpenClaw: как защитить ИИ-агента от угроз

OpenClaw — это open-source ИИ-агент, который подключается к мессенджерам, управляет файлами, запускает команды и работает с внешними API. Чем больше прав у агента, тем серьёзнее последствия компрометации. В этой статье — практическое руководство по защите OpenClaw: от базового аудита до многослойной обороны.

Что такое безопасность OpenClaw и почему она важна

Безопасность OpenClaw — это комплекс мер по защите ИИ-агента от несанкционированного доступа, манипуляции через вредоносный контент и утечки данных. OpenClaw выполняет реальные действия на сервере: читает файлы, запускает команды, отправляет сообщения. Если агент скомпрометирован, злоумышленник получает всё те же возможности, что и оператор — от запуска shell-команд до доступа к ключам API.

По данным The Register, в начале 2026 года сканеры обнаружили десятки тысяч OpenClaw-инстансов, доступных из интернета без аутентификации. Это не теоретическая угроза — это реальные инциденты, которые привели к компрометации серверов.

Как запустить проверку безопасности OpenClaw

OpenClaw включает встроенный инструмент аудита. Запустите на сервере:

openclaw security audit

Команда проверяет:

  • Inbound access — политики DM, группы, allowlist’ы: кто может обратиться к боту
  • Tool blast radius — какие инструменты доступны и могут ли они быть использованы через prompt injection
  • Exec filesystem drift — доступны ли файловые операции одновременно с exec/process
  • Exec approval drift — настройки security=full, autoAllowSkills, interpreter allowlists
  • Для глубокой проверки с исправлением:

    openclaw security audit --deep    # углублённый аудит
    openclaw security audit --fix     # автоматическое исправление типичных проблем
    openclaw security audit --json    # вывод в формате JSON для автоматизации
    

    Флаг --fix исправляет типичные ошибки: переключает открытые групповые политики на allowlist’ы, включает logging.redactSensitive, ужимает права на файлы конфигурации.

    Как настроить hardened-конфигурацию OpenClaw

    Безопасная конфигурация за 60 секунд. Минимальный набор, который стоит применить сразу:

    {
      "gateway": {
        "mode": "local",
        "bind": "loopback",
        "auth": { "mode": "token", "token": "замените-на-длинный-случайный-токен" }
      },
      "session": {
        "dmScope": "per-channel-peer"
      },
      "tools": {
        "profile": "messaging",
        "deny": ["group:automation", "group:runtime", "group:fs", "sessions_spawn", "sessions_send"],
        "fs": { "workspaceOnly": true },
        "exec": { "security": "deny", "ask": "always" },
        "elevated": { "enabled": false }
      }
    }
    

    Что делает этот конфиг:

  • bind: "loopback" — gateway слушает только localhost, не доступен извне
  • dmScope: "per-channel-peer" — изолирует сессии: каждый чат получает свою историю
  • tools.deny — отключает опасные группы инструментов (автоматизация, exec, файловая система)
  • exec.security: "deny" — запрещает выполнение shell-команд
  • elevated: false — отключает elevated-инструменты
  • Это отправная точка. После проверки можно точечно включать нужные инструменты.

    Что такое prompt injection и как защититься

    Prompt injection — это атака, при которой злоумышленник скрывает инструкции в тексте, который обрабатывает агент. Например: в документе, на веб-странице или в сообщении от другого пользователя. Инструкция может заставить агента отправить данные на внешний сервер, выполнить команду или изменить поведение.

    Многослойная защита от prompt injection

    Внешний слой — сетевая изоляция:

  • Gateway только на loopback или за VPN
  • Firewall: только необходимые порты
  • Не exposing Control UI в интернет
  • Средний слой — контроль входных данных:

  • contextVisibility: "allowlist" — фильтрует контекст только от разрешённых отправителей
  • dmPolicy: "pairing" — требует подтверждения для новых пользователей
  • groupPolicy + mention gates — бот реагирует только на упоминания в группах
  • Внутренний слой — ограничение инструментов:

  • Минимальные права по умолчанию (principle of least privilege)
  • Exec только с ask: "always" или полностью запрещён
  • Файловые операции только в workspace
  • Как защитить OpenClaw от вредоносных скиллов

    Скиллы (skills) в OpenClaw — это сторонний код, который выполняется в контексте агента. Установка скилла равносильна установке пакета: если скилл содержит вредоносный код, он получает доступ к тем же ресурсам, что и агент.

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

  • Клонировать репозиторий скилла локально
  • Прочитать все файлы — не только код, но и Markdown, JSON, YAML
  • Проверить на красные флаги:
  • Признак Почему опасно Что делать
    Скачивает и выполняет внешний контент Превращает скилл в загрузчик Требовать обоснование, проверять хеши
    Обфускация в скриптах Скрывает реальное поведение Расшифровать, считать высокорисковым
    Читает переменные окружения или файлы ключей Путь к утечке токенов Строгий allowlist + DLP-сканирование
    Изменяет директории OpenClaw Может сохранить вредоносный код Ручная проверка + хеш-базлайн
    Инструкции «установи X» в описании Вектор indirect prompt injection Карантин, отдельный workflow установки

    Быстрый сканер скиллов

    Скрипт для базовой проверки:

    import re, sys
    from pathlib import Path
    
    SUSPICIOUS = [
        (re.compile(r'\b(curl|wget)\b.*\|\s*(sh|bash)\b', re.I), "pipe-to-shell"),
        (re.compile(r'\b(eval|exec)\b', re.I), "dynamic execution"),
        (re.compile(r'\b(/proc/\d+/environ|\.ssh/|id_rsa)\b', re.I), "credential hunting"),
        (re.compile(r'\b(openclaw\.json|AGENTS\.md)\b', re.I), "core runtime access"),
        (re.compile(r'\b(cron|crontab|systemctl)\b', re.I), "persistence surface"),
    ]
    
    for p in Path(sys.argv[1]).rglob("*"):
        if p.is_file() and p.suffix in {".md",".json",".yaml",".sh",".py",".js"}:
            data = p.read_text(errors="ignore")
            for rx, why in SUSPICIOUS:
                if rx.search(data):
                    print(f"⚠️ {p}: {why}")
    

    Как защитить память агента от отравления

    Память OpenClaw — это файлы MEMORY.md, USER.md и workspace-директория. Если злоумышленник может влиять на содержимое памяти (через prompt injection или компрометацию скилла), он может изменить поведение агента на длительный срок.

    Риски отравления памяти

  • Долгосрочная манипуляция — агент запоминает ложные инструкции и следует им в будущих сессиях
  • Credential harvesting — если агент хранит ключи в памяти, компрометация памяти = компрометация ключей
  • Behavioral drift — постепенное изменение поведения через серию малозаметных инъекций
  • Меры защиты

  • Ограничьте запись в память — только trusted-сессии должны обновлять MEMORY.md
  • Проверяйте содержимое периодически — openclaw security audit проверяет права на файлы конфигурации
  • Используйте session.reset для автоматического сброса сессий:
  • {
      "session": {
        "reset": {
          "mode": "daily",
          "atHour": 4,
          "idleMinutes": 120
        }
      }
    }
    
  • Не храните секреты в памяти — используйте переменные окружения или secret-хранилища
  • Какие ещё меры безопасности применить

    Красные и жёлтые линии поведения

    Встроьте правила прямо в AGENTS.md агента:

    Красная линия (требует подтверждения оператора):

  • Уничтожение данных: форматирование, удаление файлов, очистка диска
  • Persistence-механизмы: crontab, systemd-сервисы, автозагрузка
  • Утечка секретов: отправка токенов, ключей, паролей на внешние адреса
  • Запрос приватных ключей у пользователя
  • Жёлтая линия (разрешено, но логируется):

  • Любое использование sudo
  • Установка пакетов
  • Изменения firewall, proxy, DNS
  • Остановка и запуск сервисов
  • Каждое действие жёлтой линии логируется с временной меткой, командой, причиной и результатом.

    Резервное копирование

    Регулярно бэкапьте:

  • ~/.openclaw/ — конфигурация и состояние
  • Workspace-директории агентов
  • MEMORY.md и AGENTS.md
  • Обновления

    Следите за CVE. В 2026 году была обнаружена уязвимость CVE-2026-25253: OpenClaw получал gatewayUrl из query-строки и автоматически открывал WebSocket-соединение, отправляя токен. Это показывает, что даже «мелкие» настройки могут стать точкой входа.

    Если хочется начать с готовой инфраструктурой

    Для тех, кто не хочет настраивать безопасность с нуля, существуют платформы с предварительно защищённой конфигурацией. Например, Neirohost — платформа AI-ассистентов на базе OpenClaw, где базовые настройки безопасности уже применены: изолированные контейнеры, ограниченный доступ, настроенный gateway. Это один из вариантов для быстрого старта с минимальными рисками.

    FAQ

    Можно ли запускать OpenClaw без VPN?

    Можно, если gateway настроен на loopback (bind: "loopback"), а взаимодействие идёт через локальные каналы (TUI, локальный браузер). Если нужен удалённый доступ — VPN или SSH-tunnel обязательны. Открытый gateway без аутентификации — это открытая дверь.

    Как часто запускать аудит безопасности?

    После каждого изменения конфигурации, установки нового скилла или暴露а нового сетевого интерфейса. В рабочем режиме — раз в неделю.

    Безопасно ли использовать скиллы из ClawHub?

    Не автоматически. Каждый скилл — сторонний код. Проверяйте содержимое перед установкой, используйте протокол аудита скиллов из этой статьи.

    Что делать, если агент вёл себя подозрительно?

  • Немедленно сбросьте сессию
  • Проверьте MEMORY.md и AGENTS.md на несанкционированные изменения
  • Запустите openclaw security audit --deep
  • Проверьте логи на необычные команды
  • Если подозрения подтвердились — переустановите агента из чистого бэкапа
  • Как защитить OpenClaw в командном использовании?

    Для команд используйте отдельные gateway для каждого trust-уровня. Не объединяйте пользователей с разными правами в один gateway. Если нужна shared-инбокс — настройте per-channel-peer и минимальный набор инструментов.